diff --git a/MareSynchronos/FileCache/PeriodicFileScanner.cs b/MareSynchronos/FileCache/PeriodicFileScanner.cs index df737dc..6181c2c 100644 --- a/MareSynchronos/FileCache/PeriodicFileScanner.cs +++ b/MareSynchronos/FileCache/PeriodicFileScanner.cs @@ -233,7 +233,8 @@ public class PeriodicFileScanner : IDisposable try { var validatedCacheResult = _fileDbManager.ValidateFileCacheEntity(cache); - scannedFiles[validatedCacheResult.Item2.ResolvedFilepath] = true; + if (validatedCacheResult.Item1 != FileState.RequireDeletion) + scannedFiles[validatedCacheResult.Item2.ResolvedFilepath] = true; if (validatedCacheResult.Item1 == FileState.RequireUpdate) { entitiesToUpdate.Add(validatedCacheResult.Item2); diff --git a/MareSynchronos/Plugin.cs b/MareSynchronos/Plugin.cs index c9aa278..b1770bd 100644 --- a/MareSynchronos/Plugin.cs +++ b/MareSynchronos/Plugin.cs @@ -202,10 +202,31 @@ public sealed class Plugin : IDalamudPlugin private void OnCommand(string command, string args) { - if (string.IsNullOrEmpty(args)) - { - OpenUi(); - } + var splitArgs = args.ToLowerInvariant().Trim().Split(" ", StringSplitOptions.RemoveEmptyEntries); + + if (splitArgs == null || splitArgs.Length == 0) + { + // Interpret this as toggling the UI + OpenUi(); + return; + } + + if (splitArgs[0] == "toggle") + { + var fullPause = splitArgs.Length > 1 ? splitArgs[1] switch + { + "on" => false, + "off" => true, + _ => !_configuration.FullPause, + } : !_configuration.FullPause; + + if (fullPause != _configuration.FullPause) + { + _configuration.FullPause = fullPause; + _configuration.Save(); + _ = _apiController.CreateConnections(); + } + } } private void OpenUi()