[英]Someone who can explain me how ReactionCollector function?
嘿,我是 js 和 discord js 的新手,遇到了问题,我不明白反应收集器的工作原理,也许这里有人可以解释并帮助我处理该代码。 如果需要其他代码,它的票务系统将发送它:
.then(async (channel, message) => {
let sent = await channel.send(`<@${user.id}>`, new Discord.MessageEmbed()
.setTitle("Welcome to your ticket!")
.setDescription("We will be with you shortly")
.setColor("00ff00")
);
sent.react('📪');
const filter = (reaction, user) => {
if (reaction.emoji.name === "📪"){
reaction.users.remove(user);
reaction.message.channel.delete();
}
return reaction.emoji.name === '📪' && user.id === message.author.id;
}
const collector = message.createReactionCollector(filter, { time: 15000 });
collector.on('collect', (reaction, user) => {
console.log(`Collected ${reaction.emoji.name} from ${user.tag}`);
});
collector.on('end', collected => {
console.log(`Collected ${collected.size} items`);
});
});
}
}
}
)
您需要使用正确的过滤器。 如我所见,您只想检测消息作者的反应。 因此,将这些限制放入过滤器中,然后收集器收集的每个反应都会尊重这些条件。
现在你有了这个,只要执行你想要的任何东西,一旦一切完成就停止收集器,这样你就不会听到任何其他反应。
let sent = await channel.send(`<@${user.id}>`, new Discord.MessageEmbed()
.setTitle("Welcome to your ticket!")
.setDescription("We will be with you shortly")
.setColor("00ff00")
);
sent.react('📪');
const filter = (reaction, user) => {
//We filter the collector to only listen to 📪 reaction added by the author of the message.
return reaction.emoji.name === '📪' && user.id === message.author.id;
}
const collector = message.createReactionCollector(filter, { time: 15000 });
collector.on('collect', (reaction, user) => {
console.log(`Collected ${reaction.emoji.name} from ${user.tag}`);
reaction.users.remove(user);
reaction.message.channel.delete();
//Then we stop the collector.
collector.stop()
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.