diff --git a/PenumbraIpc.cs b/PenumbraIpc.cs index d10b16a..9ffbb3c 100644 --- a/PenumbraIpc.cs +++ b/PenumbraIpc.cs @@ -15,6 +15,7 @@ internal class PenumbraIpc : IDisposable { private FuncSubscriber TrySetModSubscriber { get; } private FuncSubscriber GetModPathSubscriber { get; } + private EventSubscriber? ModAddedEvent { get; set; } private EventSubscriber? ModDeletedEvent { get; set; } private EventSubscriber? ModMovedEvent { get; set; } @@ -37,9 +38,14 @@ internal PenumbraIpc(Plugin plugin) { public void Dispose() { this.ModMovedEvent?.Dispose(); this.ModDeletedEvent?.Dispose(); + this.ModAddedEvent?.Dispose(); } private void RegisterEvents() { + this.ModAddedEvent = Penumbra.Api.Ipc.ModAdded.Subscriber(this.Plugin.Interface, _ => { + Task.Run(async () => await this.Plugin.State.UpdatePackages()); + }); + this.ModDeletedEvent = Penumbra.Api.Ipc.ModDeleted.Subscriber(this.Plugin.Interface, _ => { Task.Run(async () => await this.Plugin.State.UpdatePackages()); });