diff --git a/src/Discord.Net.Core/Entities/Messages/Embed.cs b/src/Discord.Net.Core/Entities/Messages/Embed.cs index 3210c22f5..9b72b9194 100644 --- a/src/Discord.Net.Core/Entities/Messages/Embed.cs +++ b/src/Discord.Net.Core/Entities/Messages/Embed.cs @@ -8,7 +8,7 @@ namespace Discord [DebuggerDisplay(@"{DebuggerDisplay,nq}")] public class Embed : IEmbed { - public string Type { get; } + public EmbedType Type { get; } public string Description { get; internal set; } public Uri Url { get; internal set; } @@ -23,12 +23,12 @@ namespace Discord public EmbedThumbnail? Thumbnail { get; internal set; } public ImmutableArray Fields { get; internal set; } - internal Embed(string type) + internal Embed(EmbedType type) { Type = type; Fields = ImmutableArray.Create(); } - internal Embed(string type, + internal Embed(EmbedType type, string title, string description, Uri url, diff --git a/src/Discord.Net.Core/Entities/Messages/EmbedType.cs b/src/Discord.Net.Core/Entities/Messages/EmbedType.cs new file mode 100644 index 000000000..e071e7dc8 --- /dev/null +++ b/src/Discord.Net.Core/Entities/Messages/EmbedType.cs @@ -0,0 +1,11 @@ +namespace Discord +{ + public enum EmbedType + { + Rich, + Link, + Video, + Image, + Gifv + } +} diff --git a/src/Discord.Net.Core/Entities/Messages/IEmbed.cs b/src/Discord.Net.Core/Entities/Messages/IEmbed.cs index 145b1fa3c..01ea2b248 100644 --- a/src/Discord.Net.Core/Entities/Messages/IEmbed.cs +++ b/src/Discord.Net.Core/Entities/Messages/IEmbed.cs @@ -6,9 +6,9 @@ namespace Discord public interface IEmbed { Uri Url { get; } - string Type { get; } string Title { get; } string Description { get; } + EmbedType Type { get; } DateTimeOffset? Timestamp { get; } Color? Color { get; } EmbedImage? Image { get; } diff --git a/src/Discord.Net.Rest/API/Common/Embed.cs b/src/Discord.Net.Rest/API/Common/Embed.cs index 110c5ec8d..ebce9757b 100644 --- a/src/Discord.Net.Rest/API/Common/Embed.cs +++ b/src/Discord.Net.Rest/API/Common/Embed.cs @@ -1,6 +1,7 @@ #pragma warning disable CS1591 using System; using Newtonsoft.Json; +using Newtonsoft.Json.Converters; namespace Discord.API { @@ -8,14 +9,14 @@ namespace Discord.API { [JsonProperty("title")] public string Title { get; set; } - [JsonProperty("type")] - public string Type { get; set; } [JsonProperty("description")] public string Description { get; set; } [JsonProperty("url")] public Uri Url { get; set; } [JsonProperty("color")] public uint? Color { get; set; } + [JsonProperty("type"), JsonConverter(typeof(StringEnumConverter))] + public EmbedType Type { get; set; } [JsonProperty("timestamp")] public DateTimeOffset? Timestamp { get; set; } [JsonProperty("author")] diff --git a/src/Discord.Net.Rest/Entities/Messages/EmbedBuilder.cs b/src/Discord.Net.Rest/Entities/Messages/EmbedBuilder.cs index a7c2436b0..be5ef7f32 100644 --- a/src/Discord.Net.Rest/Entities/Messages/EmbedBuilder.cs +++ b/src/Discord.Net.Rest/Entities/Messages/EmbedBuilder.cs @@ -15,7 +15,7 @@ namespace Discord public EmbedBuilder() { - _embed = new Embed("rich"); + _embed = new Embed(EmbedType.Rich); Fields = new List(); }