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) {
// time but not seq, query seq again
val reqs = FriendSvc.requestFriendSystemMsgNew(20, 0, 0, 1)
val req = reqs?.first {
val req = reqs?.firstOrNull {
it.msg_time.get() == ts
}
// 好友请求seq貌似就是time*1000查不到直接*1000

View File

@ -27,10 +27,10 @@ internal object SetGroupAddRequest: IActionHandler() {
var reqs = GroupSvc.requestGroupSystemMsgNew(20, 1)
val riskReqs = GroupSvc.requestGroupSystemMsgNew(20, 2)
reqs = reqs + riskReqs
val req = reqs.first {
val req = reqs.firstOrNull {
it.msg_time.get() == ts
}
ts = req.msg_seq?.get() ?: return error("失败:未找到该请求", echo)
ts = req?.msg_seq?.get() ?: return error("失败:未找到该请求", echo)
}
} catch (err: Throwable) {
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.qqinterface.servlet.FriendSvc.requestFriendSystemMsgNew
import moe.fuqiuluo.qqinterface.servlet.GroupSvc.requestGroupSystemMsgNew
import moe.fuqiuluo.qqinterface.servlet.TicketSvc.getLongUin
import moe.fuqiuluo.shamrock.helper.MessageHelper
import moe.fuqiuluo.shamrock.remote.service.data.push.NoticeSubType
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 reason = pb[1, 3, 2, 5].asUtf8String
val applier = ContactHelper.getUinByUidAsync(applierUid).toLong()
if (applier == getLongUin()) {
return
}
LogCenter.log("入群申请($groupCode) $applier: \"$reason\"")
val flag = try {
var reqs = requestGroupSystemMsgNew(10, 1)
val riskReqs = requestGroupSystemMsgNew(10, 2)
val riskReqs = requestGroupSystemMsgNew(5, 2)
reqs = reqs + riskReqs
val req = reqs.first {
val req = reqs.firstOrNull() {
it.msg_time.get() == time
}
val seq = req.msg_seq?.get()
val seq = req?.msg_seq?.get() ?: time
"$seq;$groupCode;$applier"
} catch (err: Throwable) {
"$time;$groupCode;$applier"
@ -521,6 +524,9 @@ internal object PrimitiveListener {
val groupCode = pb[1, 3, 2, 2, 3].asULong
val applierUid = pb[1, 3, 2, 2, 5].asUtf8String
val applier = ContactHelper.getUinByUidAsync(applierUid).toLong()
if (applier == getLongUin()) {
return
}
if (pb[1, 3, 2, 2, 1].asInt < 3) {
// todo
return
@ -528,15 +534,15 @@ internal object PrimitiveListener {
LogCenter.log("邀请入群申请($groupCode): $applier")
val flag = try {
var reqs = requestGroupSystemMsgNew(10, 1)
val riskReqs = requestGroupSystemMsgNew(10, 2)
val riskReqs = requestGroupSystemMsgNew(5, 2)
reqs = reqs + riskReqs
val req = reqs.first {
val req = reqs.firstOrNull() {
it.msg_time.get() == time
}
val seq = req.msg_seq?.get()
val seq = req?.msg_seq?.get() ?: time
"$seq;$groupCode;$applier"
} catch (err: Throwable) {
"$time;$groupCode;$applierUid"
"$time;$groupCode;$applier"
}
if (!GlobalEventTransmitter.RequestTransmitter
.transGroupApply(time, applier, "", groupCode, flag, RequestSubType.Add)
@ -557,10 +563,10 @@ internal object PrimitiveListener {
var reqs = requestGroupSystemMsgNew(10, 1)
val riskReqs = requestGroupSystemMsgNew(10, 2)
reqs = reqs + riskReqs
val req = reqs.first {
val req = reqs.firstOrNull() {
it.msg_time.get() == time
}
val seq = req.msg_seq?.get()
val seq = req?.msg_seq?.get() ?: time
"$seq;$groupCode;$uin"
} catch (err: Throwable) {
"$time;$groupCode;$uin"