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("