Browse Source

Ensure aliases are built in the correct order

Fixes #462
pull/482/head
FiniteReality 8 years ago
parent
commit
c2b50b56d8
1 changed files with 6 additions and 5 deletions
  1. +6
    -5
      src/Discord.Net.Commands/Info/ModuleInfo.cs

+ 6
- 5
src/Discord.Net.Commands/Info/ModuleInfo.cs View File

@@ -40,16 +40,17 @@ namespace Discord.Commands
private static IEnumerable<string> BuildAliases(ModuleBuilder builder, CommandService service)
{
var result = builder.Aliases.ToList();
var builderStack = new Stack<ModuleBuilder>();
var builderQueue = new Queue<ModuleBuilder>();

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;


Loading…
Cancel
Save