diff --git a/core/src/main/java/me/blackvein/quests/Dependencies.java b/core/src/main/java/me/blackvein/quests/Dependencies.java index 21d9695f3..c3d00908e 100644 --- a/core/src/main/java/me/blackvein/quests/Dependencies.java +++ b/core/src/main/java/me/blackvein/quests/Dependencies.java @@ -323,17 +323,16 @@ public class Dependencies implements IDependencies { return "NPC"; } - /** - * Checks whether an Entity is a supported NPC - * - * @param entity the Entity to check - * @return true if a supported NPC - */ - public boolean isSupportedNPC(Entity entity) { + public @Nullable UUID getUUIDFromNPC(final Entity entity) { if (citizens != null && citizens.getNPCRegistry().isNPC(entity)) { - return true; + return citizens.getNPCRegistry().getNPC(entity).getUniqueId(); + } else if (getZnpcsUuids().contains(entity.getUniqueId())) { + final Optional opt = NPC.all().stream().filter(npc1 -> npc1.getUUID().equals(entity.getUniqueId())).findAny(); + if (opt.isPresent()) { + return opt.get().getUUID(); + } } - return getZnpcsUuids().contains(entity.getUniqueId()); + return null; } public int getMcmmoSkillLevel(final SkillType st, final String player) { diff --git a/core/src/main/java/me/blackvein/quests/tasks/NpcEffectThread.java b/core/src/main/java/me/blackvein/quests/tasks/NpcEffectThread.java index f2e96a4c8..50fb36061 100644 --- a/core/src/main/java/me/blackvein/quests/tasks/NpcEffectThread.java +++ b/core/src/main/java/me/blackvein/quests/tasks/NpcEffectThread.java @@ -22,6 +22,7 @@ import org.bukkit.entity.Entity; import org.bukkit.entity.Player; import java.util.List; +import java.util.UUID; public class NpcEffectThread implements Runnable { @@ -38,15 +39,16 @@ public class NpcEffectThread implements Runnable { if (!nearby.isEmpty()) { final Quester quester = plugin.getQuester(player.getUniqueId()); for (final Entity entity : nearby) { - if (plugin.getDependencies().isSupportedNPC(entity)) { + UUID uuid = plugin.getDependencies().getUUIDFromNPC(entity); + if (uuid != null) { final QuesterPostViewEffectEvent event; - if (plugin.hasQuest(entity.getUniqueId(), quester)) { + if (plugin.hasQuest(uuid, quester)) { showEffect(player, entity, plugin.getSettings().getEffect()); event = new QuesterPostViewEffectEvent(quester, entity, plugin.getSettings().getEffect(), false); plugin.getServer().getPluginManager().callEvent(event); - } else if (plugin.hasCompletedRedoableQuest(entity.getUniqueId(), quester)) { + } else if (plugin.hasCompletedRedoableQuest(uuid, quester)) { showEffect(player, entity, plugin.getSettings().getRedoEffect()); event = new QuesterPostViewEffectEvent(quester, entity, diff --git a/pom.xml b/pom.xml index c7d281a70..8787a67f2 100644 --- a/pom.xml +++ b/pom.xml @@ -21,7 +21,7 @@ - 4.7.0 + 4.7.1 true resolveCiFriendliesOnly UTF-8