Cleaned up Reactions PR
This commit is contained in:
@@ -1,12 +1,8 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Discord.API.Gateway
|
||||
{
|
||||
public class GatewayReaction
|
||||
public class Reaction
|
||||
{
|
||||
[JsonProperty("user_id")]
|
||||
public ulong UserId { get; set; }
|
||||
@@ -1312,13 +1312,13 @@ namespace Discord.WebSocket
|
||||
{
|
||||
await _gatewayLogger.DebugAsync("Received Dispatch (MESSAGE_REACTION_ADD)").ConfigureAwait(false);
|
||||
|
||||
var data = (payload as JToken).ToObject<GatewayReaction>(_serializer);
|
||||
var data = (payload as JToken).ToObject<API.Gateway.Reaction>(_serializer);
|
||||
var channel = State.GetChannel(data.ChannelId) as ISocketMessageChannel;
|
||||
if (channel != null)
|
||||
{
|
||||
SocketUserMessage cachedMsg = channel.GetCachedMessage(data.MessageId) as SocketUserMessage;
|
||||
var user = await channel.GetUserAsync(data.UserId, CacheMode.CacheOnly);
|
||||
SocketReaction reaction = new SocketReaction(data, channel, Optional.Create(cachedMsg), Optional.Create(user));
|
||||
SocketReaction reaction = SocketReaction.Create(data, channel, cachedMsg, Optional.Create(user));
|
||||
|
||||
if (cachedMsg != null)
|
||||
{
|
||||
@@ -1339,13 +1339,13 @@ namespace Discord.WebSocket
|
||||
{
|
||||
await _gatewayLogger.DebugAsync("Received Dispatch (MESSAGE_REACTION_REMOVE)").ConfigureAwait(false);
|
||||
|
||||
var data = (payload as JToken).ToObject<GatewayReaction>(_serializer);
|
||||
var data = (payload as JToken).ToObject<API.Gateway.Reaction>(_serializer);
|
||||
var channel = State.GetChannel(data.ChannelId) as ISocketMessageChannel;
|
||||
if (channel != null)
|
||||
{
|
||||
SocketUserMessage cachedMsg = channel.GetCachedMessage(data.MessageId) as SocketUserMessage;
|
||||
var user = await channel.GetUserAsync(data.UserId, CacheMode.CacheOnly);
|
||||
SocketReaction reaction = new SocketReaction(data, channel, Optional.Create(cachedMsg), Optional.Create(user));
|
||||
SocketReaction reaction = SocketReaction.Create(data, channel, cachedMsg, Optional.Create(user));
|
||||
if (cachedMsg != null)
|
||||
{
|
||||
cachedMsg.RemoveReaction(reaction);
|
||||
|
||||
@@ -1,28 +1,28 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Model = Discord.API.Gateway.GatewayReaction;
|
||||
using Model = Discord.API.Gateway.Reaction;
|
||||
|
||||
namespace Discord.WebSocket
|
||||
{
|
||||
public class SocketReaction : IReaction
|
||||
{
|
||||
internal SocketReaction(Model model, ISocketMessageChannel channel, Optional<SocketUserMessage> message, Optional<IUser> user)
|
||||
public ulong UserId { get; }
|
||||
public Optional<IUser> User { get; }
|
||||
public ulong MessageId { get; }
|
||||
public Optional<SocketUserMessage> Message { get; }
|
||||
public ISocketMessageChannel Channel { get; }
|
||||
public Emoji Emoji { get; }
|
||||
|
||||
internal SocketReaction(ISocketMessageChannel channel, ulong messageId, Optional<SocketUserMessage> message, ulong userId, Optional<IUser> user, Emoji emoji)
|
||||
{
|
||||
Channel = channel;
|
||||
MessageId = messageId;
|
||||
Message = message;
|
||||
MessageId = model.MessageId;
|
||||
UserId = userId;
|
||||
User = user;
|
||||
UserId = model.UserId;
|
||||
Emoji = Emoji.FromApi(model.Emoji);
|
||||
Emoji = emoji;
|
||||
}
|
||||
internal static SocketReaction Create(Model model, ISocketMessageChannel channel, Optional<SocketUserMessage> message, Optional<IUser> user)
|
||||
{
|
||||
return new SocketReaction(channel, model.MessageId, message, model.UserId, user, Emoji.Create(model.Emoji));
|
||||
}
|
||||
|
||||
public ulong UserId { get; private set; }
|
||||
public Optional<IUser> User { get; private set; }
|
||||
public ulong MessageId { get; private set; }
|
||||
public Optional<SocketUserMessage> Message { get; private set; }
|
||||
public ISocketMessageChannel Channel { get; private set; }
|
||||
public Emoji Emoji { get; private set; }
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user