From 3e519f95d5c6b81ee2c18344c1211789019e7647 Mon Sep 17 00:00:00 2001 From: KHobbits Date: Wed, 26 Jun 2013 21:44:34 +0100 Subject: [PATCH] Don't drop oversized stacks on the ground if player doesn't have oversized permission. --- Essentials/src/com/earth2me/essentials/Kit.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/Kit.java b/Essentials/src/com/earth2me/essentials/Kit.java index 39fc0fc66..e06727dfb 100644 --- a/Essentials/src/com/earth2me/essentials/Kit.java +++ b/Essentials/src/com/earth2me/essentials/Kit.java @@ -194,7 +194,8 @@ public class Kit } final Map overfilled; - if (user.isAuthorized("essentials.oversizedstacks")) + final boolean allowOversizedStacks = user.isAuthorized("essentials.oversizedstacks"); + if (allowOversizedStacks) { overfilled = InventoryWorkaround.addOversizedItems(user.getInventory(), ess.getSettings().getOversizedStackSize(), metaStack.getItemStack()); } @@ -204,7 +205,14 @@ public class Kit } for (ItemStack itemStack : overfilled.values()) { - user.getWorld().dropItemNaturally(user.getLocation(), itemStack); + int spillAmount = itemStack.getAmount(); + if (!allowOversizedStacks) { + itemStack.setAmount(spillAmount < itemStack.getMaxStackSize() ? spillAmount : itemStack.getMaxStackSize()); + } + while (spillAmount > 0) { + user.getWorld().dropItemNaturally(user.getLocation(), itemStack); + spillAmount -= itemStack.getAmount(); + } spew = true; } }