diff --git a/src/Discord.Net.Commands/CommandService.cs b/src/Discord.Net.Commands/CommandService.cs index ec96479bb..a2f5c7004 100644 --- a/src/Discord.Net.Commands/CommandService.cs +++ b/src/Discord.Net.Commands/CommandService.cs @@ -265,5 +265,24 @@ namespace Discord.Commands else return SearchResult.FromError(CommandError.UnknownCommand, "Unknown command."); } + + public async Task Execute(IMessage message, string input) + { + var searchResult = Search(input); + if (!searchResult.IsSuccess) + return searchResult; + + var commands = searchResult.Commands; + for (int i = 0; i < commands.Count; i++) + { + var parseResult = await commands[i].Parse(message, searchResult); + if (!parseResult.IsSuccess) + continue; + var executeResult = await commands[i].Execute(message, parseResult); + return executeResult; + } + + return ParseResult.FromError(CommandError.ParseFailed, "This input does not match any overload."); + } } }