Discord.js反应收集



我试图创建一个嵌入,然后从该嵌入中收集反应,一切正常,直到它到达收集器,收集器似乎没有意识到我给它的反应。

代码如下:

let embed = new Discord.MessageEmbed();
message.channel.send(embed).then(embedMessage => {
embedMessage.react('🍇');
const filter = (reaction) => {
return reaction === '🍇'
};
const collector = new Discord.ReactionCollector(embedMessage, filter, {
time: 15000
});
collector.on('collect', (reaction) => {
console.log('reaction received:' + reaction)
});
collector.on('end', collected => {
console.log('Collecter Expired')
});
});

问题是您的过滤器正在检查reaction == 'some emoji'。然而,reaction实际上是一个MessageReaction对象,而不是表情符号的字符串表示。如果你想要字符串表示,你需要使用reaction.emoji.name

let embed = new Discord.MessageEmbed()
.embedStuff();
message.channel.send(embed).then(embedMessage => {
embedMessage.react('🍇');
const filter = (reaction) => {
return reaction.emoji.name == '🍇'
};
const collector = new Discord.ReactionCollector(embedMessage, filter, {
time: 15000
});
collector.on('collect', (reaction) => {
console.log('reaction received:' + reaction.emoji.name)
});
collector.on('end', collected => {
console.log('Collecter Expired')
});
});

最新更新