我正在尝试创建一个发送消息并赋予您角色的命令。该漫游器具有最高的角色,具有“管理角色”权限,并正在尝试将该角色添加到具有最低角色的普通公会成员中。每次执行命令时都会收到此错误。我还查看了该页面https://discordjs.guide/popular-topics/permissions-extended.html#missing-permissions,并检查了所有内容,但我不断收到错误消息。
DiscordAPIError: Missing Permissions
at RequestHandler.execute (C:\Users\perli\Desktop\DiscordBot\node_modules\discord.js\src\rest\RequestHandler.js:170:25)
at processTicksAndRejections (internal/process/task_queues.js:97:5)
这也是我的代码:
if (command === 'participo') {
const author = message.author;
message.reply(
`te has inscrito correctamente al torneo\nRecuerda unirte a este canal para participar https://discord.gg/4jue4uZ`
);
client.channels.cache
.get('754701028888281168')
.send(`<@${author.id}> se ha inscrito al torneo`);
const role = message.guild.roles.cache.array(
(role) => role.id === '754748890300940348'
);
message.member.roles
.add(role)
.then(console.log)
.catch(console.error);
}
答案 0 :(得分:1)
该错误已经表明Missing Permissions
,这意味着您的机器人没有权限授予用户高于他的角色,或者根本没有MANAGE_ROLES
权限。如果您希望您的机器人成功发布角色,请确保角色堆栈来自以下内容:
- UnreachableRole
- Bot Role
- Role 1
- Role 2
....
- Role 10
对此:
- Bot Role
- UnreachableRole
- Role 1
- Role 2
....
- Role 10
机器人无法到达UnreachableRole
,因为它的位置较高。要解决此问题,请将机器人角色移到您要赋予的角色的更高位置。
还要确保您的漫游器具有MANAGE_ROLES
权限。