static bool StartLoginServer() { Console.Write("Loading DB..."); try { DataServer.Database.LoadDatabaseTables(); } catch (Exception e) { Console.WriteLine("Error: " + e.Message); return(false); } Console.WriteLine("Done"); LoginServerConfig config = new LoginServerConfig(m_configDir + "loginserver.config"); if (config.Document["LoginServerConfig"] == null) { config.SetDefaultValues(); } XmlNodeList list = config.Document["LoginServerConfig"].SelectNodes("descendant::RealmList"); Console.WriteLine("Parsing realmlists..."); if (ParseRealmLists(list) == false) { return(false); } list = config.Document["LoginServerConfig"].SelectNodes("descendant::WorldServer"); Console.WriteLine("Parsing worldservers..."); if (ParseWorldServers(list) == false) { return(false); } list = config.Document["LoginServerConfig"].SelectNodes("descendant::ScriptReference"); foreach (XmlNode node in list) { LoginServer.AddScriptReference(node.InnerText); } LoginServer.ServerName = config.ServerName; if (!LoginServer.LoadScripts(config.Scripts)) { return(false); } IPAddress address = GetAddress(config.Address); if (address == null) { return(false); } IPEndPoint iep = new IPEndPoint(address, config.Port); if (!LoginServer.Start(iep, config.RedirectPort)) { Console.WriteLine("Failed to start Loginserver."); return(false); } Console.WriteLine("Loginserver started on " + LoginServer.EndPoint); Console.WriteLine("Redirectserver started on " + RedirectServer.LocalEndPoint); if (localRealmListServerStarted) { Console.WriteLine("Realmlist server started on " + RealmListServer.Instance.LocalEndPoint); } return(true); }
static bool StartLoginServer() { Console.WriteLine("Welcome to WoWDaemon."); Console.WriteLine("Loading server..."); try { DataServer.Database.LoadDatabaseTables(); } catch (Exception e) { Console.WriteLine("Error: " + e.Message); return(false); } Console.WriteLine("Loaded " + DataServer.Database.GetObjectCount(typeof(DBAccount)) + " accounts"); Console.WriteLine("Loaded " + DataServer.Database.GetObjectCount(typeof(DBCharacter)) + " characters"); Console.WriteLine("Loaded " + DataServer.Database.GetObjectCount(typeof(DBItemTemplate)) + " items"); Console.WriteLine("Loaded " + DataServer.Database.GetObjectCount(typeof(DBSpawn)) + " spawns"); Console.WriteLine("Loaded " + DataServer.Database.GetObjectCount(typeof(DBGuild)) + " guilds"); Console.WriteLine("Loaded " + DataServer.Database.GetObjectCount(typeof(DBTabard)) + " tabards"); Console.WriteLine("Loaded " + DataServer.Database.GetObjectCount(typeof(DBWorldMap)) + " World Maps"); Console.WriteLine("Done"); LoginServerConfig config = new LoginServerConfig(m_configDir + "loginserver.config"); if (config.Document["LoginServerConfig"] == null) { config.SetDefaultValues(); } XmlNodeList list = config.Document["LoginServerConfig"].SelectNodes("descendant::RealmList"); Console.WriteLine("Parsing realmlists..."); if (ParseRealmLists(list) == false) { return(false); } list = config.Document["LoginServerConfig"].SelectNodes("descendant::WorldServer"); Console.WriteLine("Parsing worldservers..."); if (ParseWorldServers(list) == false) { return(false); } list = config.Document["LoginServerConfig"].SelectNodes("descendant::ScriptReference"); foreach (XmlNode node in list) { LoginServer.AddScriptReference(node.InnerText); } LoginServer.ServerName = config.ServerName; if (!LoginServer.LoadScripts(config.Scripts)) { return(false); } IPAddress address = GetAddress(config.Address); if (address == null) { return(false); } IPEndPoint iep = new IPEndPoint(address, config.Port); string ExternalIP = GetAddress(config.ExternalHost).ToString(); if (!LoginServer.Start(iep, config.RedirectPort, ExternalIP)) { Console.WriteLine("Failed to start Loginserver."); return(false); } Console.WriteLine("Loginserver started on " + LoginServer.EndPoint); Console.WriteLine("Redirectserver started on " + RedirectServer.LocalEndPoint); if (localRealmListServerStarted) { Console.WriteLine("Realmlist server started on " + RealmListServer.Instance.LocalEndPoint); } return(true); }