/** * Creates an EmbedBuilder using fields in an existing embed. * * @param embed * the existing embed */ public EmbedBuilder(MessageEmbed embed) { if(embed != null) { setDescription(embed.getDescription()); this.url = embed.getUrl(); this.title = embed.getTitle(); this.timestamp = embed.getTimestamp(); this.color = embed.getColorRaw(); this.thumbnail = embed.getThumbnail(); this.author = embed.getAuthor(); this.footer = embed.getFooter(); this.image = embed.getImage(); if (embed.getFields() != null) fields.addAll(embed.getFields()); } }
/** * Converts an {@link MessageEmbed} into a String. * This will first start with the title in bold. then adds the description. * Then puts in all the fields with the title fallowed by the value. The finally the footer italicized. * * @param embed The {@link MessageEmbed} to convert * @return The String containing embed data */ public static String embedToText(MessageEmbed embed) { StringBuilder sb = new StringBuilder(); if (embed.getTitle() != null) sb.append("**").append(embed.getTitle()).append("**: "); if (embed.getDescription() != null) sb.append(embed.getDescription()).append(" "); for (MessageEmbed.Field field : embed.getFields()) { sb.append("**").append(field.getName()).append("**: ").append(field.getValue()).append(" "); } if (embed.getFooter() != null) sb.append("*").append(embed.getFooter().getText()).append("*"); return sb.toString(); }
@Test public void testFieldsAreCreatedCorrectly() { PlaceholderMessage message = createWith(null); message.addField("Name", "Some Value", false); MessageEmbed embed = message.buildEmbed(); assertEquals(1, embed.getFields().size()); assertEquals("Name", embed.getFields().get(0).getName()); assertEquals("Some Value", embed.getFields().get(0).getValue()); assertEquals(false, embed.getFields().get(0).isInline()); }
@Test public void testMultipleFieldsAreCreatedCorrectly() { PlaceholderMessage message = createWith(null); message.addField("Stuff 1", "Some Value", false); message.addField("Stuff 2", "Value Some", true); MessageEmbed embed = message.buildEmbed(); assertEquals(2, embed.getFields().size()); assertEquals("Stuff 1", embed.getFields().get(0).getName()); assertEquals("Some Value", embed.getFields().get(0).getValue()); assertEquals(false, embed.getFields().get(0).isInline()); assertEquals("Stuff 2", embed.getFields().get(1).getName()); assertEquals("Value Some", embed.getFields().get(1).getValue()); assertEquals(true, embed.getFields().get(1).isInline()); }
for (MessageEmbed.Field field : embed.getFields()) { if (!field.getName().equalsIgnoreCase("Reason")) { embeddedBuilder.addField(field);