public PlaceholderMessage setFooter(String text, String iconUrl) { builder.setFooter(trimString(text, MessageEmbed.TITLE_MAX_LENGTH), iconUrl); return this; }
private MessageEmbed printQueue(Guild guild, List<OMusic> queue, int page, int maxpage) { EmbedBuilder eb = new EmbedBuilder(); StringBuilder sb = new StringBuilder(); sb.append("There are **").append(queue.size()) .append("** tracks in the queue with an estimated playtime of **") .append(Misc.getDurationString(queue.stream().mapToLong(oMusic -> oMusic.duration).sum())).append("**\n\n"); int start = Math.max(0, (page - 1) * ITEMS_PER_PAGE); int end = Math.min(queue.size() - 1, start + ITEMS_PER_PAGE); for (int i = start; i <= end; i++) { OMusic music = queue.get(i); Member member = guild.getMemberById(music.requestedBy); sb.append("`").append(music.youtubecode).append("`") .append(" | `") .append(Misc.getDurationString(music.duration)) .append("` | ") .append(music.youtubeTitle.substring(0, Math.min(50, music.youtubeTitle.length()))); if (member != null) { sb.append(" | ").append(member.getEffectiveName()); } sb.append("\n"); } eb.setFooter(String.format("Page [%s / %s]", page, maxpage), null); return eb.setDescription(sb.toString()).build(); }
public PlaceholderMessage requestedBy(@Nonnull User user) { build().setFooter(String.format("Requested by %s#%s", user.getName(), user.getDiscriminator() ), user.getEffectiveAvatarUrl()); return this; }
public static EmbedBuilder getEmbed(User user) { return getEmbed().setFooter("Requested by @" + getTag(user), user.getEffectiveAvatarUrl()); }
/** * Builds the "Thanks for Voting" message with the given title, * and the given amount of vote points for the user. * * @param title The title that should be used for the message. * @param points The amounts of points that should be displayed in the message. * @return The JDA message embed object with the thanks for voting message. */ public MessageEmbed buildThanksForVotingMessage(@Nonnull String title, int points) { return MessageFactory.createEmbeddedBuilder() .setColor(Color.decode("#E91E63")) .setTitle(title, "https://discordbots.org/bot/avaire") .setFooter("Don't want to receive messages when you vote? use \"!voteopt out\"", null) .setDescription(String.format( "Thanks for voting for [AvaIre](https://discordbots.org/bot/avaire)! It's really appreciated ❤" + "\nYou now have **%s** vote points, rewards for vote points is coming soon! <a:lurk:425394751357845506>" + "\nYou now also have access to the `!volume` and `!default-volume` commands for the next 12 hours on servers you have permission to run them on, you can also save up your vote points to buy special rank backgrounds using the `!backgrounds` command.", points)) .build(); }
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(); }
private MessageEmbed printVersion(MessageChannel channel, ProgramVersion version, SimpleRank rank) { EmbedBuilder b = new EmbedBuilder(); OBotVersion dbVersion = CBotVersions.findBy(version); if (!rank.isAtLeast(SimpleRank.BOT_ADMIN) && dbVersion.published == 0) { return null; } List<OBotVersionChange> changes = CBotVersionChanges.getChangesFor(dbVersion.id); if (changes.isEmpty()) { return null; } StringBuilder desc = new StringBuilder(); OBotVersionChange.ChangeType lastType = null; for (OBotVersionChange change : changes) { if (!change.changeType.equals(lastType)) { lastType = change.changeType; desc.append(String.format("\n**%s %s**\n", lastType.getEmoji(), lastType.getTitle().toUpperCase())); } desc.append(String.format(" • %s\n", change.description)); } b.setTitle("[" + version.toString() + "] Changelog " + (dbVersion.published == 0 ? Emojibet.WARNING + " Still being worked on!" : ""), null); b.setDescription(desc.toString()); b.setFooter(String.format("I'd love to hear your feedback, feel free to join %sdiscord", DisUtil.getCommandPrefix(channel)), channel.getJDA().getSelfUser().getAvatarUrl()); return b.build(); } }
public PlaceholderMessage requestedBy(@Nonnull Member member) { if (member.getNickname() == null) { return requestedBy(member.getUser()); } build().setFooter(String.format("Requested by %s (%s#%s)", member.getNickname(), member.getUser().getName(), member.getUser().getDiscriminator() ), member.getUser().getEffectiveAvatarUrl()); return this; }
@Override public boolean onCommand(CommandMessage context, String[] args) { RequestFactory.makeGET("https://i.imgur.com/ZupgGkI.jpg") .send((Consumer<Response>) response -> { ResponseBody body = response.getResponse().body(); if (body == null) { return; } context.getChannel().sendFile(body.byteStream(), "just-monika.jpg", new MessageBuilder().setEmbed( new EmbedBuilder() .setImage("attachment://just-monika.jpg") .setDescription("Just Monika") .setFooter("Just Monika", null) .build() ).build() ).queue(); }); return 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); b.setFooter(guild.getSelfMember().getEffectiveName(), channel.getJDA().getSelfUser().getAvatarUrl()); bot.queue.add(channel.sendMessage(b.build())); return "";
/** * Sends the blacklist message to the given channel to let * the user/guild know that they have been added to the * blacklist automatically. * * @param channel The channel that the message should be sent to. * @param expires The carbon time instance for when the blacklist expires. */ public void sendBlacklistMessage(MessageChannel channel, Carbon expires) { channel.sendMessage(MessageFactory.createEmbeddedBuilder() .setColor(Color.decode("#A5306B")) .setTitle("Whoa there!", "https://avairebot.com/") .setFooter("Expires", null) .setTimestamp(expires.getTime().toInstant()) .setDescription("Looks like people on the server are using commands a bit too fast, " + "I've banned the server from using any commands, or earning any XP until everyone " + "clams down a bit.\n" + "The ban expires in " + expires.addSecond().diffForHumans(true) + ", " + "keep in mind repeating the behavior will get the server banned for longer " + "periods of time, eventually if you keep it up the server will be banned " + "from using any of my commands permanently." ).build() ).queue(); }
/** * Sends the blacklist message to the given use in a direct * message to let the user know that they have been added * to the blacklist automatically. * * @param user The user that was blacklisted. * @param expires The carbon time instance for when the blacklist expires. */ public void sendBlacklistMessage(User user, Carbon expires) { user.openPrivateChannel().queue(channel -> { channel.sendMessage(MessageFactory.createEmbeddedBuilder() .setColor(Color.decode("#A5306B")) .setTitle("Whoa there!", "https://avairebot.com/") .setFooter("Expires", null) .setTimestamp(expires.getTime().toInstant()) .setDescription("Looks like you're using commands a bit too fast, I've banned you " + "from using any commands, or earning any XP until you cool down a bit.\n" + "Your ban expires in " + expires.addSecond().diffForHumans(true) + ", " + "keep in mind repeating the behavior will get you banned for longer " + "periods of time, eventually if you keep it up you will be banned " + "from using any of my commands permanently." ).build() ).queue(); }, RestActionUtil.ignore); }
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; }
@Override public void onCommand(User sender, GuildWrapper guild, TextChannel channel, Message msg, String[] args, Member member) { if (guild.getGuildId().equals("226785954537406464") && PerGuildPermissions.isAdmin(sender)) { if (args.length == 0) { channel.sendMessage("You kinda need like.... a message to announce... like yeah...").queue(); return; } Role r = guild.getGuild().getRoleById(320304080926801922L); r.getManager().setMentionable(true).queue(aVoid -> { if (args[0].startsWith("pr:")) { channel.sendMessage(new MessageBuilder().setEmbed(GitHubUtils.getEmbedForPR(args[0].substring(3)) .build()).append(r.getAsMention()).build()).queue(bVoid -> channel.sendMessage("make sure to report any bugs over to be <#242206261767176192> channel " + "and if you need any support we're happy to help over in the <#226786463440699392> " + "channel!").queue() ); } else { String message = msg.getContentRaw(); message = message.substring(message.indexOf(" ") + 1); channel.sendMessage(new MessageBuilder().setContent(r.getAsMention()) .setEmbed(new EmbedBuilder().setTitle("Some announcement thing!").setDescription(message) .setFooter("Announcement by " + member.getEffectiveName(), sender.getEffectiveAvatarUrl()).build()).build()) .complete(); } }); r.getManager().setMentionable(false).queue(); } }
message.setFooter("Case ID #" + caseId, null);
@Override protected void execute(CommandEvent event) { Settings s = event.getClient().getSettingsFor(event.getGuild()); MessageBuilder builder = new MessageBuilder() .append(EMOJI + " **") .append(event.getSelfUser().getName()) .append("** settings:"); TextChannel tchan = s.getTextChannel(event.getGuild()); VoiceChannel vchan = s.getVoiceChannel(event.getGuild()); Role role = s.getRole(event.getGuild()); EmbedBuilder ebuilder = new EmbedBuilder() .setColor(event.getSelfMember().getColor()) .setDescription("Text Channel: "+(tchan==null ? "Any" : "**#"+tchan.getName()+"**") + "\nVoice Channel: "+(vchan==null ? "Any" : "**"+vchan.getName()+"**") + "\nDJ Role: "+(role==null ? "None" : "**"+role.getName()+"**") + "\nRepeat Mode: **"+(s.getRepeatMode() ? "On" : "Off")+"**" + "\nDefault Playlist: "+(s.getDefaultPlaylist()==null ? "None" : "**"+s.getDefaultPlaylist()+"**") ) .setFooter(event.getJDA().getGuilds().size()+" servers | " +event.getJDA().getGuilds().stream().filter(g -> g.getSelfMember().getVoiceState().inVoiceChannel()).count() +" audio connections", null); event.getChannel().sendMessage(builder.setEmbed(ebuilder.build()).build()).queue(); }
@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); }
@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(); }
@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(); } }
eb.setFooter("Source: " + track.getInfo().author, null);