diff --git a/MareSynchronos/MareSynchronos.csproj b/MareSynchronos/MareSynchronos.csproj index 3bf84e0..65c5261 100644 --- a/MareSynchronos/MareSynchronos.csproj +++ b/MareSynchronos/MareSynchronos.csproj @@ -3,7 +3,7 @@ - 0.7.32 + 0.7.33 https://github.com/Penumbra-Sync/client diff --git a/MareSynchronos/Mediator/MareMediator.cs b/MareSynchronos/Mediator/MareMediator.cs index c6e2de6..61db0f8 100644 --- a/MareSynchronos/Mediator/MareMediator.cs +++ b/MareSynchronos/Mediator/MareMediator.cs @@ -43,7 +43,7 @@ public class MareMediator : IDisposable Stopwatch globalStopwatch = Stopwatch.StartNew(); _performanceCollector.LogPerformance(this, $"Publish>{message.GetType().Name}", () => { - foreach (var subscriber in subscribers.ToList()) + foreach (var subscriber in subscribers.Where(s => s.Subscriber != null).ToList()) { try { @@ -52,7 +52,7 @@ public class MareMediator : IDisposable catch (Exception ex) { _logger.LogCritical(ex, "Error executing {type} for subscriber {subscriber}, removing from Mediator", message.GetType(), subscriber); - subscribers.RemoveWhere(s => s == subscriber); + _subscriberDict[message.GetType()].RemoveWhere(s => s == subscriber); } } });