Browse Source

Add embed builder extensions

People in #dotnet_discord-net suggested that this should be part of
the lib after I demonstrated it
pull/460/head
FiniteReality 8 years ago
parent
commit
b9cfa574e4
1 changed files with 43 additions and 0 deletions
  1. +43
    -0
      src/Discord.Net.Rest/Extensions/EmbedBuilderExtensions.cs

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

@@ -0,0 +1,43 @@
namespace Discord
{
public static class EmbedBuilderExtensions
{
public static EmbedBuilder AddField(this EmbedBuilder builder, string title, string text, bool inline = false) =>
builder.AddField(field =>
{
field.Name = title;
field.Value = text;
field.IsInline = inline;
});

public static EmbedBuilder WithFooter(this EmbedBuilder builder, string text, string iconUrl = null) =>
builder.WithFooter(footer =>
{
footer.Text = text;
footer.IconUrl = iconUrl;
});

public static EmbedBuilder WithColor(this EmbedBuilder builder, uint rawValue) =>
builder.WithColor(new Color(rawValue));

public static EmbedBuilder WithColor(this EmbedBuilder builder, byte r, byte g, byte b) =>
builder.WithColor(new Color(r, g, b));

public static EmbedBuilder WithColor(this EmbedBuilder builder, float r, float g, float b) =>
builder.WithColor(new Color(r, g, b));

public static EmbedBuilder WithAuthor(this EmbedBuilder builder, string name, string iconUrl = null, string url = null) =>
builder.WithAuthor(author =>
{
author.Name = name;
author.IconUrl = iconUrl;
author.Url = url;
});

public static EmbedBuilder WithAuthor(this EmbedBuilder builder, IUser user) =>
WithAuthor(builder, $"{user.Username}#{user.Discriminator}", user.AvatarUrl);

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

Loading…
Cancel
Save