Complete Preconditions implementation
This commit is contained in:
@@ -28,6 +28,8 @@ namespace Discord.Commands
|
||||
=> new ExecuteResult(ex, CommandError.Exception, ex.Message);
|
||||
internal static ExecuteResult FromError(ParseResult result)
|
||||
=> new ExecuteResult(null, result.Error, result.ErrorReason);
|
||||
internal static ExecuteResult FromError(PreconditionResult result)
|
||||
=> new ExecuteResult(null, result.Error, result.ErrorReason);
|
||||
|
||||
public override string ToString() => IsSuccess ? "Success" : $"{Error}: {ErrorReason}";
|
||||
private string DebuggerDisplay => IsSuccess ? "Success" : $"{Error}: {ErrorReason}";
|
||||
|
||||
27
src/Discord.Net.Commands/Results/PreconditionResult.cs
Normal file
27
src/Discord.Net.Commands/Results/PreconditionResult.cs
Normal file
@@ -0,0 +1,27 @@
|
||||
using System.Diagnostics;
|
||||
|
||||
namespace Discord.Commands
|
||||
{
|
||||
[DebuggerDisplay(@"{DebuggerDisplay,nq}")]
|
||||
public struct PreconditionResult : IResult
|
||||
{
|
||||
public CommandError? Error { get; }
|
||||
public string ErrorReason { get; }
|
||||
|
||||
public bool IsSuccess => !Error.HasValue;
|
||||
|
||||
private PreconditionResult(CommandError? error, string errorReason)
|
||||
{
|
||||
Error = error;
|
||||
ErrorReason = errorReason;
|
||||
}
|
||||
|
||||
internal static PreconditionResult FromSuccess()
|
||||
=> new PreconditionResult(null, null);
|
||||
internal static PreconditionResult FromError(string reason)
|
||||
=> new PreconditionResult(CommandError.UnmetPrecondition, reason);
|
||||
|
||||
public override string ToString() => IsSuccess ? "Success" : $"{Error}: {ErrorReason}";
|
||||
private string DebuggerDisplay => IsSuccess ? "Success" : $"{Error}: {ErrorReason}";
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user