使用 JDA 更改成员的昵称
Posted
技术标签:
【中文标题】使用 JDA 更改成员的昵称【英文标题】:Changing a member's nickname with JDA 【发布时间】:2022-01-23 17:52:01 【问题描述】:我正在尝试更改某人的昵称,但我不断收到此错误:net.dv8tion.jda.api.exceptions.HierarchyException: Can't modify a member with higher or equal highest role than yourself!
这是我的代码:
Member m = e.getMember();
m.modifyNickname(rank.getDisplayName() + " | " + p.getName()).queue();
【问题讨论】:
没关系!这是因为我拥有服务器。 【参考方案1】:在第一种情况下,每当机器人尝试修改:
昵称 角色或尝试:
踢 禁止 超时一个用户,Discord 将检查用户是否被允许这样做。 Discord 会检查该机器人是否具有更高的角色,然后是它试图影响的用户具有的最高角色。。
在 JDA 中,应该有一个用于此的工具。 PermissionUtil.canInteract(会员,会员)。然而,据我所知。这是 JDA 内部的东西,不应使用。
在您的情况下,您要么在机器人之上,要么是所有者。 (谁永远是最高的,永远有管理员)
【讨论】:
以上是关于使用 JDA 更改成员的昵称的主要内容,如果未能解决你的问题,请参考以下文章
更改昵称时,昵称命令不会用任何内容替换 UserMention