I'm trying to make a discord bot that adds roles from reactions. I've been following a tutorial from CodeLyon and I hit a snag and I cant find a fix
Basically, I got the bot to send a embed message and it adds the reactions to the message. But it doesn't add the roles.
module.exports = {
name: "reactionrole",
description: "Sets up a reaction role message!",
async execute(message, args, Discord, client) {
const channel = "907732565685846036";
const ACRole = message.guild.roles.cache.find(
(role) => role.name === "Animal Crossing"
);
const ACEmoji = "🐸";
let embed = new Discord.MessageEmbed()
.setColor("#e42643")
.setTitle("Choose which games you play!")
.setDescription(
"React to add the games you play as a role (and receive pings)\n\n" +
`${ACEmoji} for Animal Crossing\n`
);
let messageEmbed = await message.channel.send({ embeds: [embed] });
messageEmbed.react(ACEmoji);
client.on("messageReactionAdd", async (reaction, user) => {
if (reaction.message.partial) await reaction.message.fetch();
if (reaction.partial) await reaction.fetch();
if (user.bot) return;
if (!reaction.message.guild) return;
if (reaction.message.channel.id == channel) {
if (reaction.emoji.name === ACEmoji) {
await reaction.message.guild.members.cache
.get(user.id)
.roles.add(ACRole);
}
} else {
return;
}
});
client.on("messageReactionRemove", async (reaction, user) => {
if (reaction.message.partial) await reaction.message.fetch();
if (reaction.partial) await reaction.fetch();
if (user.bot) return;
if (!reaction.message.guild) return;
if (reaction.message.channel.id == channel) {
if (reaction.emoji.name === ACEmoji) {
await reaction.message.guild.members.cache
.get(user.id)
.roles.remove(ACRole);
}
} else {
return;
}
});
},
};
In my main.js (some people use index.js) file I had to change const client = new Discord.Client({ intents: ['GUILDS', 'GUILD_MESSAGES', 'GUILD_MESSAGE'] }, { partials: ["MESSAGE", "CHANNEL", "REACTION" ] })
to
const client = new Discord.Client({ intents: ['GUILDS', 'GUILD_MESSAGES', 'GUILD_MESSAGE_REACTIONS'] }, { partials: ["MESSAGE", "CHANNEL", "REACTION" ] })
It fixed it for a little bit but it randomly stopped working again.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.