Comment vérifier si un utilisateur spécifique a un rôle? Discord js


Edwin:

Je sais comment vérifier si l'expéditeur du message a un rôle:

if(message.member.roles.has(role.id)) {
  console.log(`Yay, the author of the message has the role!`);
} else {
  console.log(`Nope, noppers, nadda.`);
}

Cependant, comment puis-je vérifier si un utilisateur spécifique (en utilisant l'ID utilisateur) a un rôle spécifique?

    var authorID = "111111111111111111"

    //Find role
    var role = message.guild.roles.find(role => role.name === "Private Splash Ping");
    //Find member
    let member = message.guild.members.get(authorID);

    console.log(member.roles.has(role))
    if(member.roles.has(role)) {
        roleadded = "User already has Private spalsh role."
    } else {
        message.member.addRole(role);
        roleadded = "Added private splash role."
    }

member.roles.has (role) renvoie toujours false et j'ai confirmé que les variables de membre et de rôle sont correctes via les points d'arrêt.

Y a-t-il quelque chose qui me manque ici?

La vache;

message.member.rolesest considéré comme un GuildMemberRoleManager ( Documentation ), pour accéder à la collection de rôles, vous devez accéder à la propriété .cachequi est une collection. Cette collection a alors la .has(...)fonction méthode. ( Documentation )

Ainsi, vous souhaitez accéder à la place message.member.roles.cache.has(...)

Articles connexes