/// <summary> /// Saves the server settings when clicked /// </summary> /// /// <param name="sender">The object that sent the event</param> /// <param name="e">Arguments for the event</param> private void generateClick(object sender, RoutedEventArgs e) { List<String> errors = validate(); if(errors.Count > 0) { String error = ""; foreach(String err in errors) { error += err + "\n"; } MessageBox.Show(error); } else { // Ensure server is installed String serverExe = Reference.serversDirectory + serverName.Text + Reference.serverExePath; if (!File.Exists(serverExe)) { updateServer(); } // Save ini files List<String> game; List<String> gameUser; game = generateGameIni(); gameUser = generateGameUserIni(); GameIni.saveFile(serverName.Text, game); GameUserIni.saveFile(serverName.Text, gameUser); // Save congifuration file String[] configKeys = { "serverName", "mods", "map" }; String[] values = { serverName.Text, modList.Text, serverMap.Text }; ConfigData serverConfig = new ConfigData("serverData", Reference.serversDirectory + serverName.Text); List<String> settings = new List<String>(); for (int i = 0; i < configKeys.Length; i++) { settings.Add(configKeys[i] + "=" + values[i]); } serverConfig.write(settings); } }
/// <summary> /// Saves the settings file /// </summary> /// /// <param name="keys">The array of keys to use for values</param> /// <param name="values">the values to write to file</param> private void saveConfig(String[] keys, String[] values) { ConfigData settings = new ConfigData("settings", "ArkConfigurationTool\\"); List<String> options = new List<String>(); // Create server list string String serverList = ""; for (int i = 0; i < serverNames.Count; i++) { serverList += serverNames[i]; if (i != serverNames.Count - 1) { serverList += ","; } } // create options list for (int i = 0; i < keys.Length; i++) { options.Add(keys[i] + "=" + values[i]); } // Write to file settings.write(options); }
/// <summary> /// Sets up the environment for the configuration tool /// </summary> public void performSetup() { ConfigData settings = new ConfigData("settings", "ArkConfigurationTool\\"); List<String> options = new List<String>(); String[] keys = { "isFirstRun", "isDebugMode", "serverList" }; String[] values = { "0", "0", "" }; if (!File.Exists("ArkConfigurationTool\\settings.act")) { // Create Directories String[] dirs = { Reference.serversDirectory, Reference.steamCmdDirectory }; foreach(String directory in dirs) { if (!Directory.Exists(directory)) { Directory.CreateDirectory(directory); } } // Install SteamCMD if(!File.Exists(Reference.steamCmdDirectory + "steamcmd.exe")) { // Download List<String> lines = new List<String>(); lines.Add(""); lines.Add("====================================="); lines.Add(" Downloading SteamCMD "); lines.Add("====================================="); lines.Add(""); foreach (String line in lines) { handleOutput(line); } String fileUrl = Reference.steamCmdUrl; String destination = Reference.steamCmdDirectory + "steamCMD.zip"; download(fileUrl, destination); } } else { // load settings options = settings.read(); for(int i = 0; i < options.Count; i++) { String[] option = options[i].Split('='); String key = option[0]; String value = option[1]; switch(options[i]) { case "isFirstRun": values[0] = value; break; case "isDebugMode": values[1] = value; break; case "serverList": values[2] = value; break; } } } // set variables isFirstRun = values[0] == "1"; isDebugMode = values[1] == "1"; serverNames.AddRange(values[2].Split(',')); // save changes saveConfig(keys, values); }