@@ -82,30 +82,21 @@ namespace Discord.Commands
return result;
}
return PreconditionResult.From Success() ;
return PreconditionResult.Success;
}
public async Task<ParseResult> ParseAsync(ICommandContext context, int startIndex, SearchResult searchResult, PreconditionResult preconditionResult = null )
public async Task<ParseResult> ParseAsync(ICommandContext context, string input )
{
if (!searchResult.IsSuccess)
return ParseResult.FromError(searchResult);
if (preconditionResult != null && !preconditionResult.IsSuccess)
return ParseResult.FromError(preconditionResult);
string input = searchResult.Text.Substring(startIndex);
return await CommandParser.ParseArgs(this, context, input, 0).ConfigureAwait(false);
}
public Task<Execute Result> ExecuteAsync(ICommandContext context, ParseResult parseResult, IDependencyMap map)
public Task<IResult> ExecuteAsync(ICommandContext context, ParseResult parseResult, IDependencyMap map)
{
if (!parseResult.IsSuccess)
return Task.FromResult(ExecuteResult.FromError(parseResult));
var argList = new object[parseResult.ArgValues.Count];
for (int i = 0; i < parseResult.ArgValues.Count; i++)
{
if (!parseResult.ArgValues[i].IsSuccess)
return Task.FromResult(ExecuteResult.FromError(parseResult.ArgValues[i]) );
return Task.FromResult(parseResult.ArgValues[i] as IResult );
argList[i] = parseResult.ArgValues[i].Values.First().Value;
}
@@ -113,13 +104,13 @@ namespace Discord.Commands
for (int i = 0; i < parseResult.ParamValues.Count; i++)
{
if (!parseResult.ParamValues[i].IsSuccess)
return Task.FromResult(ExecuteResult.FromError(parseResult.ParamValues[i]) );
return Task.FromResult(parseResult.ParamValues[i] as IResult );
paramList[i] = parseResult.ParamValues[i].Values.First().Value;
}
return ExecuteAsync(context, argList, paramList, map);
}
public async Task<Execute Result> ExecuteAsync(ICommandContext context, IEnumerable<object> argList, IEnumerable<object> paramList, IDependencyMap map)
public async Task<I Result> ExecuteAsync(ICommandContext context, IEnumerable<object> argList, IEnumerable<object> paramList, IDependencyMap map)
{
if (map == null)
map = DependencyMap.Empty;
@@ -134,7 +125,7 @@ namespace Discord.Commands
var argument = args[position];
var result = await parameter.CheckPreconditionsAsync(context, argument, map).ConfigureAwait(false);
if (!result.IsSuccess)
return ExecuteResult.FromError( result) ;
return result;
}
switch (RunMode)
@@ -149,7 +140,7 @@ namespace Discord.Commands
});
break;
}
return ExecuteResult.From Success() ;
return ExecuteResult.Success;
}
catch (Exception ex)
{