From 2dea7ff7a9e4ee4872a4d8187732d45f82fc3f29 Mon Sep 17 00:00:00 2001 From: RogueException Date: Thu, 7 Jul 2016 11:30:36 -0300 Subject: [PATCH] Added IAttachment and several missing properties. --- src/Discord.Net/API/Common/EmbedThumbnail.cs | 4 ++-- src/Discord.Net/Entities/Messages/Attachment.cs | 14 +++++++++++--- src/Discord.Net/Entities/Messages/EmbedThumbnail.cs | 8 +++++++- src/Discord.Net/Entities/Messages/IAttachment.cs | 14 ++++++++++++++ src/Discord.Net/Entities/Messages/IMessage.cs | 2 +- src/Discord.Net/Entities/Messages/Message.cs | 2 +- 6 files changed, 36 insertions(+), 8 deletions(-) create mode 100644 src/Discord.Net/Entities/Messages/IAttachment.cs diff --git a/src/Discord.Net/API/Common/EmbedThumbnail.cs b/src/Discord.Net/API/Common/EmbedThumbnail.cs index 9933183af..8534d427a 100644 --- a/src/Discord.Net/API/Common/EmbedThumbnail.cs +++ b/src/Discord.Net/API/Common/EmbedThumbnail.cs @@ -9,8 +9,8 @@ namespace Discord.API [JsonProperty("proxy_url")] public string ProxyUrl { get; set; } [JsonProperty("height")] - public int Height { get; set; } + public Optional Height { get; set; } [JsonProperty("width")] - public int Width { get; set; } + public Optional Width { get; set; } } } diff --git a/src/Discord.Net/Entities/Messages/Attachment.cs b/src/Discord.Net/Entities/Messages/Attachment.cs index 5f2c1ed47..1cc24749e 100644 --- a/src/Discord.Net/Entities/Messages/Attachment.cs +++ b/src/Discord.Net/Entities/Messages/Attachment.cs @@ -2,17 +2,25 @@ namespace Discord { - public struct Attachment + internal class Attachment : IAttachment { public ulong Id { get; } - public int Size { get; } public string Filename { get; } + public string Url { get; } + public string ProxyUrl { get; } + public int Size { get; } + public int? Height { get; } + public int? Width { get; } public Attachment(Model model) { Id = model.Id; - Size = model.Size; Filename = model.Filename; + Size = model.Size; + Url = model.Url; + ProxyUrl = model.ProxyUrl; + Height = model.Height.IsSpecified ? model.Height.Value : (int?)null; + Width = model.Width.IsSpecified ? model.Width.Value : (int?)null; } } } diff --git a/src/Discord.Net/Entities/Messages/EmbedThumbnail.cs b/src/Discord.Net/Entities/Messages/EmbedThumbnail.cs index 8630dc473..736d7d743 100644 --- a/src/Discord.Net/Entities/Messages/EmbedThumbnail.cs +++ b/src/Discord.Net/Entities/Messages/EmbedThumbnail.cs @@ -18,6 +18,12 @@ namespace Discord } internal EmbedThumbnail(Model model) - : this(model.Url, model.ProxyUrl, model.Height, model.Width) { } + : this( + model.Url, + model.ProxyUrl, + model.Height.IsSpecified ? model.Height.Value : (int?)null, + model.Width.IsSpecified ? model.Width.Value : (int?)null) + { + } } } diff --git a/src/Discord.Net/Entities/Messages/IAttachment.cs b/src/Discord.Net/Entities/Messages/IAttachment.cs new file mode 100644 index 000000000..225e9cf2e --- /dev/null +++ b/src/Discord.Net/Entities/Messages/IAttachment.cs @@ -0,0 +1,14 @@ +namespace Discord +{ + public interface IAttachment + { + ulong Id { get; } + + string Filename { get; } + string Url { get; } + string ProxyUrl { get; } + int Size { get; } + int? Height { get; } + int? Width { get; } + } +} diff --git a/src/Discord.Net/Entities/Messages/IMessage.cs b/src/Discord.Net/Entities/Messages/IMessage.cs index 61f1199eb..e33670acb 100644 --- a/src/Discord.Net/Entities/Messages/IMessage.cs +++ b/src/Discord.Net/Entities/Messages/IMessage.cs @@ -25,7 +25,7 @@ namespace Discord /// Gets the author of this message. IUser Author { get; } /// Returns a collection of all attachments included in this message. - IReadOnlyCollection Attachments { get; } + IReadOnlyCollection Attachments { get; } /// Returns a collection of all embeds included in this message. IReadOnlyCollection Embeds { get; } /// Returns a collection of channel ids mentioned in this message. diff --git a/src/Discord.Net/Entities/Messages/Message.cs b/src/Discord.Net/Entities/Messages/Message.cs index e0fba96cb..1ac7a14f3 100644 --- a/src/Discord.Net/Entities/Messages/Message.cs +++ b/src/Discord.Net/Entities/Messages/Message.cs @@ -23,7 +23,7 @@ namespace Discord public IMessageChannel Channel { get; } public IUser Author { get; } - public IReadOnlyCollection Attachments { get; private set; } + public IReadOnlyCollection Attachments { get; private set; } public IReadOnlyCollection Embeds { get; private set; } public IReadOnlyCollection MentionedChannelIds { get; private set; } public IReadOnlyCollection MentionedRoles { get; private set; }