From 1ab763e157a2484165a302fc1aa81b0404c2ecde Mon Sep 17 00:00:00 2001 From: FiniteReality Date: Wed, 31 Aug 2016 13:51:09 +0100 Subject: [PATCH 1/3] Allow parameterless commands to build correctly Resolves #253 --- src/Discord.Net.Commands/Command.cs | 10 +++++++++- src/Discord.Net.Commands/Module.cs | 8 ++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/Discord.Net.Commands/Command.cs b/src/Discord.Net.Commands/Command.cs index 61eff4877..9df0bcc9d 100644 --- a/src/Discord.Net.Commands/Command.cs +++ b/src/Discord.Net.Commands/Command.cs @@ -38,7 +38,15 @@ namespace Discord.Commands _instance = instance; Name = source.Name; - Text = groupPrefix + attribute.Text; + + if (attribute.Text == null) + Text = groupPrefix; + + if (groupPrefix != "") + groupPrefix += " "; + + if (attribute.Text != null) + Text = groupPrefix + attribute.Text; var aliasesBuilder = ImmutableArray.CreateBuilder(); diff --git a/src/Discord.Net.Commands/Module.cs b/src/Discord.Net.Commands/Module.cs index 0624e6ef3..eff1f9787 100644 --- a/src/Discord.Net.Commands/Module.cs +++ b/src/Discord.Net.Commands/Module.cs @@ -48,8 +48,6 @@ namespace Discord.Commands private void SearchClass(TypeInfo parentType, object instance, List commands, string groupPrefix, IDependencyMap dependencyMap) { - if (groupPrefix != "") - groupPrefix += " "; foreach (var method in parentType.DeclaredMethods) { var cmdAttr = method.GetCustomAttribute(); @@ -63,9 +61,15 @@ namespace Discord.Commands { string nextGroupPrefix; if (groupAttrib.Prefix != null) + { + if (groupPrefix != "") + groupPrefix += " "; nextGroupPrefix = groupPrefix + groupAttrib.Prefix ?? type.Name; + } else + { nextGroupPrefix = groupPrefix; + } SearchClass(type, ReflectionUtils.CreateObject(type, Service, dependencyMap), commands, nextGroupPrefix, dependencyMap); } } From cddc39dfa1489817114eadcc88b62f62dbc239c2 Mon Sep 17 00:00:00 2001 From: FiniteReality Date: Wed, 31 Aug 2016 15:05:31 +0100 Subject: [PATCH 2/3] Don't add multiple spaces for multiple groups --- src/Discord.Net.Commands/Module.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Discord.Net.Commands/Module.cs b/src/Discord.Net.Commands/Module.cs index eff1f9787..7b74ffb87 100644 --- a/src/Discord.Net.Commands/Module.cs +++ b/src/Discord.Net.Commands/Module.cs @@ -63,8 +63,9 @@ namespace Discord.Commands if (groupAttrib.Prefix != null) { if (groupPrefix != "") - groupPrefix += " "; - nextGroupPrefix = groupPrefix + groupAttrib.Prefix ?? type.Name; + nextGroupPrefix = groupPrefix + " " + groupAttrib.Prefix ?? type.Name; + else + nextGroupPrefix = groupAttrib.Prefix ?? type.Name; } else { From c05f44a5445b449051488199071985835326d020 Mon Sep 17 00:00:00 2001 From: FiniteReality Date: Wed, 31 Aug 2016 15:28:38 +0100 Subject: [PATCH 3/3] Allow command groups to work correctly --- src/Discord.Net.Commands/Module.cs | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/src/Discord.Net.Commands/Module.cs b/src/Discord.Net.Commands/Module.cs index 7b74ffb87..7b8113252 100644 --- a/src/Discord.Net.Commands/Module.cs +++ b/src/Discord.Net.Commands/Module.cs @@ -60,17 +60,12 @@ namespace Discord.Commands if (groupAttrib != null) { string nextGroupPrefix; - if (groupAttrib.Prefix != null) - { - if (groupPrefix != "") - nextGroupPrefix = groupPrefix + " " + groupAttrib.Prefix ?? type.Name; - else - nextGroupPrefix = groupAttrib.Prefix ?? type.Name; - } + + if (groupPrefix != "") + nextGroupPrefix = groupPrefix + " " + (groupAttrib.Prefix ?? type.Name.ToLowerInvariant()); else - { - nextGroupPrefix = groupPrefix; - } + nextGroupPrefix = groupAttrib.Prefix ?? type.Name.ToLowerInvariant(); + SearchClass(type, ReflectionUtils.CreateObject(type, Service, dependencyMap), commands, nextGroupPrefix, dependencyMap); } }