更改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昵称”)
它会给出错误,但机器人的排名高于我!服务器的所有者覆盖任何角色。所有者永远是最高的