From 364b17770519250e2ec182e5a3445fbd221211f8 Mon Sep 17 00:00:00 2001 From: RandomGuy155 Date: Sat, 8 Aug 2026 02:52:38 -0400 Subject: [PATCH] Fix Idle/Resume functionality --- SysBot.Base/Control/BotSource.cs | 11 ++++++++--- SysBot.Base/Control/RoutineExecutor.cs | 3 ++- SysBot.Pokemon/Actions/PokeRoutineExecutorBase.cs | 2 ++ 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/SysBot.Base/Control/BotSource.cs b/SysBot.Base/Control/BotSource.cs index b0299dd52..50241b5a5 100644 --- a/SysBot.Base/Control/BotSource.cs +++ b/SysBot.Base/Control/BotSource.cs @@ -41,13 +41,11 @@ public void Pause() public void Start() { - if (IsPaused) - Stop(); // can't soft-resume; just re-launch - if (IsRunning || IsStopping) return; IsRunning = true; + Bot.Resume(); Task.Run(async () => await Bot.RunAsync(Source.Token) .ContinueWith(ReportFailure, TaskContinuationOptions.OnlyOnFaulted | TaskContinuationOptions.ExecuteSynchronously) .ContinueWith(_ => IsRunning = false)); @@ -97,6 +95,13 @@ private void ReportFailure(Task finishedTask) public void Resume() { + if (IsPaused) + { + Bot.Resume(); + IsPaused = false; + return; + } + Start(); } } diff --git a/SysBot.Base/Control/RoutineExecutor.cs b/SysBot.Base/Control/RoutineExecutor.cs index 7e5c6d987..ce03e3c1c 100644 --- a/SysBot.Base/Control/RoutineExecutor.cs +++ b/SysBot.Base/Control/RoutineExecutor.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Threading; using System.Threading.Tasks; @@ -45,4 +45,5 @@ public async Task RunAsync(CancellationToken token) public abstract Task InitialStartup(CancellationToken token); public abstract void SoftStop(); public abstract Task HardStop(); + public abstract void Resume(); } diff --git a/SysBot.Pokemon/Actions/PokeRoutineExecutorBase.cs b/SysBot.Pokemon/Actions/PokeRoutineExecutorBase.cs index 417a7eec2..066abc84e 100644 --- a/SysBot.Pokemon/Actions/PokeRoutineExecutorBase.cs +++ b/SysBot.Pokemon/Actions/PokeRoutineExecutorBase.cs @@ -68,6 +68,8 @@ public string GetSpeciesName(ushort species) public override void SoftStop() => Config.Pause(); + public override void Resume() => Config.Resume(); + public Task Click(SwitchButton b, int delayMin, int delayMax, CancellationToken token) => Click(b, Util.Rand.Next(delayMin, delayMax), token);