Estoy buscando para ver si puede verificar si puede probar si un usuario específico tiene un rol. El único problema es que soy bastante nuevo en Discord.js y todo lo que busqué estaba desactualizado, era algo que no podía entender completamente o solo mostraba cómo probar si el autor del mensaje tiene el rol, que no es lo que Estoy tratando de averiguarlo. ¿Qué debo cambiar en mi codificación actual?
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!`); } } } };Todo lo que tiene que hacer es verificar si GuildMember.roles.cache tiene el rol. Además, la razón por la que su código no funciona es porque está utilizando el objeto de función. Debe utilizar el ID de rol.
if (memberTarget.roles.cache.has(role.id))Más cosas relacionadas:
Obtener rol por cualquier propiedad
if (memberTarget.roles.cache.some(r => r.name === 'role-name')) //does not need to be the nameObtener los roles de autor del mensaje
if (message.member.roles.cache.has(role.id))Para verificar un rol, puede hacer el código:
if (member.roles.cache.has("ROLE_ID"))Si quisiera verificar si el remitente tiene el rol, podría hacerlo:
if (message.member.roles.cache.has("ROLE_ID")) { console.log(true); } else { console.log(false); }Si quisiera verificar si alguien más tiene un rol, podría hacerlo:
if (memberTarget.roles.cache.has("ROLE_ID")) { console.log(true); } else { console.log(false); }Para conseguir un miembro puedes hacerlo de muchas maneras diferentes, un método sería conseguirlo por menciones:
// This will get the first mention who is a member in the server const memberTarget = message.mentions.members.first()Lea sobre los roles de los miembros del gremio aquí