From 7141ba15878959c04150f92f62537a941f71fe3b 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, 20 Jul 2024 15:53:39 +0800 Subject: [PATCH] refactor: essence and together listener --- src/onebot11/constructor.ts | 18 +++++++++++------- .../event/notice/OB11GroupEssenceEvent.ts | 11 +++++++++++ 2 files changed, 22 insertions(+), 7 deletions(-) create mode 100644 src/onebot11/event/notice/OB11GroupEssenceEvent.ts diff --git a/src/onebot11/constructor.ts b/src/onebot11/constructor.ts index b165215d..d545c917 100644 --- a/src/onebot11/constructor.ts +++ b/src/onebot11/constructor.ts @@ -46,6 +46,7 @@ import { OB11GroupMsgEmojiLikeEvent } from '@/onebot11/event/notice/OB11MsgEmoji import { napCatCore } from '@/core'; import { OB11FriendPokeEvent, OB11GroupPokeEvent } from './event/notice/OB11PokeEvent'; import { OB11BaseNoticeEvent } from './event/notice/OB11BaseNoticeEvent'; +import { OB11GroupEssenceEvent } from './event/notice/OB11GroupEssenceEvent'; export class OB11Constructor { @@ -317,7 +318,7 @@ export class OB11Constructor { if (msg.chatType !== ChatType.group) { return; } - //log("group msg", msg); + log("group msg", msg); if (msg.senderUin && msg.senderUin !== '0') { const member = await getGroupMember(msg.peerUid, msg.senderUin); if (member && member.cardName !== msg.sendMemberName) { @@ -327,7 +328,7 @@ export class OB11Constructor { return event; } } - + for (const element of msg.elements) { const grayTipElement = element.grayTipElement; const groupElement = grayTipElement?.groupElement; @@ -494,13 +495,16 @@ export class OB11Constructor { chatType: ChatType.group, peerUid: Group! }; + return new OB11GroupEssenceEvent(parseInt(msg.peerUid), msg.id!); // 获取MsgSeq+Peer可获取具体消息 } - //下面得改 上面也是错的grayTipElement.subElementType == GrayTipElementSubType.MEMBER_NEW_TITLE - const memberUin = json.items[1].param[0]; - const title = json.items[3].txt; - logDebug('收到群成员新头衔消息', json); - return new OB11GroupTitleEvent(parseInt(msg.peerUid), parseInt(memberUin), title); + if (grayTipElement.jsonGrayTipElement.busiId == 2407) { + //下面得改 上面也是错的grayTipElement.subElementType == GrayTipElementSubType.MEMBER_NEW_TITLE + const memberUin = json.items[1].param[0]; + const title = json.items[3].txt; + logDebug('收到群成员新头衔消息', json); + return new OB11GroupTitleEvent(parseInt(msg.peerUid), parseInt(memberUin), title); + } } } } diff --git a/src/onebot11/event/notice/OB11GroupEssenceEvent.ts b/src/onebot11/event/notice/OB11GroupEssenceEvent.ts new file mode 100644 index 00000000..29d44705 --- /dev/null +++ b/src/onebot11/event/notice/OB11GroupEssenceEvent.ts @@ -0,0 +1,11 @@ +import { OB11GroupNoticeEvent } from './OB11GroupNoticeEvent'; +export class OB11GroupEssenceEvent extends OB11GroupNoticeEvent { + notice_type = 'group_essence'; + message_id: number; + + constructor(groupId: number, message_id: number) { + super(); + this.group_id = groupId; + this.message_id = message_id; + } +}