Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }