diff --git a/MareSynchronos/Interop/IpcManager.cs b/MareSynchronos/Interop/IpcManager.cs index f72a2be..36cc641 100644 --- a/MareSynchronos/Interop/IpcManager.cs +++ b/MareSynchronos/Interop/IpcManager.cs @@ -42,11 +42,6 @@ public sealed class IpcManager : DisposableMediatorSubscriberBase private readonly ICallGateSubscriber _honorificLocalCharacterTitleChanged; private readonly ICallGateSubscriber _honorificReady; private readonly ICallGateSubscriber _honorificSetCharacterTitle; - private readonly ICallGateSubscriber _palettePlusApiVersion; - private readonly ICallGateSubscriber _palettePlusBuildCharaPalette; - private readonly ICallGateSubscriber _palettePlusPaletteChanged; - private readonly ICallGateSubscriber _palettePlusRemoveCharaPalette; - private readonly ICallGateSubscriber _palettePlusSetCharaPalette; private readonly FuncSubscriber, string, int, PenumbraApiEc> _penumbraAddTemporaryMod; private readonly FuncSubscriber _penumbraAssignTemporaryCollection; private readonly FuncSubscriber _penumbraConvertTextureFile; @@ -73,7 +68,6 @@ public sealed class IpcManager : DisposableMediatorSubscriberBase private bool _glamourerAvailable = false; private bool _heelsAvailable = false; private bool _honorificAvailable = false; - private bool _palettePlusAvailable = false; private bool _penumbraAvailable = false; private bool _shownGlamourerUnavailable = false; private bool _shownPenumbraUnavailable = false; @@ -132,14 +126,6 @@ public sealed class IpcManager : DisposableMediatorSubscriberBase _customizePlusOnScaleUpdate.Subscribe(OnCustomizePlusScaleChange); - _palettePlusApiVersion = pi.GetIpcSubscriber("PalettePlus.ApiVersion"); - _palettePlusBuildCharaPalette = pi.GetIpcSubscriber("PalettePlus.BuildCharaPaletteOrEmpty"); - _palettePlusSetCharaPalette = pi.GetIpcSubscriber("PalettePlus.SetCharaPalette"); - _palettePlusRemoveCharaPalette = pi.GetIpcSubscriber("PalettePlus.RemoveCharaPalette"); - _palettePlusPaletteChanged = pi.GetIpcSubscriber("PalettePlus.PaletteChanged"); - - _palettePlusPaletteChanged.Subscribe(OnPalettePlusPaletteChange); - _honorificApiVersion = pi.GetIpcSubscriber<(uint, uint)>("Honorific.ApiVersion"); _honorificGetLocalCharacterTitle = pi.GetIpcSubscriber("Honorific.GetLocalCharacterTitle"); _honorificClearCharacterTitle = pi.GetIpcSubscriber("Honorific.ClearCharacterTitle"); @@ -180,8 +166,6 @@ public sealed class IpcManager : DisposableMediatorSubscriberBase public bool CheckHonorificApi() => _honorificAvailable; - public bool CheckPalettePlusApi() => _palettePlusAvailable; - public bool CheckPenumbraApi() => _penumbraAvailable; public async Task CustomizePlusRevertAsync(IntPtr character) @@ -433,51 +417,6 @@ public sealed class IpcManager : DisposableMediatorSubscriberBase } } - public async Task PalettePlusBuildPaletteAsync() - { - if (!CheckPalettePlusApi()) return string.Empty; - var palette = await _dalamudUtil.RunOnFrameworkThread(() => _palettePlusBuildCharaPalette.InvokeFunc(_dalamudUtil.GetPlayerCharacter())).ConfigureAwait(false); - if (string.IsNullOrEmpty(palette)) return string.Empty; - return Convert.ToBase64String(Encoding.UTF8.GetBytes(palette)); - } - - public async Task PalettePlusRemovePaletteAsync(IntPtr character) - { - if (!CheckPalettePlusApi()) return; - await _dalamudUtil.RunOnFrameworkThread(() => - { - var gameObj = _dalamudUtil.CreateGameObject(character); - if (gameObj is Character c) - { - Logger.LogTrace("PalettePlus removing for {addr}", c.Address.ToString("X")); - _palettePlusRemoveCharaPalette!.InvokeAction(c); - } - }).ConfigureAwait(false); - } - - public async Task PalettePlusSetPaletteAsync(IntPtr character, string palette) - { - if (!CheckPalettePlusApi()) return; - string decodedPalette = Encoding.UTF8.GetString(Convert.FromBase64String(palette)); - await _dalamudUtil.RunOnFrameworkThread(() => - { - var gameObj = _dalamudUtil.CreateGameObject(character); - if (gameObj is Character c) - { - if (string.IsNullOrEmpty(decodedPalette)) - { - Logger.LogTrace("PalettePlus removing for {addr}", c.Address.ToString("X")); - _palettePlusRemoveCharaPalette!.InvokeAction(c); - } - else - { - Logger.LogTrace("PalettePlus applying for {addr}", c.Address.ToString("X")); - _palettePlusSetCharaPalette!.InvokeAction(c, decodedPalette); - } - } - }).ConfigureAwait(false); - } - public async Task PenumbraAssignTemporaryCollectionAsync(ILogger logger, string collName, int idx) { if (!CheckPenumbraApi()) return; @@ -637,7 +576,6 @@ public sealed class IpcManager : DisposableMediatorSubscriberBase _penumbraInit.Dispose(); _penumbraObjectIsRedrawn.Dispose(); _heelsOffsetUpdate.Unsubscribe(HeelsOffsetChange); - _palettePlusPaletteChanged.Unsubscribe(OnPalettePlusPaletteChange); _customizePlusOnScaleUpdate.Unsubscribe(OnCustomizePlusScaleChange); _honorificLocalCharacterTitleChanged.Unsubscribe(OnHonorificLocalCharacterTitleChanged); _honorificDisposing.Unsubscribe(OnHonorificDisposing); @@ -713,18 +651,6 @@ public sealed class IpcManager : DisposableMediatorSubscriberBase } } - private bool CheckPalettePlusApiInternal() - { - try - { - return string.Equals(_palettePlusApiVersion.InvokeFunc(), "1.1.0", StringComparison.Ordinal); - } - catch - { - return false; - } - } - private bool CheckPenumbraApiInternal() { bool penumbraAvailable = false; @@ -789,11 +715,6 @@ public sealed class IpcManager : DisposableMediatorSubscriberBase Mediator.Publish(new HonorificReadyMessage()); } - private void OnPalettePlusPaletteChange(Character character, string palette) - { - Mediator.Publish(new PalettePlusMessage(character)); - } - private void PenumbraDispose() { _disposalCts.Cancel(); @@ -839,7 +760,6 @@ public sealed class IpcManager : DisposableMediatorSubscriberBase _penumbraAvailable = CheckPenumbraApiInternal(); _heelsAvailable = CheckHeelsApiInternal(); _customizePlusAvailable = CheckCustomizePlusApiInternal(); - _palettePlusAvailable = CheckPalettePlusApiInternal(); _honorificAvailable = CheckHonorificApiInternal(); PenumbraModDirectory = GetPenumbraModDirectoryInternal(); } diff --git a/MareSynchronos/PlayerData/Data/PlayerChanges.cs b/MareSynchronos/PlayerData/Data/PlayerChanges.cs index bd1beb9..034fd58 100644 --- a/MareSynchronos/PlayerData/Data/PlayerChanges.cs +++ b/MareSynchronos/PlayerData/Data/PlayerChanges.cs @@ -7,7 +7,6 @@ public enum PlayerChanges Glamourer = 3, Customize = 4, Heels = 5, - Palette = 6, Honorific = 7, ForcedRedraw = 8, } \ No newline at end of file diff --git a/MareSynchronos/PlayerData/Export/MareCharaFileManager.cs b/MareSynchronos/PlayerData/Export/MareCharaFileManager.cs index 2ce0680..aa6e8d9 100644 --- a/MareSynchronos/PlayerData/Export/MareCharaFileManager.cs +++ b/MareSynchronos/PlayerData/Export/MareCharaFileManager.cs @@ -49,7 +49,6 @@ public class MareCharaFileManager : DisposableMediatorSubscriberBase if ((await dalamudUtil.RunOnFrameworkThread(() => item.Value.CurrentAddress()).ConfigureAwait(false)) != nint.Zero) { await _ipcManager.GlamourerRevert(logger, item.Value.Name, item.Value, Guid.NewGuid(), cts.Token).ConfigureAwait(false); - await _ipcManager.PalettePlusRemovePaletteAsync(item.Value.Address).ConfigureAwait(false); } else { @@ -117,14 +116,6 @@ public class MareCharaFileManager : DisposableMediatorSubscriberBase { await _ipcManager.CustomizePlusRevertAsync(tempHandler.Address).ConfigureAwait(false); } - if (!string.IsNullOrEmpty(LoadedCharaFile.CharaFileData.PalettePlusData)) - { - await _ipcManager.PalettePlusSetPaletteAsync(tempHandler.Address, LoadedCharaFile.CharaFileData.PalettePlusData).ConfigureAwait(false); - } - else - { - await _ipcManager.PalettePlusRemovePaletteAsync(tempHandler.Address).ConfigureAwait(false); - } } } catch (Exception ex) diff --git a/MareSynchronos/PlayerData/Factories/PlayerDataFactory.cs b/MareSynchronos/PlayerData/Factories/PlayerDataFactory.cs index 6c843b7..a092924 100644 --- a/MareSynchronos/PlayerData/Factories/PlayerDataFactory.cs +++ b/MareSynchronos/PlayerData/Factories/PlayerDataFactory.cs @@ -197,7 +197,6 @@ public class PlayerDataFactory Task getHeelsOffset = _ipcManager.GetHeelsOffsetAsync(); Task getGlamourerData = _ipcManager.GlamourerGetCharacterCustomizationAsync(playerRelatedObject.Address); Task getCustomizeData = _ipcManager.GetCustomizePlusScaleAsync(playerRelatedObject.Address); - Task getPalettePlusData = _ipcManager.PalettePlusBuildPaletteAsync(); previousData.GlamourerString[playerRelatedObject.ObjectKind] = await getGlamourerData.ConfigureAwait(false); _logger.LogDebug("Glamourer is now: {data}", previousData.GlamourerString[playerRelatedObject.ObjectKind]); var customizeScale = await getCustomizeData.ConfigureAwait(false); @@ -206,8 +205,8 @@ public class PlayerDataFactory previousData.CustomizePlusScale[playerRelatedObject.ObjectKind] = customizeScale; _logger.LogDebug("Customize is now: {data}", previousData.CustomizePlusScale[playerRelatedObject.ObjectKind]); } - previousData.PalettePlusPalette = await getPalettePlusData.ConfigureAwait(false); - _logger.LogDebug("Palette is now: {data}", previousData.PalettePlusPalette); + // todo: remove once heaving api + previousData.PalettePlusPalette = string.Empty; previousData.HonorificData = _ipcManager.HonorificGetTitle(); _logger.LogDebug("Honorific is now: {data}", previousData.HonorificData); previousData.HeelsData = await getHeelsOffset.ConfigureAwait(false); diff --git a/MareSynchronos/PlayerData/Handlers/PairHandler.cs b/MareSynchronos/PlayerData/Handlers/PairHandler.cs index c1c60a2..84b3387 100644 --- a/MareSynchronos/PlayerData/Handlers/PairHandler.cs +++ b/MareSynchronos/PlayerData/Handlers/PairHandler.cs @@ -288,10 +288,6 @@ public sealed class PairHandler : DisposableMediatorSubscriberBase Logger.LogDebug("[{applicationId}] Processing {change} for {handler}", applicationId, change, handler); switch (change) { - case PlayerChanges.Palette: - await _ipcManager.PalettePlusSetPaletteAsync(handler.Address, charaData.PalettePlusData).ConfigureAwait(false); - break; - case PlayerChanges.Customize: if (charaData.CustomizePlusData.TryGetValue(changes.Key, out var customizePlusData)) { @@ -533,9 +529,6 @@ public sealed class PairHandler : DisposableMediatorSubscriberBase Logger.LogDebug("[{applicationId}] Restoring C+ for {alias}/{name}", applicationId, OnlineUser.User.AliasOrUID, name); await _ipcManager.CustomizePlusRevertAsync(address).ConfigureAwait(false); tempHandler.CompareNameAndThrow(name); - Logger.LogDebug("[{applicationId}] Restoring Palette+ for {alias}/{name}", applicationId, OnlineUser.User.AliasOrUID, name); - await _ipcManager.PalettePlusRemovePaletteAsync(address).ConfigureAwait(false); - tempHandler.CompareNameAndThrow(name); Logger.LogDebug("[{applicationId}] Restoring Honorific for {alias}/{name}", applicationId, OnlineUser.User.AliasOrUID, name); await _ipcManager.HonorificClearTitleAsync(address).ConfigureAwait(false); } diff --git a/MareSynchronos/PlayerData/Services/CacheCreationService.cs b/MareSynchronos/PlayerData/Services/CacheCreationService.cs index af27036..e6647d9 100644 --- a/MareSynchronos/PlayerData/Services/CacheCreationService.cs +++ b/MareSynchronos/PlayerData/Services/CacheCreationService.cs @@ -21,7 +21,6 @@ public sealed class CacheCreationService : DisposableMediatorSubscriberBase private Task? _cacheCreationTask; private CancellationTokenSource _honorificCts = new(); private bool _isZoning = false; - private CancellationTokenSource _palettePlusCts = new(); private readonly Dictionary _glamourerCts = new(); public CacheCreationService(ILogger logger, MareMediator mediator, GameObjectHandlerFactory gameObjectHandlerFactory, @@ -100,15 +99,6 @@ public sealed class CacheCreationService : DisposableMediatorSubscriberBase GlamourerChanged(changedType.Key); } }); - Mediator.Subscribe(this, (msg) => - { - if (_isZoning) return; - if (msg.Character.Address == _playerRelatedObjects[ObjectKind.Player].Address) - { - Logger.LogDebug("Received PalettePlus change, updating player"); - PalettePlusChanged(); - } - }); Mediator.Subscribe(this, (msg) => { if (_isZoning) return; @@ -172,21 +162,6 @@ public sealed class CacheCreationService : DisposableMediatorSubscriberBase await AddPlayerCacheToCreate().ConfigureAwait(false); }, token); } - - private void PalettePlusChanged() - { - _palettePlusCts?.Cancel(); - _palettePlusCts?.Dispose(); - _palettePlusCts = new(); - var token = _palettePlusCts.Token; - - _ = Task.Run(async () => - { - await Task.Delay(TimeSpan.FromSeconds(1), token).ConfigureAwait(false); - await AddPlayerCacheToCreate().ConfigureAwait(false); - }, token); - } - private void ProcessCacheCreation() { if (_isZoning) return; diff --git a/MareSynchronos/Services/Mediator/Messages.cs b/MareSynchronos/Services/Mediator/Messages.cs index 2650c40..c8c0439 100644 --- a/MareSynchronos/Services/Mediator/Messages.cs +++ b/MareSynchronos/Services/Mediator/Messages.cs @@ -38,7 +38,6 @@ public record GlamourerChangedMessage(IntPtr Address) : MessageBase; public record HeelsOffsetMessage : MessageBase; public record PenumbraResourceLoadMessage(IntPtr GameObject, string GamePath, string FilePath) : SameThreadMessage; public record CustomizePlusMessage(string ProfileName) : MessageBase; -public record PalettePlusMessage(Character Character) : MessageBase; public record HonorificMessage(string NewHonorificTitle) : MessageBase; public record HonorificReadyMessage : MessageBase; public record PlayerChangedMessage(CharacterData Data) : MessageBase; diff --git a/MareSynchronos/UI/UISharedService.cs b/MareSynchronos/UI/UISharedService.cs index c376a05..2d2dce9 100644 --- a/MareSynchronos/UI/UISharedService.cs +++ b/MareSynchronos/UI/UISharedService.cs @@ -70,7 +70,6 @@ public partial class UiSharedService : DisposableMediatorSubscriberBase private bool _isPenumbraDirectory = false; - private bool _palettePlusExists = false; private bool _penumbraExists = false; private int _serverSelectionIndex = -1; diff --git a/MareSynchronos/Utils/VariousExtensions.cs b/MareSynchronos/Utils/VariousExtensions.cs index 325a084..2243f49 100644 --- a/MareSynchronos/Utils/VariousExtensions.cs +++ b/MareSynchronos/Utils/VariousExtensions.cs @@ -174,15 +174,6 @@ public static class VariousExtensions charaDataToUpdate[objectKind].Add(PlayerChanges.Heels); } - bool palettePlusDataDifferent = !string.Equals(oldData.PalettePlusData, newData.PalettePlusData, StringComparison.Ordinal) - || (charaDataToUpdate.TryGetValue(objectKind, out var playerChanges) && playerChanges.Contains(PlayerChanges.Glamourer) - && (!string.IsNullOrEmpty(oldData.PalettePlusData) || !string.IsNullOrEmpty(newData.PalettePlusData))); - if (palettePlusDataDifferent || (forceApplyCustomization && !string.IsNullOrEmpty(newData.PalettePlusData))) - { - logger.LogDebug("[BASE-{appBase}] Updating {object}/{kind} (Diff palette data) => {change}", applicationBase, cachedPlayer, objectKind, PlayerChanges.Palette); - charaDataToUpdate[objectKind].Add(PlayerChanges.Palette); - } - bool honorificDataDifferent = !string.Equals(oldData.HonorificData, newData.HonorificData, StringComparison.Ordinal); if (honorificDataDifferent || (forceApplyCustomization && !string.IsNullOrEmpty(newData.HonorificData))) {