From 59d393b357d12de09b61830e86b378b640bcd60f Mon Sep 17 00:00:00 2001 From: AntiTcb Date: Wed, 16 Nov 2016 11:43:23 -0500 Subject: [PATCH 1/2] Values in ImmutableDictionaries were strings rather than enumType --- src/Discord.Net.Commands/Readers/EnumTypeReader.cs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Discord.Net.Commands/Readers/EnumTypeReader.cs b/src/Discord.Net.Commands/Readers/EnumTypeReader.cs index cd8b73896..ac18e9caf 100644 --- a/src/Discord.Net.Commands/Readers/EnumTypeReader.cs +++ b/src/Discord.Net.Commands/Readers/EnumTypeReader.cs @@ -31,13 +31,13 @@ namespace Discord.Commands var byNameBuilder = ImmutableDictionary.CreateBuilder(); var byValueBuilder = ImmutableDictionary.CreateBuilder(); - + foreach (var v in Enum.GetNames(_enumType)) - { - byNameBuilder.Add(v.ToLower(), v); - var parsedValue = (T)Enum.Parse(_enumType, v); - if (!byValueBuilder.ContainsKey(parsedValue)) - byValueBuilder.Add(parsedValue, v); + { + var parsedValue = Enum.Parse(_enumType, v); + byNameBuilder.Add(v.ToLower(), parsedValue); + if (!byValueBuilder.ContainsKey((T)parsedValue)) + byValueBuilder.Add((T)parsedValue, v); } _enumsByName = byNameBuilder.ToImmutable(); From ef0337752e1a3660a67cea14f40962b04ed03b86 Mon Sep 17 00:00:00 2001 From: AntiTcb Date: Wed, 16 Nov 2016 23:16:37 -0500 Subject: [PATCH 2/2] Proper fix this time, fully tested on names and values. --- src/Discord.Net.Commands/Readers/EnumTypeReader.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Discord.Net.Commands/Readers/EnumTypeReader.cs b/src/Discord.Net.Commands/Readers/EnumTypeReader.cs index ac18e9caf..81870ecaf 100644 --- a/src/Discord.Net.Commands/Readers/EnumTypeReader.cs +++ b/src/Discord.Net.Commands/Readers/EnumTypeReader.cs @@ -37,7 +37,7 @@ namespace Discord.Commands var parsedValue = Enum.Parse(_enumType, v); byNameBuilder.Add(v.ToLower(), parsedValue); if (!byValueBuilder.ContainsKey((T)parsedValue)) - byValueBuilder.Add((T)parsedValue, v); + byValueBuilder.Add((T)parsedValue, parsedValue); } _enumsByName = byNameBuilder.ToImmutable();