diff --git a/src/main/java/net/dv8tion/jda/api/EmbedBuilder.java b/src/main/java/net/dv8tion/jda/api/EmbedBuilder.java index 9c3424c486..7e46bed9cb 100644 --- a/src/main/java/net/dv8tion/jda/api/EmbedBuilder.java +++ b/src/main/java/net/dv8tion/jda/api/EmbedBuilder.java @@ -62,21 +62,15 @@ public class EmbedBuilder */ public EmbedBuilder() { } + /** + * Creates an EmbedBuilder using fields from an existing builder + * + * @param builder + * the existing builder + */ public EmbedBuilder(@Nullable EmbedBuilder builder) { - if (builder != null) - { - setDescription(builder.description.toString()); - this.fields.addAll(builder.fields); - this.url = builder.url; - this.title = builder.title; - this.timestamp = builder.timestamp; - this.color = builder.color; - this.thumbnail = builder.thumbnail; - this.author = builder.author; - this.footer = builder.footer; - this.image = builder.image; - } + copyFrom(builder); } /** @@ -87,20 +81,7 @@ public EmbedBuilder(@Nullable EmbedBuilder builder) */ public EmbedBuilder(@Nullable 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()); - } + copyFrom(embed); } /** @@ -149,6 +130,56 @@ public EmbedBuilder clear() return this; } + /** + * Copies the data from the given builder into this builder. + *
All the parts of the given builder will be applied to this one. + * + * @param builder + * the existing builder + */ + public void copyFrom(@Nullable EmbedBuilder builder) + { + if (builder != null) + { + setDescription(builder.description.toString()); + this.clearFields(); + this.fields.addAll(builder.fields); + this.url = builder.url; + this.title = builder.title; + this.timestamp = builder.timestamp; + this.color = builder.color; + this.thumbnail = builder.thumbnail; + this.author = builder.author; + this.footer = builder.footer; + this.image = builder.image; + } + } + + /** + * Copies the data from the given embed into this builder. + *
All the parts of the given embed will be applied to this builder. + * + * @param embed + * the existing embed + */ + public void copyFrom(@Nullable MessageEmbed embed) + { + if(embed != null) + { + setDescription(embed.getDescription()); + this.clearFields(); + this.fields.addAll(embed.getFields()); + 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(); + } + } + /** * Checks if the given embed is empty. Empty embeds will throw an exception if built *