From 8ee405fbfde34c12ade27518c61b4c8a1c3948fc Mon Sep 17 00:00:00 2001 From: nossr50 Date: Thu, 31 Dec 2020 15:49:32 -0800 Subject: [PATCH] Ignore "fake player" npcs in EntityPickupItemEvent --- Changelog.txt | 1 + .../com/gmail/nossr50/listeners/PlayerListener.java | 10 ++++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/Changelog.txt b/Changelog.txt index 1be88f3c3..9d7f4f4a6 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -7,6 +7,7 @@ Version 2.1.165 mcMMO will now be compatible with changes to world height (1.17 compatibility) Added missing cooldown locale message 'Commands.Database.Cooldown' Added new locale message 'Taming.Summon.COTW.Removed' + mcMMO will ignore PlayerPickupItem events from "Fake-Player" NPCs if it recognizes them as such, this will prevent some issues NOTES: Books dropped before this fix will not be usable and should just be chucked in lava, the broken books have blue names, the working books have yellow names. diff --git a/src/main/java/com/gmail/nossr50/listeners/PlayerListener.java b/src/main/java/com/gmail/nossr50/listeners/PlayerListener.java index 1339a8850..bf47ef5a0 100644 --- a/src/main/java/com/gmail/nossr50/listeners/PlayerListener.java +++ b/src/main/java/com/gmail/nossr50/listeners/PlayerListener.java @@ -447,6 +447,10 @@ public class PlayerListener implements Listener { if(WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld())) return; + if(Misc.isNPCEntityExcludingVillagers(event.getEntity())) { + return; + } + if(event.getEntity() instanceof Player) { Player player = (Player) event.getEntity(); @@ -463,13 +467,11 @@ public class PlayerListener implements Listener { } //Profile not loaded - if(UserManager.getPlayer(player) == null) - { + McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player); + if(mcMMOPlayer == null) { return; } - McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player); - Item drop = event.getItem(); ItemStack dropStack = drop.getItemStack();