diff --git a/TickTracker/Helpers/Utilities.cs b/TickTracker/Helpers/Utilities.cs
index 6b44835..2a8158a 100644
--- a/TickTracker/Helpers/Utilities.cs
+++ b/TickTracker/Helpers/Utilities.cs
@@ -95,19 +95,22 @@ public bool WindowCondition(WindowType window)
///
/// Saves the size and position for the indicated .
///
- public void UpdateWindowConfig(Vector2 currentPos, Vector2 currentSize, WindowType window)
+ public bool UpdateWindowConfig(Vector2 currentPos, Vector2 currentSize, WindowType window)
{
+ var configChanged = false;
if (window is WindowType.HpWindow)
{
if (!currentPos.Equals(config.HPBarPosition))
{
config.HPBarPosition = currentPos;
config.Save(pluginInterface);
+ configChanged = true;
}
if (!currentSize.Equals(config.HPBarSize))
{
config.HPBarSize = currentSize;
config.Save(pluginInterface);
+ configChanged = true;
}
}
if (window is WindowType.MpWindow)
@@ -116,11 +119,13 @@ public void UpdateWindowConfig(Vector2 currentPos, Vector2 currentSize, WindowTy
{
config.MPBarPosition = currentPos;
config.Save(pluginInterface);
+ configChanged = true;
}
if (!currentSize.Equals(config.MPBarSize))
{
config.MPBarSize = currentSize;
config.Save(pluginInterface);
+ configChanged = true;
}
}
if (window is WindowType.GpWindow)
@@ -129,13 +134,16 @@ public void UpdateWindowConfig(Vector2 currentPos, Vector2 currentSize, WindowTy
{
config.GPBarPosition = currentPos;
config.Save(pluginInterface);
+ configChanged = true;
}
if (!currentSize.Equals(config.GPBarSize))
{
config.GPBarSize = currentSize;
config.Save(pluginInterface);
+ configChanged = true;
}
}
+ return configChanged;
}
///
diff --git a/TickTracker/IPC/PenumbraEnums.cs b/TickTracker/IPC/PenumbraEnums.cs
index c00020d..ec84be1 100644
--- a/TickTracker/IPC/PenumbraEnums.cs
+++ b/TickTracker/IPC/PenumbraEnums.cs
@@ -29,12 +29,29 @@ public enum PenumbraApiEc
public enum ModSettingChange
{
+ /// It was set to inherit from other collections or not to inherit anymore.
Inheritance,
+
+ /// It was enabled or disabled.
EnableState,
+
+ /// Its priority was changed.
Priority,
+
+ /// A specific setting for an option group was changed.
Setting,
+
+ /// Multiple mods were set to inherit from other collections or not inherit anymore at once.
MultiInheritance,
+
+ /// Multiple mods were enabled or disabled at once.
MultiEnableState,
+
+ /// A temporary mod was enabled or disabled.
+ TemporaryMod,
+
+ /// A mod was edited. Only invoked on edits affecting the current players collection and for that for now.
+ Edited,
}
public enum ApiCollectionType : byte
@@ -132,5 +149,3 @@ public enum ApiCollectionType : byte
Interface = 0xE1,
Current = 0xE2,
}
-
-
diff --git a/TickTracker/IPC/PenumbraIpc.cs b/TickTracker/IPC/PenumbraIpc.cs
index cf0184d..6242fd4 100644
--- a/TickTracker/IPC/PenumbraIpc.cs
+++ b/TickTracker/IPC/PenumbraIpc.cs
@@ -27,15 +27,6 @@ public sealed class PenumbraIpc : IDisposable
private readonly ICallGateSubscriber modSettingsChanged;
private readonly (Guid Id, string Name) interfaceCollection;
- [Obsolete("Changed with Penumbra API rework")]
- private readonly ICallGateSubscriber oldInterfaceCollection;
- [Obsolete("Changed with Penumbra API rework")]
- private readonly ICallGateSubscriber> oldModList;
- [Obsolete("Changed with Penumbra API rework")]
- private readonly ICallGateSubscriber> optionDetails, bool settingsInherited)? settings)> oldModSettings;
- [Obsolete("Changed with Penumbra API rework")]
- private readonly ICallGateSubscriber oldModSettingsChanged;
-
public bool NativeUiBanned { get; private set; }
private bool penumbraModsEnabled
@@ -68,21 +59,12 @@ private bool penumbraModsEnabled
}
}
-#pragma warning disable CS8618
public PenumbraIpc(DalamudPluginInterface _pluginInterface, IPluginLog _pluginLog)
{
log = _pluginLog;
+ apiVersions = _pluginInterface.GetIpcSubscriber<(int, int)>("Penumbra.ApiVersion.V5");
- try
- {
- apiVersions = _pluginInterface.GetIpcSubscriber<(int, int)>("Penumbra.ApiVersions");
- }
- catch
- {
- apiVersions = _pluginInterface.GetIpcSubscriber<(int, int)>("Penumbra.ApiVersion");
- }
-
- if (penumbraApiVersion.Breaking is not 4 and not 5)
+ if (penumbraApiVersion.Breaking is not 5)
{
throw new NotSupportedException("Penumbra API out of date. Version " + penumbraApiVersion.Breaking.ToString(CultureInfo.InvariantCulture));
}
@@ -91,24 +73,13 @@ public PenumbraIpc(DalamudPluginInterface _pluginInterface, IPluginLog _pluginLo
penumbraInit = _pluginInterface.GetIpcSubscriber