diff --git a/Glamourer/Api/GlamourerIpc.cs b/Glamourer/Api/GlamourerIpc.cs index 6213d96..fb57924 100644 --- a/Glamourer/Api/GlamourerIpc.cs +++ b/Glamourer/Api/GlamourerIpc.cs @@ -10,6 +10,7 @@ namespace Glamourer.Api { public class GlamourerIpc : IDisposable { + public const string LabelProviderApiVersion = "Glamourer.ApiVersion"; public const string LabelProviderGetCharacterCustomization = "Glamourer.GetCharacterCustomization"; public const string LabelProviderApplyCharacterCustomization = "Glamourer.ApplyCharacterCustomization"; private readonly ClientState clientState; @@ -18,6 +19,7 @@ namespace Glamourer.Api internal ICallGateProvider? ProviderGetCharacterCustomization; internal ICallGateProvider? ProviderApplyCharacterCustomization; + internal ICallGateProvider? ProviderGetApiVersion; public GlamourerIpc(ClientState clientState, ObjectTable objectTable, DalamudPluginInterface pluginInterface) { @@ -37,10 +39,21 @@ namespace Glamourer.Api { ProviderApplyCharacterCustomization?.UnregisterFunc(); ProviderGetCharacterCustomization?.UnregisterAction(); + ProviderGetApiVersion?.UnregisterFunc(); } private void InitializeProviders() { + try + { + ProviderGetApiVersion = pluginInterface.GetIpcProvider(LabelProviderApiVersion); + ProviderGetApiVersion.RegisterFunc(GetApiVersion); + } + catch (Exception ex) + { + PluginLog.Error(ex, $"Error registering IPC provider for {LabelProviderApiVersion}."); + } + try { ProviderGetCharacterCustomization = pluginInterface.GetIpcProvider(LabelProviderGetCharacterCustomization); @@ -62,6 +75,8 @@ namespace Glamourer.Api } } + private int GetApiVersion() => 0; + private void ApplyCharacterCustomization(string customization, string characterName) { var save = CharacterSave.FromString(customization);