不一致JS-交互创建和消息创建
我一直在尝试使用interactionCreate事件,但不知何故不起作用。我不确定为什么,我也没有找到关于这个事件的确切文档,只知道它用于执行斜杠命令。但是,出于此目的,我使用了MessageCreate事件,它工作正常。
const Event = require('../handlers/Event.js');
module.exports = new Event('messageCreate', (client, message) => {
if (!message.content.startsWith(client.prefix) || message.author.bot) return;
const args = message.content.substring(client.prefix.length).split(/ +/);
try {
const command = client.commands.find(cmd => cmd.name == args[0] || cmd.alias == args[0]);
command.run(message, args, client);
} catch (error) {
message.channel.send('Wrong command.');
}
});
我的交互创建事件有什么问题?
const Event = require('../handlers/Event.js');
module.exports = new Event('interactionCreate', async (interaction) => {
if (!interaction.isCommand()) return;
if (interaction.commandName === 'join') {
await interaction.reply('join');
}
});
解决方案
交互是用户使用应用程序命令或消息组件时您的应用程序收到的消息。Discord Interactions
MessageCreate侦听器将为几乎所有其他内容触发。
在您的案例中,您正在尝试执行哪些操作来触发交互?可能内置了斜杠命令?
应用程序命令是应用程序可以注册为不一致的命令,我认为内置的斜杠命令与此描述不匹配。因此,要查看交互触发,您要么必须自己注册一个应用程序命令(ApplicationCommandBuilder),要么创建一个带有按钮(DiscordButtons)的嵌入消息,然后单击应该触发交互的按钮
相关文章