From e0e7a9fc2e495da93f4aca06cb3f68b681191590 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E6=B1=A0?= <98259561+whitechi73@users.noreply.github.com> Date: Tue, 30 Jan 2024 15:09:11 +0800 Subject: [PATCH] =?UTF-8?q?`Shamrock`:=20=E6=94=AF=E6=8C=81=E6=96=B0?= =?UTF-8?q?=E5=B9=B4=E9=BE=99=E8=A1=A8=E6=83=85=EF=BC=8C=E7=82=B9=E5=BC=80?= =?UTF-8?q?=E6=8F=90=E4=BA=A4=E6=9F=A5=E7=9C=8B=E8=AF=84=E8=AE=BA=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E4=BD=BF=E7=94=A8=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../qqinterface/servlet/msg/MessageMaker.kt | 16 ++++++++++++---- .../servlet/msg/convert/MessageElemConverter.kt | 13 ++++++++++++- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/xposed/src/main/java/moe/fuqiuluo/qqinterface/servlet/msg/MessageMaker.kt b/xposed/src/main/java/moe/fuqiuluo/qqinterface/servlet/msg/MessageMaker.kt index bcfabc2..d47a783 100644 --- a/xposed/src/main/java/moe/fuqiuluo/qqinterface/servlet/msg/MessageMaker.kt +++ b/xposed/src/main/java/moe/fuqiuluo/qqinterface/servlet/msg/MessageMaker.kt @@ -500,7 +500,8 @@ internal object MessageMaker { private suspend fun createFaceElem(chatType: Int, msgId: Long, peerId: String, data: JsonObject): Result { data.checkAndThrow("id") - val big = data["big"].asBooleanOrNull ?: false + val serverId = data["id"].asInt + val big = (data["big"].asBooleanOrNull ?: false) || serverId == 394 val elem = MsgElement() elem.elementType = MsgConstant.KELEMTYPEFACE @@ -512,17 +513,24 @@ internal object MessageMaker { // 4 is market face // 5 is vas poke face.faceType = if (big) 3 else 2 - val serverId = data["id"].asInt face.faceIndex = serverId face.faceText = QQSysFaceUtil.getFaceDescription(QQSysFaceUtil.convertToLocal(serverId)) - face.imageType = 0 - if (big) { + if (serverId == 394) { + face.stickerId = 40.toString() + face.packId = "1" + face.sourceType = 1 + face.stickerType = 3 + face.randomType = 1 + face.resultId = data["result"].asStringOrNull ?: Random.nextInt(1 .. 5).toString() + } else if (big) { + face.imageType = 0 face.stickerId = 30.toString() face.packId = "1" face.sourceType = 1 face.stickerType = 1 face.randomType = 1 } else { + face.imageType = 0 face.packId = "0" } elem.faceElement = face diff --git a/xposed/src/main/java/moe/fuqiuluo/qqinterface/servlet/msg/convert/MessageElemConverter.kt b/xposed/src/main/java/moe/fuqiuluo/qqinterface/servlet/msg/convert/MessageElemConverter.kt index d4ffbaf..25f4b5f 100644 --- a/xposed/src/main/java/moe/fuqiuluo/qqinterface/servlet/msg/convert/MessageElemConverter.kt +++ b/xposed/src/main/java/moe/fuqiuluo/qqinterface/servlet/msg/convert/MessageElemConverter.kt @@ -83,6 +83,17 @@ internal sealed class MessageElemConverter: IMessageConvert { ) ) } + 394 -> { + //LogCenter.log(face.toString()) + return MessageSegment( + type = "face", + data = hashMapOf( + "id" to face.faceIndex, + "big" to (face.faceType == 3), + "result" to (face.resultId ?: "1") + ) + ) + } else -> return MessageSegment( type = "face", data = hashMapOf( @@ -123,7 +134,7 @@ internal sealed class MessageElemConverter: IMessageConvert { else -> unknownChatType(chatType) }, "subType" to image.picSubType, - "type" to if (image.isFlashPic) "flash" else if(image.original) "original" else "show" + "type" to if (image.isFlashPic == true) "flash" else if(image.original) "original" else "show" ) ) }