Added AddParameter<T>. Fixed AddParameter ignoring default typereaders.
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user