Discord.js - 从交互中获取消息

3

client.ws.on('INTERACTION_CREATE', async (interaction) => {}

interaction类有许多属性,如channelmemberid,但它没有message属性。

有没有办法从交互中获取消息,或者我必须在消息上使用事件监听器?如果是这样,我该如何在斜杠命令中使用它?

2个回答

2
您可以通过使用基类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)
    })
}

0

斜杠命令有它们自己类型的消息。我不认为它们有一个ID、删除按钮、编辑按钮或大多数消息拥有的很多东西。这意味着您将无法从斜杠命令中获取“消息”。但是,从按钮中,它们会发出INTERACTION_CREATE,但提供更多信息。我不完全确定,但我认为您可以使用像interaction.components这样的东西。如果您想要确认,请点击按钮并将相互作用记录到控制台以查看唯一的按钮信息,就像这样。

client.ws.on('INTERACTION_CREATE', async (interaction) => {
{
console.log(interaction) //will be long!
//…
})

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接