PluralKit/Myriad/Builders/EmbedBuilder.cs

73 lines
1.6 KiB
C#

using Myriad.Types;
namespace Myriad.Builders;
public class EmbedBuilder
{
private readonly List<Embed.Field> _fields = new();
private Embed _embed = new();
public EmbedBuilder Title(string? title)
{
_embed = _embed with { Title = title };
return this;
}
public EmbedBuilder Description(string? description)
{
_embed = _embed with { Description = description };
return this;
}
public EmbedBuilder Url(string? url)
{
_embed = _embed with { Url = url };
return this;
}
public EmbedBuilder Color(uint? color)
{
_embed = _embed with { Color = color };
return this;
}
public EmbedBuilder Footer(Embed.EmbedFooter? footer)
{
_embed = _embed with { Footer = footer };
return this;
}
public EmbedBuilder Image(Embed.EmbedImage? image)
{
_embed = _embed with { Image = image };
return this;
}
public EmbedBuilder Thumbnail(Embed.EmbedThumbnail? thumbnail)
{
_embed = _embed with { Thumbnail = thumbnail };
return this;
}
public EmbedBuilder Author(Embed.EmbedAuthor? author)
{
_embed = _embed with { Author = author };
return this;
}
public EmbedBuilder Timestamp(string? timestamp)
{
_embed = _embed with { Timestamp = timestamp };
return this;
}
public EmbedBuilder Field(Embed.Field field)
{
_fields.Add(field);
return this;
}
public Embed Build() =>
_embed with { Fields = _fields.ToArray() };
}