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