From ea2df83ca5b566ee70a8f1b5ccd66c6b7389fd61 Mon Sep 17 00:00:00 2001 From: fullwall Date: Thu, 14 Dec 2023 21:06:50 +0800 Subject: [PATCH] Avoid NPE for rotationtrait removal --- .../java/net/citizensnpcs/ProtocolLibListener.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/main/src/main/java/net/citizensnpcs/ProtocolLibListener.java b/main/src/main/java/net/citizensnpcs/ProtocolLibListener.java index 17e17a74c..dc73a295f 100644 --- a/main/src/main/java/net/citizensnpcs/ProtocolLibListener.java +++ b/main/src/main/java/net/citizensnpcs/ProtocolLibListener.java @@ -14,6 +14,7 @@ import org.bukkit.entity.EntityType; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; +import org.bukkit.event.entity.EntityDeathEvent; import com.comphenix.protocol.PacketType; import com.comphenix.protocol.PacketType.Play.Server; @@ -248,9 +249,16 @@ public class ProtocolLibListener implements Listener { return entity instanceof NPCHolder ? ((NPCHolder) entity).getNPC() : null; } + @EventHandler(ignoreCancelled = true) + public void onEntityDeath(EntityDeathEvent event) { + rotationTraits.remove(event.getEntity().getEntityId()); + } + @EventHandler(ignoreCancelled = true) public void onNPCDespawn(NPCDespawnEvent event) { - rotationTraits.remove(event.getNPC().getEntity().getEntityId()); + if (event.getNPC().getEntity() != null) { + rotationTraits.remove(event.getNPC().getEntity().getEntityId()); + } mirrorTraits.remove(event.getNPC().getEntity().getUniqueId()); }