From d16a6998109a9ea3506e531ced19b782e9a62bff Mon Sep 17 00:00:00 2001 From: Him188 Date: Sat, 9 May 2020 17:19:02 +0800 Subject: [PATCH] Fix `BotFaceChangedEvent`, Add `FriendFaceChangedEvent` --- .../packet/chat/receive/OnlinePush.ReqPush.kt | 11 ++++++++--- .../kotlin/net.mamoe.mirai/event/events/BotEvents.kt | 7 +++++++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/chat/receive/OnlinePush.ReqPush.kt b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/chat/receive/OnlinePush.ReqPush.kt index 26db88d6a..10ce1d3de 100644 --- a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/chat/receive/OnlinePush.ReqPush.kt +++ b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/chat/receive/OnlinePush.ReqPush.kt @@ -493,8 +493,13 @@ private object Transformers528 : Map Sequen } ?: emptySequence() } - fun ModCustomFace.transform(): Sequence = - sequenceOf(BotFaceChangedEvent(Bot.getInstance(uin))) + fun ModCustomFace.transform(bot: QQAndroidBot): Sequence { + if (uin == bot.id) { + return sequenceOf(BotFaceChangedEvent(bot)) + } + val friend = bot.getFriendOrNull(uin) ?: return emptySequence() + return sequenceOf(FriendFaceChangedEvent(friend)) + } return@lambda528 vProtobuf.loadAs(SubMsgType0x27MsgBody.serializer()).msgModInfos.asSequence() @@ -504,7 +509,7 @@ private object Transformers528 : Map Sequen it.msgDelFriend != null -> it.msgDelFriend.transform(bot) it.msgModGroupProfile != null -> it.msgModGroupProfile.transform(bot) it.msgModGroupMemberProfile != null -> it.msgModGroupMemberProfile.transform(bot) - it.msgModCustomFace != null -> it.msgModCustomFace.transform() + it.msgModCustomFace != null -> it.msgModCustomFace.transform(bot) else -> { bot.network.logger.debug { "Transformers528 0x27L: new data: ${it._miraiContentToString()}" diff --git a/mirai-core/src/commonMain/kotlin/net.mamoe.mirai/event/events/BotEvents.kt b/mirai-core/src/commonMain/kotlin/net.mamoe.mirai/event/events/BotEvents.kt index cbac2aa5b..1b5b53fcd 100644 --- a/mirai-core/src/commonMain/kotlin/net.mamoe.mirai/event/events/BotEvents.kt +++ b/mirai-core/src/commonMain/kotlin/net.mamoe.mirai/event/events/BotEvents.kt @@ -95,6 +95,13 @@ data class BotFaceChangedEvent( override val bot: Bot ) : BotEvent, Packet, AbstractEvent() +/** + * [Friend] 头像被修改 + */ +data class FriendFaceChangedEvent( + override val friend: Friend +) : FriendEvent, Packet, AbstractEvent() + // endregion // region 消息