Example #1
0
 /// <summary>得到群中成员的信息
 /// Gets the cluster member info.
 /// <remarks>
 /// 返回的ClusterCommandReplyPacket字段包括:
 /// MemberInfos
 /// </remarks>
 /// </summary>
 /// <param name="clusterId">The cluster id.群的内部ID</param>
 /// <param name="members">The members.成员的QQ号列表,元素类型是Integer或者Member</param>
 public void GetClusterMemberInfo(int clusterId, int[] members)
 {
     // 由于一次最多只能得到61个成员的信息,所以这里按照30个成员一组进行拆分
     // 因为QQ是一次拆这么多
     int times = (members.Length + 29) / 30;
     for (int i = 0; i < times; i++)
     {
         ClusterGetMemberInfoPacket packet = new ClusterGetMemberInfoPacket(QQClient);
         packet.ClusterId = clusterId;
         for (int j = 30 * i; j < 30 * i + 30 && j < members.Length; j++)
         {
             packet.Members.Add(members[j]);
         }
         QQClient.PacketManager.SendPacket(packet, QQPort.Main.Name);
     }
 }
 /// <summary>
 /// Proccesses the cluster get member info reply.
 /// </summary>
 /// <param name="inPacket">The in packet.</param>
 /// <param name="outPacket">The out packet.</param>
 private void ProccessClusterGetMemberInfoReply(ClusterCommandReplyPacket inPacket, ClusterGetMemberInfoPacket outPacket)
 {
     QQEventArgs<ClusterCommandReplyPacket, ClusterGetMemberInfoPacket> e = new QQEventArgs<ClusterCommandReplyPacket, ClusterGetMemberInfoPacket>(client, inPacket, outPacket);
     if (inPacket.ReplyCode == ReplyCode.OK)
     {
         client.ClusterManager.OnGetMemberInfoSuccessed(e);
     }
     else
     {
         client.ClusterManager.OnGetMemberInfoFailed(e);
     }
 }