DSay.cs 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. using Content.Server.Chat.Systems;
  2. using Content.Shared.Administration;
  3. using Robust.Shared.Console;
  4. namespace Content.Server.Administration.Commands
  5. {
  6. [AdminCommand(AdminFlags.Moderator)]
  7. sealed class DSay : IConsoleCommand
  8. {
  9. [Dependency] private readonly IEntityManager _e = default!;
  10. public string Command => "dsay";
  11. public string Description => Loc.GetString("dsay-command-description");
  12. public string Help => Loc.GetString("dsay-command-help-text", ("command", Command));
  13. public void Execute(IConsoleShell shell, string argStr, string[] args)
  14. {
  15. if (shell.Player is not { } player)
  16. {
  17. shell.WriteError(Loc.GetString("shell-cannot-run-command-from-server"));
  18. return;
  19. }
  20. if (player.AttachedEntity is not { Valid: true } entity)
  21. return;
  22. if (args.Length < 1)
  23. return;
  24. var message = string.Join(" ", args).Trim();
  25. if (string.IsNullOrEmpty(message))
  26. return;
  27. var chat = _e.System<ChatSystem>();
  28. chat.TrySendInGameOOCMessage(entity, message, InGameOOCChatType.Dead, false, shell, player);
  29. }
  30. }
  31. }