diff --git a/Glamourer.zip b/Glamourer.zip index 50c3a50..145ea80 100644 Binary files a/Glamourer.zip and b/Glamourer.zip differ diff --git a/Glamourer/Api/PenumbraAttach.cs b/Glamourer/Api/PenumbraAttach.cs index 20cc69c..83302b1 100644 --- a/Glamourer/Api/PenumbraAttach.cs +++ b/Glamourer/Api/PenumbraAttach.cs @@ -10,12 +10,13 @@ namespace Glamourer.Api; public class PenumbraAttach : IDisposable { - public const int RequiredPenumbraShareVersion = 4; + public const int RequiredPenumbraBreakingVersion = 4; + public const int RequiredPenumbraFeatureVersion = 0; - private ICallGateSubscriber? _tooltipSubscriber; + private ICallGateSubscriber? _tooltipSubscriber; private ICallGateSubscriber? _clickSubscriber; - private ICallGateSubscriber? _redrawSubscriberName; - private ICallGateSubscriber? _redrawSubscriberObject; + private ICallGateSubscriber? _redrawSubscriberName; + private ICallGateSubscriber? _redrawSubscriberObject; private readonly ICallGateSubscriber _initializedEvent; private readonly ICallGateSubscriber _disposedEvent; @@ -23,7 +24,7 @@ public class PenumbraAttach : IDisposable public PenumbraAttach(bool attach) { _initializedEvent = Dalamud.PluginInterface.GetIpcSubscriber("Penumbra.Initialized"); - _disposedEvent = Dalamud.PluginInterface.GetIpcSubscriber("Penumbra.Disposed"); + _disposedEvent = Dalamud.PluginInterface.GetIpcSubscriber("Penumbra.Disposed"); _initializedEvent.Subscribe(Reattach); _disposedEvent.Subscribe(Unattach); Reattach(attach); @@ -38,12 +39,13 @@ public class PenumbraAttach : IDisposable { Unattach(); - var versionSubscriber = Dalamud.PluginInterface.GetIpcSubscriber("Penumbra.ApiVersion"); - var version = versionSubscriber.InvokeFunc(); - if (version < RequiredPenumbraShareVersion) - throw new Exception($"Invalid Version {version}, required Version {RequiredPenumbraShareVersion}."); + var versionSubscriber = Dalamud.PluginInterface.GetIpcSubscriber<(int, int)>("Penumbra.ApiVersions"); + var (breaking, feature) = versionSubscriber.InvokeFunc(); + if (breaking != RequiredPenumbraBreakingVersion || feature < RequiredPenumbraFeatureVersion) + throw new Exception( + $"Invalid Version {breaking}.{feature:D4}, required major Version {RequiredPenumbraBreakingVersion} with feature greater or equal to {RequiredPenumbraFeatureVersion}."); - _redrawSubscriberName = Dalamud.PluginInterface.GetIpcSubscriber("Penumbra.RedrawObjectByName"); + _redrawSubscriberName = Dalamud.PluginInterface.GetIpcSubscriber("Penumbra.RedrawObjectByName"); _redrawSubscriberObject = Dalamud.PluginInterface.GetIpcSubscriber("Penumbra.RedrawObject"); if (!attach) @@ -66,8 +68,8 @@ public class PenumbraAttach : IDisposable { _tooltipSubscriber?.Unsubscribe(PenumbraTooltip); _clickSubscriber?.Unsubscribe(PenumbraRightClick); - _tooltipSubscriber = null; - _clickSubscriber = null; + _tooltipSubscriber = null; + _clickSubscriber = null; _redrawSubscriberName = null; if (_redrawSubscriberObject != null) { @@ -94,9 +96,9 @@ public class PenumbraAttach : IDisposable if (button != MouseButton.Right || type != ChangedItemType.Item) return; - var gPose = Dalamud.Objects[Interface.GPoseObjectId] as Character; - var player = Dalamud.Objects[0] as Character; - var item = (Lumina.Excel.GeneratedSheets.Item)type.GetObject(id)!; + var gPose = Dalamud.Objects[Interface.GPoseObjectId] as Character; + var player = Dalamud.Objects[0] as Character; + var item = (Lumina.Excel.GeneratedSheets.Item)type.GetObject(id)!; var writeItem = new Item(item, string.Empty); if (gPose != null) { diff --git a/Glamourer/Glamourer.csproj b/Glamourer/Glamourer.csproj index d991945..8d87e46 100644 --- a/Glamourer/Glamourer.csproj +++ b/Glamourer/Glamourer.csproj @@ -5,8 +5,8 @@ x64 Glamourer Glamourer - 0.1.0.3 - 0.1.0.3 + 0.1.0.4 + 0.1.0.4 SoftOtter Glamourer Copyright © 2020 diff --git a/Glamourer/Glamourer.json b/Glamourer/Glamourer.json index d54c46f..51b90d2 100644 --- a/Glamourer/Glamourer.json +++ b/Glamourer/Glamourer.json @@ -5,7 +5,7 @@ "Description": "Adds functionality to change and store appearance of players, customization and equip. Requires Penumbra to be installed and activated to work. Can also add preview options to the Changed Items tab for Penumbra.", "Tags": [ "Appearance", "Glamour", "Race", "Outfit", "Armor", "Clothes", "Skins", "Customization", "Design", "Character" ], "InternalName": "Glamourer", - "AssemblyVersion": "0.1.0.3", + "AssemblyVersion": "0.1.0.4", "RepoUrl": "https://github.com/Ottermandias/Glamourer", "ApplicableVersion": "any", "DalamudApiLevel": 6, diff --git a/repo.json b/repo.json index 5235124..0b59f4a 100644 --- a/repo.json +++ b/repo.json @@ -6,8 +6,8 @@ "Description": "Adds functionality to change and store appearance of players, customization and equip. Requires Penumbra to be installed and activated to work. Can also add preview options to the Changed Items tab for Penumbra.", "Tags": [ "Appearance", "Glamour", "Race", "Outfit", "Armor", "Clothes", "Skins", "Customization", "Design", "Character" ], "InternalName": "Glamourer", - "AssemblyVersion": "0.1.0.3", - "TestingAssemblyVersion": "0.1.0.3", + "AssemblyVersion": "0.1.0.4", + "TestingAssemblyVersion": "0.1.0.4", "RepoUrl": "https://github.com/Ottermandias/Glamourer", "ApplicableVersion": "any", "DalamudApiLevel": 6,