diff --git a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/SendGroupMessage.kt b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/SendGroupMessage.kt index 179d611..fe15258 100644 --- a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/SendGroupMessage.kt +++ b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/SendGroupMessage.kt @@ -8,16 +8,17 @@ import moe.fuqiuluo.shamrock.tools.jsonArray internal object SendGroupMessage: IActionHandler() { override suspend fun internalHandle(session: ActionSession): String { val groupId = session.getString("group_id") + val retryCnt = session.getIntOrNull("retry_cnt") return if (session.isString("message")) { val autoEscape = session.getBooleanOrDefault("auto_escape", false) val message = session.getString("message") - SendMessage(MsgConstant.KCHATTYPEGROUP, groupId, message, autoEscape, echo = session.echo) + SendMessage(MsgConstant.KCHATTYPEGROUP, groupId, message, autoEscape, echo = session.echo, retryCnt = retryCnt ?: 3) } else if (session.isObject("message")) { val message = session.getObject("message") - SendMessage(MsgConstant.KCHATTYPEGROUP, groupId, listOf( message ).jsonArray, session.echo) + SendMessage(MsgConstant.KCHATTYPEGROUP, groupId, listOf( message ).jsonArray, session.echo, retryCnt = retryCnt ?: 3) } else { val message = session.getArray("message") - SendMessage(MsgConstant.KCHATTYPEGROUP, groupId, message, session.echo) + SendMessage(MsgConstant.KCHATTYPEGROUP, groupId, message, session.echo, retryCnt = retryCnt ?: 3) } } diff --git a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/SendMessage.kt b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/SendMessage.kt index 80965f6..48933df 100644 --- a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/SendMessage.kt +++ b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/SendMessage.kt @@ -44,16 +44,17 @@ internal object SendMessage: IActionHandler() { fromId = groupId } } + val retryCnt = session.getIntOrNull("retry_cnt") return if (session.isString("message")) { val autoEscape = session.getBooleanOrDefault("auto_escape", false) val message = session.getString("message") - invoke(chatType, peerId, message, autoEscape, echo = session.echo, fromId = fromId) + invoke(chatType, peerId, message, autoEscape, echo = session.echo, fromId = fromId, retryCnt = retryCnt ?: 3) } else if (session.isArray("message")) { val message = session.getArray("message") - invoke(chatType, peerId, message, session.echo, fromId = fromId) + invoke(chatType, peerId, message, session.echo, fromId = fromId, retryCnt ?: 3) } else { val message = session.getObject("message") - invoke(chatType, peerId, listOf( message ).jsonArray, session.echo, fromId = fromId) + invoke(chatType, peerId, listOf( message ).jsonArray, session.echo, fromId = fromId, retryCnt ?: 3) } } catch (e: ParamsException) { return noParam(e.message!!, session.echo) @@ -69,6 +70,7 @@ internal object SendMessage: IActionHandler() { message: String, autoEscape: Boolean, fromId: String = peerId, + retryCnt: Int, echo: JsonElement = EmptyJsonString ): String { //if (!ContactHelper.checkContactAvailable(chatType, peerId)) { @@ -89,7 +91,7 @@ internal object SendMessage: IActionHandler() { LogCenter.log("CQ码不合法", Level.WARN) return logic("CQCode is illegal", echo) } else { - MsgSvc.sendToAio(chatType, peerId, msg, fromId = fromId) + MsgSvc.sendToAio(chatType, peerId, msg, fromId = fromId, retryCnt) } } if (result.isFailure) { @@ -107,12 +109,12 @@ internal object SendMessage: IActionHandler() { // 消息段格式消息 suspend operator fun invoke( - chatType: Int, peerId: String, message: JsonArray, echo: JsonElement = EmptyJsonString, fromId: String = peerId + chatType: Int, peerId: String, message: JsonArray, echo: JsonElement = EmptyJsonString, fromId: String = peerId, retryCnt: Int ): String { //if (!ContactHelper.checkContactAvailable(chatType, peerId)) { // return logic("contact is not found", echo = echo) //} - val result = MsgSvc.sendToAio(chatType, peerId, message, fromId = fromId) + val result = MsgSvc.sendToAio(chatType, peerId, message, fromId = fromId, retryCnt) if (result.isFailure) { return logic(result.exceptionOrNull()?.message ?: "", echo) } diff --git a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/SendPrivateMessage.kt b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/SendPrivateMessage.kt index 4f20d72..56e3d90 100644 --- a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/SendPrivateMessage.kt +++ b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/SendPrivateMessage.kt @@ -10,6 +10,7 @@ internal object SendPrivateMessage: IActionHandler() { val userId = session.getString("user_id") val groupId = session.getStringOrNull("group_id") val chatType = if (groupId == null) MsgConstant.KCHATTYPEC2C else MsgConstant.KCHATTYPETEMPC2CFROMGROUP + val retryCnt = session.getIntOrNull("retry_cnt") return if (session.isString("message")) { val autoEscape = session.getBooleanOrDefault("auto_escape", false) val message = session.getString("message") @@ -19,7 +20,8 @@ internal object SendPrivateMessage: IActionHandler() { message = message, autoEscape = autoEscape, echo = session.echo, - fromId = groupId ?: userId + fromId = groupId ?: userId, + retryCnt = retryCnt ?: 3 ) } else if (session.isArray("message")) { val message = session.getArray("message") @@ -28,7 +30,8 @@ internal object SendPrivateMessage: IActionHandler() { peerId = userId, message = message, echo = session.echo, - fromId = groupId ?: userId + fromId = groupId ?: userId, + retryCnt = retryCnt ?: 3 ) } else { val message = session.getObject("message") @@ -37,7 +40,8 @@ internal object SendPrivateMessage: IActionHandler() { peerId = userId, message = listOf( message ).jsonArray, echo = session.echo, - fromId = groupId ?: userId + fromId = groupId ?: userId, + retryCnt = retryCnt ?: 3 ) } }