@Override public boolean isPublicRole() { return this.equals(this.getGuild().getPublicRole()); }
@Override public boolean hasPermission(Permission... permissions) { long effectivePerms = rawPermissions | getGuild().getPublicRole().getPermissionsRaw(); for (Permission perm : permissions) { final long rawValue = perm.getRawValue(); if ((effectivePerms & rawValue) != rawValue) return false; } return true; }
@Override public int getPosition() { if (this == getGuild().getPublicRole()) return -1; //Subtract 1 to get into 0-index, and 1 to disregard the everyone role. int i = getGuild().getRoles().size() - 2; for (Role r : getGuild().getRoles()) { if (r == this) return i; i--; } throw new AssertionError("Somehow when determining position we never found the role in the Guild's roles? wtf?"); }
}); Checks.check(!roles.contains(getGuild().getPublicRole()), "Cannot add the PublicRole of a Guild to a Member. All members have this role by default!");
/** * Retrieves the explicit permissions of the specified {@link net.dv8tion.jda.core.entities.Member Member} * in its hosting {@link net.dv8tion.jda.core.entities.Guild Guild}. * <br>This method does not calculate the owner in. * * <p>All permissions returned are explicitly granted to this Member via its {@link net.dv8tion.jda.core.entities.Role Roles}. * <br>Permissions like {@link net.dv8tion.jda.core.Permission#ADMINISTRATOR Permission.ADMINISTRATOR} do not * grant other permissions in this value. * * @param member * The non-null {@link net.dv8tion.jda.core.entities.Member Member} for which to get implicit permissions * * @throws IllegalArgumentException * If the specified member is {@code null} * * @return Primitive (unsigned) long value with the implicit permissions of the specified member * * @since 3.1 */ public static long getExplicitPermission(Member member) { Checks.notNull(member, "Member"); final Guild guild = member.getGuild(); long permission = guild.getPublicRole().getPermissionsRaw(); for (Role role : member.getRoles()) permission |= role.getPermissionsRaw(); return permission; }
throw new IllegalArgumentException("Provided channel and role are not of the same guild!"); long permissions = role.getPermissionsRaw() | guild.getPublicRole().getPermissionsRaw(); PermissionOverride publicOverride = channel.getPermissionOverride(guild.getPublicRole()); PermissionOverride roleOverride = channel.getPermissionOverride(role);
return new AuditableRestAction.EmptyRestAction<>(getGuild().getJDA()); Checks.check(!currentRoles.contains(getGuild().getPublicRole()), "Cannot add the PublicRole of a Guild to a Member. All members have this role by default!");
PermissionOverride override = channel.getPermissionOverride(member.getGuild().getPublicRole()); long allowRaw = 0; long denyRaw = 0;
return Permission.ALL_PERMISSIONS; long permission = member.getGuild().getPublicRole().getPermissionsRaw(); for (Role role : member.getRoles())
checkGuild(channel.getGuild(), guild, "Role"); long permission = role.getPermissionsRaw() | guild.getPublicRole().getPermissionsRaw(); PermissionOverride override = channel.getPermissionOverride(guild.getPublicRole()); if (override != null) permission = apply(permission, override.getAllowedRaw(), override.getDeniedRaw());
@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);
textChannel, textChannel.getGuild().getPublicRole() ))) { return PermissionCheckType.EMBED;
PermissionOverride everyoneOvr = tc.get().getPermissionOverride(guild.getGuild().getPublicRole()); boolean locking = !everyoneOvr.getDenied().contains(Permission.MESSAGE_WRITE); EnumSet<Permission> empty = EnumSet.noneOf(Permission.class); tc.get().getPermissionOverride(guild.getGuild().getPublicRole()).getManager() .deny(locking ? perm : empty) .clear(locking ? empty : perm)
manager.getColorField().setValue(rank.getColor()); manager.getHoistedField().setValue(rank.isHoisted()); manager.getPermissionField().setPermissions(guild.getPublicRole().getPermissions()); manager.getPermissionField().revokePermissions(Permission.MESSAGE_MENTION_EVERYONE); manager.update().complete();