forked from aly/qstbak
muffin v6.34
This commit is contained in:
parent
7f7dca1cf0
commit
a10041e3fd
3 changed files with 59 additions and 3 deletions
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue