https://github.com/mamoe/mirai/issues/2883
Mirai版本:2.14.0-RC
mirai-api-http版本:v2.9.1
MCL Addon版本:v2.0.2
iTXTech MCL Version: 2.0.1-b5303b5
protocol: IPAD
heartbeatStrategy: STAT_HB
无签名,通过密码自动登录,无验证码
一直通过WebSocket API调用,业务端有一项功能是末位淘汰,在出现 #2882 (26日开始无法接收成员退群事件) 的问题之后,由于业务逻辑中也有一份成员列表缓存,本就有定期刷新成员列表的逻辑,于是尝试将原先调用的memberList接口换成latestMemberList接口,结果发现末位淘汰前的排名前列通知功能全重新通知了一遍,说明整个列表排名全部变了,检查获取到的数据发现返回数据中所有成员的lastSpeakTimestamp都完全与joinTimestamp相同,实为joinTimestamp。
复现zyjson版本:2.5
调用方法:
相关代码:
.子程序 添加获取群员列表 .参数 输入json, zyJsonValue, 参考 .参数 目标群, 长整数型 .参数 禁用缓存, 逻辑型 .如果 (禁用缓存) 输入json.置文本 (“command”, “latestMemberList”) 输入json.置长整数 (“content.memberIds[0]”, 0) 输入json.移除成员 (“content.memberIds”, 0) .否则 输入json.置文本 (“command”, “memberList”) .如果结束 输入json.置长整数 (“content.target”, 目标群)返回数据截取(已脱敏并格式化):
{ "id": [QQ1], "memberName": "[昵称1]", "specialTitle": "", "permission": "MEMBER", "joinTimestamp": 1744682346, "lastSpeakTimestamp": 1744682346, "muteTimeRemaining": 0, "group": { "id": [群号], "name": "[群名]", "permission": "ADMINISTRATOR" } }, { "id": [QQ2], "memberName": "[昵称2]", "specialTitle": "", "permission": "MEMBER", "joinTimestamp": 1739181298, "lastSpeakTimestamp": 1739181298, "muteTimeRemaining": 0, "group": { "id": [群号], "name": "[群名]", "permission": "ADMINISTRATOR" } }, { "id": [QQ3], "memberName": "[昵称3]", "specialTitle": "", "permission": "MEMBER", "joinTimestamp": 1741005585, "lastSpeakTimestamp": 1741005585, "muteTimeRemaining": 0, "group": { "id": [群号], "name": "[群名]", "permission": "ADMINISTRATOR" } } 网络日志 [0m2025-06-14 21:52:49 V/Net [QQ号]: Send: friendlist.GetTroopMemberListReq(friendlist.GetTroopMemberListReq)[0m [0m2025-06-14 21:52:50 V/Net [QQ号]: Recv: friendlist.GetTroopMemberListReq[0m [0m2025-06-14 21:52:50 V/Net [QQ号]: Send: friendlist.GetTroopMemberListReq(friendlist.GetTroopMemberListReq)[0m [0m2025-06-14 21:52:50 V/Net [QQ号]: Recv: friendlist.GetTroopMemberListReq[0m [0m2025-06-14 21:52:50 V/Net [QQ号]: Send: friendlist.GetTroopMemberListReq(friendlist.GetTroopMemberListReq)[0m [0m2025-06-14 21:52:50 V/Net [QQ号]: Recv: friendlist.GetTroopMemberListReq[0m [0m2025-06-14 21:52:50 V/Net [QQ号]: Send: friendlist.GetTroopMemberListReq(friendlist.GetTroopMemberListReq)[0m [0m2025-06-14 21:52:50 V/Net [QQ号]: Recv: friendlist.GetTroopMemberListReq[0m [0m2025-06-14 21:52:50 V/Net [QQ号]: Send: friendlist.GetTroopMemberListReq(friendlist.GetTroopMemberListReq)[0m [0m2025-06-14 21:52:50 V/Net [QQ号]: Recv: friendlist.GetTroopMemberListReq[0m [0m2025-06-14 21:52:50 V/Net [QQ号]: Send: friendlist.GetTroopMemberListReq(friendlist.GetTroopMemberListReq)[0m [0m2025-06-14 21:52:51 V/Net [QQ号]: Recv: friendlist.GetTroopMemberListReq[0m [0m2025-06-14 21:52:51 V/Net [QQ号]: Send: friendlist.GetTroopMemberListReq(friendlist.GetTroopMemberListReq)[0m [0m2025-06-14 21:52:51 V/Net [QQ号]: Recv: friendlist.GetTroopMemberListReq[0m [0m2025-06-14 21:52:51 V/Net [QQ号]: Send: friendlist.GetTroopMemberListReq(friendlist.GetTroopMemberListReq)[0m [0m2025-06-14 21:52:51 V/Net [QQ号]: Recv: friendlist.GetTroopMemberListReq[0m