diff --git a/src/main/java/kamkeel/npcs/network/packets/request/linked/LinkedItemBuildPacket.java b/src/main/java/kamkeel/npcs/network/packets/request/linked/LinkedItemBuildPacket.java index 0d4750410..3b910e0ce 100644 --- a/src/main/java/kamkeel/npcs/network/packets/request/linked/LinkedItemBuildPacket.java +++ b/src/main/java/kamkeel/npcs/network/packets/request/linked/LinkedItemBuildPacket.java @@ -19,6 +19,7 @@ import noppes.npcs.CustomNpcsPermissions; import noppes.npcs.NoppesUtilServer; import noppes.npcs.controllers.LinkedItemController; import noppes.npcs.controllers.data.LinkedItem; +import noppes.npcs.scripted.NpcAPI; import noppes.npcs.scripted.item.ScriptLinkedItem; import java.io.IOException; @@ -63,15 +64,16 @@ public final class LinkedItemBuildPacket extends AbstractPacket { return; int id = in.readInt(); - LinkedItem linkedItem = LinkedItemController.getInstance().get(id); - if(linkedItem == null) + LinkedItem original = LinkedItemController.getInstance().get(id); + if(original == null) return; + LinkedItem copy = original.clone(); EntityPlayerMP playerMP = (EntityPlayerMP) player; ItemStack stack = new ItemStack(CustomItems.linked_item, 1); - ScriptLinkedItem scriptLinkedItem = new ScriptLinkedItem(stack, linkedItem.writeToNBT()); - scriptLinkedItem.linkedVersion = linkedItem.version; + ScriptLinkedItem scriptLinkedItem = new ScriptLinkedItem(stack, copy); + scriptLinkedItem.linkedVersion = copy.version; scriptLinkedItem.saveItemData(); - playerMP.inventory.addItemStackToInventory(stack.copy()); + playerMP.inventory.addItemStackToInventory(stack); } } diff --git a/src/main/java/noppes/npcs/controllers/data/LinkedItem.java b/src/main/java/noppes/npcs/controllers/data/LinkedItem.java index 4a0b11be4..240c1d8b6 100644 --- a/src/main/java/noppes/npcs/controllers/data/LinkedItem.java +++ b/src/main/java/noppes/npcs/controllers/data/LinkedItem.java @@ -207,6 +207,13 @@ public class LinkedItem implements ILinkedItem { this.enchantability = enchantability; } + public LinkedItem clone() { + NBTTagCompound nbt = this.writeToNBT(); + LinkedItem clone = new LinkedItem(this.name); + clone.readFromNBT(nbt, false); + return clone; + } + // ADD / GET SETS FOR LINKED ITEM DISPLAY THINGS } diff --git a/src/main/java/noppes/npcs/scripted/item/ScriptLinkedItem.java b/src/main/java/noppes/npcs/scripted/item/ScriptLinkedItem.java index cc67f47be..a1c6a68bf 100644 --- a/src/main/java/noppes/npcs/scripted/item/ScriptLinkedItem.java +++ b/src/main/java/noppes/npcs/scripted/item/ScriptLinkedItem.java @@ -17,11 +17,10 @@ public class ScriptLinkedItem extends ScriptCustomizableItem implements IItemLin } // For Building - public ScriptLinkedItem(ItemStack item, NBTTagCompound linkedData) { + public ScriptLinkedItem(ItemStack item, LinkedItem original) { super(item); setDefaults(); - this.linkedItem = new LinkedItem(); - this.linkedItem.readFromNBT(linkedData, false); + this.linkedItem = original.clone(); } public void setDefaults(){