I'm looking to see if you can check if you can test for a specific user having a role. Only problem is that I'm fairly new to Discord.js and everything I searched up was either outdated, was something I couldn't fully understand or only showed how to test if the author of the message has the role, which is not what I'm trying to find out. What should I change in my current coding?
if (message.member.permissions.has("MANAGE_ROLES")) {
const member = message.mentions.users.first();
const memberTarget = message.guild.members.cache.get(member.id);
const role = message.guild.roles.cache.find(role => role.name === "Awesome Role Name");
if (memberTarget.roles.cache.has(role)) {
message.channel.send(`${memberTarget} has the role!`);
} else {
message.channel.send(`${memberTarget} does not have the role!`);
}
}
}
};
All you have to do is check if the GuildMember.roles.cache
has the role. Also, the reason your code isn’t working is because you are using the role object. You need to use the role ID.
if (memberTarget.roles.cache.has(role.id))
More related things:
Getting role by any property
if (memberTarget.roles.cache.some(r => r.name === 'role-name'))
//does not need to be the name
Getting message author's roles
if (message.member.roles.cache.has(role.id))