private void HandleGameServerLoginRequest(GameServerLoginRequest packet) { if (packet.AccountName.Equals(startConfig.AccountName) && packet.Password.Equals(this.startConfig.Password)) { clientConnection.Status = UltimaClientConnectionStatus.Game; Task.Run(() => { if (this.startConfig.ClientVersion >= new Version(7, 0, 0, 0)) { EnterGameSA(); } else { EnterGamePre7000(); } transmitClientPackets = true; }); } else { throw new NotImplementedException("account/password mismatch"); } }
private void HandleConnectToGameServer(ConnectToGameServerPacket packet) { lock (serverStreamLock) { DisconnectFromServer(); Thread.Sleep(1000); serverEndpoint = new IPEndPoint(new IPAddress(packet.GameServerIp), packet.GameServerPort); serverStream = ConnectToServer(); } SendToServer(new Packet(PacketDefinitions.LoginSeed.Id, packet.Seed)); var loginRequest = new GameServerLoginRequest { Key = packet.Seed, AccountName = startConfig.AccountName, Password = startConfig.Password }; SendToServer(loginRequest.Serialize()); }