diff --git a/Essentials/src/com/earth2me/essentials/EssentialsEntityListener.java b/Essentials/src/com/earth2me/essentials/EssentialsEntityListener.java index 3052f73a0..c14becb62 100644 --- a/Essentials/src/com/earth2me/essentials/EssentialsEntityListener.java +++ b/Essentials/src/com/earth2me/essentials/EssentialsEntityListener.java @@ -140,6 +140,10 @@ public class EssentialsEntityListener implements Listener { @EventHandler(priority = EventPriority.LOWEST) public void onPlayerDeathEvent(final PlayerDeathEvent event) { + Entity entity = event.getEntity(); + if (entity.hasMetadata("NPC")) { + return; + } final User user = ess.getUser(event.getEntity()); if (user.isAuthorized("essentials.back.ondeath") && !ess.getSettings().isCommandDisabled("back")) { user.setLastLocation(); diff --git a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java index 75cdd3bd6..c2b27dd14 100644 --- a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java +++ b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java @@ -438,7 +438,11 @@ public class EssentialsPlayerListener implements Listener { final boolean backListener = ess.getSettings().registerBackInListener(); final boolean teleportInvulnerability = ess.getSettings().isTeleportInvulnerability(); if (backListener || teleportInvulnerability) { - final User user = ess.getUser(event.getPlayer()); + Player player = event.getPlayer(); + if (player.hasMetadata("NPC")) { + return; + } + final User user = ess.getUser(player); //There is TeleportCause.COMMMAND but plugins have to actively pass the cause in on their teleports. if (backListener && (event.getCause() == TeleportCause.PLUGIN || event.getCause() == TeleportCause.COMMAND)) { user.setLastLocation();