protected override void BattleNetToDiablo(byte[] data, ref PacketFlag flag) { if (data[0] == 0xff) { byte[] packetData = new byte[data.Length - 1]; Buffer.BlockCopy(data, 1, packetData, 0, data.Length - 1); BnetServerPacket PacketID = (BnetServerPacket)packetData[0]; try { switch (PacketID) { case BnetServerPacket.AdInfo: OnAdInfo(new BnetServer.AdInfo(packetData), ref flag); break; case BnetServerPacket.BnetAuthResponse: OnBnetAuthResponse(new BnetServer.BnetAuthResponse(packetData), ref flag); break; case BnetServerPacket.BnetConnectionResponse: OnBnetConnectionResponse(new BnetServer.BnetConnectionResponse(packetData), ref flag); break; case BnetServerPacket.BnetLogonResponse: OnBnetLogonResponse(new BnetServer.BnetLogonResponse(packetData), ref flag); break; case BnetServerPacket.BnetPing: OnBnetPing(new BnetServer.BnetPing(packetData), ref flag); break; case BnetServerPacket.ChannelList: OnChannelList(new BnetServer.ChannelList(packetData), ref flag); break; case BnetServerPacket.ChatEvent: OnChatEvent(new BnetServer.ChatEvent(packetData), ref flag); break; case BnetServerPacket.EnterChatResponse: OnEnterChatResponse(new BnetServer.EnterChatResponse(packetData), ref flag); break; case BnetServerPacket.ExtraWorkInfo: OnExtraWorkInfo(new BnetServer.ExtraWorkInfo(packetData), ref flag); break; case BnetServerPacket.FileTimeInfo: OnFileTimeInfo(new BnetServer.FileTimeInfo(packetData), ref flag); break; case BnetServerPacket.KeepAlive: OnServerKeepAlive(new BnetServer.KeepAlive(packetData), ref flag); break; case BnetServerPacket.NewsInfo: OnNewsInfo(new BnetServer.NewsInfo(packetData), ref flag); break; case BnetServerPacket.QueryRealmsResponse: OnQueryRealmsResponse(new BnetServer.QueryRealmsResponse(packetData), ref flag); break; case BnetServerPacket.RealmLogonResponse: OnRealmLogonResponse(new BnetServer.RealmLogonResponse(packetData), ref flag); break; case BnetServerPacket.RequiredExtraWorkInfo: OnRequiredExtraWorkInfo(new BnetServer.RequiredExtraWorkInfo(packetData), ref flag); break; } } catch (Exception ex) { Console.WriteLine(PacketID.ToString() + ": " + ex.Message); } } }
public override void ParsePacket(byte[] Data) { BncsReader bncsReader = new BncsReader(Data); BnetServerPacket packetID = (BnetServerPacket)bncsReader.PacketID; this.ReportPacket((int)packetID); switch (packetID) { case BnetServerPacket.KeepAlive: { this.OnServerKeepAliveEvent?.Invoke(new BotCore.BnetServer.KeepAlive(Data)); break; } case BnetServerPacket.EnterChatResponse: { this.OnEnterChatResponseEvent?.Invoke(new EnterChatResponse(Data)); break; } case BnetServerPacket.ChannelList: { this.OnChannelListEvent?.Invoke(new ChannelList(Data)); break; } case BnetServerPacket.ChatEvent: { this.OnChatEventEvent?.Invoke(new ChatEvent(Data)); break; } case BnetServerPacket.AdInfo: { this.OnAdInfoEvent?.Invoke(new AdInfo(Data)); break; } case BnetServerPacket.BnetPing: { this.OnBnetPingEvent?.Invoke(new BnetPing(Data)); break; } case BnetServerPacket.FileTimeInfo: { this.OnFileTimeInfoEvent?.Invoke(new FileTimeInfo(Data)); break; } case BnetServerPacket.BnetLogonResponse: { this.OnBnetLogonResponseEvent?.Invoke(new BnetLogonResponse(Data)); break; } case BnetServerPacket.RealmLogonResponse: { this.OnRealmLogonResponseEvent?.Invoke(new RealmLogonResponse(Data)); break; } case BnetServerPacket.QueryRealmsResponse: { this.Handle_SID_QUERYREALMS2(bncsReader); this.OnQueryRealmsResponseEvent?.Invoke(new QueryRealmsResponse(Data)); break; } case BnetServerPacket.NewsInfo: { this.OnNewsInfoEvent?.Invoke(new NewsInfo(Data)); break; } case BnetServerPacket.ExtraWorkInfo: { this.OnExtraWorkInfoEvent?.Invoke(new ExtraWorkInfo(Data)); break; } case BnetServerPacket.RequiredExtraWorkInfo: { this.OnRequiredExtraWorkInfoEvent?.Invoke(new RequiredExtraWorkInfo(Data)); break; } case BnetServerPacket.BnetConnectionResponse: { this.Handle_SID_AUTH_INFO(bncsReader); this.OnBnetConnectionResponseEvent?.Invoke(new BnetConnectionResponse(Data)); break; } case BnetServerPacket.BnetAuthResponse: { this.Handle_AUTH_CHECK(bncsReader); this.OnBnetAuthResponseEvent?.Invoke(new BnetAuthResponse(Data)); break; } } }
// Methods public BSPacket(byte[] data) : base(data, Origin.BattleNetServer) { this.PacketID = (BnetServerPacket) data[0]; }
// Methods public BSPacket(byte[] data) : base(data, Origin.BattleNetServer) { this.PacketID = (BnetServerPacket)data[0]; }