如何将角色的权限设置为 False

时间:2021-05-27 20:55:03

标签: java discord-jda

如何将角色的权限设置为 false。比如我想创建一个不能发送消息的静音角色。

我知道如何创建一个 Permission.MESSAGE_WRITE 为 true 但不为 false 的角色:

e.getGuild().createRole().setName("Muted").setPermissions(Permission.MESSAGE_WRITE).queue();

1 个答案:

答案 0 :(得分:0)

使用 TextChannelCreateEvent 来确保在创建文本频道时静音角色没有发送消息的权限。

代码:

    @Override
    public void onTextChannelCreate(TextChannelCreateEvent e) {
        try {
            TextChannel channel = e.getChannel();
            Guild guild = e.getGuild();
            Role role = guild.getRolesByName("Muted", false).get(0);
            channel.createPermissionOverride(role).setDeny(Permission.MESSAGE_WRITE).queue();

        } catch (IndexOutOfBoundsException error) {
            e.getGuild().createRole().setName("Muted").queue();
        }
    }

主要归功于@dan1st。