@Override public RoleAction createCopy(Guild guild) { Checks.notNull(guild, "Guild"); return guild.getController().createRole() .setColor(color) .setHoisted(hoisted) .setMentionable(mentionable) .setName(name) .setPermissions(rawPermissions); }
@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; }
@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; }
@Override protected boolean punish(DiscordBot bot, Guild guild, Member member) { bot.queue.add(guild.getController().kick(member)); return true; } }
@Override protected boolean punish(DiscordBot bot, Guild guild, Member member) { bot.queue.add(guild.getController().ban(member, 7)); return true; } }
@Override protected boolean punish(DiscordBot bot, Guild guild, Member member) { bot.queue.add(guild.getController().ban(member, 5), t -> guild.getController().unban(member.getUser()).complete()); return true; } }
@Override protected boolean punish(DiscordBot bot, Guild guild, Member member) { Role role = guild.getRoleById(GuildSettings.get(guild).getOrDefault(GSetting.BOT_MUTE_ROLE)); if (role == null) { return false; } List<Role> roles = member.getRoles(); List<Role> rolesToAdd = new ArrayList<>(); rolesToAdd.add(role); List<Role> rolesToRemove = new ArrayList<>(); for (Role r : roles) { if (r.isManaged()) { continue; } if (!PermissionUtil.canInteract(guild.getSelfMember(), r)) { continue; } if (r.equals(role)) { roles.remove(role); continue; } rolesToRemove.add(r); } bot.queue.add(guild.getController().modifyMemberRoles(member, rolesToAdd, rolesToRemove)); return true; } }
public void muteUser(GuildWrapper guild, Member member) { if (guild == null || member == null) return; if (guild.getMutedRole() != null) guild.getGuild().getController().addSingleRoleToMember(member, guild.getMutedRole()).queue(); }
public void unmuteUser(GuildWrapper guild, Member member) { if (guild == null || member == null) return; if (guild.getMutedRole() != null && member.getRoles().contains(guild.getMutedRole())) guild.getGuild().getController().removeSingleRoleFromMember(member, guild.getMutedRole()).queue(); } }
public void run() { try { while (!Launcher.isBeingKilled) { final RoleModifyTask roleToModify = itemsToDelete.take(); if (roleToModify != null) { Guild guild = roleToModify.getRole().getGuild(); Member member = guild.getMember(roleToModify.getUser()); Role role = roleToModify.getRole(); if (member == null) { continue; } if (PermissionUtil.canInteract(guild.getSelfMember(), role)) { if (roleToModify.isAdd()) { guild.getController().addRolesToMember(member, role).complete(); } else { guild.getController().removeRolesFromMember(member, role).complete(); } } } } } catch (InterruptedException ignored) { } finally { processTerminated = true; } }
private void run(AvaIre avaire, ReactionActionEntity entity) { Guild guild = avaire.getShardManager().getGuildById(entity.guildId); if (guild == null) { return; } Member member = guild.getMemberById(entity.userId); if (member == null) { return; } Role role = guild.getRoleById(entity.roleId); if (role == null) { return; } switch (entity.type) { case ADD: if (RoleUtil.hasRole(member, role)) { return; } guild.getController().addRolesToMember(member, role).queue(); break; case REMOVE: if (!RoleUtil.hasRole(member, role)) { return; } guild.getController().removeRolesFromMember(member, role).queue(); break; } }
private void _mutateRole(Role role, Member member, boolean adding) { if (PermissionUtil.canInteract(role.getGuild().getSelfMember(), role)) { if (adding) { for (Role memberRole : member.getRoles()) { if (memberRole.getId().equals(role.getId())) { return; } } role.getGuild().getController().addRolesToMember(member, role).complete(); } else { boolean hasRole = false; for (Role memberRole : member.getRoles()) { if (memberRole.getId().equals(role.getId())) { hasRole = true; break; } } if (!hasRole) { return; } role.getGuild().getController().removeRolesFromMember(member, role).complete(); } } else { this.success = false; } } }
if (!RoleUtil.hasRole(member, autorole)) { updatedUsers++; guild.getController().addSingleRoleToMember(member, autorole) .queue();
@Override public void onTrackEnd(AudioPlayer aplayer, AudioTrack atrack, AudioTrackEndReason reason) { GuildWrapper wrapper = FlareBotManager.instance().getGuild(player.getGuildId()); if (wrapper == null) return; // No song on next if (player.getPlaylist().isEmpty()) { FlareBotManager.instance().getLastActive().put(Long.parseLong(player.getGuildId()), System.currentTimeMillis()); } VoteUtil.remove(SkipCommand.getSkipUUID(), wrapper.getGuild()); if (wrapper.isSongnickEnabled()) { if (GuildUtils.canChangeNick(player.getGuildId())) { Guild c = wrapper.getGuild(); if (c == null) { wrapper.setSongnick(false); } else { if (player.getPlaylist().isEmpty()) c.getController().setNickname(c.getSelfMember(), null).queue(); } } else { if (!GuildUtils.canChangeNick(player.getGuildId())) { MessageUtils.sendPM(Getters.getGuildById(player.getGuildId()).getOwner().getUser(), "FlareBot can't change it's nickname so SongNick has been disabled!"); } } } }
private void handleBan(CommandMessage context, Guild.Ban ban, String[] args) { String reason = args.length == 0 ? "No reason was given." : String.join(" ", args); context.getGuild().getController().unban(ban.getUser()).queue(aVoid -> { ModlogAction modlogAction = new ModlogAction( ModlogType.UNBAN, context.getAuthor(), ban.getUser(), reason ); Modlog.log(avaire, context, modlogAction); context.makeSuccess(context.i18n("success")) .set("target", ban.getUser().getName() + "#" + ban.getUser().getDiscriminator()) .set("reason", reason) .queue(ignoreMessage -> context.delete().queue(null, RestActionUtil.ignore)); }, throwable -> context.makeWarning(context.i18n("failedToUnban")) .set("target", ban.getUser().getName() + "#" + ban.getUser().getDiscriminator()) .set("error", throwable.getMessage()) .queue()); } }
private boolean banUserById(AvaIre avaire, Command command, CommandMessage context, long userId, String[] args, boolean soft) { String reason = generateReason(args); context.getGuild().getController().ban(String.valueOf(userId), soft ? 0 : 7, String.format("%s - %s#%s (%s)", reason, context.getAuthor().getName(), context.getAuthor().getDiscriminator(), context.getAuthor().getId() )).queue(aVoid -> { User user = avaire.getShardManager().getUserById(userId); if (user != null) { Modlog.log(avaire, context, new ModlogAction( soft ? ModlogType.SOFT_BAN : ModlogType.BAN, context.getAuthor(), user, reason )); } else { Modlog.log(avaire, context, new ModlogAction( soft ? ModlogType.SOFT_BAN : ModlogType.BAN, context.getAuthor(), userId, reason )); } context.makeSuccess(context.i18n("success")) .set("target", userId) .set("reason", reason) .queue(ignoreMessage -> context.delete().queue(null, RestActionUtil.ignore)); }, throwable -> context.makeWarning(context.i18n("failedToBan")) .set("target", userId) .set("error", throwable.getMessage()) .queue()); return true; }
private boolean kickUser(CommandMessage context, Member user, String[] args) { String reason = generateMessage(args); String originalVoiceChannelName = user.getVoiceState().getChannel().getName(); String originalVoiceChannelId = user.getVoiceState().getChannel().getId(); context.getGuild().getController().createVoiceChannel("kick-" + user.getUser().getId()).queue(channel -> context.getGuild().getController().moveVoiceMember(user, (VoiceChannel) channel) .queue(empty -> channel.delete().queue((Consumer<Void>) aVoid -> { Modlog.log(avaire, context, new ModlogAction( ModlogType.VOICE_KICK, context.getAuthor(), user.getUser(), originalVoiceChannelName + " (ID: " + originalVoiceChannelId + ")\n" + reason ) ); context.makeSuccess(context.i18n("message")) .set("target", user.getUser().getName() + "#" + user.getUser().getDiscriminator()) .set("voiceChannel", originalVoiceChannelName) .set("reason", reason) .queue(ignoreMessage -> context.delete().queue(null, RestActionUtil.ignore)); }, RestActionUtil.ignore) ) ); return true; }
private boolean kickUser(CommandMessage context, Member user, String[] args) { String reason = generateMessage(args); ModlogAction modlogAction = new ModlogAction( ModlogType.KICK, context.getAuthor(), user.getUser(), reason ); String caseId = Modlog.log(avaire, context, modlogAction); Modlog.notifyUser(user.getUser(), context.getGuild(), modlogAction, caseId); context.getGuild().getController().kick(user, String.format("%s - %s#%s (%s)", reason, context.getAuthor().getName(), context.getAuthor().getDiscriminator(), context.getAuthor().getId() )).queue(aVoid -> { context.makeSuccess(context.i18n("success")) .set("target", user.getUser().getName() + "#" + user.getUser().getDiscriminator()) .set("reason", reason) .queue(ignoreMessage -> context.delete().queue(null, RestActionUtil.ignore)); }, throwable -> context.makeWarning(context.i18n("error")) .set("target", user.getUser().getName() + "#" + user.getUser().getDiscriminator()) .set("error", throwable.getMessage()) .queue() ); return true; }
private boolean banMemberOfServer(AvaIre avaire, Command command, CommandMessage context, User user, String[] args, boolean soft) { if (userHasHigherRole(user, context.getMember())) { return command.sendErrorMessage(context, context.i18n("higherRole")); } if (!context.getGuild().getSelfMember().canInteract(context.getGuild().getMember(user))) { return sendErrorMessage(context, context.i18n("userHaveHigherRole", user.getAsMention())); } String reason = generateReason(args); ModlogAction modlogAction = new ModlogAction( soft ? ModlogType.SOFT_BAN : ModlogType.BAN, context.getAuthor(), user, reason ); String caseId = Modlog.log(avaire, context, modlogAction); Modlog.notifyUser(user, context.getGuild(), modlogAction, caseId); context.getGuild().getController().ban(user, soft ? 0 : 7, String.format("%s - %s#%s (%s)", reason, context.getAuthor().getName(), context.getAuthor().getDiscriminator(), context.getAuthor().getId() )).queue(aVoid -> { context.makeSuccess(context.i18n("success")) .set("target", user.getName() + "#" + user.getDiscriminator()) .set("reason", reason) .queue(); }, throwable -> context.makeWarning(context.i18n("failedToBan")) .set("target", user.getName() + "#" + user.getDiscriminator()) .set("error", throwable.getMessage()) .queue()); return true; }