From 2e178520816eeb09d356746a159257fd70e1defb Mon Sep 17 00:00:00 2001 From: PikaMug <2267126+PikaMug@users.noreply.github.com> Date: Thu, 30 Jul 2020 18:09:34 -0400 Subject: [PATCH] Ignore cooldown after repeat cycle, part 4. Fixes #1244 --- .../convo/npcs/NpcOfferQuestPrompt.java | 3 +- .../quests/listeners/NpcListener.java | 34 +++++++++++++++++-- 2 files changed, 32 insertions(+), 5 deletions(-) diff --git a/main/src/main/java/me/blackvein/quests/convo/npcs/NpcOfferQuestPrompt.java b/main/src/main/java/me/blackvein/quests/convo/npcs/NpcOfferQuestPrompt.java index 7c5be007c..b292b6e35 100644 --- a/main/src/main/java/me/blackvein/quests/convo/npcs/NpcOfferQuestPrompt.java +++ b/main/src/main/java/me/blackvein/quests/convo/npcs/NpcOfferQuestPrompt.java @@ -101,8 +101,7 @@ public class NpcOfferQuestPrompt extends StringPrompt { Player player = quester.getPlayer(); if (quester.canAcceptOffer(q, true)) { quester.setQuestToTake(q.getName()); - String s = extracted(plugin, quester); - for (String msg : s.split("
")) { + for (String msg : extracted(plugin, quester).split("
")) { player.sendMessage(msg); } if (!plugin.getSettings().canAskConfirmation()) { diff --git a/main/src/main/java/me/blackvein/quests/listeners/NpcListener.java b/main/src/main/java/me/blackvein/quests/listeners/NpcListener.java index 14d2fb5cf..9d5a297f8 100644 --- a/main/src/main/java/me/blackvein/quests/listeners/NpcListener.java +++ b/main/src/main/java/me/blackvein/quests/listeners/NpcListener.java @@ -37,7 +37,6 @@ import me.blackvein.quests.Quester; import me.blackvein.quests.Quests; import me.blackvein.quests.util.ItemUtil; import me.blackvein.quests.util.Lang; -import me.blackvein.quests.util.MiscUtil; import me.blackvein.quests.util.RomanNumeral; import net.citizensnpcs.api.CitizensAPI; import net.citizensnpcs.api.event.NPCDeathEvent; @@ -230,7 +229,36 @@ public class NpcListener implements Listener { } if (npcQuests.isEmpty() == false && npcQuests.size() == 1) { Quest q = npcQuests.get(0); - if (!quester.getCompletedQuests().contains(q.getName())) { + if (quester.canAcceptOffer(q, true)) { + quester.setQuestToTake(q.getName()); + if (!plugin.getSettings().canAskConfirmation()) { + quester.takeQuest(q, false); + } else { + if (q.getGUIDisplay() != null) { + quester.showGUIDisplay(evt.getNPC(), npcQuests); + } else { + for (String msg : extracted(quester).split("
")) { + player.sendMessage(msg); + } + plugin.getConversationFactory().buildConversation((Conversable) player).begin(); + } + } + } + } else if (npcQuests.isEmpty() == false && npcQuests.size() > 1) { + if (hasAtLeastOneGUI) { + quester.showGUIDisplay(evt.getNPC(), npcQuests); + } else { + Conversation c = plugin.getNpcConversationFactory().buildConversation(player); + c.getContext().setSessionData("npcQuests", npcQuests); + c.getContext().setSessionData("npc", evt.getNPC().getName()); + c.begin(); + } + return; + } else if (npcQuests.isEmpty()) { + evt.getClicker().sendMessage(ChatColor.YELLOW + Lang.get(player, "noMoreQuest")); + } + + /*if (!quester.getCompletedQuests().contains(q.getName())) { if (quester.getCurrentQuests().size() < plugin.getSettings().getMaxQuests() || plugin.getSettings().getMaxQuests() < 1) { quester.setQuestToTake(q.getName()); @@ -296,7 +324,7 @@ public class NpcListener implements Listener { return; } else if (npcQuests.isEmpty()) { evt.getClicker().sendMessage(ChatColor.YELLOW + Lang.get(player, "noMoreQuest")); - } + }*/ } } }