Node.js 如果反应是特定反应,我将如何让我的机器人检测到反应,然后发送消息?

Node.js 如果反应是特定反应,我将如何让我的机器人检测到反应,然后发送消息?,node.js,bots,discord,discord.js,Node.js,Bots,Discord,Discord.js,我正在发出一个有反应的帮助命令,机器人将添加一个反应,然后用户将作出反应,机器人将发布相应的帮助消息。我很困惑为什么我的代码不能工作,因为它没有抛出错误 const filter=(反应,用户)=>{ return[':zany_face:'].包括(reaction.emoji.name)&&user.id==message.author.id; }; message.waitReactions(筛选器,{max:1,时间:5000,错误:['time']}) 。然后(收集=>{ const

我正在发出一个有反应的帮助命令,机器人将添加一个反应,然后用户将作出反应,机器人将发布相应的帮助消息。我很困惑为什么我的代码不能工作,因为它没有抛出错误

const filter=(反应,用户)=>{
return[':zany_face:'].包括(reaction.emoji.name)&&user.id==message.author.id;
};
message.waitReactions(筛选器,{max:1,时间:5000,错误:['time']})
。然后(收集=>{
const reaction=收集的.first();
如果(reaction.emoji.name==':zany_face:'){
message.reply('test');
}
})
.catch(已收集=>{
回复('你没有及时反应');
});
收到任何帮助都表示感谢:)


Ps:我在嵌入的后面使用这个,所以我希望嵌入对它有一个反应,尽管我已经做了这一点,只是不确定如何在嵌入和反应之间有效地链接代码这应该可以做到:

const filter=(反应,用户)=>!user.bot&&user.id==usr.id//确保只有消息作者才能做出反应
让msg=message.channel.send(“回复我!”)
//在邮件上创建收集器5秒钟
let collector=msg.createReactionCollector(过滤器,{time:5000});
//打开反应收集器
collector.on('collect',async(reaction,collector)=>{
//检查给出了哪种反应
const selected=reaction.emoji.name;
如果(已选择==“EMOJIHERE”){
//删除用户的反应
msg.reactions.get(“EMOJIHERE”).remove(message.author.id).catch(allerrors)
//发回信息
message.channel.send(“这是一个答案”)
}
})

我有几个问题。是谁发送的消息,bot还是用户?另外,您能否
console.log(reaction.emoji.name,user.id,message.author.id)
在您的筛选函数中?用户发送命令=help,然后机器人发送帮助嵌入,用户使用必要的emoji作出反应,机器人删除原始的帮助嵌入并发送与表情符号相关的帮助嵌入-反应添加到机器人的第一个嵌入-可能更容易向您展示,请随意添加我的dc:Proto#4992