1
0
Fork 0
forked from aly/qstbak

muffin v7.4.8

This commit is contained in:
alydev 2025-12-29 11:41:48 +10:00
parent 63f975ff4f
commit a9e1cdc5f1
4 changed files with 932 additions and 880 deletions

View file

@ -357,6 +357,7 @@ internal static class Duty
{
logger.LogInformation("Reached required level {RequiredLevel} (current: {CurrentLevel})", base.Task.RequiredLevel, b);
chatGui.Print($"Reached level {b}, can now continue MSQ.", "Questionable", 576);
autoDutyIpc.DisableLevelingMode();
return ETaskResult.TaskComplete;
}
if (autoDutyIpc.IsStopped() && !flag && !flag2)

View file

@ -682,11 +682,16 @@ internal sealed class QuestController : MiniTaskController<QuestController>
}
questProgress = null;
}
else if (_startedQuest == null || _startedQuest.Quest.Id != elementId)
{
if (_startedQuest != null && !_taskQueue.AllTasksComplete)
{
_logger.LogTrace("Not switching from quest {CurrentQuestId} to {NewQuestId} because tasks are still running", _startedQuest.Quest.Id, elementId);
questProgress = _startedQuest;
b = _startedQuest.Sequence;
}
else
{
if (_startedQuest == null || _startedQuest.Quest.Id != elementId)
{
Quest quest;
if (_configuration.Stop.Enabled && _startedQuest != null && _configuration.Stop.QuestsToStopAfter.Contains(_startedQuest.Quest.Id) && _questFunctions.IsQuestComplete(_startedQuest.Quest.Id))
{
ElementId id = _startedQuest.Quest.Id;
@ -694,8 +699,9 @@ internal sealed class QuestController : MiniTaskController<QuestController>
_chatGui.Print("Completed quest '" + _startedQuest.Quest.Info.Name + "', which is configured as a stopping point.", "Questionable", 576);
_startedQuest = null;
Stop($"Stopping point [{id}] reached");
return;
}
else if (_questRegistry.TryGetQuest(elementId, out quest))
if (_questRegistry.TryGetQuest(elementId, out Quest quest))
{
_logger.LogInformation("New quest: {QuestName}", quest.Info.Name);
_startedQuest = new QuestProgress(quest, b);
@ -723,15 +729,20 @@ internal sealed class QuestController : MiniTaskController<QuestController>
}
CheckNextTasks("Different Quest");
}
return;
}
else if (_startedQuest != null)
if (_startedQuest != null)
{
_logger.LogInformation("No active quest anymore? Not sure what happened...");
_startedQuest = null;
Stop("No active Quest");
}
return;
}
questProgress = null;
}
}
else
{
questProgress = _startedQuest;
}
}

File diff suppressed because it is too large Load diff

View file

@ -125,6 +125,7 @@ internal sealed class AutoDutyIpc
}
try
{
_setConfig.InvokeAction("leveling", "None");
_setConfig.InvokeAction("Unsynced", $"{dutyMode == DutyMode.UnsyncRegular}");
ICallGateSubscriber<string, string, object> setConfig = _setConfig;
setConfig.InvokeAction("dutyModeEnum", dutyMode switch
@ -182,16 +183,36 @@ internal sealed class AutoDutyIpc
}
}
public void DisableLevelingMode()
{
try
{
_logger.LogInformation("Disabling AutoDuty leveling mode");
_setConfig.InvokeAction("leveling", "None");
}
catch (IpcError ipcError)
{
_logger.LogWarning("Unable to disable AutoDuty leveling mode: {Message}", ipcError.Message);
}
}
public void Stop()
{
try
{
_logger.LogInformation("Calling AutoDuty.Stop");
try
{
_setConfig.InvokeAction("leveling", "None");
}
catch (IpcError)
{
}
_stop.InvokeAction();
}
catch (IpcError ipcError)
catch (IpcError ipcError2)
{
throw new TaskException("Unable to stop AutoDuty: " + ipcError.Message, ipcError);
throw new TaskException("Unable to stop AutoDuty: " + ipcError2.Message, ipcError2);
}
}
}