Skip to content
This repository has been archived by the owner on Jun 23, 2023. It is now read-only.

群成员列表

Mr.喜 edited this page Aug 17, 2020 · 1 revision

转换流程(每个变量之前都需要加上这个变量的字节长度)

  1. 群成员列表数量
  2. 第一个群成员信息的字节长度(这个就不用再加它的字节长度了)
  3. 第一个成员的信息,可参照前一页方法,是一样的
  4. 第二个……

代码示例(C#)

MemoryStream streamMain = new MemoryStream();
BinaryWriter binaryWriterMain = new BinaryWriter(streamMain);
JArray memberls = JArray.Parse(ret["MemberList"].ToString());
BinaryWriterExpand.Write_Ex(binaryWriterMain, memberls.Count);
foreach (var item in memberls)
{
    MemoryStream stream = new MemoryStream();
    BinaryWriter binaryWriter = new BinaryWriter(stream);
    BinaryWriterExpand.Write_Ex(binaryWriter, groupId);
    BinaryWriterExpand.Write_Ex(binaryWriter, Convert.ToInt64(item["MemberUin"].ToString()));
    BinaryWriterExpand.Write_Ex(binaryWriter, item["NickName"].ToString());
    BinaryWriterExpand.Write_Ex(binaryWriter, item["GroupCard"].ToString());
    BinaryWriterExpand.Write_Ex(binaryWriter, Convert.ToInt32(item["Gender"].ToString()));
    BinaryWriterExpand.Write_Ex(binaryWriter, Convert.ToInt32(item["Age"].ToString()));
    BinaryWriterExpand.Write_Ex(binaryWriter, "unkown");
    BinaryWriterExpand.Write_Ex(binaryWriter, Convert.ToInt32(item["JoinTime"].ToString()));
    BinaryWriterExpand.Write_Ex(binaryWriter, Convert.ToInt32(item["LastSpeakTime"].ToString()));
    BinaryWriterExpand.Write_Ex(binaryWriter, $"头衔{item["MemberLevel"]}");
    BinaryWriterExpand.Write_Ex(binaryWriter, Convert.ToInt32(item["GroupAdmin"].ToString()));
    BinaryWriterExpand.Write_Ex(binaryWriter, 0);
    BinaryWriterExpand.Write_Ex(binaryWriter, item["SpecialTitle"].ToString());
    BinaryWriterExpand.Write_Ex(binaryWriter, 2051193600);
    BinaryWriterExpand.Write_Ex(binaryWriter, 1);

    BinaryWriterExpand.Write_Ex(binaryWriterMain, (short)stream.Length);
    binaryWriterMain.Write(stream.ToArray());
}
return Marshal.StringToHGlobalAnsi(Convert.ToBase64String(streamMain.ToArray()));