From e330e09b8e3be79f5807238905bc589eae92859f Mon Sep 17 00:00:00 2001 From: EmmaIreland Date: Mon, 14 Apr 2014 20:19:50 -0500 Subject: [PATCH 1/5] In craftbukkit.inventory.CraftInventoryCustom.java, we took duplicate code from splitStack and splitWithoutUpdate and merged them into one method called splitMerged. --- .../inventory/CraftInventoryCustom.java | 51 ++++++++++++------- 1 file changed, 32 insertions(+), 19 deletions(-) diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryCustom.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryCustom.java index a02a723d51..fdff5f4af4 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryCustom.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryCustom.java @@ -3,16 +3,16 @@ import java.util.ArrayList; import java.util.List; +import net.minecraft.server.EntityHuman; +import net.minecraft.server.IInventory; +import net.minecraft.server.ItemStack; + import org.apache.commons.lang.Validate; import org.bukkit.craftbukkit.entity.CraftHumanEntity; import org.bukkit.entity.HumanEntity; import org.bukkit.event.inventory.InventoryType; import org.bukkit.inventory.InventoryHolder; -import net.minecraft.server.EntityHuman; -import net.minecraft.server.IInventory; -import net.minecraft.server.ItemStack; - public class CraftInventoryCustom extends CraftInventory { public CraftInventoryCustom(InventoryHolder owner, InventoryType type) { super(new MinecraftInventory(owner, type)); @@ -53,43 +53,42 @@ public MinecraftInventory(InventoryHolder owner, int size, String title) { this.type = InventoryType.CHEST; } + @Override public int getSize() { return items.length; } + @Override public ItemStack getItem(int i) { return items[i]; } + @Override public ItemStack splitStack(int i, int j) { - ItemStack stack = this.getItem(i); - ItemStack result; - if (stack == null) return null; - if (stack.count <= j) { - this.setItem(i, null); - result = stack; - } else { - result = CraftItemStack.copyNMSStack(stack, j); - stack.count -= j; - } - this.update(); - return result; + return splitMerged(i, j, true); } + @Override public ItemStack splitWithoutUpdate(int i) { + return splitMerged(i, 1, false); + } + + public ItemStack splitMerged(int i, int j, boolean update) { ItemStack stack = this.getItem(i); ItemStack result; if (stack == null) return null; - if (stack.count <= 1) { + if (stack.count <= j) { this.setItem(i, null); result = stack; } else { - result = CraftItemStack.copyNMSStack(stack, 1); - stack.count -= 1; + result = CraftItemStack.copyNMSStack(stack, j); + stack.count -= j; } + if (update) this.update(); return result; } + @Override public void setItem(int i, ItemStack itemstack) { items[i] = itemstack; if (itemstack != null && this.getMaxStackSize() > 0 && itemstack.count > this.getMaxStackSize()) { @@ -97,36 +96,45 @@ public void setItem(int i, ItemStack itemstack) { } } + @Override public String getInventoryName() { return title; } + @Override public int getMaxStackSize() { return maxStack; } + @Override public void setMaxStackSize(int size) { maxStack = size; } + @Override public void update() {} + @Override public boolean a(EntityHuman entityhuman) { return true; } + @Override public ItemStack[] getContents() { return items; } + @Override public void onOpen(CraftHumanEntity who) { viewers.add(who); } + @Override public void onClose(CraftHumanEntity who) { viewers.remove(who); } + @Override public List getViewers() { return viewers; } @@ -135,18 +143,23 @@ public InventoryType getType() { return type; } + @Override public void l_() {} + @Override public InventoryHolder getOwner() { return owner; } + @Override public void startOpen() {} + @Override public boolean k_() { return false; } + @Override public boolean b(int i, ItemStack itemstack) { return true; } From c78e6f82af8d67383a20437c2bae3be00c1a3688 Mon Sep 17 00:00:00 2001 From: EmmaIreland Date: Fri, 18 Apr 2014 17:19:54 -0500 Subject: [PATCH 2/5] Reorganized imports and removed @Override lines that Eclipse helpfully added. --- .../inventory/CraftInventoryCustom.java | 27 +++---------------- 1 file changed, 4 insertions(+), 23 deletions(-) diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryCustom.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryCustom.java index fdff5f4af4..f64c60da15 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryCustom.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryCustom.java @@ -3,16 +3,16 @@ import java.util.ArrayList; import java.util.List; -import net.minecraft.server.EntityHuman; -import net.minecraft.server.IInventory; -import net.minecraft.server.ItemStack; - import org.apache.commons.lang.Validate; import org.bukkit.craftbukkit.entity.CraftHumanEntity; import org.bukkit.entity.HumanEntity; import org.bukkit.event.inventory.InventoryType; import org.bukkit.inventory.InventoryHolder; +import net.minecraft.server.EntityHuman; +import net.minecraft.server.IInventory; +import net.minecraft.server.ItemStack; + public class CraftInventoryCustom extends CraftInventory { public CraftInventoryCustom(InventoryHolder owner, InventoryType type) { super(new MinecraftInventory(owner, type)); @@ -53,22 +53,18 @@ public MinecraftInventory(InventoryHolder owner, int size, String title) { this.type = InventoryType.CHEST; } - @Override public int getSize() { return items.length; } - @Override public ItemStack getItem(int i) { return items[i]; } - @Override public ItemStack splitStack(int i, int j) { return splitMerged(i, j, true); } - @Override public ItemStack splitWithoutUpdate(int i) { return splitMerged(i, 1, false); } @@ -88,7 +84,6 @@ public ItemStack splitMerged(int i, int j, boolean update) { return result; } - @Override public void setItem(int i, ItemStack itemstack) { items[i] = itemstack; if (itemstack != null && this.getMaxStackSize() > 0 && itemstack.count > this.getMaxStackSize()) { @@ -96,45 +91,36 @@ public void setItem(int i, ItemStack itemstack) { } } - @Override public String getInventoryName() { return title; } - @Override public int getMaxStackSize() { return maxStack; } - @Override public void setMaxStackSize(int size) { maxStack = size; } - @Override public void update() {} - @Override public boolean a(EntityHuman entityhuman) { return true; } - @Override public ItemStack[] getContents() { return items; } - @Override public void onOpen(CraftHumanEntity who) { viewers.add(who); } - @Override public void onClose(CraftHumanEntity who) { viewers.remove(who); } - @Override public List getViewers() { return viewers; } @@ -143,23 +129,18 @@ public InventoryType getType() { return type; } - @Override public void l_() {} - @Override public InventoryHolder getOwner() { return owner; } - @Override public void startOpen() {} - @Override public boolean k_() { return false; } - @Override public boolean b(int i, ItemStack itemstack) { return true; } From 8d6e251e7fffe818951a4ddb58a3d4fc88580c3c Mon Sep 17 00:00:00 2001 From: EmmaIreland Date: Fri, 18 Apr 2014 17:36:26 -0500 Subject: [PATCH 3/5] Renamed method "splitMerged" to "splitHelper", as the original name was a misnomer. --- .../bukkit/craftbukkit/inventory/CraftInventoryCustom.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryCustom.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryCustom.java index f64c60da15..dae7a8233a 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryCustom.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryCustom.java @@ -62,14 +62,14 @@ public ItemStack getItem(int i) { } public ItemStack splitStack(int i, int j) { - return splitMerged(i, j, true); + return splitHelper(i, j, true); } public ItemStack splitWithoutUpdate(int i) { - return splitMerged(i, 1, false); + return splitHelper(i, 1, false); } - public ItemStack splitMerged(int i, int j, boolean update) { + public ItemStack splitHelper(int i, int j, boolean update) { ItemStack stack = this.getItem(i); ItemStack result; if (stack == null) return null; From 9ba8b293dd011a79a1327cb90a7966013b430b63 Mon Sep 17 00:00:00 2001 From: EmmaIreland Date: Thu, 24 Apr 2014 10:42:13 -0500 Subject: [PATCH 4/5] Changed splitHelper to splitWithoutUpdate with a different signature from the original splitWithoutUpdate to more accurately reflect the logic of the method. --- .../craftbukkit/inventory/CraftInventoryCustom.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryCustom.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryCustom.java index dae7a8233a..ce68802f18 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryCustom.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryCustom.java @@ -62,14 +62,16 @@ public ItemStack getItem(int i) { } public ItemStack splitStack(int i, int j) { - return splitHelper(i, j, true); + ItemStack stack = splitWithoutUpdate(i, j); + this.update(); + return stack; } public ItemStack splitWithoutUpdate(int i) { - return splitHelper(i, 1, false); + return splitWithoutUpdate(i, 1); } - public ItemStack splitHelper(int i, int j, boolean update) { + public ItemStack splitWithoutUpdate(int i, int j) { ItemStack stack = this.getItem(i); ItemStack result; if (stack == null) return null; @@ -80,7 +82,6 @@ public ItemStack splitHelper(int i, int j, boolean update) { result = CraftItemStack.copyNMSStack(stack, j); stack.count -= j; } - if (update) this.update(); return result; } From d96259e01ae4e9d74b074a87236f84e55af1207f Mon Sep 17 00:00:00 2001 From: EmmaIreland Date: Thu, 24 Apr 2014 10:45:50 -0500 Subject: [PATCH 5/5] Renamed the ItemStack that splitStack returns from "stack" to "result" to be consistent. --- .../bukkit/craftbukkit/inventory/CraftInventoryCustom.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryCustom.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryCustom.java index ce68802f18..eb402ba865 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryCustom.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryCustom.java @@ -62,9 +62,9 @@ public ItemStack getItem(int i) { } public ItemStack splitStack(int i, int j) { - ItemStack stack = splitWithoutUpdate(i, j); + ItemStack result = splitWithoutUpdate(i, j); this.update(); - return stack; + return result; } public ItemStack splitWithoutUpdate(int i) {