diff options
author | snowleo <schneeleo@gmail.com> | 2011-11-27 10:59:28 +0100 |
---|---|---|
committer | snowleo <schneeleo@gmail.com> | 2011-11-27 10:59:28 +0100 |
commit | d5db9d404aefd8ddc96c916119e63caee3f6083d (patch) | |
tree | f53b08bee2572955c935451dfcefa430390b8de0 | |
parent | 0c0c9573be219c15778af830a775b268d1d95c82 (diff) | |
download | Essentials-d5db9d404aefd8ddc96c916119e63caee3f6083d.tar Essentials-d5db9d404aefd8ddc96c916119e63caee3f6083d.tar.gz Essentials-d5db9d404aefd8ddc96c916119e63caee3f6083d.tar.lz Essentials-d5db9d404aefd8ddc96c916119e63caee3f6083d.tar.xz Essentials-d5db9d404aefd8ddc96c916119e63caee3f6083d.zip |
Revert to the old behavior of oversized stacks. We might remove or change this in the future.
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 @@ -81,6 +81,11 @@ public final class InventoryWorkaround public static Map<Integer, ItemStack> addItem(final Inventory cinventory, final boolean forceDurability, final ItemStack... items) { + return addItem(cinventory, forceDurability, false, null, items); + } + + public static Map<Integer, ItemStack> addItem(final Inventory cinventory, final boolean forceDurability, final boolean dontBreakStacks, final IEssentials ess, final ItemStack... items) + { final Map<Integer, ItemStack> leftover = new HashMap<Integer, ItemStack>(); /* TODO: some optimization @@ -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(); } } |