Merge pull request #482 from FiniteReality/issue/462
Ensure aliases are built in the correct order
This commit is contained in:
@@ -39,16 +39,17 @@ namespace Discord.Commands
|
|||||||
private static IEnumerable<string> BuildAliases(ModuleBuilder builder, CommandService service)
|
private static IEnumerable<string> BuildAliases(ModuleBuilder builder, CommandService service)
|
||||||
{
|
{
|
||||||
var result = builder.Aliases.ToList();
|
var result = builder.Aliases.ToList();
|
||||||
var builderStack = new Stack<ModuleBuilder>();
|
var builderQueue = new Queue<ModuleBuilder>();
|
||||||
|
|
||||||
var parent = builder;
|
var parent = builder;
|
||||||
while ((parent = parent.Parent) != null)
|
while ((parent = parent.Parent) != null)
|
||||||
builderStack.Push(parent);
|
builderQueue.Enqueue(parent);
|
||||||
|
|
||||||
while (builderStack.Count > 0)
|
while (builderQueue.Count > 0)
|
||||||
{
|
{
|
||||||
var level = builderStack.Pop();
|
var level = builderQueue.Dequeue();
|
||||||
result = result.Permutate(level.Aliases, (first, second) =>
|
// permute in reverse because we want to *prefix* our aliases
|
||||||
|
result = level.Aliases.Permutate(result, (first, second) =>
|
||||||
{
|
{
|
||||||
if (first == "")
|
if (first == "")
|
||||||
return second;
|
return second;
|
||||||
|
|||||||
Reference in New Issue
Block a user