From 7d8f0fb9bbc0f4b18aae8ba014eb0489ee3d338c Mon Sep 17 00:00:00 2001 From: fullwall Date: Tue, 14 Feb 2012 19:38:44 +0800 Subject: [PATCH] Revert "Changes to inventories" This reverts commit bca4ed1979b0ba1b0a1eaec33147c469a3a57748. --- src/net/citizensnpcs/npc/CitizensNPC.java | 7 ++++--- src/net/citizensnpcs/npc/NPCInventory.java | 13 +++++++++++++ 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/net/citizensnpcs/npc/CitizensNPC.java b/src/net/citizensnpcs/npc/CitizensNPC.java index ca6705ab6..57ceb8fc4 100644 --- a/src/net/citizensnpcs/npc/CitizensNPC.java +++ b/src/net/citizensnpcs/npc/CitizensNPC.java @@ -9,6 +9,7 @@ import net.citizensnpcs.api.npc.trait.trait.SpawnLocation; import net.citizensnpcs.api.npc.trait.trait.Spawned; import net.citizensnpcs.npc.ai.CitizensAI; import net.citizensnpcs.util.Messaging; + import net.minecraft.server.EntityLiving; import org.bukkit.Bukkit; @@ -19,14 +20,13 @@ import org.bukkit.entity.Player; public abstract class CitizensNPC extends AbstractNPC { protected final CitizensNPCManager manager; protected final CitizensAI ai = new CitizensAI(this); - protected final NPCInventory inventory; protected EntityLiving mcEntity; + protected final NPCInventory inventory; protected CitizensNPC(CitizensNPCManager manager, int id, String name) { super(id, name); this.manager = manager; - this.inventory = new NPCInventory(this); - addTrait(new Inventory(inventory.asInventory())); + inventory = new NPCInventory(this); } @Override @@ -110,6 +110,7 @@ public abstract class CitizensNPC extends AbstractNPC { public boolean openInventory(Player player) { if (!isSpawned()) return false; + getInventory().setContents(getTrait(Inventory.class).getContents()); inventory.show(player); return true; } diff --git a/src/net/citizensnpcs/npc/NPCInventory.java b/src/net/citizensnpcs/npc/NPCInventory.java index 1f2311d07..bbfc12247 100644 --- a/src/net/citizensnpcs/npc/NPCInventory.java +++ b/src/net/citizensnpcs/npc/NPCInventory.java @@ -8,16 +8,19 @@ import net.minecraft.server.ItemStack; import org.bukkit.craftbukkit.entity.CraftPlayer; import org.bukkit.craftbukkit.inventory.CraftInventory; +import org.bukkit.craftbukkit.inventory.CraftItemStack; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; public class NPCInventory implements IInventory { private final int size = 36; + private final NPC npc; private final ItemStack[] contents; private final Inventory inventory = new CraftInventory(this); private String name; public NPCInventory(NPC npc) { + this.npc = npc; name = StringHelper.parseColors(npc.getFullName()); contents = new ItemStack[size]; } @@ -76,6 +79,16 @@ public class NPCInventory implements IInventory { @Override public void g() { + // close + org.bukkit.inventory.ItemStack[] bukkitItems = new org.bukkit.inventory.ItemStack[size]; + int index = 0; + for (ItemStack item : contents) { + if (item != null) + bukkitItems[index] = new CraftItemStack(item); + index++; + } + + npc.getTrait(net.citizensnpcs.api.npc.trait.trait.Inventory.class).setContents(bukkitItems); } @Override