1
0

Messages.cs 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. using Content.Shared.Chat.Prototypes;
  2. using Content.Shared.Chat.V2;
  3. using Content.Shared.Radio;
  4. namespace Content.Server.Chat.V2;
  5. /// <summary>
  6. /// Raised locally when a comms announcement is made.
  7. /// </summary>
  8. public sealed class CommsAnnouncementCreatedEvent(EntityUid sender, EntityUid console, string message) : IChatEvent
  9. {
  10. public uint Id { get; set; }
  11. public EntityUid Sender { get; set; } = sender;
  12. public string Message { get; set; } = message;
  13. public MessageType Type => MessageType.Announcement;
  14. public EntityUid Console = console;
  15. }
  16. /// <summary>
  17. /// Raised locally when a character speaks in Dead Chat.
  18. /// </summary>
  19. public sealed class DeadChatCreatedEvent(EntityUid speaker, string message, bool isAdmin) : IChatEvent
  20. {
  21. public uint Id { get; set; }
  22. public EntityUid Sender { get; set; } = speaker;
  23. public string Message { get; set; } = message;
  24. public MessageType Type => MessageType.DeadChat;
  25. public bool IsAdmin = isAdmin;
  26. }
  27. /// <summary>
  28. /// Raised locally when a character emotes.
  29. /// </summary>
  30. public sealed class EmoteCreatedEvent(EntityUid sender, string message, float range) : IChatEvent
  31. {
  32. public uint Id { get; set; }
  33. public EntityUid Sender { get; set; } = sender;
  34. public string Message { get; set; } = message;
  35. public MessageType Type => MessageType.Emote;
  36. public float Range = range;
  37. }
  38. /// <summary>
  39. /// Raised locally when a character talks in local.
  40. /// </summary>
  41. public sealed class LocalChatCreatedEvent(EntityUid speaker, string message, float range) : IChatEvent
  42. {
  43. public uint Id { get; set; }
  44. public EntityUid Sender { get; set; } = speaker;
  45. public string Message { get; set; } = message;
  46. public MessageType Type => MessageType.Local;
  47. public float Range = range;
  48. }
  49. /// <summary>
  50. /// Raised locally when a character speaks in LOOC.
  51. /// </summary>
  52. public sealed class LoocCreatedEvent(EntityUid speaker, string message) : IChatEvent
  53. {
  54. public uint Id { get; set; }
  55. public EntityUid Sender { get; set; } = speaker;
  56. public string Message { get; set; } = message;
  57. public MessageType Type => MessageType.Looc;
  58. }
  59. /// <summary>
  60. /// Raised locally when a character speaks on the radio.
  61. /// </summary>
  62. public sealed class RadioCreatedEvent(
  63. EntityUid speaker,
  64. string message,
  65. RadioChannelPrototype channel)
  66. : IChatEvent
  67. {
  68. public uint Id { get; set; }
  69. public EntityUid Sender { get; set; } = speaker;
  70. public string Message { get; set; } = message;
  71. public RadioChannelPrototype Channel = channel;
  72. public MessageType Type => MessageType.Radio;
  73. }
  74. /// <summary>
  75. /// Raised locally when a character whispers.
  76. /// </summary>
  77. public sealed class WhisperCreatedEvent(EntityUid speaker, string message, float minRange, float maxRange) : IChatEvent
  78. {
  79. public uint Id { get; set; }
  80. public EntityUid Sender { get; set; } = speaker;
  81. public string Message { get; set; } = message;
  82. public MessageType Type => MessageType.Whisper;
  83. public float MinRange = minRange;
  84. public float MaxRange = maxRange;
  85. }