Example #1
0
 public void makeme(AuthThread login, byte[] packet)
 {
     this.login = login;
     _packet    = packet;
     _offset    = 1;
     read();
 }
Example #2
0
        public override void run()
        {
            AuthThread.getInstance().setInGameAccount(Client.AccountName, false);

            L2Player player = Client.CurrentPlayer;

            if (player == null) //re-login на выборе чаров
            {
                return;
            }

            if (player._p_block_act == 1)
            {
                player.sendActionFailed();
                return;
            }

            if (player.isInCombat())
            {
                player.sendSystemMessage(101);//You cannot exit the game while in combat.
                player.sendActionFailed();
                return;
            }

            player.Termination();
            player.sendPacket(new LeaveWorld());
        }
Example #3
0
 public LoginServAcceptPlayer(IServiceProvider serviceProvider, Packet p, AuthThread login) : base(serviceProvider)
 {
     _accountCrudService = serviceProvider.GetService <ICrudService <AccountContract> >();
     _login     = login;
     _accountId = p.ReadInt();
     _key       = new SessionKey(p.ReadInt(), p.ReadInt(), p.ReadInt(), p.ReadInt());
 }
Example #4
0
        public override void run()
        {
            AccountModel ta = new AccountModel();

            ta.Login = account;

            AuthThread.getInstance().awaitAccount(ta);
        }
Example #5
0
        public static void HandlePacket(Packet packet, AuthThread login)
        {
            PacketBase packetBase = null;

            Log.Info($"Received packet with Opcode:{packet.FirstOpcode.ToString("X2")}");
            if (ClientPackets.ContainsKey(packet.FirstOpcode))
            {
                packetBase = (PacketBase)Activator.CreateInstance(ClientPackets[packet.FirstOpcode], packet, login);
            }
            packetBase?.RunImpl();
        }
Example #6
0
 public AuthLogin(IServiceProvider serviceProvider, Packet packet, GameClient client) : base(serviceProvider)
 {
     _client         = client;
     _authThread     = serviceProvider.GetService <AuthThread>();
     _accountService = serviceProvider.GetService <IAccountService>();
     _playerService  = serviceProvider.GetService <IPlayerService>();
     _loginName      = packet.ReadString();
     _playKey2       = packet.ReadInt();
     _playKey1       = packet.ReadInt();
     _loginKey1      = packet.ReadInt();
     _loginKey2      = packet.ReadInt();
 }
        public static void handlePacket(AuthThread login, byte[] buff)
        {
            byte id = 0;

            try
            {
                id = buff[0];
            }
            catch (IndexOutOfRangeException e)
            {
                Console.WriteLine("Something went wrong on PacketHandlerAuth: " + e);
                goto SkipLabel;
            }

            Console.WriteLine("login>gs: " + id);
            string cninfo = "handlepacket: request " + id.ToString("x2") + " size " + buff.Length;

            ReceiveAuthPacket msg = null;

            switch (id)
            {
            case 0xA1:
                msg = new LoginServPingResponse(login, buff);
                break;

            case 0xA5:
                msg = new LoginServLoginFail(login, buff);
                break;

            case 0xA6:
                msg = new LoginServLoginOk(login, buff);
                break;

            case 0xA7:
                msg = new LoginServAcceptPlayer(login, buff);
                break;

            case 0xA8:
                msg = new LoginServKickAccount(login, buff);
                break;
            }

            if (msg == null)
            {
                Console.WriteLine(cninfo);
                return;
            }

            new Thread(new ThreadStart(msg.run)).Start();
            SkipLabel :;
        }
Example #8
0
        public AuthLogin(IServiceProvider serviceProvider, Packet packet, GameClient client) : base(serviceProvider)
        {
            _client           = client;
            _authThread       = serviceProvider.GetService <AuthThread>();
            _characterService = serviceProvider.GetService <ICharacterService>();

            _loginName = packet.ReadString();

            int _playKey2  = packet.ReadInt();
            int _playKey1  = packet.ReadInt();
            int _loginKey1 = packet.ReadInt();
            int _loginKey2 = packet.ReadInt();

            _key = new SessionKey(_loginKey1, _loginKey2, _playKey1, _playKey2);
        }
        public static void HandlePacket(Packet packet, AuthThread login)
        {
            PacketBase packetBase = null;

            Log.Info($"Received packet with Opcode:{packet.FirstOpcode.ToString("X2")}");
            if (ClientPackets.ContainsKey(packet.FirstOpcode))
            {
                packetBase = (PacketBase)Activator.CreateInstance(ClientPackets[packet.FirstOpcode], packet, login);
            }

            if (packetBase == null)
            {
                throw new ArgumentNullException(nameof(packetBase), $"Packet with opcode: {packet.FirstOpcode.ToString("X2")} doesn't exist in the dictionary.");
            }

            packetBase.RunImpl();
        }
Example #10
0
        public GameClient(ClientManager clientManager, TcpClient tcpClient, GamePacketHandler gamePacketHandler)
        {
            Log.Info($"Connection from {tcpClient.Client.RemoteEndPoint}");

            Address           = tcpClient.Client.RemoteEndPoint;
            Client            = tcpClient;
            Stream            = tcpClient.GetStream();
            AccountCharacters = new List <L2Player>();

            _authThread           = GameServer.ServiceProvider.GetService <AuthThread>();
            _crypt                = new GameCrypt();
            _characterCrudService = GameServer.ServiceProvider.GetService <ICrudService <CharacterContract> >();
            _characterService     = GameServer.ServiceProvider.GetService <ICharacterService>();
            _gamePacketHandler    = gamePacketHandler;
            _clientManager        = clientManager;

            Task.Factory.StartNew(Read);
        }
Example #11
0
        public void HandlePacket(Packet packet, AuthThread login)
        {
            PacketBase packetBase = null;

            Log.Info($"Received packet with Opcode:{packet.FirstOpcode:X2}");

            if (LoginServerPackets.ContainsKey(packet.FirstOpcode))
            {
                packetBase = (PacketBase)Activator.CreateInstance(LoginServerPackets[packet.FirstOpcode], _serviceProvider, packet, login);
            }

            if (packetBase == null)
            {
                throw new ArgumentNullException(nameof(packetBase), $"Packet with opcode: {packet.FirstOpcode:X2} doesn't exist in the dictionary.");
            }

            packetBase.RunImpl();
        }
Example #12
0
        public override void run()
        {
            if (getClient().AccountName == null)
            {
                getClient().AccountName = _loginName;

                List <int> players = accountService.GetPlayerIdsListByAccountName(_loginName);

                int slot = 0;
                foreach (int id in players)
                {
                    L2Player p = new L2Player().RestorePlayer(id, getClient());
                    p.CharSlot = slot; slot++;
                    Client._accountChars.Add(p);
                }

                getClient().sendPacket(new CharacterSelectionInfo(getClient().AccountName, getClient()._accountChars, getClient()._sessionId));
                AuthThread.getInstance().setInGameAccount(getClient().AccountName, true);
            }
            else
            {
                getClient().termination();
            }
        }
Example #13
0
 public LoginServLoginFail(IServiceProvider serviceProvider, Packet p, AuthThread login) : base(serviceProvider)
 {
     _login = login;
     _code  = p.ReadString();
 }
 public LoginServPingResponse(IServiceProvider serviceProvider, Packet p, AuthThread login) : base(serviceProvider)
 {
     _login   = login;
     _message = p.ReadString();
 }
Example #15
0
 public LoginServPing(AuthThread th)
 {
     this.version = th.version;
     this.build   = th.build;
 }
Example #16
0
 public LoginServAcceptPlayer(Packet p, AuthThread login)
 {
     _login   = login;
     _account = p.ReadString();
 }
Example #17
0
 public LoginServLoginOk(Packet p, AuthThread login)
 {
     _login = login;
     _code  = p.ReadString();
 }
Example #18
0
 public LoginServPingResponse(IServiceProvider serviceProvider, Packet p, AuthThread authThread) : base(serviceProvider)
 {
     _authThread = authThread;
     _key        = p.ReadInt();
 }
Example #19
0
 public LoginServAcceptPlayer(IServiceProvider serviceProvider, Packet p, AuthThread login) : base(serviceProvider)
 {
     _login   = login;
     _account = p.ReadString();
 }
Example #20
0
 public LoginServLoginFail(IServiceProvider serviceProvider, Packet p, AuthThread authThread) : base(serviceProvider)
 {
     _authThread = authThread;
     _code       = p.ReadString();
 }
Example #21
0
 public LoginServAcceptPlayer(AuthThread login, byte[] db)
 {
     base.makeme(login, db);
 }
Example #22
0
 public LoginServKickAccount(AuthThread login, byte[] db)
 {
     base.makeme(login, db);
 }
 public LoginServPingResponse(AuthThread login, byte[] db)
 {
     base.makeme(login, db);
 }
Example #24
0
 public LoginServPing(AuthThread th)
 {
     Version = th.Version;
     _build  = th.Build;
 }
Example #25
0
 public LoginServPing(AuthThread authThread)
 {
     _authThread = authThread;
     _authThread.RandomPingKey = RandomThreadSafe.Instance.Next();
 }
Example #26
0
 public Logout(IServiceProvider serviceProvider, Packet packet, GameClient client) : base(serviceProvider)
 {
     _authThread = serviceProvider.GetService <AuthThread>();
     _client     = client;
 }
Example #27
0
 public LoginServKickAccount(IServiceProvider serviceProvider, Packet p, AuthThread authThread) : base(serviceProvider)
 {
     _authThread = authThread;
     _accountId  = p.ReadInt();
 }
Example #28
0
        public void Start()
        {
            Console.Title = "L2dotNET Gameserver";

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

            CharTemplateTable.Instance.Initialize();

            NetworkBlock.getInstance();
            GameTime.getInstance();

            IdFactory.Instance.Initialize();

            L2World.Instance.Initialize();

            // MapRegionTable.getInstance();
            ZoneTable.getInstance();

            NpcTable.getInstance();
            NpcData.getInstance();
            //  SpawnTable.getInstance();
            StaticObjTable.getInstance().read();
            StructureTable.getInstance().read();
            //  TSkillTable.getInstance();
            ItemTable.getInstance();
            ItemHandler.getInstance();
            MultiSell.getInstance();
            Capsule.getInstance();
            RecipeTable.getInstance();

            MonsterRace.getInstance();

            AIManager.getInstance();


            BlowFishKeygen.genKey();
            CLogger.info("generated 20 blowfish keys");

            AdminAccess.Instance.Initialize();;

            QuestManager.getInstance();

            AnnouncementManager.Instance.Initialize();

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

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

            HtmCache.getInstance();

            AuthThread.getInstance();

            //   GeoData.getInstance();

            CLogger.extra_info("listening game clients on port " + Cfg.SERVER_PORT);
            _listener = new TcpListener(Cfg.SERVER_PORT);
            _listener.Start();

            TcpClient clientSocket = default(TcpClient);

            while (true)
            {
                clientSocket = _listener.AcceptTcpClient();
                accept(clientSocket);
            }
        }
Example #29
0
 public LoginServLoginFail(AuthThread login, byte[] db)
 {
     base.makeme(login, db);
 }
 public LoginServKickAccount(Packet p, AuthThread login)
 {
     _login   = login;
     _account = p.ReadString();
 }