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 9949ac348..fdc8bc39f 100644
--- a/main/src/main/java/me/blackvein/quests/listeners/NpcListener.java
+++ b/main/src/main/java/me/blackvein/quests/listeners/NpcListener.java
@@ -18,6 +18,7 @@ import java.util.Map.Entry;
import org.bukkit.ChatColor;
import org.bukkit.Material;
+import org.bukkit.conversations.Conversable;
import org.bukkit.conversations.Conversation;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Entity;
@@ -189,18 +190,7 @@ public class NpcListener implements Listener {
}
}
}
- if (npcQuests.isEmpty() == false && npcQuests.size() >= 1) {
- if (hasAtLeastOneGUI) {
- quester.showGUIDisplay(evt.getNPC(), npcQuests);
- } else {
- Conversation c = plugin.getNpcConversationFactory().buildConversation(player);
- c.getContext().setSessionData("quests", npcQuests);
- c.getContext().setSessionData("npc", evt.getNPC().getName());
- c.begin();
- }
- return;
- } else if (npcQuests.size() == 1) {
- // TODO can this block even be reached?
+ if (npcQuests.isEmpty() == false && npcQuests.size() == 1) {
Quest q = npcQuests.get(0);
if (!quester.getCompletedQuests().contains(q.getName())) {
if (quester.getCurrentQuests().size() < plugin.getSettings().getMaxQuests() || plugin.getSettings().getMaxQuests() < 1) {
@@ -209,7 +199,11 @@ public class NpcListener implements Listener {
for (String msg : s.split("
")) {
player.sendMessage(msg);
}
- plugin.getNpcConversationFactory().buildConversation(player).begin();
+ if (!plugin.getSettings().canAskConfirmation()) {
+ plugin.getQuester(player.getUniqueId()).takeQuest(plugin.getQuest(plugin.getQuester(player.getUniqueId()).getQuestToTake()), false);
+ } else {
+ plugin.getConversationFactory().buildConversation((Conversable) player).begin();
+ }
} else if (quester.getCurrentQuests().containsKey(q) == false) {
String msg = Lang.get(player, "questMaxAllowed");
msg = msg.replace("", String.valueOf(plugin.getSettings().getMaxQuests()));
@@ -231,13 +225,27 @@ public class NpcListener implements Listener {
for (String msg : s.split("
")) {
player.sendMessage(msg);
}
- plugin.getConversationFactory().buildConversation(player).begin();
+ if (!plugin.getSettings().canAskConfirmation()) {
+ plugin.getQuester(player.getUniqueId()).takeQuest(plugin.getQuest(plugin.getQuester(player.getUniqueId()).getQuestToTake()), false);
+ } else {
+ plugin.getConversationFactory().buildConversation((Conversable) player).begin();
+ }
}
} else if (quester.getCurrentQuests().containsKey(q) == false) {
String msg = Lang.get(player, "questMaxAllowed");
msg = msg.replace("", String.valueOf(plugin.getSettings().getMaxQuests()));
player.sendMessage(ChatColor.YELLOW + msg);
}
+ } 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("quests", npcQuests);
+ c.getContext().setSessionData("npc", evt.getNPC().getName());
+ c.begin();
+ }
+ return;
} else if (npcQuests.isEmpty()) {
evt.getClicker().sendMessage(ChatColor.YELLOW + Lang.get(player, "noMoreQuest"));
}
diff --git a/main/src/main/java/me/blackvein/quests/prompts/QuestAcceptPrompt.java b/main/src/main/java/me/blackvein/quests/prompts/QuestAcceptPrompt.java
index 2eb94371f..6906f9b44 100644
--- a/main/src/main/java/me/blackvein/quests/prompts/QuestAcceptPrompt.java
+++ b/main/src/main/java/me/blackvein/quests/prompts/QuestAcceptPrompt.java
@@ -44,8 +44,7 @@ public class QuestAcceptPrompt extends StringPrompt {
quests = (LinkedList) cc.getSessionData("quests");
quester = plugin.getQuester(((Player) cc.getForWhom()).getUniqueId());
String npc = (String) cc.getSessionData("npc");
- String text = Lang.get("questNPCListTitle");
- text = text.replaceAll("", npc);
+ String text = Lang.get("questNPCListTitle").replace("", npc);
String menu = text + "\n";
for (int i = 1; i <= quests.size(); i++) {
Quest quest = quests.get(i - 1);
@@ -118,19 +117,19 @@ public class QuestAcceptPrompt extends StringPrompt {
}
} else if (quester.getCurrentQuests().containsKey(q) == false) {
String msg = Lang.get("questMaxAllowed");
- msg = msg.replaceAll("", String.valueOf(plugin.getSettings().getMaxQuests()));
+ msg = msg.replace("", String.valueOf(plugin.getSettings().getMaxQuests()));
player.sendMessage(ChatColor.YELLOW + msg);
}
} else if (quester.getCompletedQuests().contains(q.getName())) {
if (quester.getCurrentQuests().size() < plugin.getSettings().getMaxQuests() || plugin.getSettings().getMaxQuests() < 1) {
if (quester.getCooldownDifference(q) > 0) {
String early = Lang.get("questTooEarly");
- early = early.replaceAll("", ChatColor.AQUA + q.getName() + ChatColor.YELLOW);
- early = early.replaceAll("