using Dalamud.Game.Addon.Lifecycle; using Dalamud.Game.Addon.Lifecycle.AddonArgTypes; using FFXIVClientStructs.FFXIV.Component.GUI; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace QuestShare.Addons { internal class AddonPartyList { public static int MemberCount { get; private set; } public static event EventHandler? OnMemberCountChanged; public static void Initialize() { AddonLifecycle.RegisterListener(AddonEvent.PostRefresh, OnPostRefresh); } public static void Dispose() { AddonLifecycle.UnregisterListener(AddonEvent.PostRefresh, OnPostRefresh); } private static void OnPostRefresh(AddonEvent e, AddonArgs args) { unsafe { var addon = (FFXIVClientStructs.FFXIV.Client.UI.AddonPartyList*)args.Addon; if (addon == null) { return; } int count = addon->MemberCount; if (count != MemberCount) { MemberCount = addon->MemberCount; OnMemberCountChanged?.Invoke(null, EventArgs.Empty); } } } } }