Browse Source

Merge branch 'james7132-issue/384' into dev

tags/1.0-rc
RogueException 8 years ago
parent
commit
71cd6e471b
2 changed files with 14 additions and 6 deletions
  1. +6
    -2
      src/Discord.Net.Commands/Builders/ModuleBuilder.cs
  2. +8
    -4
      src/Discord.Net.Commands/Info/ModuleInfo.cs

+ 6
- 2
src/Discord.Net.Commands/Builders/ModuleBuilder.cs 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);
}
}

+ 8
- 4
src/Discord.Net.Commands/Info/ModuleInfo.cs 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;
}
}
}
}

Loading…
Cancel
Save