Add optional user/message/channel objects to Reactions
This commit is contained in:
@@ -35,7 +35,7 @@ namespace Discord.Rest
|
||||
public static async Task RemoveReactionAsync(IMessage msg, IUser user, string emoji, BaseDiscordClient client,
|
||||
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,
|
||||
|
||||
@@ -1313,7 +1313,9 @@ namespace Discord.WebSocket
|
||||
if (channel != null)
|
||||
{
|
||||
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)
|
||||
{
|
||||
cachedMsg.AddReaction(reaction);
|
||||
@@ -1338,7 +1340,8 @@ namespace Discord.WebSocket
|
||||
if (channel != null)
|
||||
{
|
||||
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)
|
||||
{
|
||||
cachedMsg.RemoveReaction(reaction);
|
||||
|
||||
@@ -8,17 +8,21 @@ namespace Discord.WebSocket
|
||||
{
|
||||
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;
|
||||
ChannelId = model.ChannelId;
|
||||
User = user;
|
||||
UserId = model.UserId;
|
||||
Emoji = Emoji.FromApi(model.Emoji);
|
||||
}
|
||||
|
||||
public ulong UserId { get; private set; }
|
||||
public Optional<IUser> User { 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; }
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user