diff --git a/MareSynchronos/Managers/CachedPlayer.cs b/MareSynchronos/Managers/CachedPlayer.cs index c5db90e..66de9f7 100644 --- a/MareSynchronos/Managers/CachedPlayer.cs +++ b/MareSynchronos/Managers/CachedPlayer.cs @@ -313,6 +313,7 @@ public class CachedPlayer } finally { + _cachedData = new(); PlayerName = string.Empty; PlayerCharacter = null; IsVisible = false; @@ -321,7 +322,7 @@ public class CachedPlayer public void InitializePlayer(PlayerCharacter character, CharacterCacheDto? cache) { - Logger.Debug("Initializing Player " + this); + Logger.Debug("Initializing Player " + this + " has cache: " + (cache != null)); IsVisible = true; PlayerName = character.Name.ToString(); PlayerCharacter = character; @@ -375,7 +376,7 @@ public class CachedPlayer if (RequestedPenumbraRedraw == false) { - Logger.Warn("Unauthorized character change detected"); + Logger.Debug("Unauthorized character change detected"); ApplyCustomizationData(ObjectKind.Player); } else diff --git a/MareSynchronos/Managers/PlayerManager.cs b/MareSynchronos/Managers/PlayerManager.cs index e80fafa..6bb6b66 100644 --- a/MareSynchronos/Managers/PlayerManager.cs +++ b/MareSynchronos/Managers/PlayerManager.cs @@ -139,7 +139,7 @@ namespace MareSynchronos.Managers } } - if (playerRelatedObjects.Any(c => c.HasUnprocessedUpdate)) + if (playerRelatedObjects.Any(c => c.HasUnprocessedUpdate && !c.IsProcessing)) { OnPlayerOrAttachedObjectsChanged(); } @@ -195,7 +195,7 @@ namespace MareSynchronos.Managers LastCreatedCharacterData = cacheDto; } - if (_apiController.IsConnected) + if (_apiController.IsConnected && !token.IsCancellationRequested) { Logger.Verbose("Invoking PlayerHasChanged"); PlayerHasChanged?.Invoke(cacheDto); diff --git a/MareSynchronos/MareSynchronos.csproj b/MareSynchronos/MareSynchronos.csproj index f6afc70..3c15c3f 100644 --- a/MareSynchronos/MareSynchronos.csproj +++ b/MareSynchronos/MareSynchronos.csproj @@ -3,7 +3,7 @@ - 0.2.1.0 + 0.2.2.0 https://github.com/Penumbra-Sync/client