*fix for quests who contain a same part in the name

*easier to select quests to edit.
This commit is contained in:
Zino 2013-08-06 21:35:17 +02:00
parent 83bdc7b458
commit 028079d885
2 changed files with 45 additions and 5 deletions

View File

@ -391,11 +391,29 @@ public class QuestFactory implements ConversationAbandonedListener, ColorUtil {
for (Quest q : quests.getQuests()) {
if (q.getName().equalsIgnoreCase(input) || q.getName().toLowerCase().contains(input.toLowerCase())) {
if (q.getName().equalsIgnoreCase(input)) {
loadQuest(context, q);
return new CreateMenuPrompt();
}
}
for (Quest q : quests.getQuests()) {
if (q.getName().toLowerCase().startsWith(input.toLowerCase())) {
loadQuest(context, q);
return new CreateMenuPrompt();
}
}
for (Quest q : quests.getQuests()) {
if (q.getName().toLowerCase().contains(input.toLowerCase())) {
loadQuest(context, q);
return new CreateMenuPrompt();
}
}
return new SelectEditPrompt();

View File

@ -68,14 +68,34 @@ public class QuestAcceptPrompt extends StringPrompt implements ColorUtil {
Quest q = null;
for (Quest quest : quests) {
if (quest.getName().equalsIgnoreCase(input) || StringUtils.containsIgnoreCase(quest.getName(), input) || numInput == (quests.indexOf(quest) + 1)) {
if (quest.getName().equalsIgnoreCase(input)) {
q = quest;
break;
}
}
if (q == null)
for (Quest quest : quests) {
if (numInput == (quests.indexOf(quest) + 1)) {
q = quest;
break;
}
}
if (q == null)
for (Quest quest : quests) {
if (StringUtils.containsIgnoreCase(quest.getName(), input)) {
q = quest;
break;
}
}
if (q == null) {
cc.getForWhom().sendRawMessage(RED + "Invalid Selection!");
return new QuestAcceptPrompt(plugin);
@ -121,7 +141,9 @@ public class QuestAcceptPrompt extends StringPrompt implements ColorUtil {
quester.questToTake = q.name;
String s = extracted(quester);
player.sendMessage(s);
for (String msg : s.split("<br>")) {
player.sendMessage(msg);
}
plugin.conversationFactory.buildConversation((Conversable) player).begin();
}