using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using Chop.Database; namespace Chop { public static class Core { private static GameSocket Socket; public static ClientManager ClientManager; public static DatabaseManager DatabaseManager; public static HabboManager HabboManager; public static Config Config; public static bool ClientIsFlash; public static int ClientRevision; public static void Main(string[] args) { int Port = 0; int MaxConnections = 0; Console.WriteLine("Emulator starting!"); Console.WriteLine(""); try { #region Config Console.Write("Starting Config..."); Config = new Config(Environment.CurrentDirectory + "\\config.ini"); Port = Config.GetInt("socket.port"); MaxConnections = Config.GetInt("socket.maxconnections"); //ClientIsFlash = Config.GetBoolean("game.client.flash"); //ClientRevision = Config.GetInt("game.client.release"); Console.WriteLine("complete!"); Console.WriteLine(""); #endregion #region Socket Console.Write("Starting GameSocket..."); Socket = new GameSocket(); Socket.Init(Port); Console.WriteLine("complete!"); Console.WriteLine(""); #endregion #region Client manager Console.Write("Starting ClientManager..."); ClientManager = new ClientManager(); ClientManager.Init(MaxConnections); Console.WriteLine("complete!"); Console.WriteLine(""); #endregion #region MySQL Console.Write("Starting MySQL connection..."); DatabaseManager = new DatabaseManager("localhost", 3306, "root", "kaninpels1", "chopdb", 0, 30); try { DatabaseManager.GetClient(); } catch { Console.WriteLine("failed! (check your connection details)"); Shutdown(); } Console.WriteLine("complete!"); Console.WriteLine(""); #endregion #region Habbo manager Console.Write("Starting HabboManager..."); ClientManager = new ClientManager(); Console.WriteLine("complete!"); Console.WriteLine(""); #endregion } catch (Exception x) { Console.WriteLine("failed! (" + x.Message + ")"); Shutdown(); } Console.WriteLine("Emulator ready!"); Thread t = new Thread(new ThreadStart(Run)); t.Priority = ThreadPriority.Lowest; t.Start(); } private static void Shutdown() { Console.Write("Emulator is shutting down..."); if (ClientManager != null) ClientManager.Destroy(); Console.WriteLine("complete!"); Console.WriteLine("Press any key to exit."); Console.ReadKey(true); Environment.Exit(2); } private static void Run() { while (true) { Thread.Sleep(60000); // Just keep it running } } } }