public async Task ConnectAsync(string ip, int port) { if (_connection == null) { _connection = new LoginServerConnection(Server.ServerId); await _connection.ConnectAsync(ip, port); } }
//Server Cancel Event public static void CancelEventHandler(object sender, ConsoleCancelEventArgs args) { LoginServerConnection.ShutdownServer(); while (true) { Thread.Sleep(1); } }
//Unhandled Server Exception Event public static void UnhandledException(Object sender, UnhandledExceptionEventArgs args) { Logger.WriteLine(LogState.Error, "UnhandledException:\n" + (Exception)args.ExceptionObject); LoginServerConnection.ShutdownServer(); while (true) { Thread.Sleep(1); } }
public static void RunServer() { Stopwatch serverStartStopwatch = Stopwatch.StartNew(); //Server Start Timer AppDomain.CurrentDomain.UnhandledException += UnhandledException; //ExceptionHandler PrintServerLicence(); //Server Copyright,Infos //init configs Config.Init_LS_Config(); Config.Init_LOG_Config(); Config.Init_DB_Config(); //Initialize TcpServer TcpLoginServer = new TcpServer(loginserverConfig.ServerListenIP, Convert.ToInt32(loginserverConfig.ServerPort), Convert.ToInt32(loginserverConfig.ServerMaxConnections)); //Start Tcp-Server Listening LoginServerConnection.ServerStart(); //Server Service TcpLoginServer.BeginListening(); //Server Connection Listener //Stop ServerStartTime serverStartStopwatch.Stop(); Console.WriteLine("----------------------------------------------------------------------------"); Console.WriteLine("---===== LoginServer OnLine in {0}", (serverStartStopwatch.ElapsedMilliseconds / 1000.0).ToString("0.00s")); Console.WriteLine("----------------------------------------------------------------------------"); //Logger.WriteLine(LogState.Error, "TEST: " + idfactorySystemConfig.currentId); //DbQuerys.SetIsGM("test", true); //DbQuerys.SetIsOnline("test", true); //DbQuerys.SetEmail("test", "*****@*****.**"); //DbQuerys.SetCoins("test", 9999); //DbQuerys.SetBanStatus("test", true, 99999999); //DbQuerys.SetMembership("test", 20001); //DbQuerys.SetPassword("test", "test"); //DbQuerys.SetAccessLevel("test", 1); //DbQuerys.SetLastOnlineUtc("test"); //DbQuerys.SetUsername("prototype", "prototype"); //DbQuerys.InsertAccountData("test23", "test", "*****@*****.**", 0, "1", true, 0, 0, "1", "000010000", true, true, 1, 0); //DbQuerys.UpdateAccountData_byID(5, "test8987", "PASSWORD", "*****@*****.**", 0, "1", true, 0, 0, "1", "000010000", true, true, 1); try { throw new ObjectDisposedException(""); } catch (Exception ex) { Console.WriteLine(ex); Console.WriteLine(ex.ToString()); Console.WriteLine(ex.Message); } }
/// <summary> /// Initialize a instance of Server. /// </summary> /// <param name="log"> Logger instance. </param> /// <param name="port"> Port to listen on. </param> internal Server(Logger log, int port = 9993) { _server = this; _log = log; _database = new Database(Config.DbHost, Config.DbUser, Config.DbPass, Config.DbName, _log); _login = new LoginServerConnection(Config.LoginServerAddress, Config.LocalNetPort, Config.LocalNetPassowrd); _netService = new NetworkService(log, port); Console.Clear(); Console.Title = string.Format("Metin2 Game Server Emulator [Version {0}]", Assembly.GetExecutingAssembly().GetName().Version); Console.WriteLine("Metin2 Game Server Emulator [Version {0}]\n", Assembly.GetExecutingAssembly().GetName().Version); }
public static void Main() { //Set Title Console.Title = "[Tera-Online] {ProjectS1.LoginServer}"; //Cancel KeyEvent Console.CancelKeyPress += CancelEventHandler; try { RunServer(); } catch (Exception ex) { Logger.WriteLine(LogState.Error, "Can't start server!\n " + ex); return; } //Main Loop LoginServerConnection.MainLoop(); //Stop Server on Errors StopServer(); //Kill Server Process Process.GetCurrentProcess().Kill(); }
//Server Stop public static void StopServer() { TcpLoginServer.ShutdownServer(); LoginServerConnection.ShutdownServer(); }
internal static void SendSessionAction(string username, SessionAction action) { LoginServerConnection connection = Server.ServerInstance.LoginServerConnection; connection.SendPacket(new SessionActionPacket(username, action)); }
internal static bool CheckSession(string username, uint sessionId) { LoginServerConnection connection = Server.ServerInstance.LoginServerConnection; return(connection.AskAuthentication(username, sessionId)); }