Exemplo n.º 1
0
        public void Start()
        {
            Config.Config.Instance.Initialize();

            PreReqValidation.Instance.Initialize();

            CharTemplateTable.Instance.Initialize();

            NetworkBlock.Instance.Initialize();
            GameTime.Instance.Initialize();

            IdFactory.Instance.Initialize();

            L2World.Instance.Initialize();

            MapRegionTable.Instance.Initialize();
            ZoneTable.Instance.Initialize();

            ItemTable.Instance.Initialize();
            ItemHandler.Instance.Initialize();

            NpcTable.Instance.Initialize();
            MultiSell.Instance.Initialize();
            Capsule.Instance.Initialize();
            RecipeTable.Instance.Initialize();

            BlowFishKeygen.GenerateKeys();

            AdminCommandHandler.Instance.Initialize();

            AnnouncementManager.Instance.Initialize();

            StaticObjTable.Instance.Initialize();
            SpawnTable.Instance.Initialize();

            HtmCache.Instance.Initialize();

            // PluginManager.Instance.Initialize(this);

            AuthThread.Instance.Initialize();

            _listener = new TcpListener(IPAddress.Any, Config.Config.Instance.ServerConfig.Port);

            try
            {
                _listener.Start();
            }
            catch (SocketException ex)
            {
                Log.Error($"Socket Error: '{ex.SocketErrorCode}'. Message: '{ex.Message}' (Error Code: '{ex.NativeErrorCode}')");
                Log.Info("Press ENTER to exit...");
                Console.Read();
                Environment.Exit(0);
            }

            Log.Info($"Listening Gameservers on port {Config.Config.Instance.ServerConfig.Port}");

            WaitForClients();
        }
Exemplo n.º 2
0
        public async void Start()
        {
            Config.Config config = ServiceProvider.GetService <Config.Config>();
            await config.Initialise();

            await ServiceProvider.GetService <PreReqValidation>().Initialise();

            CharTemplateTable.Initialize();

            // TODO: refactor NetworkBlock
            NetworkBlock.Instance.Initialize();
            GameTime.Initialize();

            await ServiceProvider.GetService <IdFactory>().Initialise();

            L2World.Initialize();

            MapRegionTable.Initialize();
            ZoneTable.Initialize();

            await ServiceProvider.GetService <ItemTable>().Initialise();

            ItemHandler.Initialize();

            NpcTable.Initialize();
            Capsule.Initialize();
            AttackStanceManager.Initialize();
            BlowFishKeygen.GenerateKeys();

            await ServiceProvider.GetService <IAdminCommandHandler>().Initialise();

            await ServiceProvider.GetService <AnnouncementManager>().Initialise();

            StaticObjTable.Initialize();
            await ServiceProvider.GetService <SpawnTable>().Initialise();

            await ServiceProvider.GetService <HtmCache>().Initialise();

            // TODO: review plugin system
            //PluginManager.Instance.Initialize(this);

            ServiceProvider.GetService <AuthThread>().Initialise();

            _listener = new TcpListener(IPAddress.Any, config.ServerConfig.Port);

            try
            {
                _listener.Start();
            }
            catch (SocketException ex)
            {
                Log.Halt($"Socket Error: '{ex.SocketErrorCode}'. Message: '{ex.Message}' (Error Code: '{ex.NativeErrorCode}')");
            }

            Log.Info($"Listening Gameservers on port {config.ServerConfig.Port}");

            Task.Factory.StartNew(WaitForClients);
        }
Exemplo n.º 3
0
        public void Handle(TcpClient tcpClient)
        {
            byte[] key         = BlowFishKeygen.GetRandomKey();
            var    crypt       = new GameCrypt(key);
            var    connection  = new L2Connection(tcpClient, crypt);
            var    loginClient = new GameClient(connection);

            clients.Add(loginClient);
        }
Exemplo n.º 4
0
 public byte[] EnableCrypt()
 {
     byte[] key = BlowFishKeygen.GetRandomKey();
     _crypt.SetKey(key);
     return(key);
 }
Exemplo n.º 5
0
        public void Start()
        {
            var logRepository = LogManager.GetRepository(Assembly.GetEntryAssembly());

            XmlConfigurator.Configure(logRepository, new FileInfo("log4net.config"));

            var config = ServiceProvider.GetService <Config.Config>();

            config.Initialise();

            ServiceProvider.GetService <PreReqValidation>().Initialise();

            CharTemplateTable.Instance.Initialize();

            NetworkBlock.Instance.Initialize();
            GameTime.Instance.Initialize();

            ServiceProvider.GetService <IdFactory>().Initialise();

            L2World.Instance.Initialize();

            MapRegionTable.Instance.Initialize();
            ZoneTable.Instance.Initialize();

            ServiceProvider.GetService <ItemTable>().Initialise();
            ItemHandler.Instance.Initialize();

            NpcTable.Instance.Initialize();
            Capsule.Instance.Initialize();

            BlowFishKeygen.GenerateKeys();

            ServiceProvider.GetService <IAdminCommandHandler>().Initialise();

            ServiceProvider.GetService <AnnouncementManager>().Initialise();

            StaticObjTable.Instance.Initialize();
            ServiceProvider.GetService <SpawnTable>().Initialise();

            ServiceProvider.GetService <HtmCache>().Initialise();

            // PluginManager.Instance.Initialize(this);

            ServiceProvider.GetService <AuthThread>().Initialise();

            _listener = new TcpListener(IPAddress.Any, config.ServerConfig.Port);

            try
            {
                _listener.Start();
            }
            catch (SocketException ex)
            {
                Log.Error($"Socket Error: '{ex.SocketErrorCode}'. Message: '{ex.Message}' (Error Code: '{ex.NativeErrorCode}')");
                Log.Info("Press ENTER to exit...");
                Console.Read();
                Environment.Exit(0);
            }

            Log.Info($"Listening Gameservers on port {config.ServerConfig.Port}");

            WaitForClients();
        }
Exemplo n.º 6
0
        public void Start()
        {
            Console.Title = "L2dotNET Gameserver";

            CLogger.form();
            Cfg.init("all");

            CharTemplateTable.Instance.Initialize();

            NetworkBlock.Instance.Initialize();
            GameTime.Instance.Initialize();

            IdFactory.Instance.Initialize();

            L2World.Instance.Initialize();

            MapRegionTable.Instance.Initialize();
            ZoneTable.Instance.Initialize();

            NpcTable.Instance.Initialize();
            NpcData.getInstance();
            //  SpawnTable.getInstance();

            //  TSkillTable.getInstance();
            ItemTable.getInstance();
            ItemHandler.getInstance();
            MultiSell.getInstance();
            Capsule.getInstance();
            RecipeTable.getInstance();

            AIManager.getInstance();

            BlowFishKeygen.GenerateKeys();
            CLogger.info("Generated 20 Blowfish Keys");

            AdminAccess.Instance.Initialize();;

            QuestManager.getInstance();

            AnnouncementManager.Instance.Initialize();

            AllianceTable.getInstance();
            ClanTable.getInstance();

            CLogger.info("NpcServer: ");
            StaticObjTable.Instance.Initialize();
            MonsterRace.Instance.Initialize();
            //  SpawnTable.getInstance().Spawn();
            StructureTable.Instance.Initialize();

            HtmCache.Instance.Initialize();

            AuthThread.Instance.Initialize();

            //   GeoData.getInstance();

            CLogger.extra_info("Listening Gameservers on port " + Cfg.SERVER_PORT);
            _listener = new TcpListener(IPAddress.Any, Cfg.SERVER_PORT);
            _listener.Start();

            TcpClient clientSocket = default(TcpClient);

            while (true)
            {
                clientSocket = _listener.AcceptTcpClient();
                Accept(clientSocket);
            }
        }
Exemplo n.º 7
0
        /// <summary>
        /// Handles incoming packet.
        /// </summary>
        /// <param name="packet">Incoming packet.</param>
        protected override void Handle(Packet packet)
        {
            Logger.WriteLine(Source.OuterNetwork, "Received: {0}", packet.ToString());

            //Logger.WriteLine(Source.Debug, "packet.FirstOpcode = {0}", packet.FirstOpcode);

            switch (State)
            {
            case UserConnectionState.Disconnected:
                throw new InvalidOperationException();

            case UserConnectionState.Connected:
            {
                switch (packet.FirstOpcode)
                {
                case 0x0e:             // protocol
                {
                    int revision = packet.ReadInt();

                    //Logger.WriteLine(Source.Debug, "Protocol Revision: {0}", revision);

                    if (revision == -2)
                    {
                        CloseConnection();
                        // remove from active connections list
                    }

                    if (revision < Settings.Default.WorldMinProtoRev || revision > Settings.Default.WorldMaxProtoRev)
                    {
                        CloseConnection();
                        // remove from active connections, log
                    }

                    byte[] keyIN = BlowFishKeygen.GetNext();
                    //byte[] keyOUT = BlowFishKeygen.GetNext();

                    m_Crypt = new GameCrypt();
                    m_Crypt.setKey(keyIN);

                    SendNoCrypt(KeyPacket.Create(keyIN));

                    BeginReceive();

                    break;
                }

                case 0x2b:             // login
                {
                    new AuthLogin(packet).RunImpl();
                    break;
                }

                default:
                {
                    Logger.WriteLine(Source.OuterNetwork, "Unknown packet on state {0}: Opcode = {1}", State, packet.FirstOpcode);
                    break;
                }
                }

                return;
            }

            case UserConnectionState.Authed:
            {
                switch (packet.FirstOpcode)
                {
                default:
                {
                    Logger.WriteLine(Source.OuterNetwork, "Unknown packet on state {0}: Opcode = {1}", State, packet.FirstOpcode);
                    break;
                }
                }
                return;
            }
            }
        }