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"));
- }
+ }*/
}
}
}