Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更改discord.js中的昵称_Discord.js - Fatal编程技术网

更改discord.js中的昵称

更改discord.js中的昵称,discord.js,Discord.js,所以我看了不少论坛帖子,找不到适合我的代码 我正试着做这样的事情 case "setnick": if (args[1]) { if (message.guild.me.hasPermission("MANAGE_NICKNAMES")) { if (message.member.hasPermission("CHANGE_NICKNAME")) message.me

所以我看了不少论坛帖子,找不到适合我的代码

我正试着做这样的事情

          case "setnick":
         if (args[1]) {
            if (message.guild.me.hasPermission("MANAGE_NICKNAMES")) {
                if (message.member.hasPermission("CHANGE_NICKNAME"))
                  message.member.setNickname(args[1])
                  else message.channel.send("You do not have the permissions! **(CHANGE_NICKNAME)**")
            } 
             else message.channel.send("The bot does not have the permissions! **(MANAGE_NICKNAMES)**")
         }
          else message.channel.send("There's no argument to set your nickname too! **Eg. f!setnick NICKNAME**")
          break;
所以它会检查是否有这样的论点

f!setnick NICKNAME
然后检查bot是否具有权限MANAGE_昵称

如果没有,它会发送一条聊天信息

然后检查用户是否具有更改昵称的权限 所以我想知道为什么它不起作用


有什么原因吗?

你有没有试过检查它是否对除了你自己以外的其他用户有效?如果你在层次结构中比它更高/相同,那么机器人无法执行管理员命令(如更改某人的昵称),并且看到所有者是最终的权力,它可能会返回权限错误

尝试捕捉它并查看错误是什么

message.member.setNickname(args[1]).catch(e=>console.log(e))

如果返回DiscordAPIError:特权太低。。。那么我的理论是正确的。它应该适用于较低级别的用户。

message.member.me
不获取bot的用户,而是获取发送消息的用户。尝试
message.guild.members.find(“id”,client.user.id).haspowmission(“MANAGE\u昵称”)

它会给出错误,但机器人的排名高于我!服务器的所有者覆盖任何角色。所有者永远是最高的