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,
|
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; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user