Example #1
0
        private void HandleGameServerList(GameServerListPacket packet)
        {
            var server = packet.Servers.FirstOrDefault(x => x.Name.Equals(startConfig.ShardName, StringComparison.OrdinalIgnoreCase));

            reloginInfo.SelectedServer       = server ?? throw new InvalidOperationException($"Cannot find shard {startConfig.ShardName}.");
            reloginInfo.ServerListSystemFlag = packet.SystemInfoFlag;

            var selectServerRequest = packetRegistry.Instantiate <SelectServerRequest>();

            selectServerRequest.ChosenServerId = server.Id;
            SendToServer(selectServerRequest.Serialize());
        }
Example #2
0
        private void HandleLoginRequest(LoginRequest packet)
        {
            if (packet.Account.Equals(startConfig.AccountName) && packet.Password.Equals(this.startConfig.Password))
            {
                var serverListPacket = new GameServerListPacket();
                serverListPacket.Servers = new[]
                {
                    new ServerListItem(0, reloginInfo.SelectedServer.Name, reloginInfo.SelectedServer.FullPercent, reloginInfo.SelectedServer.TimeZone, 0x7F000001)
                };
                serverListPacket.SystemInfoFlag = reloginInfo.ServerListSystemFlag;

                SendToClient(serverListPacket.Serialize());
            }
            else
            {
                throw new NotImplementedException("account/password mismatch");
            }
        }
Example #3
0
 private void HandleGameServerList(GameServerListPacket packet)
 {
     servers = packet.Servers;
 }