示例#1
0
 private async Task OnCommandFailureAsync(CommandFailedEventArgs args)
 {
     var reason = args.Result switch
     {
         CommandNotFoundResult _ => "Unknown command.",
         ChecksFailedResult cfr =>
         $"One or more checks failed for command **{cfr.Command.Name}**: {Format.Code(cfr.FailedChecks.Select(x => x.Result.FailureReason).Join('\n'), "css")}",
         ParameterChecksFailedResult pcfr =>
         $"One or more checks failed on parameter **{pcfr.Parameter.Name}**: {Format.Code(pcfr.FailedChecks.Select(x => x.Result.FailureReason).Join('\n'), "css")}",
         ArgumentParseFailedResult apfr => $"Parsing for arguments failed for {Format.Bold(apfr.Command.Name)}.",
         TypeParseFailedResult tpfr => tpfr.FailureReason,
         OverloadsFailedResult _ => "A suitable overload could not be found for the given parameter type/order.",
         CommandExecutionFailedResult cefr => ExecutionFailed(cefr),
         _ => Unknown(args.Result)
     };
示例#2
0
 static string ExecutionFailed(CommandExecutionFailedResult result)
 {
     Logger.Exception(result.Exception);
     return($"Execution of this command failed. Exception: {result.Exception.GetType().AsPrettyString()}");
 }