Fix BotJoinGroupEvent.Invite

This commit is contained in:
ryoii 2020-07-15 17:42:25 +08:00
parent 2f0ff513a2
commit c95306c12e
2 changed files with 13 additions and 7 deletions

View File

@ -173,10 +173,11 @@ internal class NewContact {
}
2 -> { // 被邀请入群, 自动同意, 不需处理
val group = bot.getNewGroup(groupCode) ?: return null
val invitor = group[actionUin]
BotJoinGroupEvent.Invite(invitor)
// val group = bot.getNewGroup(groupCode) ?: return null
// val invitor = group[actionUin]
//
// BotJoinGroupEvent.Invite(invitor)
null
}
3 -> { // 已被请他管理员处理
null

View File

@ -48,6 +48,7 @@ import net.mamoe.mirai.qqandroid.utils.io.serialization.readProtoBuf
import net.mamoe.mirai.qqandroid.utils.io.serialization.toByteArray
import net.mamoe.mirai.qqandroid.utils.io.serialization.writeProtoBuf
import net.mamoe.mirai.qqandroid.utils.read
import net.mamoe.mirai.qqandroid.utils.toInt
import net.mamoe.mirai.qqandroid.utils.toUHexString
import net.mamoe.mirai.utils.currentTimeSeconds
import net.mamoe.mirai.utils.debug
@ -163,9 +164,10 @@ internal object MessageSvcPbGetMsg : OutgoingPacketFactory<MessageSvcPbGetMsg.Re
if (msg.msgHead.authUin == bot.id) {
// 邀请入群
return@mapNotNull createGroupForBot(msg.msgHead.fromUin)?.let {
// TODO 这里被邀请入群应该是Invite()但是没有获取邀请人的信息邀请人的信息在msg.msgContent里未解包
// BotJoinGroupEvent.Invite()
BotJoinGroupEvent.Active(it)
// package: 27 0B 60 E7 01 CA CC 69 8B 83 44 71 47 90 06 B9 DC C0 ED D4 B1 00 30 33 44 30 42 38 46 30 39 37 32 38 35 43 34 31 38 30 33 36 41 34 36 31 36 31 35 32 37 38 46 46 43 30 41 38 30 36 30 36 45 38 31 43 39 41 34 38 37
// package: groupUin + 01 CA CC 69 8B 83 + invitorUin + length(06) + string + magicKey
val invitorUin = msg.msgBody.msgContent.sliceArray(10..13).toInt().toLong()
BotJoinGroupEvent.Invite(it[invitorUin])
}
} else {
@ -208,6 +210,9 @@ internal object MessageSvcPbGetMsg : OutgoingPacketFactory<MessageSvcPbGetMsg.Re
}
85 -> bot.groupListModifyLock.withLock { // 其他客户端入群
// msg.msgHead.authUin: 处理人
return@mapNotNull if (msg.msgHead.toUin == bot.id) {
createGroupForBot(msg.msgHead.fromUin)
?.let { BotJoinGroupEvent.Active(it) }