From afe6c756886c9e1e800344be2cd4d03dd04d3542 Mon Sep 17 00:00:00 2001 From: rootdarkarchon Date: Mon, 9 Oct 2023 18:58:17 +0200 Subject: [PATCH] fix mcdf application --- MareSynchronos/Interop/IpcManager.cs | 2 +- MareSynchronos/PlayerData/Export/MareCharaFileManager.cs | 1 + MareSynchronos/PlayerData/Handlers/GameObjectHandler.cs | 9 ++++++++- MareSynchronos/PlayerData/Pairs/Pair.cs | 2 +- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/MareSynchronos/Interop/IpcManager.cs b/MareSynchronos/Interop/IpcManager.cs index e8aa965..7d23659 100644 --- a/MareSynchronos/Interop/IpcManager.cs +++ b/MareSynchronos/Interop/IpcManager.cs @@ -300,7 +300,7 @@ public sealed class IpcManager : DisposableMediatorSubscriberBase logger.LogDebug("[{appid}] Calling On IPC: GlamourerRevertByName", applicationId); _glamourerRevertByName.InvokeAction(name, LockCode); logger.LogDebug("[{appid}] Calling On IPC: GlamourerUnlockName", applicationId); - _glamourerUnlock.InvokeAction(name, LockCode); + _glamourerUnlock.InvokeFunc(name, LockCode); } catch (Exception ex) { diff --git a/MareSynchronos/PlayerData/Export/MareCharaFileManager.cs b/MareSynchronos/PlayerData/Export/MareCharaFileManager.cs index b70916c..b27e6f7 100644 --- a/MareSynchronos/PlayerData/Export/MareCharaFileManager.cs +++ b/MareSynchronos/PlayerData/Export/MareCharaFileManager.cs @@ -105,6 +105,7 @@ public class MareCharaFileManager : DisposableMediatorSubscriberBase _gposeGameObjects[charaTarget.Name.ToString()] = tempHandler; await _ipcManager.GlamourerApplyAllAsync(_logger, tempHandler, LoadedCharaFile.CharaFileData.GlamourerData, applicationId, disposeCts.Token).ConfigureAwait(false); + await _ipcManager.PenumbraRedrawAsync(_logger, tempHandler, applicationId, disposeCts.Token).ConfigureAwait(false); _dalamudUtil.WaitWhileGposeCharacterIsDrawing(charaTarget.Address, 30000); await _ipcManager.PenumbraRemoveTemporaryCollectionAsync(_logger, applicationId, coll).ConfigureAwait(false); if (!string.IsNullOrEmpty(LoadedCharaFile.CharaFileData.CustomizePlusData)) diff --git a/MareSynchronos/PlayerData/Handlers/GameObjectHandler.cs b/MareSynchronos/PlayerData/Handlers/GameObjectHandler.cs index d58f328..f6c0ab7 100644 --- a/MareSynchronos/PlayerData/Handlers/GameObjectHandler.cs +++ b/MareSynchronos/PlayerData/Handlers/GameObjectHandler.cs @@ -422,7 +422,14 @@ public sealed class GameObjectHandler : DisposableMediatorSubscriberBase _clearCts?.Cancel(); _clearCts?.Dispose(); _clearCts = null; - _zoningCts.CancelAfter(2500); + try + { + _zoningCts?.CancelAfter(2500); + } + catch (Exception ex) + { + Logger.LogWarning(ex, "Zoning CTS cancel issue"); + } } private void ZoneSwitchStart() diff --git a/MareSynchronos/PlayerData/Pairs/Pair.cs b/MareSynchronos/PlayerData/Pairs/Pair.cs index e925669..e8e6a2a 100644 --- a/MareSynchronos/PlayerData/Pairs/Pair.cs +++ b/MareSynchronos/PlayerData/Pairs/Pair.cs @@ -81,7 +81,7 @@ public class Pair if (CachedPlayer == null) { _logger.LogDebug("Received Data for {uid} but CachedPlayer does not exist, waiting", data.User.UID); - Task.Run(async () => + _ = Task.Run(async () => { using var timeoutCts = new CancellationTokenSource(); timeoutCts.CancelAfter(TimeSpan.FromSeconds(120));