From 5642d354e0bab5a0f4e029e5fdc4d18e85edd379 Mon Sep 17 00:00:00 2001 From: Amber <78602618+Glyceri@users.noreply.github.com> Date: Fri, 13 Sep 2024 00:19:41 +0200 Subject: [PATCH] Fixes names not updating on Pet Nicknames restart (#79) --- MareSynchronos/Interop/Ipc/IpcCallerPetNames.cs | 1 + MareSynchronos/PlayerData/Handlers/PairHandler.cs | 7 +++++++ MareSynchronos/Services/Mediator/Messages.cs | 1 + 3 files changed, 9 insertions(+) diff --git a/MareSynchronos/Interop/Ipc/IpcCallerPetNames.cs b/MareSynchronos/Interop/Ipc/IpcCallerPetNames.cs index 5954c37..a662178 100644 --- a/MareSynchronos/Interop/Ipc/IpcCallerPetNames.cs +++ b/MareSynchronos/Interop/Ipc/IpcCallerPetNames.cs @@ -68,6 +68,7 @@ public sealed class IpcCallerPetNames : IIpcCaller private void OnPetNicknamesReady() { CheckAPI(); + _mareMediator.Publish(new PetNamesReadyMessage()); } private void OnPetNicknamesDispose() diff --git a/MareSynchronos/PlayerData/Handlers/PairHandler.cs b/MareSynchronos/PlayerData/Handlers/PairHandler.cs index 1410c39..a8ff37e 100644 --- a/MareSynchronos/PlayerData/Handlers/PairHandler.cs +++ b/MareSynchronos/PlayerData/Handlers/PairHandler.cs @@ -541,6 +541,13 @@ public sealed class PairHandler : DisposableMediatorSubscriberBase await _ipcManager.Honorific.SetTitleAsync(PlayerCharacter, _cachedData.HonorificData).ConfigureAwait(false); }); + Mediator.Subscribe(this, async (_) => + { + if (string.IsNullOrEmpty(_cachedData?.PetNamesData)) return; + Logger.LogTrace("Reapplying Pet Names data for {this}", this); + await _ipcManager.PetNames.SetPlayerData(PlayerCharacter, _cachedData.PetNamesData).ConfigureAwait(false); + }); + if (_penumbraCollection == Guid.Empty) _penumbraCollection = _ipcManager.Penumbra.CreateTemporaryCollectionAsync(Logger, OnlineUser.User.UID).GetAwaiter().GetResult(); _ipcManager.Penumbra.AssignTemporaryCollectionAsync(Logger, _penumbraCollection, _charaHandler.GetGameObject()!.ObjectIndex).GetAwaiter().GetResult(); diff --git a/MareSynchronos/Services/Mediator/Messages.cs b/MareSynchronos/Services/Mediator/Messages.cs index cde467c..ce6afff 100644 --- a/MareSynchronos/Services/Mediator/Messages.cs +++ b/MareSynchronos/Services/Mediator/Messages.cs @@ -40,6 +40,7 @@ public record HeelsOffsetMessage : MessageBase; public record PenumbraResourceLoadMessage(IntPtr GameObject, string GamePath, string FilePath) : SameThreadMessage; public record CustomizePlusMessage(string ProfileName) : MessageBase; public record HonorificMessage(string NewHonorificTitle) : MessageBase; +public record PetNamesReadyMessage : MessageBase; public record PetNamesMessage(string PetNicknamesData) : MessageBase; public record HonorificReadyMessage : MessageBase; public record PlayerChangedMessage(CharacterData Data) : MessageBase;