using Dalamud.Game.ClientState.Objects.Enums; using PatMe2Mqtt.PatMeProxyApi; using System; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.Linq; using System.Reflection; // This could be optimized in a thousand different ways (better dynamic methods, source-gen this class), but eh. namespace PatMe2Mqtt.PatMeProxyApi { public readonly record struct EmoteCounter(PatMe PatMe, object ProxiedValue) : IPatMeProxy { public string descSingular => (string) PatMe.GetValue(ProxiedValue, nameof(descSingular))!; public string descPlural => (string) PatMe.GetValue(ProxiedValue, nameof(descPlural))!; public uint Value => (uint) PatMe.GetValue(ProxiedValue, nameof(Value))!; } }