Browse Source

Add embed builder extensions (#460)

* Add embed builder extensions

People in #dotnet_discord-net suggested that this should be part of
the lib after I demonstrated it

* Move some extensions into EmbedBuilder [2]

Apparently git didn't like that previous commit

* Fix error with EmbedBuilderExtensions

A summary of issues which happened:
- Git decided to add an amend commit (I told it to quit?)
- VS Code thinks everything is an error so it wasn't helpful
- dotnet decided to think there was no error until I deleted all
  build outputs and rebuild

Sometimes I question my ability to use version control properly.
tags/1.0
Finite Reality RogueException 7 years ago
parent
commit
fdd38c8d7f
2 changed files with 52 additions and 0 deletions
  1. +32
    -0
      src/Discord.Net.Rest/Entities/Messages/EmbedBuilder.cs
  2. +20
    -0
      src/Discord.Net.Rest/Extensions/EmbedBuilderExtensions.cs

+ 32
- 0
src/Discord.Net.Rest/Entities/Messages/EmbedBuilder.cs View File

@@ -137,6 +137,17 @@ namespace Discord
Author = author;
return this;
}
public EmbedBuilder WithAuthor(string name, string iconUrl = null, string url = null)
{
var author = new EmbedAuthorBuilder
{
Name = name,
IconUrl = iconUrl,
Url = url
};
Author = author;
return this;
}
public EmbedBuilder WithFooter(EmbedFooterBuilder footer)
{
Footer = footer;
@@ -149,6 +160,16 @@ namespace Discord
Footer = footer;
return this;
}
public EmbedBuilder WithFooter(string text, string iconUrl = null)
{
var footer = new EmbedFooterBuilder
{
Text = text,
IconUrl = iconUrl
};
Footer = footer;
return this;
}

public EmbedBuilder AddField(string name, object value)
{
@@ -185,6 +206,17 @@ namespace Discord
this.AddField(field);
return this;
}
public EmbedBuilder AddField(string title, string text, bool inline = false)
{
var field = new EmbedFieldBuilder
{
Name = title,
Value = text,
IsInline = inline
};
_fields.Add(field);
return this;
}

public Embed Build()
{


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

@@ -0,0 +1,20 @@
namespace Discord
{
public static class EmbedBuilderExtensions
{
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, IUser user) =>
builder.WithAuthor($"{user.Username}#{user.Discriminator}", user.AvatarUrl);

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

Loading…
Cancel
Save