From f96eb5ac4703851935b0e6c19b23aee9c45a5b8f Mon Sep 17 00:00:00 2001 From: garbagemule Date: Mon, 7 Apr 2014 00:55:17 +0200 Subject: [PATCH] Manually copy arena container contents; fixes reduce-to-0 bug. --- resources/plugin.yml | 2 +- .../MobArena/repairable/RepairableContainer.java | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/resources/plugin.yml b/resources/plugin.yml index 3ca8865..8968b3d 100644 --- a/resources/plugin.yml +++ b/resources/plugin.yml @@ -1,7 +1,7 @@ name: MobArena author: garbagemule main: com.garbagemule.MobArena.MobArena -version: 0.96.3.2 +version: 0.96.3.3 softdepend: [Multiverse-Core,Towny,Heroes,MagicSpells,Vault] commands: ma: diff --git a/src/com/garbagemule/MobArena/repairable/RepairableContainer.java b/src/com/garbagemule/MobArena/repairable/RepairableContainer.java index d42b6af..7e2df2f 100644 --- a/src/com/garbagemule/MobArena/repairable/RepairableContainer.java +++ b/src/com/garbagemule/MobArena/repairable/RepairableContainer.java @@ -15,7 +15,13 @@ public class RepairableContainer extends RepairableBlock // Grab the inventory of the block Inventory inv = ((InventoryHolder) state).getInventory(); - contents = inv.getContents(); + ItemStack[] stacks = inv.getContents(); + + // Manual copy is necessary due to "reduce to 0" bug in Bukkit + contents = new ItemStack[stacks.length]; + for (int i = 0; i < contents.length; i++) { + contents[i] = (stacks[i] != null) ? stacks[i].clone() : null; + } // Clear the inventory if prompted if (clear) inv.clear();