diff --git a/src/Discord.Net.Commands/CommandBuilder.cs b/src/Discord.Net.Commands/CommandBuilder.cs index 6b29cd893..3659f82c5 100644 --- a/src/Discord.Net.Commands/CommandBuilder.cs +++ b/src/Discord.Net.Commands/CommandBuilder.cs @@ -121,10 +121,11 @@ namespace Discord.Commands public CommandService Service => _service; - internal CommandGroupBuilder(CommandService service, string prefix, IEnumerable initialChecks = null) + internal CommandGroupBuilder(CommandService service, string prefix = "", string category = null, IEnumerable initialChecks = null) { _service = service; _prefix = prefix; + _category = category; if (initialChecks != null) _checks = new List(initialChecks); else @@ -145,9 +146,9 @@ namespace Discord.Commands _checks.Add(new GenericPermissionChecker(checkFunc, errorMsg)); } - public CommandGroupBuilder CreateGroup(string cmd, Action config = null) - { - config(new CommandGroupBuilder(_service, CommandBuilder.AppendPrefix(_prefix, cmd), _checks)); + public CommandGroupBuilder CreateGroup(string cmd, Action config) + { + config(new CommandGroupBuilder(_service, CommandBuilder.AppendPrefix(_prefix, cmd), _category, _checks)); return this; } public CommandBuilder CreateCommand() diff --git a/src/Discord.Net.Commands/CommandMap.cs b/src/Discord.Net.Commands/CommandMap.cs index 6dd9d2ff1..98decd833 100644 --- a/src/Discord.Net.Commands/CommandMap.cs +++ b/src/Discord.Net.Commands/CommandMap.cs @@ -20,16 +20,20 @@ namespace Discord.Commands public IEnumerable Commands => _commands; public IEnumerable SubGroups => _items.Values; - public CommandMap(CommandMap parent, string name, string fullName) + public CommandMap() + { + _items = new Dictionary(); + _commands = new List(); + _isVisible = false; + _hasNonAliases = false; + _hasSubGroups = false; + } + public CommandMap(CommandMap parent, string name, string fullName) + : this() { _parent = parent; _name = name; _fullName = fullName; - _items = new Dictionary(); - _commands = new List(); - _isVisible = false; - _hasNonAliases = false; - _hasSubGroups = false; } public CommandMap GetItem(string text) diff --git a/src/Discord.Net.Commands/CommandService.cs b/src/Discord.Net.Commands/CommandService.cs index d87b61aff..8d5e691bf 100644 --- a/src/Discord.Net.Commands/CommandService.cs +++ b/src/Discord.Net.Commands/CommandService.cs @@ -34,9 +34,9 @@ namespace Discord.Commands Config = config; _allCommands = new List(); - _map = new CommandMap(null, "", ""); + _map = new CommandMap(); _categories = new Dictionary(); - Root = new CommandGroupBuilder(this, "", null); + Root = new CommandGroupBuilder(this); } void IService.Install(DiscordClient client) @@ -309,7 +309,7 @@ namespace Discord.Commands string categoryName = command.Category ?? ""; if (!_categories.TryGetValue(categoryName, out category)) { - category = new CommandMap(null, "", ""); + category = new CommandMap(); _categories.Add(categoryName, category); }