我一直有一个问题,而编码我的机器人,我的反应收集器将与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
}
希望有帮助!