@@ -1306,7 +1306,7 @@ namespace Discord.WebSocket
break;
break;
case "MESSAGE_REACTION_ADD":
case "MESSAGE_REACTION_ADD":
{
{
await _gatewayLogger.DebugAsync("Received Disb atch (MESSAGE_REACTION_ADD)").ConfigureAwait(false);
await _gatewayLogger.DebugAsync("Received Disp atch (MESSAGE_REACTION_ADD)").ConfigureAwait(false);
var data = (payload as JToken).ToObject<GatewayReaction>(_serializer);
var data = (payload as JToken).ToObject<GatewayReaction>(_serializer);
var channel = State.GetChannel(data.ChannelId) as ISocketMessageChannel;
var channel = State.GetChannel(data.ChannelId) as ISocketMessageChannel;
@@ -1333,7 +1333,7 @@ namespace Discord.WebSocket
}
}
case "MESSAGE_REACTION_REMOVE":
case "MESSAGE_REACTION_REMOVE":
{
{
await _gatewayLogger.DebugAsync("Received Disb atch (MESSAGE_REACTION_REMOVE)").ConfigureAwait(false);
await _gatewayLogger.DebugAsync("Received Disp atch (MESSAGE_REACTION_REMOVE)").ConfigureAwait(false);
var data = (payload as JToken).ToObject<GatewayReaction>(_serializer);
var data = (payload as JToken).ToObject<GatewayReaction>(_serializer);
var channel = State.GetChannel(data.ChannelId) as ISocketMessageChannel;
var channel = State.GetChannel(data.ChannelId) as ISocketMessageChannel;
@@ -1355,6 +1355,31 @@ namespace Discord.WebSocket
await _gatewayLogger.WarningAsync("MESSAGE_REACTION_REMOVE referenced an unknown channel.").ConfigureAwait(false);
await _gatewayLogger.WarningAsync("MESSAGE_REACTION_REMOVE referenced an unknown channel.").ConfigureAwait(false);
return;
return;
}
}
break;
}
case "MESSAGE_REACTION_REMOVE_ALL":
{
await _gatewayLogger.DebugAsync("Received Dispatch (MESSAGE_REACTION_REMOVE_ALL)").ConfigureAwait(false);
var data = (payload as JToken).ToObject<RemoveAllReactionsEvent>(_serializer);
var channel = State.GetChannel(data.ChannelId) as ISocketMessageChannel;
if (channel != null)
{
SocketUserMessage cachedMsg = channel.GetCachedMessage(data.MessageId) as SocketUserMessage;
if (cachedMsg != null)
{
cachedMsg.ClearReactions();
await _reactionsClearedEvent.InvokeAsync(data.MessageId, cachedMsg).ConfigureAwait(false);
return;
}
await _reactionsClearedEvent.InvokeAsync(data.MessageId, Optional.Create<SocketUserMessage>());
}
else
{
await _gatewayLogger.WarningAsync("MESSAGE_REACTION_REMOVE_ALL referenced an unknown channel.").ConfigureAwait(false);
return;
}
break;
break;
}
}
case "MESSAGE_DELETE_BULK":
case "MESSAGE_DELETE_BULK":