📜  discord.js 斜线命令 - Javascript (1)

📅  最后修改于: 2023-12-03 14:40:44.925000             🧑  作者: Mango

Discord.js 斜线命令

简介

Discord.js 是一个用于创建 Discord 机器人的 Node.js 库。它允许开发者通过 JavaScript/TypeScript 创建 Discord 机器人,并与 Discord API 进行交互,实现各种自定义功能。

斜线命令是 Discord 新推出的功能,允许开发者创建自定义命令,直接在用户输入框中使用。Discord.js 提供了一组 API 来帮助开发者创建斜线命令,并与 Discord API 进行交互。

斜线命令 API
client.commands

这是一个 Map,其中键是斜线命令的名称,值是一个对象,该对象包含以下属性:

  • execute(interaction: Interaction)
    • 类型:Function
    • 描述:当用户使用命令时,在机器人上执行的函数。
client.on('interactionCreate', callback)

在机器人接收到交互时触发回调。该回调接收一个 interaction 对象,该对象包含以下属性:

  • type: 'APPLICATION_COMMAND'
  • commandName: string
  • options: Array<{ name: string, value: any }>
  • guild: Guild | null
  • channel: Channel
  • member: GuildMember
  • user: User
interaction.reply(options)

响应用户的交互。该方法接受一个 options 对象,该对象包含以下属性:

  • content: string
  • embeds: Array<MessageEmbed>
  • ephemeral: boolean
示例

以下是一个简单的斜线命令示例,名称为 ping,响应时间为用户连接到机器人的延迟。

client.commands.set('ping', {
    async execute(interaction) {
        await interaction.reply(`Pong! ${client.ws.ping}ms`);
    }
});

client.on('interactionCreate', async interaction => {
    if (!interaction.isCommand()) return;
    const command = client.commands.get(interaction.commandName);
    if (!command) return;
    try {
        await command.execute(interaction);
    } catch (error) {
        console.error(error);
        await interaction.reply({ content: 'An error occurred while executing the command.', ephemeral: true });
    }
});
结语

Discord.js 的斜线命令 API 为开发者提供了一种方便且易于使用的方式来创建自定义命令。在实际的开发过程中,开发者可以根据自己的需要扩展斜线命令的功能,实现定制化的机器人。