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