diff --git a/paper-api/src/main/java/org/bukkit/block/DoubleChest.java b/paper-api/src/main/java/org/bukkit/block/DoubleChest.java new file mode 100644 index 0000000000..cfc5b2081c --- /dev/null +++ b/paper-api/src/main/java/org/bukkit/block/DoubleChest.java @@ -0,0 +1,47 @@ +package org.bukkit.block; + +import org.bukkit.Location; +import org.bukkit.World; +import org.bukkit.inventory.DoubleChestInventory; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.InventoryHolder; + +public class DoubleChest implements InventoryHolder { + private DoubleChestInventory inventory; + + public DoubleChest(DoubleChestInventory chest) { + inventory = chest; + } + + public Inventory getInventory() { + return inventory; + } + + public InventoryHolder getLeftSide() { + return inventory.getLeftSide().getHolder(); + } + + public InventoryHolder getRightSide() { + return inventory.getRightSide().getHolder(); + } + + public Location getLocation() { + return new Location(getWorld(), getX(), getY(), getZ()); + } + + public World getWorld() { + return ((Chest)getLeftSide()).getWorld(); + } + + public double getX() { + return 0.5 * (((Chest)getLeftSide()).getX() + ((Chest)getRightSide()).getX()); + } + + public double getY() { + return 0.5 * (((Chest)getLeftSide()).getY() + ((Chest)getRightSide()).getY()); + } + + public double getZ() { + return 0.5 * (((Chest)getLeftSide()).getZ() + ((Chest)getRightSide()).getZ()); + } +} diff --git a/paper-api/src/main/java/org/bukkit/inventory/DoubleChestInventory.java b/paper-api/src/main/java/org/bukkit/inventory/DoubleChestInventory.java index 81d6030468..7ad00eee74 100644 --- a/paper-api/src/main/java/org/bukkit/inventory/DoubleChestInventory.java +++ b/paper-api/src/main/java/org/bukkit/inventory/DoubleChestInventory.java @@ -1,5 +1,7 @@ package org.bukkit.inventory; +import org.bukkit.block.DoubleChest; + public interface DoubleChestInventory extends Inventory { /** * Get the left half of this double chest. @@ -12,4 +14,6 @@ public interface DoubleChestInventory extends Inventory { * @return The right side inventory */ Inventory getRightSide(); + + DoubleChest getHolder(); }