using Content.Shared._DV.AccountLinking; using Robust.Shared.Network; namespace Content.Client._DV.AccountLinking; public sealed class LinkAccountManager : IPostInjectInit { [Dependency] private readonly INetManager _net = default!; private readonly List _allPatrons = []; public SharedPatronTier? Tier { get; private set; } public bool Linked { get; private set; } public event Action? CodeReceived; public event Action? Updated; private void OnCode(LinkAccountCodeMsg message) { CodeReceived?.Invoke(message.Code); } private void OnStatus(LinkAccountStatusMsg ev) { Tier = ev.Patron?.Tier; Linked = ev.Patron?.Linked ?? false; Updated?.Invoke(); } private void OnPatronList(PatronListMsg ev) { _allPatrons.Clear(); _allPatrons.AddRange(ev.Patrons); } public IReadOnlyList GetPatrons() { return _allPatrons; } void IPostInjectInit.PostInject() { _net.RegisterNetMessage(OnCode); _net.RegisterNetMessage(); _net.RegisterNetMessage(OnStatus); _net.RegisterNetMessage(OnPatronList); } }