Commit ed1a675c authored by Him188's avatar Him188

Add Image.Key support for FlashImage

parent 514084c4
...@@ -4,6 +4,8 @@ package net.mamoe.mirai.message.data ...@@ -4,6 +4,8 @@ package net.mamoe.mirai.message.data
import net.mamoe.mirai.utils.MiraiInternalAPI import net.mamoe.mirai.utils.MiraiInternalAPI
import net.mamoe.mirai.utils.SinceMirai import net.mamoe.mirai.utils.SinceMirai
import kotlin.jvm.JvmName
import kotlin.jvm.JvmStatic
import kotlin.jvm.JvmSynthetic import kotlin.jvm.JvmSynthetic
/** /**
...@@ -14,6 +16,8 @@ import kotlin.jvm.JvmSynthetic ...@@ -14,6 +16,8 @@ import kotlin.jvm.JvmSynthetic
@SinceMirai("") @SinceMirai("")
sealed class FlashImage : MessageContent { sealed class FlashImage : MessageContent {
companion object Key : Message.Key<FlashImage> { companion object Key : Message.Key<FlashImage> {
@JvmStatic
@JvmName("from")
operator fun invoke(image: Image): FlashImage { operator fun invoke(image: Image): FlashImage {
@OptIn(MiraiInternalAPI::class) @OptIn(MiraiInternalAPI::class)
return when (image) { return when (image) {
...@@ -56,9 +60,13 @@ inline fun FriendImage.flash(): FriendFlashImage = FlashImage(this) as FriendFla ...@@ -56,9 +60,13 @@ inline fun FriendImage.flash(): FriendFlashImage = FlashImage(this) as FriendFla
/** /**
* @see FlashImage.invoke * @see FlashImage.invoke
*/ */
class GroupFlashImage @MiraiInternalAPI constructor(override val image: GroupImage) : FlashImage() class GroupFlashImage @MiraiInternalAPI constructor(override val image: GroupImage) : FlashImage() {
companion object Key : Message.Key<FlashImage>
}
/** /**
* @see FlashImage.invoke * @see FlashImage.invoke
*/ */
class FriendFlashImage @MiraiInternalAPI constructor(override val image: FriendImage) : FlashImage() class FriendFlashImage @MiraiInternalAPI constructor(override val image: FriendImage) : FlashImage() {
\ No newline at end of file companion object Key : Message.Key<FlashImage>
}
...@@ -153,6 +153,9 @@ fun <M : Message> MessageChain.firstOrNull(key: Message.Key<M>): M? = when (key) ...@@ -153,6 +153,9 @@ fun <M : Message> MessageChain.firstOrNull(key: Message.Key<M>): M? = when (key)
LightApp -> firstOrNull<LightApp>() LightApp -> firstOrNull<LightApp>()
PokeMessage -> firstOrNull<PokeMessage>() PokeMessage -> firstOrNull<PokeMessage>()
HummerMessage -> firstOrNull<HummerMessage>() HummerMessage -> firstOrNull<HummerMessage>()
FlashImage -> firstOrNull<FlashImage>()
GroupFlashImage -> firstOrNull<GroupFlashImage>()
FriendFlashImage -> firstOrNull<FriendFlashImage>()
else -> null else -> null
} as M? } as M?
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment