From c2b50b56d8263137682009ada50f5c5d13e578d9 Mon Sep 17 00:00:00 2001 From: FiniteReality Date: Sun, 15 Jan 2017 21:19:08 +0000 Subject: [PATCH] Ensure aliases are built in the correct order Fixes #462 --- src/Discord.Net.Commands/Info/ModuleInfo.cs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/Discord.Net.Commands/Info/ModuleInfo.cs b/src/Discord.Net.Commands/Info/ModuleInfo.cs index 40a434592..4253b0bee 100644 --- a/src/Discord.Net.Commands/Info/ModuleInfo.cs +++ b/src/Discord.Net.Commands/Info/ModuleInfo.cs @@ -40,16 +40,17 @@ namespace Discord.Commands private static IEnumerable BuildAliases(ModuleBuilder builder, CommandService service) { var result = builder.Aliases.ToList(); - var builderStack = new Stack(); + var builderQueue = new Queue(); var parent = builder; while ((parent = parent.Parent) != null) - builderStack.Push(parent); + builderQueue.Enqueue(parent); - while (builderStack.Count > 0) + while (builderQueue.Count > 0) { - var level = builderStack.Pop(); - result = result.Permutate(level.Aliases, (first, second) => + var level = builderQueue.Dequeue(); + // permute in reverse because we want to *prefix* our aliases + result = level.Aliases.Permutate(result, (first, second) => { if (first == "") return second;