async await heels/c+/p+ stuff and await it before continuing with application of data

This commit is contained in:
rootdarkarchon
2023-02-27 02:01:20 +01:00
parent b42e7e236c
commit 1aef3b1d2e
3 changed files with 30 additions and 24 deletions

View File

@@ -333,10 +333,10 @@ public class IpcManager : MediatorSubscriberBase, IDisposable
return _heelsGetOffset.InvokeFunc();
}
public void HeelsSetOffsetForPlayer(IntPtr character, float offset)
public async Task HeelsSetOffsetForPlayer(IntPtr character, float offset)
{
if (!CheckHeelsApi()) return;
ActionQueue.Enqueue(() =>
await _dalamudUtil.RunOnFrameworkThread(() =>
{
var gameObj = _dalamudUtil.CreateGameObject(character);
if (gameObj != null)
@@ -344,13 +344,13 @@ public class IpcManager : MediatorSubscriberBase, IDisposable
_logger.LogTrace("Applying Heels data to {chara}", character.ToString("X"));
_heelsRegisterPlayer.InvokeAction(gameObj, offset);
}
});
}).ConfigureAwait(false);
}
public void HeelsRestoreOffsetForPlayer(IntPtr character)
public async Task HeelsRestoreOffsetForPlayer(IntPtr character)
{
if (!CheckHeelsApi()) return;
ActionQueue.Enqueue(() =>
await _dalamudUtil.RunOnFrameworkThread(() =>
{
var gameObj = _dalamudUtil.CreateGameObject(character);
if (gameObj != null)
@@ -358,7 +358,7 @@ public class IpcManager : MediatorSubscriberBase, IDisposable
_logger.LogTrace("Restoring Heels data to {chara}", character.ToString("X"));
_heelsUnregisterPlayer.InvokeAction(gameObj);
}
});
}).ConfigureAwait(false);
}
public string GetCustomizePlusScale()
@@ -369,10 +369,10 @@ public class IpcManager : MediatorSubscriberBase, IDisposable
return Convert.ToBase64String(Encoding.UTF8.GetBytes(scale));
}
public void CustomizePlusSetBodyScale(IntPtr character, string scale)
public async Task CustomizePlusSetBodyScale(IntPtr character, string scale)
{
if (!CheckCustomizePlusApi() || string.IsNullOrEmpty(scale)) return;
ActionQueue.Enqueue(() =>
await _dalamudUtil.RunOnFrameworkThread(() =>
{
var gameObj = _dalamudUtil.CreateGameObject(character);
if (gameObj is Character c)
@@ -381,13 +381,13 @@ public class IpcManager : MediatorSubscriberBase, IDisposable
_logger.LogTrace("CustomizePlus applying for {chara}", c.Address.ToString("X"));
_customizePlusSetBodyScaleToCharacter!.InvokeAction(decodedScale, c);
}
});
}).ConfigureAwait(false);
}
public void CustomizePlusRevert(IntPtr character)
public async Task CustomizePlusRevert(IntPtr character)
{
if (!CheckCustomizePlusApi()) return;
ActionQueue.Enqueue(() =>
await _dalamudUtil.RunOnFrameworkThread(() =>
{
var gameObj = _dalamudUtil.CreateGameObject(character);
if (gameObj is Character c)
@@ -395,7 +395,7 @@ public class IpcManager : MediatorSubscriberBase, IDisposable
_logger.LogTrace("CustomizePlus reverting for {chara}", c.Address.ToString("X"));
_customizePlusRevert!.InvokeAction(c);
}
});
}).ConfigureAwait(false);
}
private async Task PenumbraRedrawAction(ILogger logger, GameObjectHandler obj, Guid applicationId, Action action, bool fireAndForget, CancellationToken token)
@@ -605,10 +605,10 @@ public class IpcManager : MediatorSubscriberBase, IDisposable
Mediator.Publish(new PalettePlusMessage(palette));
}
public void PalettePlusSetPalette(IntPtr character, string palette)
public async Task PalettePlusSetPalette(IntPtr character, string palette)
{
if (!CheckPalettePlusApi()) return;
ActionQueue.Enqueue(() =>
await _dalamudUtil.RunOnFrameworkThread(() =>
{
var gameObj = _dalamudUtil.CreateGameObject(character);
if (gameObj is Character c)
@@ -626,7 +626,7 @@ public class IpcManager : MediatorSubscriberBase, IDisposable
_palettePlusSetCharaPalette!.InvokeAction(c, decodedPalette);
}
}
});
}).ConfigureAwait(false);
}
public string PalettePlusBuildPalette()
@@ -637,10 +637,10 @@ public class IpcManager : MediatorSubscriberBase, IDisposable
return Convert.ToBase64String(Encoding.UTF8.GetBytes(palette));
}
public void PalettePlusRemovePalette(IntPtr character)
public async Task PalettePlusRemovePalette(IntPtr character)
{
if (!CheckPalettePlusApi()) return;
ActionQueue.Enqueue(() =>
await _dalamudUtil.RunOnFrameworkThread(() =>
{
var gameObj = _dalamudUtil.CreateGameObject(character);
if (gameObj is Character c)
@@ -648,7 +648,7 @@ public class IpcManager : MediatorSubscriberBase, IDisposable
_logger.LogTrace("PalettePlus removing for {addr}", c.Address.ToString("X"));
_palettePlusRemoveCharaPalette!.InvokeAction(c);
}
});
}).ConfigureAwait(false);
}
private void PenumbraDispose()