From 72dbeb4ac61456a5da830ae311fd00913694e10e Mon Sep 17 00:00:00 2001 From: "Sindre G. Langhus" Date: Thu, 17 Nov 2016 19:15:19 +0100 Subject: [PATCH] Added channel to the MessageDeleted event, getting the channel before required the message to be in cache, which it not always is. --- .../DiscordSocketClient.Events.cs | 4 ++-- src/Discord.Net.WebSocket/DiscordSocketClient.cs | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/Discord.Net.WebSocket/DiscordSocketClient.Events.cs b/src/Discord.Net.WebSocket/DiscordSocketClient.Events.cs index 529caaa87..0c85ef1cb 100644 --- a/src/Discord.Net.WebSocket/DiscordSocketClient.Events.cs +++ b/src/Discord.Net.WebSocket/DiscordSocketClient.Events.cs @@ -59,12 +59,12 @@ namespace Discord.WebSocket remove { _messageReceivedEvent.Remove(value); } } private readonly AsyncEvent> _messageReceivedEvent = new AsyncEvent>(); - public event Func, Task> MessageDeleted + public event Func, Task> MessageDeleted { add { _messageDeletedEvent.Add(value); } remove { _messageDeletedEvent.Remove(value); } } - private readonly AsyncEvent, Task>> _messageDeletedEvent = new AsyncEvent, Task>>(); + private readonly AsyncEvent, Task>> _messageDeletedEvent = new AsyncEvent, Task>>(); public event Func, SocketMessage, Task> MessageUpdated { add { _messageUpdatedEvent.Add(value); } diff --git a/src/Discord.Net.WebSocket/DiscordSocketClient.cs b/src/Discord.Net.WebSocket/DiscordSocketClient.cs index 3eb4158d1..dc49e125b 100644 --- a/src/Discord.Net.WebSocket/DiscordSocketClient.cs +++ b/src/Discord.Net.WebSocket/DiscordSocketClient.cs @@ -1280,22 +1280,22 @@ namespace Discord.WebSocket case "MESSAGE_DELETE": { await _gatewayLogger.DebugAsync("Received Dispatch (MESSAGE_DELETE)").ConfigureAwait(false); - + var data = (payload as JToken).ToObject(_serializer); var channel = State.GetChannel(data.ChannelId) as ISocketMessageChannel; if (channel != null) { if (!((channel as SocketGuildChannel)?.Guild.IsSynced ?? true)) - { + { await _gatewayLogger.DebugAsync("Ignored MESSAGE_DELETE, guild is not synced yet.").ConfigureAwait(false); return; } var msg = SocketChannelHelper.RemoveMessage(channel, this, data.Id); if (msg != null) - await _messageDeletedEvent.InvokeAsync(data.Id, msg).ConfigureAwait(false); + await _messageDeletedEvent.InvokeAsync(data.Id, channel as SocketChannel, msg).ConfigureAwait(false); else - await _messageDeletedEvent.InvokeAsync(data.Id, Optional.Create()).ConfigureAwait(false); + await _messageDeletedEvent.InvokeAsync(data.Id, channel as SocketChannel, Optional.Create()).ConfigureAwait(false); } else { @@ -1322,9 +1322,9 @@ namespace Discord.WebSocket { var msg = SocketChannelHelper.RemoveMessage(channel, this, id); if (msg != null) - await _messageDeletedEvent.InvokeAsync(id, msg).ConfigureAwait(false); + await _messageDeletedEvent.InvokeAsync(id, channel as SocketChannel, msg).ConfigureAwait(false); else - await _messageDeletedEvent.InvokeAsync(id, Optional.Create()).ConfigureAwait(false); + await _messageDeletedEvent.InvokeAsync(id, channel as SocketChannel, Optional.Create()).ConfigureAwait(false); } } else