--- a/net/minecraft/world/CompoundContainer.java +++ b/net/minecraft/world/CompoundContainer.java @@ -7,6 +_,48 @@ public final Container container1; public final Container container2; + // CraftBukkit start - add fields and methods + public java.util.List transaction = new java.util.ArrayList<>(); + + public java.util.List getContents() { + java.util.List result = new java.util.ArrayList<>(this.getContainerSize()); + for (int i = 0; i < this.getContainerSize(); i++) { + result.add(this.getItem(i)); + } + return result; + } + + public void onOpen(org.bukkit.craftbukkit.entity.CraftHumanEntity player) { + this.container1.onOpen(player); + this.container2.onOpen(player); + this.transaction.add(player); + } + + public void onClose(org.bukkit.craftbukkit.entity.CraftHumanEntity player) { + this.container1.onClose(player); + this.container2.onClose(player); + this.transaction.remove(player); + } + + public java.util.List getViewers() { + return this.transaction; + } + + public org.bukkit.inventory.InventoryHolder getOwner() { + return null; // This method won't be called since CraftInventoryDoubleChest doesn't defer to here + } + + public void setMaxStackSize(int size) { + this.container1.setMaxStackSize(size); + this.container2.setMaxStackSize(size); + } + + @Override + public org.bukkit.Location getLocation() { + return this.container1.getLocation(); // TODO: right? + } + // CraftBukkit end + public CompoundContainer(Container container1, Container container2) { this.container1 = container1; this.container2 = container2; @@ -58,7 +_,7 @@ @Override public int getMaxStackSize() { - return this.container1.getMaxStackSize(); + return Math.min(this.container1.getMaxStackSize(), this.container2.getMaxStackSize()); // CraftBukkit - check both sides } @Override