minor fixes

This commit is contained in:
rootdarkarchon 2023-05-03 22:54:17 +02:00
parent 4b52e60e7d
commit 8894795564
3 changed files with 39 additions and 22 deletions

View file

@ -36,11 +36,11 @@ public sealed class IpcManager : DisposableMediatorSubscriberBase
private readonly ICallGateSubscriber<GameObject, object?> _heelsUnregisterPlayer;
private readonly ICallGateSubscriber<(uint major, uint minor)> _honorificApiVersion;
private readonly ICallGateSubscriber<Character, object> _honorificClearCharacterTitle;
private readonly ICallGateSubscriber<object> _honorificDisposing;
private readonly ICallGateSubscriber<string> _honorificGetLocalCharacterTitle;
private readonly ICallGateSubscriber<string, object> _honorificLocalCharacterTitleChanged;
private readonly ICallGateSubscriber<Character, string, object> _honorificSetCharacterTitle;
private readonly ICallGateSubscriber<object> _honorificDisposing;
private readonly ICallGateSubscriber<object> _honorificReady;
private readonly ICallGateSubscriber<Character, string, object> _honorificSetCharacterTitle;
private readonly ConcurrentQueue<Action> _normalQueue = new();
private readonly ICallGateSubscriber<string> _palettePlusApiVersion;
private readonly ICallGateSubscriber<Character, string> _palettePlusBuildCharaPalette;
@ -155,6 +155,8 @@ public sealed class IpcManager : DisposableMediatorSubscriberBase
Mediator.Subscribe<CutsceneFrameworkUpdateMessage>(this, (_) => HandleGposeActionQueue());
Mediator.Subscribe<ZoneSwitchEndMessage>(this, (_) => ClearActionQueue());
Mediator.Subscribe<DelayedFrameworkUpdateMessage>(this, (_) => PeriodicApiStateCheck());
PeriodicApiStateCheck();
}
public bool Initialized => CheckPenumbraApiInternal() && CheckGlamourerApiInternal();
@ -337,6 +339,8 @@ public sealed class IpcManager : DisposableMediatorSubscriberBase
{
if (!CheckHonorificApi()) return;
Logger.LogTrace("Applying Honorific data to {chara}", character.ToString("X"));
try
{
await _dalamudUtil.RunOnFrameworkThread(() =>
{
var gameObj = _dalamudUtil.CreateGameObject(character);
@ -354,6 +358,11 @@ public sealed class IpcManager : DisposableMediatorSubscriberBase
}
}).ConfigureAwait(false);
}
catch (Exception e)
{
Logger.LogWarning(e, "Could not apply Honorific data");
}
}
public async Task<string> PalettePlusBuildPaletteAsync()
{
@ -645,17 +654,17 @@ public sealed class IpcManager : DisposableMediatorSubscriberBase
Mediator.Publish(new CustomizePlusMessage());
}
private void OnHonorificDisposing()
{
Mediator.Publish(new HonorificMessage(string.Empty));
}
private void OnHonorificLocalCharacterTitleChanged(string titleJson)
{
string titleData = string.IsNullOrEmpty(titleJson) ? string.Empty : Convert.ToBase64String(Encoding.UTF8.GetBytes(titleJson));
Mediator.Publish(new HonorificMessage(titleData));
}
private void OnHonorificDisposing()
{
Mediator.Publish(new HonorificMessage(string.Empty));
}
private void OnHonorificReady()
{
_honorificAvailable = CheckHonorificApiInternal();

View file

@ -332,7 +332,15 @@ public class DalamudUtilService : IHostedService
private unsafe void FrameworkOnUpdateInternal()
{
if (_clientState.LocalPlayer?.IsDead ?? false) return;
if (_clientState.LocalPlayer == null)
{
return;
}
if (_clientState.LocalPlayer?.IsDead ?? false)
{
return;
}
IsAnythingDrawing = false;
_playerCharas = _performanceCollector.LogPerformance(this, "ObjTableToCharas",