Javascript Discord.js在使用表情符号回复时执行函数

Javascript Discord.js在使用表情符号回复时执行函数,javascript,discord,discord.js,Javascript,Discord,Discord.js,目前,我正在使用Discord.js制作一个机器人 client.on'message',message=>{ 如果message.content=='$wa'{ message.channel.send{embed:examplembed}.thenembedMessage=>{ 这是一条信息,反应'❤️'; 嵌入消息 .等待反应 过滤器=反应,用户=>{ return reaction.emoji.name=='❤️' && user.id==message.author.id; }, {m

目前,我正在使用Discord.js制作一个机器人

client.on'message',message=>{ 如果message.content=='$wa'{ message.channel.send{embed:examplembed}.thenembedMessage=>{ 这是一条信息,反应'❤️'; 嵌入消息 .等待反应 过滤器=反应,用户=>{ return reaction.emoji.name=='❤️' && user.id==message.author.id; }, {max:2,时间:60000,错误:['time']} .thencollected=>{ 常数反应=已收集。第一次; 如果reaction.emoji.name=='❤️' { message.channel.send “:闪亮的心:**汉诺**和**罗罗诺娜·佐罗**现在结婚了!:闪亮的心:” ; } }; }; } }; 如果我键入$wa,bot将显示一些嵌入。但问题是,它会自动为嵌入添加一颗心。我想,如果我点击心脏,并且总共有2颗心脏,它会执行底部的if语句


我尝试过多种方法,但都不管用。这也是我第一次使用Discord.js,你需要考虑机器人自己的反应。我建议您将过滤器实现重做为类似这样的内容。 关键是你必须添加!将user.bot添加到筛选器,以便忽略bot自己的反应

const filter = (reaction, user) => {
   return reaction.emoji.name === "❤️" && user.id === message.author.id && !user.bot
}

embedMessage.awaitReactions(filter, { max: 1, time: 60000, errors: ['time'] })
请试试这个:

client.on'message',message=>{ 如果message.content=='$wa'{ message.channel.send{embed:examplembed}.thenembedMessage=>{ 这是一条信息,反应'❤️'; embedMessage.AwaitReactionFilter=反应,用户=>{ return reaction.emoji.name=='❤️' && user.id==message.author.id; }, {max:1,时间:60000,错误:['time']}。然后收集=>{ 常数反应=已收集。第一次; 如果reaction.emoji.name=='❤️' { message.channel.send:“:闪亮的心:**汉诺**和**罗罗诺娜·佐罗**现在结婚了!:闪亮的心:”; } }.catch=>{ //用户没有反应❤️ 在此给定时间内:60秒 消息。频道。发送“没有及时反应”; }; }; } }; 我将max值更改为1,还添加了一个catch块来捕获未处理的PromisejectionWarning。如果以后不这样做,它可能会退出程序并出现错误。当然,当用户没有及时响应嵌入消息时,您可以执行任何您喜欢的操作