Message

export class Message<InGuild extends boolean = boolean> extends Base
export class Message<InGuild extends boolean = boolean> extends Base
Represents a message on Discord.

Extends

Base
NameConstraintsOptionalDefaultDescription
InGuildbooleanYesbooleanNone
activity:MessageActivity | null
Group activity
applicationId:Snowflake | null
The id of the application of the interaction that sent this message, if any
A collection of attachments in the message - e.g. Pictures - mapped by their ids. This property requires the privileged intent in a guild for messages that do not mention the client.
author:User
The author of the message
Readonly
bulkDeletable:boolean
Whether the message is bulk deletable by the client user
Readonly
The channel that the message was sent in
channelId:Snowflake
The id of the channel the message was sent in
Readonly
cleanContent:string
The message contents with all mentions replaced by the equivalent text. If mentions cannot be resolved to a name, the relevant mention in the message content will not be converted.
Readonly
client:Client<true>
The client that instantiated this
Inherited from Base
An array of action rows in the message. This property requires the privileged intent in a guild for messages that do not mention the client.
content:string
The content of the message. This property requires the privileged intent in a guild for messages that do not mention the client.
Readonly
createdAt:Date
The time the message was sent at
createdTimestamp:number
The timestamp the message was sent at
Readonly
crosspostable:boolean
Whether the message is crosspostable by the client user
Readonly
deletable:boolean
Whether the message is deletable by the client user
Readonly
editable:boolean
Whether the message is editable by the client user
Readonly
editedAt:Date | null
The time the message was last edited at (if applicable)
editedTimestamp:number | null
The timestamp the message was last edited at (if applicable)
embeds:Embed[]
An array of embeds in the message - e.g. YouTube Player. This property requires the privileged intent in a guild for messages that do not mention the client.
flags:Readonly<MessageFlagsBitField>
Flags that are applied to the message
groupActivityApplication:ClientApplication | null
Supplemental application information for group activities
Readonly
guild:If<InGuild, Guild>
The guild the message was sent in (if in a guild channel)
guildId:If<InGuild, Snowflake>
The id of the guild the message was sent in, if any
Readonly
hasThread:boolean
Whether this message has a thread associated with it
The message's id
interaction:MessageInteraction | null
Partial data of the interaction that this message is a reply to
Readonly
member:GuildMember | null
Represents the author of the message as a guild member. Only available if the message comes from a guild where the author is still a member
mentions:MessageMentions<InGuild>
All valid mentions that the message contains
nonce:string | number | null
A random number or string used for checking message delivery This is only received after the message was sent successfully, and lost if re-fetched
Readonly
partial:false
Whether or not this message is a partial
Readonly
pinnable:boolean
Whether the message is pinnable by the client user
pinned:boolean
Whether or not this message is pinned
position:number | null
A generally increasing integer (there may be gaps or duplicates) that represents the approximate position of the message in a thread.
reactions:ReactionManager
A manager of the reactions belonging to this message
reference:MessageReference | null
Message reference data
roleSubscriptionData:RoleSubscriptionData | null
The data of the role subscription purchase or renewal. This is present on messages.
A collection of stickers in the message
system:boolean
Whether or not this message was sent by Discord, not actually a user (e.g. pin notifications)
Readonly
thread:AnyThreadChannel | null
The thread started by this message This property is not suitable for checking whether a message has a thread, use hasThread instead.
tts:boolean
Whether or not the message was Text-To-Speech
The type of the message
Readonly
url:string
The URL to jump to this message
webhookId:Snowflake | null
The id of the webhook that sent the message, if applicable
awaitMessageComponent(options?):Promise<MappedInteractionTypes<InGuild>[T]>
Collects a single component interaction that passes the filter. The Promise will reject if the time expires.
NameTypeOptionalDescription
optionsAwaitMessageCollectorOptionsParams<T, InGuild>YesOptions to pass to the internal collector
awaitReactions(options?):Promise<Collection<Snowflake | string, MessageReaction>>
Similar to createReactionCollector but in promise form. Resolves with a collection of reactions that pass the specified filter.
NameTypeOptionalDescription
optionsAwaitReactionsOptionsYesOptional options to pass to the internal collector
createMessageComponentCollector(options?):InteractionCollector<MappedInteractionTypes<InGuild>[T]>
Creates a message component interaction collector.
NameTypeOptionalDescription
optionsMessageCollectorOptionsParams<T, InGuild>YesOptions to send to the collector
createReactionCollector(options?):ReactionCollector
Creates a reaction collector.
NameTypeOptionalDescription
optionsReactionCollectorOptionsYesOptions to send to the collector
crosspost():Promise<Message<InGuild>>
Publishes a message in an announcement channel to all channels following it.
delete():Promise<Message<InGuild>>
Deletes the message.
edit(options):Promise<Message<InGuild>>
Edits the content of the message.
NameTypeOptionalDescription
optionsstring | MessageEditOptions | MessagePayloadNoThe options to provide
equals(message, rawData):boolean
Used mainly internally. Whether two messages are identical in properties. If you want to compare messages without checking all the properties, use message.id === message2.id, which is much more efficient. This method allows you to see if there are differences in content, embeds, attachments, nonce and tts properties.
NameTypeOptionalDescription
messageMessageNoThe message to compare it to
rawDataunknownNoRaw data passed through the WebSocket about this message
fetch(force?):Promise<Message<InGuild>>
Fetch this message.
NameTypeOptionalDescription
forcebooleanYesWhether to skip the cache check and request the API
fetchReference():Promise<Message<InGuild>>
Fetches the Message this crosspost/reply/pin-add references, if available to the client
fetchWebhook():Promise<Webhook>
Fetches the webhook used to create this message.
inGuild():this is Message<true>
Whether this message is from a guild.
pin(reason?):Promise<Message<InGuild>>
Pins this message to the channel's pinned messages.
NameTypeOptionalDescription
reasonstringYesReason for pinning
react(emoji):Promise<MessageReaction>
Adds a reaction to the message.
NameTypeOptionalDescription
emojiEmojiIdentifierResolvableNoThe emoji to react with
removeAttachments():Promise<Message<InGuild>>
Removes the attachments from this message.
reply(options):Promise<Message<InGuild>>
Send an inline reply to this message.
NameTypeOptionalDescription
optionsstring | MessagePayload | MessageReplyOptionsNoThe options to provide
resolveComponent(customId):MessageActionRowComponent | null
Resolves a component by a custom id.
Returns
NameTypeOptionalDescription
customIdstringNoThe custom id to resolve against
startThread(options):Promise<AnyThreadChannel>
Create a new public thread from this message
NameTypeOptionalDescription
optionsStartThreadOptionsNoOptions for starting a thread on this message
suppressEmbeds(suppress?):Promise<Message<InGuild>>
Suppresses or unsuppresses embeds on a message.
NameTypeOptionalDescription
suppressbooleanYesIf the embeds should be suppressed or not
toJSON():unknown
toString():string
When concatenated with a string, this automatically concatenates the message's content instead of the object.
unpin(reason?):Promise<Message<InGuild>>
Unpins this message from the channel's pinned messages.
NameTypeOptionalDescription
reasonstringYesReason for unpinning
valueOf():string