public Form1() { InitializeComponent(); /** * BOOTSTRAP - THIS IS WHERE THE SERVER STARTS UP * STEPS: * > Start logging system * > Load configuration * > Connect to the database and test the connection * > Register packet handlers * > Start the login server service */ Logger.Initialize("log.txt"); //Logger.InfoEnabled = true; //Disable for release. Logger.DebugEnabled = true; Logger.WarnEnabled = true; GonzoNet.Logger.OnMessageLogged += new GonzoNet.MessageLoggedDelegate(Logger_OnMessageLogged); LoginDataModel.Logger.OnMessageLogged += new LoginDataModel.MessageLoggedDelegate(Logger_OnMessageLogged); ProtocolAbstractionLibraryD.Logger.OnMessageLogged += new ProtocolAbstractionLibraryD.MessageLoggedDelegate(Logger_OnMessageLogged); var dbConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["MAIN_DB"]; DataAccess.ConnectionString = dbConnectionString.ConnectionString; /** TODO: Test the database **/ using (var db = DataAccess.Get()) { var testAccount = db.Accounts.GetByUsername("root"); if (testAccount == null) { db.Accounts.Create(new Account { AccountName = "root", Password = Account.GetPasswordHash("root", "root") }); } } PacketHandlers.Register((byte)PacketType.LOGIN_REQUEST, false, 0, new OnPacketReceive(LoginPacketHandlers.HandleLoginRequest)); PacketHandlers.Register((byte)PacketType.CHARACTER_LIST, true, 0, new OnPacketReceive(LoginPacketHandlers.HandleCharacterInfoRequest)); PacketHandlers.Register((byte)PacketType.CITY_LIST, true, 0, new OnPacketReceive(LoginPacketHandlers.HandleCityInfoRequest)); PacketHandlers.Register((byte)PacketType.CHARACTER_CREATE, true, 0, new OnPacketReceive(LoginPacketHandlers.HandleCharacterCreate)); PacketHandlers.Register((byte)PacketType.REQUEST_CITY_TOKEN, true, 0, new OnPacketReceive(LoginPacketHandlers.HandleCityTokenRequest)); var Listener = new Listener(); Listener.Initialize(Settings.BINDING); NetworkFacade.ClientListener = Listener; NetworkFacade.CServerListener = new CityServerListener(); NetworkFacade.CServerListener.Initialize(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 2108)); //64 is 100 in decimal. PacketHandlers.Register(0x64, false, 0, new OnPacketReceive(CityServerPacketHandlers.HandleCityServerLogin)); PacketHandlers.Register(0x65, false, 0, new OnPacketReceive(CityServerPacketHandlers.HandleKeyFetch)); PacketHandlers.Register(0x66, false, 3, new OnPacketReceive(CityServerPacketHandlers.HandlePulse)); }
private static void Main(string[] args) { /** * BOOTSTRAP - THIS IS WHERE THE SERVER STARTS UP * STEPS: * > Start logging system * > Load configuration * > Register packet handlers * > Start the login server service */ Logger.Initialize("log.txt"); Logger.InfoEnabled = true; //Disable for release. Logger.DebugEnabled = true; Logger.WarnEnabled = true; GonzoNet.Logger.OnMessageLogged += new GonzoNet.MessageLoggedDelegate(Logger_OnMessageLogged); LoginDataModel.Logger.OnMessageLogged += new LoginDataModel.MessageLoggedDelegate(Logger_OnMessageLogged); ProtocolAbstractionLibraryD.Logger.OnMessageLogged += new ProtocolAbstractionLibraryD.MessageLoggedDelegate(Logger_OnMessageLogged); PacketHandlers.Register((byte)PacketType.LOGIN_REQUEST, false, 0, new OnPacketReceive(LoginPacketHandlers.HandleLoginRequest)); PacketHandlers.Register((byte)PacketType.CHALLENGE_RESPONSE, true, 0, new OnPacketReceive(LoginPacketHandlers.HandleChallengeResponse)); PacketHandlers.Register((byte)PacketType.CHARACTER_LIST, true, 0, new OnPacketReceive(LoginPacketHandlers.HandleCharacterInfoRequest)); PacketHandlers.Register((byte)PacketType.CITY_LIST, true, 0, new OnPacketReceive(LoginPacketHandlers.HandleCityInfoRequest)); PacketHandlers.Register((byte)PacketType.CHARACTER_CREATE, true, 0, new OnPacketReceive(LoginPacketHandlers.HandleCharacterCreate)); PacketHandlers.Register((byte)PacketType.REQUEST_CITY_TOKEN, true, 0, new OnPacketReceive(LoginPacketHandlers.HandleCityTokenRequest)); PacketHandlers.Register((byte)PacketType.RETIRE_CHARACTER, true, 0, new OnPacketReceive(LoginPacketHandlers.HandleCharacterRetirement)); var Listener = new Listener(EncryptionMode.AESCrypto); Listener.Initialize(Settings.BINDING); NetworkFacade.ClientListener = Listener; NetworkFacade.CServerListener = new CityServerListener(EncryptionMode.AESCrypto); NetworkFacade.CServerListener.Initialize(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 2108)); var dbConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["MAIN_DB"]; DataAccess.ConnectionString = dbConnectionString.ConnectionString; //Test the DB connection. try { using (var db = DataAccess.Get()) { var testAccount = db.Accounts.GetByUsername("root"); if (testAccount == null) { db.Accounts.Create(new Account { AccountName = "root", Password = Account.GetPasswordHash("root", "root") }); } } } catch (Exception) { Console.WriteLine("Couldn't connect to database!"); Console.ReadKey(); Environment.Exit(0); } //64 is 100 in decimal. PacketHandlers.Register(0x64, false, 0, new OnPacketReceive(CityServerPacketHandlers.HandleCityServerLogin)); PacketHandlers.Register(0x67, false, 0, new OnPacketReceive(CityServerPacketHandlers.HandlePlayerOnlineResponse)); while (true) { Thread.Sleep(1000); } }