Files
OldThink/Content.Server/UtkaIntegration/Commands/UtkaWhoCommand.cs
rhailrake aca6843c0a [feat] Sockets, i guess mm hmm
# Conflicts:
#	Content.Server/Administration/Systems/BwoinkSystem.cs
#	Content.Server/Chat/Managers/ChatManager.cs
#	Content.Server/Entry/EntryPoint.cs
#	Content.Server/GameTicking/GameTicker.RoundFlow.cs
#	Content.Server/IoC/ServerContentIoC.cs
#	Content.Server/RoundEnd/RoundEndSystem.cs
#	Content.Server/Shuttles/Systems/EmergencyShuttleSystem.Console.cs
#	Content.Server/Shuttles/Systems/EmergencyShuttleSystem.cs
#	Content.Shared/CCVar/CCVars.cs
2024-01-10 22:21:52 +07:00

41 lines
1.2 KiB
C#

using System.Linq;
using System.Net;
using System.Text;
using System.Text.Json;
using Content.Server.UtkaIntegration.TCP;
using Content.Shared.CCVar;
using Robust.Server.Player;
using Robust.Shared.Configuration;
using Robust.Shared.Enums;
using Robust.Shared.Player;
namespace Content.Server.UtkaIntegration;
public sealed class UtkaWhoCommand : IUtkaCommand
{
public string Name => "who";
public Type RequestMessageType => typeof(UtkaWhoRequest);
[Dependency] private readonly IConfigurationManager _cfg = default!;
[Dependency] private UtkaTCPWrapper _utkaSocketWrapper = default!;
public void Execute(UtkaTCPSession session, UtkaBaseMessage 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()
};
_utkaSocketWrapper.SendMessageToAll(toUtkaMessage);
}
}