class CommandInteraction

extends

BaseInteraction<Cached>
abstract
export abstract class CommandInteraction<Cached extends CacheType = CacheType> extends BaseInteraction<Cached>

Represents a command interaction.

Type Parameters

optional
Cached? extends CacheType = CacheType

applicationId : Snowflake

The application's id

Inherited from: BaseInteraction

appPermissions : CacheTypeReducer<Cached, Readonly<PermissionsBitField>>

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

Inherited from: BaseInteraction

The channel this interaction was sent in

Inherited from: BaseInteraction

channelId : Snowflake

The id of the channel this interaction was sent in

readonly
client : Client<true>

The client that instantiated this

Inherited from: Base

readonly
command : ApplicationCommand | ApplicationCommand<{ guild: GuildResolvable }> | null

The invoked application command, if it was fetched before

commandGuildId : Snowflake | null

The id of the guild the invoked application command is registered to

commandId : Snowflake

The invoked application command's id

commandName : string

The invoked application command's name

commandType : ApplicationCommandType

The invoked application command's type

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

deferred : boolean

Whether the reply to this interaction has been deferred

ephemeral : boolean | null

Whether the reply to this interaction is ephemeral

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

id : Snowflake

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

options : Omit<CommandInteractionOptionResolver<Cached>, | 'getMessage' | 'getFocused' | 'getMentionable' | 'getRole' | 'getAttachment' | 'getNumber' | 'getInteger' | 'getString' | 'getChannel' | 'getBoolean' | 'getSubcommandGroup' | 'getSubcommand'>

replied : boolean

Whether this interaction has already been replied to

readonly
token : string

The interaction's token

Inherited from: BaseInteraction

The interaction's type

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

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);

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);

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);

Edits a reply to this interaction.

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

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);

Send a follow-up message to this interaction.

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

Indicates whether or not this interaction is both cached and received from a guild.

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

Indicates whether this interaction is received from a guild.

inRawGuild() : this is CommandInteraction<'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);

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

Inherited from: Base

valueOf() : string

Inherited from: Base