我尝试使用几种不同类型的反应收集器,但它们似乎都不起作用,我将提供一些代码,以便您可以看到我尝试过的最新内容。
总结一下我的想法,我让机器人在运行某个命令时将嵌入文本的内容发送到通道,先发送嵌入内容,然后对两个不同的选项做出反应,然后我希望它等待用户选择这些反应之一(基本上会与漫游器使用的反应之一再次发生反应),然后根据用户选择的反应执行操作,我希望它删除嵌入内容然后执行操作。
message.channel.send(embedOne)
.then(m => m.react('?'))
.then(r => r.message.react('?'))
.catch(m => {
console.error('Emoji failed to react.');
})
const reactFilter = (reaction, user) => reaction.emoji.name === '?'
.then(embedOne => embedOne.awaitReactions(reactFilter, { max: 1}))
.then(collected => {
message.channel.send(`You reacted wtih ${reaction.emoji.name}`)
m.delete()
})
.catch(console.error)
}
答案 0 :(得分:0)
您需要在消息上调用awaitReactions,因此在您的代码中它将为“ m”,因此代码应类似于以下内容。
message.channel.send(embedOne)
.then(m => {
m.react('?')
.then(r => {
const reactFilter = (reaction, user) => reaction.emoji.name === '?'
m.awaitReactions(reactFilter, { max: 1})
.then(collected => {
message.channel.send(`You reacted wtih ${reaction.emoji.name}`)
m.delete()
})
.catch(console.error)
})
})