From 6953bc8ed36b70d1ac9dc8f2da9a8da4284a7e0e Mon Sep 17 00:00:00 2001 From: Noikoio Date: Fri, 19 Jan 2018 00:23:54 -0800 Subject: [PATCH] Adding cache lookup to ban/kick parameter --- Module/ModTools/Commands/BanKick.cs | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/Module/ModTools/Commands/BanKick.cs b/Module/ModTools/Commands/BanKick.cs index 24d85b0..4cc7924 100644 --- a/Module/ModTools/Commands/BanKick.cs +++ b/Module/ModTools/Commands/BanKick.cs @@ -3,6 +3,7 @@ using Discord.WebSocket; using Newtonsoft.Json.Linq; using Noikoio.RegexBot.ConfigItem; using System; +using System.Linq; using System.Text.RegularExpressions; using System.Threading.Tasks; @@ -82,22 +83,21 @@ namespace Noikoio.RegexBot.Module.ModTools.Commands } // Getting SocketGuildUser target + SocketGuildUser targetobj = null; + + // Extract snowflake value from mention (if a mention was given) Match m = UserMention.Match(targetstr); if (m.Success) targetstr = m.Groups["snowflake"].Value; - SocketGuildUser targetobj = null; - ulong targetuid; - string targetdisp; - if (ulong.TryParse(targetstr, out targetuid)) - { - targetobj = g.GetUser(targetuid); - targetdisp = (targetobj == null ? $"ID {targetuid}" : targetobj.ToString()); - } - else + var qres = (await EntityCache.EntityCache.QueryAsync(g.Id, targetstr)).FirstOrDefault(); + if (qres == null) { await SendUsageMessage(msg, ":x: **Unable to determine the target user.**"); return; } + ulong targetuid = qres.UserId; + targetobj = g.GetUser(targetuid); + string targetdisp = targetobj?.ToString() ?? $"ID {targetuid}"; if (_mode == CommandMode.Kick && targetobj == null) {