RoleUnbanCommand.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. using Content.Server.Administration.Managers;
  2. using Content.Shared.Administration;
  3. using Robust.Shared.Console;
  4. namespace Content.Server.Administration.Commands;
  5. [AdminCommand(AdminFlags.Ban)]
  6. public sealed class RoleUnbanCommand : IConsoleCommand
  7. {
  8. public string Command => "roleunban";
  9. public string Description => Loc.GetString("cmd-roleunban-desc");
  10. public string Help => Loc.GetString("cmd-roleunban-help");
  11. public async void Execute(IConsoleShell shell, string argStr, string[] args)
  12. {
  13. if (args.Length != 1)
  14. {
  15. shell.WriteLine(Help);
  16. return;
  17. }
  18. if (!int.TryParse(args[0], out var banId))
  19. {
  20. shell.WriteLine($"Unable to parse {args[0]} as a ban id integer.\n{Help}");
  21. return;
  22. }
  23. var banManager = IoCManager.Resolve<IBanManager>();
  24. var response = await banManager.PardonRoleBan(banId, shell.Player?.UserId, DateTimeOffset.Now);
  25. shell.WriteLine(response);
  26. }
  27. public CompletionResult GetCompletion(IConsoleShell shell, string[] args)
  28. {
  29. // Can't think of good way to do hint options for this
  30. return args.Length switch
  31. {
  32. 1 => CompletionResult.FromHint(Loc.GetString("cmd-roleunban-hint-1")),
  33. _ => CompletionResult.Empty
  34. };
  35. }
  36. }