diff --git a/DeukBot4/MessageHandlers/CommandHandler/RequestStructure/ParameterMatcher.cs b/DeukBot4/MessageHandlers/CommandHandler/RequestStructure/ParameterMatcher.cs index eeed654..fe88dfa 100644 --- a/DeukBot4/MessageHandlers/CommandHandler/RequestStructure/ParameterMatcher.cs +++ b/DeukBot4/MessageHandlers/CommandHandler/RequestStructure/ParameterMatcher.cs @@ -45,7 +45,7 @@ namespace DeukBot4.MessageHandlers.CommandHandler.RequestStructure case ParameterType.Remainder: return $" *(?<{index}>.*)"; case ParameterType.User: - return $" *(?:<@!*(?<{index}>\\d+)>|(?<{index}>\\d+)(?:$| |\n))"; + return $" *(?:<@!*(?<{index}>\\d+)>|(?<{index}>\\d+)|(?<{index}>\\w+)(?:$| |\n))"; case ParameterType.Timespan: return $" *(?<{index}>\\d+\\.*\\d*[smhd])"; default: diff --git a/DeukBot4/MessageHandlers/CommandHandler/RequestStructure/RequestParameter.cs b/DeukBot4/MessageHandlers/CommandHandler/RequestStructure/RequestParameter.cs index ca5abe6..871dd28 100644 --- a/DeukBot4/MessageHandlers/CommandHandler/RequestStructure/RequestParameter.cs +++ b/DeukBot4/MessageHandlers/CommandHandler/RequestStructure/RequestParameter.cs @@ -45,7 +45,15 @@ namespace DeukBot4.MessageHandlers.CommandHandler.RequestStructure { return await guild.GetUserAsync(i); } - return null; + else + { + var t1 = DateTime.UtcNow; + var users = await guild.GetUsersAsync(); + var user = users.FirstOrDefault(x => + x.Username.IndexOf(_value, StringComparison.InvariantCultureIgnoreCase) != -1); + Logger.Main.LogWarning($"Finding user on server took {(DateTime.UtcNow - t1).TotalMilliseconds} ms"); + return user; + } } } } \ No newline at end of file