Discord.js-setNickname没有足够的权限

时间:2020-09-02 12:43:50

标签: javascript node.js discord discord.js

我正在使用discord.js制作一个非常简单的机器人,

当我打电话给message.member.setNickname("Another Nickname").then(console.log, console.log);

我明白了

{
  name: 'DiscordAPIError',
  message: 'Missing Permissions',
  method: 'patch',
  path: '...',
  code: 50013,
  httpStatus: 403
}

但是该漫游器的权限是: 506981977

message.guild.member(client.user).permissions.has("MANAGE_NICKNAMES")返回true

1 个答案:

答案 0 :(得分:1)

确保漫游器的最高角色高于您要更改的昵称的最高角色。您可以使用comparePositionTo()方法和GuildMember.roles.highest属性对此进行检查。

// <user> is a placeholder for the user who's nickname you are changing
if (client.user.roles.highest.comparePositionTo(<user>.roles.highest) > 0)
  return console.log("Client cannot change the user's nickname");