using Dalamud.Plugin; using Penumbra.Api.Api; using Penumbra.Api.Enums; using Penumbra.Api.Helpers; #pragma warning disable CS1591 // Missing XML comment for publicly visible type or member namespace Penumbra.Api.IpcSubscribers.Legacy; using CurrentSettings = ValueTuple>, bool)?>; public sealed class GetAvailableModSettings(IDalamudPluginInterface pi) : FuncSubscriber, GroupType)>?>(pi, Label) { public const string Label = $"Penumbra.{nameof(GetAvailableModSettings)}"; public new IDictionary, GroupType)>? Invoke(string modDirectory, string modName = "") => base.Invoke(modDirectory, modName); } public sealed class GetCurrentModSettings(IDalamudPluginInterface pi) : FuncSubscriber(pi, Label) { public const string Label = $"Penumbra.{nameof(GetCurrentModSettings)}"; public new CurrentSettings Invoke(string collectionName, string modDirectory, string modName = "", bool ignoreInheritance = false) => base.Invoke(collectionName, modDirectory, modName, ignoreInheritance); } public sealed class TryInheritMod(IDalamudPluginInterface pi) : FuncSubscriber(pi, Label) { public const string Label = $"Penumbra.{nameof(TryInheritMod)}"; public PenumbraApiEc Invoke(string collectionName, string modDirectory, bool inherit, string modName = "") => Invoke(collectionName, modDirectory, modName, inherit); } public sealed class TrySetMod(IDalamudPluginInterface pi) : FuncSubscriber(pi, Label) { public const string Label = $"Penumbra.{nameof(TrySetMod)}"; public PenumbraApiEc Invoke(string collectionName, string modDirectory, bool enabled, string modName = "") => Invoke(collectionName, modDirectory, modName, enabled); } public sealed class TrySetModPriority(IDalamudPluginInterface pi) : FuncSubscriber(pi, Label) { public const string Label = $"Penumbra.{nameof(TrySetModPriority)}"; public PenumbraApiEc Invoke(string collectionName, string modDirectory, int priority, string modName = "") => Invoke(collectionName, modDirectory, modName, priority); } public sealed class TrySetModSetting(IDalamudPluginInterface pi) : FuncSubscriber(pi, Label) { public const string Label = $"Penumbra.{nameof(TrySetModSetting)}"; public new PenumbraApiEc Invoke(string collectionName, string modDirectory, string groupName, string setting, string modName = "") => base.Invoke(collectionName, modDirectory, modName, groupName, setting); } public sealed class TrySetModSettings(IDalamudPluginInterface pi) : FuncSubscriber, PenumbraApiEc>(pi, Label) { public const string Label = $"Penumbra.{nameof(TrySetModSettings)}"; public PenumbraApiEc Invoke(string collectionName, string modDirectory, string groupName, IReadOnlyList settings, string modName = "") => Invoke(collectionName, modDirectory, modName, groupName, settings); } public static class ModSettingChanged { public const string Label = $"Penumbra.{nameof(ModSettingChanged)}.V5"; public static EventSubscriber Subscriber(IDalamudPluginInterface pi, params Action[] actions) => new(pi, Label, actions); } public sealed class CopyModSettings(IDalamudPluginInterface pi) : FuncSubscriber(pi, Label) { public const string Label = $"Penumbra.{nameof(CopyModSettings)}"; public new PenumbraApiEc Invoke(string collectionName, string modDirectoryFrom, string modDirectoryTo) => base.Invoke(collectionName, modDirectoryFrom, modDirectoryTo); }