private void SetUpModule(ModuleBuilder module, IReadOnlyList <ModuleInfo> modulesInfo) { if (string.IsNullOrEmpty(module.Name)) { return; } var moduleInfo = modulesInfo.FirstOrDefault(x => string.Equals(x.Name, module.Name, StringComparison.InvariantCultureIgnoreCase)); if (moduleInfo is null) { return; } if (!string.IsNullOrEmpty(moduleInfo.Aliases)) { foreach (var moduleAlias in moduleInfo.Aliases.Split(" ")) { module.AddAlias(moduleAlias); } } if (!moduleInfo.Commands.Any()) { return; } SetUpCommands(module, moduleInfo.Commands.ToList()); foreach (var submodule in module.Submodules) { SetUpModule(submodule, moduleInfo.Submodules.ToList()); } }