无法使用 member.roles.add (id) 分配角色

时间:2021-06-01 04:12:21

标签: discord.js

我正在尝试创建一个将 userID 和 roleID 作为参数的assignrole 命令。

content = message.content.slice(message.content.indexOf(' ')+1)
args = content.split(', ');

const userID = args[0]
const roleID = args[1]
const desiredUser = message.guild.members.cache.get(userID)

const desiredRole = message.guild.roles.cache.get(roleID)
if (desiredUser != undefined){
    if (desiredRole != undefined){
        usern = desiredUser.user.username
        desiredUser.roles.add(roleID).catch(console.error);
        message.channel.send(usern + " has been assigned the "+ desiredRole.name +" role")
        console.log("added role")
    } else {
        message.channel.send("role with ID " + roleID + " does not exist")
    }
} else {
    message.channel.send("user with ID " + userID + " does not exist")
}

该函数成功“获取”了正确的用户和角色,并成功发送了“USER has been分配了ROLENAME角色”消息。但是,角色本身实际上并未添加到用户!

我的控制台抛出一个 DiscordAPIError: Missing Permissions 错误,但我不知道如何解释它。但是,该错误不会退出机器人。

如何为用户添加角色?

1 个答案:

答案 0 :(得分:0)

您可能缺少管理规则所需的 sdk.dir = C:\\Users\\<USER>\\AppData\\Local\\Android\\Sdk 权限,正如其名称所暗示的那样。

https://discord.com/developers/docs/topics/permissions

以下是可能导致错误的其他可能性:

我找到了这些here

<块引用>
  • 它试图对角色高于或等于您的机器人最高角色的公会成员执行操作。
  • 它正在尝试修改或分配一个高于或等于其最高角色的角色。
  • 它正在尝试对服务器所有者执行禁止的操作。