public bool ConnectToBattleNet(BotConfig botConfig) { this.FatalDebugError = false; this.LoginDone = false; this.myBotConfig = botConfig; this.myBnetServerClient = new TcpClient(this.GetServerString(this.myBotConfig._Server), 6112); this.myPacketSniffer = new PacketSniffer(); this.myPacketSniffer.AddListener(D2Packets.PacketOrigin.BattleNetServer, new PacketEventHandler(this.onBnetPacketReceived)); this.myPacketSniffer.AddListener(D2Packets.PacketOrigin.RealmServer, new PacketEventHandler(this.onRealmPacketReceived)); this.myPacketSniffer.StartSniffing(Process.GetCurrentProcess().Id, myBotConfig._PcapName); this.myBnetServerClient.GetStream().WriteByte(0x01); this.myBnetServerClient.GetStream().Write(new BC.ConnectionRequest().Build(), 0, new BC.ConnectionRequest().Build().Length); int Timeout = 0; while (!this.FatalDebugError && !this.LoginDone) { System.Threading.Thread.Sleep(1); if (Timeout > 5000) return false; Timeout++; } return true; }