diff --git a/src/core/packet/message/element.ts b/src/core/packet/message/element.ts index cedcf44e..3dfd7ec3 100644 --- a/src/core/packet/message/element.ts +++ b/src/core/packet/message/element.ts @@ -160,10 +160,12 @@ export class PacketMsgReplyElement extends IPacketMsgElement { export class PacketMsgFaceElement extends IPacketMsgElement { faceId: number; isLargeFace: boolean; + resultId?: string; constructor(element: SendFaceElement) { super(element); this.faceId = element.faceElement.faceIndex; + this.resultId = element.faceElement.resultId; this.isLargeFace = element.faceElement.faceType === FaceType.AniSticke; } @@ -176,10 +178,10 @@ export class PacketMsgFaceElement extends IPacketMsgElement { aniStickerPackId: "1", aniStickerId: "8", faceId: this.faceId, - field4: 1, - field6: "", + sourceType: 1, + resultId: this.resultId, preview: "", - field9: 1 + randomType: 1 }), businessType: 1 } diff --git a/src/core/packet/transformer/proto/message/element.ts b/src/core/packet/transformer/proto/message/element.ts index c68a2ae8..ab419029 100644 --- a/src/core/packet/transformer/proto/message/element.ts +++ b/src/core/packet/transformer/proto/message/element.ts @@ -342,11 +342,11 @@ export const QBigFaceExtra = { AniStickerPackId: ProtoField(1, ScalarType.STRING, true), AniStickerId: ProtoField(2, ScalarType.STRING, true), faceId: ProtoField(3, ScalarType.INT32, true), - Field4: ProtoField(4, ScalarType.INT32, true), + sourceType: ProtoField(4, ScalarType.INT32, true), AniStickerType: ProtoField(5, ScalarType.INT32, true), - field6: ProtoField(6, ScalarType.STRING, true), + resultId: ProtoField(6, ScalarType.STRING, true), preview: ProtoField(7, ScalarType.STRING, true), - field9: ProtoField(9, ScalarType.INT32, true), + randomType: ProtoField(9, ScalarType.INT32, true), }; export const QSmallFaceExtra = { diff --git a/src/core/types/element.ts b/src/core/types/element.ts index be9eec2d..e6c71c57 100644 --- a/src/core/types/element.ts +++ b/src/core/types/element.ts @@ -40,6 +40,7 @@ export interface FaceElement { resultId?: string; surpriseId?: string; randomType?: number; + chainCount?: number; } export interface GrayTipRovokeElement { operatorRole: string; @@ -348,4 +349,4 @@ export type SendShareLocationElement = SendElementBase { + [OB11MessageDataType.face]: async ({ data: { id, resultId, chainCount } }) => { const parsedFaceId = +id; // 从face_config.json中获取表情名称 const sysFaces = faceConfig.sysface; @@ -491,6 +494,8 @@ export class OneBotMsgApi { stickerType: face.AniStickerType, packId: face.AniStickerPackId, sourceType: 1, + resultId: resultId?.toString(), + chainCount, }, }; }, diff --git a/src/onebot/types/message.ts b/src/onebot/types/message.ts index ada739b7..6d9aabd0 100644 --- a/src/onebot/types/message.ts +++ b/src/onebot/types/message.ts @@ -164,6 +164,8 @@ export interface OB11MessageFace { type: OB11MessageDataType.face; data: { id: string; + resultId?: string; + chainCount?: number; }; } @@ -276,4 +278,4 @@ export interface OB11PostContext { message_type?: 'private' | 'group'; user_id?: string; group_id?: string; -} \ No newline at end of file +}