Browse Source

Fixed OOB error in MessageCache.Download

pull/97/head
RogueException 9 years ago
parent
commit
6adb6b1882
1 changed files with 6 additions and 1 deletions
  1. +6
    -1
      src/Discord.Net/Entities/WebSocket/MessageCache.cs

src/Discord.Net/Utilities/MessageCache.cs → src/Discord.Net/Entities/WebSocket/MessageCache.cs View File

@@ -104,11 +104,16 @@ namespace Discord
return cachedMessages.Skip(cachedMessages.Count - limit).ToImmutableArray();
else
{
Optional<ulong> relativeId;
if (cachedMessages.Count == 0)
relativeId = fromId ?? new Optional<ulong>();
else
relativeId = dir == Direction.Before ? cachedMessages[0].Id : cachedMessages[cachedMessages.Count - 1].Id;
var args = new GetChannelMessagesParams
{
Limit = limit - cachedMessages.Count,
RelativeDirection = dir,
RelativeMessageId = dir == Direction.Before ? cachedMessages[0].Id : cachedMessages[cachedMessages.Count - 1].Id
RelativeMessageId = relativeId
};
var downloadedMessages = await _discord.ApiClient.GetChannelMessagesAsync(_channel.Id, args).ConfigureAwait(false);
return cachedMessages.Concat(downloadedMessages.Select(x => new CachedMessage(_channel, _channel.GetUser(x.Id), x))).ToImmutableArray();

Loading…
Cancel
Save