Class Message

Message Class

Constructors

Properties

id: string

Accessors

  • get animatedAvatarURL(): undefined | string

    Get the animated avatar URL for this message

    Returns undefined | string

  • get authorId(): undefined | string

    Id of user or webhook this message was sent by

    Returns undefined | string

  • get avatarURL(): undefined | string

    Get the avatar URL for this message

    Returns undefined | string

  • get channelId(): undefined | string

    Id of channel this message was sent in

    Returns undefined | string

  • get editedAt(): undefined | Date

    Time at which this message was edited

    Returns undefined | Date

  • get interactions(): | undefined
    | { reactions?: null
    | string[]; restrict_reactions?: boolean }

    Interactions

    Returns undefined | { reactions?: null | string[]; restrict_reactions?: boolean }

    • undefined
    • { reactions?: null | string[]; restrict_reactions?: boolean }
      • Optionalreactions?: null | string[]

        Reactions which should always appear and be distinct

      • Optionalrestrict_reactions?: boolean

        Whether reactions should be restricted to the given list

        Can only be set to true if reactions list is of at least length 1

  • get isSuppressed(): boolean

    Whether this message has suppressed desktop/push notifications

    Returns boolean

  • get masquerade(): | undefined
    | { avatar?: null
    | string; colour?: null | string; name?: null | string }

    Masquerade

    Returns
        | undefined
        | { avatar?: null
        | string; colour?: null | string; name?: null | string }

    • undefined
    • { avatar?: null | string; colour?: null | string; name?: null | string }
      • Optionalavatar?: null | string

        Replace the avatar shown on this message (URL to image file)

      • Optionalcolour?: null | string

        Replace the display role colour shown on this message

        Must have ManageRole permission to use

      • Optionalname?: null | string

        Replace the display name shown on this message

  • get masqueradeAvatarURL(): undefined | string

    Avatar URL from the masquerade

    Returns undefined | string

  • get mentionIds(): undefined | string[]

    IDs of users this message mentions

    Returns undefined | string[]

  • get reactions(): ReactiveMap<string, ReactiveSet<string>>

    Reactions

    Returns ReactiveMap<string, ReactiveSet<string>>

  • get replyIds(): undefined | string[]

    IDs of messages this message replies to

    Returns undefined | string[]

  • get roleColour(): undefined | null | string

    Get the role colour for this message

    Returns undefined | null | string

  • get username(): undefined | string

    Get the username for this message

    Returns undefined | string

Methods

  • Edit a message

    Parameters

    • data: {
          content?: null | string;
          embeds?:
              | null
              | {
                  colour?: null
                  | string;
                  description?: null | string;
                  icon_url?: null | string;
                  media?: null | string;
                  title?: null | string;
                  url?: null | string;
              }[];
      }

      Message edit route data

      • Optionalcontent?: null | string

        New message content

      • Optionalembeds?:
            | null
            | {
                colour?: null
                | string;
                description?: null | string;
                icon_url?: null | string;
                media?: null | string;
                title?: null | string;
                url?: null | string;
            }[]

        Embeds to include in the message

    Returns Promise<
        {
            _id: string;
            attachments?: | null
            | {
                _id: string;
                content_type: string;
                deleted?: null
                | boolean;
                filename: string;
                message_id?: null | string;
                metadata:
                    | { type: "File" }
                    | { type: "Text" }
                    | { height: number; type: "Image"; width: number }
                    | { height: number; type: "Video"; width: number }
                    | { type: "Audio" };
                object_id?: null | string;
                reported?: null | boolean;
                server_id?: null | string;
                size: number;
                tag: string;
                user_id?: null | string;
            }[];
            author: string;
            channel: string;
            content?: null
            | string;
            edited?: null | string;
            embeds?:
                | null
                | (
                    | {
                        colour?: null
                        | string;
                        description?: null | string;
                        icon_url?: null | string;
                        image?:
                            | null
                            | {
                                height: number;
                                size: "Large"
                                | "Preview";
                                url: string;
                                width: number;
                            };
                        original_url?: null
                        | string;
                        site_name?: null | string;
                        special?:
                            | null
                            | { type: "None" }
                            | { type: "GIF" }
                            | { id: string; timestamp?: null | string; type: "YouTube" }
                            | { content_type: "Channel"; id: string; type: "Lightspeed" }
                            | {
                                content_type: "Video" | "Channel" | "Clip";
                                id: string;
                                type: "Twitch";
                            }
                            | { content_type: string; id: string; type: "Spotify" }
                            | { type: "Soundcloud" }
                            | { content_type: "Album" | "Track"; id: string; type: "Bandcamp" }
                            | { album_id: string; track_id?: null | string; type: "AppleMusic" }
                            | { id: string; type: "Streamable" };
                        title?: null | string;
                        type: "Website";
                        url?: null | string;
                        video?: null | { height: number; url: string; width: number };
                    }
                    | {
                        height: number;
                        size: "Large"
                        | "Preview";
                        type: "Image";
                        url: string;
                        width: number;
                    }
                    | { height: number; type: "Video"; url: string; width: number }
                    | {
                        colour?: null | string;
                        description?: null | string;
                        icon_url?: null | string;
                        media?:
                            | null
                            | {
                                _id: string;
                                content_type: string;
                                deleted?: null
                                | boolean;
                                filename: string;
                                message_id?: null | string;
                                metadata:
                                    | { type: "File" }
                                    | { type: "Text" }
                                    | { height: number; type: "Image"; width: number }
                                    | { height: number; type: "Video"; width: number }
                                    | { type: "Audio" };
                                object_id?: null | string;
                                reported?: null | boolean;
                                server_id?: null | string;
                                size: number;
                                tag: string;
                                user_id?: null | string;
                            };
                        title?: null
                        | string;
                        type: "Text";
                        url?: null | string;
                    }
                    | { type: "None" }
                )[];
            flags?: number;
            interactions?: {
                reactions?: null | string[];
                restrict_reactions?: boolean;
            };
            masquerade?: | null
            | { avatar?: null
            | string; colour?: null | string; name?: null | string };
            member?:
                | null
                | {
                    _id: { server: string; user: string };
                    avatar?:
                        | null
                        | {
                            _id: string;
                            content_type: string;
                            deleted?: null
                            | boolean;
                            filename: string;
                            message_id?: null | string;
                            metadata:
                                | { type: "File" }
                                | { type: "Text" }
                                | { height: number; type: "Image"; width: number }
                                | { height: number; type: "Video"; width: number }
                                | { type: "Audio" };
                            object_id?: null | string;
                            reported?: null | boolean;
                            server_id?: null | string;
                            size: number;
                            tag: string;
                            user_id?: null | string;
                        };
                    joined_at: string;
                    nickname?: null
                    | string;
                    roles?: string[];
                    timeout?: null | string;
                };
            mentions?: null
            | string[];
            nonce?: null | string;
            pinned?: null | boolean;
            reactions?: { [key: string]: string[] };
            replies?: null | string[];
            system?:
                | null
                | { content: string; type: "text" }
                | { by: string; id: string; type: "user_added" }
                | { by: string; id: string; type: "user_remove" }
                | { id: string; type: "user_joined" }
                | { id: string; type: "user_left" }
                | { id: string; type: "user_kicked" }
                | { id: string; type: "user_banned" }
                | { by: string; name: string; type: "channel_renamed" }
                | { by: string; type: "channel_description_changed" }
                | { by: string; type: "channel_icon_changed" }
                | { from: string; to: string; type: "channel_ownership_changed" }
                | { by: string; id: string; type: "message_pinned" }
                | { by: string; id: string; type: "message_unpinned" };
            user?:
                | null
                | {
                    _id: string;
                    avatar?: | null
                    | {
                        _id: string;
                        content_type: string;
                        deleted?: null
                        | boolean;
                        filename: string;
                        message_id?: null | string;
                        metadata:
                            | { type: "File" }
                            | { type: "Text" }
                            | { height: number; type: "Image"; width: number }
                            | { height: number; type: "Video"; width: number }
                            | { type: "Audio" };
                        object_id?: null | string;
                        reported?: null | boolean;
                        server_id?: null | string;
                        size: number;
                        tag: string;
                        user_id?: null | string;
                    };
                    badges?: number;
                    bot?: null
                    | { owner: string };
                    discriminator: string;
                    display_name?: null | string;
                    flags?: number;
                    online: boolean;
                    privileged?: boolean;
                    relations?: {
                        _id: string;
                        status:
                            | "User"
                            | "None"
                            | "Friend"
                            | "Outgoing"
                            | "Incoming"
                            | "Blocked"
                            | "BlockedOther";
                    }[];
                    relationship: | "User"
                    | "None"
                    | "Friend"
                    | "Outgoing"
                    | "Incoming"
                    | "Blocked"
                    | "BlockedOther";
                    status?: | null
                    | {
                        presence?: null
                        | "Online"
                        | "Idle"
                        | "Focus"
                        | "Busy"
                        | "Invisible";
                        text?: null | string;
                    };
                    username: string;
                };
            webhook?: null
            | { avatar?: null | string; name: string };
        },
    >

  • React to a message

    Parameters

    • emoji: string

      Unicode or emoji ID

    Returns Promise<void>

  • Reply to Message

    Parameters

    • data:
          | string
          | Omit<
              {
                  attachments?: null
                  | string[];
                  content?: null | string;
                  embeds?:
                      | null
                      | {
                          colour?: null
                          | string;
                          description?: null | string;
                          icon_url?: null | string;
                          media?: null | string;
                          title?: null | string;
                          url?: null | string;
                      }[];
                  flags?: null
                  | number;
                  interactions?:
                      | null
                      | { reactions?: null
                      | string[]; restrict_reactions?: boolean };
                  masquerade?:
                      | null
                      | {
                          avatar?: null
                          | string;
                          colour?: null | string;
                          name?: null | string;
                      };
                  nonce?: null
                  | string;
                  replies?: null | { id: string; mention: boolean }[];
              },
              "nonce",
          > & { nonce?: string }
    • mention: boolean = true

    Returns undefined | Promise<Message>

  • Un-react from a message

    Parameters

    • emoji: string

      Unicode or emoji ID

    Returns Promise<void>