From 049b01451834591352016022bb026675a6bc05e7 Mon Sep 17 00:00:00 2001 From: Paulo Date: Sat, 16 Mar 2019 16:05:00 -0300 Subject: [PATCH] fix: Fix NRE when getting audit logs (#1256) * Fix NullReferenceException when the webhook was deleted * Fixing doc note * Better documentation regarding the webhook object Co-Authored-By: SubZero0 --- .../DataTypes/WebhookCreateAuditLogData.cs | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/WebhookCreateAuditLogData.cs b/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/WebhookCreateAuditLogData.cs index 21388f985..81d902fc0 100644 --- a/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/WebhookCreateAuditLogData.cs +++ b/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/WebhookCreateAuditLogData.cs @@ -10,9 +10,10 @@ namespace Discord.Rest /// public class WebhookCreateAuditLogData : IAuditLogData { - private WebhookCreateAuditLogData(IWebhook webhook, WebhookType type, string name, ulong channelId) + private WebhookCreateAuditLogData(IWebhook webhook, ulong webhookId, WebhookType type, string name, ulong channelId) { Webhook = webhook; + WebhookId = webhookId; Name = name; Type = type; ChannelId = channelId; @@ -31,23 +32,31 @@ namespace Discord.Rest var name = nameModel.NewValue.ToObject(discord.ApiClient.Serializer); var webhookInfo = log.Webhooks?.FirstOrDefault(x => x.Id == entry.TargetId); - var webhook = RestWebhook.Create(discord, (IGuild)null, webhookInfo); + var webhook = webhookInfo == null ? null : RestWebhook.Create(discord, (IGuild)null, webhookInfo); - return new WebhookCreateAuditLogData(webhook, type, name, channelId); + return new WebhookCreateAuditLogData(webhook, entry.TargetId.Value, type, name, channelId); } // Doc Note: Corresponds to the *current* data /// - /// Gets the webhook that was created. + /// Gets the webhook that was created if it still exists. /// /// - /// A webhook object representing the webhook that was created. + /// A webhook object representing the webhook that was created if it still exists, otherwise returns null. /// public IWebhook Webhook { get; } // Doc Note: Corresponds to the *audit log* data + /// + /// Gets the webhook id. + /// + /// + /// The webhook identifier. + /// + public ulong WebhookId { get; } + /// /// Gets the type of webhook that was created. ///