From 6b44e5d274dece8b52a3a9dbabc4765f53a46b17 Mon Sep 17 00:00:00 2001 From: mcmonkey Date: Sun, 9 Sep 2018 14:47:13 -0700 Subject: [PATCH] add some npc id validation --- .../main/java/net/aufdemrand/denizen/npc/dNPCRegistry.java | 6 +++--- .../src/main/java/net/aufdemrand/denizen/objects/dNPC.java | 3 +++ 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/plugin/src/main/java/net/aufdemrand/denizen/npc/dNPCRegistry.java b/plugin/src/main/java/net/aufdemrand/denizen/npc/dNPCRegistry.java index 1d3543262f..cd84c6aa40 100644 --- a/plugin/src/main/java/net/aufdemrand/denizen/npc/dNPCRegistry.java +++ b/plugin/src/main/java/net/aufdemrand/denizen/npc/dNPCRegistry.java @@ -219,14 +219,14 @@ public void onSpawn(NPCSpawnEvent event) { */ @EventHandler public void despawn(NPCDespawnEvent event) { - dNPC npc = getDenizen(event.getNPC().getId()); + dNPC npc = getDenizen(event.getNPC()); // Do world script event 'On NPC Despawns' - if (npc != null) { + if (npc != null && npc.isValid()) { OldEventManager.doEvents(Arrays.asList("npc despawns"), new BukkitScriptEntryData(null, npc), null); } - if (npc != null) { + if (npc != null && npc.isValid()) { npc.action("despawn", null); } } diff --git a/plugin/src/main/java/net/aufdemrand/denizen/objects/dNPC.java b/plugin/src/main/java/net/aufdemrand/denizen/objects/dNPC.java index f6c1a40b4d..1ae254ec48 100644 --- a/plugin/src/main/java/net/aufdemrand/denizen/objects/dNPC.java +++ b/plugin/src/main/java/net/aufdemrand/denizen/objects/dNPC.java @@ -151,6 +151,9 @@ public dNPC(NPC citizensNPC) { } public NPC getCitizen() { + if (npcid < 0) { + return null; + } NPC npc = CitizensAPI.getNPCRegistry().getById(npcid); if (npc == null) { //dB.echoError(new RuntimeException("StackTraceOutput"));