summaryrefslogtreecommitdiffstats
path: root/src/main/java/net/minecraft/server/ContainerHopper.java
diff options
context:
space:
mode:
authorTravis Watkins <amaranth@ubuntu.com>2013-03-13 17:33:27 -0500
committerTravis Watkins <amaranth@ubuntu.com>2013-03-15 13:28:59 -0500
commit83d29e461c85733f0113b6eb19db6e3b42da2949 (patch)
treeb3063a1c28f478ab368d5ba3413a842def68c28f /src/main/java/net/minecraft/server/ContainerHopper.java
parentba6e4c38cfa98ad291974195cc46d70a4f138ac1 (diff)
downloadcraftbukkit-83d29e461c85733f0113b6eb19db6e3b42da2949.tar
craftbukkit-83d29e461c85733f0113b6eb19db6e3b42da2949.tar.gz
craftbukkit-83d29e461c85733f0113b6eb19db6e3b42da2949.tar.lz
craftbukkit-83d29e461c85733f0113b6eb19db6e3b42da2949.tar.xz
craftbukkit-83d29e461c85733f0113b6eb19db6e3b42da2949.zip
Update CraftBukkit to Minecraft 1.5
Diffstat (limited to 'src/main/java/net/minecraft/server/ContainerHopper.java')
-rw-r--r--src/main/java/net/minecraft/server/ContainerHopper.java85
1 files changed, 85 insertions, 0 deletions
diff --git a/src/main/java/net/minecraft/server/ContainerHopper.java b/src/main/java/net/minecraft/server/ContainerHopper.java
new file mode 100644
index 00000000..83b95d13
--- /dev/null
+++ b/src/main/java/net/minecraft/server/ContainerHopper.java
@@ -0,0 +1,85 @@
+package net.minecraft.server;
+
+// CraftBukkit start
+import org.bukkit.craftbukkit.inventory.CraftInventory;
+import org.bukkit.craftbukkit.inventory.CraftInventoryView;
+// CraftBukkit end
+
+public class ContainerHopper extends Container {
+
+ private final IInventory a;
+
+ // CraftBukkit start
+ private CraftInventoryView bukkitEntity = null;
+ private PlayerInventory player;
+
+ public CraftInventoryView getBukkitView() {
+ if (bukkitEntity != null) {
+ return bukkitEntity;
+ }
+
+ CraftInventory inventory = new CraftInventory(this.a); // Should be this.hopper
+ bukkitEntity = new CraftInventoryView(this.player.player.getBukkitEntity(), inventory, this);
+ return bukkitEntity;
+ }
+ // CraftBukkit end
+
+ public ContainerHopper(PlayerInventory playerinventory, IInventory iinventory) {
+ this.a = iinventory;
+ this.player = playerinventory; // CraftBukkit - save player
+ iinventory.startOpen();
+ byte b0 = 51;
+
+ int i;
+
+ for (i = 0; i < iinventory.getSize(); ++i) {
+ this.a(new Slot(iinventory, i, 44 + i * 18, 20));
+ }
+
+ for (i = 0; i < 3; ++i) {
+ for (int j = 0; j < 9; ++j) {
+ this.a(new Slot(playerinventory, j + i * 9 + 9, 8 + j * 18, i * 18 + b0));
+ }
+ }
+
+ for (i = 0; i < 9; ++i) {
+ this.a(new Slot(playerinventory, i, 8 + i * 18, 58 + b0));
+ }
+ }
+
+ public boolean a(EntityHuman entityhuman) {
+ if (!this.checkReachable) return true; // CraftBukkit
+ return this.a.a(entityhuman);
+ }
+
+ public ItemStack b(EntityHuman entityhuman, int i) {
+ ItemStack itemstack = null;
+ Slot slot = (Slot) this.c.get(i);
+
+ if (slot != null && slot.d()) {
+ ItemStack itemstack1 = slot.getItem();
+
+ itemstack = itemstack1.cloneItemStack();
+ if (i < this.a.getSize()) {
+ if (!this.a(itemstack1, this.a.getSize(), this.c.size(), true)) {
+ return null;
+ }
+ } else if (!this.a(itemstack1, 0, this.a.getSize(), false)) {
+ return null;
+ }
+
+ if (itemstack1.count == 0) {
+ slot.set((ItemStack) null);
+ } else {
+ slot.e();
+ }
+ }
+
+ return itemstack;
+ }
+
+ public void b(EntityHuman entityhuman) {
+ super.b(entityhuman);
+ this.a.g();
+ }
+}