Browse Source

fix: fixed optionals having IsSpecified true when objects weren't in cache (#1323)

* Fixed optionals having IsSpecified true when objects weren't in cache

* Removed double null check
tags/2.1.1
Casino Boyale Christopher F 6 years ago
parent
commit
1cc5d7321b
1 changed files with 20 additions and 2 deletions
  1. +20
    -2
      src/Discord.Net.WebSocket/DiscordSocketClient.cs

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

@@ -1295,7 +1295,16 @@ namespace Discord.WebSocket
var cachedMsg = channel.GetCachedMessage(data.MessageId) as SocketUserMessage;
bool isCached = cachedMsg != null;
var user = await channel.GetUserAsync(data.UserId, CacheMode.CacheOnly).ConfigureAwait(false);
var reaction = SocketReaction.Create(data, channel, cachedMsg, Optional.Create(user));

var optionalMsg = !isCached
? Optional.Create<SocketUserMessage>()
: Optional.Create(cachedMsg);

var optionalUser = user is null
? Optional.Create<IUser>()
: Optional.Create(user);

var reaction = SocketReaction.Create(data, channel, optionalMsg, optionalUser);
var cacheable = new Cacheable<IUserMessage, ulong>(cachedMsg, data.MessageId, isCached, async () => await channel.GetMessageAsync(data.MessageId).ConfigureAwait(false) as IUserMessage);

cachedMsg?.AddReaction(reaction);
@@ -1319,7 +1328,16 @@ namespace Discord.WebSocket
var cachedMsg = channel.GetCachedMessage(data.MessageId) as SocketUserMessage;
bool isCached = cachedMsg != null;
var user = await channel.GetUserAsync(data.UserId, CacheMode.CacheOnly).ConfigureAwait(false);
var reaction = SocketReaction.Create(data, channel, cachedMsg, Optional.Create(user));

var optionalMsg = !isCached
? Optional.Create<SocketUserMessage>()
: Optional.Create(cachedMsg);

var optionalUser = user is null
? Optional.Create<IUser>()
: Optional.Create(user);

var reaction = SocketReaction.Create(data, channel, optionalMsg, optionalUser);
var cacheable = new Cacheable<IUserMessage, ulong>(cachedMsg, data.MessageId, isCached, async () => await channel.GetMessageAsync(data.MessageId).ConfigureAwait(false) as IUserMessage);

cachedMsg?.RemoveReaction(reaction);


Loading…
Cancel
Save