📅  最后修改于: 2023-12-03 14:40:44.925000             🧑  作者: Mango
Discord.js 是一个用于创建 Discord 机器人的 Node.js 库。它允许开发者通过 JavaScript/TypeScript 创建 Discord 机器人,并与 Discord API 进行交互,实现各种自定义功能。
斜线命令是 Discord 新推出的功能,允许开发者创建自定义命令,直接在用户输入框中使用。Discord.js 提供了一组 API 来帮助开发者创建斜线命令,并与 Discord API 进行交互。
client.commands
这是一个 Map,其中键是斜线命令的名称,值是一个对象,该对象包含以下属性:
execute(interaction: Interaction)
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 为开发者提供了一种方便且易于使用的方式来创建自定义命令。在实际的开发过程中,开发者可以根据自己的需要扩展斜线命令的功能,实现定制化的机器人。