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 7211a03bb..bb54cc529 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 @@ -64,14 +64,11 @@ public final class LinkedItemBuildPacket extends AbstractPacket { return; int id = in.readInt(); - LinkedItem original = LinkedItemController.getInstance().get(id); - if(original == null) + LinkedItem linkedItem = LinkedItemController.getInstance().get(id); + if(linkedItem == null) return; - LinkedItem copy = original.clone(); EntityPlayerMP playerMP = (EntityPlayerMP) player; - ItemStack stack = new ItemStack(CustomItems.linked_item, 1); - ScriptLinkedItem scriptLinkedItem = new ScriptLinkedItem(stack, copy); - playerMP.inventory.addItemStackToInventory(scriptLinkedItem.item); + playerMP.inventory.addItemStackToInventory(linkedItem.createStack().getMCItemStack()); } } diff --git a/src/main/java/noppes/npcs/controllers/LinkedItemController.java b/src/main/java/noppes/npcs/controllers/LinkedItemController.java index e8d3f3147..93d1ebe42 100644 --- a/src/main/java/noppes/npcs/controllers/LinkedItemController.java +++ b/src/main/java/noppes/npcs/controllers/LinkedItemController.java @@ -6,6 +6,7 @@ import net.minecraft.nbt.NBTTagList; import noppes.npcs.CustomNpcs; import noppes.npcs.LogWriter; import noppes.npcs.api.handler.data.ILinkedItem; +import noppes.npcs.api.item.IItemStack; import noppes.npcs.controllers.data.*; import noppes.npcs.util.NBTJsonUtil; @@ -34,6 +35,14 @@ public class LinkedItemController { return new LinkedItem(name); } + public IItemStack createItemStack(int id) { + LinkedItem linkedItem = this.get(id); + if (linkedItem != null) { + return linkedItem.createStack(); + } + return null; + } + public void add(LinkedItem linkedItem) { if (linkedItem != null) { String name = linkedItem.getName(); diff --git a/src/main/java/noppes/npcs/controllers/data/LinkedItem.java b/src/main/java/noppes/npcs/controllers/data/LinkedItem.java index df84cf842..7d7d64a96 100644 --- a/src/main/java/noppes/npcs/controllers/data/LinkedItem.java +++ b/src/main/java/noppes/npcs/controllers/data/LinkedItem.java @@ -1,10 +1,16 @@ package noppes.npcs.controllers.data; +import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagInt; import net.minecraftforge.common.util.Constants; +import noppes.npcs.CustomItems; import noppes.npcs.api.handler.data.ILinkedItem; +import noppes.npcs.api.item.IItemStack; import noppes.npcs.controllers.CustomEffectController; import noppes.npcs.controllers.LinkedItemController; +import noppes.npcs.scripted.NpcAPI; +import noppes.npcs.scripted.item.ScriptLinkedItem; public class LinkedItem implements ILinkedItem { public static final String LINKED_VERSION_VERSION_TAG = "LinkedVersion"; @@ -35,6 +41,13 @@ public class LinkedItem implements ILinkedItem { this.name = name; } + public IItemStack createStack() { + LinkedItem copy = this.clone(); + ItemStack stack = new ItemStack(CustomItems.linked_item, 1); + ScriptLinkedItem scriptLinkedItem = new ScriptLinkedItem(stack, copy); + return NpcAPI.Instance().getIItemStack(scriptLinkedItem.item); + } + public LinkedItemScript getScriptHandler() { return (LinkedItemScript) LinkedItemController.getInstance().getScriptHandler(this.getId()); }