private void ClearTasksInternal()
{
//_logger.LogDebug("Clearing task (internally)");
+ if (_taskQueue.CurrentTaskExecutor is IStoppableTaskExecutor stoppableTaskExecutor)
+ stoppableTaskExecutor.StopNow();
+
_taskQueue.Reset();
_yesAlreadyIpc.RestoreYesAlready();
TerritoryData territoryData,
IClientState clientState,
IChatGui chatGui,
- SendNotification.Executor sendNotificationExecutor) : TaskExecutor<StartAutoDutyTask>
+ SendNotification.Executor sendNotificationExecutor) : TaskExecutor<StartAutoDutyTask>, IStoppableTaskExecutor
{
protected override bool Start()
{
: ETaskResult.StillRunning;
}
+ public void StopNow() => autoDutyIpc.Stop();
+
public override bool ShouldInterruptOnDamage() => false;
}
internal sealed class WaitAutoDutyExecutor(
AutoDutyIpc autoDutyIpc,
TerritoryData territoryData,
- IClientState clientState) : TaskExecutor<WaitAutoDutyTask>
+ IClientState clientState) : TaskExecutor<WaitAutoDutyTask>, IStoppableTaskExecutor
{
protected override bool Start() => true;
: ETaskResult.StillRunning;
}
+ public void StopNow() => autoDutyIpc.Stop();
+
public override bool ShouldInterruptOnDamage() => false;
}