RejuvenateCommand.cs 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. using Content.Server.Administration.Systems;
  2. using Content.Shared.Administration;
  3. using Robust.Shared.Toolshed;
  4. using Robust.Shared.Toolshed.Errors;
  5. namespace Content.Server.Administration.Toolshed;
  6. [ToolshedCommand, AdminCommand(AdminFlags.Debug)]
  7. public sealed class RejuvenateCommand : ToolshedCommand
  8. {
  9. private RejuvenateSystem? _rejuvenate;
  10. [CommandImplementation]
  11. public IEnumerable<EntityUid> Rejuvenate([PipedArgument] IEnumerable<EntityUid> input)
  12. {
  13. _rejuvenate ??= GetSys<RejuvenateSystem>();
  14. foreach (var i in input)
  15. {
  16. _rejuvenate.PerformRejuvenate(i);
  17. yield return i;
  18. }
  19. }
  20. [CommandImplementation]
  21. public void Rejuvenate(IInvocationContext ctx)
  22. {
  23. _rejuvenate ??= GetSys<RejuvenateSystem>();
  24. if (ExecutingEntity(ctx) is not { } ent)
  25. {
  26. if (ctx.Session is {} session)
  27. ctx.ReportError(new SessionHasNoEntityError(session));
  28. else
  29. ctx.ReportError(new NotForServerConsoleError());
  30. }
  31. else
  32. _rejuvenate.PerformRejuvenate(ent);
  33. }
  34. }