@@ -9,6 +9,7 @@ namespace Discord.Commands.Builders | |||||
{ | { | ||||
private readonly List<PreconditionAttribute> _preconditions; | private readonly List<PreconditionAttribute> _preconditions; | ||||
private readonly List<ParameterBuilder> _parameters; | private readonly List<ParameterBuilder> _parameters; | ||||
private readonly List<Attribute> _attributes; | |||||
private readonly List<string> _aliases; | private readonly List<string> _aliases; | ||||
public ModuleBuilder Module { get; } | public ModuleBuilder Module { get; } | ||||
@@ -23,6 +24,7 @@ namespace Discord.Commands.Builders | |||||
public IReadOnlyList<PreconditionAttribute> Preconditions => _preconditions; | public IReadOnlyList<PreconditionAttribute> Preconditions => _preconditions; | ||||
public IReadOnlyList<ParameterBuilder> Parameters => _parameters; | public IReadOnlyList<ParameterBuilder> Parameters => _parameters; | ||||
public IReadOnlyList<Attribute> Attributes => _attributes; | |||||
public IReadOnlyList<string> Aliases => _aliases; | public IReadOnlyList<string> Aliases => _aliases; | ||||
//Automatic | //Automatic | ||||
@@ -32,6 +34,7 @@ namespace Discord.Commands.Builders | |||||
_preconditions = new List<PreconditionAttribute>(); | _preconditions = new List<PreconditionAttribute>(); | ||||
_parameters = new List<ParameterBuilder>(); | _parameters = new List<ParameterBuilder>(); | ||||
_attributes = new List<Attribute>(); | |||||
_aliases = new List<string>(); | _aliases = new List<string>(); | ||||
} | } | ||||
//User-defined | //User-defined | ||||
@@ -82,6 +85,11 @@ namespace Discord.Commands.Builders | |||||
} | } | ||||
return this; | return this; | ||||
} | } | ||||
public CommandBuilder AddAttributes(params Attribute[] attributes) | |||||
{ | |||||
_attributes.AddRange(attributes); | |||||
return this; | |||||
} | |||||
public CommandBuilder AddPrecondition(PreconditionAttribute precondition) | public CommandBuilder AddPrecondition(PreconditionAttribute precondition) | ||||
{ | { | ||||
_preconditions.Add(precondition); | _preconditions.Add(precondition); | ||||
@@ -9,6 +9,7 @@ namespace Discord.Commands.Builders | |||||
private readonly List<CommandBuilder> _commands; | private readonly List<CommandBuilder> _commands; | ||||
private readonly List<ModuleBuilder> _submodules; | private readonly List<ModuleBuilder> _submodules; | ||||
private readonly List<PreconditionAttribute> _preconditions; | private readonly List<PreconditionAttribute> _preconditions; | ||||
private readonly List<Attribute> _attributes; | |||||
private readonly List<string> _aliases; | private readonly List<string> _aliases; | ||||
public CommandService Service { get; } | public CommandService Service { get; } | ||||
@@ -20,6 +21,7 @@ namespace Discord.Commands.Builders | |||||
public IReadOnlyList<CommandBuilder> Commands => _commands; | public IReadOnlyList<CommandBuilder> Commands => _commands; | ||||
public IReadOnlyList<ModuleBuilder> Modules => _submodules; | public IReadOnlyList<ModuleBuilder> Modules => _submodules; | ||||
public IReadOnlyList<PreconditionAttribute> Preconditions => _preconditions; | public IReadOnlyList<PreconditionAttribute> Preconditions => _preconditions; | ||||
public IReadOnlyList<Attribute> Attributes => _attributes; | |||||
public IReadOnlyList<string> Aliases => _aliases; | public IReadOnlyList<string> Aliases => _aliases; | ||||
//Automatic | //Automatic | ||||
@@ -31,6 +33,7 @@ namespace Discord.Commands.Builders | |||||
_commands = new List<CommandBuilder>(); | _commands = new List<CommandBuilder>(); | ||||
_submodules = new List<ModuleBuilder>(); | _submodules = new List<ModuleBuilder>(); | ||||
_preconditions = new List<PreconditionAttribute>(); | _preconditions = new List<PreconditionAttribute>(); | ||||
_attributes = new List<Attribute>(); | |||||
_aliases = new List<string>(); | _aliases = new List<string>(); | ||||
} | } | ||||
//User-defined | //User-defined | ||||
@@ -68,6 +71,11 @@ namespace Discord.Commands.Builders | |||||
} | } | ||||
return this; | return this; | ||||
} | } | ||||
public ModuleBuilder AddAttributes(params Attribute[] attributes) | |||||
{ | |||||
_attributes.AddRange(attributes); | |||||
return this; | |||||
} | |||||
public ModuleBuilder AddPrecondition(PreconditionAttribute precondition) | public ModuleBuilder AddPrecondition(PreconditionAttribute precondition) | ||||
{ | { | ||||
_preconditions.Add(precondition); | _preconditions.Add(precondition); | ||||
@@ -98,6 +98,8 @@ namespace Discord.Commands | |||||
} | } | ||||
else if (attribute is PreconditionAttribute) | else if (attribute is PreconditionAttribute) | ||||
builder.AddPrecondition(attribute as PreconditionAttribute); | builder.AddPrecondition(attribute as PreconditionAttribute); | ||||
else | |||||
builder.AddAttributes(attribute); | |||||
} | } | ||||
//Check for unspecified info | //Check for unspecified info | ||||
@@ -143,6 +145,8 @@ namespace Discord.Commands | |||||
builder.AddAliases((attribute as AliasAttribute).Aliases); | builder.AddAliases((attribute as AliasAttribute).Aliases); | ||||
else if (attribute is PreconditionAttribute) | else if (attribute is PreconditionAttribute) | ||||
builder.AddPrecondition(attribute as PreconditionAttribute); | builder.AddPrecondition(attribute as PreconditionAttribute); | ||||
else | |||||
builder.AddAttributes(attribute); | |||||
} | } | ||||
if (builder.Name == null) | if (builder.Name == null) | ||||