From 5c10a5a04e776ac9f5f6e1a78e35b360fa8754cf Mon Sep 17 00:00:00 2001 From: WhiteChi Date: Thu, 30 Nov 2023 10:28:12 +0800 Subject: [PATCH] =?UTF-8?q?`Shamrock`:=20=E6=94=AF=E6=8C=81=E7=AF=AE?= =?UTF-8?q?=E7=90=83=E8=B6=85=E8=A1=A8=E6=83=85,=20=E6=96=B0=E7=8C=9C?= =?UTF-8?q?=E6=8B=B3=E8=B6=85=E8=A1=A8=E6=83=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../qqinterface/servlet/msg/MessageMaker.kt | 51 +++++++++++++++++++ .../msg/convert/MessageElemConverter.kt | 43 ++++++++++++---- 2 files changed, 83 insertions(+), 11 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 7f904e5..ad338a7 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 @@ -99,6 +99,8 @@ internal object MessageMaker { "weather" to MessageMaker::createWeatherElem, "json" to MessageMaker::createJsonElem, "new_dice" to MessageMaker::createNewDiceElem, + "new_rps" to MessageMaker::createNewRpsElem, + "basketball" to MessageMaker::createBasketballElem, //"node" to MessageMaker::createNodeElem, //"multi_msg" to MessageMaker::createLongMsgStruct, ) @@ -113,6 +115,55 @@ internal object MessageMaker { // SendForwardMessage(MsgConstant.KCHATTYPEC2C, TicketSvc.getUin(), data["content"].asJsonArray) // // } + /**\ + * msgElement.setFaceElement(new FaceElement()); + * msgElement.getFaceElement().setFaceIndex(114); + * msgElement.getFaceElement().setFaceText("/篮球"); + * msgElement.getFaceElement().setFaceType(3); + * msgElement.getFaceElement().setPackId("1"); + * msgElement.getFaceElement().setStickerId("13"); + * msgElement.getFaceElement().setRandomType(1); + * msgElement.getFaceElement().setImageType(1); + * msgElement.getFaceElement().setStickerType(2); + * msgElement.getFaceElement().setSourceType(1); + * msgElement.getFaceElement().setSurpriseId(""); + * msgElement.getFaceElement().setResultId(String.valueOf(new Random().nextInt(5) + 1)); + */ + private suspend fun createBasketballElem(chatType: Int, msgId: Long, peerId: String, data: JsonObject): Result { + val elem = MsgElement() + elem.elementType = MsgConstant.KELEMTYPEFACE + val face = FaceElement() + face.faceIndex = 114 + face.faceText = "/篮球" + face.faceType = 3 + face.packId = "1" + face.stickerId = "13" + face.sourceType = 1 + face.stickerType = 2 + face.resultId = Random.nextInt(1 .. 5).toString() + face.surpriseId = "" + face.randomType = 1 + elem.faceElement = face + return Result.success(elem) + } + + private suspend fun createNewRpsElem(chatType: Int, msgId: Long, peerId: String, data: JsonObject): Result { + val elem = MsgElement() + elem.elementType = MsgConstant.KELEMTYPEFACE + val face = FaceElement() + face.faceIndex = 359 + face.faceText = "/包剪锤" + face.faceType = 3 + face.packId = "1" + face.stickerId = "34" + face.sourceType = 1 + face.stickerType = 2 + face.resultId = "" + face.surpriseId = "" + face.randomType = 1 + elem.faceElement = face + return Result.success(elem) + } private suspend fun createNewDiceElem(chatType: Int, msgId: Long, peerId: String, data: JsonObject): Result { val elem = MsgElement() 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 798a157..d356999 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 @@ -55,21 +55,42 @@ internal sealed class MessageElemConverter: IMessageConvert { ) ) } - if (face.faceIndex == 358) { - if (face.sourceType == 1) return MessageSegment("new_dice") - return MessageSegment( - type = "new_dice", + + + when (face.faceIndex) { + 114 -> { + return MessageSegment( + type = "basketball", + data = hashMapOf( + "id" to face.resultId.ifEmpty { "0" }.toInt(), + ) + ) + } + 358 -> { + if (face.sourceType == 1) return MessageSegment("new_dice") + return MessageSegment( + type = "new_dice", + data = hashMapOf( + "id" to face.resultId.ifEmpty { "0" }.toInt() + ) + ) + } + 359 -> { + if (face.resultId.isEmpty()) return MessageSegment("new_rps") + return MessageSegment( + type = "new_rps", + data = hashMapOf( + "id" to face.resultId.ifEmpty { "0" }.toInt() + ) + ) + } + else -> return MessageSegment( + type = "face", data = hashMapOf( - "id" to face.resultId.ifEmpty { "0" }.toInt() + "id" to face.faceIndex ) ) } - return MessageSegment( - type = "face", - data = hashMapOf( - "id" to face.faceIndex - ) - ) } }