private void save_server_button_Click(object sender, EventArgs e) { if (server_name_box.Text == "") { MessageBox.Show("A Server must be specified"); } else if (port_box.Text == "") { MessageBox.Show("A port number must be specified"); } else if (bot_name_box.Text == "") { MessageBox.Show("A name must be specified"); } else if (bot_nick_box.Text == "") { MessageBox.Show("A nickname must be specified"); } else { server_name = server_name_box.Text; string[] server = server_name_box.Text.Split('.'); server_module_folder = server[1]; XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(m_parent.cur_dir + Path.DirectorySeparatorChar + "config" + Path.DirectorySeparatorChar + "config.xml"); XmlNode Serverxn = xmlDoc.SelectSingleNode("/bot_settings/server_list"); XmlNode node = xmlDoc.CreateElement("server"); XmlNode nodeName = xmlDoc.CreateElement("name"); nodeName.InnerText = bot_name_box.Text; node.AppendChild(nodeName); XmlNode nodeNick = xmlDoc.CreateElement("nick"); nodeNick.InnerText = bot_nick_box.Text; node.AppendChild(nodeNick); XmlNode nodeSecNick = xmlDoc.CreateElement("sec_nicks"); nodeSecNick.InnerText = sec_nicks.Text; node.AppendChild(nodeSecNick); XmlNode nodePassword = xmlDoc.CreateElement("password"); nodePassword.InnerText = password_box.Text; node.AppendChild(nodePassword); XmlNode nodeEmail = xmlDoc.CreateElement("email"); nodeEmail.InnerText = email_box.Text; node.AppendChild(nodeEmail); XmlNode nodeOwner = xmlDoc.CreateElement("owner"); nodeOwner.InnerText = owner_nicks_box.Text; node.AppendChild(nodeOwner); XmlNode nodePort = xmlDoc.CreateElement("port"); nodePort.InnerText = port_box.Text; node.AppendChild(nodePort); XmlNode nodeServer_Name = xmlDoc.CreateElement("server_name"); nodeServer_Name.InnerText = server_name_box.Text; node.AppendChild(nodeServer_Name); XmlNode nodeServer_Folder = xmlDoc.CreateElement("server_folder"); nodeServer_Folder.InnerText = server_module_folder; node.AppendChild(nodeServer_Folder); XmlNode nodeChanList = xmlDoc.CreateElement("chan_list"); nodeChanList.InnerText = channels_box.Text; node.AppendChild(nodeChanList); XmlNode nodeChanBlacklist = xmlDoc.CreateElement("chan_blacklist"); nodeChanBlacklist.InnerText = channel_blacklist_box.Text; node.AppendChild(nodeChanBlacklist); XmlNode nodeignore_list = xmlDoc.CreateElement("ignore_list"); nodeignore_list.InnerText = ignore_list_box.Text; node.AppendChild(nodeignore_list); XmlNode nodeuser_level = xmlDoc.CreateElement("user_level"); nodeuser_level.InnerText = user_level_box.Text; node.AppendChild(nodeuser_level); XmlNode nodevoice_level = xmlDoc.CreateElement("voice_level"); nodevoice_level.InnerText = voice_level_box.Text; node.AppendChild(nodevoice_level); XmlNode nodehop_level = xmlDoc.CreateElement("hop_level"); nodehop_level.InnerText = hop_level_box.Text; node.AppendChild(nodehop_level); XmlNode nodeop_level = xmlDoc.CreateElement("op_level"); nodeop_level.InnerText = op_level_box.Text; node.AppendChild(nodeop_level); XmlNode nodesop_level = xmlDoc.CreateElement("sop_level"); nodesop_level.InnerText = sop_level_box.Text; node.AppendChild(nodesop_level); XmlNode nodefounder_level = xmlDoc.CreateElement("founder_level"); nodefounder_level.InnerText = founder_level_box.Text; node.AppendChild(nodefounder_level); XmlNode nodeowner_level = xmlDoc.CreateElement("owner_level"); nodeowner_level.InnerText = owner_level_box.Text; node.AppendChild(nodeowner_level); Serverxn.AppendChild(node); xmlDoc.Save(m_parent.cur_dir + Path.DirectorySeparatorChar + "config" + Path.DirectorySeparatorChar + "config.xml"); Directory.CreateDirectory(m_parent.cur_dir + Path.DirectorySeparatorChar + "config" + Path.DirectorySeparatorChar + "Module_Config" + Path.DirectorySeparatorChar + server[1]); XmlNodeList xnList = xmlDocModules.SelectNodes("/modules/module"); foreach (XmlNode xn in xnList) { int element_num = 0; String module_name = xn["name"].InnerText; if (module_list.SelectedItem.Equals(module_name)) { CheckBox myCheckboxEnabled = (CheckBox)module_options.Controls.Find("checkBox_" + module_name + "_enabled", true)[0]; xn["enabled"].InnerText = myCheckboxEnabled.Checked.ToString(); element_num++; xn["blacklist"].InnerText = module_options.Controls.Find("textBox_" + module_name + "_blacklist", true)[0].Text; element_num++; XmlNodeList optionList = xn.ChildNodes; foreach (XmlNode option in optionList) { if (option.Name.Equals("options")) { XmlNodeList Options = option.ChildNodes; foreach (XmlNode options in Options) { switch (options["type"].InnerText) { case "textbox": TextBox myTextBox = (TextBox)module_options.Controls.Find("textBox_" + module_name + "_" + options.Name + "_" + element_num.ToString(), true)[0]; options["value"].InnerText = myTextBox.Text; element_num++; break; case "checkbox": CheckBox myCheckbox = (CheckBox)module_options.Controls.Find("checkBox_" + module_name + "_" + options.Name + "_" + element_num.ToString(), true)[0]; options["checked"].InnerText = myCheckbox.Checked.ToString(); element_num++; break; } } } } } } xmlDocModules.Save(m_parent.cur_dir + Path.DirectorySeparatorChar + "config" + Path.DirectorySeparatorChar + "Module_Config" + Path.DirectorySeparatorChar + server_module_folder + Path.DirectorySeparatorChar + "modules.xml"); old_configeration.add_to_list(server_name); this.Close(); } }