为什么使用discord-jda和Java的discord bot会忽略更新语音通道权限的请求?

q43xntqr  于 2023-06-04  发布在  Java
关注(0)|答案(1)|浏览(167)

我必须为EntitySelectMenu中选择的两个用户设置拒绝连接到语音通道的权限。为此,我尝试使用以下代码:
在EntitySelectInteraction中:

for (int i = 0; i < 2; i++) {
    event.getMember().getVoiceState().getChannel().asVoiceChannel().getManager()
        .putMemberPermissionOverride(Long.parseLong(event.getMentions().getMembers().get(i).getId()), null, EnumSet
        .of(Permission.VOICE_CONNECT)).complete();
}

但是这段代码只为第二个被选中的用户更改频道中的权限,而忽略第一个用户。是什么引起的?如何避免?我将感激任何帮助。

g2ieeal7

g2ieeal71#

您应该重用同一个管理器,以便在单个请求中添加多个覆盖:

VoiceChannelManager manager = event.getMember().getVoiceState().getChannel().asVoiceChannel().getManager();
EnumSet<Permission> denied = EnumSet.of(Permission.VOICE_CONNECT);
for (Member member : event.getMentions().getMembers()) {
    manager.putPermissionOverride(member, null, denied);
}
manager.queue();

相关问题