我有一个命令,我的机器人应该给我在消息中提到的人一个角色,机器人给用户这个角色就好了。但是,当我对已经拥有角色的人运行命令时,它不会停止并说“用户已经拥有角色”,而是继续说 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)
}
}
}
答案 0 :(得分:1)
你真的很亲近。您所要做的就是将 member.roles.cache.has(role)
换成 member.roles.cache.has(role.id)
。