public void saveSettings() { // -- Save bot settings settingsReader rc; if (!File.Exists("GUI.ini")) rc = new settingsReader("GUI.ini", true); else { rc = new settingsReader("GUI.ini"); rc.readSettings(); } byte[] settings = new byte[1]; new BitArray(cSettings).CopyTo(settings, 0); if (!rc.settings.ContainsKey("Console")) rc.settings.Add("Console", settings[0].ToString()); else rc.settings["Console"] = settings[0].ToString(); if (!rc.settings.ContainsKey("server")) rc.settings.Add("server", serverVersion); else rc.settings["server"] = serverVersion; rc.saveSettings(); // -- Save server settings. List<string> files = new List<string>() { "Data\\System.txt", "Data\\Player.txt", "Data\\Network.txt", "Data\\Heartbeat.txt" }; // -- The files the contain GUI configurable items. string tempFile = ""; foreach (string file in files) { StreamReader fileReader = new StreamReader(file); string myLine = ""; do { myLine = fileReader.ReadLine(); if (myLine == "") { continue; } string instruction = myLine.Substring(0, myLine.IndexOf(" ")); string data = myLine.Substring(myLine.IndexOf("=") + 2, myLine.Length - (myLine.IndexOf("=") + 2)); switch (instruction) { case "Server_Name": myLine = "Server_Name = " + boxSName.Text; break; case "MOTD": myLine = "MOTD = " + boxMOTD.Text; break; case "Message_Welcome": myLine = "Message_Welcome = " + boxLogin.Text; break; case "Players_Max": myLine = "Players_Max = " + boxMax.Text; break; case "Name_Verification": myLine = "Name_Verification = " + Convert.ToByte(chkNameVerif.Checked).ToString(); break; case "Port": myLine = "Port = " + boxPort.Text; break; case "Public": myLine = "Public = " + Convert.ToByte(chkPub.Checked).ToString(); break; } tempFile += myLine + "\n"; } while (!fileReader.EndOfStream); tempFile = tempFile.Substring(0, tempFile.Length - 1); // -- Remove the extra new line. fileReader.Close(); StreamWriter fileWriter = new StreamWriter(file); // -- Write the settings to file. fileWriter.Write(tempFile); fileWriter.Close(); tempFile = ""; } loadSettings(); // -- Reload the settings so the GUI's variables are all updated accordingly. }
private void loadSettings() { // -- Load settings in from the various .txt files. List<string> files = new List<string>() { "Data\\System.txt", "Data\\Player.txt", "Data\\Network.txt", "Data\\Heartbeat.txt" }; foreach (string file in files) { StreamReader fileReader = new StreamReader(file); string myLine = ""; do { myLine = fileReader.ReadLine(); if (myLine == "") continue; string instruction = myLine.Substring(0, myLine.IndexOf(" ")); string data = myLine.Substring(myLine.IndexOf("=") + 2, myLine.Length - (myLine.IndexOf("=") + 2)); switch (instruction) { case "Server_Name": serverName = data; break; case "MOTD": motd = data; break; case "Message_Welcome": welcomeMessage = data; break; case "Players_Max": maxPlayers = data; break; case "Name_Verification": nameVerify = (byte)int.Parse(data); break; case "Port": port = data; break; case "Public": pub = (byte)int.Parse(data); break; } } while (!fileReader.EndOfStream); fileReader.Close(); } boxMax.Text = maxPlayers; boxMOTD.Text = motd; boxSName.Text = serverName; boxLogin.Text = welcomeMessage; boxPort.Text = port; chkNameVerif.Checked = BitConverter.ToBoolean(new byte[] { nameVerify }, 0); chkPub.Checked = BitConverter.ToBoolean(new byte[] { pub }, 0); // -- Now load settings specific to the GUI. byte settings = 62; string buttons = ""; if (File.Exists("GUI.ini")) { settingsReader sc = new settingsReader("GUI.ini"); sc.readSettings(); if (sc.settings.ContainsKey("Console")) settings = (byte)int.Parse(sc.settings["Console"]); if (sc.settings.ContainsKey("luas")) buttons = sc.settings["luas"]; if (sc.settings.ContainsKey("server")) serverVersion = sc.settings["server"]; } cSettings = new bool[] { Convert.ToBoolean(settings & 0x1), Convert.ToBoolean(settings & 0x2), Convert.ToBoolean(settings & 0x4), Convert.ToBoolean(settings & 0x8), Convert.ToBoolean(settings & 0x10), Convert.ToBoolean(settings & 0x20), Convert.ToBoolean(settings & 0x40) }; // -- Custom buttons... if (buttons == "") return; string[] splits = buttons.Split(new char[] { '|' },StringSplitOptions.RemoveEmptyEntries); foreach (string c in splits) { string name = c.Substring(0, c.IndexOf(",")); string fileName = c.Substring(c.IndexOf(",") + 1, c.Length - (c.IndexOf(",") + 1)); addButton(name, fileName); } }
private void btnAddLua_Click(object sender, EventArgs e) { string fileName = ""; string buttonName = ""; DialogResult p = MessageBox.Show("Would you like to create a new script, or run an existing one? Yes for new.", "New LUA", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); if (p == DialogResult.Cancel) return; if (p == DialogResult.Yes) { SaveFileDialog newFile = new SaveFileDialog(); newFile.InitialDirectory = serverProc.StartInfo.WorkingDirectory + "\\Lua\\"; newFile.Filter = "Lua Scripts | *.lua"; newFile.ShowDialog(); fileName = newFile.FileName; StreamWriter sNewFile = new StreamWriter(newFile.FileName); sNewFile.Write(" "); sNewFile.Close(); if (fileName == "") return; } if (p == DialogResult.No) { OpenFileDialog newFile = new OpenFileDialog(); newFile.InitialDirectory = serverProc.StartInfo.WorkingDirectory + "\\Lua\\"; newFile.Filter = "Lua Scripts | *.lua"; newFile.ShowDialog(); fileName = newFile.FileName; if (fileName == "") return; } buttonName = Microsoft.VisualBasic.Interaction.InputBox("Please give a name for the custom button", "Adding LUA"); if (buttonName == "") return; DialogResult thisresult = MessageBox.Show("Would you like to edit the file now?", "Lua Add", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (thisresult == DialogResult.Yes) { timedMessages tm = new timedMessages(); tm.file = fileName; tm.Show(); } settingsReader rc; if (!File.Exists("GUI.ini")) rc = new settingsReader("GUI.ini", true); else { rc = new settingsReader("GUI.ini"); rc.readSettings(); } string oldButtons = ""; if (rc.settings.ContainsKey("luas")) oldButtons = rc.settings["luas"]; oldButtons += buttonName + "," + fileName + "|"; rc.settings["luas"] = oldButtons; rc.saveSettings(); addButton(buttonName, fileName); }
private void handleButtons(object sender, EventArgs e) { Button clicked = (Button)sender; string fileName = ""; cButtons.TryGetValue(clicked.Text, out fileName); if (fileName == "") { MessageBox.Show("An error has occured."); return; } if (removing == true) { removing = false; settingsReader sc = new settingsReader("GUI.ini"); sc.readSettings(); string oldString = ""; if (sc.settings.ContainsKey("luas")) oldString = sc.settings["luas"]; oldString = oldString.Replace(clicked.Text + "," + fileName + "|", ""); sc.settings["luas"] = oldString; sc.saveSettings(); this.Controls.Remove(clicked); tabPage9.Controls.Remove(clicked); clicked.Dispose(); return; } File.SetLastWriteTime(fileName, DateTime.Now); }