1
0

AddMechanismCommand.cs 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. using Content.Server.Body.Systems;
  2. using Content.Shared.Administration;
  3. using Robust.Shared.Console;
  4. namespace Content.Server.Administration.Commands
  5. {
  6. [AdminCommand(AdminFlags.Admin)]
  7. public sealed class AddMechanismCommand : IConsoleCommand
  8. {
  9. [Dependency] private readonly IEntityManager _entManager = default!;
  10. public string Command => "addmechanism";
  11. public string Description => "Adds a given entity to a containing body.";
  12. public string Help => "Usage: addmechanism <entity uid> <bodypart uid>";
  13. public void Execute(IConsoleShell shell, string argStr, string[] args)
  14. {
  15. if (args.Length != 2)
  16. {
  17. shell.WriteError(Loc.GetString("shell-wrong-arguments-number"));
  18. return;
  19. }
  20. if (!NetEntity.TryParse(args[0], out var organIdNet) || !_entManager.TryGetEntity(organIdNet, out var organId))
  21. {
  22. shell.WriteError(Loc.GetString("shell-entity-uid-must-be-number"));
  23. return;
  24. }
  25. if (!NetEntity.TryParse(args[1], out var partIdNet) || !_entManager.TryGetEntity(partIdNet, out var partId))
  26. {
  27. shell.WriteError(Loc.GetString("shell-entity-uid-must-be-number"));
  28. return;
  29. }
  30. var bodySystem = _entManager.System<BodySystem>();
  31. if (bodySystem.AddOrganToFirstValidSlot(partId.Value, organId.Value))
  32. {
  33. shell.WriteLine($@"Added {organId} to {partId}.");
  34. }
  35. else
  36. {
  37. shell.WriteError($@"Could not add {organId} to {partId}.");
  38. }
  39. }
  40. }
  41. }