mirror of
https://github.com/mamoe/mirai.git
synced 2025-03-11 21:30:11 +08:00
Add client properties to MessageSyncEvents, add OtherClientCommandSenderOnMessageSync and MessageSyncEvent.toCommandSender
This commit is contained in:
parent
7dee5fe6c8
commit
9db5d2c4b5
@ -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;
|
||||
|
@ -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
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
||||
|
@ -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,
|
||||
|
@ -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 {
|
||||
|
Loading…
Reference in New Issue
Block a user