some customize+ application fixes
This commit is contained in:
@@ -79,6 +79,7 @@ public class PlayerDataFactory
|
|||||||
|
|
||||||
var previousFileReplacements = previousData.FileReplacements.ToDictionary(d => d.Key, d => d.Value);
|
var previousFileReplacements = previousData.FileReplacements.ToDictionary(d => d.Key, d => d.Value);
|
||||||
var previousGlamourerData = previousData.GlamourerString.ToDictionary(d => d.Key, d => d.Value);
|
var previousGlamourerData = previousData.GlamourerString.ToDictionary(d => d.Key, d => d.Value);
|
||||||
|
var previousCustomize = previousData.CustomizePlusScale.ToDictionary(d => d.Key, d => d.Value);
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@@ -100,6 +101,7 @@ public class PlayerDataFactory
|
|||||||
|
|
||||||
previousData.FileReplacements = previousFileReplacements;
|
previousData.FileReplacements = previousFileReplacements;
|
||||||
previousData.GlamourerString = previousGlamourerData;
|
previousData.GlamourerString = previousGlamourerData;
|
||||||
|
previousData.CustomizePlusScale = previousCustomize;
|
||||||
}
|
}
|
||||||
|
|
||||||
private unsafe void AddPlayerSpecificReplacements(Human* human, HashSet<string> forwardResolve, HashSet<string> reverseResolve)
|
private unsafe void AddPlayerSpecificReplacements(Human* human, HashSet<string> forwardResolve, HashSet<string> reverseResolve)
|
||||||
@@ -312,6 +314,11 @@ public class PlayerDataFactory
|
|||||||
previousData.FileReplacements[objectKind].Clear();
|
previousData.FileReplacements[objectKind].Clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (previousData.CustomizePlusScale.ContainsKey(objectKind))
|
||||||
|
{
|
||||||
|
previousData.CustomizePlusScale.Remove(objectKind);
|
||||||
|
}
|
||||||
|
|
||||||
// wait until chara is not drawing and present so nothing spontaneously explodes
|
// wait until chara is not drawing and present so nothing spontaneously explodes
|
||||||
await _dalamudUtil.WaitWhileCharacterIsDrawing(_logger, playerRelatedObject, Guid.NewGuid(), 30000, ct: token).ConfigureAwait(false);
|
await _dalamudUtil.WaitWhileCharacterIsDrawing(_logger, playerRelatedObject, Guid.NewGuid(), 30000, ct: token).ConfigureAwait(false);
|
||||||
int totalWaitTime = 10000;
|
int totalWaitTime = 10000;
|
||||||
@@ -381,7 +388,7 @@ public class PlayerDataFactory
|
|||||||
previousData.GlamourerString[playerRelatedObject.ObjectKind] = await getGlamourerData.ConfigureAwait(false);
|
previousData.GlamourerString[playerRelatedObject.ObjectKind] = await getGlamourerData.ConfigureAwait(false);
|
||||||
_logger.LogDebug("Glamourer is now: {data}", previousData.GlamourerString[playerRelatedObject.ObjectKind]);
|
_logger.LogDebug("Glamourer is now: {data}", previousData.GlamourerString[playerRelatedObject.ObjectKind]);
|
||||||
var customizeScale = await getCustomizeData.ConfigureAwait(false);
|
var customizeScale = await getCustomizeData.ConfigureAwait(false);
|
||||||
if (customizeScale != null)
|
if (!string.IsNullOrEmpty(customizeScale))
|
||||||
{
|
{
|
||||||
previousData.CustomizePlusScale[playerRelatedObject.ObjectKind] = customizeScale;
|
previousData.CustomizePlusScale[playerRelatedObject.ObjectKind] = customizeScale;
|
||||||
_logger.LogDebug("Customize is now: {data}", previousData.CustomizePlusScale[playerRelatedObject.ObjectKind]);
|
_logger.LogDebug("Customize is now: {data}", previousData.CustomizePlusScale[playerRelatedObject.ObjectKind]);
|
||||||
|
|||||||
@@ -233,6 +233,10 @@ public sealed class PairHandler : DisposableMediatorSubscriberBase
|
|||||||
{
|
{
|
||||||
await _ipcManager.CustomizePlusSetBodyScaleAsync(handler.Address, customizePlusData).ConfigureAwait(false);
|
await _ipcManager.CustomizePlusSetBodyScaleAsync(handler.Address, customizePlusData).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
await _ipcManager.CustomizePlusRevertAsync(handler.Address).ConfigureAwait(false);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PlayerChanges.Heels:
|
case PlayerChanges.Heels:
|
||||||
@@ -533,6 +537,7 @@ public sealed class PairHandler : DisposableMediatorSubscriberBase
|
|||||||
var minionOrMount = await _dalamudUtil.GetMinionOrMountAsync(address).ConfigureAwait(false);
|
var minionOrMount = await _dalamudUtil.GetMinionOrMountAsync(address).ConfigureAwait(false);
|
||||||
if (minionOrMount != nint.Zero)
|
if (minionOrMount != nint.Zero)
|
||||||
{
|
{
|
||||||
|
await _ipcManager.CustomizePlusRevertAsync(minionOrMount).ConfigureAwait(false);
|
||||||
using GameObjectHandler tempHandler = await _gameObjectHandlerFactory.Create(ObjectKind.MinionOrMount, () => minionOrMount, false).ConfigureAwait(false);
|
using GameObjectHandler tempHandler = await _gameObjectHandlerFactory.Create(ObjectKind.MinionOrMount, () => minionOrMount, false).ConfigureAwait(false);
|
||||||
await _ipcManager.PenumbraRedrawAsync(Logger, tempHandler, applicationId, cancelToken.Token).ConfigureAwait(false);
|
await _ipcManager.PenumbraRedrawAsync(Logger, tempHandler, applicationId, cancelToken.Token).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
@@ -542,6 +547,7 @@ public sealed class PairHandler : DisposableMediatorSubscriberBase
|
|||||||
var pet = await _dalamudUtil.GetPetAsync(address).ConfigureAwait(false);
|
var pet = await _dalamudUtil.GetPetAsync(address).ConfigureAwait(false);
|
||||||
if (pet != nint.Zero)
|
if (pet != nint.Zero)
|
||||||
{
|
{
|
||||||
|
await _ipcManager.CustomizePlusRevertAsync(pet).ConfigureAwait(false);
|
||||||
using GameObjectHandler tempHandler = await _gameObjectHandlerFactory.Create(ObjectKind.Pet, () => pet, false).ConfigureAwait(false);
|
using GameObjectHandler tempHandler = await _gameObjectHandlerFactory.Create(ObjectKind.Pet, () => pet, false).ConfigureAwait(false);
|
||||||
await _ipcManager.PenumbraRedrawAsync(Logger, tempHandler, applicationId, cancelToken.Token).ConfigureAwait(false);
|
await _ipcManager.PenumbraRedrawAsync(Logger, tempHandler, applicationId, cancelToken.Token).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
@@ -551,6 +557,7 @@ public sealed class PairHandler : DisposableMediatorSubscriberBase
|
|||||||
var companion = await _dalamudUtil.GetCompanionAsync(address).ConfigureAwait(false);
|
var companion = await _dalamudUtil.GetCompanionAsync(address).ConfigureAwait(false);
|
||||||
if (companion != nint.Zero)
|
if (companion != nint.Zero)
|
||||||
{
|
{
|
||||||
|
await _ipcManager.CustomizePlusRevertAsync(companion).ConfigureAwait(false);
|
||||||
using GameObjectHandler tempHandler = await _gameObjectHandlerFactory.Create(ObjectKind.Pet, () => companion, false).ConfigureAwait(false);
|
using GameObjectHandler tempHandler = await _gameObjectHandlerFactory.Create(ObjectKind.Pet, () => companion, false).ConfigureAwait(false);
|
||||||
await _ipcManager.PenumbraRedrawAsync(Logger, tempHandler, applicationId, cancelToken.Token).ConfigureAwait(false);
|
await _ipcManager.PenumbraRedrawAsync(Logger, tempHandler, applicationId, cancelToken.Token).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -63,7 +63,8 @@ public sealed class CacheCreationService : DisposableMediatorSubscriberBase
|
|||||||
{
|
{
|
||||||
if (_isZoning) return;
|
if (_isZoning) return;
|
||||||
foreach (var item in _playerRelatedObjects
|
foreach (var item in _playerRelatedObjects
|
||||||
.Where(item => string.Equals(item.Value.Name, msg.ProfileName, StringComparison.Ordinal)).Select(k => k.Key))
|
.Where(item => string.IsNullOrEmpty(msg.ProfileName)
|
||||||
|
|| string.Equals(item.Value.Name, msg.ProfileName, StringComparison.Ordinal)).Select(k => k.Key))
|
||||||
{
|
{
|
||||||
Logger.LogDebug("Received CustomizePlus change, updating {obj}", item);
|
Logger.LogDebug("Received CustomizePlus change, updating {obj}", item);
|
||||||
await AddPlayerCacheToCreate(item).ConfigureAwait(false);
|
await AddPlayerCacheToCreate(item).ConfigureAwait(false);
|
||||||
|
|||||||
Reference in New Issue
Block a user