diff --git a/CHANGELOG.md b/CHANGELOG.md index a129f4e..d1a2291 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ## MuzikaGromche 1337.420.69 +- Fix harmless but annoying errors in BepInEx console output. ## MuzikaGromche 1337.69.420 - It's All Connected Edition diff --git a/MuzikaGromche/Plugin.cs b/MuzikaGromche/Plugin.cs index 45dcddc..36cf926 100644 --- a/MuzikaGromche/Plugin.cs +++ b/MuzikaGromche/Plugin.cs @@ -1828,15 +1828,30 @@ namespace MuzikaGromche ChooseTrackDeferred(); foreach (var track in Plugin.Tracks) { - track.Weight.SettingChanged += (_, _) => ChooseTrackDeferred(); + track.Weight.SettingChanged += ChooseTrackDeferredDelegate; } - Config.SkipExplicitTracks.SettingChanged += (_, _) => ChooseTrackDeferred(); + Config.SkipExplicitTracks.SettingChanged += ChooseTrackDeferredDelegate; base.OnNetworkSpawn(); } + public override void OnNetworkDespawn() + { + foreach (var track in Plugin.Tracks) + { + track.Weight.SettingChanged -= ChooseTrackDeferredDelegate; + } + Config.SkipExplicitTracks.SettingChanged -= ChooseTrackDeferredDelegate; + base.OnNetworkDespawn(); + } + // Batch multiple weights changes in a single network RPC private Coroutine? DeferredCoroutine = null; + private void ChooseTrackDeferredDelegate(object sender, EventArgs e) + { + ChooseTrackDeferred(); + } + private void ChooseTrackDeferred() { if (DeferredCoroutine != null)