diff --git a/mirai-core-mock/src/internal/msgsrc/OnlineMsgSrc.kt b/mirai-core-mock/src/internal/msgsrc/OnlineMsgSrc.kt index 30249e28c..32fe770b6 100644 --- a/mirai-core-mock/src/internal/msgsrc/OnlineMsgSrc.kt +++ b/mirai-core-mock/src/internal/msgsrc/OnlineMsgSrc.kt @@ -17,6 +17,7 @@ import net.mamoe.mirai.Bot import net.mamoe.mirai.contact.* import net.mamoe.mirai.internal.message.MessageSourceSerializerImpl import net.mamoe.mirai.internal.message.protocol.MessageProtocolFacadeImpl +import net.mamoe.mirai.internal.message.protocol.StubMessageProtocol import net.mamoe.mirai.internal.message.protocol.serialization.MessageSerializer import net.mamoe.mirai.message.MessageSerializers import net.mamoe.mirai.message.data.* @@ -90,7 +91,7 @@ internal fun registerMockMsgSerializers() { ) } - val module = MessageProtocolFacadeImpl(listOf(), "").also { + val module = MessageProtocolFacadeImpl(listOf(StubMessageProtocol), "").also { it.serializers.addAll(serializers) }.createSerializersModule() @@ -192,7 +193,9 @@ internal class OnlineMsgSrcFromStranger( ) : OnlineMessageSource.Incoming.FromStranger() { override val isOriginalMessageInitialized: Boolean get() = true - object Serializer : KSerializer by MessageSourceSerializerImpl("Mock_OnlineMessageSourceFromStranger") + object Serializer : KSerializer by MessageSourceSerializerImpl( + "Mock_OnlineMessageSourceFromStranger" + ) } @Suppress("SERIALIZER_TYPE_INCOMPATIBLE") diff --git a/mirai-core/src/commonMain/kotlin/message/protocol/MessageProtocol.kt b/mirai-core/src/commonMain/kotlin/message/protocol/MessageProtocol.kt index d28831683..8b873e986 100644 --- a/mirai-core/src/commonMain/kotlin/message/protocol/MessageProtocol.kt +++ b/mirai-core/src/commonMain/kotlin/message/protocol/MessageProtocol.kt @@ -78,6 +78,11 @@ internal abstract class ProcessorCollector { abstract fun add(serializer: MessageSerializer) } +/* This stub is used for allocate new empty MessageProtocolFacade only */ +internal object StubMessageProtocol : MessageProtocol() { + override fun ProcessorCollector.collectProcessorsImpl() { + } +} /////////////////////////////////////////////////////////////////////////// // refiners