Added AddParameter<T>. Fixed AddParameter ignoring default typereaders.
This commit is contained in:
@@ -80,6 +80,13 @@ namespace Discord.Commands.Builders
|
|||||||
_preconditions.Add(precondition);
|
_preconditions.Add(precondition);
|
||||||
return this;
|
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)
|
public CommandBuilder AddParameter(string name, Type type, Action<ParameterBuilder> createFunc)
|
||||||
{
|
{
|
||||||
var param = new ParameterBuilder(this, name, type);
|
var param = new ParameterBuilder(this, name, type);
|
||||||
|
|||||||
@@ -43,10 +43,13 @@ namespace Discord.Commands.Builders
|
|||||||
internal void SetType(Type type)
|
internal void SetType(Type type)
|
||||||
{
|
{
|
||||||
var readers = Command.Module.Service.GetTypeReaders(type);
|
var readers = Command.Module.Service.GetTypeReaders(type);
|
||||||
if (readers == null)
|
if (readers != null)
|
||||||
throw new InvalidOperationException($"{type} does not have a TypeReader registered for it");
|
TypeReader = readers.FirstOrDefault().Value;
|
||||||
|
else
|
||||||
|
TypeReader = Command.Module.Service.GetDefaultTypeReader(type);
|
||||||
|
|
||||||
TypeReader = readers.FirstOrDefault().Value;
|
if (TypeReader == null)
|
||||||
|
throw new InvalidOperationException($"{type} does not have a TypeReader registered for it");
|
||||||
|
|
||||||
if (type.GetTypeInfo().IsValueType)
|
if (type.GetTypeInfo().IsValueType)
|
||||||
DefaultValue = Activator.CreateInstance(type);
|
DefaultValue = Activator.CreateInstance(type);
|
||||||
|
|||||||
Reference in New Issue
Block a user