diff --git a/src/Discord.Net.WebSocket/Entities/Messages/MessageCache.cs b/src/Discord.Net.WebSocket/Entities/Messages/MessageCache.cs index 8d0bde94d..51f00c8c7 100644 --- a/src/Discord.Net.WebSocket/Entities/Messages/MessageCache.cs +++ b/src/Discord.Net.WebSocket/Entities/Messages/MessageCache.cs @@ -63,26 +63,8 @@ namespace Discord.WebSocket if (!_messages.TryGetValue(fromMessageId.Value, out SocketMessage msg)) return ImmutableArray.Empty; int around = limit / 2; - var before = _orderedMessages - .Where(x => x < fromMessageId.Value) - .Select(x => - { - if (_messages.TryGetValue(x, out SocketMessage msg)) - return msg; - return null; - }) - .Where(x => x != null) - .Take(around); - var after = _orderedMessages - .Where(x => x > fromMessageId.Value) - .Select(x => - { - if (_messages.TryGetValue(x, out SocketMessage msg)) - return msg; - return null; - }) - .Where(x => x != null) - .Take(around); + var before = GetMany(fromMessageId, Direction.Before, around); + var after = GetMany(fromMessageId, Direction.After, around); return before.Concat(new SocketMessage[] { msg }).Concat(after).ToImmutableArray(); }