@@ -35,7 +35,7 @@ namespace Discord.Rest | |||||
public static async Task RemoveReactionAsync(IMessage msg, IUser user, string emoji, BaseDiscordClient client, | public static async Task RemoveReactionAsync(IMessage msg, IUser user, string emoji, BaseDiscordClient client, | ||||
RequestOptions options) | RequestOptions options) | ||||
{ | { | ||||
await client.ApiClient.RemoveReactionAsync(msg.Channel.Id, msg.Id, user.Id, emoji, options); | |||||
await client.ApiClient.RemoveReactionAsync(msg.Channel.Id, msg.Id, user.Id, emoji, options).ConfigureAwait(false); | |||||
} | } | ||||
public static async Task<IReadOnlyCollection<IUser>> GetReactionUsersAsync(IMessage msg, string emoji, | public static async Task<IReadOnlyCollection<IUser>> GetReactionUsersAsync(IMessage msg, string emoji, | ||||
@@ -1313,7 +1313,9 @@ namespace Discord.WebSocket | |||||
if (channel != null) | if (channel != null) | ||||
{ | { | ||||
SocketUserMessage cachedMsg = channel.GetCachedMessage(data.MessageId) as SocketUserMessage; | SocketUserMessage cachedMsg = channel.GetCachedMessage(data.MessageId) as SocketUserMessage; | ||||
SocketReaction reaction = new SocketReaction(data); | |||||
var user = await channel.GetUserAsync(data.UserId, CacheMode.CacheOnly); | |||||
SocketReaction reaction = new SocketReaction(data, channel, Optional.Create(cachedMsg), Optional.Create(user)); | |||||
if (cachedMsg != null) | if (cachedMsg != null) | ||||
{ | { | ||||
cachedMsg.AddReaction(reaction); | cachedMsg.AddReaction(reaction); | ||||
@@ -1338,7 +1340,8 @@ namespace Discord.WebSocket | |||||
if (channel != null) | if (channel != null) | ||||
{ | { | ||||
SocketUserMessage cachedMsg = channel.GetCachedMessage(data.MessageId) as SocketUserMessage; | SocketUserMessage cachedMsg = channel.GetCachedMessage(data.MessageId) as SocketUserMessage; | ||||
SocketReaction reaction = new SocketReaction(data); | |||||
var user = await channel.GetUserAsync(data.UserId, CacheMode.CacheOnly); | |||||
SocketReaction reaction = new SocketReaction(data, channel, Optional.Create(cachedMsg), Optional.Create(user)); | |||||
if (cachedMsg != null) | if (cachedMsg != null) | ||||
{ | { | ||||
cachedMsg.RemoveReaction(reaction); | cachedMsg.RemoveReaction(reaction); | ||||
@@ -8,17 +8,21 @@ namespace Discord.WebSocket | |||||
{ | { | ||||
public class SocketReaction : IReaction | public class SocketReaction : IReaction | ||||
{ | { | ||||
internal SocketReaction(Model model) | |||||
internal SocketReaction(Model model, ISocketMessageChannel channel, Optional<SocketUserMessage> message, Optional<IUser> user) | |||||
{ | { | ||||
UserId = model.UserId; | |||||
Channel = channel; | |||||
Message = message; | |||||
MessageId = model.MessageId; | MessageId = model.MessageId; | ||||
ChannelId = model.ChannelId; | |||||
User = user; | |||||
UserId = model.UserId; | |||||
Emoji = Emoji.FromApi(model.Emoji); | Emoji = Emoji.FromApi(model.Emoji); | ||||
} | } | ||||
public ulong UserId { get; private set; } | public ulong UserId { get; private set; } | ||||
public Optional<IUser> User { get; private set; } | |||||
public ulong MessageId { get; private set; } | public ulong MessageId { get; private set; } | ||||
public ulong ChannelId { get; private set; } | |||||
public Optional<SocketUserMessage> Message { get; private set; } | |||||
public ISocketMessageChannel Channel { get; private set; } | |||||
public Emoji Emoji { get; private set; } | public Emoji Emoji { get; private set; } | ||||
} | } | ||||
} | } |