Order NPC QuestLink list by QuestId.

This commit is contained in:
MobiusDev
2016-09-01 19:04:17 +00:00
parent 12b36629ff
commit bdcbd837e4
3 changed files with 19 additions and 0 deletions

View File

@@ -260,6 +260,10 @@ SaveDroppedItemInterval = 60
# Default: False # Default: False
ClearDroppedItemTable = False ClearDroppedItemTable = False
# Order NPC QuestLink list by QuestId.
# Retail: False (but ugly)
OrderQuestListByQuestId = True
# Delete invalid quest from players. # Delete invalid quest from players.
# Default: False # Default: False
AutoDeleteInvalidQuestData = False AutoDeleteInvalidQuestData = False

View File

@@ -17,9 +17,12 @@
package handlers.bypasshandlers; package handlers.bypasshandlers;
import java.util.Collection; import java.util.Collection;
import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.TreeMap;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import com.l2jmobius.Config;
import com.l2jmobius.gameserver.handler.IBypassHandler; import com.l2jmobius.gameserver.handler.IBypassHandler;
import com.l2jmobius.gameserver.instancemanager.QuestManager; import com.l2jmobius.gameserver.instancemanager.QuestManager;
import com.l2jmobius.gameserver.model.actor.L2Character; import com.l2jmobius.gameserver.model.actor.L2Character;
@@ -94,6 +97,16 @@ public class QuestLink implements IBypassHandler
.collect(Collectors.toSet()); .collect(Collectors.toSet());
//@formatter:on //@formatter:on
if (Config.ORDER_QUEST_LIST_BY_QUESTID)
{
final Map<Integer, Quest> orderedQuests = new TreeMap<>(); // Use TreeMap to order quests
for (Quest q : quests)
{
orderedQuests.put(q.getId(), q);
}
quests = orderedQuests.values();
}
for (Quest quest : quests) for (Quest quest : quests)
{ {
final QuestState qs = player.getQuestState(quest.getScriptName()); final QuestState qs = player.getQuestState(quest.getScriptName());

View File

@@ -424,6 +424,7 @@ public final class Config
public static boolean EMPTY_DROPPED_ITEM_TABLE_AFTER_LOAD; public static boolean EMPTY_DROPPED_ITEM_TABLE_AFTER_LOAD;
public static int SAVE_DROPPED_ITEM_INTERVAL; public static int SAVE_DROPPED_ITEM_INTERVAL;
public static boolean CLEAR_DROPPED_ITEM_TABLE; public static boolean CLEAR_DROPPED_ITEM_TABLE;
public static boolean ORDER_QUEST_LIST_BY_QUESTID;
public static boolean AUTODELETE_INVALID_QUEST_DATA; public static boolean AUTODELETE_INVALID_QUEST_DATA;
public static boolean ENABLE_STORY_QUEST_BUFF_REWARD; public static boolean ENABLE_STORY_QUEST_BUFF_REWARD;
public static boolean PRECISE_DROP_CALCULATION; public static boolean PRECISE_DROP_CALCULATION;
@@ -1644,6 +1645,7 @@ public final class Config
EMPTY_DROPPED_ITEM_TABLE_AFTER_LOAD = General.getBoolean("EmptyDroppedItemTableAfterLoad", false); EMPTY_DROPPED_ITEM_TABLE_AFTER_LOAD = General.getBoolean("EmptyDroppedItemTableAfterLoad", false);
SAVE_DROPPED_ITEM_INTERVAL = General.getInt("SaveDroppedItemInterval", 60) * 60000; SAVE_DROPPED_ITEM_INTERVAL = General.getInt("SaveDroppedItemInterval", 60) * 60000;
CLEAR_DROPPED_ITEM_TABLE = General.getBoolean("ClearDroppedItemTable", false); CLEAR_DROPPED_ITEM_TABLE = General.getBoolean("ClearDroppedItemTable", false);
ORDER_QUEST_LIST_BY_QUESTID = General.getBoolean("OrderQuestListByQuestId", true);
AUTODELETE_INVALID_QUEST_DATA = General.getBoolean("AutoDeleteInvalidQuestData", false); AUTODELETE_INVALID_QUEST_DATA = General.getBoolean("AutoDeleteInvalidQuestData", false);
ENABLE_STORY_QUEST_BUFF_REWARD = General.getBoolean("StoryQuestRewardBuff", true); ENABLE_STORY_QUEST_BUFF_REWARD = General.getBoolean("StoryQuestRewardBuff", true);
MULTIPLE_ITEM_DROP = General.getBoolean("MultipleItemDrop", true); MULTIPLE_ITEM_DROP = General.getBoolean("MultipleItemDrop", true);