Preview environment

class ButtonInteraction

export class ButtonInteraction<Cached extends CacheType = CacheType> extends MessageComponentInteraction<Cached>

Represents a button interaction.

Type Parameters

optional
Cached? extends CacheType = CacheType

applicationId : Snowflake

The application's id

Inherited from: BaseInteraction

appPermissions : Readonly<PermissionsBitField>

Set of permissions the application or bot has within the channel the interaction was sent from

Inherited from: BaseInteraction

authorizingIntegrationOwners : APIAuthorizingIntegrationOwnersMap

Mapping of installation contexts that the interaction was authorized for the related user or guild ids

Inherited from: BaseInteraction

See also: https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-authorizing-integration-owners-object

The channel this interaction was sent in

Inherited from: BaseInteraction

channelId : Snowflake

The id of the channel this interaction was sent in

Inherited from: MessageComponentInteraction

readonly
client : Client<true>

The client that instantiated this

Inherited from: Base

The component which was interacted with

componentType : ComponentType.Button

The type of component which was interacted with

Context where the interaction was triggered from

Inherited from: BaseInteraction

readonly
createdAt : Date

The time the interaction was created at

Inherited from: BaseInteraction

readonly
createdTimestamp : number

The timestamp the interaction was created at

Inherited from: BaseInteraction

customId : string

The custom id of the component which was interacted with

Inherited from: MessageComponentInteraction

deferred : boolean

Whether the reply to this interaction has been deferred

Inherited from: MessageComponentInteraction

The entitlements for the invoking user, representing access to premium SKUs

Inherited from: BaseInteraction

ephemeral : boolean | null

Whether the reply to this interaction is ephemeral

Inherited from: MessageComponentInteraction

readonly
guild : CacheTypeReducer<Cached, Guild, null>

The guild this interaction was sent in

Inherited from: BaseInteraction

guildId : CacheTypeReducer<Cached, Snowflake>

The id of the guild this interaction was sent in

Inherited from: BaseInteraction

guildLocale : CacheTypeReducer<Cached, Locale>

The preferred locale from the guild this interaction was sent in

Inherited from: BaseInteraction

The interaction's id

Inherited from: BaseInteraction

locale : Locale

The locale of the user who invoked this interaction

Inherited from: BaseInteraction

If this interaction was sent in a guild, the member which sent it

Inherited from: BaseInteraction

memberPermissions : CacheTypeReducer<Cached, Readonly<PermissionsBitField>>

The permissions of the member, if one exists, in the channel this interaction was executed in

Inherited from: BaseInteraction

message : Message<BooleanCache<Cached>>

The message to which the component was attached

Inherited from: MessageComponentInteraction

replied : boolean

Whether this interaction has already been replied to

Inherited from: MessageComponentInteraction

readonly
token : string

The interaction's token

Inherited from: BaseInteraction

The interaction's type

Inherited from: MessageComponentInteraction

user : User

The user who created this interaction

Inherited from: BaseInteraction

version : number

The version

Inherited from: BaseInteraction

An associated interaction webhook, can be used to further interact with this interaction

Inherited from: MessageComponentInteraction

Collects a single modal submit interaction that passes the filter. The Promise will reject if the time expires.

Examples:
// Collect a modal submit interaction
const filter = (interaction) => interaction.customId === 'modal';
interaction.awaitModalSubmit({ filter, time: 15_000 })
  .then(interaction => console.log(`${interaction.customId} was submitted!`))
  .catch(console.error);

Inherited from: MessageComponentInteraction

deferReply(
options: InteractionDeferReplyOptions & { fetchReply: true }
) : Promise<Message<BooleanCache<Cached>>>

Defers the reply to this interaction.

Examples:
// Defer the reply to this interaction
interaction.deferReply()
  .then(console.log)
  .catch(console.error)
// Defer to send an ephemeral reply later
interaction.deferReply({ ephemeral: true })
  .then(console.log)
  .catch(console.error);

deferUpdate(
options: InteractionDeferUpdateOptions & { fetchReply: true }
) : Promise<Message<BooleanCache<Cached>>>

Defers an update to the message to which the component was attached.

Examples:
// Defer updating and reset the component's loading state
interaction.deferUpdate()
  .then(console.log)
  .catch(console.error);

deleteReply(
message?: MessageResolvable | '@original'
) : Promise<void>

Deletes a reply to this interaction.

Examples:
// Delete the initial reply to this interaction
interaction.deleteReply()
  .then(console.log)
  .catch(console.error);

Inherited from: MessageComponentInteraction

Edits a reply to this interaction.

Examples:
// Edit the initial reply to this interaction
interaction.editReply('New content')
  .then(console.log)
  .catch(console.error);

Inherited from: MessageComponentInteraction

fetchReply(
message?: Snowflake | '@original'
) : Promise<Message<BooleanCache<Cached>>>

Fetches a reply to this interaction.

Examples:
// Fetch the initial reply to this interaction
interaction.fetchReply()
  .then(reply => console.log(`Replied with ${reply.content}`))
  .catch(console.error);

Inherited from: MessageComponentInteraction

Send a follow-up message to this interaction.

Inherited from: MessageComponentInteraction

inCachedGuild() : this is ButtonInteraction<'cached'>

Indicates whether this interaction is received from a cached guild.

inGuild() : this is ButtonInteraction<'raw' | 'cached'>

Indicates whether this interaction is received from a guild.

inRawGuild() : this is ButtonInteraction<'raw'>

Indicates whether or not this interaction is received from an uncached guild.

isAnySelectMenu() : this is AnySelectMenuInteraction<Cached>

Indicates whether this interaction is a select menu of any known type.

Inherited from: BaseInteraction

isAutocomplete() : this is AutocompleteInteraction<Cached>

Indicates whether this interaction is an AutocompleteInteraction

Inherited from: BaseInteraction

isButton() : this is ButtonInteraction<Cached>

Indicates whether this interaction is a ButtonInteraction.

Inherited from: BaseInteraction

isChannelSelectMenu() : this is ChannelSelectMenuInteraction<Cached>

Indicates whether this interaction is a ChannelSelectMenuInteraction

Inherited from: BaseInteraction

isChatInputCommand() : this is ChatInputCommandInteraction<Cached>

Indicates whether this interaction is a ChatInputCommandInteraction.

Inherited from: BaseInteraction

isCommand() : this is CommandInteraction<Cached>

Indicates whether this interaction is a CommandInteraction

Inherited from: BaseInteraction

isContextMenuCommand() : this is ContextMenuCommandInteraction<Cached>

Indicates whether this interaction is a ContextMenuCommandInteraction

Inherited from: BaseInteraction

isMentionableSelectMenu() : this is MentionableSelectMenuInteraction<Cached>

Indicates whether this interaction is a MentionableSelectMenuInteraction

Inherited from: BaseInteraction

isMessageComponent() : this is MessageComponentInteraction<Cached>

Indicates whether this interaction is a MessageComponentInteraction

Inherited from: BaseInteraction

isMessageContextMenuCommand() : this is MessageContextMenuCommandInteraction<Cached>

Indicates whether this interaction is a MessageContextMenuCommandInteraction

Inherited from: BaseInteraction

isModalSubmit() : this is ModalSubmitInteraction<Cached>

Indicates whether this interaction is a ModalSubmitInteraction

Inherited from: BaseInteraction

isRepliable() : this is RepliableInteraction<Cached>

Indicates whether this interaction can be replied to.

Inherited from: BaseInteraction

isRoleSelectMenu() : this is RoleSelectMenuInteraction<Cached>

Indicates whether this interaction is a RoleSelectMenuInteraction

Inherited from: BaseInteraction

deprecated
isSelectMenu() : this is StringSelectMenuInteraction<Cached>

Indicates whether this interaction is a StringSelectMenuInteraction.

Inherited from: BaseInteraction

isStringSelectMenu() : this is StringSelectMenuInteraction<Cached>

Indicates whether this interaction is a StringSelectMenuInteraction.

Inherited from: BaseInteraction

isUserContextMenuCommand() : this is UserContextMenuCommandInteraction<Cached>

Indicates whether this interaction is a UserContextMenuCommandInteraction

Inherited from: BaseInteraction

isUserSelectMenu() : this is UserSelectMenuInteraction<Cached>

Indicates whether this interaction is a UserSelectMenuInteraction

Inherited from: BaseInteraction

reply(
options: InteractionReplyOptions & { fetchReply: true }
) : Promise<Message<BooleanCache<Cached>>>

Creates a reply to this interaction. Use the fetchReply option to get the bot's reply message.

Examples:
// Reply to the interaction and fetch the response
interaction.reply({ content: 'Pong!', fetchReply: true })
  .then((message) => console.log(`Reply sent with content ${message.content}`))
  .catch(console.error);
// Create an ephemeral reply with an embed
const embed = new EmbedBuilder().setDescription('Pong!');

interaction.reply({ embeds: [embed], ephemeral: true })
  .then(() => console.log('Reply sent.'))
  .catch(console.error);

deprecated
sendPremiumRequired() : Promise<void>

Responds to the interaction with an upgrade button. Only available for applications with monetization enabled.

Inherited from: MessageComponentInteraction

toJSON(
...props: Record<string, boolean | string>[]
) : unknown

Inherited from: Base

update(
options: InteractionUpdateOptions & { fetchReply: true }
) : Promise<Message<BooleanCache<Cached>>>

Updates the original message of the component on which the interaction was received on.

Examples:
// Remove the components from the message
interaction.update({
  content: "A component interaction was received",
  components: []
})
  .then(console.log)
  .catch(console.error);

valueOf() : string

Inherited from: Base