net.dv8tion.jda.api.exceptions.HierarchyException Java Examples
The following examples show how to use
net.dv8tion.jda.api.exceptions.HierarchyException.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: RoleManagerImpl.java From JDA with Apache License 2.0 | 5 votes |
@Override protected boolean checkPermissions() { Member selfMember = getGuild().getSelfMember(); if (!selfMember.hasPermission(Permission.MANAGE_ROLES)) throw new InsufficientPermissionException(getGuild(), Permission.MANAGE_ROLES); if (!selfMember.canInteract(getRole())) throw new HierarchyException("Cannot modify a role that is higher or equal in hierarchy"); return super.checkPermissions(); }
Example #2
Source File: RoleImpl.java From JDA with Apache License 2.0 | 5 votes |
@Nonnull @Override public AuditableRestAction<Void> delete() { Guild guild = getGuild(); if (!guild.getSelfMember().hasPermission(Permission.MANAGE_ROLES)) throw new InsufficientPermissionException(guild, Permission.MANAGE_ROLES); if(!PermissionUtil.canInteract(guild.getSelfMember(), this)) throw new HierarchyException("Can't delete role >= highest self-role"); if (managed) throw new UnsupportedOperationException("Cannot delete a Role that is managed. "); Route.CompiledRoute route = Route.Roles.DELETE_ROLE.compile(guild.getId(), getId()); return new AuditableRestActionImpl<>(getJDA(), route); }
Example #3
Source File: SoftbanCommand.java From SkyBot with GNU Affero General Public License v3.0 | 4 votes |
@Override public void execute(@Nonnull CommandContext ctx) { final List<String> args = ctx.getArgs(); if (args.size() < 2) { this.sendUsageInstructions(ctx); return; } final List<Member> mentioned = ctx.getMentionedArg(0); if (mentioned.isEmpty()) { sendMsg(ctx, "I could not find any members with name " + args.get(0)); return; } final Member toBanMember = mentioned.get(0); if (!canInteract(ctx.getMember(), toBanMember, "softban", ctx.getChannel())) { return; } try { final User toBan = toBanMember.getUser(); if (toBan.equals(ctx.getAuthor()) && !ctx.getMember().canInteract(toBanMember)) { sendMsg(ctx, "You are not permitted to perform this action."); return; } String reason = "No reason given"; final var flags = ctx.getParsedFlags(this); if (flags.containsKey("r")) { reason = String.join(" ", flags.get("r")); } final String fReason = reason; ctx.getGuild().ban(toBanMember, 1, fReason) .reason("Kicked by: " + ctx.getAuthor().getAsTag() + ": " + fReason).queue( nothing -> { ModerationUtils.modLog(ctx.getAuthor(), toBan, "kicked", fReason, ctx.getGuild()); MessageUtils.sendSuccess(ctx.getMessage()); ctx.getGuild().unban(toBan.getId()) .reason("(softban) Kicked by: " + ctx.getAuthor().getAsTag()).queue(); } ); } catch (HierarchyException ignored) { sendMsg(ctx, "I can't ban that member because his roles are above or equals to mine."); } }
Example #4
Source File: GuildImpl.java From JDA with Apache License 2.0 | 4 votes |
protected void checkPosition(Member member) { if(!getSelfMember().canInteract(member)) throw new HierarchyException("Can't modify a member with higher or equal highest role than yourself!"); }
Example #5
Source File: GuildImpl.java From JDA with Apache License 2.0 | 4 votes |
protected void checkPosition(Role role) { if(!getSelfMember().canInteract(role)) throw new HierarchyException("Can't modify a role with higher or equal highest role than yourself! Role: " + role.toString()); }