Fix CommandExecuted not invoked on failed parse (#1993)

Co-Authored-By: Adam Gauthier <16079556+louistio@users.noreply.github.com>
This commit is contained in:
Quin Lynch
2021-12-24 10:38:33 -04:00
committed by GitHub
parent 1fbcbb8a67
commit 82bb3e403f

View File

@@ -541,6 +541,12 @@ namespace Discord.Commands
if (matchResult.Pipeline is ParseResult parseResult) if (matchResult.Pipeline is ParseResult parseResult)
{ {
if (!parseResult.IsSuccess)
{
await _commandExecutedEvent.InvokeAsync(matchResult.Match.Value.Command, context, parseResult);
return parseResult;
}
var executeResult = await matchResult.Match.Value.ExecuteAsync(context, parseResult, services); var executeResult = await matchResult.Match.Value.ExecuteAsync(context, parseResult, services);
if (!executeResult.IsSuccess && !(executeResult is RuntimeResult || executeResult is ExecuteResult)) // succesful results raise the event in CommandInfo#ExecuteInternalAsync (have to raise it there b/c deffered execution) if (!executeResult.IsSuccess && !(executeResult is RuntimeResult || executeResult is ExecuteResult)) // succesful results raise the event in CommandInfo#ExecuteInternalAsync (have to raise it there b/c deffered execution)