我正在使用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
答案 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");