【问题标题】:Changing a member's nickname with JDA使用 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();

【问题讨论】:

  • 没关系!这是因为我拥有服务器。

标签: discord-jda


【解决方案1】:

在第一种情况下,每当机器人尝试修改:

  • 昵称
  • 角色

或尝试:

  • 禁止
  • 超时

一个用户,Discord 将检查用户是否被允许这样做。 Discord 会检查该机器人是否具有更高的角色,然后是它试图影响的用户具有的最高角色。

在 JDA 中,应该有一个用于此的工具。 PermissionUtil.canInteract(会员,会员)。然而,据我所知。这是 JDA 内部的东西,不应使用。

在您的情况下,您要么在机器人之上,要么是所有者。 (谁永远是最高的,永远有管理员)

【讨论】:

    猜你喜欢
    • 2021-06-26
    • 2021-03-13
    • 2020-09-15
    • 2017-05-05
    • 1970-01-01
    • 2021-05-24
    • 2020-04-07
    • 2018-12-09
    • 1970-01-01
    相关资源
    最近更新 更多