Removed simulated onTalk method.

This commit is contained in:
MobiusDev
2017-08-09 00:11:10 +00:00
parent af0ea3c255
commit a35d8a82c3
103 changed files with 677 additions and 1053 deletions

View File

@@ -87,6 +87,10 @@ public class QuestLink implements IBypassHandler
final StringBuilder sbCanStart = new StringBuilder(128);
final StringBuilder sbCantStart = new StringBuilder(128);
final StringBuilder sbCompleted = new StringBuilder(128);
int availableQuestCounter = 0;
int inProgressQuestCounter = 0;
Quest lastSavedAvailableQuest = null;
Quest lastSavedProgressQuest = null;
//@formatter:off
final Set<Quest> startingQuests = npc.getListeners(EventType.ON_NPC_QUEST_START).stream()
@@ -109,11 +113,6 @@ public class QuestLink implements IBypassHandler
for (Quest quest : quests)
{
if (quest.getId() == 255) // do not list tutorial quest
{
continue;
}
final QuestState qs = player.getQuestState(quest.getScriptName());
if ((qs == null) || qs.isCreated() || (qs.isCompleted() && qs.isNowAvailable()))
{
@@ -128,6 +127,8 @@ public class QuestLink implements IBypassHandler
sbCanStart.append("<button icon=\"quest\" align=\"left\" action=\"bypass -h npc_" + npc.getObjectId() + "_Quest " + quest.getName() + "\">");
sbCanStart.append(quest.isCustomQuest() ? quest.getPath() : "<fstring>" + quest.getNpcStringId() + "01</fstring>");
sbCanStart.append("</button></font>");
availableQuestCounter++;
lastSavedAvailableQuest = quest;
}
else
{
@@ -137,16 +138,14 @@ public class QuestLink implements IBypassHandler
sbCantStart.append("</button></font>");
}
}
else if (Quest.getNoQuestMsg(player).equals(quest.onTalk(npc, player, true)))
{
continue;
}
else if (qs.isStarted())
{
sbStarted.append("<font color=\"ffdd66\">");
sbStarted.append("<button icon=\"quest\" align=\"left\" action=\"bypass -h npc_" + npc.getObjectId() + "_Quest " + quest.getName() + "\">");
sbStarted.append(quest.isCustomQuest() ? quest.getPath() + " (In Progress)" : "<fstring>" + quest.getNpcStringId() + "02</fstring>");
sbStarted.append("</button></font>");
inProgressQuestCounter++;
lastSavedProgressQuest = quest;
}
else if (qs.isCompleted())
{
@@ -157,6 +156,17 @@ public class QuestLink implements IBypassHandler
}
}
if ((availableQuestCounter == 0) && (inProgressQuestCounter == 1) && (lastSavedProgressQuest != null))
{
showQuestWindow(player, npc, lastSavedProgressQuest.getName());
return;
}
if ((availableQuestCounter == 1) && (inProgressQuestCounter == 0) && (lastSavedAvailableQuest != null))
{
showQuestWindow(player, npc, lastSavedAvailableQuest.getName());
return;
}
String content;
if ((sbStarted.length() > 0) || (sbCanStart.length() > 0) || (sbCantStart.length() > 0) || (sbCompleted.length() > 0))
{
@@ -223,7 +233,7 @@ public class QuestLink implements IBypassHandler
}
}
q.notifyTalk(npc, player, false);
q.notifyTalk(npc, player);
}
else
{
@@ -253,8 +263,7 @@ public class QuestLink implements IBypassHandler
.map(AbstractEventListener::getOwner)
.filter(Quest.class::isInstance)
.map(Quest.class::cast)
.filter(quest -> (quest.getId() > 0) && (quest.getId() < 20000))
//.filter(quest -> !Quest.getNoQuestMsg(player).equals(quest.onTalk(npc, player, true)))
.filter(quest -> (quest.getId() > 0) && (quest.getId() < 20000) && (quest.getId() != 255))
.distinct()
.collect(Collectors.toSet());
//@formatter:on