Skip to main content

CustomChatInputCommand

About

The CustomChatInputCommand interface defines a chat input command. Classes implementing it must have:

readonly name: string - The name of the command
readonly description: string - The description of the command
readonly defaultPermission: boolean - Wether or not this command should be available to new guilds
options?: CommandOption[] - The options or arguments the command has. Defaults to [] - See CommandOption
execute(interaction: ChatInputCommandInteraction, client: ExtendedClient): Promise<void> - The function to be executed when a chat input interaction with the same name as the class' attribute name is sent

This class only defines the command. It does not register nor load the command.
See @RegisterChatInputCommand and ExtendedClient#registerCommands()

Example

import { CustomChatInputCommand, ExtendedClient } from "@davipccunha/discordjs-helper";
import { ApplicationCommandType, ChatInputCommandInteraction } from "discord.js";

export class PingCommand implements CustomChatInputCommand {
name: string;
description: string;
type: ApplicationCommandType.ChatInput;
defaultPermission: boolean;

constructor() {
this.name = "ping";
this.description = "Ping the bot!";
this.type = ApplicationCommandType.ChatInput;
this.defaultPermission = true;
}

async execute(interaction: ChatInputCommandInteraction, client: ExtendedClient): Promise<void> {
await interaction.reply('Pong!').catch(console.error);
}
}