Browse Source

Add optional user/message/channel objects to Reactions

tags/1.0-rc
Christopher F 8 years ago
parent
commit
8dfc6aea67
3 changed files with 14 additions and 7 deletions
  1. +1
    -1
      src/Discord.Net.Rest/Entities/Messages/MessageHelper.cs
  2. +5
    -2
      src/Discord.Net.WebSocket/DiscordSocketClient.cs
  3. +8
    -4
      src/Discord.Net.WebSocket/Entities/Messages/SocketReaction.cs

+ 1
- 1
src/Discord.Net.Rest/Entities/Messages/MessageHelper.cs View File

@@ -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,


+ 5
- 2
src/Discord.Net.WebSocket/DiscordSocketClient.cs View File

@@ -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
- 4
src/Discord.Net.WebSocket/Entities/Messages/SocketReaction.cs View File

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

Loading…
Cancel
Save