Shamrock: fix #156

This commit is contained in:
ikechan8370 2023-12-17 11:40:05 +08:00
parent 4ef014a8ac
commit 6107ec6ffb
3 changed files with 19 additions and 13 deletions

View File

@ -25,7 +25,7 @@ internal object SetFriendAddRequest: IActionHandler() {
if (ts.toString().length < 13) { if (ts.toString().length < 13) {
// time but not seq, query seq again // time but not seq, query seq again
val reqs = FriendSvc.requestFriendSystemMsgNew(20, 0, 0, 1) val reqs = FriendSvc.requestFriendSystemMsgNew(20, 0, 0, 1)
val req = reqs?.first { val req = reqs?.firstOrNull {
it.msg_time.get() == ts it.msg_time.get() == ts
} }
// 好友请求seq貌似就是time*1000查不到直接*1000 // 好友请求seq貌似就是time*1000查不到直接*1000

View File

@ -27,10 +27,10 @@ internal object SetGroupAddRequest: IActionHandler() {
var reqs = GroupSvc.requestGroupSystemMsgNew(20, 1) var reqs = GroupSvc.requestGroupSystemMsgNew(20, 1)
val riskReqs = GroupSvc.requestGroupSystemMsgNew(20, 2) val riskReqs = GroupSvc.requestGroupSystemMsgNew(20, 2)
reqs = reqs + riskReqs reqs = reqs + riskReqs
val req = reqs.first { val req = reqs.firstOrNull {
it.msg_time.get() == ts it.msg_time.get() == ts
} }
ts = req.msg_seq?.get() ?: return error("失败:未找到该请求", echo) ts = req?.msg_seq?.get() ?: return error("失败:未找到该请求", echo)
} }
} catch (err: Throwable) { } catch (err: Throwable) {
LogCenter.log(err.stackTraceToString(), Level.WARN) LogCenter.log(err.stackTraceToString(), Level.WARN)

View File

@ -23,6 +23,7 @@ import moe.fuqiuluo.proto.asList
import moe.fuqiuluo.proto.asULong import moe.fuqiuluo.proto.asULong
import moe.fuqiuluo.qqinterface.servlet.FriendSvc.requestFriendSystemMsgNew import moe.fuqiuluo.qqinterface.servlet.FriendSvc.requestFriendSystemMsgNew
import moe.fuqiuluo.qqinterface.servlet.GroupSvc.requestGroupSystemMsgNew import moe.fuqiuluo.qqinterface.servlet.GroupSvc.requestGroupSystemMsgNew
import moe.fuqiuluo.qqinterface.servlet.TicketSvc.getLongUin
import moe.fuqiuluo.shamrock.helper.MessageHelper import moe.fuqiuluo.shamrock.helper.MessageHelper
import moe.fuqiuluo.shamrock.remote.service.data.push.NoticeSubType import moe.fuqiuluo.shamrock.remote.service.data.push.NoticeSubType
import moe.fuqiuluo.shamrock.remote.service.data.push.NoticeType import moe.fuqiuluo.shamrock.remote.service.data.push.NoticeType
@ -496,16 +497,18 @@ internal object PrimitiveListener {
val applierUid = pb[1, 3, 2, 3].asUtf8String val applierUid = pb[1, 3, 2, 3].asUtf8String
val reason = pb[1, 3, 2, 5].asUtf8String val reason = pb[1, 3, 2, 5].asUtf8String
val applier = ContactHelper.getUinByUidAsync(applierUid).toLong() val applier = ContactHelper.getUinByUidAsync(applierUid).toLong()
if (applier == getLongUin()) {
return
}
LogCenter.log("入群申请($groupCode) $applier: \"$reason\"") LogCenter.log("入群申请($groupCode) $applier: \"$reason\"")
val flag = try { val flag = try {
var reqs = requestGroupSystemMsgNew(10, 1) var reqs = requestGroupSystemMsgNew(10, 1)
val riskReqs = requestGroupSystemMsgNew(10, 2) val riskReqs = requestGroupSystemMsgNew(5, 2)
reqs = reqs + riskReqs reqs = reqs + riskReqs
val req = reqs.first { val req = reqs.firstOrNull() {
it.msg_time.get() == time it.msg_time.get() == time
} }
val seq = req.msg_seq?.get() val seq = req?.msg_seq?.get() ?: time
"$seq;$groupCode;$applier" "$seq;$groupCode;$applier"
} catch (err: Throwable) { } catch (err: Throwable) {
"$time;$groupCode;$applier" "$time;$groupCode;$applier"
@ -521,6 +524,9 @@ internal object PrimitiveListener {
val groupCode = pb[1, 3, 2, 2, 3].asULong val groupCode = pb[1, 3, 2, 2, 3].asULong
val applierUid = pb[1, 3, 2, 2, 5].asUtf8String val applierUid = pb[1, 3, 2, 2, 5].asUtf8String
val applier = ContactHelper.getUinByUidAsync(applierUid).toLong() val applier = ContactHelper.getUinByUidAsync(applierUid).toLong()
if (applier == getLongUin()) {
return
}
if (pb[1, 3, 2, 2, 1].asInt < 3) { if (pb[1, 3, 2, 2, 1].asInt < 3) {
// todo // todo
return return
@ -528,15 +534,15 @@ internal object PrimitiveListener {
LogCenter.log("邀请入群申请($groupCode): $applier") LogCenter.log("邀请入群申请($groupCode): $applier")
val flag = try { val flag = try {
var reqs = requestGroupSystemMsgNew(10, 1) var reqs = requestGroupSystemMsgNew(10, 1)
val riskReqs = requestGroupSystemMsgNew(10, 2) val riskReqs = requestGroupSystemMsgNew(5, 2)
reqs = reqs + riskReqs reqs = reqs + riskReqs
val req = reqs.first { val req = reqs.firstOrNull() {
it.msg_time.get() == time it.msg_time.get() == time
} }
val seq = req.msg_seq?.get() val seq = req?.msg_seq?.get() ?: time
"$seq;$groupCode;$applier" "$seq;$groupCode;$applier"
} catch (err: Throwable) { } catch (err: Throwable) {
"$time;$groupCode;$applierUid" "$time;$groupCode;$applier"
} }
if (!GlobalEventTransmitter.RequestTransmitter if (!GlobalEventTransmitter.RequestTransmitter
.transGroupApply(time, applier, "", groupCode, flag, RequestSubType.Add) .transGroupApply(time, applier, "", groupCode, flag, RequestSubType.Add)
@ -557,10 +563,10 @@ internal object PrimitiveListener {
var reqs = requestGroupSystemMsgNew(10, 1) var reqs = requestGroupSystemMsgNew(10, 1)
val riskReqs = requestGroupSystemMsgNew(10, 2) val riskReqs = requestGroupSystemMsgNew(10, 2)
reqs = reqs + riskReqs reqs = reqs + riskReqs
val req = reqs.first { val req = reqs.firstOrNull() {
it.msg_time.get() == time it.msg_time.get() == time
} }
val seq = req.msg_seq?.get() val seq = req?.msg_seq?.get() ?: time
"$seq;$groupCode;$uin" "$seq;$groupCode;$uin"
} catch (err: Throwable) { } catch (err: Throwable) {
"$time;$groupCode;$uin" "$time;$groupCode;$uin"