@@ -16,9 +16,9 @@ namespace Discord.Commands | |||||
Alias = alias; | Alias = alias; | ||||
} | } | ||||
public Task<PreconditionResult> CheckPreconditionsAsync(ICommandContext context, IServiceProvider services = null) | |||||
public Task<IResult> CheckPreconditionsAsync(ICommandContext context, IServiceProvider services = null) | |||||
=> Command.CheckPreconditionsAsync(context, services); | => Command.CheckPreconditionsAsync(context, services); | ||||
public Task<ParseResult> ParseAsync(ICommandContext context, SearchResult searchResult, PreconditionResult? preconditionResult = null) | |||||
public Task<ParseResult> ParseAsync(ICommandContext context, SearchResult searchResult, IResult preconditionResult = null) | |||||
=> Command.ParseAsync(context, Alias.Length, searchResult, preconditionResult); | => Command.ParseAsync(context, Alias.Length, searchResult, preconditionResult); | ||||
public Task<ExecuteResult> ExecuteAsync(ICommandContext context, IEnumerable<object> argList, IEnumerable<object> paramList, IServiceProvider services) | public Task<ExecuteResult> ExecuteAsync(ICommandContext context, IEnumerable<object> argList, IEnumerable<object> paramList, IServiceProvider services) | ||||
=> Command.ExecuteAsync(context, argList, paramList, services); | => Command.ExecuteAsync(context, argList, paramList, services); | ||||
@@ -105,12 +105,12 @@ namespace Discord.Commands | |||||
return PreconditionResult.FromSuccess(); | return PreconditionResult.FromSuccess(); | ||||
} | } | ||||
public async Task<ParseResult> ParseAsync(ICommandContext context, int startIndex, SearchResult searchResult, PreconditionResult? preconditionResult = null) | |||||
public async Task<ParseResult> ParseAsync(ICommandContext context, int startIndex, SearchResult searchResult, IResult preconditionResult = null) | |||||
{ | { | ||||
if (!searchResult.IsSuccess) | if (!searchResult.IsSuccess) | ||||
return ParseResult.FromError(searchResult); | return ParseResult.FromError(searchResult); | ||||
if (preconditionResult != null && !preconditionResult.Value.IsSuccess) | |||||
return ParseResult.FromError(preconditionResult.Value); | |||||
if (preconditionResult != null && !preconditionResult.IsSuccess) | |||||
return ParseResult.FromError(preconditionResult); | |||||
string input = searchResult.Text.Substring(startIndex); | string input = searchResult.Text.Substring(startIndex); | ||||
return await CommandParser.ParseArgs(this, context, input, 0).ConfigureAwait(false); | return await CommandParser.ParseArgs(this, context, input, 0).ConfigureAwait(false); | ||||
@@ -13,18 +13,18 @@ namespace Discord.Commands | |||||
public bool IsSuccess => !Error.HasValue; | public bool IsSuccess => !Error.HasValue; | ||||
public IEnumerable<PreconditionResult> Preconditions { get; } | |||||
public IReadOnlyCollection<PreconditionResult> Preconditions { get; } | |||||
private PreconditionGroupResult(CommandError? error, string errorReason, IEnumerable<PreconditionResult> preconditions) | |||||
private PreconditionGroupResult(CommandError? error, string errorReason, ICollection<PreconditionResult> preconditions) | |||||
{ | { | ||||
Error = error; | Error = error; | ||||
ErrorReason = errorReason; | ErrorReason = errorReason; | ||||
Preconditions = preconditions ?? Enumerable.Empty<PreconditionResult>(); | |||||
Preconditions = (preconditions ?? Enumerable.Empty<PreconditionResult>().ToList()).ToReadOnlyCollection(); | |||||
} | } | ||||
public static PreconditionGroupResult FromSuccess() | public static PreconditionGroupResult FromSuccess() | ||||
=> new PreconditionGroupResult(null, null, null); | => new PreconditionGroupResult(null, null, null); | ||||
public static PreconditionGroupResult FromError(string reason, IEnumerable<PreconditionResult> preconditions) | |||||
public static PreconditionGroupResult FromError(string reason, ICollection<PreconditionResult> preconditions) | |||||
=> new PreconditionGroupResult(CommandError.UnmetPrecondition, reason, preconditions); | => new PreconditionGroupResult(CommandError.UnmetPrecondition, reason, preconditions); | ||||
public static PreconditionGroupResult FromError(IResult result) //needed? | public static PreconditionGroupResult FromError(IResult result) //needed? | ||||
=> new PreconditionGroupResult(result.Error, result.ErrorReason, null); | => new PreconditionGroupResult(result.Error, result.ErrorReason, null); | ||||