1
0
Fork 0

Fix stale event handlers causing errors in console

This commit is contained in:
ivan tkachenko 2025-08-09 00:27:54 +03:00
parent dd3c9647e3
commit 4abd0fb612
2 changed files with 18 additions and 2 deletions

View File

@ -2,6 +2,7 @@
## MuzikaGromche 1337.420.69 ## MuzikaGromche 1337.420.69
- Fix harmless but annoying errors in BepInEx console output.
## MuzikaGromche 1337.69.420 - It's All Connected Edition ## MuzikaGromche 1337.69.420 - It's All Connected Edition

View File

@ -1828,15 +1828,30 @@ namespace MuzikaGromche
ChooseTrackDeferred(); ChooseTrackDeferred();
foreach (var track in Plugin.Tracks) foreach (var track in Plugin.Tracks)
{ {
track.Weight.SettingChanged += (_, _) => ChooseTrackDeferred(); track.Weight.SettingChanged += ChooseTrackDeferredDelegate;
} }
Config.SkipExplicitTracks.SettingChanged += (_, _) => ChooseTrackDeferred(); Config.SkipExplicitTracks.SettingChanged += ChooseTrackDeferredDelegate;
base.OnNetworkSpawn(); 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 // Batch multiple weights changes in a single network RPC
private Coroutine? DeferredCoroutine = null; private Coroutine? DeferredCoroutine = null;
private void ChooseTrackDeferredDelegate(object sender, EventArgs e)
{
ChooseTrackDeferred();
}
private void ChooseTrackDeferred() private void ChooseTrackDeferred()
{ {
if (DeferredCoroutine != null) if (DeferredCoroutine != null)