Files
OldThink/Content.Server/_White/PandaSocket/Commands/PandaAdminWhoCommand.cs

46 lines
1.3 KiB
C#

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<IAdminManager>();
var admins = adminManager.ActiveAdmins.ToList();
var adminsList = new List<string>();
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!);
}
}