【发布时间】:2021-12-11 21:51:02
【问题描述】:
client.ws.on('INTERACTION_CREATE', async (interaction) => {}
交互类有很多属性,如channel、member 和id,但它没有message 属性。
有没有办法从交互中获取消息,还是我必须在消息上使用事件侦听器?如果是这样,我将如何将它与斜杠命令一起使用?
【问题讨论】:
标签: javascript discord discord.js
client.ws.on('INTERACTION_CREATE', async (interaction) => {}
交互类有很多属性,如channel、member 和id,但它没有message 属性。
有没有办法从交互中获取消息,还是我必须在消息上使用事件侦听器?如果是这样,我将如何将它与斜杠命令一起使用?
【问题讨论】:
标签: javascript discord discord.js
您只需使用基类interaction 即可获取用户输入。但是,内容是不可见的,但是您可以通过 api 端点或类似的东西传递它来查看它,这对我来说有点奇怪,但我相信有一个解释。
最好的方法是使用interaction.options,因此您需要在应用程序命令中添加至少一个选项。
例如
// /test as your Application command
client.on('interactionCreate', async interaction => {
if (interaction.commandName === 'test') {
const message = interaction.options.data
console.log(message)
})
}
【讨论】:
斜杠命令有自己的消息类型。我不相信他们有一个 id、删除按钮、编辑按钮或大多数消息所做的许多事情。这意味着您将无法从斜杠命令中获取“消息”。然而,从按钮,它们确实会发出INTERACTION_CREATE,但有更多信息。我不太记得了,但我认为你可以使用 interaction.components 之类的东西。我不完全确定,但是如果您愿意,请单击一个按钮并将交互记录到您的控制台中,以查看像这样的唯一按钮信息
client.ws.on('INTERACTION_CREATE', async (interaction) => {
{
console.log(interaction) //will be long!
//…
})
【讨论】: