namespace Content.Shared.Chat.V2;
///
/// The types of messages that can be sent, validated and processed via user input that are covered by Chat V2.
///
public enum MessageType : byte
{
#region Player-sendable types
///
/// Chat for announcements like CentCom telling you to stop sending them memes.
///
Announcement,
///
/// Chat that ghosts use to complain about being gibbed.
///
DeadChat,
///
/// Chat that mimes use to evade their vow.
///
Emote,
///
/// Chat that players use to make lame jokes to people nearby.
///
Local,
///
/// Chat that players use to complain about shitsec/admins/antags/balance/etc.
///
Looc,
///
/// Chat that players use to say "HELP MAINT", or plead to call the shuttle because a beaker spilled.
///
/// This does not tell you what radio channel has been chatted on!
Radio,
///
/// Chat that is used exclusively by syndie tots to collaborate on whatever tots do.
///
Whisper,
#endregion
#region Non-player-sendable types
///
/// Chat that is sent to exactly one player; almost exclusively used for admemes and prayer responses.
///
Subtle,
///
/// Chat that is sent by automata, like when a vending machine thanks you for your unwise purchases.
///
Background,
#endregion
}
///
/// Defines a chat event that can be stored in a chat repository.
///
public interface IChatEvent
{
///
/// The sender of the chat message.
///
public EntityUid Sender
{
get;
}
///
/// The ID of the message. This is overwritten when saved into a repository.
///
public uint Id
{
get;
set;
}
///
/// The sent message.
///
public string Message
{
get;
set;
}
///
/// The type of sent message.
///
public MessageType Type
{
get;
}
}