diff --git a/app/src/main/java/moe/fuqiuluo/shamrock/ui/theme/Strings.kt b/app/src/main/java/moe/fuqiuluo/shamrock/ui/theme/Strings.kt index 8baa53e..7ce0078 100644 --- a/app/src/main/java/moe/fuqiuluo/shamrock/ui/theme/Strings.kt +++ b/app/src/main/java/moe/fuqiuluo/shamrock/ui/theme/Strings.kt @@ -86,7 +86,7 @@ private open class Chūnibyō: Default() { injectPacket = "遮匿无用之禀" injectPacketDesc = "试于试之,逆则魂飞魄散" persistentText = "丹书铁券" - persistentTextDesc = "" + persistentTextDesc = "由天地之起也,须复动之。" } } @@ -119,7 +119,7 @@ private open class Default: VarString( injectPacket = "拦截QQ无用收包", injectPacketDesc = "测试阶段,可能导致网络异常或掉线。", persistentText = "免死金牌", - persistentTextDesc = "由天地之起也,须复动之。" + persistentTextDesc = "由系统复活QQ和Shamrock,需要重新启动系统。" ) open class VarString( diff --git a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/listener/AioListener.kt b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/listener/AioListener.kt index 74b9647..20a4a04 100644 --- a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/listener/AioListener.kt +++ b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/listener/AioListener.kt @@ -73,8 +73,8 @@ internal object AioListener: IKernelMsgListener { MsgConstant.KCHATTYPEGROUP -> { LogCenter.log("群消息(group = ${record.peerName}(${record.peerUin}), uin = ${record.senderUin}, id = $msgHash|${record.msgSeq}, msg = $rawMsg)") ShamrockConfig.getGroupMsgRule()?.let { rule -> - if (rule.black?.contains(record.peerUin) == true) return - if (rule.white?.contains(record.peerUin) == false) return + if (!rule.black.isNullOrEmpty() && rule.black.contains(record.senderUin)) return + if (!rule.white.isNullOrEmpty() && !rule.white.contains(record.senderUin)) return } if(!GlobalEventTransmitter.MessageTransmitter.transGroupMessage( @@ -86,8 +86,8 @@ internal object AioListener: IKernelMsgListener { MsgConstant.KCHATTYPEC2C -> { LogCenter.log("私聊消息(private = ${record.senderUin}, id = [$msgHash | ${record.msgId} | ${record.msgSeq}], msg = $rawMsg)") ShamrockConfig.getPrivateRule()?.let { rule -> - if (rule.black?.contains(record.peerUin) == true) return - if (rule.white?.contains(record.peerUin) == false) return + if (!rule.black.isNullOrEmpty() && rule.black.contains(record.senderUin)) return + if (!rule.white.isNullOrEmpty() && !rule.white.contains(record.senderUin)) return } if(!GlobalEventTransmitter.MessageTransmitter.transPrivateMessage( @@ -98,14 +98,12 @@ internal object AioListener: IKernelMsgListener { } MsgConstant.KCHATTYPETEMPC2CFROMGROUP -> { - if (!ShamrockConfig.allowTempSession()) { - return - } + if (!ShamrockConfig.allowTempSession()) return LogCenter.log("私聊临时消息(private = ${record.senderUin}, id = $msgHash, msg = $rawMsg)") ShamrockConfig.getPrivateRule()?.let { rule -> - if (rule.black?.contains(record.peerUin) == true) return - if (rule.white?.contains(record.peerUin) == false) return + if (!rule.black.isNullOrEmpty() && rule.black.contains(record.senderUin)) return + if (!rule.white.isNullOrEmpty() && !rule.white.contains(record.senderUin)) return } if(!GlobalEventTransmitter.MessageTransmitter.transPrivateMessage( @@ -151,14 +149,14 @@ internal object AioListener: IKernelMsgListener { override fun onMsgInfoListUpdate(msgList: ArrayList?) { msgList?.forEach { record -> + if (record.chatType == MsgConstant.KCHATTYPEGUILD) return@forEach// TODO: 频道消息暂不处理 + + if (record.sendStatus == MsgConstant.KSENDSTATUSFAILED + || record.sendStatus == MsgConstant.KSENDSTATUSSENDING) { + return@forEach + } + GlobalScope.launch { - if (record.chatType == MsgConstant.KCHATTYPEGUILD) return@launch// TODO: 频道消息暂不处理 - - if (record.sendStatus == MsgConstant.KSENDSTATUSFAILED - || record.sendStatus == MsgConstant.KSENDSTATUSSENDING) { - return@launch - } - val msgHash = MessageHelper.generateMsgIdHash(record.chatType, record.msgId) val mapping = MessageHelper.getMsgMappingByHash(msgHash) @@ -186,17 +184,23 @@ internal object AioListener: IKernelMsgListener { when (record.chatType) { MsgConstant.KCHATTYPEGROUP -> { - GlobalEventTransmitter.MessageTransmitter - .transGroupMessage(record, record.elements, rawMsg, msgHash, PostType.MsgSent) + if(!GlobalEventTransmitter.MessageTransmitter + .transGroupMessage(record, record.elements, rawMsg, msgHash, PostType.MsgSent)) { + LogCenter.log("自发群消息推送失败 -> MessageTransmitter", Level.WARN) + } } MsgConstant.KCHATTYPEC2C -> { - GlobalEventTransmitter.MessageTransmitter - .transPrivateMessage(record, record.elements, rawMsg, msgHash, PostType.MsgSent) + if(!GlobalEventTransmitter.MessageTransmitter + .transPrivateMessage(record, record.elements, rawMsg, msgHash, PostType.MsgSent)) { + LogCenter.log("自发私聊消息推送失败 -> MessageTransmitter", Level.WARN) + } } MsgConstant.KCHATTYPETEMPC2CFROMGROUP -> { if (!ShamrockConfig.allowTempSession()) return@launch - GlobalEventTransmitter.MessageTransmitter - .transPrivateMessage(record, record.elements, rawMsg, msgHash, PostType.MsgSent, MessageTempSource.Group) + if(!GlobalEventTransmitter.MessageTransmitter + .transPrivateMessage(record, record.elements, rawMsg, msgHash, PostType.MsgSent, MessageTempSource.Group)) { + LogCenter.log("自发私聊临时消息推送失败 -> MessageTransmitter", Level.WARN) + } } else -> LogCenter.log("不支持SELF PUSH事件: ${record.chatType}") }