Shamrock: fix #104

This commit is contained in:
Simplxs 2023-11-28 23:46:56 +08:00
parent 9d893b481d
commit 8e0ae6f85b
No known key found for this signature in database
GPG Key ID: E23537FF14DD6507

View File

@ -90,18 +90,19 @@ internal object SendForwardMessage : IActionHandler() {
if (it.asJsonObject["type"].asStringOrNull != "node") return@map ForwardMsgNode.EmptyNode // 过滤非node类型消息段
it.asJsonObject["data"].asJsonObject.let { data ->
if (data.containsKey("content")) {
if (data["content"] is JsonArray) {
data["content"].asJsonArray.forEach { msg ->
if (msg.asJsonObject["type"].asStringOrNull == "node") {
LogCenter.log("合并转发消息不支持嵌套", Level.ERROR)
return@map ForwardMsgNode.EmptyNode
}
}
}
ForwardMsgNode.MessageNode(
name = data["name"].asStringOrNull ?: "",
content = data["content"]
)
}
else ForwardMsgNode.MessageIdNode(data["id"].asInt)
} else ForwardMsgNode.MessageIdNode(data["id"].asInt)
}
}.map {
if (it is ForwardMsgNode.MessageIdNode) {
@ -131,7 +132,9 @@ internal object SendForwardMessage : IActionHandler() {
suspendCoroutine {
GlobalScope.launch {
var msgId: Long = 0
msgId = MessageHelper.sendMessageWithMsgId(MsgConstant.KCHATTYPEC2C, selfUin, node.content!!.let { msg ->
msgId = MessageHelper.sendMessageWithMsgId(MsgConstant.KCHATTYPEC2C,
selfUin,
node.content!!.let { msg ->
if (msg is JsonArray) msg else MessageHelper.decodeCQCode(msg.asString)
},
{ code, why ->
@ -156,7 +159,8 @@ internal object SendForwardMessage : IActionHandler() {
ForwardMessageResult(
msgId = uniseq.first,
forwardId = ""
), echo = echo)
), echo = echo
)
}.onFailure {
return error("error: $it", echo)
}