Added AddParameter<T>. Fixed AddParameter ignoring default typereaders.

This commit is contained in:
RogueException
2016-12-16 10:00:39 -04:00
parent 2dd62ba5e7
commit d623b18dff
2 changed files with 14 additions and 4 deletions

View File

@@ -80,6 +80,13 @@ namespace Discord.Commands.Builders
_preconditions.Add(precondition);
return this;
}
public CommandBuilder AddParameter<T>(string name, Action<ParameterBuilder> createFunc)
{
var param = new ParameterBuilder(this, name, typeof(T));
createFunc(param);
_parameters.Add(param);
return this;
}
public CommandBuilder AddParameter(string name, Type type, Action<ParameterBuilder> createFunc)
{
var param = new ParameterBuilder(this, name, type);

View File

@@ -43,10 +43,13 @@ namespace Discord.Commands.Builders
internal void SetType(Type type)
{
var readers = Command.Module.Service.GetTypeReaders(type);
if (readers == null)
throw new InvalidOperationException($"{type} does not have a TypeReader registered for it");
TypeReader = readers.FirstOrDefault().Value;
if (readers != null)
TypeReader = readers.FirstOrDefault().Value;
else
TypeReader = Command.Module.Service.GetDefaultTypeReader(type);
if (TypeReader == null)
throw new InvalidOperationException($"{type} does not have a TypeReader registered for it");
if (type.GetTypeInfo().IsValueType)
DefaultValue = Activator.CreateInstance(type);