diff --git a/Penumbra/Api/Api/PluginStateApi.cs b/Penumbra/Api/Api/PluginStateApi.cs index e053e56f..d69df448 100644 --- a/Penumbra/Api/Api/PluginStateApi.cs +++ b/Penumbra/Api/Api/PluginStateApi.cs @@ -5,7 +5,7 @@ using Penumbra.Services; namespace Penumbra.Api.Api; -public sealed class PluginStateApi : IPenumbraApiPluginState, IApiService, IDisposable +public class PluginStateApi : IPenumbraApiPluginState, IApiService { private readonly Configuration _config; private readonly CommunicatorService _communicator; @@ -14,14 +14,6 @@ public sealed class PluginStateApi : IPenumbraApiPluginState, IApiService, IDisp { _config = config; _communicator = communicator; - _communicator.ModDirectoryChanged.Subscribe(OnModDirectoryChanged, Communication.ModDirectoryChanged.Priority.Api); - _communicator.EnabledChanged.Subscribe(OnEnabledChanged, EnabledChanged.Priority.Api); - } - - public void Dispose() - { - _communicator.ModDirectoryChanged.Unsubscribe(OnModDirectoryChanged); - _communicator.EnabledChanged.Unsubscribe(OnEnabledChanged); } public string GetModDirectory() @@ -30,16 +22,18 @@ public sealed class PluginStateApi : IPenumbraApiPluginState, IApiService, IDisp public string GetConfiguration() => JsonConvert.SerializeObject(_config, Formatting.Indented); - public event Action? ModDirectoryChanged; + public event Action? ModDirectoryChanged + { + add => _communicator.ModDirectoryChanged.Subscribe(value!, Communication.ModDirectoryChanged.Priority.Api); + remove => _communicator.ModDirectoryChanged.Unsubscribe(value!); + } public bool GetEnabledState() => _config.EnableMods; - public event Action? EnabledChange; - - private void OnModDirectoryChanged(string modDirectory, bool valid) - => ModDirectoryChanged?.Invoke(modDirectory, valid); - - private void OnEnabledChanged(bool value) - => EnabledChange?.Invoke(value); + public event Action? EnabledChange + { + add => _communicator.EnabledChanged.Subscribe(value!, EnabledChanged.Priority.Api); + remove => _communicator.EnabledChanged.Unsubscribe(value!); + } }