猿问

.awaitReactions 不等待反应

我正在尝试将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,这很奇怪。

有想法该怎么解决这个吗?


倚天杖
浏览 98回答 2
2回答

慕勒3428872

数字的反应表情很特别。我不知道为什么,但它只在你使用他们的 unicode 名称时才有效。因此,只需替换1️⃣为\u0031\u20E3,它就会正常工作。

墨色风雨

在您的过滤器函数中,m变量等于您的机器人发送的嵌入消息。在您的上下文中,如果您想等待来自用户的反应,请使用该msg变量。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答