Improve message cache management

This commit is contained in:
Brandon Smith
2015-10-31 00:31:14 -03:00
committed by RogueException
parent 370a3e9b08
commit d418c95481

View File

@@ -146,14 +146,12 @@ namespace Discord
var cacheLength = _client.Config.MessageCacheLength;
if (cacheLength > 0)
{
while (_messages.Count > cacheLength - 1)
var oldestIds = _messages.Select(x => x.Value.Id).OrderBy(x => x).Take(_messages.Count - cacheLength);
foreach (var id in oldestIds)
{
var oldest = _messages.Select(x => x.Value.Id).OrderBy(x => x).FirstOrDefault();
if (oldest != null)
{
if (_messages.TryRemove(oldest, out message))
_client.Messages.TryRemove(oldest);
}
Message removed;
if (_messages.TryRemove(id, out removed))
_client.Messages.TryRemove(id);
}
_messages.TryAdd(message.Id, message);
}