using Dalamud.Plugin;
using Glamourer.Api.Api;
using Glamourer.Api.Helpers;
namespace Glamourer.Api.IpcSubscribers;
///
public sealed class ApiVersion(IDalamudPluginInterface pi)
: FuncSubscriber<(int, int)>(pi, Label)
{
/// The label.
public const string Label = $"Glamourer.{nameof(ApiVersion)}.V2";
///
public new (int Major, int Minor) Invoke()
=> base.Invoke();
/// Create a provider.
public static FuncProvider<(int, int)> Provider(IDalamudPluginInterface pi, IGlamourerApiBase api)
=> new(pi, Label, () => api.ApiVersion);
}
/// Triggered when the Glamourer API is initialized and ready.
public static class Initialized
{
/// The label.
public const string Label = $"Glamourer.{nameof(Initialized)}";
/// Create a new event subscriber.
public static EventSubscriber Subscriber(IDalamudPluginInterface pi, params Action[] actions)
=> new(pi, Label, actions);
/// Create a provider.
public static EventProvider Provider(IDalamudPluginInterface pi)
=> new(pi, Label);
}
/// Triggered when the Glamourer API is fully disposed and unavailable.
public static class Disposed
{
/// The label.
public const string Label = $"Glamourer.{nameof(Disposed)}";
/// Create a new event subscriber.
public static EventSubscriber Subscriber(IDalamudPluginInterface pi, params Action[] actions)
=> new(pi, Label, actions);
/// Create a provider.
public static EventProvider Provider(IDalamudPluginInterface pi)
=> new(pi, Label);
}