diff --git a/Geekbot.net/Lib/ErrorHandler.cs b/Geekbot.net/Lib/ErrorHandler.cs index 4320df5..249c837 100644 --- a/Geekbot.net/Lib/ErrorHandler.cs +++ b/Geekbot.net/Lib/ErrorHandler.cs @@ -18,7 +18,7 @@ namespace Geekbot.net.Lib public void HandleCommandException(Exception e, ICommandContext Context) { var errorMsg = - $"Error Occured while executing \"{Context.Message.Content}\", executed by \"{Context.User.Username}\""; + $"Error Occured while executing \"{Context.Message.Content}\", executed by \"{Context.User.Username}\", complete message was \"{Context.Message}\""; logger.Error(e, errorMsg); // await botOwnerDmChannel.SendMessageAsync($"{errorMsg}```{e.StackTrace}```"); // await Context.Channel.SendMessageAsync("Something went wrong..."); diff --git a/Geekbot.net/Modules/UserInfo.cs b/Geekbot.net/Modules/UserInfo.cs index faf6543..21fc618 100644 --- a/Geekbot.net/Modules/UserInfo.cs +++ b/Geekbot.net/Modules/UserInfo.cs @@ -1,5 +1,8 @@ using System; +using System.Collections; +using System.Collections.Generic; using System.Linq; +using System.Runtime.InteropServices.ComTypes; using System.Text; using System.Threading.Tasks; using Discord; @@ -70,19 +73,33 @@ namespace Geekbot.net.Modules try { var messageList = redis.HashGetAll($"{Context.Guild.Id}:Messages"); - var sortedList = messageList.OrderByDescending(e => e.Value).ToList().Take(11).ToList(); + var sortedList = messageList.OrderByDescending(e => e.Value).ToList(); var guildMessages = (int) sortedList.First().Value; sortedList.RemoveAt(0); - var highScore = new StringBuilder(); - highScore.AppendLine($":bar_chart: **Highscore for {Context.Guild.Name}**"); - var counter = 1; + + var highscoreUsers = new Dictionary(); + var listLimiter = 1; foreach (var user in sortedList) { + if (listLimiter > 10) break; + var guildUser = Context.Guild.GetUserAsync((ulong) user.Name).Result; - var percent = Math.Round((double) (100 * (int) user.Value) / guildMessages, 2); + if (guildUser != null) + { + highscoreUsers.Add(guildUser, (int)user.Value); + listLimiter++; + } + } + + var highScore = new StringBuilder(); + highScore.AppendLine($":bar_chart: **Highscore for {Context.Guild.Name}**"); + var highscorePlace = 1; + foreach (var user in highscoreUsers) + { + var percent = Math.Round((double) (100 * user.Value) / guildMessages, 2); highScore.AppendLine( - $"{NumerToEmoji(counter)} **{guildUser.Username}#{guildUser.Discriminator}** - {percent}% of total - {user.Value} messages"); - counter++; + $"{NumerToEmoji(highscorePlace)} **{user.Key.Username}#{user.Key.Discriminator}** - {percent}% of total - {user.Value} messages"); + highscorePlace++; } await ReplyAsync(highScore.ToString()); } diff --git a/Geekbot.net/Program.cs b/Geekbot.net/Program.cs index 455429b..d06b7ba 100755 --- a/Geekbot.net/Program.cs +++ b/Geekbot.net/Program.cs @@ -273,9 +273,8 @@ namespace Geekbot.net redis.HashSet($"{guildId}:Settings", new HashEntry[] { new HashEntry("WelcomeMsg", val) }); break; } - //redis.KeyDelete(key); - } + redis.KeyDelete(key); } } return Task.CompletedTask;