Esempio n. 1
0
        internal void ProcessLoginA4Reply(LoginA4ReplyPacket loginA4ReplyPacket, LoginA4Packet loginA4Packet)
        {
            QQEventArgs <LoginA4ReplyPacket, LoginA4Packet> e = new QQEventArgs <LoginA4ReplyPacket, LoginA4Packet>(QQClient, loginA4ReplyPacket, loginA4Packet);
            OutPacket outPacket = new LoginGetListPacket(this.QQClient);

            QQClient.PacketManager.SendPacketAnyway(outPacket, QQPort.Main.Name);
        }
Esempio n. 2
0
        /// <summary>
        /// 登陆下载QQ列表
        /// </summary>
        /// <param name="pos"></param>
        private void LoginGetList(int pos)
        {
            this.QQClient.LoginStatus = LoginStatus.GetList;
            LoginGetListPacket outPacket = new LoginGetListPacket(this.QQClient);

            outPacket.Pos = (ushort)pos;
            QQClient.PacketManager.SendPacketAnyway(outPacket, QQPort.Main.Name);
        }
Esempio n. 3
0
        internal void ProcessLoginGetListReply(LoginGetListReplyPacket loginGetListReplyPacket, LoginGetListPacket loginGetListPacket)
        {
            QQEventArgs <LoginGetListReplyPacket, LoginGetListPacket> e = new QQEventArgs <LoginGetListReplyPacket, LoginGetListPacket>(QQClient, loginGetListReplyPacket, loginGetListPacket);

            foreach (QQ.Entities.QQBasicInfo qq in loginGetListReplyPacket.QQList)
            {
                if (!QQClient.QQUser.QQList.ContainsKey(qq.QQ))
                {
                    QQClient.QQUser.QQList.Add(qq.QQ, qq);
                }
            }
            StringBuilder sb = new StringBuilder();

            sb.AppendLine("本次得到QQ " + loginGetListReplyPacket.QQList.Count + " 个。");
#if DEBUG
            foreach (QQ.Entities.QQBasicInfo qq in loginGetListReplyPacket.QQList)
            {
                sb.AppendLine(string.Format("\t\tQQ:{0} type:{1}   group: {2} ", qq.QQ, qq.Type, qq.GroupId));
            }
#endif
            QQClient.LogManager.Log(sb.ToString());
            //应该将QQ好友,QQ群存入存入QQuser对象
            if (!e.InPacket.Finished)//好友没有下载完,继续下载
            {
                //LoginGetList(e.InPacket.NextPos);

                LoginGetList(++lisPackets);
            }
            else //好友下载完毕 触发事件
            {
                QQClient.LogManager.Log("获取全部好友完成!");
                //分到各自的列表组
                foreach (QQBasicInfo qq in QQClient.QQUser.QQList.Values)
                {
                    switch (qq.Type)
                    {
                    case QQType.Cluster:
                        ClusterInfo ClusterInfo = new ClusterInfo();
                        ClusterInfo.QQBasicInfo = qq;
                        QQClient.QQUser.ClusterList.Add(qq.QQ, ClusterInfo);
                        break;

                    case QQType.QQ:
                        QQFriend QQFriend = new QQFriend();
                        QQFriend.QQBasicInfo = qq;
                        QQClient.QQUser.Friends.Add(qq.QQ, QQFriend);
                        break;

                    default:
                        QQClient.LogManager.Log("unknown QQ.Type: 0x" + qq.Type.ToString("X") + " qq=" + qq.QQ.ToString() + " gid=0x" + qq.GroupId.ToString("X2"));
                        break;
                    }
                }
                OutPacket outPacket = new LoginSendInfoPacket(this.QQClient);
                QQClient.PacketManager.SendPacketAnyway(outPacket, QQPort.Main.Name);
            }
        }