/** * Copies the provided Field into a new Field for this builder. * <br>For additional documentation, see {@link #addField(String, String, boolean)} * * @param field * the field object to add * * @return the builder after the field has been added */ public EmbedBuilder addField(MessageEmbed.Field field) { return field == null ? this : addField(field.getName(), field.getValue(), field.isInline()); }
public PlaceholderMessage addField(MessageEmbed.Field field) { builder.addField(field); return this; }
public PlaceholderMessage addField(String name, String value, boolean inline) { builder.addField( trimString(name, MessageEmbed.TITLE_MAX_LENGTH), trimString(value, MessageEmbed.VALUE_MAX_LENGTH), inline ); return this; }
public static MessageEmbed buildCase(Guild guild, OModerationCase modcase) { EmbedBuilder b = new EmbedBuilder(); b.setTitle(String.format("%s | case #%s", modcase.punishment.getKeyword(), modcase.id), null); b.setColor(modcase.punishment.getColor()); b.addField("User", modcase.userName + "\n" + CUser.getCachedDiscordId(modcase.userId) + "\n", true); b.addField("Moderator", modcase.moderatorName + "\n" + CUser.getCachedDiscordId(modcase.moderatorId), true); b.addField("Issued", banDateFormat.format(modcase.createdAt), true); if (modcase.expires != null) { b.addField("Expires", modcase.expires.toString(), true); } String reason = modcase.reason; if (reason == null || reason.isEmpty()) { reason = "Reason not set! use `" + DisUtil.getCommandPrefix(guild) + "case reason " + modcase.id + " <message>` to set the reason"; } b.addField("Reason", reason, false); return b.build(); } }
private MessageEmbed getCurrencyRatesEmbed(User sender, CurrencyComparison c) { EmbedBuilder builder = MessageUtils.getEmbed(sender); builder.setColor(Color.CYAN) .setDescription("Currency Conversion Rates") .addField("From", c.getBase(), true) .addField("To", c.getTo(), true) .addField("Rate", ConvertCommand.DECIMAL_FORMAT.format(c.getRate()), false); return builder.build(); }
private MessageEmbed getCurrencyConversionEmbed(User sender, CurrencyComparison c, Double from) { EmbedBuilder builder = MessageUtils.getEmbed(sender); builder.setColor(Color.CYAN) .setDescription("Currency Conversion") .addField(c.getBase(), DECIMAL_FORMAT.format(from), true) .addField(c.getTo(), DECIMAL_FORMAT.format(from * c.getRate()), true); return builder.build(); }
@Override public void onCommand(User sender, GuildWrapper guild, TextChannel channel, Message message, String[] args, Member member) { EmbedBuilder builder = MessageUtils.getEmbed(sender); builder.setColor(Color.CYAN); builder.setDescription("Thank for you taking the time to see how you can donate to the project! This project relies heavily upon user donations so every little helps! \uD83D\uDE0A"); builder.addField("Patreon", "The most common way to donate is through our [Patreon page](https://www.patreon.com/flarebot)! Through here you can donate the amount you want and also get rewarded for it!", false); builder.addField("PayPal", "If you cannot donate through Patreon or don't like the idea of a monthly subscription then this option is for you! Simply join our [support server](" + Constants.INVITE_URL + ") and our amazing staff will assist you in doing this!\n\nShould you want to donate anonymously or you don't want to receive a reward, you can simply send money to `walshydev@gmail.com` via PayPal to donate!", false); channel.sendMessage(builder.build()).queue(); }
public static void logEG(String eg, Command command, Guild guild, User user) { EmbedBuilder builder = new EmbedBuilder().setTitle("Found `" + eg + "`") .addField("Guild", guild.getId() + " (`" + guild.getName() + "`) ", true) .addField("User", user.getAsMention() + " (`" + user.getName() + "#" + user.getDiscriminator() + "`)", true) .setTimestamp(LocalDateTime.now(Clock.systemUTC())); if (command != null) builder.addField("Command", command.getCommand(), true); Constants.getEGLogChannel().sendMessage(builder.build()).queue(); }
private void handleChannelCreate(GuildWrapper wrapper, Channel channel) { if (cannotHandle(wrapper, ModlogEvent.CHANNEL_CREATE)) return; AuditLogEntry entry = wrapper.getGuild().getAuditLogs().complete().get(0); EmbedBuilder builder = new EmbedBuilder() .addField("Type", channel.getType().name().toLowerCase(), true) .addField("Name", channel.getName(), true); if (channel.getParent() != null) { builder.addField("Category", channel.getParent().getName(), true); } ModlogHandler.getInstance().postToModlog(wrapper, ModlogEvent.CHANNEL_CREATE, entry.getUser(), builder); }
private void handleChannelDelete(GuildWrapper wrapper, Channel channel) { if (wrapper == null) return; if (cannotHandle(wrapper, ModlogEvent.CHANNEL_DELETE)) return; AuditLogEntry entry = wrapper.getGuild().getAuditLogs().complete().get(0); EmbedBuilder builder = new EmbedBuilder() .addField("Type", channel.getType().name().toLowerCase(), true) .addField("Name", channel.getName(), true); if (channel.getParent() != null) { builder.addField("Category", channel.getParent().getName(), true); } ModlogHandler.getInstance().postToModlog(wrapper, ModlogEvent.CHANNEL_DELETE, entry.getUser(), builder); }
public boolean addVote(Vote vote, User user) { if (allowedUsers != null && voteMessage != null && !allowedUsers.contains(user.getIdLong())) return false; if (!users.contains(user.getIdLong())) { if (vote == Vote.NO) noVotes++; else yesVotes++; if (allowedUsers.size() == totalVotes()) { VoteUtil.finishNow(id, Getters.getGuildById(voteMessage.getId())); return true; } users.add(user.getIdLong()); if (voteMessage != null) { votesEmbed.clearFields(); votesEmbed.addField("Yes", String.valueOf(yesVotes), true); votesEmbed.addField("No", String.valueOf(noVotes), true); voteMessage.editMessage(votesEmbed.build()).queue(); } return true; } else return false; }
private static MessageEmbed makeEmbedConfig(Guild guild, int activePage) { EmbedBuilder b = new EmbedBuilder(); List<String> keys = DefaultGuildSettings.getWritableKeys(); Collections.sort(keys); int maxPage = (int) Math.ceil((double) keys.size() / (double) CFG_PER_PAGE); activePage = Math.max(0, Math.min(maxPage - 1, activePage - 1)); int endIndex = activePage * CFG_PER_PAGE + CFG_PER_PAGE; int elements = 0; for (int i = activePage * CFG_PER_PAGE; i < keys.size() && i < endIndex; i++) { String key = keys.get(i); b.addField(key.toLowerCase(), GuildSettings.get(guild.getIdLong()).getDisplayValue(guild, key), true); elements++; } if (elements % 3 == 2) { b.addBlankField(true); } String commandPrefix = DisUtil.getCommandPrefix(guild); b.setFooter("Page " + (activePage + 1) + " / " + maxPage + " | Press the buttons for other pages", null); b.setDescription(String.format("To see more details about a setting:\n" + "`%1$scfg settingname`\n\n", commandPrefix)); b.setTitle("Current Settings for " + guild.getName() + " [" + (1 + activePage) + " / " + maxPage + "]", null); return b.build(); }
@Override public void onCommand(User sender, GuildWrapper guild, TextChannel channel, Message message, String[] args, Member member) { String betaInfo = FormatUtils.formatCommandPrefix(guild, FlareBot.getCommandManager().getCommands() .stream() .filter(Command::isBetaTesterCommand) .map(c -> "`{%}" + c.getCommand() + "` - " + c.getDescription()) .collect(Collectors.joining("\n"))); String betaMessage = guild.hasBetaAccess() ? "Thank you for being apart of our beta program! Please report any bugs or give us suggestions over at the [support discord](" + Constants.INVITE_URL + ")!" : "Listed below are the commands you can gain access to by being a part of our beta program! To join the beta program, you will either need to win " + "beta access through a giveaway (Make sure you are in the [support server](" + Constants.INVITE_URL + ") to hear of these!) or you can become apart of the " + "Donator tier or higher on our [patreon page](https://www.patreon.com/flarebot)!"; EmbedBuilder builder = MessageUtils.getEmbed(sender); builder.setColor(Color.CYAN); builder.setDescription(betaMessage); builder.addField("Beta Commands", betaInfo, false); channel.sendMessage(builder.build()).queue(); }
/** * This is to handle "multi-selection commands" for example the info and stats commands which take one or more * arguments and get select data from an enum */ public static void handleMultiSelectionCommand(User sender, TextChannel channel, String[] args, MultiSelectionContent<String, String, Boolean>[] providedContent) { String search = MessageUtils.getMessage(args); String[] fields = search.split(","); EmbedBuilder builder = MessageUtils.getEmbed(sender).setColor(Color.CYAN); boolean valid = false; for (String string : fields) { String s = string.trim(); for (MultiSelectionContent<String, String, Boolean> content : providedContent) { if (s.equalsIgnoreCase(content.getName()) || s.replaceAll("_", " ") .equalsIgnoreCase(content.getName())) { builder.addField(content.getName(), content.getReturn(), content.isAlign()); valid = true; } } } if (valid) channel.sendMessage(builder.build()).queue(); else MessageUtils.sendErrorMessage("That piece of information could not be found!", channel); }
public static void updateSongMessage(User sender, Message message, TextChannel channel) { Track track = FlareBot.instance().getMusicManager().getPlayer(channel.getGuild().getId()).getPlayingTrack(); if (track == null) return; EmbedBuilder eb = MessageUtils.getEmbed(sender) .addField("Current Song", getLink(track), false) .setThumbnail("https://img.youtube.com/vi/" + track.getTrack().getIdentifier() + "/hqdefault.jpg"); if (track.getTrack().getInfo().isStream) eb.addField("Amount Played", "Issa livestream ;)", false); else eb.addField("Amount Played", GeneralUtils.getProgressBar(track), true) .addField("Time", String.format("%s / %s", FormatUtils.formatDuration(track.getTrack().getPosition()), FormatUtils.formatDuration(track.getTrack().getDuration())), false); message.editMessage(eb.build()).queue(); }
public static void sendUsage(Command command, TextChannel channel, User user, String[] args) { String title = capitalize(command.getCommand()) + " Usage"; List<String> usages = UsageParser.matchUsage(command, args); String usage = FormatUtils.formatCommandPrefix(channel.getGuild(), usages.stream().collect(Collectors.joining("\n"))); EmbedBuilder b = getEmbed(user).setTitle(title, null).setDescription(usage).setColor(Color.pink); if (command.getExtraInfo() != null) { b.addField("Extra Info", command.getExtraInfo(), false); } if (command.getPermission() != null) { b.addField("Permission", "`" + command.getPermission() + "`\n\n" + "Default Permission: " + command.getPermission().isDefaultPerm() + "\n" + "Beta Command: " + command.isBetaTesterCommand(), false); } channel.sendMessage(b.build()).queue(); }
public EmbedBuilder getEventEmbed(User user, User responsible, String reason) { if (user == null && responsible == null) { throw new IllegalArgumentException("User or the responsible user has to be not-null! Event: " + this.getName()); } EmbedBuilder eb = new EmbedBuilder() .setAuthor(WordUtils.capitalize(getTitle()), null, user == null ? responsible.getEffectiveAvatarUrl() : user.getEffectiveAvatarUrl()); if (user != null) eb.addField("User", user.getAsMention() + " | " + MessageUtils.getTag(user), true); eb.setFooter("User ID: " + (user == null ? responsible.getId() : user.getId()), null) .setTimestamp(OffsetDateTime.now(ZoneOffset.UTC)); if (responsible != null) { eb.addField("Responsible", MessageUtils.getTag(responsible), true); } if (showReason) { eb.addField("Reason", (reason == null || reason.isEmpty() ? "No Reason Given!" : reason), true); } eb.setColor(color); // Custom event changes. if (this == ModlogEvent.FLAREBOT_PURGE) eb.setAuthor(user != null ? "User Purge" : "Chat Purge", null, user == null ? responsible.getEffectiveAvatarUrl() : user.getEffectiveAvatarUrl()); return eb; }
private void handleSendGuildLeaveWebhook(Guild guild) { AvaIre.getLogger().info(ConsoleColor.format( "%redLeft guild with an ID of " + guild.getId() + " called: " + guild.getName() + "%reset" )); if (!avaire.areWeReadyYet()) { return; } Metrics.guilds.dec(); Metrics.geoTracker.labels(guild.getRegion().getName()).dec(); TextChannel channel = avaire.getShardManager().getTextChannelById(DiscordConstants.ACTIVITY_LOG_CHANNEL_ID); if (channel == null) { return; } channel.sendMessage( new EmbedBuilder() .setColor(Color.decode("#EF5350")) .setTimestamp(Instant.now()) .addField("Removed", String.format("%s (ID: %s)", guild.getName(), guild.getId() ), false) .build() ).queue(null, RestActionUtil.ignore); }
@Override public void onCommand(User sender, GuildWrapper guild, TextChannel channel, Message message, String[] args, Member member) { if (args.length == 0) { EmbedBuilder bld = MessageUtils.getEmbed(sender).setColor(Color.CYAN) .setThumbnail(MessageUtils.getAvatar(channel.getJDA().getSelfUser())); bld.setDescription("FlareBot v" + FlareBot.instance().getVersion() + " stats"); for (MultiSelectionContent<String, String, Boolean> content : Content.values) { bld.addField(content.getName(), content.getReturn(), content.isAlign()); } channel.sendMessage(bld.build()).queue(); } else GeneralUtils.handleMultiSelectionCommand(sender, channel, args, Content.values); }
@Override public void onCommand(User sender, GuildWrapper guild, TextChannel channel, Message message, String[] args, Member member) { if (args.length == 0) { EmbedBuilder bld = MessageUtils.getEmbed() .setThumbnail(MessageUtils.getAvatar(channel.getJDA().getSelfUser())) .setFooter("Made by Walshy#9060 and BinaryOverload#2382", channel.getJDA().getSelfUser().getEffectiveAvatarUrl()); bld.setDescription("FlareBot v" + FlareBot.getVersion() + " info") .setColor(Color.CYAN); for (Content content : Content.values) { bld.addField(content.getName(), content.getReturn(), content.isAlign()); } channel.sendMessage(bld.build()).queue(); } else GeneralUtils.handleMultiSelectionCommand(sender, channel, args, Content.values); }