|
|
@@ -1,3 +1,5 @@ |
|
|
|
using System; |
|
|
|
|
|
|
|
namespace Discord |
|
|
|
{ |
|
|
|
public static class EmbedBuilderExtensions |
|
|
@@ -19,5 +21,38 @@ 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 builder = new EmbedBuilder |
|
|
|
{ |
|
|
|
Author = new EmbedAuthorBuilder |
|
|
|
{ |
|
|
|
Name = embed.Author?.Name, |
|
|
|
IconUrl = embed.Author?.IconUrl, |
|
|
|
Url = embed.Author?.Url |
|
|
|
}, |
|
|
|
Color = embed.Color ?? Color.Default, |
|
|
|
Description = embed.Description, |
|
|
|
Footer = new EmbedFooterBuilder |
|
|
|
{ |
|
|
|
Text = embed.Footer?.Text, |
|
|
|
IconUrl = embed.Footer?.IconUrl |
|
|
|
}, |
|
|
|
ImageUrl = embed.Image?.Url, |
|
|
|
ThumbnailUrl = embed.Thumbnail?.Url, |
|
|
|
Timestamp = embed.Timestamp, |
|
|
|
Title = embed.Title, |
|
|
|
Url = embed.Url |
|
|
|
}; |
|
|
|
|
|
|
|
foreach (var field in embed.Fields) |
|
|
|
builder.AddField(field.Name, field.Value, field.Inline); |
|
|
|
|
|
|
|
return builder; |
|
|
|
} |
|
|
|
} |
|
|
|
} |