aboutsummaryrefslogtreecommitdiff
path: root/lib/models/channel/message/message_t.mli
blob: ba8c62a00fe3b4eae597cb58705ef0fe6499ff11 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
(** Represents a message object. *)
type t = {
    id: Message_id.t; (** Snowflake ID of the message. *)
    author: User_t.t; (** User that authored the message. *)
    channel_id: Channel_id_t.t; (** Channel ID the message exists in. *)
    member: Member_t.partial_member option; (** A partial member if the message was sent in a guild. *)
    guild_id: Guild_id_t.t option; (** Guild ID if the message was sent in a guild. *)
    content: string; (** Content of the message. *)
    timestamp: string; (** ISO8601 timestamp of when the message was created. *)
    edited_timestamp: string option; (** Like timestamp, but for last edit, if any. *)
    tts: bool; (** Whether the message used text-to-speech. *)
    mention_everyone: bool; (** Whether the message mentioned [@everyone] or [@here] *)
    mentions: User_t.t list; (** A List of users that were mentioned in the message. *)
    mention_roles: Role_id.t list; (** A list of roles that were mentioned in the message. *)
    attachments: Attachment.t list; (** A list of attachments. *)
    embeds: Embed.t list; (** A List of embeds on the message. *)
    reactions: Reaction_t.t list; (** A list of reactions. *)
    nonce: Snowflake.t option; (** Used in verification, safe to ignore. *)
    pinned: bool; (** Whether the message is pinned. *)
    webhook_id: Snowflake.t option; (** The webhook ID, if the message was sent by a webhook. *)
    kind: int; (** See {{:https://discordapp.com/developers/docs/resources/channel#message-object-message-types}the discord docs} for message type enumeration. *)
} [@@deriving sexp, yojson]