1
0

ActionCommands.cs 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. using Content.Server.Administration;
  2. using Content.Shared.Actions;
  3. using Content.Shared.Administration;
  4. using Robust.Shared.Console;
  5. namespace Content.Server.Commands;
  6. [AdminCommand(AdminFlags.Fun)]
  7. internal sealed class UpgradeActionCommand : IConsoleCommand
  8. {
  9. [Dependency] private readonly IEntityManager _entMan = default!;
  10. public string Command => "upgradeaction";
  11. public string Description => Loc.GetString("upgradeaction-command-description");
  12. public string Help => Loc.GetString("upgradeaction-command-help");
  13. public void Execute(IConsoleShell shell, string argStr, string[] args)
  14. {
  15. if (args.Length < 1)
  16. {
  17. shell.WriteLine(Loc.GetString("upgradeaction-command-need-one-argument"));
  18. return;
  19. }
  20. if (args.Length > 2)
  21. {
  22. shell.WriteLine(Loc.GetString("upgradeaction-command-max-two-arguments"));
  23. return;
  24. }
  25. var actionUpgrade = _entMan.EntitySysManager.GetEntitySystem<ActionUpgradeSystem>();
  26. var id = args[0];
  27. if (!NetEntity.TryParse(id, out var nuid))
  28. {
  29. shell.WriteLine(Loc.GetString("upgradeaction-command-incorrect-entityuid-format"));
  30. return;
  31. }
  32. if (!_entMan.TryGetEntity(nuid, out var uid))
  33. {
  34. shell.WriteLine(Loc.GetString("upgradeaction-command-entity-does-not-exist"));
  35. return;
  36. }
  37. if (!_entMan.TryGetComponent<ActionUpgradeComponent>(uid, out var actionUpgradeComponent))
  38. {
  39. shell.WriteLine(Loc.GetString("upgradeaction-command-entity-is-not-action"));
  40. return;
  41. }
  42. if (args.Length == 1)
  43. {
  44. if (!actionUpgrade.TryUpgradeAction(uid, out _, actionUpgradeComponent))
  45. {
  46. shell.WriteLine(Loc.GetString("upgradeaction-command-cannot-level-up"));
  47. return;
  48. }
  49. }
  50. if (args.Length == 2)
  51. {
  52. var levelArg = args[1];
  53. if (!int.TryParse(levelArg, out var level))
  54. {
  55. shell.WriteLine(Loc.GetString("upgradeaction-command-second-argument-not-number"));
  56. return;
  57. }
  58. if (level <= 0)
  59. {
  60. shell.WriteLine(Loc.GetString("upgradeaction-command-less-than-required-level"));
  61. return;
  62. }
  63. if (!actionUpgrade.TryUpgradeAction(uid, out _, actionUpgradeComponent, level))
  64. shell.WriteLine(Loc.GetString("upgradeaction-command-cannot-level-up"));
  65. }
  66. }
  67. }