Ejemplo n.º 1
0
        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);
                }
            }
        }
Ejemplo n.º 2
0
        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;
            }
            }
        }
Ejemplo n.º 3
0
 // Methods
 public BSPacket(byte[] data)
     : base(data, Origin.BattleNetServer)
 {
     this.PacketID = (BnetServerPacket) data[0];
 }
Ejemplo n.º 4
0
 // Methods
 public BSPacket(byte[] data) : base(data, Origin.BattleNetServer)
 {
     this.PacketID = (BnetServerPacket)data[0];
 }