如何将角色的权限设置为 false。比如我想创建一个不能发送消息的静音角色。
我知道如何创建一个 Permission.MESSAGE_WRITE 为 true 但不为 false 的角色:
e.getGuild().createRole().setName("Muted").setPermissions(Permission.MESSAGE_WRITE).queue();
答案 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。