diff --git a/main/src/main/java/net/citizensnpcs/EventListen.java b/main/src/main/java/net/citizensnpcs/EventListen.java index e5c55e8d9..229a45e80 100644 --- a/main/src/main/java/net/citizensnpcs/EventListen.java +++ b/main/src/main/java/net/citizensnpcs/EventListen.java @@ -130,7 +130,7 @@ public class EventListen implements Listener { skinUpdateTracker = new SkinUpdateTracker(); try { Class.forName("org.bukkit.event.world.EntitiesLoadEvent"); - Bukkit.getPluginManager().registerEvents(new Listener() { + Bukkit.getPluginManager().registerEvents(chunkEventListener = new Listener() { @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) public void onEntitiesLoad(EntitiesLoadEvent event) { loadNPCs(event); @@ -253,24 +253,14 @@ public class EventListen implements Listener { new double[] { (event.getChunk().getX() << 4) - 0.5, 0, (event.getChunk().getZ() << 4) - 0.5 }, new double[] { (event.getChunk().getX() + 1 << 4) + 0.5, 256, (event.getChunk().getZ() + 1 << 4) + 0.5 })); - if (SUPPORTS_UNLOAD_CHUNK_ENTITIES == null) { - try { - event.getChunk().getEntities(); - SUPPORTS_UNLOAD_CHUNK_ENTITIES = true; - } catch (Throwable t) { - SUPPORTS_UNLOAD_CHUNK_ENTITIES = false; - } - } - if (SUPPORTS_UNLOAD_CHUNK_ENTITIES) { - for (Entity entity : event.getChunk().getEntities()) { - NPC npc = CitizensAPI.getNPCRegistry().getNPC(entity); - // XXX npc#isSpawned() checks valid status which is now inconsistent on chunk unload - // between different server software so check for npc.getEntity() == null instead. - if (npc == null || npc.getEntity() == null || toDespawn.contains(npc)) - continue; + for (Entity entity : event.getChunk().getEntities()) { + NPC npc = CitizensAPI.getNPCRegistry().getNPC(entity); + // XXX npc#isSpawned() checks valid status which is now inconsistent on chunk unload + // between different server software so check for npc.getEntity() == null instead. + if (npc == null || npc.getEntity() == null || toDespawn.contains(npc)) + continue; - toDespawn.add(npc); - } + toDespawn.add(npc); } if (toDespawn.isEmpty()) return; @@ -966,6 +956,4 @@ public class EventListen implements Listener { } private static boolean SUPPORT_STOP_USE_ITEM = true; - - private static Boolean SUPPORTS_UNLOAD_CHUNK_ENTITIES; } \ No newline at end of file