diff --git a/src/ntqqapi/constructor.ts b/src/ntqqapi/constructor.ts index 1c3e885..ae198d7 100644 --- a/src/ntqqapi/constructor.ts +++ b/src/ntqqapi/constructor.ts @@ -6,6 +6,7 @@ import { SendArkElement, SendFaceElement, SendFileElement, + SendMarketFaceElement, SendPicElement, SendPttElement, SendReplyElement, @@ -260,6 +261,17 @@ export class SendMsgElementConstructor { } } + static mface(emojiPackageId: number, emojiId: string, key: string):SendMarketFaceElement{ + return { + elementType: ElementType.MFACE, + marketFaceElement: { + emojiPackageId, + emojiId, + key + }, + } + } + static dice(resultId: number | null): SendFaceElement { // 实际测试并不能控制结果 diff --git a/src/ntqqapi/types/msg.ts b/src/ntqqapi/types/msg.ts index d36a93b..fd30bc2 100644 --- a/src/ntqqapi/types/msg.ts +++ b/src/ntqqapi/types/msg.ts @@ -10,6 +10,7 @@ export enum ElementType { FACE = 6, REPLY = 7, ARK = 10, + MFACE = 11, } export interface SendTextElement { @@ -91,6 +92,11 @@ export interface SendFaceElement { faceElement: FaceElement } +export interface SendMarketFaceElement { + elementType: ElementType.MFACE, + marketFaceElement: MarketFaceElement +} + export interface FileElement { "fileMd5"?: "", "fileName": string, @@ -128,7 +134,7 @@ export interface SendArkElement { } export type SendMessageElement = SendTextElement | SendPttElement | - SendPicElement | SendReplyElement | SendFaceElement | SendFileElement | SendVideoElement | SendArkElement + SendPicElement | SendReplyElement | SendFaceElement | SendMarketFaceElement | SendFileElement | SendVideoElement | SendArkElement export enum AtType { notAt = 0, @@ -238,42 +244,9 @@ export interface FaceElement { } export interface MarketFaceElement { - "itemType": 6, - "faceInfo": 1, - "emojiPackageId": 203875, - "subType": 3, - "mediaType": 0, - "imageWidth": 200, - "imageHeight": 200, - "faceName": string, - "emojiId": "094d53bd1c9ac5d35d04b08e8a6c992c", - "key": "a8b1dd0aebc8d910", - "param": null, - "mobileParam": null, - "sourceType": null, - "startTime": null, - "endTime": null, - "emojiType": 1, - "hasIpProduct": null, - "voiceItemHeightArr": null, - "sourceName": null, - "sourceJumpUrl": null, - "sourceTypeName": null, - "backColor": null, - "volumeColor": null, - "staticFacePath": "E:\\SystemDocuments\\QQ\\721011692\\nt_qq\\nt_data\\Emoji\\marketface\\203875\\094d53bd1c9ac5d35d04b08e8a6c992c_aio.png", - "dynamicFacePath": "E:\\SystemDocuments\\QQ\\721011692\\nt_qq\\nt_data\\Emoji\\marketface\\203875\\094d53bd1c9ac5d35d04b08e8a6c992c", - "supportSize": [ - { - "width": 300, - "height": 300 - }, - { - "width": 200, - "height": 200 - } - ], - "apngSupportSize": null + "emojiPackageId": number, + "emojiId": string, + "key": string, } export interface VideoElement { @@ -420,6 +393,7 @@ export interface RawMessage { arkElement: ArkElement; grayTipElement: GrayTipElement; faceElement: FaceElement; + mfaceElement: MarketFaceElement; videoElement: VideoElement; fileElement: FileElement; marketFaceElement: MarketFaceElement; diff --git a/src/onebot11/action/msg/SendMsg.ts b/src/onebot11/action/msg/SendMsg.ts index 5cda5e5..092e787 100644 --- a/src/onebot11/action/msg/SendMsg.ts +++ b/src/onebot11/action/msg/SendMsg.ts @@ -155,7 +155,9 @@ export async function createSendElements(messageData: OB11MessageData[], target: } } break; - + case OB11MessageDataType.mface: { + sendElements.push(SendMsgElementConstructor.mface(sendMsg.data.emojiPackageId, sendMsg.data.emojiId, sendMsg.data.key)) + } case OB11MessageDataType.image: case OB11MessageDataType.file: case OB11MessageDataType.video: diff --git a/src/onebot11/constructor.ts b/src/onebot11/constructor.ts index 7425a23..3cc88bc 100644 --- a/src/onebot11/constructor.ts +++ b/src/onebot11/constructor.ts @@ -224,6 +224,10 @@ export class OB11Constructor { // const url = `https://p.qpic.cn/CDN_STATIC/0/data/imgcache/htdocs/club/item/parcel/item/${dir}/${md5}/300x300.gif?max_age=31536000` const url = `https://gxh.vip.qq.com/club/item/parcel/item/${dir}/${md5}/raw300.gif`; message_data["data"]["url"] = url; + message_data["data"]["emoji_id"] = element.marketFaceElement.emojiId + message_data["data"]["emoji_package_id"] = String(element.marketFaceElement.emojiPackageId) + message_data["data"]["key"] = element.marketFaceElement.key + } else if (element.markdownElement) { message_data["type"] = OB11MessageDataType.markdown; message_data["data"]["data"] = element.markdownElement.content; diff --git a/src/onebot11/types.ts b/src/onebot11/types.ts index b4a9540..2d88e31 100644 --- a/src/onebot11/types.ts +++ b/src/onebot11/types.ts @@ -125,7 +125,9 @@ export enum OB11MessageDataType { export interface OB11MessageMFace{ type: OB11MessageDataType.mface, data: { - text: string + emojiPackageId: number, + emojiId: string, + key: string } }