/** * Grants the provided {@link net.dv8tion.jda.core.Permission Permissions} bits * 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} * * @return PermOverrideManager for chaining convenience */ @CheckReturnValue public PermOverrideManager grant(long permissions) { if (permissions == 0) return this; setupValues(); this.allowed |= permissions; this.denied &= ~permissions; this.set |= PERMISSIONS; return this; }
/** * Denies the provided {@link net.dv8tion.jda.core.Permission Permissions} bits * 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} * * @return PermOverrideManager for chaining convenience */ @CheckReturnValue public PermOverrideManager deny(long permissions) { if (permissions == 0) return this; setupValues(); this.denied |= permissions; this.allowed &= ~permissions; this.set |= PERMISSIONS; return this; }
/** * 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} * * @return PermOverrideManager for chaining convenience */ @CheckReturnValue public PermOverrideManager clear(long permissions) { setupValues(); if ((allowed & permissions) != 0) { this.allowed &= ~permissions; this.set |= ALLOWED; } if ((denied & permissions) != 0) { this.denied &= ~permissions; this.set |= DENIED; } return this; }
@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; }