1
0

BanPanelCommand.cs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. using Content.Shared.Administration;
  2. using Robust.Shared.Console;
  3. using Content.Server.EUI;
  4. namespace Content.Server.Administration.Commands;
  5. [AdminCommand(AdminFlags.Ban)]
  6. public sealed class BanPanelCommand : LocalizedCommands
  7. {
  8. [Dependency] private readonly IPlayerLocator _locator = default!;
  9. [Dependency] private readonly EuiManager _euis = default!;
  10. public override string Command => "banpanel";
  11. public override async void Execute(IConsoleShell shell, string argStr, string[] args)
  12. {
  13. if (shell.Player is not { } player)
  14. {
  15. shell.WriteError(Loc.GetString("shell-cannot-run-command-from-server"));
  16. return;
  17. }
  18. switch (args.Length)
  19. {
  20. case 0:
  21. _euis.OpenEui(new BanPanelEui(), player);
  22. break;
  23. case 1:
  24. var located = await _locator.LookupIdByNameOrIdAsync(args[0]);
  25. if (located is null)
  26. {
  27. shell.WriteError(Loc.GetString("cmd-banpanel-player-err"));
  28. return;
  29. }
  30. var ui = new BanPanelEui();
  31. _euis.OpenEui(ui, player);
  32. ui.ChangePlayer(located.UserId, located.Username, located.LastAddress, located.LastHWId);
  33. break;
  34. default:
  35. shell.WriteLine(Loc.GetString("cmd-ban-invalid-arguments"));
  36. shell.WriteLine(Help);
  37. return;
  38. }
  39. }
  40. }