无法向用户添加角色 (UnsupportedOperationException)
Can't add role to user (UnsupportedOperationException)
我无法为用户添加角色。这是我的代码,如果我 运行 这是我得到一个 UnsupportedOperationException 错误。 "cooldownroleid"是角色的ID,我要添加到用户
代码:
Role cooldownrole = event.getGuild().getRoleById(cooldownroleid);
event.getMember().getRoles().add(cooldownrole);
堆栈跟踪:
> ERROR net.dv8tion.jda.core.JDA - One of the EventListeners had an uncaught
exception java.lang.UnsupportedOperationException: null
at
> java.util.Collections$UnmodifiableCollection.add(Collections.java:1055)
> ~[na:1.8.0_212]
"cooldownrole"
的输出
> R:cooldown(594147714510356500)
提前致谢!
getRoles()
返回的列表不可修改。这是因为角色 add 还必须通过 RestAction
转发到 discord,这在 List#add
.
中是不可用的
正确的方法取决于所使用的 JDA 版本。在版本 4 中,该方法已略微重构。
JDA v3
GuildController controller = guild.getController();
controller.addSingleRoleToMember(member, cooldownrole).queue();
获取 GuildController
并添加角色。
JDA v4
guild.addRoleToMember(member, cooldownrole).queue();
无需在版本 4 中使用 GuildController
,因为这些方法现在位于 Guild 界面中。
我无法为用户添加角色。这是我的代码,如果我 运行 这是我得到一个 UnsupportedOperationException 错误。 "cooldownroleid"是角色的ID,我要添加到用户
代码:
Role cooldownrole = event.getGuild().getRoleById(cooldownroleid);
event.getMember().getRoles().add(cooldownrole);
堆栈跟踪:
> ERROR net.dv8tion.jda.core.JDA - One of the EventListeners had an uncaught
exception java.lang.UnsupportedOperationException: null
at
> java.util.Collections$UnmodifiableCollection.add(Collections.java:1055)
> ~[na:1.8.0_212]
"cooldownrole"
的输出> R:cooldown(594147714510356500)
提前致谢!
getRoles()
返回的列表不可修改。这是因为角色 add 还必须通过 RestAction
转发到 discord,这在 List#add
.
正确的方法取决于所使用的 JDA 版本。在版本 4 中,该方法已略微重构。
JDA v3
GuildController controller = guild.getController();
controller.addSingleRoleToMember(member, cooldownrole).queue();
获取 GuildController
并添加角色。
JDA v4
guild.addRoleToMember(member, cooldownrole).queue();
无需在版本 4 中使用 GuildController
,因为这些方法现在位于 Guild 界面中。