Browse Source

Added channel to the MessageDeleted event, getting the channel before required the message to be in cache, which it not always is.

pull/358/head
Sindre G. Langhus 8 years ago
parent
commit
72dbeb4ac6
2 changed files with 8 additions and 8 deletions
  1. +2
    -2
      src/Discord.Net.WebSocket/DiscordSocketClient.Events.cs
  2. +6
    -6
      src/Discord.Net.WebSocket/DiscordSocketClient.cs

+ 2
- 2
src/Discord.Net.WebSocket/DiscordSocketClient.Events.cs View File

@@ -59,12 +59,12 @@ namespace Discord.WebSocket
remove { _messageReceivedEvent.Remove(value); } remove { _messageReceivedEvent.Remove(value); }
} }
private readonly AsyncEvent<Func<SocketMessage, Task>> _messageReceivedEvent = new AsyncEvent<Func<SocketMessage, Task>>(); private readonly AsyncEvent<Func<SocketMessage, Task>> _messageReceivedEvent = new AsyncEvent<Func<SocketMessage, Task>>();
public event Func<ulong, Optional<SocketMessage>, Task> MessageDeleted
public event Func<ulong, SocketChannel, Optional<SocketMessage>, Task> MessageDeleted
{ {
add { _messageDeletedEvent.Add(value); } add { _messageDeletedEvent.Add(value); }
remove { _messageDeletedEvent.Remove(value); } remove { _messageDeletedEvent.Remove(value); }
} }
private readonly AsyncEvent<Func<ulong, Optional<SocketMessage>, Task>> _messageDeletedEvent = new AsyncEvent<Func<ulong, Optional<SocketMessage>, Task>>();
private readonly AsyncEvent<Func<ulong, SocketChannel, Optional<SocketMessage>, Task>> _messageDeletedEvent = new AsyncEvent<Func<ulong, SocketChannel, Optional<SocketMessage>, Task>>();
public event Func<Optional<SocketMessage>, SocketMessage, Task> MessageUpdated public event Func<Optional<SocketMessage>, SocketMessage, Task> MessageUpdated
{ {
add { _messageUpdatedEvent.Add(value); } add { _messageUpdatedEvent.Add(value); }


+ 6
- 6
src/Discord.Net.WebSocket/DiscordSocketClient.cs View File

@@ -1280,22 +1280,22 @@ namespace Discord.WebSocket
case "MESSAGE_DELETE": case "MESSAGE_DELETE":
{ {
await _gatewayLogger.DebugAsync("Received Dispatch (MESSAGE_DELETE)").ConfigureAwait(false); await _gatewayLogger.DebugAsync("Received Dispatch (MESSAGE_DELETE)").ConfigureAwait(false);
var data = (payload as JToken).ToObject<API.Message>(_serializer); var data = (payload as JToken).ToObject<API.Message>(_serializer);
var channel = State.GetChannel(data.ChannelId) as ISocketMessageChannel; var channel = State.GetChannel(data.ChannelId) as ISocketMessageChannel;
if (channel != null) if (channel != null)
{ {
if (!((channel as SocketGuildChannel)?.Guild.IsSynced ?? true)) if (!((channel as SocketGuildChannel)?.Guild.IsSynced ?? true))
{
{
await _gatewayLogger.DebugAsync("Ignored MESSAGE_DELETE, guild is not synced yet.").ConfigureAwait(false); await _gatewayLogger.DebugAsync("Ignored MESSAGE_DELETE, guild is not synced yet.").ConfigureAwait(false);
return; return;
} }


var msg = SocketChannelHelper.RemoveMessage(channel, this, data.Id); var msg = SocketChannelHelper.RemoveMessage(channel, this, data.Id);
if (msg != null) if (msg != null)
await _messageDeletedEvent.InvokeAsync(data.Id, msg).ConfigureAwait(false);
await _messageDeletedEvent.InvokeAsync(data.Id, channel as SocketChannel, msg).ConfigureAwait(false);
else else
await _messageDeletedEvent.InvokeAsync(data.Id, Optional.Create<SocketMessage>()).ConfigureAwait(false);
await _messageDeletedEvent.InvokeAsync(data.Id, channel as SocketChannel, Optional.Create<SocketMessage>()).ConfigureAwait(false);
} }
else else
{ {
@@ -1322,9 +1322,9 @@ namespace Discord.WebSocket
{ {
var msg = SocketChannelHelper.RemoveMessage(channel, this, id); var msg = SocketChannelHelper.RemoveMessage(channel, this, id);
if (msg != null) if (msg != null)
await _messageDeletedEvent.InvokeAsync(id, msg).ConfigureAwait(false);
await _messageDeletedEvent.InvokeAsync(id, channel as SocketChannel, msg).ConfigureAwait(false);
else else
await _messageDeletedEvent.InvokeAsync(id, Optional.Create<SocketMessage>()).ConfigureAwait(false);
await _messageDeletedEvent.InvokeAsync(id, channel as SocketChannel, Optional.Create<SocketMessage>()).ConfigureAwait(false);
} }
} }
else else


Loading…
Cancel
Save