diff --git a/Content.Server/StationEvents/StationEventCommand.cs b/Content.Server/StationEvents/StationEventCommand.cs index 108baba460..1c6f1f6928 100644 --- a/Content.Server/StationEvents/StationEventCommand.cs +++ b/Content.Server/StationEvents/StationEventCommand.cs @@ -13,88 +13,106 @@ namespace Content.Server.StationEvents { public string Command => "events"; public string Description => "Provides admin control to station events"; - public string Help => "events >\n" + - "list: return all event names that can be run\n " + - "pause: stop all random events from running\n" + - "resume: allow random events to run again\n" + - "run: start a particular event now; is case-insensitive and not localized"; + public string Help => $"events >\n{ListHelp}\n{PauseHelp}\n{ResumeHelp}\n{RunHelp}"; + + private const string ListHelp = "list: return all event names that can be run"; + + private const string PauseHelp = "pause: stop all random events from running and any one currently running"; + + private const string ResumeHelp = "resume: allow random events to run again"; + + private const string RunHelp = + "run : start a particular event now; is case-insensitive and not localized"; + public void Execute(IConsoleShell shell, IPlayerSession? player, string[] args) { if (args.Length == 0) { - shell.SendText(player, "Need more args"); - return; - } - - if (args[0] == "list") - { - var resultText = "Random\n" + EntitySystem.Get().GetEventNames(); - shell.SendText(player, resultText); - return; - } - - // Didn't use a "toggle" so it's explicit - if (args[0] == "pause") - { - var stationEventSystem = EntitySystem.Get(); - - if (!stationEventSystem.Enabled) - { - shell.SendText(player, Loc.GetString("Station events are already paused")); - return; - } - else - { - stationEventSystem.Enabled = false; - shell.SendText(player, Loc.GetString("Station events paused")); - return; - } - } - - if (args[0] == "resume") - { - var stationEventSystem = EntitySystem.Get(); - - if (stationEventSystem.Enabled) - { - shell.SendText(player, Loc.GetString("Station events are already running")); - return; - } - else - { - stationEventSystem.Enabled = true; - shell.SendText(player, Loc.GetString("Station events resumed")); - return; - } - } - - if (args[0] == "stop") - { - var resultText = EntitySystem.Get().StopEvent(); - shell.SendText(player, resultText); + shell.SendText(player, $"Invalid amount of arguments.\n{Help}"); return; } - if (args[0] == "run" && args.Length == 2) + switch (args[0]) { - var eventName = args[1]; - string resultText; + case "list": + List(shell, player); + break; + // Didn't use a "toggle" so it's explicit + case "pause": + Pause(shell, player); + break; + case "resume": + Resume(shell, player); + break; + case "stop": + Stop(shell, player); + break; + case "run": + if (args.Length != 2) + { + shell.SendText(player, $"Need 2 arguments, there were {args.Length}.\n{RunHelp}"); + break; + } - if (eventName == "random") - { - resultText = EntitySystem.Get().RunRandomEvent(); - } - else - { - resultText = EntitySystem.Get().RunEvent(eventName); - } - - shell.SendText(player, resultText); - return; + Run(shell, player, args[1]); + break; + default: + shell.SendText(player, Loc.GetString($"Invalid events command.\n{Help}")); + break; } + } - shell.SendText(player, Loc.GetString("Invalid events command")); - return; + private void Run(IConsoleShell shell, IPlayerSession? player, string eventName) + { + var stationSystem = EntitySystem.Get(); + + var resultText = eventName == "random" + ? stationSystem.RunRandomEvent() + : stationSystem.RunEvent(eventName); + + shell.SendText(player, resultText); + } + + private void List(IConsoleShell shell, IPlayerSession? player) + { + var resultText = "Random\n" + EntitySystem.Get().GetEventNames(); + shell.SendText(player, resultText); + } + + private void Pause(IConsoleShell shell, IPlayerSession? player) + { + var stationEventSystem = EntitySystem.Get(); + + if (!stationEventSystem.Enabled) + { + shell.SendText(player, Loc.GetString("Station events are already paused")); + } + else + { + stationEventSystem.Enabled = false; + shell.SendText(player, Loc.GetString("Station events paused")); + } + } + + private void Resume(IConsoleShell shell, IPlayerSession? player) + { + var stationEventSystem = EntitySystem.Get(); + + if (stationEventSystem.Enabled) + { + shell.SendText(player, Loc.GetString("Station events are already running")); + } + else + { + stationEventSystem.Enabled = true; + shell.SendText(player, Loc.GetString("Station events resumed")); + } + } + + private void Stop(IConsoleShell shell, IPlayerSession? player) + { + var resultText = EntitySystem.Get().StopEvent(); + shell.SendText(player, resultText); } } }