Browse Source

Revert PreconditionResult -> IResult in return types - Change PreconditionResult to a class that PreconditionGroupResult inherits.

pull/672/head
Joe4evr 8 years ago
parent
commit
5bb6dd40bd
4 changed files with 11 additions and 18 deletions
  1. +2
    -2
      src/Discord.Net.Commands/CommandMatch.cs
  2. +2
    -2
      src/Discord.Net.Commands/Info/CommandInfo.cs
  3. +5
    -12
      src/Discord.Net.Commands/Results/PreconditionGroupResult.cs
  4. +2
    -2
      src/Discord.Net.Commands/Results/PreconditionResult.cs

+ 2
- 2
src/Discord.Net.Commands/CommandMatch.cs View File

@@ -16,9 +16,9 @@ namespace Discord.Commands
Alias = alias; Alias = alias;
} }


public Task<IResult> CheckPreconditionsAsync(ICommandContext context, IServiceProvider services = null)
public Task<PreconditionResult> CheckPreconditionsAsync(ICommandContext context, IServiceProvider services = null)
=> Command.CheckPreconditionsAsync(context, services); => Command.CheckPreconditionsAsync(context, services);
public Task<ParseResult> ParseAsync(ICommandContext context, SearchResult searchResult, IResult preconditionResult = null)
public Task<ParseResult> ParseAsync(ICommandContext context, SearchResult searchResult, PreconditionResult 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);


+ 2
- 2
src/Discord.Net.Commands/Info/CommandInfo.cs View File

@@ -64,7 +64,7 @@ namespace Discord.Commands
_action = builder.Callback; _action = builder.Callback;
} }


public async Task<IResult> CheckPreconditionsAsync(ICommandContext context, IServiceProvider services = null)
public async Task<PreconditionResult> CheckPreconditionsAsync(ICommandContext context, IServiceProvider services = null)
{ {
services = services ?? EmptyServiceProvider.Instance; services = services ?? EmptyServiceProvider.Instance;


@@ -105,7 +105,7 @@ namespace Discord.Commands
return PreconditionResult.FromSuccess(); return PreconditionResult.FromSuccess();
} }
public async Task<ParseResult> ParseAsync(ICommandContext context, int startIndex, SearchResult searchResult, IResult preconditionResult = null)
public async Task<ParseResult> ParseAsync(ICommandContext context, int startIndex, SearchResult searchResult, PreconditionResult preconditionResult = null)
{ {
if (!searchResult.IsSuccess) if (!searchResult.IsSuccess)
return ParseResult.FromError(searchResult); return ParseResult.FromError(searchResult);


+ 5
- 12
src/Discord.Net.Commands/Results/PreconditionGroupResult.cs View File

@@ -5,28 +5,21 @@ using System.Linq;
namespace Discord.Commands namespace Discord.Commands
{ {
[DebuggerDisplay(@"{DebuggerDisplay,nq}")] [DebuggerDisplay(@"{DebuggerDisplay,nq}")]
public struct PreconditionGroupResult : IResult
public class PreconditionGroupResult : PreconditionResult
{ {
public CommandError? Error { get; }

public string ErrorReason { get; }

public bool IsSuccess => !Error.HasValue;

public IReadOnlyCollection<PreconditionResult> Preconditions { get; } public IReadOnlyCollection<PreconditionResult> Preconditions { get; }


private PreconditionGroupResult(CommandError? error, string errorReason, ICollection<PreconditionResult> preconditions)
protected PreconditionGroupResult(CommandError? error, string errorReason, ICollection<PreconditionResult> preconditions)
: base(error, errorReason)
{ {
Error = error;
ErrorReason = errorReason;
Preconditions = (preconditions ?? Enumerable.Empty<PreconditionResult>().ToList()).ToReadOnlyCollection(); Preconditions = (preconditions ?? Enumerable.Empty<PreconditionResult>().ToList()).ToReadOnlyCollection();
} }


public static PreconditionGroupResult FromSuccess()
public static new PreconditionGroupResult FromSuccess()
=> new PreconditionGroupResult(null, null, null); => new PreconditionGroupResult(null, null, null);
public static PreconditionGroupResult FromError(string reason, ICollection<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 new PreconditionGroupResult FromError(IResult result) //needed?
=> new PreconditionGroupResult(result.Error, result.ErrorReason, null); => new PreconditionGroupResult(result.Error, result.ErrorReason, null);


public override string ToString() => IsSuccess ? "Success" : $"{Error}: {ErrorReason}"; public override string ToString() => IsSuccess ? "Success" : $"{Error}: {ErrorReason}";


+ 2
- 2
src/Discord.Net.Commands/Results/PreconditionResult.cs View File

@@ -3,14 +3,14 @@
namespace Discord.Commands namespace Discord.Commands
{ {
[DebuggerDisplay(@"{DebuggerDisplay,nq}")] [DebuggerDisplay(@"{DebuggerDisplay,nq}")]
public struct PreconditionResult : IResult
public class PreconditionResult : IResult
{ {
public CommandError? Error { get; } public CommandError? Error { get; }
public string ErrorReason { get; } public string ErrorReason { get; }


public bool IsSuccess => !Error.HasValue; public bool IsSuccess => !Error.HasValue;


private PreconditionResult(CommandError? error, string errorReason)
protected PreconditionResult(CommandError? error, string errorReason)
{ {
Error = error; Error = error;
ErrorReason = errorReason; ErrorReason = errorReason;


Loading…
Cancel
Save