check for framework thread on running actions, fix palette+ constantly sending update for chara data to create
This commit is contained in:
@@ -157,14 +157,20 @@ public class DalamudUtilService : IHostedService
|
||||
|
||||
public async Task RunOnFrameworkThread(Action act)
|
||||
{
|
||||
_logger.LogTrace("Running Action on framework thread: {act}", act);
|
||||
await _framework.RunOnFrameworkThread(act).ConfigureAwait(false);
|
||||
_logger.LogTrace("Running Action on framework thread (FrameworkContext: {ctx}): {act}", _framework.IsInFrameworkUpdateThread, act);
|
||||
if (!_framework.IsInFrameworkUpdateThread)
|
||||
await _framework.RunOnFrameworkThread(act).ConfigureAwait(false);
|
||||
else
|
||||
act();
|
||||
}
|
||||
|
||||
public async Task<T> RunOnFrameworkThread<T>(Func<T> func)
|
||||
{
|
||||
_logger.LogTrace("Running Func on framework thread: {func}", func);
|
||||
return await _framework.RunOnFrameworkThread(func).ConfigureAwait(false);
|
||||
_logger.LogTrace("Running Func on framework thread (FrameworkContext: {ctx}): {act}", _framework.IsInFrameworkUpdateThread, func);
|
||||
if (!_framework.IsInFrameworkUpdateThread)
|
||||
return await _framework.RunOnFrameworkThread(func).ConfigureAwait(false);
|
||||
else
|
||||
return func.Invoke();
|
||||
}
|
||||
|
||||
public Task StartAsync(CancellationToken cancellationToken)
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using Dalamud.Interface.Internal.Notifications;
|
||||
using Dalamud.Game.ClientState.Objects.Types;
|
||||
using Dalamud.Interface.Internal.Notifications;
|
||||
using MareSynchronos.API.Dto;
|
||||
using MareSynchronos.PlayerData.Handlers;
|
||||
using MareSynchronos.WebAPI.Files.Models;
|
||||
@@ -30,7 +31,7 @@ public record PenumbraRedrawMessage(IntPtr Address, int ObjTblIdx, bool WasReque
|
||||
public record HeelsOffsetMessage : IMessage;
|
||||
public record PenumbraResourceLoadMessage(IntPtr GameObject, string GamePath, string FilePath) : IMessage;
|
||||
public record CustomizePlusMessage : IMessage;
|
||||
public record PalettePlusMessage : IMessage;
|
||||
public record PalettePlusMessage(Character Character) : IMessage;
|
||||
public record PlayerChangedMessage(API.Data.CharacterData Data) : IMessage;
|
||||
public record CharacterChangedMessage(GameObjectHandler GameObjectHandler) : IMessage;
|
||||
public record TransientResourceChangedMessage(IntPtr Address) : IMessage;
|
||||
|
||||
Reference in New Issue
Block a user