--- a/net/minecraft/world/SimpleContainer.java +++ b/net/minecraft/world/SimpleContainer.java @@ -14,16 +14,74 @@ import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; +// CraftBukkit start +import org.bukkit.Location; +import org.bukkit.craftbukkit.entity.CraftHumanEntity; +import org.bukkit.entity.HumanEntity; +// CraftBukkit end + public class SimpleContainer implements Container, StackedContentsCompatible { private final int size; public final NonNullList items; @Nullable private List listeners; + + // CraftBukkit start - add fields and methods + public List transaction = new java.util.ArrayList(); + private int maxStack = MAX_STACK; + protected org.bukkit.inventory.InventoryHolder bukkitOwner; + + public List getContents() { + return this.items; + } + + public void onOpen(CraftHumanEntity who) { + this.transaction.add(who); + } + + public void onClose(CraftHumanEntity who) { + this.transaction.remove(who); + } + + public List getViewers() { + return this.transaction; + } + + @Override + public int getMaxStackSize() { + return this.maxStack; + } + + public void setMaxStackSize(int i) { + this.maxStack = i; + } + + public org.bukkit.inventory.InventoryHolder getOwner() { + return this.bukkitOwner; + } + + @Override + public Location getLocation() { + return null; + } + + public SimpleContainer(SimpleContainer original) { + this(original.size); + for (int slot = 0; slot < original.size; slot++) { + this.items.set(slot, original.items.get(slot).copy()); + } + } public SimpleContainer(int size) { - this.size = size; - this.items = NonNullList.withSize(size, ItemStack.EMPTY); + this(size, null); + } + + public SimpleContainer(int i, org.bukkit.inventory.InventoryHolder owner) { + this.bukkitOwner = owner; + // CraftBukkit end + this.size = i; + this.items = NonNullList.withSize(i, ItemStack.EMPTY); } public SimpleContainer(ItemStack... items) {