using System.Linq; using Content.Server.Administration.Managers; using Content.Server._White.PandaSocket.Interfaces; using Content.Server._White.PandaSocket.Main; namespace Content.Server._White.PandaSocket.Commands; public sealed class PandaAdminWhoCommand : IPandaCommand { public string Name => "adminwho"; public Type RequestMessageType => typeof(UtkaAdminWhoRequest); public void Execute(IPandaStatusHandlerContext context, PandaBaseMessage baseMessage) { if(baseMessage is not UtkaAdminWhoRequest message) return; IoCManager.InjectDependencies(this); var adminManager = IoCManager.Resolve(); var admins = adminManager.ActiveAdmins.ToList(); var adminsList = new List(); foreach (var admin in admins) { var adminData = adminManager.GetAdminData(admin)!; if (adminData.Stealth) continue; adminsList.Add(admin.Name); } var toUtkaMessage = new UtkaAdminWhoResponse() { Admins = adminsList }; Response(context, toUtkaMessage); } public void Response(IPandaStatusHandlerContext context, PandaBaseMessage? message = null) { context.RespondJsonAsync(message!); } }