.awaitReactions不等待反应

时间:2019-11-10 17:48:52

标签: javascript discord.js

我正在尝试向用户发送RichEmbed,并将其作为按钮。过了一会儿,如果用户有反应,我会做一些事情。这是我的代码:

var menu = new Discord.RichEmbed()
    .setTitle("Settings menu")
    .addField('Change the prefix', '(1)')
var menuMessage = msg.channel.send(menu)
    .then(async m => {
        await m.react('1️⃣')

        var filter = (u, r) => {
            u.id == m.author.id && r.emoji.name == '1️⃣'
        }
        m.awaitReactions(filter, {time: 5000})
            .then(collected => {
                console.log(collected.size)
            })
        })

我工作得很好,但是无论我对该消息加什么反应,它都将collected.size记录为0,这很奇怪。
有关如何解决此问题的任何想法?

2 个答案:

答案 0 :(得分:0)

数字的反应表情很特别。我不知道为什么,但是只有当您使用他们的unicode名称时,它才有效。因此,只需将1️⃣替换为\u0031\u20E3就可以了。

答案 1 :(得分:0)

在您的过滤器函数中,m变量等于您的漫游器发送的嵌入消息。在您的上下文中,如果要与用户进行awaitReactions,请使用msg变量。