Javascript 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; }, {max:2,时间:60000,错误:['time']} .thencollected=>{ 常数反应=已收集。第一次; 如果reaction.emoji.name=='❤️' { message.channel.send “:闪亮的心:**汉诺**和**罗罗诺娜·佐罗**现在结婚了!:闪亮的心:” ; } }; }; } }; 如果我键入$wa,bot将显示一些嵌入。但问题是,它会自动为嵌入添加一颗心。我想,如果我点击心脏,并且总共有2颗心脏,它会执行底部的if语句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,你需要考虑机器人自己的反应。我建议您将过滤器实现重做为类似这样的内容。 关键是你必须添加!将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。如果以后不这样做,它可能会退出程序并出现错误。当然,当用户没有及时响应嵌入消息时,您可以执行任何您喜欢的操作