Discord.js反应收集器不支持自定义表情包



我一直有一个问题,而编码我的机器人,我的反应收集器将与Unicode表情符号工作,但不是我的服务器的自定义表情符号。我希望你的反应能给频道传递信息。它目前只适用于Unicode表情符号。我应该怎么做才对吗?

.then(collected => {
const reaction = collected.first();
if (reaction.emoji.name === "😀") {
message.channel.send("Smile")

}

if (reaction.emoji.name === "<:Peasant:797613974173515786>") {
message.channel.send("Peasant")
}


})```

如果您使用的是awaitReactions方法,那么您的承诺就没有实现。点击这里了解更多信息。要解决这个问题,你所要做的就是将return添加到你的程序,从而实现了诺言。

发送return message.channel.send("Smile")return message.channel.send("Peasant"),而不是message.channel.send("Smile")message.channel.send("Peasant")

我最近遇到了同样的问题,但幸运的是我解决了!

只需将reaction.emoji.name设置为表情符号的实际名称,而不是用于显示表情符号的文本。例如,在您的例子中,它将是:

if (reaction.emoji.name == 'Peasant') {
// do stuff
}

在一些假设的情况下,如果另一个表情符号的文本是<:hypotheticalemojiname: 8378373837373>,检查反应是否为该表情符号的方法将是:

if (reaction.emoji.name == 'hypotheticalemojiname') {
// Do stuff
}

希望有帮助!

最新更新