1
0
Fork 0
forked from aly/qstbak

muffin v6.34

This commit is contained in:
alydev 2025-10-29 06:40:37 +10:00
parent 7f7dca1cf0
commit a10041e3fd
3 changed files with 59 additions and 3 deletions

View file

@ -241,9 +241,10 @@ internal sealed class QuestController : MiniTaskController<QuestController>
_taskCreator = taskCreator;
_singlePlayerDutyConfigComponent = singlePlayerDutyConfigComponent;
_logger = logger;
_condition.ConditionChange += OnConditionChange;
_toastGui.Toast += OnNormalToast;
_toastGui.ErrorToast += base.OnErrorToast;
_toastGui.Toast += OnNormalToast;
_condition.ConditionChange += OnConditionChange;
_clientState.Logout += OnLogout;
}
public void Reload()
@ -500,6 +501,14 @@ internal sealed class QuestController : MiniTaskController<QuestController>
DebugState = "Not logged in";
return;
}
if (_configuration.General.ClearPriorityQuestsOnCompletion && ManualPriorityQuests.Count > 0)
{
int num = ManualPriorityQuests.RemoveAll((Quest q) => _questFunctions.IsQuestComplete(q.Id));
if (num > 0)
{
_logger.LogInformation("Removed {Count} completed priority quest(s)", num);
}
}
if (_pendingQuest != null)
{
if (!_questFunctions.IsQuestAccepted(_pendingQuest.Quest.Id))
@ -1107,13 +1116,17 @@ internal sealed class QuestController : MiniTaskController<QuestController>
public void ImportQuestPriority(List<ElementId> questElements)
{
ManualPriorityQuests.Clear();
foreach (ElementId questElement in questElements)
{
if (_questRegistry.TryGetQuest(questElement, out Quest quest) && !ManualPriorityQuests.Contains(quest))
if (_questRegistry.TryGetQuest(questElement, out Quest quest))
{
ManualPriorityQuests.Add(quest);
continue;
}
_logger.LogWarning("Could not find quest {QuestId} during import", questElement);
}
_logger.LogInformation("Imported {Count} priority quests", ManualPriorityQuests.Count);
}
public string ExportQuestPriority()
@ -1223,11 +1236,21 @@ internal sealed class QuestController : MiniTaskController<QuestController>
}
}
private void OnLogout(int type, int code)
{
if (_configuration.General.ClearPriorityQuestsOnLogout)
{
_logger.LogInformation("Clearing priority quests on logout");
ManualPriorityQuests.Clear();
}
}
public override void Dispose()
{
_toastGui.ErrorToast -= base.OnErrorToast;
_toastGui.Toast -= OnNormalToast;
_condition.ConditionChange -= OnConditionChange;
_clientState.Logout -= OnLogout;
base.Dispose();
}
}