From 8dd0e60eea7970c50d4d8af51801f2609a97a1a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=89=8B=E7=93=9C=E4=B8=80=E5=8D=81=E9=9B=AA?= Date: Sat, 28 Sep 2024 19:04:11 +0800 Subject: [PATCH] fix --- src/core/index.ts | 38 +------------------ src/native/external/MoeHoo.win32.node | Bin 264192 -> 267776 bytes src/onebot/index.ts | 51 ++++++++++++++++++++++++-- 3 files changed, 49 insertions(+), 40 deletions(-) diff --git a/src/core/index.ts b/src/core/index.ts index ed790dc4..136ce32f 100644 --- a/src/core/index.ts +++ b/src/core/index.ts @@ -29,10 +29,6 @@ import { NapCatConfigLoader } from '@/core/helper/config'; import os from 'node:os'; import { NodeIKernelGroupListener, NodeIKernelMsgListener, NodeIKernelProfileListener } from '@/core/listeners'; import { proxiedListenerOf } from '@/common/proxy-handler'; -import { Native } from '@/native'; -import { buffer } from 'stream/consumers'; -import { Message, MsgHead, RecallGroup } from './proto/Message'; - export * from './wrapper'; export * from './entities'; export * from './services'; @@ -80,7 +76,6 @@ export class NapCatCore { // 通过构造器递过去的 runtime info 应该尽量少 constructor(context: InstanceContext, selfInfo: SelfInfo) { - let appNative = new Native(context.pathWrapper.binaryPath); this.selfInfo = selfInfo; this.context = context; this.util = this.context.wrapper.NodeQQNTWrapperUtil; @@ -103,38 +98,7 @@ export class NapCatCore { if (!fs.existsSync(this.NapCatTempPath)) { fs.mkdirSync(this.NapCatTempPath, { recursive: true }); } - appNative.MoeHooExport.exports.registMsgPush(async (hex: string) => { - try { - let data = Message.decode(Buffer.from(hex, 'hex')) as any; - //data.MsgHead.BodyInner.MsgType SubType - let bodyInner = data.msgHead.bodyInner; - //context.logger.log("[appNative] Parse MsgType:" + bodyInner.msgType + " / SubType:" + bodyInner.subType); - if (bodyInner.msgType == 732 && bodyInner.subType == 17) { - let RecallData = Buffer.from(data.msgHead.noifyData.innerData); - //跳过 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 peer: Peer = { chatType: ChatType.KCHATTYPEGROUP, peerUid: uid.toString() }; - context.logger.log("[Native] 群消息撤回 Peer: " + uid.toString() + " / MsgSeq:" + seq); - let msgs = await this.apis.MsgApi.queryMsgsWithFilterExWithSeq(peer, seq.toString()) - console.log(JSON.stringify(msgs, null, 4)); - // this.apis.MsgApi.sendMsg(peer, [{ - // elementType: 1, - // elementId: '', - // textElement: { - // content: "[Native] 群消息撤回 Peer: " + uid.toString() + " / MsgSeq:" + seq, - // atType: 0, - // atUid: '', - // atTinyId: '', - // atNtUid: '', - // }, - // }]); - } - } catch (error: any) { - context.logger.logWarn("[appNative]", (error as Error).message); - } - }); + this.initNapCatCoreListeners().then().catch(this.context.logger.logError.bind(this.context.logger)); this.context.logger.setFileLogEnabled( diff --git a/src/native/external/MoeHoo.win32.node b/src/native/external/MoeHoo.win32.node index b18d27551d317dab46aeaeee5196765a2390e5ed..89703140fed140988787c2b0bd60c9d6479103cd 100644 GIT binary patch delta 70814 zcmaI82V7J~_dmQd%PI)VBC>)g3WACq#f~T_$X!?zdx$u48LN-cjGxBRdzDx50bnoa&K@>N_a1qx!B9 zSq^X4vB7G+wr;^Kk0QTKt{oYrzNHQ#Ai@=&xH(Ngz+{*q#Kx`DGw z>w4dKIru}-V_nricj{R~w~Oj@DMST7p3WMQzKyq?*6T6>Xmm!eQ)wl+=&lP4FBjd& z8XpMY-QPv$Q3fxYUYD{ksA7Ourd}7Nk{5anl7S#rZ`{DoQ$N?~=DC9s21Lryj`rv&O?-GAeI$dtP6s@Yt zB$(BO0^urKNo&wjE-ar`r>-vS5v^bnTnp}X9(b2=VZQnsi(Ja2`w!LWOrgeO6ZASs zE*NYYV+fqA*F7_(8+yC}$YzMf%T(6Y6l!n)$5b}T3+TJmq!b9~ehnH1Xr2a*0#wig zZqieem*EuBPm$>_8;&Dsiymrn7zFNMTXg!!yy($7$!`4Y7pjvo4u#&YJVK{Ceq73U z7`ihIoGMd>fI%UNGoom<=4kplDP^S~MCc8|ENsiw@0; zt|J;6@S&k!hNGc$(GZ}Kie9IrOwBSB=e=j!O9%UQP8Hp_EZNA510=P~F0pKsdIQ}RP*PMZ150m@@gt&IaA9=i^VLYVb~b3U{7=?QO#KU zGEJy!Gd8PCw0~DDWRq9de90dB(&Uxs$cuHT@)|jg-6#`EuCOxh4MVQ?S1FbTZ@=uN zI*YB8Mb3*hm2KxG$%(#F_;F=rf7ajK-{(KC(II8`Tc`85@|*fU^EI3AUa?L_%BSNL z2&R<2AS=lSv5*2kJE+bQ8n`ivU2v~kJexS&&D4+A@K4 z@~CS3u3w2_w$R^9ZKT$FK_?Ez{50v`TXCkTAhOzk`tLl_N1J zgVN9k$<{l>wYyjxprd%t703xaq^u*U24!SZq6>FQwy8Y;lQdWlzyOf|X{JHiX^>`s zgldpR8YC1Dzc39{RRj3}P0?DHSQAHPRz}r-mI5tFg+f}4wyRhaTj&$hQ%7H zU`Mns1mw(TLUX5v^v7VQe0ET|@ch$Jwi_m*lKeYXk|e)U`p(hmUK|t+Noqrsqd!U-U4s)H53nbvm6YPLjZ>y@M?;7ewD?vc2WLrA@7Dh|dJN zwGF%G6X_P%1xvfXvL~2TGl$S$>#+oLINjTs%`i8o$=%qm=C}&}-E=yu{By{6DpwfQ z#K&S#Z*^rA%U2BD-dwD@^N+;;lj1)Zew~cI1dP-&7euCDL{8uG22yn=np0<{cSwpP zj|`b4f$$7LIO9|w35`C*_V@_%2d!BC7srF$&iFEZX^%qU~L&NF+&iYdXNTQF9XI>r(Carm`_1 zJ;cAE;@>1CM>Qhsr_uA6IU_>?m81PZ8eUJ(^Fv@#JZxjM98|?8W9V@h*hknHX`8#OjDY2t3smW^u_QBlvHIG zI)|oCDN{iY^11GYUY95zf|9mC)K9BYBrMOQX@Z7Yy|?oCJ_bpZue%~8@0Gm1GW2EG1*!7L3SyHrVsrnSSih3QjG(p; zqa�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 CKE7T6 delta 67702 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 G8UF_(8aCbl diff --git a/src/onebot/index.ts b/src/onebot/index.ts index f1a6c174..4ab1d878 100644 --- a/src/onebot/index.ts +++ b/src/onebot/index.ts @@ -10,6 +10,7 @@ import { NodeIKernelBuddyListener, NodeIKernelGroupListener, NodeIKernelMsgListener, + Peer, RawMessage, SendStatusType, } from '@/core'; @@ -43,8 +44,10 @@ import { OB11FriendRecallNoticeEvent } from '@/onebot/event/notice/OB11FriendRec import { OB11GroupRecallNoticeEvent } from '@/onebot/event/notice/OB11GroupRecallNoticeEvent'; import { LRUCache } from '@/common/lru-cache'; import { NodeIKernelRecentContactListener } from '@/core/listeners/NodeIKernelRecentContactListener'; -import { OB11ProfileLikeEvent } from './event/notice/OB11ProfileLikeEvent'; -import { profileLikeTip, ProfileLikeTipType, SysMessage, SysMessageType } from '@/core/proto/ProfileLike'; +import { Native } from '@/native'; +import { Message, RecallGroup } from '@/core/proto/Message'; +import { OB11MessageData } from './types'; + //OneBot实现类 export class NapCatOneBot11Adapter { readonly core: NapCatCore; @@ -70,10 +73,52 @@ export class NapCatOneBot11Adapter { }; this.actions = createActionMap(this, core); this.networkManager = new OB11NetworkManager(); + this.registerNative(core,context).then().catch(); this.InitOneBot() .catch(e => this.context.logger.logError.bind(this.context.logger)('初始化OneBot失败', e)); - } + } + async registerNative(core: NapCatCore, context: InstanceContext) { + let appNative = new Native(context.pathWrapper.binaryPath); + appNative.MoeHooExport.exports.registMsgPush(async (hex: string) => { + try { + let data = Message.decode(Buffer.from(hex, 'hex')) as any; + //data.MsgHead.BodyInner.MsgType SubType + let bodyInner = data.msgHead?.bodyInner; + //context.logger.log("[appNative] Parse MsgType:" + bodyInner.msgType + " / SubType:" + bodyInner.subType); + if (bodyInner && bodyInner.msgType == 732 && bodyInner.subType == 17) { + let RecallData = Buffer.from(data.msgHead.noifyData.innerData); + //跳过 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 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()); + let ob11 = await this.apis.MsgApi.parseMessage(msgs.msgList[0], 'array') + if (ob11) { + const { sendElements, deleteAfterSentFiles } = await this.apis.MsgApi.createSendElements(ob11.message as OB11MessageData[], peer); + this.apis.MsgApi.sendMsgWithOb11UniqueId(peer, sendElements, deleteAfterSentFiles); + } + + + // this.apis.MsgApi.sendMsg(peer, [{ + // elementType: 1, + // elementId: '', + // textElement: { + // content: "[Native] 群消息撤回 Peer: " + uid.toString() + " / MsgSeq:" + seq, + // atType: 0, + // atUid: '', + // atTinyId: '', + // atNtUid: '', + // }, + // }]); + } + } catch (error: any) { + context.logger.logWarn("[appNative]", (error as Error).message); + } + }); + } async InitOneBot() { const selfInfo = this.core.selfInfo; const ob11Config = this.configLoader.configData;