/** * Clears the provided {@link net.dv8tion.jda.core.Permission Permissions} bits * from the selected {@link net.dv8tion.jda.core.entities.PermissionOverride PermissionOverride}. * <br>This will cause the provided Permissions to be inherited * * @param permissions * The permissions to clear from the selected {@link net.dv8tion.jda.core.entities.PermissionOverride PermissionOverride} * * @throws IllegalArgumentException * If any of the provided Permissions is {@code null} * * @return PermOverrideManager for chaining convenience * * @see java.util.EnumSet EnumSet * @see net.dv8tion.jda.core.Permission#getRaw(java.util.Collection) Permission.getRaw(Collection) */ @CheckReturnValue public PermOverrideManager clear(Collection<Permission> permissions) { return clear(Permission.getRaw(permissions)); }
/** * Denies the provided {@link net.dv8tion.jda.core.Permission Permissions} * from the selected {@link net.dv8tion.jda.core.entities.PermissionOverride PermissionOverride}. * * @param permissions * The permissions to deny from the selected {@link net.dv8tion.jda.core.entities.PermissionOverride PermissionOverride} * * @throws IllegalArgumentException * If any of the provided Permissions is {@code null} * * @return PermOverrideManager for chaining convenience * * @see java.util.EnumSet EnumSet * @see net.dv8tion.jda.core.Permission#getRaw(java.util.Collection) Permission.getRaw(Collection) */ @CheckReturnValue public PermOverrideManager deny(Collection<Permission> permissions) { return deny(Permission.getRaw(permissions)); }
@Override public PermOverrideManager getManager() { PermOverrideManager mng = manager; if (mng == null) { mng = MiscUtil.locked(mngLock, () -> { if (manager == null) manager = new PermOverrideManager(this); return manager; }); } return mng; }
private void setupValues() { if (!shouldUpdate(ALLOWED)) this.allowed = getPermissionOverride().getAllowedRaw(); if (!shouldUpdate(DENIED)) this.denied = getPermissionOverride().getDeniedRaw(); }
@Override protected RequestBody finalizeData() { String targetId = getPermissionOverride().isMemberOverride() ? getPermissionOverride().getMember().getUser().getId() : getPermissionOverride().getRole().getId(); // setup missing values here setupValues(); RequestBody data = getRequestBody( new JSONObject() .put("id", targetId) .put("type", getPermissionOverride().isMemberOverride() ? "member" : "role") .put("allow", this.allowed) .put("deny", this.denied)); reset(); return data; }
@Override protected boolean checkPermissions() { if (!getGuild().getSelfMember().hasPermission(getChannel(), Permission.MANAGE_PERMISSIONS)) throw new InsufficientPermissionException(Permission.MANAGE_PERMISSIONS); return super.checkPermissions(); } }
@Override public void run() { tc.get().getPermissionOverride(guild.getGuild().getPublicRole()).getManager() .clear(Permission.MESSAGE_WRITE) .queue(); if (guild.getGuild().getSelfMember().hasPermission(tc.get(), Permission.MESSAGE_WRITE)) channel.sendMessage(new EmbedBuilder().setColor(ColorUtils.GREEN) .setDescription("The chat has been unlocked") .build()).queue(); } }.delay(time);
/** * This will go through all the channels in a guild, if there is no permission override or it doesn't block message write then deny it. * * @param muteRole This is the muted role of the server, the role which will have MESSAGE_WRITE denied. */ private void handleMuteChannels(Role muteRole) { getGuild().getTextChannels().forEach(channel -> { if (!getGuild().getSelfMember().hasPermission(channel, Permission.MANAGE_PERMISSIONS)) return; if (channel.getPermissionOverride(muteRole) != null && !channel.getPermissionOverride(muteRole).getDenied().contains(Permission.MESSAGE_WRITE)) channel.getPermissionOverride(muteRole).getManager().deny(Permission.MESSAGE_WRITE).queue(); else if (channel.getPermissionOverride(muteRole) == null) channel.createPermissionOverride(muteRole).setDeny(Permission.MESSAGE_WRITE).queue(); }); }
/** * Creates a new PermOverrideManager instance * * @param override * The {@link net.dv8tion.jda.core.entities.PermissionOverride PermissionOverride} to manage */ public PermOverrideManager(PermissionOverride override) { super(override.getJDA(), Route.Channels.MODIFY_PERM_OVERRIDE.compile( override.getChannel().getId(), override.isMemberOverride() ? override.getMember().getUser().getId() : override.getRole().getId())); this.override = new UpstreamReference<>(override); this.allowed = override.getAllowedRaw(); this.denied = override.getDeniedRaw(); if (isPermissionChecksEnabled()) checkPermissions(); }
/** * The {@link net.dv8tion.jda.core.entities.Channel Channel} this Manager's * {@link net.dv8tion.jda.core.entities.PermissionOverride PermissionOverride} is in. * <br>This is logically the same as calling {@code getPermissionOverride().getChannel()} * * @return The parent {@link net.dv8tion.jda.core.entities.Channel Channel} */ public Channel getChannel() { return getPermissionOverride().getChannel(); }
/** * Grants the provided {@link net.dv8tion.jda.core.Permission Permissions} * to the selected {@link net.dv8tion.jda.core.entities.PermissionOverride PermissionOverride}. * * @param permissions * The permissions to grant to the selected {@link net.dv8tion.jda.core.entities.PermissionOverride PermissionOverride} * * @throws IllegalArgumentException * If any of the provided Permissions is {@code null} * * @return PermOverrideManager for chaining convenience * * @see java.util.EnumSet EnumSet * @see net.dv8tion.jda.core.Permission#getRaw(java.util.Collection) Permission.getRaw(Collection) */ @CheckReturnValue public PermOverrideManager grant(Collection<Permission> permissions) { return grant(Permission.getRaw(permissions)); }
/** * The {@link net.dv8tion.jda.core.entities.Guild Guild} this Manager's * {@link net.dv8tion.jda.core.entities.Channel Channel} is in. * <br>This is logically the same as calling {@code getPermissionOverride().getGuild()} * * @return The parent {@link net.dv8tion.jda.core.entities.Guild Guild} */ public Guild getGuild() { return getPermissionOverride().getGuild(); }
/** * Grants the provided {@link net.dv8tion.jda.core.Permission Permissions} * to the selected {@link net.dv8tion.jda.core.entities.PermissionOverride PermissionOverride}. * * @param permissions * The permissions to grant to the selected {@link net.dv8tion.jda.core.entities.PermissionOverride PermissionOverride} * * @throws IllegalArgumentException * If any of the provided Permissions is {@code null} * * @return PermOverrideManager for chaining convenience * * @see net.dv8tion.jda.core.Permission#getRaw(net.dv8tion.jda.core.Permission...) Permission.getRaw(Permission...) */ @CheckReturnValue public PermOverrideManager grant(Permission... permissions) { Checks.notNull(permissions, "Permissions"); return grant(Permission.getRaw(permissions)); }
/** * Denies the provided {@link net.dv8tion.jda.core.Permission Permissions} * from the selected {@link net.dv8tion.jda.core.entities.PermissionOverride PermissionOverride}. * * @param permissions * The permissions to deny from the selected {@link net.dv8tion.jda.core.entities.PermissionOverride PermissionOverride} * * @throws IllegalArgumentException * If any of the provided Permissions is {@code null} * * @return PermOverrideManager for chaining convenience * * @see net.dv8tion.jda.core.Permission#getRaw(net.dv8tion.jda.core.Permission...) Permission.getRaw(Permission...) */ @CheckReturnValue public PermOverrideManager deny(Permission... permissions) { Checks.notNull(permissions, "Permissions"); return deny(Permission.getRaw(permissions)); }
/** * Clears the provided {@link net.dv8tion.jda.core.Permission Permissions} bits * from the selected {@link net.dv8tion.jda.core.entities.PermissionOverride PermissionOverride}. * <br>This will cause the provided Permissions to be inherited * * @param permissions * The permissions to clear from the selected {@link net.dv8tion.jda.core.entities.PermissionOverride PermissionOverride} * * @throws IllegalArgumentException * If any of the provided Permissions is {@code null} * * @return PermOverrideManager for chaining convenience */ @CheckReturnValue public PermOverrideManager clear(Permission... permissions) { Checks.notNull(permissions, "Permissions"); return clear(Permission.getRaw(permissions)); }