public static EmbedBuilder createEmbeddedBuilder() { return new EmbedBuilder(); }
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(); }
private PlaceholderMessage createWith(String description) { return new PlaceholderMessage(new EmbedBuilder(), description); } }
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(); } }
@Override public void onCommand(User sender, GuildWrapper guild, TextChannel channel, Message message, String[] args, Member member) { Player player = FlareBot.instance().getMusicManager().getPlayer(channel.getGuild().getId()); if (player.getPlayingTrack() == null) { MessageUtils.sendErrorMessage("Can't repeat when their is no song to repeat!", channel); } else { Queue<Track> queue = new ConcurrentLinkedQueue<>(); queue.add(player.getPlayingTrack().makeClone()); queue.addAll(player.getPlaylist()); player.getPlaylist().clear(); player.getPlaylist().addAll(queue); channel.sendMessage(new EmbedBuilder().setColor(Color.green).setDescription("The player will now repeat the current track!").build()).queue(); } }
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(); } }
public static EmbedBuilder getEmbed() { if (cachedJDA == null || cachedJDA.getStatus() != JDA.Status.CONNECTED) cachedJDA = flareBot.getClient(); EmbedBuilder defaultEmbed = new EmbedBuilder().setColor(ColorUtils.FLAREBOT_BLUE); // We really need to PR getAuthor and things into EmbedBuilder. if (cachedJDA != null) { defaultEmbed.setAuthor("FlareBot", "https://flarebot.stream", cachedJDA.getSelfUser().getEffectiveAvatarUrl()); } return defaultEmbed.setColor(ColorUtils.FLAREBOT_BLUE); }
@Override public void run() { tc.get().getPermissionOverride(guild.getGuild().getPublicRole()).getManager() .clear(Permission.MESSAGE_WRITE) .queue(); if (guild.getGuild().getSelfMember().hasPermission(tc.get(), Permission.MESSAGE_WRITE)) channel.sendMessage(new EmbedBuilder().setColor(ColorUtils.GREEN) .setDescription("The chat has been unlocked") .build()).queue(); } }.delay(time);
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 auditLog(Config config, Context context) { String content = String.format("[%s] tried invoking: `%s`", context.getEvent().getAuthor().getAsMention(), context.getEvent().getMessage().getContentRaw()); WebhookMessage message = new WebhookMessageBuilder() .addEmbeds(new EmbedBuilder() .setColor(Color.RED) .setDescription(content) .setTimestamp(new Date().toInstant()) .build()) .setUsername("admin log") .build(); WebhookClient client = new WebhookClientBuilder(config.auditWebhook) .build(); client.send(message); }
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); }
@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; } }
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); }
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; }
public Message getNoMusicPlaying(JDA jda) { Guild guild = guild(jda); return new MessageBuilder() .setContent(FormatUtil.filter(manager.getBot().getConfig().getSuccess()+" **Now Playing...**")) .setEmbed(new EmbedBuilder() .setTitle("No music playing") .setDescription(JMusicBot.STOP_EMOJI+" "+FormatUtil.progressBar(-1)+" "+FormatUtil.volumeIcon(audioPlayer.getVolume())) .setColor(guild.getSelfMember().getColor()) .build()).build(); }
@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 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(); } }