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

40 lines
1.2 KiB
C#

using System.Linq;
using Content.Server._White.PandaSocket.Interfaces;
using Content.Server._White.PandaSocket.Main;
using Robust.Shared.Configuration;
using Robust.Shared.Enums;
using Robust.Shared.Player;
namespace Content.Server._White.PandaSocket.Commands;
public sealed class PandaWhoCommand : IPandaCommand
{
[Dependency] private readonly IConfigurationManager _cfg = default!;
public string Name => "who";
public Type RequestMessageType => typeof(UtkaWhoRequest);
public void Execute(IPandaStatusHandlerContext context, PandaBaseMessage baseMessage)
{
if (baseMessage is not UtkaWhoRequest) return;
IoCManager.InjectDependencies(this);
var players = Filter.GetAllPlayers().ToList();
var playerNames = players
.Where(player => player.Status != SessionStatus.Disconnected)
.Select(x => x.Name);
var toUtkaMessage = new UtkaWhoResponse()
{
Players = playerNames.ToList()
};
Response(context, toUtkaMessage);
}
public void Response(IPandaStatusHandlerContext context, PandaBaseMessage? message = null)
{
context.RespondJsonAsync(message!);
}
}