public static void Init() { Configurations = new Config(); if (!File.Exists(AppDomain.CurrentDomain.BaseDirectory + "\\AppData\\Config.xml")) { Configurations.Compiler = new List <Compiler>(); Configurations.EnvironmentValues = string.Empty; Configurations.AllowRequestDataSet = true; Configurations.MutiThreading = 0; Configurations.IpAddress = "::"; Configurations.AllowCompetitorMessaging = true; Configurations.RegisterMode = 0; File.WriteAllText(AppDomain.CurrentDomain.BaseDirectory + "\\AppData\\Config.xml", SerializeToXmlString(Configurations), Encoding.UTF8); } var xmlDeserializer = new XmlSerializer(Configurations.GetType()); var rdr = new StringReader( File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + "\\AppData\\Config.xml", Encoding.UTF8)); Configurations = (Config)xmlDeserializer.Deserialize(rdr); var pathlist = Environment.GetEnvironmentVariable("PATH", EnvironmentVariableTarget.Process); Environment.SetEnvironmentVariable("PATH", Configurations.EnvironmentValues + ";" + pathlist, EnvironmentVariableTarget.Process); if (Configurations.Compiler == null) { Configurations.Compiler = new List <Compiler>(); } }
private void LoadConfig() { var jsonData = API.LoadResourceFile(API.GetCurrentResourceName(), "config.json"); var defaultConfig = new Config(); if (jsonData == null) { _config = defaultConfig; SaveConfig(); return; } _config = JsonConvert.DeserializeObject <Config>(jsonData); var save = false; foreach (var field in _config.GetType().GetFields().Where(field => field.GetValue(_config) == null)) { field.SetValue(_config, field.GetValue(defaultConfig)); save = true; } if (!save) { return; } SaveConfig(); }
/// <summary> /// Starts the Login Server listeners, and begins accepting new connections /// </summary> public static void StartServers() { // Make sure we arent already running! if (isRunning) { return; } try { // Start the DB Connection Console.Write("Connecting to Mysql... "); using (GamespyDatabase Database = new GamespyDatabase()) { Console.Write("Success!" + Environment.NewLine); // Reset game sessions if (Config.GetType <bool>("Settings", "ResetGameSessionsOnStartup")) { Console.Write("Resetting all game sessions... "); Database.Execute("UPDATE web_users SET game_session=0 WHERE id > 0"); Console.Write("Success!" + Environment.NewLine); } } // Create our end point to bind to int port = Config.GetType <int>("Settings", "LoginServerPort"); IPAddress address = IPAddress.Parse(Config.GetValue("Settings", "ServerBindIp")); // Start the Client Manager Server Console.Write("<GPCM> Binding to TCP port {0}... ", port); CmServer = new GpcmServer(new IPEndPoint(address, port)); Console.Write("Success!" + Environment.NewLine); // Start Search Provider Server Console.Write("<GPSP> Binding to TCP port {0}... ", ++port); SpServer = new GpspServer(new IPEndPoint(address, port)); Console.Write("Success!" + Environment.NewLine); } catch { Console.Write("Failed!" + Environment.NewLine); throw; } // Let the client know we are ready for connections isRunning = true; }