首页 > 解决方案 > 即使机器人是管理员,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);
  }
}

在此处输入图像描述

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

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

在此处输入图像描述

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

标签: javascripttypescriptdiscorddiscord.js

解决方案


我刚刚遇到了同样的问题,我所做的没有任何帮助。直到,我遇到了一个 3 岁的 reddit 帖子。那成功了。

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

学分: Reddit 评论


推荐阅读