From 1fa5deede71362b4e04b7b104001e4bafa7edef3 Mon Sep 17 00:00:00 2001 From: Loporrit <141286461+loporrit@users.noreply.github.com> Date: Fri, 28 Mar 2025 07:58:15 +0000 Subject: [PATCH] Fix honorific --- MareSynchronos/Interop/Ipc/IpcCallerHonorific.cs | 9 ++++++--- MareSynchronos/PlayerData/Factories/PlayerDataFactory.cs | 3 ++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/MareSynchronos/Interop/Ipc/IpcCallerHonorific.cs b/MareSynchronos/Interop/Ipc/IpcCallerHonorific.cs index ab161e0..0edb543 100644 --- a/MareSynchronos/Interop/Ipc/IpcCallerHonorific.cs +++ b/MareSynchronos/Interop/Ipc/IpcCallerHonorific.cs @@ -77,11 +77,14 @@ public sealed class IpcCallerHonorific : IIpcCaller }).ConfigureAwait(false); } - public string GetTitle() + public async Task GetTitle() { if (!APIAvailable) return string.Empty; - string title = _honorificGetLocalCharacterTitle.InvokeFunc(); - return string.IsNullOrEmpty(title) ? string.Empty : Convert.ToBase64String(Encoding.UTF8.GetBytes(title)); + return await _dalamudUtil.RunOnFrameworkThread(() => + { + string title = _honorificGetLocalCharacterTitle.InvokeFunc(); + return string.IsNullOrEmpty(title) ? string.Empty : Convert.ToBase64String(Encoding.UTF8.GetBytes(title)); + }).ConfigureAwait(false); } public async Task SetTitleAsync(IntPtr character, string honorificDataB64) diff --git a/MareSynchronos/PlayerData/Factories/PlayerDataFactory.cs b/MareSynchronos/PlayerData/Factories/PlayerDataFactory.cs index ca92d8d..62e16f0 100644 --- a/MareSynchronos/PlayerData/Factories/PlayerDataFactory.cs +++ b/MareSynchronos/PlayerData/Factories/PlayerDataFactory.cs @@ -204,12 +204,13 @@ public class PlayerDataFactory Task getHeelsOffset = _ipcManager.Heels.GetOffsetAsync(); Task getGlamourerData = _ipcManager.Glamourer.GetCharacterCustomizationAsync(playerRelatedObject.Address); Task getCustomizeData = _ipcManager.CustomizePlus.GetScaleAsync(playerRelatedObject.Address); + Task getHonorificTitle = _ipcManager.Honorific.GetTitle(); previousData.GlamourerString[playerRelatedObject.ObjectKind] = await getGlamourerData.ConfigureAwait(false); _logger.LogDebug("Glamourer is now: {data}", previousData.GlamourerString[playerRelatedObject.ObjectKind]); var customizeScale = await getCustomizeData.ConfigureAwait(false); previousData.CustomizePlusScale[playerRelatedObject.ObjectKind] = customizeScale ?? string.Empty; _logger.LogDebug("Customize is now: {data}", previousData.CustomizePlusScale[playerRelatedObject.ObjectKind]); - previousData.HonorificData = _ipcManager.Honorific.GetTitle(); + previousData.HonorificData = await getHonorificTitle.ConfigureAwait(false); _logger.LogDebug("Honorific is now: {data}", previousData.HonorificData); previousData.HeelsData = await getHeelsOffset.ConfigureAwait(false); _logger.LogDebug("Heels is now: {heels}", previousData.HeelsData);