Discord JS V12 问题检查用户是否已经拥有角色

时间:2021-04-24 17:04:20

标签: javascript node.js discord.js

我有一个命令,我的机器人应该给我在消息中提到的人一个角色,机器人给用户这个角色就好了。但是,当我对已经拥有角色的人运行命令时,它不会停止并说“用户已经拥有角色”,而是继续说 added the role to the user

这是我的代码:

module.exports = {
    name: 'pm',
    description: 'sets pm',
    permissions: ['ADMINISTRATOR'],
    execute(client, message, args, Discord){
        try {
            
            let role = message.guild.roles.cache.get("role id");
            let member = message.mentions.members.first();
            if(!member) return message.channel.send('***Error:*** Please specify a user.');
            
            if(member.roles.cache.has(role)) {
                message.channel.send(`***Error:*** ${member} is already a PM.`)
            } else {
                member.roles.add(role);
                message.channel.send(`Added ${member}`)
            }


        } catch (e) {
            message.channel.send(`***Error:*** ${e}`)
            console.log(e)
        }
    }
}

1 个答案:

答案 0 :(得分:1)

你真的很亲近。您所要做的就是将 member.roles.cache.has(role) 换成 member.roles.cache.has(role.id)

参考:https://anidiots.guide/understanding/roles