最近,discord 为您自己的应用程序添加了对斜杠命令的支持。我通读了它的文档,并尝试搜索了一些视频(但是该功能刚刚发布),但我不明白我实际上必须做什么才能使其正常工作。我正在使用 WebStorm(js、node.js)。有没有人成功制作过斜线命令,如果有,如何制作?
答案 0 :(得分:23)
您可以使用常规的 discord.js
,现在它是 v12.5.1
。
这只是一个示例,但对我有用。 (目前我正在尝试改进这一点)
const Discord = require('discord.js');
const client = new Discord.Client();
client.on('ready', () => {
client.api.applications(client.user.id).guilds(YOUR_GUILD_ID_HERE).commands.post({
data: {
name: "hello",
description: "hello world command"
// possible options here e.g. options: [{...}]
}
});
client.ws.on('INTERACTION_CREATE', async interaction => {
const command = interaction.data.name.toLowerCase();
const args = interaction.data.options;
if (command === 'hello'){
// here you could do anything. in this sample
// i reply with an api interaction
client.api.interactions(interaction.id, interaction.token).callback.post({
data: {
type: 4,
data: {
content: "hello world!!!"
}
}
})
}
});
});
client.login(token);
当然你可以有选择,看文档...
IDE 不会注册新代码...至少我的 php 风暴目前没有:)
但是,给机器人正确的权限来使用这种类型的命令很重要!
因此转到 Discord.com/developers,选择您的应用程序,转到 OAuth2
并选择
应用程序命令
来自范围部分。这应该在中间列的底部。您还应该选择 bot
,并在 Bot Permissions
下设置一些其他特定权限。然后使用新的邀请链接重新邀请机器人。
如果没有 application.commands
权限,该命令将无法工作,并且您会收到类似 Missing Access
之类的错误。
重要事项
使用 .guilds('11231...').comma
测试这些命令。不使用时,大约需要 1 小时才能激活。使用它会立即激活它。
授予机器人正确的权限。 application.commands
答案 1 :(得分:4)
嗨,我通常不使用 discord.js,但我能够找到一些关于此的很好的文档。您应该可以在定义了“客户端”的情况下做到这一点。
const interactions = require("discord-slash-commands-client");
const client = new interactions.Client(
"you unique bot token",
"your bots user id"
);
如果客户端的定义如图所示,那么 /command 应该可以这样定义。
// will create a new command and log its data.
//If a command with this name already exist will that be overwritten.
client.createCommand({
name: "your command name",
description: "description for this command",
})
.catch(console.error)
.then(console.log);