/** * The overall length of the current EmbedBuilder in displayed characters. * <br>Represents the {@link net.dv8tion.jda.core.entities.MessageEmbed#getLength() MessageEmbed.getLength()} value. * * @return length of the current builder state */ public int length() { int length = description.length(); synchronized (fields) { length = fields.stream().map(f -> f.getName().length() + f.getValue().length()).reduce(length, Integer::sum); } if (title != null) length += title.length(); if (author != null) length += author.getName().length(); if (footer != null) length += footer.getText().length(); return length; }
length += f.getName().length() + f.getValue().length();
.put("name", field.getName()) .put("value", field.getValue()) .put("inline", field.isInline()));
if (!field.getName().equalsIgnoreCase("Reason")) { embeddedBuilder.addField(field); continue;
for (MessageEmbed.Field field : extraFields) { if (field == null) continue; sb.append("**").append(field.getName()).append("**: ").append(field.getValue()).append("\t");
/** * 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 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()); }
@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()); }
/** * 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()); }