From 527bb72bcf789d8a8fa4bcd14edf857fa163df71 Mon Sep 17 00:00:00 2001 From: Clansty Date: Sat, 28 Dec 2024 20:54:41 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=BE=A4=E5=90=8D=E7=A7=B0=E5=8F=98?= =?UTF-8?q?=E6=9B=B4=E4=BA=8B=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/onebot/api/group.ts | 17 ++++++++++++++++- src/onebot/event/notice/OB11GroupNameEvent.ts | 12 ++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 src/onebot/event/notice/OB11GroupNameEvent.ts diff --git a/src/onebot/api/group.ts b/src/onebot/api/group.ts index 0a57086d..5cd01da0 100644 --- a/src/onebot/api/group.ts +++ b/src/onebot/api/group.ts @@ -8,6 +8,8 @@ import { NapCatCore, NTGrayTipElementSubTypeV2, RawMessage, + TipGroupElement, + TipGroupElementType, } from '@/core'; import { NapCatOneBot11Adapter } from '@/onebot'; import { OB11GroupBanEvent } from '@/onebot/event/notice/OB11GroupBanEvent'; @@ -19,6 +21,7 @@ import { OB11GroupPokeEvent } from '@/onebot/event/notice/OB11PokeEvent'; import { OB11GroupEssenceEvent } from '@/onebot/event/notice/OB11GroupEssenceEvent'; import { OB11GroupTitleEvent } from '@/onebot/event/notice/OB11GroupTitleEvent'; import { OB11GroupUploadNoticeEvent } from '../event/notice/OB11GroupUploadNoticeEvent'; +import { OB11GroupNameEvent } from '../event/notice/OB11GroupNameEvent'; import { pathToFileURL } from 'node:url'; import { FileNapCatOneBotUUID } from '@/common/helper'; @@ -204,10 +207,22 @@ export class OneBotGroupApi { ); } + async parseGroupElement(msg: RawMessage, element: TipGroupElement, elementWrapper: GrayTipElement) { + if (element.type === TipGroupElementType.KGROUPNAMEMODIFIED) { + this.core.context.logger.logDebug('收到群名称变更事件', element); + return new OB11GroupNameEvent( + this.core, + parseInt(msg.peerUid), + parseInt(await this.core.apis.UserApi.getUinByUidV2(element.memberUid)), + element.groupName, + ); + } + } + async parseGrayTipElement(msg: RawMessage, grayTipElement: GrayTipElement) { if (grayTipElement.subElementType === NTGrayTipElementSubTypeV2.GRAYTIP_ELEMENT_SUBTYPE_GROUP) { // 解析群组事件 由sysmsg解析 - // return await this.parseGroupElement(msg, grayTipElement.groupElement, grayTipElement); + return await this.parseGroupElement(msg, grayTipElement.groupElement, grayTipElement); } else if (grayTipElement.subElementType === NTGrayTipElementSubTypeV2.GRAYTIP_ELEMENT_SUBTYPE_XMLMSG) { // 筛选出表情回应 事件 diff --git a/src/onebot/event/notice/OB11GroupNameEvent.ts b/src/onebot/event/notice/OB11GroupNameEvent.ts new file mode 100644 index 00000000..ab8f206a --- /dev/null +++ b/src/onebot/event/notice/OB11GroupNameEvent.ts @@ -0,0 +1,12 @@ +import { OB11GroupNoticeEvent } from './OB11GroupNoticeEvent'; +import { NapCatCore } from '@/core'; + +export class OB11GroupNameEvent extends OB11GroupNoticeEvent { + notice_type = 'group_name'; + name_new: string; + + constructor(core: NapCatCore, groupId: number, userId: number, nameNew: string) { + super(core, groupId, userId); + this.name_new = nameNew; + } +}