OwoifyCommand.cs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. using Content.Server.Speech.EntitySystems;
  2. using Content.Shared.Administration;
  3. using Robust.Shared.Console;
  4. using Robust.Shared.Random;
  5. namespace Content.Server.Administration.Commands;
  6. [AdminCommand(AdminFlags.Fun)]
  7. public sealed class OwoifyCommand : IConsoleCommand
  8. {
  9. [Dependency] private readonly IEntityManager _entManager = default!;
  10. public string Command => "owoify";
  11. public string Description => "For when you need everything to be cat. Uses OwOAccent's formatting on the name and description of an entity.";
  12. public string Help => "owoify <id>";
  13. public void Execute(IConsoleShell shell, string argStr, string[] args)
  14. {
  15. if (args.Length != 1)
  16. {
  17. shell.WriteLine(Loc.GetString("shell-wrong-arguments-number"));
  18. return;
  19. }
  20. if (!int.TryParse(args[0], out var targetId))
  21. {
  22. shell.WriteLine(Loc.GetString("shell-argument-must-be-number"));
  23. return;
  24. }
  25. var nent = new NetEntity(targetId);
  26. if (!_entManager.TryGetEntity(nent, out var eUid))
  27. {
  28. return;
  29. }
  30. var meta = _entManager.GetComponent<MetaDataComponent>(eUid.Value);
  31. var owoSys = _entManager.System<OwOAccentSystem>();
  32. var metaDataSys = _entManager.System<MetaDataSystem>();
  33. metaDataSys.SetEntityName(eUid.Value, owoSys.Accentuate(meta.EntityName), meta);
  34. metaDataSys.SetEntityDescription(eUid.Value, owoSys.Accentuate(meta.EntityDescription), meta);
  35. }
  36. }