Commit 36fd7ccd authored by Him188's avatar Him188

Deprecate FriendFlashImage and GroupFlashImage in the favor of general FlashImage

parent dd7e2d0b
...@@ -13,8 +13,10 @@ ...@@ -13,8 +13,10 @@
package net.mamoe.mirai.message.data package net.mamoe.mirai.message.data
import kotlinx.serialization.Serializable
import net.mamoe.mirai.message.data.PokeMessage.Types import net.mamoe.mirai.message.data.PokeMessage.Types
import net.mamoe.mirai.message.data.VipFace.Companion import net.mamoe.mirai.message.data.VipFace.Companion
import net.mamoe.mirai.utils.PlannedRemoval
import kotlin.jvm.* import kotlin.jvm.*
/** /**
...@@ -233,6 +235,7 @@ data class VipFace internal constructor( ...@@ -233,6 +235,7 @@ data class VipFace internal constructor(
* *
* @see Image 查看图片相关信息 * @see Image 查看图片相关信息
*/ */
@Serializable
sealed class FlashImage : MessageContent, HummerMessage() { sealed class FlashImage : MessageContent, HummerMessage() {
companion object Key : Message.Key<FlashImage> { companion object Key : Message.Key<FlashImage> {
/** /**
...@@ -241,7 +244,7 @@ sealed class FlashImage : MessageContent, HummerMessage() { ...@@ -241,7 +244,7 @@ sealed class FlashImage : MessageContent, HummerMessage() {
@JvmStatic @JvmStatic
@JvmName("from") @JvmName("from")
operator fun invoke(image: Image): FlashImage { operator fun invoke(image: Image): FlashImage {
@Suppress("DEPRECATION", "DEPRECATION_ERROR")
return when (image) { return when (image) {
is GroupImage -> GroupFlashImage(image) is GroupImage -> GroupFlashImage(image)
is FriendImage -> FriendFlashImage(image) is FriendImage -> FriendFlashImage(image)
...@@ -280,30 +283,93 @@ sealed class FlashImage : MessageContent, HummerMessage() { ...@@ -280,30 +283,93 @@ sealed class FlashImage : MessageContent, HummerMessage() {
override fun toString(): String = stringValue!! override fun toString(): String = stringValue!!
override fun contentToString(): String = "[闪照]" override fun contentToString(): String = "[闪照]"
} }
inline fun Image.flash(): FlashImage = FlashImage(this)
@JvmSynthetic
inline fun GroupImage.flash(): GroupFlashImage = FlashImage(this) as GroupFlashImage
@JvmSynthetic inline fun Image.flash(): FlashImage = FlashImage(this)
inline fun FriendImage.flash(): FriendFlashImage = FlashImage(this) as FriendFlashImage
/** /**
* @see FlashImage.invoke * @see FlashImage.invoke
*/ */
data class GroupFlashImage(override val image: GroupImage) : FlashImage() { @PlannedRemoval("1.3.0") // internal
@Serializable
@Suppress("DEPRECATION", "DEPRECATION_ERROR")
@Deprecated(
"use FlashImage instead",
level = DeprecationLevel.ERROR,
replaceWith = ReplaceWith("FlashImage", "net.mamoe.mirai.message.data.FlashImage")
)
data class GroupFlashImage
@Deprecated(
"use FlashImage instead",
level = DeprecationLevel.ERROR,
replaceWith = ReplaceWith("FlashImage(image)", "net.mamoe.mirai.message.data.FlashImage")
)
constructor(override val image: Image) : FlashImage() {
companion object Key : Message.Key<GroupFlashImage> { companion object Key : Message.Key<GroupFlashImage> {
override val typeName: String override val typeName: String
get() = "GroupFlashImage" get() = "GroupFlashImage"
} }
@Suppress("WRONG_ANNOTATION_TARGET", "DEPRECATION")
@JvmSynthetic
@Deprecated("for binary compatibility", level = DeprecationLevel.HIDDEN)
constructor(image: GroupImage) : this(image as Image)
@JvmSynthetic
@Deprecated("for binary compatibility", level = DeprecationLevel.HIDDEN)
fun getImage(): GroupImage = image as? GroupImage ?: error(
"""
GroupFlashImage is changed since mirai 1.1.0.
GroupFlashImage.image returns Image instead of GroupImage now. Please recompile your application(plugin).
""".trimIndent()
)
} }
/** /**
* @see FlashImage.invoke * @see FlashImage.invoke
*/ */
data class FriendFlashImage(override val image: FriendImage) : FlashImage() { @PlannedRemoval("1.3.0") // internal
@Serializable
@Suppress("DEPRECATION", "DEPRECATION_ERROR")
@Deprecated(
"use FlashImage instead",
level = DeprecationLevel.ERROR,
replaceWith = ReplaceWith("FlashImage", "net.mamoe.mirai.message.data.FlashImage")
)
data class FriendFlashImage
@Deprecated(
"use FlashImage instead",
level = DeprecationLevel.ERROR,
replaceWith = ReplaceWith("FlashImage(image)", "net.mamoe.mirai.message.data.FlashImage")
)
constructor(override val image: Image) : FlashImage() {
companion object Key : Message.Key<FriendFlashImage> { companion object Key : Message.Key<FriendFlashImage> {
override val typeName: String override val typeName: String
get() = "FriendFlashImage" get() = "FriendFlashImage"
} }
@Suppress("WRONG_ANNOTATION_TARGET", "DEPRECATION")
@JvmSynthetic
@Deprecated("for binary compatibility", level = DeprecationLevel.HIDDEN)
constructor(image: FriendImage) : this(image as Image)
@JvmSynthetic
@Deprecated("for binary compatibility", level = DeprecationLevel.HIDDEN)
fun getImage(): FriendImage = image as? FriendImage ?: error(
"""
FriendFlashImage is changed since mirai 1.1.0.
FriendFlashImage.image returns Image instead of FriendImage now. Please recompile your application(plugin).
""".trimIndent()
)
} }
@Deprecated("for binary compatibility", level = DeprecationLevel.HIDDEN)
@JvmSynthetic
@Suppress("DEPRECATION", "DEPRECATION_ERROR")
inline fun GroupImage.flash(): GroupFlashImage = FlashImage(this) as GroupFlashImage
@Deprecated("for binary compatibility", level = DeprecationLevel.HIDDEN)
@JvmSynthetic
@Suppress("DEPRECATION", "DEPRECATION_ERROR")
inline fun FriendImage.flash(): FriendFlashImage = FlashImage(this) as FriendFlashImage
\ No newline at end of file
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