Implemented command type readers, parser and service.

This commit is contained in:
RogueException
2016-06-26 03:35:40 -03:00
parent d934a5a1eb
commit f59b6b9004
19 changed files with 775 additions and 42 deletions

View File

@@ -0,0 +1,34 @@
using System.Diagnostics;
using System.Threading.Tasks;
namespace Discord.Commands
{
//TODO: Add support for Multiple
[DebuggerDisplay(@"{DebuggerDisplay,nq}")]
public class CommandParameter
{
private readonly TypeReader _reader;
public string Name { get; }
public string Description { get; }
public bool IsOptional { get; }
public bool IsUnparsed { get; }
internal object DefaultValue { get; }
public CommandParameter(string name, string description, TypeReader reader, bool isOptional, bool isUnparsed, object defaultValue)
{
_reader = reader;
IsOptional = isOptional;
IsUnparsed = isUnparsed;
DefaultValue = defaultValue;
}
public async Task<TypeReaderResult> Parse(IMessage context, string input)
{
return await _reader.Read(context, input).ConfigureAwait(false);
}
public override string ToString() => Name;
private string DebuggerDisplay => $"{Name}{(IsOptional ? " (Optional)" : "")}{(IsUnparsed ? " (Unparsed)" : "")}";
}
}