From b36e62effd1fb324e11ccede6b37f3688fab8878 Mon Sep 17 00:00:00 2001 From: fullwall Date: Mon, 2 Nov 2015 19:53:04 +0800 Subject: [PATCH] Fix despawn events not being called when NPC is killed while vulnerable --- .../java/net/citizensnpcs/npc/CitizensNPC.java | 2 +- .../citizensnpcs/npc/ai/CitizensNavigator.java | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/main/java/net/citizensnpcs/npc/CitizensNPC.java b/src/main/java/net/citizensnpcs/npc/CitizensNPC.java index eeb036332..273bdbdb2 100644 --- a/src/main/java/net/citizensnpcs/npc/CitizensNPC.java +++ b/src/main/java/net/citizensnpcs/npc/CitizensNPC.java @@ -59,7 +59,7 @@ public class CitizensNPC extends AbstractNPC { @Override public boolean despawn(DespawnReason reason) { - if (!isSpawned()) { + if (!isSpawned() && reason != DespawnReason.DEATH) { Messaging.debug("Tried to despawn", getId(), "while already despawned."); if (reason == DespawnReason.REMOVAL) { Bukkit.getPluginManager().callEvent(new NPCDespawnEvent(this, reason)); diff --git a/src/main/java/net/citizensnpcs/npc/ai/CitizensNavigator.java b/src/main/java/net/citizensnpcs/npc/ai/CitizensNavigator.java index 555d3b97b..8436a22f7 100644 --- a/src/main/java/net/citizensnpcs/npc/ai/CitizensNavigator.java +++ b/src/main/java/net/citizensnpcs/npc/ai/CitizensNavigator.java @@ -3,6 +3,15 @@ package net.citizensnpcs.npc.ai; import java.util.Iterator; import java.util.ListIterator; +import org.bukkit.Bukkit; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.block.BlockFace; +import org.bukkit.entity.Entity; +import org.bukkit.entity.LivingEntity; +import org.bukkit.util.Vector; + import net.citizensnpcs.Settings.Setting; import net.citizensnpcs.api.ai.EntityTarget; import net.citizensnpcs.api.ai.Navigator; @@ -26,15 +35,6 @@ import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.util.DataKey; import net.citizensnpcs.util.NMS; -import org.bukkit.Bukkit; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.block.Block; -import org.bukkit.block.BlockFace; -import org.bukkit.entity.Entity; -import org.bukkit.entity.LivingEntity; -import org.bukkit.util.Vector; - public class CitizensNavigator implements Navigator, Runnable { private final NavigatorParameters defaultParams = new NavigatorParameters().baseSpeed(UNINITIALISED_SPEED) .range(Setting.DEFAULT_PATHFINDING_RANGE.asFloat())