2025-02-17 22:12:35 -05:00

45 lines
1.3 KiB
C#

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);
}
}
}
}
}