Browse Source

Add IEmbed#ToEmbedBuilder extension method

pull/863/head
Alex Gravely 7 years ago
parent
commit
39d072c3f4
1 changed files with 28 additions and 0 deletions
  1. +28
    -0
      src/Discord.Net.Rest/Extensions/EmbedBuilderExtensions.cs

+ 28
- 0
src/Discord.Net.Rest/Extensions/EmbedBuilderExtensions.cs View File

@@ -1,3 +1,5 @@
using System;

namespace Discord
{
public static class EmbedBuilderExtensions
@@ -19,5 +21,31 @@ namespace Discord

public static EmbedBuilder WithAuthor(this EmbedBuilder builder, IGuildUser user) =>
builder.WithAuthor($"{user.Nickname ?? user.Username}#{user.Discriminator}", user.GetAvatarUrl());

public static EmbedBuilder ToEmbedBuilder(this IEmbed embed)
{
if (embed.Type != EmbedType.Rich)
throw new InvalidOperationException($"Only {nameof(EmbedType.Rich)} embeds may be built.");

var eb = new EmbedBuilder
{
Title = embed.Title,
Description = embed.Description,
Url = embed.Url,
ImageUrl = embed.Image?.Url,
ThumbnailUrl = embed.Thumbnail?.Url,
Timestamp = embed.Timestamp
}
.WithAuthor(embed.Author?.Name, embed.Author?.IconUrl, embed.Author?.Url)
.WithFooter(embed.Footer?.Text, embed.Footer?.IconUrl);

if (embed.Color.HasValue)
eb.WithColor(embed.Color.Value);

foreach (var field in embed.Fields)
eb.AddField(field.Name, field.Value, field.Inline);

return eb;
}
}
}

Loading…
Cancel
Save