Making the level calculator more efficient

This commit is contained in:
Runebaas 2017-10-25 00:58:59 +02:00
parent ac73a8e6f9
commit 1f48d0387b
No known key found for this signature in database
GPG key ID: 2677AF508D0300D6
4 changed files with 59 additions and 33 deletions

View file

@ -11,11 +11,13 @@ namespace Geekbot.net.Commands
{
private readonly IDatabase _redis;
private readonly IErrorHandler _errorHandler;
private readonly ILevelCalc _levelCalc;
public Stats(IDatabase redis, IErrorHandler errorHandler)
public Stats(IDatabase redis, IErrorHandler errorHandler, ILevelCalc levelCalc)
{
_redis = redis;
_errorHandler = errorHandler;
_levelCalc = levelCalc;
}
[Command("stats", RunMode = RunMode.Async)]
@ -34,7 +36,7 @@ namespace Geekbot.net.Commands
var messages = (int) _redis.HashGet($"{Context.Guild.Id}:Messages", userInfo.Id.ToString());
var guildMessages = (int) _redis.HashGet($"{Context.Guild.Id}:Messages", 0.ToString());
var level = LevelCalc.GetLevelAtExperience(messages);
var level = _levelCalc.GetLevelAtExperience(messages);
var percent = Math.Round((double) (100 * messages) / guildMessages, 2);