.put("id", role.getId()) .put("position", i + 1)); //plus 1 because position 0 is the @everyone position.
@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 public PermissionOverrideAction putPermissionOverride(Role role) { checkPermission(Permission.MANAGE_PERMISSIONS); Checks.notNull(role, "role"); if (!getGuild().equals(role.getGuild())) throw new IllegalArgumentException("Provided role is not from the same guild as this channel!"); Route.CompiledRoute route = Route.Channels.CREATE_PERM_OVERRIDE.compile(getId(), role.getId()); return new PermissionOverrideAction(getJDA(), route, this, role); }
/** * Creates a new RoleManager instance * * @param role * {@link net.dv8tion.jda.core.entities.Role Role} that should be modified */ public RoleManager(Role role) { super(role.getJDA(), Route.Roles.MODIFY_ROLE.compile(role.getGuild().getId(), role.getId())); this.role = new UpstreamReference<>(role); if (isPermissionChecksEnabled()) checkPermissions(); }
/** * 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(); }
@Override public AuditableRestAction<Void> delete() { if (!getGuild().getSelfMember().hasPermission(getChannel(), Permission.MANAGE_PERMISSIONS)) throw new InsufficientPermissionException(Permission.MANAGE_PERMISSIONS); String targetId = isRoleOverride() ? getRole().getId() : getMember().getUser().getId(); Route.CompiledRoute route = Route.Channels.DELETE_PERM_OVERRIDE.compile(getChannel().getId(), targetId); return new AuditableRestAction<Void>(getJDA(), route) { @Override protected void handleResponse(Response response, Request<Void> request) { if (response.isOk()) request.onSuccess(null); else request.onFailure(response); } }; }
checkPosition(role); Route.CompiledRoute route = Route.Guilds.REMOVE_MEMBER_ROLE.compile(getGuild().getId(), member.getUser().getId(), role.getId()); return new AuditableRestAction<Void>(getJDA(), route)
checkPosition(role); Route.CompiledRoute route = Route.Guilds.ADD_MEMBER_ROLE.compile(getGuild().getId(), member.getUser().getId(), role.getId()); return new AuditableRestAction<Void>(getJDA(), route)
public static String listOfRoles(List<Role> list, String query) { String out = " Multiple text channels found matching \""+query+"\":"; for(int i=0; i<6 && i<list.size(); i++) out+="\n - "+list.get(i).getName()+" (ID:"+list.get(i).getId()+")"; if(list.size()>6) out+="\n**And "+(list.size()-6)+" more...**"; return out; }
/** * Checks if the given member has the given role. * * @param member The member that should check if they have the given role. * @param role The role the member should have. * @return True if the member has the given role, false otherwise. */ public static boolean hasRole(@Nonnull Member member, @Nonnull Role role) { for (Role memberRole : member.getRoles()) { if (memberRole.getId().equals(role.getId())) { return true; } } return false; } }
private Role getRole(Guild guild, String role) { if (!role.contains(" ") && role.startsWith("<@&") && role.endsWith(">")) { return guild.getRoleById(role.replaceAll("[^0-9]+", "")); } // Since I know it is valid I can get the id from the name or just return the id since that will be the only other thing passed. for (Role iRole : guild.getRoles()) { if (iRole.getId().equals(role) || iRole.getName().equalsIgnoreCase(role)) return iRole; } return null; }
@Override public String fromInput(Guild guild, String value) { if (allowNull && (value == null || value.isEmpty() || value.equalsIgnoreCase("false"))) { return ""; } if (DisUtil.isRoleMention(value)) { Role role = guild.getRoleById(DisUtil.mentionToId(value)); if (role != null) { return role.getId(); } } Role role = DisUtil.findRole(guild, value); if (role != null) { return role.getId(); } return ""; }
public static String buildRoleData(List<Role> roles) { List<Map<String, Object>> rolesMap = new ArrayList<>(); for (Role role : roles) { if (role.isPublicRole()) { continue; } Map<String, Object> item = new HashMap<>(); item.put("id", role.getId()); item.put("name", role.getName()); item.put("position", role.getPosition()); item.put("permissions", role.getPermissionsRaw()); item.put("color", role.getColor() == null ? null : Integer.toHexString(role.getColor().getRGB()).substring(2) ); rolesMap.add(item); } return AvaIre.gson.toJson(rolesMap); }
private void handleLevelRoles(RoleDeleteEvent event, GuildTransformer transformer) { if (transformer.getLevelRoles().isEmpty() || !transformer.getLevelRoles().containsValue(event.getRole().getId())) { return; } int key = -1; for (Map.Entry<Integer, String> entry : transformer.getLevelRoles().entrySet()) { if (entry.getValue().equals(event.getRole().getId())) { key = entry.getKey(); } } try { transformer.getLevelRoles().remove(key); avaire.getDatabase().newQueryBuilder(Constants.GUILD_TABLE_NAME) .useAsync(true) .where("id", event.getGuild().getId()) .update(statement -> { statement.set("level_roles", AvaIre.gson.toJson(transformer.getLevelRoles()), true); }); } catch (SQLException e) { e.printStackTrace(); } }
private void handleSelfAssignableRoles(RoleDeleteEvent event, GuildTransformer transformer) { if (transformer.getSelfAssignableRoles().isEmpty() || !transformer.getSelfAssignableRoles().containsKey(event.getRole().getId())) { return; } try { transformer.getSelfAssignableRoles().remove(event.getRole().getId()); avaire.getDatabase().newQueryBuilder(Constants.GUILD_TABLE_NAME) .useAsync(true) .where("id", event.getGuild().getId()) .update(statement -> { statement.set("claimable_roles", AvaIre.gson.toJson(transformer.getSelfAssignableRoles()), true); }); } catch (SQLException e) { e.printStackTrace(); } }
public void onRoleUpdateName(RoleUpdateNameEvent event) { GuildTransformer transformer = GuildController.fetchGuild(avaire, event.getGuild()); if (transformer == null || transformer.getSelfAssignableRoles().isEmpty()) { return; } if (!transformer.getSelfAssignableRoles().containsKey(event.getRole().getId())) { return; } try { transformer.getSelfAssignableRoles().put(event.getRole().getId(), event.getRole().getName().toLowerCase()); avaire.getDatabase().newQueryBuilder(Constants.GUILD_TABLE_NAME) .useAsync(true) .where("id", event.getGuild().getId()) .update(statement -> { statement.set("claimable_roles", AvaIre.gson.toJson(transformer.getSelfAssignableRoles()), true); }); } catch (SQLException e) { e.printStackTrace(); } }
@Override public void onRoleDelete(RoleDeleteEvent event) { if (FlareBotManager.instance().getGuild(event.getGuild().getId()) == null) return; if (FlareBotManager.instance().getGuild(event.getGuild().getId()).getSelfAssignRoles().contains(event.getRole().getId())) { FlareBotManager.instance().getGuild(event.getGuild().getId()).getSelfAssignRoles().remove(event.getRole().getId()); } }
private void onRoleDelete(RoleDeleteEvent event, @Nonnull GuildWrapper wrapper) { if (cannotHandle(wrapper, ModlogEvent.ROLE_DELETE)) return; event.getGuild().getAuditLogs().queue(auditLog -> { AuditLogEntry entry = auditLog.get(0); ModlogHandler.getInstance().postToModlog(wrapper, ModlogEvent.ROLE_DELETE, entry.getUser(), new MessageEmbed.Field("Role", event.getRole().getName() + " (" + event.getRole().getId() + ")", true)); }); }
private void onRoleCreate(RoleCreateEvent event, @Nonnull GuildWrapper wrapper) { if (event.getGuild() == null) return; if (cannotHandle(wrapper, ModlogEvent.ROLE_CREATE)) return; event.getGuild().getAuditLogs().queue(auditLog -> { AuditLogEntry entry = auditLog.get(0); ModlogHandler.getInstance().postToModlog(wrapper, ModlogEvent.ROLE_CREATE, entry.getUser(), new MessageEmbed.Field("Role", event.getRole().getName() + " (" + event.getRole().getId() + ")", true)); }); }
private void handleAutoroles(RoleDeleteEvent event, GuildTransformer transformer) { if (transformer.getAutorole() == null || !event.getRole().getId().equals(transformer.getAutorole())) { return; } try { transformer.setAutorole(null); avaire.getDatabase().newQueryBuilder(Constants.GUILD_TABLE_NAME) .useAsync(true) .where("id", event.getGuild().getId()) .update(statement -> statement.set("autorole", null)); } catch (SQLException e) { e.printStackTrace(); } }