AnomalySystem.Commands.cs 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. using Content.Server.Administration;
  2. using Content.Shared.Administration;
  3. using Content.Shared.Anomaly.Components;
  4. using Robust.Shared.Console;
  5. namespace Content.Server.Anomaly;
  6. public sealed partial class AnomalySystem
  7. {
  8. [Dependency] private readonly IConsoleHost _consoleHost = default!;
  9. public void InitializeCommands()
  10. {
  11. _consoleHost.RegisterCommand("pulseanomaly", Loc.GetString("anomaly-command-pulse"), "pulseanomaly <uid>",
  12. PulseAnomalyCommand,
  13. GetAnomalyCompletion);
  14. _consoleHost.RegisterCommand("supercriticalanomaly", Loc.GetString("anomaly-command-supercritical"), "supercriticalanomaly <uid>",
  15. SupercriticalAnomalyCommand,
  16. GetAnomalyCompletion);
  17. }
  18. [AdminCommand(AdminFlags.Fun)]
  19. private void PulseAnomalyCommand(IConsoleShell shell, string argstr, string[] args)
  20. {
  21. if (args.Length != 1)
  22. shell.WriteError("Argument length must be 1");
  23. if (!NetEntity.TryParse(args[0], out var uidNet) || !TryGetEntity(uidNet, out var uid))
  24. return;
  25. if (!TryComp<AnomalyComponent>(uid, out var anomaly))
  26. return;
  27. DoAnomalyPulse(uid.Value, anomaly);
  28. }
  29. [AdminCommand(AdminFlags.Fun)]
  30. private void SupercriticalAnomalyCommand(IConsoleShell shell, string argstr, string[] args)
  31. {
  32. if (args.Length != 1)
  33. shell.WriteError("Argument length must be 1");
  34. if (!NetEntity.TryParse(args[0], out var uidNet) || !TryGetEntity(uidNet, out var uid))
  35. return;
  36. if (!HasComp<AnomalyComponent>(uid))
  37. return;
  38. StartSupercriticalEvent(uid.Value);
  39. }
  40. private CompletionResult GetAnomalyCompletion(IConsoleShell shell, string[] args)
  41. {
  42. return args.Length != 1
  43. ? CompletionResult.Empty
  44. : CompletionResult.FromHintOptions(CompletionHelper.Components<AnomalyComponent>(args[0]), "<uid>");
  45. }
  46. }