Exemple #1
0
 public async Task ConnectAsync(string ip, int port)
 {
     if (_connection == null)
     {
         _connection = new LoginServerConnection(Server.ServerId);
         await _connection.ConnectAsync(ip, port);
     }
 }
Exemple #2
0
 //Server Cancel Event
 public static void CancelEventHandler(object sender, ConsoleCancelEventArgs args)
 {
     LoginServerConnection.ShutdownServer();
     while (true)
     {
         Thread.Sleep(1);
     }
 }
Exemple #3
0
        //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);
            }
        }
Exemple #4
0
        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);
        }
Exemple #6
0
        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();
        }
Exemple #7
0
 //Server Stop
 public static void StopServer()
 {
     TcpLoginServer.ShutdownServer();
     LoginServerConnection.ShutdownServer();
 }
Exemple #8
0
        internal static void SendSessionAction(string username, SessionAction action)
        {
            LoginServerConnection connection = Server.ServerInstance.LoginServerConnection;

            connection.SendPacket(new SessionActionPacket(username, action));
        }
Exemple #9
0
        internal static bool CheckSession(string username, uint sessionId)
        {
            LoginServerConnection connection = Server.ServerInstance.LoginServerConnection;

            return(connection.AskAuthentication(username, sessionId));
        }