Merge branch 'james7132-issue/384' into dev

This commit is contained in:
RogueException
2016-12-05 19:00:47 -04:00
2 changed files with 14 additions and 6 deletions

View File

@@ -97,13 +97,17 @@ namespace Discord.Commands.Builders
return this;
}
public ModuleInfo Build(CommandService service)
private ModuleInfo BuildImpl(CommandService service, ModuleInfo parent = null)
{
//Default name to first alias
if (Name == null)
Name = _aliases[0];
return new ModuleInfo(this, service);
return new ModuleInfo(this, service, parent);
}
public ModuleInfo Build(CommandService service) => BuildImpl(service);
internal ModuleInfo Build(CommandService service, ModuleInfo parent) => BuildImpl(service, parent);
}
}

View File

@@ -1,3 +1,4 @@
using System;
using System.Linq;
using System.Collections.Generic;
using System.Collections.Immutable;
@@ -17,14 +18,17 @@ namespace Discord.Commands
public IEnumerable<CommandInfo> Commands { get; }
public IReadOnlyList<PreconditionAttribute> Preconditions { get; }
public IReadOnlyList<ModuleInfo> Submodules { get; }
public ModuleInfo Parent { get; }
public bool IsSubmodule => Parent != null;
internal ModuleInfo(ModuleBuilder builder, CommandService service)
internal ModuleInfo(ModuleBuilder builder, CommandService service, ModuleInfo parent = null)
{
Service = service;
Name = builder.Name;
Summary = builder.Summary;
Remarks = builder.Remarks;
Parent = parent;
Aliases = BuildAliases(builder).ToImmutableArray();
Commands = builder.Commands.Select(x => x.Build(this, service));
@@ -67,13 +71,13 @@ namespace Discord.Commands
return result;
}
private static List<ModuleInfo> BuildSubmodules(ModuleBuilder parent, CommandService service)
private List<ModuleInfo> BuildSubmodules(ModuleBuilder parent, CommandService service)
{
var result = new List<ModuleInfo>();
foreach (var submodule in parent.Modules)
{
result.Add(submodule.Build(service));
result.Add(submodule.Build(service, this));
}
return result;
@@ -93,4 +97,4 @@ namespace Discord.Commands
return result;
}
}
}
}