1
0
mirror of https://github.com/InsanusMokrassar/TelegramBotAPI.git synced 2026-03-03 09:22:22 +00:00

add rarity support

This commit is contained in:
2026-02-20 13:06:53 +06:00
parent 53e79b152e
commit eccc687aec
5 changed files with 135 additions and 8 deletions

View File

@@ -10747,6 +10747,7 @@ public final class dev/inmo/tgbotapi/types/CommonKt {
public static final field quoteField Ljava/lang/String;
public static final field quoteParseModeField Ljava/lang/String;
public static final field quotePositionField Ljava/lang/String;
public static final field rarityField Ljava/lang/String;
public static final field rarityPerMilleField Ljava/lang/String;
public static final field ratingField Ljava/lang/String;
public static final field rawField Ljava/lang/String;
@@ -22230,6 +22231,73 @@ public final class dev/inmo/tgbotapi/types/gifts/Gifts$Companion {
public final fun serializer ()Lkotlinx/serialization/KSerializer;
}
public abstract interface class dev/inmo/tgbotapi/types/gifts/Rarity {
public static final field Companion Ldev/inmo/tgbotapi/types/gifts/Rarity$Companion;
public abstract fun getName ()Ljava/lang/String;
}
public final class dev/inmo/tgbotapi/types/gifts/Rarity$Companion : kotlinx/serialization/KSerializer {
public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/inmo/tgbotapi/types/gifts/Rarity;
public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object;
public final fun fromString (Ljava/lang/String;)Ldev/inmo/tgbotapi/types/gifts/Rarity;
public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor;
public fun serialize (Lkotlinx/serialization/encoding/Encoder;Ldev/inmo/tgbotapi/types/gifts/Rarity;)V
public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V
public final fun serializer ()Lkotlinx/serialization/KSerializer;
}
public final class dev/inmo/tgbotapi/types/gifts/Rarity$Custom : dev/inmo/tgbotapi/types/gifts/Rarity {
public static final field Companion Ldev/inmo/tgbotapi/types/gifts/Rarity$Custom$Companion;
public fun <init> (Ljava/lang/String;)V
public final fun component1 ()Ljava/lang/String;
public final fun copy (Ljava/lang/String;)Ldev/inmo/tgbotapi/types/gifts/Rarity$Custom;
public static synthetic fun copy$default (Ldev/inmo/tgbotapi/types/gifts/Rarity$Custom;Ljava/lang/String;ILjava/lang/Object;)Ldev/inmo/tgbotapi/types/gifts/Rarity$Custom;
public fun equals (Ljava/lang/Object;)Z
public fun getName ()Ljava/lang/String;
public fun hashCode ()I
public fun toString ()Ljava/lang/String;
}
public final class dev/inmo/tgbotapi/types/gifts/Rarity$Custom$Companion {
public final fun serializer ()Lkotlinx/serialization/KSerializer;
}
public final class dev/inmo/tgbotapi/types/gifts/Rarity$Epic : dev/inmo/tgbotapi/types/gifts/Rarity {
public static final field INSTANCE Ldev/inmo/tgbotapi/types/gifts/Rarity$Epic;
public fun equals (Ljava/lang/Object;)Z
public fun getName ()Ljava/lang/String;
public fun hashCode ()I
public final fun serializer ()Lkotlinx/serialization/KSerializer;
public fun toString ()Ljava/lang/String;
}
public final class dev/inmo/tgbotapi/types/gifts/Rarity$Legendary : dev/inmo/tgbotapi/types/gifts/Rarity {
public static final field INSTANCE Ldev/inmo/tgbotapi/types/gifts/Rarity$Legendary;
public fun equals (Ljava/lang/Object;)Z
public fun getName ()Ljava/lang/String;
public fun hashCode ()I
public final fun serializer ()Lkotlinx/serialization/KSerializer;
public fun toString ()Ljava/lang/String;
}
public final class dev/inmo/tgbotapi/types/gifts/Rarity$Rare : dev/inmo/tgbotapi/types/gifts/Rarity {
public static final field INSTANCE Ldev/inmo/tgbotapi/types/gifts/Rarity$Rare;
public fun equals (Ljava/lang/Object;)Z
public fun getName ()Ljava/lang/String;
public fun hashCode ()I
public final fun serializer ()Lkotlinx/serialization/KSerializer;
public fun toString ()Ljava/lang/String;
}
public final class dev/inmo/tgbotapi/types/gifts/Rarity$Uncommon : dev/inmo/tgbotapi/types/gifts/Rarity {
public static final field INSTANCE Ldev/inmo/tgbotapi/types/gifts/Rarity$Uncommon;
public fun equals (Ljava/lang/Object;)Z
public fun getName ()Ljava/lang/String;
public fun hashCode ()I
public final fun serializer ()Lkotlinx/serialization/KSerializer;
public fun toString ()Ljava/lang/String;
}
public final class dev/inmo/tgbotapi/types/gifts/unique/UniqueGiftBackdrop {
public static final field Companion Ldev/inmo/tgbotapi/types/gifts/unique/UniqueGiftBackdrop$Companion;
public fun <init> (Ljava/lang/String;Ldev/inmo/tgbotapi/types/gifts/unique/UniqueGiftBackdropColors;I)V
@@ -22333,14 +22401,16 @@ public final class dev/inmo/tgbotapi/types/gifts/unique/UniqueGiftColors$Compani
public final class dev/inmo/tgbotapi/types/gifts/unique/UniqueGiftModel {
public static final field Companion Ldev/inmo/tgbotapi/types/gifts/unique/UniqueGiftModel$Companion;
public fun <init> (Ljava/lang/String;Ldev/inmo/tgbotapi/types/files/Sticker;I)V
public fun <init> (Ljava/lang/String;Ldev/inmo/tgbotapi/types/files/Sticker;ILdev/inmo/tgbotapi/types/gifts/Rarity;)V
public final fun component1 ()Ljava/lang/String;
public final fun component2 ()Ldev/inmo/tgbotapi/types/files/Sticker;
public final fun component3 ()I
public final fun copy (Ljava/lang/String;Ldev/inmo/tgbotapi/types/files/Sticker;I)Ldev/inmo/tgbotapi/types/gifts/unique/UniqueGiftModel;
public static synthetic fun copy$default (Ldev/inmo/tgbotapi/types/gifts/unique/UniqueGiftModel;Ljava/lang/String;Ldev/inmo/tgbotapi/types/files/Sticker;IILjava/lang/Object;)Ldev/inmo/tgbotapi/types/gifts/unique/UniqueGiftModel;
public final fun component4 ()Ldev/inmo/tgbotapi/types/gifts/Rarity;
public final fun copy (Ljava/lang/String;Ldev/inmo/tgbotapi/types/files/Sticker;ILdev/inmo/tgbotapi/types/gifts/Rarity;)Ldev/inmo/tgbotapi/types/gifts/unique/UniqueGiftModel;
public static synthetic fun copy$default (Ldev/inmo/tgbotapi/types/gifts/unique/UniqueGiftModel;Ljava/lang/String;Ldev/inmo/tgbotapi/types/files/Sticker;ILdev/inmo/tgbotapi/types/gifts/Rarity;ILjava/lang/Object;)Ldev/inmo/tgbotapi/types/gifts/unique/UniqueGiftModel;
public fun equals (Ljava/lang/Object;)Z
public final fun getName ()Ljava/lang/String;
public final fun getRarity ()Ldev/inmo/tgbotapi/types/gifts/Rarity;
public final fun getRarityPerMille ()I
public final fun getSticker ()Ldev/inmo/tgbotapi/types/files/Sticker;
public fun hashCode ()I

View File

@@ -546,6 +546,7 @@ const val giftField = "gift"
const val giftUpgradeSentField = "gift_upgrade_sent"
const val giftsField = "gifts"
const val rarityPerMilleField = "rarity_per_mille"
const val rarityField = "rarity"
const val acceptedGiftTypesField = "accepted_gift_types"
const val ownedGiftIdField = "owned_gift_id"
const val convertStarCountField = "convert_star_count"
@@ -754,7 +755,6 @@ const val paidMediaField = "paid_media"
const val publisherChatField = "publisher_chat"
const val personalTotalCountField = "personal_total_count"
const val personalRemainingCountField = "personal_remaining_count"
const val isPremiumField2 = "is_premium"
const val hasColorsField = "has_colors"
const val uniqueGiftVariantCountField = "unique_gift_variant_count"
const val uniqueGiftNumberField = "unique_gift_number"

View File

@@ -49,7 +49,7 @@ sealed interface Gift {
override val personalTotalCount: Int? = null,
@SerialName(personalRemainingCountField)
override val personalRemainingCount: Int? = null,
@SerialName(isPremiumField2)
@SerialName(isPremiumField)
override val isPremium: Boolean = false,
@SerialName(hasColorsField)
override val hasColors: Boolean = false,
@@ -84,7 +84,7 @@ sealed interface Gift {
override val personalTotalCount: Int? = null,
@SerialName(personalRemainingCountField)
override val personalRemainingCount: Int? = null,
@SerialName(isPremiumField2)
@SerialName(isPremiumField)
override val isPremium: Boolean = false,
@SerialName(hasColorsField)
override val hasColors: Boolean = false,
@@ -193,7 +193,7 @@ sealed interface Gift {
override val publisherChat: PreviewChat? = null,
@SerialName(isFromBlockchainField)
val isFromBlockchain: Boolean = false,
@SerialName(isPremiumField2)
@SerialName(isPremiumField)
val isPremium: Boolean = false,
@SerialName(colorsField)
val colors: UniqueGiftColors? = null

View File

@@ -0,0 +1,53 @@
package dev.inmo.tgbotapi.types.gifts
import kotlinx.serialization.KSerializer
import kotlinx.serialization.Serializable
import kotlinx.serialization.builtins.serializer
import kotlinx.serialization.descriptors.SerialDescriptor
import kotlinx.serialization.encoding.Decoder
import kotlinx.serialization.encoding.Encoder
@Serializable(Rarity.Companion::class)
sealed interface Rarity {
val name: String
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@Serializable(Rarity.Companion::class)
data object Uncommon : Rarity { override val name: String = "uncommon" }
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@Serializable(Rarity.Companion::class)
data object Rare : Rarity { override val name: String = "rare" }
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@Serializable(Rarity.Companion::class)
data object Epic : Rarity { override val name: String = "epic" }
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@Serializable(Rarity.Companion::class)
data object Legendary : Rarity { override val name: String = "legendary" }
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@Serializable(Rarity.Companion::class)
data class Custom(override val name: String) : Rarity
companion object : KSerializer<Rarity> {
override val descriptor: SerialDescriptor = String.serializer().descriptor
fun fromString(value: String): Rarity = when (value) {
Uncommon.name -> Uncommon
Rare.name -> Rare
Epic.name -> Epic
Legendary.name -> Legendary
else -> Custom(value)
}
override fun deserialize(decoder: Decoder): Rarity {
val value = decoder.decodeString()
return fromString(value)
}
override fun serialize(
encoder: Encoder,
value: Rarity
) {
encoder.encodeString(value.name)
}
}
}

View File

@@ -1,7 +1,9 @@
package dev.inmo.tgbotapi.types.gifts.unique
import dev.inmo.tgbotapi.types.files.Sticker
import dev.inmo.tgbotapi.types.gifts.Rarity
import dev.inmo.tgbotapi.types.nameField
import dev.inmo.tgbotapi.types.rarityField
import dev.inmo.tgbotapi.types.rarityPerMilleField
import dev.inmo.tgbotapi.types.stickerField
import kotlinx.serialization.SerialName
@@ -15,5 +17,7 @@ data class UniqueGiftModel(
@SerialName(stickerField)
val sticker: Sticker,
@SerialName(rarityPerMilleField)
val rarityPerMille: Int
val rarityPerMille: Int,
@SerialName(rarityField)
val rarity: Rarity
)