diff --git a/src/main/java/electroblob/wizardry/inventory/ContainerBookshelf.java b/src/main/java/electroblob/wizardry/inventory/ContainerBookshelf.java index a32b7d2b..8905a7de 100644 --- a/src/main/java/electroblob/wizardry/inventory/ContainerBookshelf.java +++ b/src/main/java/electroblob/wizardry/inventory/ContainerBookshelf.java @@ -3,7 +3,6 @@ package electroblob.wizardry.inventory; import electroblob.wizardry.Settings; import electroblob.wizardry.Wizardry; import electroblob.wizardry.block.BlockBookshelf; -import electroblob.wizardry.item.ItemSpellBook; import electroblob.wizardry.registry.WizardryItems; import electroblob.wizardry.tileentity.TileEntityBookshelf; import net.minecraft.entity.player.EntityPlayer; @@ -83,7 +82,7 @@ public class ContainerBookshelf extends Container { int minSlotId = 0; int maxSlotId = BlockBookshelf.SLOT_COUNT - 1; - if(!(stack.getItem() instanceof ItemSpellBook)) return ItemStack.EMPTY; + if(!isBook(stack)) return ItemStack.EMPTY; if(!this.mergeItemStack(stack, minSlotId, maxSlotId + 1, false)){ return ItemStack.EMPTY; @@ -106,6 +105,11 @@ public class ContainerBookshelf extends Container { return remainder; } + /** Returns true if the given stack counts as a book and can be placed in a bookshelf, false if not. */ + public static boolean isBook(ItemStack stack){ + return validItems.contains(stack.getItem()) || Settings.containsMetaItem(Wizardry.settings.bookItems, stack); + } + /** * Adds the given item to the set of items that can be put in a bookshelf. This method should be called from the * {@code init()} phase. @@ -149,7 +153,7 @@ public class ContainerBookshelf extends Container { @Override public boolean isItemValid(ItemStack stack){ - return validItems.contains(stack.getItem()) || Settings.containsMetaItem(Wizardry.settings.bookItems, stack); + return isBook(stack); } } diff --git a/src/main/java/electroblob/wizardry/tileentity/TileEntityBookshelf.java b/src/main/java/electroblob/wizardry/tileentity/TileEntityBookshelf.java index 6d3565a7..55eb9cf2 100644 --- a/src/main/java/electroblob/wizardry/tileentity/TileEntityBookshelf.java +++ b/src/main/java/electroblob/wizardry/tileentity/TileEntityBookshelf.java @@ -2,6 +2,7 @@ package electroblob.wizardry.tileentity; import electroblob.wizardry.Wizardry; import electroblob.wizardry.block.BlockBookshelf; +import electroblob.wizardry.inventory.ContainerBookshelf; import electroblob.wizardry.item.ItemSpellBook; import electroblob.wizardry.util.NBTExtras; import net.minecraft.entity.player.EntityPlayer; @@ -136,8 +137,8 @@ public class TileEntityBookshelf extends TileEntity implements IInventory, ITick } @Override - public boolean isItemValidForSlot(int slotNumber, ItemStack itemstack){ - return itemstack.isEmpty() || itemstack.getItem() instanceof ItemSpellBook; // TODO: Add a whitelist + public boolean isItemValidForSlot(int slotNumber, ItemStack stack){ + return stack.isEmpty() || ContainerBookshelf.isBook(stack); } @Override