private void applyPermission(ChannelAction a) { overrides.forEachValue(override -> { if (override.isMemberOverride()) a.addPermissionOverride(override.getMember(), override.getAllowedRaw(), override.getDeniedRaw()); else a.addPermissionOverride(override.getRole(), override.getAllowedRaw(), override.getDeniedRaw()); return true; }); } }
/** * 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.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(); }
private void setupValues() { if (!shouldUpdate(ALLOWED)) this.allowed = getPermissionOverride().getAllowedRaw(); if (!shouldUpdate(DENIED)) this.denied = getPermissionOverride().getDeniedRaw(); }
this.overridesRem.add(getId(permO.isRoleOverride() ? permO.getRole() : permO.getMember())) ); int type = permO.isRoleOverride() ? PermOverrideData.ROLE_TYPE : PermOverrideData.MEMBER_TYPE; long id = getId(permO.isRoleOverride() ? permO.getRole() : permO.getMember()); this.overridesAdd.put(id, new PermOverrideData(type, id, permO.getAllowedRaw(), permO.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; }
/** * 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(); }); }
/** * 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(); }
@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);
if (override != null) denyRaw = override.getDeniedRaw(); allowRaw = override.getAllowedRaw(); denyRole |= override.getDeniedRaw(); allowRole |= override.getAllowedRaw(); final long oDeny = override.getDeniedRaw(); final long oAllow = override.getAllowedRaw(); allowRaw = (allowRaw & ~oDeny) | oAllow; denyRaw = (denyRaw & ~oAllow) | oDeny;
boolean locking = !everyoneOvr.getDenied().contains(Permission.MESSAGE_WRITE); tc.get().getPermissionOverride(guild.getGuild().getPublicRole()).getManager() .deny(locking ? perm : empty) .clear(locking ? empty : perm)
public PermOverrideData(PermissionOverride override) { if (override.isMemberOverride()) { this.id = override.getMember().getUser().getIdLong(); this.type = MEMBER_TYPE; } else { this.id = override.getRole().getIdLong(); this.type = ROLE_TYPE; } this.allow = override.getAllowedRaw(); this.deny = override.getDeniedRaw(); }
permissions &= ~publicOverride.getDeniedRaw(); permissions |= publicOverride.getAllowedRaw(); permissions &= ~roleOverride.getDeniedRaw(); permissions |= roleOverride.getAllowedRaw();
@Override public ChannelAction createCopy(Guild guild) { Checks.notNull(guild, "Guild"); ChannelAction action = guild.getController().createCategory(name); if (guild.equals(getGuild())) { for (PermissionOverride o : overrides.valueCollection()) { if (o.isMemberOverride()) action.addPermissionOverride(o.getMember(), o.getAllowedRaw(), o.getDeniedRaw()); else action.addPermissionOverride(o.getRole(), o.getAllowedRaw(), o.getDeniedRaw()); } } return action; }
PermissionOverride override = channel.getPermissionOverride(guild.getPublicRole()); if (override != null) permission = apply(permission, override.getAllowedRaw(), override.getDeniedRaw()); if (role.isPublicRole()) return permission; : apply(permission, override.getAllowedRaw(), override.getDeniedRaw());
@Override public ChannelAction createCopy(Guild guild) { Checks.notNull(guild, "Guild"); ChannelAction action = guild.getController().createTextChannel(name).setNSFW(nsfw).setTopic(topic); if (guild.equals(getGuild())) { Category parent = getParent(); if (parent != null) action.setParent(parent); for (PermissionOverride o : overrides.valueCollection()) { if (o.isMemberOverride()) action.addPermissionOverride(o.getMember(), o.getAllowedRaw(), o.getDeniedRaw()); else action.addPermissionOverride(o.getRole(), o.getAllowedRaw(), o.getDeniedRaw()); } } return action; }
@Override public ChannelAction createCopy(Guild guild) { Checks.notNull(guild, "Guild"); ChannelAction action = guild.getController().createVoiceChannel(name).setBitrate(bitrate).setUserlimit(userLimit); if (guild.equals(getGuild())) { Category parent = getParent(); if (parent != null) action.setParent(parent); for (PermissionOverride o : overrides.valueCollection()) { if (o.isMemberOverride()) action.addPermissionOverride(o.getMember(), o.getAllowedRaw(), o.getDeniedRaw()); else action.addPermissionOverride(o.getRole(), o.getAllowedRaw(), o.getDeniedRaw()); } } return action; }