diff --git a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/FavAddTextMsg.kt b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/FavAddTextMsg.kt index 25626be..ae15c39 100644 --- a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/FavAddTextMsg.kt +++ b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/FavAddTextMsg.kt @@ -16,7 +16,7 @@ import moe.fuqiuluo.symbols.OneBotHandler import moe.fuqiuluo.symbols.decodeProtobuf import protobuf.fav.WeiyunComm -@OneBotHandler("fav.add_text_msg", ["fav.add_text_msg"]) +@OneBotHandler("fav.add_text_msg", ["fav.add_text_message"]) internal object FavAddTextMsg: IActionHandler() { override suspend fun internalHandle(session: ActionSession): String { val uin = session.getLong("user_id") diff --git a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/QuickOperation.kt b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/QuickOperation.kt index d1e1697..bbda48f 100644 --- a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/QuickOperation.kt +++ b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/QuickOperation.kt @@ -106,7 +106,7 @@ internal object QuickOperation : IActionHandler() { } - return logic("操作成功", session.echo) + return ok("操作成功", session.echo) } override val requiredParams: Array = arrayOf("context", "operation", "self_id") diff --git a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/ScanQRCode.kt b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/ScanQRCode.kt index ce0cf85..54936c9 100644 --- a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/ScanQRCode.kt +++ b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/ScanQRCode.kt @@ -7,7 +7,7 @@ import moe.fuqiuluo.shamrock.remote.action.ActionSession import moe.fuqiuluo.shamrock.remote.action.IActionHandler import moe.fuqiuluo.symbols.OneBotHandler -@OneBotHandler("sanc_qrcode") +@OneBotHandler("scan_qrcode") internal object ScanQRCode: IActionHandler() { override suspend fun internalHandle(session: ActionSession): String { val qrcode = QRoute.api(IQRCodeApi::class.java) 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 05ba3eb..eaae6e9 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 @@ -1,6 +1,7 @@ package moe.fuqiuluo.shamrock.remote.action.handlers import com.tencent.qqnt.kernel.nativeinterface.MsgConstant +import moe.fuqiuluo.shamrock.helper.ParamsException import moe.fuqiuluo.shamrock.remote.action.ActionSession import moe.fuqiuluo.shamrock.remote.action.IActionHandler import moe.fuqiuluo.shamrock.tools.jsonArray @@ -9,19 +10,25 @@ import moe.fuqiuluo.symbols.OneBotHandler @OneBotHandler("send_group_message", ["send_group_msg"]) internal object SendGroupMessage: IActionHandler() { override suspend fun internalHandle(session: ActionSession): String { - val groupId = session.getLong("group_id") - val retryCnt = session.getIntOrNull("retry_cnt") - val recallDuration = session.getLongOrNull("recall_duration") - return if (session.isString("message")) { - val autoEscape = session.getBooleanOrDefault("auto_escape", false) - val message = session.getString("message") - SendMessage(MsgConstant.KCHATTYPEGROUP, groupId.toString(), message, autoEscape, echo = session.echo, retryCnt = retryCnt ?: 5, recallDuration = recallDuration) - } else if (session.isObject("message")) { - val message = session.getObject("message") - SendMessage(MsgConstant.KCHATTYPEGROUP, groupId.toString(), listOf( message ).jsonArray, session.echo, retryCnt = retryCnt ?: 5, recallDuration = recallDuration) - } else { - val message = session.getArray("message") - SendMessage(MsgConstant.KCHATTYPEGROUP, groupId.toString(), message, session.echo, retryCnt = retryCnt ?: 5, recallDuration = recallDuration) + try{ + val groupId = session.getLong("group_id") + val retryCnt = session.getIntOrNull("retry_cnt") + val recallDuration = session.getLongOrNull("recall_duration") + return if (session.isString("message")) { + val autoEscape = session.getBooleanOrDefault("auto_escape", false) + val message = session.getString("message") + SendMessage(MsgConstant.KCHATTYPEGROUP, groupId.toString(), message, autoEscape, echo = session.echo, retryCnt = retryCnt ?: 5, recallDuration = recallDuration) + } else if (session.isObject("message")) { + val message = session.getObject("message") + SendMessage(MsgConstant.KCHATTYPEGROUP, groupId.toString(), listOf( message ).jsonArray, session.echo, retryCnt = retryCnt ?: 5, recallDuration = recallDuration) + } else { + val message = session.getArray("message") + SendMessage(MsgConstant.KCHATTYPEGROUP, groupId.toString(), message, session.echo, retryCnt = retryCnt ?: 5, recallDuration = recallDuration) + } + } catch (e: ParamsException) { + return noParam(e.message!!, session.echo) + } catch (e: Throwable) { + return logic(e.message ?: e.toString(), session.echo) } } diff --git a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/SendGroupSign.kt b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/SendGroupSign.kt index d784c8c..70d28dc 100644 --- a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/SendGroupSign.kt +++ b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/SendGroupSign.kt @@ -1,7 +1,10 @@ package moe.fuqiuluo.shamrock.remote.action.handlers +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable import kotlinx.serialization.json.JsonElement import moe.fuqiuluo.qqinterface.servlet.GroupSvc +import moe.fuqiuluo.qqinterface.servlet.structures.GuildInfo import moe.fuqiuluo.shamrock.remote.action.ActionSession import moe.fuqiuluo.shamrock.remote.action.IActionHandler import moe.fuqiuluo.shamrock.tools.EmptyJsonString @@ -17,11 +20,16 @@ internal object SendGroupSign: IActionHandler() { suspend operator fun invoke(groupId: Long, echo: JsonElement = EmptyJsonString): String { val ret = GroupSvc.groupSign(groupId) return if (ret.isSuccess) { - ok(ret.getOrNull() ?: "", echo) + ok(Message(message = ret.getOrNull() ?: ""), echo, "成功") } else { logic(ret.exceptionOrNull()?.message ?: "", echo) } } override val requiredParams: Array = arrayOf("group_id") + + @Serializable + data class Message( + @SerialName("message") var message: String = "" + ) } \ No newline at end of file