You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

PreconditionGroupResult.cs 1.3 kB

12345678910111213141516171819202122232425262728
  1. using System.Collections.Generic;
  2. using System.Diagnostics;
  3. using System.Linq;
  4. namespace Discord.Commands
  5. {
  6. [DebuggerDisplay(@"{DebuggerDisplay,nq}")]
  7. public class PreconditionGroupResult : PreconditionResult
  8. {
  9. public IReadOnlyCollection<PreconditionResult> PreconditionResults { get; }
  10. protected PreconditionGroupResult(CommandError? error, string errorReason, ICollection<PreconditionResult> preconditions)
  11. : base(error, errorReason)
  12. {
  13. PreconditionResults = (preconditions ?? new List<PreconditionResult>(0)).ToReadOnlyCollection();
  14. }
  15. public static new PreconditionGroupResult FromSuccess()
  16. => new PreconditionGroupResult(null, null, null);
  17. public static PreconditionGroupResult FromError(string reason, ICollection<PreconditionResult> preconditions)
  18. => new PreconditionGroupResult(CommandError.UnmetPrecondition, reason, preconditions);
  19. public static new PreconditionGroupResult FromError(IResult result) //needed?
  20. => new PreconditionGroupResult(result.Error, result.ErrorReason, null);
  21. public override string ToString() => IsSuccess ? "Success" : $"{Error}: {ErrorReason}";
  22. private string DebuggerDisplay => IsSuccess ? "Success" : $"{Error}: {ErrorReason}";
  23. }
  24. }