/// <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); } }