Add client properties to MessageSyncEvents, add OtherClientCommandSenderOnMessageSync and MessageSyncEvent.toCommandSender

This commit is contained in:
cssxsh 2022-02-12 00:09:48 +08:00 committed by Him188
parent 7dee5fe6c8
commit 9db5d2c4b5
7 changed files with 205 additions and 26 deletions

View File

@ -331,6 +331,7 @@ public abstract interface class net/mamoe/mirai/console/command/CommandSender :
public static fun from (Lnet/mamoe/mirai/event/events/GroupMessageEvent;)Lnet/mamoe/mirai/console/command/MemberCommandSenderOnMessage;
public static fun from (Lnet/mamoe/mirai/event/events/GroupTempMessageEvent;)Lnet/mamoe/mirai/console/command/GroupTempCommandSenderOnMessage;
public static fun from (Lnet/mamoe/mirai/event/events/MessageEvent;)Lnet/mamoe/mirai/console/command/CommandSenderOnMessage;
public static fun from (Lnet/mamoe/mirai/event/events/MessageSyncEvent;)Lnet/mamoe/mirai/console/command/OtherClientCommandSenderOnMessageSync;
public static fun from (Lnet/mamoe/mirai/event/events/OtherClientMessageEvent;)Lnet/mamoe/mirai/console/command/OtherClientCommandSenderOnMessage;
public static fun from (Lnet/mamoe/mirai/event/events/StrangerMessageEvent;)Lnet/mamoe/mirai/console/command/StrangerCommandSenderOnMessage;
public abstract fun getBot ()Lnet/mamoe/mirai/Bot;
@ -355,6 +356,7 @@ public final class net/mamoe/mirai/console/command/CommandSender$Companion {
public final fun from (Lnet/mamoe/mirai/event/events/GroupMessageEvent;)Lnet/mamoe/mirai/console/command/MemberCommandSenderOnMessage;
public final fun from (Lnet/mamoe/mirai/event/events/GroupTempMessageEvent;)Lnet/mamoe/mirai/console/command/GroupTempCommandSenderOnMessage;
public final fun from (Lnet/mamoe/mirai/event/events/MessageEvent;)Lnet/mamoe/mirai/console/command/CommandSenderOnMessage;
public final fun from (Lnet/mamoe/mirai/event/events/MessageSyncEvent;)Lnet/mamoe/mirai/console/command/OtherClientCommandSenderOnMessageSync;
public final fun from (Lnet/mamoe/mirai/event/events/OtherClientMessageEvent;)Lnet/mamoe/mirai/console/command/OtherClientCommandSenderOnMessage;
public final fun from (Lnet/mamoe/mirai/event/events/StrangerMessageEvent;)Lnet/mamoe/mirai/console/command/StrangerCommandSenderOnMessage;
public final fun of (Lnet/mamoe/mirai/contact/Friend;)Lnet/mamoe/mirai/console/command/FriendCommandSender;
@ -557,6 +559,11 @@ public final class net/mamoe/mirai/console/command/OtherClientCommandSenderOnMes
public fun getFromEvent ()Lnet/mamoe/mirai/event/events/OtherClientMessageEvent;
}
public final class net/mamoe/mirai/console/command/OtherClientCommandSenderOnMessageSync : net/mamoe/mirai/console/command/OtherClientCommandSender, net/mamoe/mirai/console/command/CommandSenderOnMessage {
public synthetic fun getFromEvent ()Lnet/mamoe/mirai/event/events/MessageEvent;
public fun getFromEvent ()Lnet/mamoe/mirai/event/events/MessageSyncEvent;
}
public abstract interface class net/mamoe/mirai/console/command/PluginCustomCommandSender : net/mamoe/mirai/console/command/CommandSender, net/mamoe/mirai/console/command/SystemCommandSender {
public abstract fun getOwner ()Lnet/mamoe/mirai/console/plugin/Plugin;
public fun getPermitteeId ()Lnet/mamoe/mirai/console/permission/PermitteeId;

View File

@ -54,9 +54,9 @@ import kotlin.coroutines.CoroutineContext
* - [MessageEvent.toCommandSender]
* - [FriendMessageEvent.toCommandSender]
* - [GroupMessageEvent.toCommandSender]
* - [TempMessageEvent.toCommandSender]
* - [StrangerMessageEvent.toCommandSender]
* - [OtherClientMessageEvent.toCommandSender]
* - [MessageSyncEvent.toCommandSender]
*
* - [Member.asCommandSender]
* - [NormalMember.asTempCommandSender]
@ -243,6 +243,15 @@ public interface CommandSender : CoroutineScope, Permittee {
public fun OtherClientMessageEvent.toCommandSender(): OtherClientCommandSenderOnMessage =
OtherClientCommandSenderOnMessage(this)
/**
* 构造 [OtherClientCommandSenderOnMessageSync]
* @since 2.13
*/
@JvmStatic
@JvmName("from")
public fun MessageSyncEvent.toCommandSender(): OtherClientCommandSenderOnMessageSync =
OtherClientCommandSenderOnMessageSync(this)
/**
* 构造 [CommandSenderOnMessage]
*/
@ -255,6 +264,7 @@ public interface CommandSender : CoroutineScope, Permittee {
is GroupTempMessageEvent -> toCommandSender()
is StrangerMessageEvent -> toCommandSender()
is OtherClientMessageEvent -> toCommandSender()
is MessageSyncEvent -> toCommandSender()
else -> throw IllegalArgumentException("Unsupported MessageEvent: ${this::class.qualifiedNameOrTip}")
} as CommandSenderOnMessage<T>
@ -817,6 +827,15 @@ public class OtherClientCommandSenderOnMessage internal constructor(
public override val fromEvent: OtherClientMessageEvent,
) : OtherClientCommandSender(fromEvent.client), CommandSenderOnMessage<OtherClientMessageEvent>
/**
* 代表一个 [其他客户端][OtherClient] 主动在群内好友聊天等发送消息执行指令
* @see OtherClientCommandSender 代表一个 [其他客户端][OtherClient] 执行指令, 但不一定是通过私聊方式
* @since 2.13
*/
public class OtherClientCommandSenderOnMessageSync internal constructor(
public override val fromEvent: MessageSyncEvent,
) : OtherClientCommandSender(fromEvent.client), CommandSenderOnMessage<MessageSyncEvent>
// endregion
// region PluginCustomCommandSender implementations
@ -869,3 +888,4 @@ public abstract class AbstractPluginCustomCommandSenderJ(
}
}
// endregion

View File

@ -2394,7 +2394,9 @@ public final class net/mamoe/mirai/event/events/FriendMessagePreSendEvent : net/
public final class net/mamoe/mirai/event/events/FriendMessageSyncEvent : net/mamoe/mirai/event/events/AbstractMessageEvent, net/mamoe/mirai/event/events/FriendEvent, net/mamoe/mirai/event/events/MessageSyncEvent {
public fun <init> (Lnet/mamoe/mirai/contact/Friend;Lnet/mamoe/mirai/message/data/MessageChain;I)V
public fun <init> (Lnet/mamoe/mirai/contact/OtherClient;Lnet/mamoe/mirai/contact/Friend;Lnet/mamoe/mirai/message/data/MessageChain;I)V
public fun getBot ()Lnet/mamoe/mirai/Bot;
public fun getClient ()Lnet/mamoe/mirai/contact/OtherClient;
public fun getFriend ()Lnet/mamoe/mirai/contact/Friend;
public fun getMessage ()Lnet/mamoe/mirai/message/data/MessageChain;
public fun getSender ()Lnet/mamoe/mirai/contact/Friend;
@ -2576,7 +2578,9 @@ public final class net/mamoe/mirai/event/events/GroupMessagePreSendEvent : net/m
public final class net/mamoe/mirai/event/events/GroupMessageSyncEvent : net/mamoe/mirai/event/events/AbstractMessageEvent, net/mamoe/mirai/event/events/GroupAwareMessageEvent, net/mamoe/mirai/event/events/MessageSyncEvent {
public fun <init> (Lnet/mamoe/mirai/contact/Group;Lnet/mamoe/mirai/message/data/MessageChain;Lnet/mamoe/mirai/contact/Member;Ljava/lang/String;I)V
public fun <init> (Lnet/mamoe/mirai/contact/OtherClient;Lnet/mamoe/mirai/contact/Group;Lnet/mamoe/mirai/message/data/MessageChain;Lnet/mamoe/mirai/contact/Member;Ljava/lang/String;I)V
public fun getBot ()Lnet/mamoe/mirai/Bot;
public fun getClient ()Lnet/mamoe/mirai/contact/OtherClient;
public fun getGroup ()Lnet/mamoe/mirai/contact/Group;
public fun getMessage ()Lnet/mamoe/mirai/message/data/MessageChain;
public fun getSender ()Lnet/mamoe/mirai/contact/Member;
@ -2708,7 +2712,9 @@ public final class net/mamoe/mirai/event/events/GroupTempMessagePreSendEvent : n
public final class net/mamoe/mirai/event/events/GroupTempMessageSyncEvent : net/mamoe/mirai/event/events/AbstractMessageEvent, net/mamoe/mirai/event/events/GroupAwareMessageEvent, net/mamoe/mirai/event/events/MessageSyncEvent {
public fun <init> (Lnet/mamoe/mirai/contact/NormalMember;Lnet/mamoe/mirai/message/data/MessageChain;I)V
public fun <init> (Lnet/mamoe/mirai/contact/OtherClient;Lnet/mamoe/mirai/contact/NormalMember;Lnet/mamoe/mirai/message/data/MessageChain;I)V
public fun getBot ()Lnet/mamoe/mirai/Bot;
public fun getClient ()Lnet/mamoe/mirai/contact/OtherClient;
public fun getGroup ()Lnet/mamoe/mirai/contact/Group;
public fun getMessage ()Lnet/mamoe/mirai/message/data/MessageChain;
public fun getSender ()Lnet/mamoe/mirai/contact/NormalMember;
@ -3056,7 +3062,9 @@ public final class net/mamoe/mirai/event/events/MessageRecallEvent$GroupRecall :
public fun toString ()Ljava/lang/String;
}
public abstract interface class net/mamoe/mirai/event/events/MessageSyncEvent : net/mamoe/mirai/event/events/MessageEvent {
public abstract interface class net/mamoe/mirai/event/events/MessageSyncEvent : net/mamoe/mirai/event/events/MessageEvent, net/mamoe/mirai/event/events/OtherClientEvent {
public fun getBot ()Lnet/mamoe/mirai/Bot;
public abstract fun getClient ()Lnet/mamoe/mirai/contact/OtherClient;
}
public final class net/mamoe/mirai/event/events/NewFriendRequestEvent : net/mamoe/mirai/event/AbstractEvent, net/mamoe/mirai/event/events/BotEvent, net/mamoe/mirai/event/events/FriendInfoChangeEvent, net/mamoe/mirai/internal/network/Packet {
@ -3215,8 +3223,10 @@ public final class net/mamoe/mirai/event/events/StrangerMessagePreSendEvent : ne
}
public final class net/mamoe/mirai/event/events/StrangerMessageSyncEvent : net/mamoe/mirai/event/events/AbstractMessageEvent, net/mamoe/mirai/event/events/MessageSyncEvent, net/mamoe/mirai/event/events/StrangerEvent {
public fun <init> (Lnet/mamoe/mirai/contact/OtherClient;Lnet/mamoe/mirai/contact/Stranger;Lnet/mamoe/mirai/message/data/MessageChain;I)V
public fun <init> (Lnet/mamoe/mirai/contact/Stranger;Lnet/mamoe/mirai/message/data/MessageChain;I)V
public fun getBot ()Lnet/mamoe/mirai/Bot;
public fun getClient ()Lnet/mamoe/mirai/contact/OtherClient;
public fun getMessage ()Lnet/mamoe/mirai/message/data/MessageChain;
public fun getSender ()Lnet/mamoe/mirai/contact/Stranger;
public synthetic fun getSender ()Lnet/mamoe/mirai/contact/User;

View File

@ -2394,7 +2394,9 @@ public final class net/mamoe/mirai/event/events/FriendMessagePreSendEvent : net/
public final class net/mamoe/mirai/event/events/FriendMessageSyncEvent : net/mamoe/mirai/event/events/AbstractMessageEvent, net/mamoe/mirai/event/events/FriendEvent, net/mamoe/mirai/event/events/MessageSyncEvent {
public fun <init> (Lnet/mamoe/mirai/contact/Friend;Lnet/mamoe/mirai/message/data/MessageChain;I)V
public fun <init> (Lnet/mamoe/mirai/contact/OtherClient;Lnet/mamoe/mirai/contact/Friend;Lnet/mamoe/mirai/message/data/MessageChain;I)V
public fun getBot ()Lnet/mamoe/mirai/Bot;
public fun getClient ()Lnet/mamoe/mirai/contact/OtherClient;
public fun getFriend ()Lnet/mamoe/mirai/contact/Friend;
public fun getMessage ()Lnet/mamoe/mirai/message/data/MessageChain;
public fun getSender ()Lnet/mamoe/mirai/contact/Friend;
@ -2576,7 +2578,9 @@ public final class net/mamoe/mirai/event/events/GroupMessagePreSendEvent : net/m
public final class net/mamoe/mirai/event/events/GroupMessageSyncEvent : net/mamoe/mirai/event/events/AbstractMessageEvent, net/mamoe/mirai/event/events/GroupAwareMessageEvent, net/mamoe/mirai/event/events/MessageSyncEvent {
public fun <init> (Lnet/mamoe/mirai/contact/Group;Lnet/mamoe/mirai/message/data/MessageChain;Lnet/mamoe/mirai/contact/Member;Ljava/lang/String;I)V
public fun <init> (Lnet/mamoe/mirai/contact/OtherClient;Lnet/mamoe/mirai/contact/Group;Lnet/mamoe/mirai/message/data/MessageChain;Lnet/mamoe/mirai/contact/Member;Ljava/lang/String;I)V
public fun getBot ()Lnet/mamoe/mirai/Bot;
public fun getClient ()Lnet/mamoe/mirai/contact/OtherClient;
public fun getGroup ()Lnet/mamoe/mirai/contact/Group;
public fun getMessage ()Lnet/mamoe/mirai/message/data/MessageChain;
public fun getSender ()Lnet/mamoe/mirai/contact/Member;
@ -2708,7 +2712,9 @@ public final class net/mamoe/mirai/event/events/GroupTempMessagePreSendEvent : n
public final class net/mamoe/mirai/event/events/GroupTempMessageSyncEvent : net/mamoe/mirai/event/events/AbstractMessageEvent, net/mamoe/mirai/event/events/GroupAwareMessageEvent, net/mamoe/mirai/event/events/MessageSyncEvent {
public fun <init> (Lnet/mamoe/mirai/contact/NormalMember;Lnet/mamoe/mirai/message/data/MessageChain;I)V
public fun <init> (Lnet/mamoe/mirai/contact/OtherClient;Lnet/mamoe/mirai/contact/NormalMember;Lnet/mamoe/mirai/message/data/MessageChain;I)V
public fun getBot ()Lnet/mamoe/mirai/Bot;
public fun getClient ()Lnet/mamoe/mirai/contact/OtherClient;
public fun getGroup ()Lnet/mamoe/mirai/contact/Group;
public fun getMessage ()Lnet/mamoe/mirai/message/data/MessageChain;
public fun getSender ()Lnet/mamoe/mirai/contact/NormalMember;
@ -3056,7 +3062,9 @@ public final class net/mamoe/mirai/event/events/MessageRecallEvent$GroupRecall :
public fun toString ()Ljava/lang/String;
}
public abstract interface class net/mamoe/mirai/event/events/MessageSyncEvent : net/mamoe/mirai/event/events/MessageEvent {
public abstract interface class net/mamoe/mirai/event/events/MessageSyncEvent : net/mamoe/mirai/event/events/MessageEvent, net/mamoe/mirai/event/events/OtherClientEvent {
public fun getBot ()Lnet/mamoe/mirai/Bot;
public abstract fun getClient ()Lnet/mamoe/mirai/contact/OtherClient;
}
public final class net/mamoe/mirai/event/events/NewFriendRequestEvent : net/mamoe/mirai/event/AbstractEvent, net/mamoe/mirai/event/events/BotEvent, net/mamoe/mirai/event/events/FriendInfoChangeEvent, net/mamoe/mirai/internal/network/Packet {
@ -3215,8 +3223,10 @@ public final class net/mamoe/mirai/event/events/StrangerMessagePreSendEvent : ne
}
public final class net/mamoe/mirai/event/events/StrangerMessageSyncEvent : net/mamoe/mirai/event/events/AbstractMessageEvent, net/mamoe/mirai/event/events/MessageSyncEvent, net/mamoe/mirai/event/events/StrangerEvent {
public fun <init> (Lnet/mamoe/mirai/contact/OtherClient;Lnet/mamoe/mirai/contact/Stranger;Lnet/mamoe/mirai/message/data/MessageChain;I)V
public fun <init> (Lnet/mamoe/mirai/contact/Stranger;Lnet/mamoe/mirai/message/data/MessageChain;I)V
public fun getBot ()Lnet/mamoe/mirai/Bot;
public fun getClient ()Lnet/mamoe/mirai/contact/OtherClient;
public fun getMessage ()Lnet/mamoe/mirai/message/data/MessageChain;
public fun getSender ()Lnet/mamoe/mirai/contact/Stranger;
public synthetic fun getSender ()Lnet/mamoe/mirai/contact/User;

View File

@ -18,6 +18,7 @@ import net.mamoe.mirai.message.data.MessageChain
import net.mamoe.mirai.message.data.MessageSource
import net.mamoe.mirai.message.data.OnlineMessageSource
import net.mamoe.mirai.message.data.source
import net.mamoe.mirai.utils.DeprecatedSinceMirai
import kotlin.jvm.JvmMultifileClass
import kotlin.jvm.JvmName
@ -29,18 +30,52 @@ import kotlin.jvm.JvmName
*
* @see MessageEvent
*/
public interface MessageSyncEvent : MessageEvent
public interface MessageSyncEvent : MessageEvent, OtherClientEvent {
public override val client: OtherClient
override val bot: Bot get() = sender.bot // don't rely on `client`, old version does not have client.
}
/**
* 机器人在其他客户端发送群临时会话消息同步到这个客户端的事件
*
* @see MessageSyncEvent
*/
public class GroupTempMessageSyncEvent(
public class GroupTempMessageSyncEvent private constructor(
private val _client: OtherClient?,
public override val sender: NormalMember,
public override val message: MessageChain,
public override val time: Int
public override val time: Int,
@Suppress("UNUSED_PARAMETER") _primaryConstructorMark: Any?
) : AbstractMessageEvent(), GroupAwareMessageEvent, MessageSyncEvent {
/**
* @since 2.13
*/
public override val client: OtherClient
get() = _client ?: error("client is not set. Please use the new constructor.")
/**
* @since 2.13
*/
public constructor(
client: OtherClient,
sender: NormalMember,
message: MessageChain,
time: Int
) : this(client, sender, message, time, null)
@Deprecated(
"Please use the new constructor.",
replaceWith = ReplaceWith("GroupTempMessageSyncEvent(client, sender, message, time)"),
level = DeprecationLevel.WARNING
)
@DeprecatedSinceMirai(warningSince = "2.13")
public constructor(
sender: NormalMember,
message: MessageChain,
time: Int
) : this(null, sender, message, time, null)
init {
val source = message[MessageSource] ?: error("Cannot find MessageSource from message")
check(source is OnlineMessageSource.Incoming.FromTemp) { "source provided to a GroupTempMessageSyncEvent must be an instance of OnlineMessageSource.Incoming.FromTemp" }
@ -58,11 +93,42 @@ public class GroupTempMessageSyncEvent(
*
* @see MessageSyncEvent
*/
public class FriendMessageSyncEvent constructor(
public class FriendMessageSyncEvent private constructor(
private val _client: OtherClient?,
public override val sender: Friend,
public override val message: MessageChain,
public override val time: Int
public override val time: Int,
@Suppress("UNUSED_PARAMETER") _primaryConstructorMark: Any?
) : AbstractMessageEvent(), FriendEvent, MessageSyncEvent {
/**
* @since 2.13
*/
public override val client: OtherClient
get() = _client ?: error("client is not set. Please use the new constructor.")
/**
* @since 2.13
*/
public constructor(
client: OtherClient,
sender: Friend,
message: MessageChain,
time: Int
) : this(client, sender, message, time, null)
@Deprecated(
"Please use the new constructor.",
replaceWith = ReplaceWith("FriendMessageSyncEvent(client, sender, message, time)"),
level = DeprecationLevel.WARNING
)
@DeprecatedSinceMirai(warningSince = "2.13")
public constructor(
sender: Friend,
message: MessageChain,
time: Int
) : this(null, sender, message, time, null)
init {
val source =
message[MessageSource] ?: throw IllegalArgumentException("Cannot find MessageSource from message")
@ -70,7 +136,7 @@ public class FriendMessageSyncEvent constructor(
}
public override val friend: Friend get() = sender
public override val bot: Bot get() = super.bot
public override val bot: Bot get() = sender.bot
public override val subject: Friend get() = sender
public override val senderName: String get() = sender.nick
public override val source: OnlineMessageSource.Incoming.FromFriend get() = message.source as OnlineMessageSource.Incoming.FromFriend
@ -81,11 +147,42 @@ public class FriendMessageSyncEvent constructor(
*
* @see MessageSyncEvent
*/
public class StrangerMessageSyncEvent constructor(
public class StrangerMessageSyncEvent private constructor(
private val _client: OtherClient?,
public override val sender: Stranger,
public override val message: MessageChain,
public override val time: Int
public override val time: Int,
@Suppress("UNUSED_PARAMETER") _primaryConstructorMark: Any?,
) : AbstractMessageEvent(), StrangerEvent, MessageSyncEvent {
/**
* @since 2.13
*/
public override val client: OtherClient
get() = _client ?: error("client is not set. Please use the new constructor.")
/**
* @since 2.13
*/
public constructor(
client: OtherClient,
sender: Stranger,
message: MessageChain,
time: Int
) : this(client, sender, message, time, null)
@Deprecated(
"Please use the new constructor.",
replaceWith = ReplaceWith("StrangerMessageSyncEvent(client, sender, message, time)"),
level = DeprecationLevel.WARNING
)
@DeprecatedSinceMirai(warningSince = "2.13")
public constructor(
sender: Stranger,
message: MessageChain,
time: Int
) : this(null, sender, message, time, null)
init {
val source =
message[MessageSource] ?: throw IllegalArgumentException("Cannot find MessageSource from message")
@ -93,7 +190,7 @@ public class StrangerMessageSyncEvent constructor(
}
public override val stranger: Stranger get() = sender
public override val bot: Bot get() = super.bot
public override val bot: Bot get() = sender.bot
public override val subject: Stranger get() = sender
public override val senderName: String get() = sender.nick
public override val source: OnlineMessageSource.Incoming.FromStranger get() = message.source as OnlineMessageSource.Incoming.FromStranger
@ -104,19 +201,53 @@ public class StrangerMessageSyncEvent constructor(
*
* @see MessageSyncEvent
*/
public class GroupMessageSyncEvent(
override val group: Group,
override val message: MessageChain,
override val sender: Member,
override val senderName: String,
override val time: Int
public class GroupMessageSyncEvent private constructor(
private val _client: OtherClient?,
public override val group: Group,
public override val message: MessageChain,
public override val sender: Member,
public override val senderName: String,
public override val time: Int,
@Suppress("UNUSED_PARAMETER") _primaryConstructorMark: Any?,
) : AbstractMessageEvent(), GroupAwareMessageEvent, MessageSyncEvent {
/**
* @since 2.13
*/
public override val client: OtherClient
get() = _client ?: error("client is not set. Please use the new constructor.")
/**
* @since 2.13
*/
public constructor(
client: OtherClient,
group: Group,
message: MessageChain,
sender: Member,
senderName: String,
time: Int
) : this(client, group, message, sender, senderName, time, null)
@Deprecated(
"Please use the new constructor.",
replaceWith = ReplaceWith("GroupMessageSyncEvent(client, group, message, sender, senderName, time)"),
level = DeprecationLevel.WARNING
)
@DeprecatedSinceMirai(warningSince = "2.13")
public constructor(
group: Group,
message: MessageChain,
sender: Member,
senderName: String,
time: Int
) : this(null, group, message, sender, senderName, time, null)
init {
val source = message[MessageSource] ?: error("Cannot find MessageSource from message")
check(source is OnlineMessageSource.Incoming.FromGroup) { "source provided to a GroupMessageSyncEvent must be an instance of OnlineMessageSource.Incoming.FromGroup" }
}
override val bot: Bot get() = group.bot
override val bot: Bot get() = sender.bot
override val subject: Group get() = group
override val source: OnlineMessageSource.Incoming.FromGroup get() = message.source as OnlineMessageSource.Incoming.FromGroup

View File

@ -18,11 +18,8 @@ import net.mamoe.mirai.event.events.GroupMessageEvent
import net.mamoe.mirai.event.events.GroupMessageSyncEvent
import net.mamoe.mirai.event.events.MemberCardChangeEvent
import net.mamoe.mirai.event.events.MemberSpecialTitleChangeEvent
import net.mamoe.mirai.internal.contact.GroupImpl
import net.mamoe.mirai.internal.contact.NormalMemberImpl
import net.mamoe.mirai.internal.contact.info
import net.mamoe.mirai.internal.contact.*
import net.mamoe.mirai.internal.contact.info.MemberInfoImpl
import net.mamoe.mirai.internal.contact.newAnonymous
import net.mamoe.mirai.internal.message.toMessageChainOnline
import net.mamoe.mirai.internal.network.Packet
import net.mamoe.mirai.internal.network.components.NoticePipelineContext
@ -139,6 +136,8 @@ internal class GroupMessageProcessor(
if (isFromSelfAccount) {
collect(
GroupMessageSyncEvent(
client = bot.otherClients.find { it.appId == msgHead.fromInstid }
?: return, // don't compare with dstAppId. diff.
message = msgs.map { it.msg }.toMessageChainOnline(bot, group.id, MessageSourceKind.GROUP),
time = msgHead.msgTime,
group = group,

View File

@ -133,10 +133,12 @@ internal class PrivateMessageProcessor : SimpleNoticeProcessor<MsgComm.Msg>(type
val time = msgHead.msgTime
collected += if (fromSync) {
val client = bot.otherClients.find { it.appId == msgHead.fromInstid }
?: return // don't compare with dstAppId. diff.
when (user) {
is FriendImpl -> FriendMessageSyncEvent(user, chain, time)
is StrangerImpl -> StrangerMessageSyncEvent(user, chain, time)
is NormalMemberImpl -> GroupTempMessageSyncEvent(user, chain, time)
is FriendImpl -> FriendMessageSyncEvent(client, user, chain, time)
is StrangerImpl -> StrangerMessageSyncEvent(client, user, chain, time)
is NormalMemberImpl -> GroupTempMessageSyncEvent(client, user, chain, time)
is AnonymousMemberImpl -> assertUnreachable()
}
} else {