public GuildUpdateOwnerEvent(JDA api, long responseNumber, Guild guild, Member oldOwner) { super(api, responseNumber, guild, oldOwner, guild.getOwner(), IDENTIFIER); }
/** * Checks if one given Member can interact with a 2nd given Member - in a permission sense (kick/ban/modify perms). * This only checks the Role-Position and does not check the actual permission (kick/ban/manage_role/...) * * @param issuer * The member that tries to interact with 2nd member * @param target * The member that is the target of the interaction * * @throws IllegalArgumentException * if any of the provided parameters is {@code null} * or the provided entities are not from the same guild * * @return True, if issuer can interact with target in guild */ public static boolean canInteract(Member issuer, Member target) { Checks.notNull(issuer, "Issuer Member"); Checks.notNull(target, "Target Member"); Guild guild = issuer.getGuild(); if (!guild.equals(target.getGuild())) throw new IllegalArgumentException("Provided members must both be Member objects of the same Guild!"); if(guild.getOwner().equals(issuer)) return true; if(guild.getOwner().equals(target)) return false; List<Role> issuerRoles = issuer.getRoles(); List<Role> targetRoles = target.getRoles(); return !issuerRoles.isEmpty() && (targetRoles.isEmpty() || canInteract(issuerRoles.get(0), targetRoles.get(0))); }
/** * Checks if a given Member can interact with a given Role - in a permission sense (kick/ban/modify perms). * This only checks the Role-Position and does not check the actual permission (kick/ban/manage_role/...) * * @param issuer * The member that tries to interact with the role * @param target * The role that is the target of the interaction * * @throws IllegalArgumentException * if any of the provided parameters is {@code null} * or the provided entities are not from the same guild * * @return True, if issuer can interact with target */ public static boolean canInteract(Member issuer, Role target) { Checks.notNull(issuer, "Issuer Member"); Checks.notNull(target, "Target Role"); Guild guild = issuer.getGuild(); if (!guild.equals(target.getGuild())) throw new IllegalArgumentException("Provided Member issuer and Role target must be from the same Guild!"); if(guild.getOwner().equals(issuer)) return true; List<Role> issuerRoles = issuer.getRoles(); return !issuerRoles.isEmpty() && canInteract(issuerRoles.get(0), target); }
if (!getGuild().getOwner().equals(getGuild().getSelfMember())) throw new PermissionException("The logged in account must be the owner of this Guild to be able to transfer ownership");
if (getGuild().getOwner().equals(member)) throw new HierarchyException("Cannot modify Guild Mute status the Owner of the Guild");
if (getGuild().getOwner().equals(member)) throw new HierarchyException("Cannot modify Guild Deafen status the Owner of the Guild");
private void handle(Throwable e1, GuildMemberJoinEvent event, List<Role> roles) { if (!e1.getMessage().startsWith("Can't modify a role with higher")) { MessageUtils.sendPM(event.getGuild().getOwner().getUser(), "**Could not auto assign a role!**\n" + e1.getMessage()); return; } MessageUtils.sendPM(event.getGuild().getOwner().getUser(), "**Hello!\nI am here to tell you that I could not give the role(s) ```\n" + roles.stream().map(Role::getName).collect(Collectors.joining("\n")) + "\n``` to one of your new users!\n" + "Please move one of the following roles so they are higher up than any of the above: \n```" + event.getGuild().getSelfMember().getRoles().stream() .map(Role::getName) .collect(Collectors.joining("\n")) + "``` in your server's role tab!**"); }
private String parseTag(Guild guild, String tag, String message, User user, TextChannel channel, String[] args) { String parsed = VariableUtils.parseVariables(message, FlareBotManager.instance().getGuild(guild.getId()), channel, user, args); if (message.contains("%user%") || message.contains("%mention%") || message.contains("{%}") || message.contains("%prefix%") || message.contains("%tag%")) { MessageUtils.sendPM(guild.getOwner().getUser(), "Your tag '" + tag + "' contains deprecated variables! Please check the docs at the link below " + "for a list of all the variables you can use!\n" + "https://docs.flarebot.stream/variables"); } // Deprecated values parsed = parsed .replace("%user%", user.getName()) .replace("%mention%", user.getAsMention()) .replace("{%}", String.valueOf(getPrefix(guild))) .replace("%prefix%", String.valueOf(getPrefix(guild))) .replace("%tag%", tag); return parsed; }
owner.put("id", guildById.getOwner().getUser().getId()); owner.put("username", guildById.getOwner().getUser().getName()); owner.put("discriminator", guildById.getOwner().getUser().getDiscriminator()); owner.put("avatar", guildById.getOwner().getUser().getEffectiveAvatarUrl()); guild.put("owner", owner);
if (guild.getOwner().equals(user)) { return SimpleRank.GUILD_OWNER;
tc.getGuild().getOwner().getUser().openPrivateChannel().queue(pc -> { pc.sendMessage("Please give me permission to read message, write messages and embed links in the modlog channel: " + tc.getAsMention()
b.addField("Members", String.format("%s online\n%s in total", online, guild.getMembers().size()), true); b.addField("Channels", String.format("%s text channels\n%s voice channels", guild.getTextChannels().size(), guild.getVoiceChannels().size()), true); b.addField("Created by", String.format("%s\\#%s", guild.getOwner().getUser().getName(), guild.getOwner().getUser().getDiscriminator()), true); b.addField("My prefix", String.format("`%s`", DisUtil.getCommandPrefix(guild)), true); b.addField("Created On", new SimpleDateFormat("dd MMMM yyyy").format(new Date(guild.getCreationTime().toInstant().toEpochMilli())), true);
/** * Try and figure out what type of guild it is * * @param guild the guild to check * @return what category the guild is labeled as */ public GuildCheckResult checkGuild(Guild guild) { int bots = 0; int users = 0; if (MiscUtil.getCreationTime(guild.getOwner().getUser()).isBefore(OffsetDateTime.now().minusDays(BotConfig.GUILD_OWNER_MIN_ACCOUNT_AGE))) { return GuildCheckResult.OWNER_TOO_NEW; } for (Member user : guild.getMembers()) { if (user.getUser().isBot()) { bots++; } users++; } if ((double) bots / users > BotConfig.GUILD_MAX_USER_BOT_RATIO) { return GuildCheckResult.BOT_GUILD; } if (users < BotConfig.GUILD_MIN_USERS) { return GuildCheckResult.TEST_GUILD; } return GuildCheckResult.OKE; }
User owner = event.getGuild().getOwner().getUser();
@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!"); } } } }
@Override public boolean onCommand(CommandMessage context, String[] args) { Guild guild = context.getGuild(); Carbon time = Carbon.createFromOffsetDateTime(guild.getCreationTime()); PlaceholderMessage placeholderMessage = context.makeEmbeddedMessage(getRoleColor(guild.getSelfMember().getRoles()), new MessageEmbed.Field(context.i18n("fields.id"), guild.getId(), true), new MessageEmbed.Field(context.i18n("fields.owner"), guild.getOwner().getUser().getName() + "#" + guild.getOwner().getUser().getDiscriminator(), true), new MessageEmbed.Field(context.i18n("fields.textChannels"), NumberUtil.formatNicely(guild.getTextChannels().size()), true), new MessageEmbed.Field(context.i18n("fields.voiceChannels"), NumberUtil.formatNicely(guild.getVoiceChannels().size()), true), new MessageEmbed.Field(context.i18n("fields.members"), NumberUtil.formatNicely(guild.getMembers().size()), true), new MessageEmbed.Field(context.i18n("fields.roles"), NumberUtil.formatNicely(guild.getRoles().size()), true), new MessageEmbed.Field(context.i18n("fields.region"), guild.getRegion().getName(), true), new MessageEmbed.Field(context.i18n("fields.createdAt"), time.format(context.i18n("timeFormat")) + "\n*About " + shortenDiffForHumans(time) + "*", true) ).setTitle(guild.getName()).setThumbnail(guild.getIconUrl()); if (!guild.getEmotes().isEmpty()) { boolean hasMany = guild.getEmotes().size() > 17; placeholderMessage.addField(new MessageEmbed.Field( context.i18n("fields.emojis", guild.getEmotes().size()), guild.getEmotes().stream() .map(emote -> emote.getName() + (hasMany ? "" : " " + emote.getAsMention())) .collect(Collectors.joining(", ")), true )); } placeholderMessage.requestedBy(context.getMember()).queue(); return true; }
@Override public void onGuildLeave(GuildLeaveEvent event) { Constants.getGuildLogChannel().sendMessage(new EmbedBuilder() .setColor(new Color(244, 23, 23)) .setThumbnail(event.getGuild().getIconUrl()) .setFooter(event.getGuild().getId(), event.getGuild().getIconUrl()) .setTimestamp(OffsetDateTime.now()) .setAuthor(event.getGuild().getName(), null, event.getGuild().getIconUrl()) .setDescription("Guild Deleted: `" + event.getGuild().getName() + "` L :broken_heart:\n" + "Guild Owner: " + (event.getGuild().getOwner() != null ? event.getGuild().getOwner().getUser().getName() : "Non-existent, they had to much L")).build()).queue(); }
.insert(statement -> { statement.set("id", guild.getId()) .set("owner", guild.getOwner().getUser().getId()) .set("name", guild.getName(), true) .set("roles_data", buildRoleData(guild.getRoles()), true)
discordBot.out.sendPrivateMessage(guild.getOwner().getUser(), String.format("[user-event] **%s#%s** left the guild **%s**", user.getName(), user.getDiscriminator(), guild.getName()));
@Override public void onGuildJoin(GuildJoinEvent event) { if (event.getJDA().getStatus() == JDA.Status.CONNECTED && event.getGuild().getSelfMember().getJoinDate().plusMinutes(2).isAfter(OffsetDateTime.now())) { Constants.getGuildLogChannel().sendMessage(new EmbedBuilder() .setColor(new Color(96, 230, 144)) .setThumbnail(event.getGuild().getIconUrl()) .setFooter(event.getGuild().getId(), event.getGuild().getIconUrl()) .setAuthor(event.getGuild().getName(), null, event.getGuild().getIconUrl()) .setTimestamp(event.getGuild().getSelfMember().getJoinDate()) .setDescription("Guild Created: `" + event.getGuild().getName() + "` :smile: :heart:\n" + "Guild Owner: " + event.getGuild().getOwner().getUser().getName() + "\nGuild Members: " + event.getGuild().getMembers().size()).build()).queue(); } }