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

Posted

技术标签:

【中文标题】Discord JS V12 问题检查用户是不是已经拥有角色【英文标题】:Discord JS V12 issue checking if user already has roleDiscord JS V12 问题检查用户是否已经拥有角色 【发布时间】:2021-07-18 13:42:54 【问题描述】:

我有一个命令,我的机器人应该给我在消息中提到的人一个角色,机器人给用户这个角色就好了。但是,当我对已经拥有该角色的人运行命令时,它不会停止并说“用户已经拥有角色”,而是继续说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】:

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

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

【讨论】:

以上是关于Discord JS V12 问题检查用户是不是已经拥有角色的主要内容,如果未能解决你的问题,请参考以下文章

如何检查我的机器人是不是可以在 discord.js v12 中添加角色?

如何检查成员是不是可以在 discord.js v12 中被踢/禁止?

如何检查 discord.js v12 中的第二个参数是不是为空

从数组 discord.js v12 访问项目

如何向 discord.js bot v12 添加验证

discord.js v12 用户信息命令