我试图创建一个嵌入,然后从该嵌入中收集反应,一切正常,直到它到达收集器,收集器似乎没有意识到我给它的反应。
代码如下:
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')
});
});