internal void AddCommand(Command command) { _allCommands.Add(command); //Get category CommandMap category; string categoryName = command.Category ?? ""; if (!_categories.TryGetValue(categoryName, out category)) { category = new CommandMap(); _categories.Add(categoryName, category); } //Add main command category.AddCommand(command.Text, command, false); _map.AddCommand(command.Text, command, false); //Add aliases foreach (var alias in command.Aliases) { category.AddCommand(alias, command, true); _map.AddCommand(alias, command, true); } }
private ModuleInfo LoadModuleInternal(ModuleInfo module) { _moduleDefs.Add(module); foreach (var command in module.Commands) { _map.AddCommand(command); } foreach (var submodule in module.Submodules) { LoadModuleInternal(submodule); } return(module); }
private Module LoadInternal(object moduleInstance, ModuleAttribute moduleAttr, TypeInfo typeInfo, IDependencyMap dependencyMap) { if (_modules.ContainsKey(moduleInstance.GetType())) { return(_modules[moduleInstance.GetType()]); } var loadedModule = new Module(typeInfo, this, moduleInstance, moduleAttr, dependencyMap); _modules[moduleInstance.GetType()] = loadedModule; foreach (var cmd in loadedModule.Commands) { _map.AddCommand(cmd); } return(loadedModule); }