diff --git a/MareSynchronos/PlayerData/Services/CacheCreationService.cs b/MareSynchronos/PlayerData/Services/CacheCreationService.cs index 2a59725..5c05ea8 100644 --- a/MareSynchronos/PlayerData/Services/CacheCreationService.cs +++ b/MareSynchronos/PlayerData/Services/CacheCreationService.cs @@ -45,6 +45,15 @@ public sealed class CacheCreationService : DisposableMediatorSubscriberBase _playerRelatedObjects[ObjectKind.Companion] = gameObjectHandlerFactory.Create(ObjectKind.Companion, () => dalamudUtil.GetCompanion(), isWatched: true) .GetAwaiter().GetResult(); + Mediator.Subscribe(this, (msg) => + { + if (msg.GameObjectHandler == _playerRelatedObjects[ObjectKind.Player]) + { + AddCacheToCreate(ObjectKind.Player); + AddCacheToCreate(ObjectKind.Pet); + } + }); + Mediator.Subscribe(this, (msg) => { Logger.LogDebug("Received CreateCacheForObject for {handler}, updating", msg.ObjectToCreateFor); @@ -53,6 +62,11 @@ public sealed class CacheCreationService : DisposableMediatorSubscriberBase Mediator.Subscribe(this, (msg) => { + if (msg.ObjectToCreateFor.ObjectKind == ObjectKind.Pet) + { + Logger.LogTrace("Received clear cache for {obj}, ignoring", msg.ObjectToCreateFor); + return; + } Logger.LogDebug("Clearing cache for {obj}", msg.ObjectToCreateFor); AddCacheToCreate(msg.ObjectToCreateFor.ObjectKind); });