diff --git a/CHANGELOG.md b/CHANGELOG.md index dac93ea1fe..596c6cf9d3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ ## 9.1.2 +* `Core`: + * Fix of `MessageContent` serialization + ## 9.1.1 * `Core`: diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/Abstracts.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/Abstracts.kt index 9d6eaac1c9..dd346d6403 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/Abstracts.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/Abstracts.kt @@ -13,8 +13,10 @@ import dev.inmo.tgbotapi.types.media.TelegramMedia import dev.inmo.tgbotapi.types.message.abstracts.* import dev.inmo.tgbotapi.types.threadId import dev.inmo.tgbotapi.utils.RiskFeature +import kotlinx.serialization.Serializable import kotlinx.serialization.modules.* +@Serializable sealed interface MessageContent: ResendableContent { companion object { @RiskFeature("This serialization module can be changed in near releases") @@ -49,6 +51,7 @@ sealed interface MessageContent: ResendableContent { subclass(AnimationContent::class) subclass(StickerContent::class) subclass(InvoiceContent::class) + subclass(StoryContent::class) additionalBuilder() } diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/LocationContent.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/LocationContent.kt index f4f932158c..c90ebd31c4 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/LocationContent.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/LocationContent.kt @@ -58,7 +58,6 @@ sealed interface LocationContent : MessageContent { /** * [KSerializer] for [LocationContent] */ -@Serializer(LocationContent::class) object LocationContentSerializer : KSerializer { override val descriptor: SerialDescriptor = buildClassSerialDescriptor("LocationContent") { element(LocationContent::location.name, LocationSerializer.descriptor) @@ -85,7 +84,6 @@ object LocationContentSerializer : KSerializer { encodeSerializableElement(descriptor, 0, LocationSerializer, value.location) }.endStructure(descriptor) } - } /** @@ -94,7 +92,7 @@ object LocationContentSerializer : KSerializer { * * @see dev.inmo.tgbotapi.extensions.behaviour_builder.utils.followLocation */ -@Serializable(LocationContentSerializer::class) +@Serializable data class LiveLocationContent( override val location: LiveLocation ) : LocationContent { @@ -127,7 +125,7 @@ data class LiveLocationContent( * Just a [LocationContent] with [StaticLocation] [location]. It could be [LiveLocationContent] in previous time in case * when somebody has sent [LiveLocation] in chat and then stop to broadcast location */ -@Serializable(LocationContentSerializer::class) +@Serializable data class StaticLocationContent( override val location: StaticLocation ) : LocationContent {