From 1b868127419828ba23de92635199ed821496bf29 Mon Sep 17 00:00:00 2001 From: RogueException Date: Wed, 5 Oct 2016 03:43:59 -0300 Subject: [PATCH] Added WebhookId and IsWebhook --- src/Discord.Net.Core/API/Common/Message.cs | 2 ++ src/Discord.Net.Rest/Entities/Messages/RestMessage.cs | 1 + .../Entities/Messages/RestUserMessage.cs | 9 +++++++-- .../Entities/Messages/SocketMessage.cs | 2 +- .../Entities/Messages/SocketUserMessage.cs | 7 ++++++- 5 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/Discord.Net.Core/API/Common/Message.cs b/src/Discord.Net.Core/API/Common/Message.cs index e22c26028..fb89f9a60 100644 --- a/src/Discord.Net.Core/API/Common/Message.cs +++ b/src/Discord.Net.Core/API/Common/Message.cs @@ -12,6 +12,8 @@ namespace Discord.API public MessageType Type { get; set; } [JsonProperty("channel_id")] public ulong ChannelId { get; set; } + [JsonProperty("webhook_id")] + public Optional WebhookId { get; set; } [JsonProperty("author")] public Optional Author { get; set; } [JsonProperty("content")] diff --git a/src/Discord.Net.Rest/Entities/Messages/RestMessage.cs b/src/Discord.Net.Rest/Entities/Messages/RestMessage.cs index d2d5d722f..1566fb6b8 100644 --- a/src/Discord.Net.Rest/Entities/Messages/RestMessage.cs +++ b/src/Discord.Net.Rest/Entities/Messages/RestMessage.cs @@ -17,6 +17,7 @@ namespace Discord.Rest public virtual bool IsTTS => false; public virtual bool IsPinned => false; + public virtual bool IsWebhook => false; public virtual DateTimeOffset? EditedTimestamp => null; public virtual IReadOnlyCollection Attachments => ImmutableArray.Create(); diff --git a/src/Discord.Net.Rest/Entities/Messages/RestUserMessage.cs b/src/Discord.Net.Rest/Entities/Messages/RestUserMessage.cs index a8cc928a5..fc59b0057 100644 --- a/src/Discord.Net.Rest/Entities/Messages/RestUserMessage.cs +++ b/src/Discord.Net.Rest/Entities/Messages/RestUserMessage.cs @@ -18,9 +18,12 @@ namespace Discord.Rest private ImmutableArray _mentionedChannelIds; private ImmutableArray _mentionedRoles; private ImmutableArray _mentionedUsers; - + + public ulong? WebhookId { get; private set; } + public override bool IsTTS => _isTTS; public override bool IsPinned => _isPinned; + public override bool IsWebhook => WebhookId != null; public override DateTimeOffset? EditedTimestamp => DateTimeUtils.FromTicks(_editedTimestampTicks); public override IReadOnlyCollection Attachments => _attachments; @@ -52,6 +55,8 @@ namespace Discord.Rest _editedTimestampTicks = model.EditedTimestamp.Value?.UtcTicks; if (model.MentionEveryone.IsSpecified) _isMentioningEveryone = model.MentionEveryone.Value; + if (model.WebhookId.IsSpecified) + WebhookId = model.WebhookId.Value; if (model.Attachments.IsSpecified) { @@ -131,6 +136,6 @@ namespace Discord.Rest return text; } - private string DebuggerDisplay => $"{Author}: {Content} ({Id}{(Attachments.Count > 0 ? $", {Attachments.Count} Attachments" : "")}"; + private string DebuggerDisplay => $"{Author}: {Content} ({Id}{(Attachments.Count > 0 ? $", {Attachments.Count} Attachments" : "")})"; } } diff --git a/src/Discord.Net.WebSocket/Entities/Messages/SocketMessage.cs b/src/Discord.Net.WebSocket/Entities/Messages/SocketMessage.cs index f64fe811b..a4418a2e8 100644 --- a/src/Discord.Net.WebSocket/Entities/Messages/SocketMessage.cs +++ b/src/Discord.Net.WebSocket/Entities/Messages/SocketMessage.cs @@ -1,7 +1,6 @@ using System; using System.Collections.Generic; using System.Collections.Immutable; -using System.Diagnostics; using Model = Discord.API.Message; namespace Discord.WebSocket @@ -17,6 +16,7 @@ namespace Discord.WebSocket public virtual bool IsTTS => false; public virtual bool IsPinned => false; + public virtual bool IsWebhook => false; public virtual DateTimeOffset? EditedTimestamp => null; public virtual IReadOnlyCollection Attachments => ImmutableArray.Create(); diff --git a/src/Discord.Net.WebSocket/Entities/Messages/SocketUserMessage.cs b/src/Discord.Net.WebSocket/Entities/Messages/SocketUserMessage.cs index ec26c7dc5..042248152 100644 --- a/src/Discord.Net.WebSocket/Entities/Messages/SocketUserMessage.cs +++ b/src/Discord.Net.WebSocket/Entities/Messages/SocketUserMessage.cs @@ -20,8 +20,11 @@ namespace Discord.WebSocket private ImmutableArray _mentionedRoles; private ImmutableArray _mentionedUsers; + public ulong? WebhookId { get; private set; } + public override bool IsTTS => _isTTS; public override bool IsPinned => _isPinned; + public override bool IsWebhook => WebhookId != null; public override DateTimeOffset? EditedTimestamp => DateTimeUtils.FromTicks(_editedTimestampTicks); public override IReadOnlyCollection Attachments => _attachments; @@ -53,6 +56,8 @@ namespace Discord.WebSocket _editedTimestampTicks = model.EditedTimestamp.Value?.UtcTicks; if (model.MentionEveryone.IsSpecified) _isMentioningEveryone = model.MentionEveryone.Value; + if (model.WebhookId.IsSpecified) + WebhookId = model.WebhookId.Value; if (model.Attachments.IsSpecified) { @@ -133,7 +138,7 @@ namespace Discord.WebSocket return text; } - private string DebuggerDisplay => $"{Author}: {Content} ({Id}{(Attachments.Count > 0 ? $", {Attachments.Count} Attachments" : "")}"; + private string DebuggerDisplay => $"{Author}: {Content} ({Id}{(Attachments.Count > 0 ? $", {Attachments.Count} Attachments" : "")})"; internal new SocketUserMessage Clone() => MemberwiseClone() as SocketUserMessage; } }