| @@ -305,9 +305,13 @@ namespace Discord.Commands | |||||
| // Calculates the 'score' of a command given a parse result | // Calculates the 'score' of a command given a parse result | ||||
| float CalculateScore(CommandMatch match, ParseResult parseResult) | float CalculateScore(CommandMatch match, ParseResult parseResult) | ||||
| { | { | ||||
| //TODO: is this calculation correct? | |||||
| var argValuesScore = parseResult.ArgValues.Sum(x => x.Values.OrderByDescending(y => y.Score).FirstOrDefault().Score) / match.Command.Parameters.Count; | |||||
| var paramValuesScore = parseResult.ParamValues.Sum(x => x.Values.OrderByDescending(y => y.Score).FirstOrDefault().Score) / match.Command.Parameters.Count; | |||||
| float argValuesScore = 0, paramValuesScore = 0; | |||||
| if (match.Command.Parameters.Count > 0) | |||||
| { | |||||
| argValuesScore = parseResult.ArgValues.Sum(x => x.Values.OrderByDescending(y => y.Score).FirstOrDefault().Score) / match.Command.Parameters.Count; | |||||
| paramValuesScore = parseResult.ParamValues.Sum(x => x.Values.OrderByDescending(y => y.Score).FirstOrDefault().Score) / match.Command.Parameters.Count; | |||||
| } | |||||
| var totalArgsScore = (argValuesScore + paramValuesScore) / 2; | var totalArgsScore = (argValuesScore + paramValuesScore) / 2; | ||||
| return match.Command.Priority + totalArgsScore * 0.99f; | return match.Command.Priority + totalArgsScore * 0.99f; | ||||