feat: add EnableQuest config

This commit is contained in:
Somebody
2025-12-07 12:30:47 +08:00
parent 1c8fb25e0f
commit f437bea9ee
2 changed files with 13 additions and 0 deletions

View File

@@ -77,6 +77,7 @@ public class ServerOption
public int StartTrailblazerLevel { get; set; } = 1;
public bool AutoUpgradeWorldLevel { get; set; } = true;
public bool EnableMission { get; set; } = true; // experimental
public bool EnableQuest { get; set; } = true; // experimental
public bool AutoLightSection { get; set; } = true;
public string Language { get; set; } = "EN";
public string FallbackLanguage { get; set; } = "EN";

View File

@@ -40,6 +40,8 @@ public class QuestManager(PlayerInstance player) : BasePlayerManager(player)
public async ValueTask AcceptQuestByCondition()
{
if (!ConfigManager.Config.ServerOption.EnableQuest) return;
var syncList = new List<QuestInfo>();
foreach (var quest in GameData.QuestDataData.Values)
{
@@ -92,6 +94,8 @@ public class QuestManager(PlayerInstance player) : BasePlayerManager(player)
public async ValueTask<QuestInfo?> AcceptQuest(int questId, bool sync = true)
{
if (!ConfigManager.Config.ServerOption.EnableQuest) return;
GameData.QuestDataData.TryGetValue(questId, out var questExcel);
if (questExcel == null) return null;
@@ -113,6 +117,8 @@ public class QuestManager(PlayerInstance player) : BasePlayerManager(player)
public async ValueTask FinishQuest(int questId, bool push = true)
{
if (!ConfigManager.Config.ServerOption.EnableQuest) return;
GameData.QuestDataData.TryGetValue(questId, out var questExcel);
if (questExcel == null) return;
GameData.FinishWayData.TryGetValue(questExcel.FinishWayID, out var finishWayExcel);
@@ -135,6 +141,8 @@ public class QuestManager(PlayerInstance player) : BasePlayerManager(player)
public async ValueTask<Retcode> FinishQuestByClient(int questId)
{
if (!ConfigManager.Config.ServerOption.EnableQuest) return Retcode.RetSucc;
GameData.QuestDataData.TryGetValue(questId, out var questExcel);
if (questExcel == null) return Retcode.RetFail;
GameData.FinishWayData.TryGetValue(questExcel.FinishWayID, out var finishWayExcel);
@@ -226,12 +234,16 @@ public class QuestManager(PlayerInstance player) : BasePlayerManager(player)
public QuestStatus GetQuestStatus(int questId)
{
if (!ConfigManager.Config.ServerOption.EnableQuest) return QuestStatus.QuestFinish;
if (!QuestData.Quests.TryGetValue(questId, out var questInfo)) return QuestStatus.QuestNone;
return questInfo.QuestStatus;
}
public List<QuestInfo> GetRunningQuest()
{
if (!ConfigManager.Config.ServerOption.EnableQuest) return [];
return QuestData.Quests.Values.Where(x => x.QuestStatus == QuestStatus.QuestDoing).ToList();
}