,可以通过以下步骤解决:
Message
对象的awaitReactions
方法来监听用户对消息的反应。该方法接受一个过滤器函数,用于筛选特定的反应。以下是一个示例代码,演示了如何在Discord.js中实现反应角色的功能:
const Discord = require('discord.js');
const client = new Discord.Client();
client.on('message', async (message) => {
if (message.content === '!react') {
const filter = (reaction, user) => {
return ['✅', '❌'].includes(reaction.emoji.name) && !user.bot;
};
const collector = message.createReactionCollector(filter, { time: 60000 });
collector.on('collect', (reaction, user) => {
if (reaction.emoji.name === '✅') {
const role = message.guild.roles.cache.find(role => role.name === '角色名称');
const member = message.guild.members.cache.get(user.id);
member.roles.add(role);
} else if (reaction.emoji.name === '❌') {
const role = message.guild.roles.cache.find(role => role.name === '角色名称');
const member = message.guild.members.cache.get(user.id);
member.roles.remove(role);
}
});
collector.on('end', collected => {
console.log(`收集到了 ${collected.size} 个反应`);
});
await message.react('✅');
await message.react('❌');
}
});
client.login('YOUR_DISCORD_BOT_TOKEN');
在上述代码中,当用户发送!react
命令时,机器人会发送一条消息,并在该消息上添加✅和❌两个反应。当用户点击这些反应时,机器人会根据用户的选择给予或移除相应的角色。
请注意,上述代码仅为示例,你需要根据自己的实际需求进行适当的修改和扩展。
腾讯云相关产品和产品介绍链接地址:
希望以上信息能够帮助到你解决在Discord.js中的反应角色问题。如果你有任何进一步的问题,请随时提问。
领取专属 10元无门槛券
手把手带您无忧上云