using Content.Server.Administration; using Content.Shared.Administration; using Robust.Server.Player; using Robust.Shared.Console; using Robust.Shared.GameObjects; using Robust.Shared.IoC; namespace Content.Server.GameTicking.Commands { [AnyCommand] sealed class ObserveCommand : IConsoleCommand { public string Command => "observe"; public string Description => ""; public string Help => ""; public void Execute(IConsoleShell shell, string argStr, string[] args) { if (shell.Player is not IPlayerSession player) { return; } var ticker = EntitySystem.Get(); if (ticker.RunLevel == GameRunLevel.PreRoundLobby) { shell.WriteError("Wait until the round starts."); return; } if (ticker.PlayersInLobby.ContainsKey(player)) ticker.MakeObserve(player); else shell.WriteError($"{player.Name} is not in the lobby. This incident will be reported."); } } }