diff --git a/src/main/java/tconstruct/tools/inventory/SlotTool.java b/src/main/java/tconstruct/tools/inventory/SlotTool.java index ded53fd8cee..915a71ce91d 100644 --- a/src/main/java/tconstruct/tools/inventory/SlotTool.java +++ b/src/main/java/tconstruct/tools/inventory/SlotTool.java @@ -54,7 +54,7 @@ protected void onCrafting (ItemStack stack, int par2) */ protected void onCrafting (ItemStack stack) { - if (stack.getItem() instanceof IModifyable && inventory.getStackInSlot(1) != null && !(inventory.getStackInSlot(1).getItem() instanceof IModifyable)) + if (stack.getItem() instanceof IModifyable) { NBTTagCompound tags = stack.getTagCompound().getCompoundTag(((IModifyable) stack.getItem()).getBaseTagName()); Boolean full = (inventory.getStackInSlot(2) != null || inventory.getStackInSlot(3) != null); diff --git a/src/main/java/tconstruct/tools/inventory/SlotToolForge.java b/src/main/java/tconstruct/tools/inventory/SlotToolForge.java index e42cdcb85c5..7fbac3a3df4 100644 --- a/src/main/java/tconstruct/tools/inventory/SlotToolForge.java +++ b/src/main/java/tconstruct/tools/inventory/SlotToolForge.java @@ -2,6 +2,7 @@ import java.util.Random; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -39,6 +40,13 @@ protected void onCrafting (ItemStack stack) { int amount = inventory.getStackInSlot(1).stackSize; inventory.decrStackSize(1, amount); + + for(int i = 0; i < inventory.getSizeInventory(); i++) { + if(inventory.getStackInSlot(i) != null && inventory.getStackInSlot(i).getItem() == Items.name_tag) { + inventory.decrStackSize(i, 1); + break; + } + } } } } diff --git a/src/main/java/tconstruct/tools/logic/ToolStationLogic.java b/src/main/java/tconstruct/tools/logic/ToolStationLogic.java index 1cd8e99ac5c..fe815e88408 100644 --- a/src/main/java/tconstruct/tools/logic/ToolStationLogic.java +++ b/src/main/java/tconstruct/tools/logic/ToolStationLogic.java @@ -146,9 +146,12 @@ else if (tags.getCompoundTag("display").hasKey("Name")) } // we only allow renaming with a nametag otherwise else if (!("\u00A7f" + name).equals(display.getString("Name")) && !name.equals(display.getString("Name"))) { + int nametagCount = 0; for(int i = 0; i < inventory.length; i++) if(inventory[i] != null && inventory[i].getItem() == Items.name_tag) - doRename = true; + nametagCount++; + + doRename = nametagCount == 1; } if(!doRename)