45 lines
1.3 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|