using Dalamud.Game.Addon.Events; namespace Dalamud.Plugin.Services; /// /// Service provider for addon event management. /// public interface IAddonEventManager { /// /// Delegate to be called when an event is received. /// /// Event type for this event handler. /// The parent addon for this event handler. /// The specific node that will trigger this event handler. public delegate void AddonEventHandler(AddonEventType atkEventType, nint atkUnitBase, nint atkResNode); /// /// Registers an event handler for the specified addon, node, and type. /// /// The parent addon for this event. /// The node that will trigger this event. /// The event type for this event. /// The handler to call when event is triggered. /// IAddonEventHandle used to remove the event. Null if no event was added. IAddonEventHandle? AddEvent(nint atkUnitBase, nint atkResNode, AddonEventType eventType, AddonEventHandler eventHandler); /// /// Unregisters an event handler with the specified event id and event type. /// /// Unique handle identifying this event. void RemoveEvent(IAddonEventHandle eventHandle); /// /// Force the game cursor to be the specified cursor. /// /// Which cursor to use. void SetCursor(AddonCursorType cursor); /// /// Un-forces the game cursor. /// void ResetCursor(); }