我通过一个动作创建了一个新频道,我想拒绝公共角色的阅读权限,但它有时仅起作用。有时每个人都可以阅读,有时会被拒绝。有人可以帮我吗?
TextChannel channel = cat.createTextChannel(getFormatedName() + "-ticket-" + User.getId())
.addPermissionOverride(guild.getPublicRole(), null, EnumSet.of(Permission.MESSAGE_READ))
.addPermissionOverride(getAdminRole(), EnumSet.of(Permission.MESSAGE_READ), null)
.addPermissionOverride(guild.getMemberById(User.getId()), EnumSet.of(Permission.MESSAGE_READ), null)
.complete();
答案 0 :(得分:0)
这似乎是低于 4.2.0_174 的版本中的错误。我建议您进行更新以解决此问题。
使用Category#createTextChannel在类别中创建频道时,它将首先应用该类别中的所有权限替代。此后,您将应用手动替代,这可能会与类别中的现有替代冲突。由于存在错误,最终在请求中会有2个覆盖。这会导致输出不一致,从而导致奇怪的结果。