diff --git a/pom.xml b/pom.xml index d35027ef2..3b3c6ab8c 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ me.blackvein.quests quests - 3.2.5 + 3.2.6 quests https://github.com/FlyingPikachu/Quests/ jar diff --git a/src/main/java/me/blackvein/quests/NpcEffectThread.java b/src/main/java/me/blackvein/quests/NpcEffectThread.java index 3b39bf30a..0b0917b98 100644 --- a/src/main/java/me/blackvein/quests/NpcEffectThread.java +++ b/src/main/java/me/blackvein/quests/NpcEffectThread.java @@ -51,7 +51,7 @@ public class NpcEffectThread implements Runnable { NPC npc = plugin.citizens.getNPCRegistry().getNPC(e); if (plugin.hasQuest(npc, quester)) { showEffect(player, npc, Quests.effect); - } else if (plugin.hasCompletedQuest(npc, quester)) { + } else if (plugin.hasCompletedRedoableQuest(npc, quester)) { showEffect(player, npc, Quests.redoEffect); } } diff --git a/src/main/java/me/blackvein/quests/Quests.java b/src/main/java/me/blackvein/quests/Quests.java index 690cbbce3..75714ee3d 100644 --- a/src/main/java/me/blackvein/quests/Quests.java +++ b/src/main/java/me/blackvein/quests/Quests.java @@ -3966,6 +3966,7 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener return false; } + // Unused internally, left for external use public boolean hasCompletedQuest(NPC npc, Quester quester) { for (Quest q : quests) { if (q.npcStart != null && quester.completedQuests.contains(q.name) == true) { @@ -3978,6 +3979,19 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener } return false; } + + public boolean hasCompletedRedoableQuest(NPC npc, Quester quester) { + for (Quest q : quests) { + if (q.npcStart != null && quester.completedQuests.contains(q.name) == true && q.redoDelay > -1) { + if (q.npcStart.getId() == npc.getId()) { + if (ignoreLockedQuests == false || ignoreLockedQuests == true && q.testRequirements(quester) == true) { + return true; + } + } + } + } + return false; + } public static int getMCMMOSkillLevel(SkillType st, String player) { McMMOPlayer mPlayer = UserManager.getPlayer(player);