Parcourir la source

Add `SingleMessage.asMessageChain`

Him188 il y a 5 ans
Parent
commit
0a2152dc73

+ 2 - 1
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/Bot.kt

@@ -7,7 +7,8 @@
  * https://github.com/mamoe/mirai/blob/master/LICENSE
  */
 
-@file:Suppress("EXPERIMENTAL_API_USAGE", "unused", "FunctionName", "NOTHING_TO_INLINE", "UnusedImport")
+@file:Suppress("EXPERIMENTAL_API_USAGE", "unused", "FunctionName", "NOTHING_TO_INLINE", "UnusedImport",
+    "EXPERIMENTAL_OVERRIDE")
 
 package net.mamoe.mirai
 

+ 1 - 1
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/message/data/Message.kt

@@ -224,7 +224,7 @@ suspend inline fun <C : Contact> Message.sendTo(contact: C): MessageReceipt<C> {
 inline fun Message.repeat(count: Int): MessageChain {
     if (this is ConstrainSingle<*>) {
         // fast-path
-        return SingleMessageChainImpl(this)
+        return this.asMessageChain()
     }
     return buildMessageChain(count) {
         add(this@repeat)

+ 6 - 0
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/message/data/MessageChain.kt

@@ -234,6 +234,12 @@ fun Message.asMessageChain(): MessageChain = when (this) {
     else -> SingleMessageChainImpl(this as SingleMessage)
 }
 
+/**
+ * 直接将 [this] 委托为一个 [MessageChain]
+ */
+@JvmSynthetic
+fun SingleMessage.asMessageChain(): MessageChain = SingleMessageChainImpl(this)
+
 /**
  * 直接将 [this] 委托为一个 [MessageChain]
  */