DeleteChatMessageCommand.cs 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. using System.Diagnostics;
  2. using Content.Server.Administration;
  3. using Content.Server.Chat.V2.Repository;
  4. using Content.Shared.Administration;
  5. using Robust.Shared.Toolshed;
  6. using Robust.Shared.Toolshed.Errors;
  7. using Robust.Shared.Utility;
  8. namespace Content.Server.Chat.V2.Commands;
  9. [ToolshedCommand, AdminCommand(AdminFlags.Admin)]
  10. public sealed class DeleteChatMessageCommand : ToolshedCommand
  11. {
  12. [Dependency] private readonly IEntitySystemManager _manager = default!;
  13. [CommandImplementation("id")]
  14. public void DeleteChatMessage(IInvocationContext ctx, uint messageId)
  15. {
  16. if (!_manager.GetEntitySystem<ChatRepositorySystem>().Delete(messageId))
  17. {
  18. ctx.ReportError(new MessageIdDoesNotExist());
  19. }
  20. }
  21. }
  22. public record struct MessageIdDoesNotExist() : IConError
  23. {
  24. public FormattedMessage DescribeInner()
  25. {
  26. return FormattedMessage.FromUnformatted(Loc.GetString("command-error-deletechatmessage-id-notexist"));
  27. }
  28. public string? Expression { get; set; }
  29. public Vector2i? IssueSpan { get; set; }
  30. public StackTrace? Trace { get; set; }
  31. }