示例#1
0
 public void update_conf()
 {
     foreach (bot bot_instance in bot_instances)
     {
         List <Bot.Modules.Module> module_list = bot_instance.Conf.Modules;
         bot_instance.Conf = get_bot_conf(bot_instance.Conf.Server_Name);
         foreach (Bot.Modules.Module module in module_list)
         {
             Bot.Modules.Module new_module = get_module_conf(bot_instance.Conf.Server_Name, module.Class_Name);
             module.Loaded     = true;
             module.Blacklist  = new_module.Blacklist;
             module.Class_Name = new_module.Class_Name;
             module.Commands   = new_module.Commands;
             module.Enabled    = new_module.Enabled;
             module.Name       = new_module.Name;
             module.Options    = new_module.Options;
             bot_instance.Conf.Modules.Add(module);
         }
     }
 }
示例#2
0
        internal Bot.Modules.Module get_module_conf(string server_name, string module_class_name)
        {
            Bot.Modules.Module module_conf = new Bot.Modules.Module();
            module_conf.Blacklist = new List <string>();
            module_conf.Commands  = new List <Bot.Modules.Command>();
            module_conf.Options   = new Dictionary <string, dynamic>();

            XmlDocument xmlDocModules = new XmlDocument();

            xmlDocModules = get_module_xml(server_name);
            XmlNode     xnNode = xmlDocModules.SelectSingleNode("/modules");
            XmlNodeList xnList = xnNode.ChildNodes;

            foreach (XmlNode xn_module in xnList)
            {
                if (xn_module["class_name"].InnerText.Equals(module_class_name))
                {
                    module_conf.Name       = xn_module["name"].InnerText;
                    module_conf.Class_Name = xn_module["class_name"].InnerText;
                    module_conf.Enabled    = Convert.ToBoolean(xn_module["enabled"].InnerText);
                    module_conf.Blacklist.AddRange(xn_module["blacklist"].InnerText.Split(','));
                    module_conf.Loaded = false;

                    XmlNodeList optionList = xn_module.ChildNodes;
                    foreach (XmlNode option in optionList)
                    {
                        if (option.Name.Equals("commands"))
                        {
                            XmlNodeList Options = option.ChildNodes;
                            foreach (XmlNode options in Options)
                            {
                                Bot.Modules.Command tmp_command = new Bot.Modules.Command();
                                tmp_command.Triggers    = new List <string>();
                                tmp_command.Blacklist   = new List <string>();
                                tmp_command.Name        = options["name"].InnerText;
                                tmp_command.Description = options["description"].InnerText;
                                tmp_command.Triggers.AddRange(options["triggers"].InnerText.Split('|'));
                                tmp_command.Syntax = options["syntax"].InnerText;
                                tmp_command.Access = Convert.ToInt32(options["access_level"].InnerText);
                                tmp_command.Blacklist.AddRange(options["blacklist"].InnerText.Split(','));
                                tmp_command.Show_Help  = Convert.ToBoolean(options["show_help"].InnerText);
                                tmp_command.Spam_Check = Convert.ToBoolean(options["spam_check"].InnerText);
                                module_conf.Commands.Add(tmp_command);
                            }
                        }
                        if (option.Name.Equals("options"))
                        {
                            XmlNodeList Options = option.ChildNodes;
                            foreach (XmlNode options in Options)
                            {
                                dynamic value = null;
                                switch (options["type"].InnerText)
                                {
                                case "textbox":
                                    value = options["value"].InnerText;
                                    break;

                                case "checkbox":
                                    value = Convert.ToBoolean(options["checked"].InnerText);
                                    break;
                                }
                                module_conf.Options.Add(options.Name, value);
                            }
                        }
                    }
                }
            }
            return(module_conf);
        }