Commit d8a52918 authored by Him188's avatar Him188

Fix new member

parent 9736909d
......@@ -137,11 +137,11 @@ internal class MessageSvc {
object EmptyResponse : GetMsgSuccess(emptyList())
private suspend fun MsgComm.Msg.getNewGroup(bot: QQAndroidBot): Group {
private suspend fun MsgComm.Msg.getNewGroup(bot: QQAndroidBot): Group? {
val troopNum = bot.network.run {
FriendList.GetTroopListSimplify(bot.client)
.sendAndExpect<FriendList.GetTroopListSimplify.Response>(retry = 2)
}.groups.first { it.groupUin == msgHead.fromUin }
}.groups.firstOrNull { it.groupUin == msgHead.fromUin } ?: return null
@Suppress("DuplicatedCode")
return GroupImpl(
......@@ -217,7 +217,7 @@ internal class MessageSvc {
}
// 新群
val newGroup = msg.getNewGroup(bot)
val newGroup = msg.getNewGroup(bot) ?: return@mapNotNull null
bot.groups.delegate.addLast(newGroup)
return@mapNotNull BotJoinGroupEvent(newGroup)
} else {
......
......@@ -416,17 +416,19 @@ internal class OnlinePush {
bot.network.logger.debug { "OnlinePush528 0x44L: " + msg._miraiContentToString() }
return@lambda528 emptySequence()
},
// bot 被踢
// bot 在其他客户端被踢或主动退出而同步情况
0xD4L to lambda528 { bot ->
@Serializable
data class SubD4(
// ok
val uin: Long
) : ProtoBuf
val uin = vProtobuf.loadAs(SubD4.serializer()).uin
val group = bot.getGroupByUinOrNull(uin) ?: bot.getGroupOrNull(uin)
// 08 E7 C1 AD B8 02
return@lambda528 group?.let { sequenceOf(BotKickEvent(group)) } ?: emptySequence()
return@lambda528 if (group != null && bot.groups.delegate.remove(group)) {
sequenceOf(BotLeaveEvent(group))
} else emptySequence()
},
// ModFriendRemark, DelFriend
0x27L to lambda528 { bot ->
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment