Java 如何向新创建的角色授予加入新创建的JDA库语音聊天的权限?

Java 如何向新创建的角色授予加入新创建的JDA库语音聊天的权限?,java,permissions,discord-jda,Java,Permissions,Discord Jda,我试图创建用户可以分配自己的角色,然后创建只有该角色才能看到的隐藏语音聊天。到目前为止,我已经创建了一个角色,并使用下面的代码创建了一个隐藏的语音聊天。但现在我不知道如何向新创建的角色添加权限以加入新创建的语音聊天 event.getGuild().getController().createCopyOfRole(event.getGuild().getRoleById(“582333645948452874”)).setIndicatable(true).setName(messageSent

我试图创建用户可以分配自己的角色,然后创建只有该角色才能看到的隐藏语音聊天。到目前为止,我已经创建了一个角色,并使用下面的代码创建了一个隐藏的语音聊天。但现在我不知道如何向新创建的角色添加权限以加入新创建的语音聊天

event.getGuild().getController().createCopyOfRole(event.getGuild().getRoleById(“582333645948452874”)).setIndicatable(true).setName(messageSent[1]).queue();
event.getGuild().getController().createCopyOfChannel(event.getGuild().getVoiceChannelById(“583088218145292298”)).setName(messageSent[1]).queue();
您可以在
createCopyOfChannel
返回的
ChannelAction
上使用

EnumSet permissions=EnumSet.of(Permission.VIEW\u频道);
Role-Role=event.getGuild().getRoleById(582333645948452874L);
VoiceChannel=event.getGuild().getVoiceChannelById(583088218145292298L);
GuildController controller=event.getGuild().getController();
controller.createCopyOfRole(角色)
.可设置的(真)
.setName(messageSent[1])
.队列((r)->{
controller.createCopyOfChannel(频道)
.setName(messageSent[1])
//允许新角色查看频道
.addPermissionOverride(r,权限,null)
//不允许everyone角色查看频道
.addPermissionOverride(guild.getPublicRole(),null,权限)
.queue();
});
创建的新角色在队列的回调中可用。在我的例子中,我把它命名为
r
。然后,您可以使用该角色
r
在创建频道之前向频道添加权限覆盖。要拒绝其他人的访问,只需使用公共角色(
@everybody
)并拒绝来自该角色的查看访问