mirror of
https://github.com/mamoe/mirai.git
synced 2025-03-05 00:10:13 +08:00
Add MessageSource.isOriginalMessageInitialized
This commit is contained in:
parent
7687749030
commit
c75d1f7074
@ -4834,6 +4834,7 @@ public abstract class net/mamoe/mirai/message/data/MessageSource : net/mamoe/mir
|
||||
public abstract fun getOriginalMessage ()Lnet/mamoe/mirai/message/data/MessageChain;
|
||||
public abstract fun getTargetId ()J
|
||||
public abstract fun getTime ()I
|
||||
public abstract fun isOriginalMessageInitialized ()Z
|
||||
public static final fun quote (Lnet/mamoe/mirai/message/data/MessageChain;)Lnet/mamoe/mirai/message/data/QuoteReply;
|
||||
public static final fun quote (Lnet/mamoe/mirai/message/data/MessageSource;)Lnet/mamoe/mirai/message/data/QuoteReply;
|
||||
public static final fun recall (Lnet/mamoe/mirai/message/data/MessageChain;)V
|
||||
|
@ -4834,6 +4834,7 @@ public abstract class net/mamoe/mirai/message/data/MessageSource : net/mamoe/mir
|
||||
public abstract fun getOriginalMessage ()Lnet/mamoe/mirai/message/data/MessageChain;
|
||||
public abstract fun getTargetId ()J
|
||||
public abstract fun getTime ()I
|
||||
public abstract fun isOriginalMessageInitialized ()Z
|
||||
public static final fun quote (Lnet/mamoe/mirai/message/data/MessageChain;)Lnet/mamoe/mirai/message/data/QuoteReply;
|
||||
public static final fun quote (Lnet/mamoe/mirai/message/data/MessageSource;)Lnet/mamoe/mirai/message/data/QuoteReply;
|
||||
public static final fun recall (Lnet/mamoe/mirai/message/data/MessageChain;)V
|
||||
|
@ -180,6 +180,13 @@ public sealed class MessageSource : Message, MessageMetadata, ConstrainSingle {
|
||||
*/
|
||||
public abstract val originalMessage: MessageChain // see OutgoingMessageSourceInternal.originalMessage
|
||||
|
||||
/**
|
||||
* 当 [originalMessage] 已被初始化后返回 `true`.
|
||||
*
|
||||
* @since 2.12
|
||||
*/
|
||||
public abstract val isOriginalMessageInitialized: Boolean
|
||||
|
||||
public abstract override fun toString(): String
|
||||
|
||||
@MiraiInternalApi
|
||||
|
@ -57,6 +57,9 @@ internal class OnlineMessageSourceFromFriendImpl(
|
||||
msg.toMessageChainNoSource(bot, 0, MessageSourceKind.FRIEND)
|
||||
}
|
||||
override val originalMessage: MessageChain get() = originalMessageLazy.value
|
||||
override val isOriginalMessageInitialized: Boolean
|
||||
get() = originalMessageLazy.isInitialized()
|
||||
|
||||
override val sender: Friend = bot.getFriendOrFail(msg.first().msgHead.fromUin)
|
||||
|
||||
private val jceData: ImMsgBody.SourceMsg by lazy { msg.toJceDataPrivate(internalIds) }
|
||||
@ -87,6 +90,9 @@ internal class OnlineMessageSourceFromStrangerImpl(
|
||||
msg.toMessageChainNoSource(bot, 0, MessageSourceKind.STRANGER)
|
||||
}
|
||||
override val originalMessage: MessageChain get() = originalMessageLazy.value
|
||||
override val isOriginalMessageInitialized: Boolean
|
||||
get() = originalMessageLazy.isInitialized()
|
||||
|
||||
override val sender: Stranger = bot.getStrangerOrFail(msg.first().msgHead.fromUin)
|
||||
|
||||
private val jceData: ImMsgBody.SourceMsg by lazy { msg.toJceDataPrivate(internalIds) }
|
||||
@ -154,6 +160,9 @@ internal class OnlineMessageSourceFromTempImpl(
|
||||
msg.toMessageChainNoSource(bot, groupIdOrZero = 0, MessageSourceKind.TEMP)
|
||||
}
|
||||
override val originalMessage: MessageChain get() = originalMessageLazy.value
|
||||
override val isOriginalMessageInitialized: Boolean
|
||||
get() = originalMessageLazy.isInitialized()
|
||||
|
||||
override val sender: Member = with(msg.first().msgHead) {
|
||||
// it must be uin, see #1410
|
||||
// corresponding test: net.mamoe.mirai.internal.notice.processors.MessageTest.group temp message test 2
|
||||
@ -189,6 +198,9 @@ internal class OnlineMessageSourceFromGroupImpl(
|
||||
msg.toMessageChainNoSource(bot, groupIdOrZero = group.id, MessageSourceKind.GROUP)
|
||||
}
|
||||
override val originalMessage: MessageChain get() = originalMessageLazy.value
|
||||
override val isOriginalMessageInitialized: Boolean
|
||||
get() = originalMessageLazy.isInitialized()
|
||||
|
||||
|
||||
override val subject: GroupImpl by lazy {
|
||||
val groupCode = msg.first().msgHead.groupInfo?.groupCode
|
||||
|
@ -37,13 +37,15 @@ internal class OfflineMessageSourceImplData(
|
||||
override val time: Int,
|
||||
override val fromId: Long,
|
||||
override val targetId: Long,
|
||||
originalMessageLazy: Lazy<MessageChain>,
|
||||
private val originalMessageLazy: Lazy<MessageChain>,
|
||||
override val internalIds: IntArray,
|
||||
) : OfflineMessageSource(), MessageSourceInternal {
|
||||
object Serializer : MessageSourceSerializerImpl("OfflineMessageSource")
|
||||
|
||||
override val sequenceIds: IntArray get() = ids
|
||||
override val originalMessage: MessageChain by originalMessageLazy
|
||||
override val isOriginalMessageInitialized: Boolean
|
||||
get() = originalMessageLazy.isInitialized()
|
||||
|
||||
// for override.
|
||||
// if provided, no need to serialize from message
|
||||
@ -157,7 +159,9 @@ internal fun OfflineMessageSourceImplData(
|
||||
targetId = targetId,
|
||||
originalMessageLazy = lazyOf(originalMessage),
|
||||
internalIds = internalIds
|
||||
)
|
||||
).also {
|
||||
it.originalMessage // initialize lazy, to make isOriginalMessageInitialized true.
|
||||
}
|
||||
|
||||
internal fun OfflineMessageSourceImplData(
|
||||
delegate: ImMsgBody.SourceMsg,
|
||||
|
@ -88,6 +88,9 @@ internal class OnlineMessageSourceToFriendImpl(
|
||||
) : OnlineMessageSource.Outgoing.ToFriend(), MessageSourceInternal, OutgoingMessageSourceInternal {
|
||||
object Serializer : MessageSourceSerializerImpl("OnlineMessageSourceToFriend")
|
||||
|
||||
override val isOriginalMessageInitialized: Boolean
|
||||
get() = true
|
||||
|
||||
override val bot: Bot
|
||||
get() = sender
|
||||
override val ids: IntArray
|
||||
@ -119,6 +122,8 @@ internal class OnlineMessageSourceToStrangerImpl(
|
||||
|
||||
object Serializer : MessageSourceSerializerImpl("OnlineMessageSourceToStranger")
|
||||
|
||||
override val isOriginalMessageInitialized: Boolean
|
||||
get() = true
|
||||
override val bot: Bot
|
||||
get() = sender
|
||||
override val ids: IntArray
|
||||
@ -149,6 +154,9 @@ internal class OnlineMessageSourceToTempImpl(
|
||||
|
||||
object Serializer : MessageSourceSerializerImpl("OnlineMessageSourceToTemp")
|
||||
|
||||
override val isOriginalMessageInitialized: Boolean
|
||||
get() = true
|
||||
|
||||
override val bot: Bot
|
||||
get() = sender
|
||||
override val ids: IntArray
|
||||
@ -175,6 +183,9 @@ internal class OnlineMessageSourceToGroupImpl(
|
||||
) : OnlineMessageSource.Outgoing.ToGroup(), MessageSourceInternal, OutgoingMessageSourceInternal {
|
||||
object Serializer : MessageSourceSerializerImpl("OnlineMessageSourceToGroup")
|
||||
|
||||
override val isOriginalMessageInitialized: Boolean
|
||||
get() = true
|
||||
|
||||
override val ids: IntArray
|
||||
get() = sequenceIds
|
||||
override val bot: Bot
|
||||
|
Loading…
Reference in New Issue
Block a user