即使机器人是管理员,Discord JS 管理角色权限也丢失

Dha*_*raj 7 javascript typescript discord discord.js

我的 Discord 机器人没有向使用该命令的用户添加角色。

我的代码:

if (userCmd.toLowerCase() === `${prefix}verify`) {
  if (message.member.roles.cache.find(role => role.name === 'Rookie' && message.channel.id === '71xxxxxxxxxxx10')) {
  const rookieRole = message.member.guild.roles.cache.find(role => role.name === 'Rookie')
  const proRole = message.member.guild.roles.cache.find(role => role.name === 'Pro')

  try {
    if (message.guild.me.permissions.missing('MANAGE_ROLES')) return message.reply('I\'m missing permissions.');
    if (message.author.id === message.guild.ownerID) return message.reply('I can\'t change your ROLE.');

    message.member.roles.add(proRole)
  } catch(err) {
    console.error(err);
  }
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我尝试了一切可能的方法:删除并再次添加具有所有权限的机器人,将机器人角色移动到角色层次结构的顶部等。

在此输入图像描述 DiscordAPIError: Missing Permissions

在此输入图像描述

编辑: 无缘无故,使用只message.member.roles.add(proRole)让我的机器人工作:v

小智 26

我刚刚遇到了同样的问题,但我所做的一切都没有帮助。直到,我看到了一篇 Reddit 帖子,3 岁了。这就成功了。

在服务器设置中,将机器人角色拖到将分配的角色上方。

图片来源: Reddit 评论


Ten*_*lea 5

机器人的最高角色必须高于角色列表中您需要分配的角色,否则无法将其分配给任何人。