| @@ -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; } | ||||
| } | } | ||||
| } | } | ||||