diff --git a/Changelog.txt b/Changelog.txt index 6fe796b8f..1625179dc 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -29,6 +29,7 @@ Version 1.5.01-dev = Fixed bug which would cause a NullPointerException with getFlowerAndGrassXp() = Fixed bug which could cause and SQLException regarding the connection property 'maxReconnects'. = Fixed bug where falling blocks were incorrectly tracked + = Fixed bug where items would get deleted when in Berserk with a full inventory ! Changed SecondaryAbilityEvent to implement Cancellable and it now gets fired for damage related secondary abilities ! Changed the way mcMMO handles bonus damage, updated for the new damage event API ! Changed player data saving. Save tasks are now asynchronous diff --git a/src/main/java/com/gmail/nossr50/listeners/PlayerListener.java b/src/main/java/com/gmail/nossr50/listeners/PlayerListener.java index 6d6b76b80..59f9532dc 100644 --- a/src/main/java/com/gmail/nossr50/listeners/PlayerListener.java +++ b/src/main/java/com/gmail/nossr50/listeners/PlayerListener.java @@ -332,9 +332,10 @@ public class PlayerListener implements Listener { } if ((mcMMOPlayer.isUsingUnarmed() && ItemUtils.isSharable(dropStack)) || mcMMOPlayer.getAbilityMode(AbilityType.BERSERK)) { - event.setCancelled(Unarmed.handleItemPickup(player.getInventory(), drop)); + boolean pickupSuccess = Unarmed.handleItemPickup(player.getInventory(), drop); + event.setCancelled(pickupSuccess); - if (event.isCancelled()) { + if (pickupSuccess) { player.playSound(player.getLocation(), Sound.ITEM_PICKUP, Misc.POP_VOLUME, Misc.getPopPitch()); player.updateInventory(); return; diff --git a/src/main/java/com/gmail/nossr50/skills/unarmed/Unarmed.java b/src/main/java/com/gmail/nossr50/skills/unarmed/Unarmed.java index be1f1bbf8..29d637fcd 100644 --- a/src/main/java/com/gmail/nossr50/skills/unarmed/Unarmed.java +++ b/src/main/java/com/gmail/nossr50/skills/unarmed/Unarmed.java @@ -69,6 +69,9 @@ public class Unarmed { nextSlot++; } + + // Inventory is full - cancel the item pickup + return false; } else if (firstEmpty != -1) { drop.remove();