From 8617f019249aa6e7dcff0549ad4750e06271fea5 Mon Sep 17 00:00:00 2001 From: Alen Date: Sat, 28 Sep 2024 20:58:09 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=92=A4=E5=9B=9ESEQ?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/core/proto/Message.ts | 15 ++++++++++++++- src/onebot/index.ts | 2 +- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/core/proto/Message.ts b/src/core/proto/Message.ts index d4703a79..d88654d6 100644 --- a/src/core/proto/Message.ts +++ b/src/core/proto/Message.ts @@ -19,5 +19,18 @@ export const Message = new pb.Type("Message") .add(MsgHead) .add(new pb.Field("msgHead", 1, "MsgHead")) +export const SubDetail = new pb.Type("SubDetail") + .add(new pb.Field("msgSeq", 1, "uint32")) + .add(new pb.Field("msgTime", 2, "uint32")) + +export const RecallDetails = new pb.Type("RecallDetails") + .add(SubDetail) + .add(new pb.Field("operatorUid", 1, "string")) + .add(new pb.Field("subDetail", 3, "SubDetail")) + export const RecallGroup = new pb.Type("RecallGroup") - .add(new pb.Field("msgSeq", 37, "uint32")) + .add(RecallDetails) + .add(new pb.Field("type", 1, "int32")) + .add(new pb.Field("peerUid", 4, "uint32")) + .add(new pb.Field("recallDetails", 11, "RecallDetails")) + .add(new pb.Field("grayTipsSeq", 37, "uint32")) diff --git a/src/onebot/index.ts b/src/onebot/index.ts index d98c2fcd..1b26fddf 100644 --- a/src/onebot/index.ts +++ b/src/onebot/index.ts @@ -91,7 +91,7 @@ export class NapCatOneBot11Adapter { //跳过 4字节 群号 + 不知道的1字节 +2字节 长度 let uid = RecallData.readUint32BE(); const buffer = Buffer.from(RecallData.toString('hex').slice(14), 'hex'); - let seq: number = (RecallGroup.decode(buffer) as any).msgSeq; + let seq: number = (RecallGroup.decode(buffer) as any).recallDetails.subDetail.msgSeq; let peer: Peer = { chatType: ChatType.KCHATTYPEGROUP, peerUid: uid.toString() }; context.logger.log("[Native] 群消息撤回 Peer: " + uid.toString() + " / MsgSeq:" + seq); let msgs = await core.apis.MsgApi.queryMsgsWithFilterExWithSeq(peer, seq.toString());