mirror of
https://github.com/whitechi73/OpenShamrock.git
synced 2024-08-14 13:12:17 +08:00
Shamrock
: 尝试修复 #98
This commit is contained in:
parent
ae663e6b2e
commit
80a4a208b9
@ -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(
|
||||
|
@ -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<MsgRecord>?) {
|
||||
msgList?.forEach { record ->
|
||||
GlobalScope.launch {
|
||||
if (record.chatType == MsgConstant.KCHATTYPEGUILD) return@launch// TODO: 频道消息暂不处理
|
||||
if (record.chatType == MsgConstant.KCHATTYPEGUILD) return@forEach// TODO: 频道消息暂不处理
|
||||
|
||||
if (record.sendStatus == MsgConstant.KSENDSTATUSFAILED
|
||||
|| record.sendStatus == MsgConstant.KSENDSTATUSSENDING) {
|
||||
return@launch
|
||||
return@forEach
|
||||
}
|
||||
|
||||
GlobalScope.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}")
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user