package net.romvoid.crashbot.file; import java.awt.Color; import java.net.URI; import java.time.Instant; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.entities.TextChannel; public class Embeds { private static final String SOLUTION_FOOTER = "Solutions are provided on a best-attempt basis and are not guaranteed"; /** * Make crashlogWithSolutionEmbed. * * @param channel the channel * @param message the message * @param filename the filename * @param url the URL * @param fix the fix * @return the embed builder */ public static EmbedBuilder crashlogWithSolutionEmbed(TextChannel channel, Message message, String filename, URI url, String fix) { String user = message.getAuthor().getName() + "#" + message.getAuthor().getDiscriminator(); EmbedBuilder embedBuilder = new EmbedBuilder(); embedBuilder.setColor(Color.GREEN); embedBuilder.setTitle("Crash Report Utility"); embedBuilder.setDescription("`Links do not expire`"); embedBuilder.addField(user + "'s Crash Log", "[" + filename + "](" + url + ")", false); embedBuilder.addField("Possible Fixes", "`" + fix + "`", false); embedBuilder.setFooter(SOLUTION_FOOTER + "\nCrash-Log Service for " + channel.getGuild().getName()); embedBuilder.setTimestamp(Instant.now()); return embedBuilder; } /** * Make crashlogOnlyEmbed. * * @param channel the channel * @param message the message * @param filename the filename * @param url the URL * @param fix the fix * @return the embed builder */ public static EmbedBuilder crashlogOnlyEmbed(TextChannel channel, Message message, String filename, URI url) { String user = message.getAuthor().getName() + "#" + message.getAuthor().getDiscriminator(); EmbedBuilder embedBuilder = new EmbedBuilder(); embedBuilder.setColor(Color.cyan); embedBuilder.setTitle("Crash Report Utility"); embedBuilder.setDescription("`Links do not expire`"); embedBuilder.addField(user + "'s Crash Log", "[" + filename + "](" + url + ")", false); embedBuilder.setFooter("Crash-Log Service for " + channel.getGuild().getName()); embedBuilder.setTimestamp(Instant.now()); return embedBuilder; } /** * Make crashlogNotSupportedEmbed. * * @param channel the channel * @param message the message * @param filename the filename * @param url the URL * @param version the version * @return the embed builder */ public static EmbedBuilder crashlogNotSupportedEmbed(TextChannel channel, Message message, String filename, URI url, String version) { String user = message.getAuthor().getName() + "#" + message.getAuthor().getDiscriminator(); EmbedBuilder embedBuilder = new EmbedBuilder(); embedBuilder.setColor(Color.RED); embedBuilder.setTitle("Crash Report Utility"); embedBuilder.setDescription("`Links do not expire`"); embedBuilder.addField(user + "'s Crash Log", "[" + filename + "](" + url + ")", false); embedBuilder.addField("Version Not Supported","`" + version + "` is no longer supported." + "\nYour URL is still provided in the case any community members may know a fix", false); embedBuilder.setFooter(channel.getGuild().getName()); embedBuilder.setTimestamp(Instant.now()); return embedBuilder; } /** * Make crashlogWithSolutionEmbed. * * @param channel the channel * @param message the message * @param filename the filename * @param url the URL * @param fix the fix * @return the embed builder */ public static EmbedBuilder crashlogWithSolutionEmbed(TextChannel channel, Message message, String url, String fix) { String user = message.getAuthor().getName() + "#" + message.getAuthor().getDiscriminator(); EmbedBuilder embedBuilder = new EmbedBuilder(); embedBuilder.setColor(Color.GREEN); embedBuilder.setTitle("Crash Report Utility"); embedBuilder.setDescription("`Links do not expire`"); embedBuilder.addField(user + "'s Crash Log", "[" + url + "](" + url + ")", false); embedBuilder.addField("Possible Fixes", "`" + fix + "`", false); embedBuilder.setFooter(SOLUTION_FOOTER + "\nCrash-Log Service for " + channel.getGuild().getName()); embedBuilder.setTimestamp(Instant.now()); return embedBuilder; } /** * Make crashlogOnlyEmbed. * * @param channel the channel * @param message the message * @param filename the filename * @param url the URL * @param fix the fix * @return the embed builder */ public static EmbedBuilder crashlogOnlyEmbed(TextChannel channel, Message message, String url) { String user = message.getAuthor().getName() + "#" + message.getAuthor().getDiscriminator(); EmbedBuilder embedBuilder = new EmbedBuilder(); embedBuilder.setColor(Color.cyan); embedBuilder.setTitle("Crash Report Utility"); embedBuilder.setDescription("`Links do not expire`"); embedBuilder.addField(user + "'s Crash Log", "[" + url + "](" + url + ")", false); embedBuilder.setFooter("Crash-Log Service for " + channel.getGuild().getName()); embedBuilder.setTimestamp(Instant.now()); return embedBuilder; } /** * Make crashlogNotSupportedEmbed. * * @param channel the channel * @param message the message * @param filename the filename * @param url the URL * @param version the version * @return the embed builder */ public static EmbedBuilder crashlogNotSupportedEmbed(TextChannel channel, Message message, String url, String version) { String user = message.getAuthor().getName() + "#" + message.getAuthor().getDiscriminator(); EmbedBuilder embedBuilder = new EmbedBuilder(); embedBuilder.setColor(Color.RED); embedBuilder.setTitle("Crash Report Utility"); embedBuilder.setDescription("`Links do not expire`"); embedBuilder.addField(user + "'s Crash Log", "[" + url + "](" + url + ")", false); embedBuilder.addField("Version Not Supported","`" + version + "` is no longer supported." + "\nYour URL is still provided in the case any community members may know a fix", false); embedBuilder.setFooter(channel.getGuild().getName()); embedBuilder.setTimestamp(Instant.now()); return embedBuilder; } }