权限太低,setNickname()

Sea*_*ean 1 discord

            if (message.content.startsWith(prefix + "nickname ")) {
            var nick = message.content.replace(prefix + "nickname ", "");
            message.member.setNickname("nick");
            message.channel.send('You have *changed* your **nickname** to "' + nick + '" **!**');
        }
Run Code Online (Sandbox Code Playgroud)

我正在尝试发出命令以通过文本更改作者的昵称。不幸的是,即使我的机器人具有“管理昵称”权限,“管理员”权限,甚至在服务器设置中角色列表的顶部,它也会引发“权限太低...”错误。有人有想法么?

编辑:根据回答,尽管服务器的bot角色最高,但不允许其修改服务器上级的昵称。我在备用帐户上运行了代码,并且运行得很完美。我只是没有给自己昵称的特权(这基本上可以通过不和谐实现的/ nick命令来完成)

小智 5

Discord.js通过从消息中获取GuildMember并使用GuildMember#setNickname方法来实现更改昵称。这是设置运行消息的用户昵称的简单示例:

if (message.content.includes('changeName')) {
if (!message.guild.me.hasPermission('MANAGE_NICKNAMES')) return message.channel.send('I don/'t have permission to change your nickname!');
message.member.setNickname(message.content.replace('changeName ', ''));
Run Code Online (Sandbox Code Playgroud)

}