我正在开发这个机器人,我希望用户只能在表情符号中做出一次反应,如果他在其他时候做出反应,则命令不起作用。有人可以帮我吗?
let messagereturn = await message.channel.send(embed);
await messagereturn.react('?');
const reactions = ['?'];
const filter = (reaction, user) => reactions.includes(reaction.emoji.name) && user.id === User.id;
const collector = messagereturn.createReactionCollector(filter)
collector.on('collect', async emoji => {
switch(emoji._emoji.name) {
case('?'):
const embed1 = new Discord.MessageEmbed()
.setColor('#00ff00')
.setDescription(`${User} **deu um tapa em** ${message.author}`)
.setImage(rand)
await message.channel.send(embed1)
}
})
答案 0 :(得分:1)
createReactionCollector
方法有一个可选的 options
对象,它允许您设置要收集的最大反应,在您的情况下为 1。
示例:
const collector = messagereturn.createReactionCollector(filter, { max: 1 })