From d5db9d404aefd8ddc96c916119e63caee3f6083d Mon Sep 17 00:00:00 2001 From: snowleo Date: Sun, 27 Nov 2011 10:59:28 +0100 Subject: Revert to the old behavior of oversized stacks. We might remove or change this in the future. --- .../src/com/earth2me/essentials/InventoryWorkaround.java | 11 ++++++++--- .../src/com/earth2me/essentials/commands/Commandgive.java | 2 +- .../src/com/earth2me/essentials/commands/Commanditem.java | 2 +- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/InventoryWorkaround.java b/Essentials/src/com/earth2me/essentials/InventoryWorkaround.java index a5cfdd036..4ce5cb52e 100644 --- a/Essentials/src/com/earth2me/essentials/InventoryWorkaround.java +++ b/Essentials/src/com/earth2me/essentials/InventoryWorkaround.java @@ -80,6 +80,11 @@ public final class InventoryWorkaround } public static Map addItem(final Inventory cinventory, final boolean forceDurability, final ItemStack... items) + { + return addItem(cinventory, forceDurability, false, null, items); + } + + public static Map addItem(final Inventory cinventory, final boolean forceDurability, final boolean dontBreakStacks, final IEssentials ess, final ItemStack... items) { final Map leftover = new HashMap(); @@ -142,10 +147,10 @@ public final class InventoryWorkaround else { // More than a single stack! - if (item.getAmount() > item.getType().getMaxStackSize()) + if (item.getAmount() > (dontBreakStacks ? ess.getSettings().getDefaultStackSize() : item.getType().getMaxStackSize())) { ItemStack stack = item.clone(); - stack.setAmount(item.getType().getMaxStackSize()); + stack.setAmount(dontBreakStacks ? ess.getSettings().getDefaultStackSize() : item.getType().getMaxStackSize()); EnchantmentFix.setItem(cinventory, firstFree, stack); item.setAmount(item.getAmount() - item.getType().getMaxStackSize()); } @@ -164,7 +169,7 @@ public final class InventoryWorkaround final int amount = item.getAmount(); final int partialAmount = partialItem.getAmount(); - final int maxAmount = partialItem.getType().getMaxStackSize(); + final int maxAmount = dontBreakStacks ? ess.getSettings().getDefaultStackSize() : partialItem.getType().getMaxStackSize(); // Check if it fully fits if (amount + partialAmount <= maxAmount) diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandgive.java b/Essentials/src/com/earth2me/essentials/commands/Commandgive.java index a9d9bdd6c..32b0564b7 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandgive.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandgive.java @@ -77,7 +77,7 @@ public class Commandgive extends EssentialsCommand final User giveTo = getPlayer(server, args, 0); final String itemName = stack.getType().toString().toLowerCase(Locale.ENGLISH).replace('_', ' '); sender.sendMessage(ChatColor.BLUE + "Giving " + stack.getAmount() + " of " + itemName + " to " + giveTo.getDisplayName() + "."); - InventoryWorkaround.addItem(giveTo.getInventory(), true, stack); + InventoryWorkaround.addItem(giveTo.getInventory(), true, true, ess, stack); giveTo.updateInventory(); } } diff --git a/Essentials/src/com/earth2me/essentials/commands/Commanditem.java b/Essentials/src/com/earth2me/essentials/commands/Commanditem.java index 8bdec5e4f..0d30b4e77 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commanditem.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commanditem.java @@ -72,7 +72,7 @@ public class Commanditem extends EssentialsCommand final String displayName = stack.getType().toString().toLowerCase(Locale.ENGLISH).replace('_', ' '); user.sendMessage(_("itemSpawn", stack.getAmount(), displayName)); - InventoryWorkaround.addItem(user.getInventory(), true, stack); + InventoryWorkaround.addItem(user.getInventory(), true, true, ess, stack); user.updateInventory(); } } -- cgit v1.2.3