From d25fbf78c061849130a5232ee804844e5df350b1 Mon Sep 17 00:00:00 2001 From: FiniteReality Date: Tue, 15 Nov 2016 21:46:16 +0000 Subject: [PATCH] Use lambda-style subbuilders --- .../Builders/CommandBuilder.cs | 18 ++++----- .../Builders/ModuleBuilder.cs | 38 ++++++------------- 2 files changed, 18 insertions(+), 38 deletions(-) diff --git a/src/Discord.Net.Commands/Builders/CommandBuilder.cs b/src/Discord.Net.Commands/Builders/CommandBuilder.cs index 077787427..2ea01e3bb 100644 --- a/src/Discord.Net.Commands/Builders/CommandBuilder.cs +++ b/src/Discord.Net.Commands/Builders/CommandBuilder.cs @@ -10,18 +10,12 @@ namespace Discord.Commands.Builders private List parameters; private List aliases; - internal CommandBuilder(ModuleBuilder module, string prefix) + internal CommandBuilder(ModuleBuilder module) { preconditions = new List(); parameters = new List(); aliases = new List(); - if (prefix != null) - { - aliases.Add(prefix); - Name = prefix; - } - Module = module; } @@ -65,15 +59,17 @@ namespace Discord.Commands.Builders return this; } - public CommandBuilder AddParameter(ParameterBuilder parameter) + public CommandBuilder AddParameter(Action createFunc) { - parameters.Add(parameter); + var param = new ParameterBuilder(); + createFunc(param); + parameters.Add(param); return this; } - public CommandBuilder AddAlias(string alias) + public CommandBuilder AddAliases(params string[] newAliases) { - aliases.Add(alias); + aliases.AddRange(newAliases); return this; } diff --git a/src/Discord.Net.Commands/Builders/ModuleBuilder.cs b/src/Discord.Net.Commands/Builders/ModuleBuilder.cs index 0375383a8..dd30b0130 100644 --- a/src/Discord.Net.Commands/Builders/ModuleBuilder.cs +++ b/src/Discord.Net.Commands/Builders/ModuleBuilder.cs @@ -12,29 +12,15 @@ namespace Discord.Commands.Builders private List aliases; public ModuleBuilder() - : this(null, null) - { } - - public ModuleBuilder(string prefix) - : this(null, prefix) + : this(null) { } internal ModuleBuilder(ModuleBuilder parent) - : this(parent, null) - { } - - internal ModuleBuilder(ModuleBuilder parent, string prefix) { commands = new List(); submodules = new List(); preconditions = new List(); aliases = new List(); - - if (prefix != null) - { - aliases.Add(prefix); - Name = prefix; - } ParentModule = parent; } @@ -67,9 +53,9 @@ namespace Discord.Commands.Builders return this; } - public ModuleBuilder AddAlias(string alias) + public ModuleBuilder AddAliases(params string[] newAliases) { - aliases.Add(alias); + aliases.AddRange(newAliases); return this; } @@ -79,22 +65,20 @@ namespace Discord.Commands.Builders return this; } - public CommandBuilder AddCommand() => AddCommand(null); - public CommandBuilder AddCommand(string name) + public ModuleBuilder AddCommand(Action createFunc) { - var builder = new CommandBuilder(this, name); + var builder = new CommandBuilder(this); + createFunc(builder); commands.Add(builder); - - return builder; + return this; } - public ModuleBuilder AddSubmodule() => AddSubmodule(null); - public ModuleBuilder AddSubmodule(string prefix) + public ModuleBuilder AddSubmodule(Action createFunc) { - var builder = new ModuleBuilder(this, prefix); + var builder = new ModuleBuilder(this); + createFunc(builder); submodules.Add(builder); - - return builder; + return this; } public ModuleInfo Build(CommandService service)