From ad59083fb5690d1bcebf47a5f30c8660de94b89f Mon Sep 17 00:00:00 2001 From: viztea <44017640+viztea@users.noreply.github.com> Date: Sat, 14 Sep 2024 18:22:26 -0700 Subject: [PATCH] Implement Monetization (#932) Monetization [1] is supported by adding entitlements [2], SKUs [3], subscriptions [4], related events [5] and premium buttons [6]. [1] https://discord.com/developers/docs/monetization/overview [2] https://discord.com/developers/docs/resources/entitlement [3] https://discord.com/developers/docs/resources/sku [4] https://discord.com/developers/docs/resources/subscription [5] https://discord.com/developers/docs/topics/gateway-events#entitlements https://discord.com/developers/docs/topics/gateway-events#subscriptions [6] https://discord.com/developers/docs/interactions/message-components#buttons Co-authored-by: Luca Kellermann --- common/api/common.api | 367 +++++++++++++++++- common/api/common.klib.api | 341 +++++++++++++++- .../dev/kord/common/entity/ButtonStyle.kt | 7 + .../common/entity/EntitlementOwnerType.kt | 88 +++++ .../dev/kord/common/entity/EntitlementType.kt | 130 +++++++ .../entity/GuildScheduledEventStatus.kt | 6 +- .../dev/kord/common/entity/MessageType.kt | 4 + .../dev/kord/common/entity/PresenceStatus.kt | 6 +- .../kotlin/dev/kord/common/entity/SkuFlag.kt | 330 ++++++++++++++++ .../kotlin/dev/kord/common/entity/SkuType.kt | 99 +++++ .../kord/common/entity/SubscriptionStatus.kt | 95 +++++ .../kotlin/entity/DiscordComponent.kt | 4 + .../kotlin/entity/DiscordMessage.kt | 1 + .../commonMain/kotlin/entity/Entitlement.kt | 64 +++ .../commonMain/kotlin/entity/Interactions.kt | 2 + common/src/commonMain/kotlin/entity/Sku.kt | 54 +++ .../commonMain/kotlin/entity/Subscription.kt | 38 ++ .../commonTest/kotlin/json/InteractionTest.kt | 14 + .../json/interaction/groupsubcommand.json | 11 +- .../json/interaction/rootcommand.json | 11 +- .../json/interaction/selectmenu.json | 11 +- .../json/interaction/subcommand.json | 11 +- core/api/core.api | 334 +++++++++++++++- core/api/core.klib.api | 363 ++++++++++++++++- core/src/commonMain/kotlin/Kord.kt | 24 ++ core/src/commonMain/kotlin/Unsafe.kt | 5 + .../behavior/monetization/SkuBehavior.kt | 126 ++++++ .../kotlin/cache/DataCacheExtensions.kt | 4 + core/src/commonMain/kotlin/cache/KordCache.kt | 8 + .../kotlin/cache/data/ComponentData.kt | 9 +- .../kotlin/cache/data/EntitlementData.kt | 45 +++ .../commonMain/kotlin/cache/data/GuildData.kt | 2 + .../kotlin/cache/data/InteractionData.kt | 6 +- .../kotlin/cache/data/SubscriptionData.kt | 41 ++ .../commonMain/kotlin/cache/data/UserData.kt | 3 + .../entity/component/ActionRowComponent.kt | 11 +- .../entity/component/ButtonComponent.kt | 15 +- .../kotlin/entity/interaction/Interaction.kt | 10 + .../kotlin/entity/monetization/Entitlement.kt | 128 ++++++ .../kotlin/entity/monetization/Sku.kt | 60 +++ .../entity/monetization/Subscription.kt | 71 ++++ .../event/monetization/EntitlementEvents.kt | 60 +++ .../event/monetization/SubscriptionEvents.kt | 52 +++ .../exception/EntityNotFoundException.kt | 3 + .../handler/DefaultGatewayEventInterceptor.kt | 2 + .../handler/EntitlementEventHandler.kt | 68 ++++ .../handler/SubscriptionEventHandler.kt | 68 ++++ .../kotlin/supplier/CacheEntitySupplier.kt | 73 ++++ .../kotlin/supplier/EntitySupplier.kt | 38 ++ .../kotlin/supplier/FallbackEntitySupplier.kt | 13 + .../kotlin/supplier/RestEntitySupplier.kt | 54 ++- .../kotlin/supplier/StoreEntitySupplier.kt | 13 + gateway/api/gateway.api | 78 ++++ gateway/api/gateway.klib.api | 96 +++++ gateway/src/commonMain/kotlin/Event.kt | 25 +- .../json/DispatchEventDeserializationTest.kt | 78 +++- .../kotlin/generation/shared/SharedContent.kt | 9 +- rest/api/rest.api | 181 +++++++++ rest/api/rest.klib.api | 187 +++++++++ .../builder/component/ActionRowBuilder.kt | 18 +- .../kotlin/builder/component/ButtonBuilder.kt | 24 +- .../EntitlementsListRequestBuilder.kt | 63 +++ .../SkuSubscriptionsListRequestBuilder.kt | 36 ++ .../commonMain/kotlin/json/JsonErrorCode.kt | 12 + .../json/request/EntitlementRequests.kt | 26 ++ .../json/request/SubscriptionRequests.kt | 10 + rest/src/commonMain/kotlin/route/Route.kt | 62 +++ .../kotlin/service/EntitlementService.kt | 48 +++ .../commonMain/kotlin/service/RestClient.kt | 7 +- .../commonMain/kotlin/service/SkuService.kt | 13 + .../kotlin/service/SubscriptionService.kt | 28 ++ 71 files changed, 4329 insertions(+), 75 deletions(-) create mode 100644 common/build/generated/ksp/metadata/commonMain/kotlin/dev/kord/common/entity/EntitlementOwnerType.kt create mode 100644 common/build/generated/ksp/metadata/commonMain/kotlin/dev/kord/common/entity/EntitlementType.kt create mode 100644 common/build/generated/ksp/metadata/commonMain/kotlin/dev/kord/common/entity/SkuFlag.kt create mode 100644 common/build/generated/ksp/metadata/commonMain/kotlin/dev/kord/common/entity/SkuType.kt create mode 100644 common/build/generated/ksp/metadata/commonMain/kotlin/dev/kord/common/entity/SubscriptionStatus.kt create mode 100644 common/src/commonMain/kotlin/entity/Entitlement.kt create mode 100644 common/src/commonMain/kotlin/entity/Sku.kt create mode 100644 common/src/commonMain/kotlin/entity/Subscription.kt create mode 100644 core/src/commonMain/kotlin/behavior/monetization/SkuBehavior.kt create mode 100644 core/src/commonMain/kotlin/cache/data/EntitlementData.kt create mode 100644 core/src/commonMain/kotlin/cache/data/SubscriptionData.kt create mode 100644 core/src/commonMain/kotlin/entity/monetization/Entitlement.kt create mode 100644 core/src/commonMain/kotlin/entity/monetization/Sku.kt create mode 100644 core/src/commonMain/kotlin/entity/monetization/Subscription.kt create mode 100644 core/src/commonMain/kotlin/event/monetization/EntitlementEvents.kt create mode 100644 core/src/commonMain/kotlin/event/monetization/SubscriptionEvents.kt create mode 100644 core/src/commonMain/kotlin/gateway/handler/EntitlementEventHandler.kt create mode 100644 core/src/commonMain/kotlin/gateway/handler/SubscriptionEventHandler.kt create mode 100644 rest/src/commonMain/kotlin/builder/monetization/EntitlementsListRequestBuilder.kt create mode 100644 rest/src/commonMain/kotlin/builder/monetization/SkuSubscriptionsListRequestBuilder.kt create mode 100644 rest/src/commonMain/kotlin/json/request/EntitlementRequests.kt create mode 100644 rest/src/commonMain/kotlin/json/request/SubscriptionRequests.kt create mode 100644 rest/src/commonMain/kotlin/service/EntitlementService.kt create mode 100644 rest/src/commonMain/kotlin/service/SkuService.kt create mode 100644 rest/src/commonMain/kotlin/service/SubscriptionService.kt diff --git a/common/api/common.api b/common/api/common.api index c5b3b0f34e9..62f73df6425 100644 --- a/common/api/common.api +++ b/common/api/common.api @@ -1617,6 +1617,10 @@ public final class dev/kord/common/entity/ButtonStyle$Link : dev/kord/common/ent public static final field INSTANCE Ldev/kord/common/entity/ButtonStyle$Link; } +public final class dev/kord/common/entity/ButtonStyle$Premium : dev/kord/common/entity/ButtonStyle { + public static final field INSTANCE Ldev/kord/common/entity/ButtonStyle$Premium; +} + public final class dev/kord/common/entity/ButtonStyle$Primary : dev/kord/common/entity/ButtonStyle { public static final field INSTANCE Ldev/kord/common/entity/ButtonStyle$Primary; } @@ -3103,8 +3107,8 @@ public final class dev/kord/common/entity/DiscordChannel$Companion { public final class dev/kord/common/entity/DiscordChatComponent : dev/kord/common/entity/DiscordComponent { public static final field Companion Ldev/kord/common/entity/DiscordChatComponent$Companion; - public fun (Ldev/kord/common/entity/ComponentType;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;)V - public synthetic fun (Ldev/kord/common/entity/ComponentType;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public fun (Ldev/kord/common/entity/ComponentType;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalSnowflake;)V + public synthetic fun (Ldev/kord/common/entity/ComponentType;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalSnowflake;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1 ()Ldev/kord/common/entity/ComponentType; public final fun component10 ()Ldev/kord/common/entity/optional/Optional; public final fun component11 ()Ldev/kord/common/entity/optional/Optional; @@ -3115,6 +3119,7 @@ public final class dev/kord/common/entity/DiscordChatComponent : dev/kord/common public final fun component16 ()Ldev/kord/common/entity/optional/OptionalBoolean; public final fun component17 ()Ldev/kord/common/entity/optional/Optional; public final fun component18 ()Ldev/kord/common/entity/optional/Optional; + public final fun component19 ()Ldev/kord/common/entity/optional/OptionalSnowflake; public final fun component2 ()Ldev/kord/common/entity/optional/Optional; public final fun component3 ()Ldev/kord/common/entity/optional/Optional; public final fun component4 ()Ldev/kord/common/entity/optional/Optional; @@ -3123,8 +3128,8 @@ public final class dev/kord/common/entity/DiscordChatComponent : dev/kord/common public final fun component7 ()Ldev/kord/common/entity/optional/OptionalBoolean; public final fun component8 ()Ldev/kord/common/entity/optional/Optional; public final fun component9 ()Ldev/kord/common/entity/optional/Optional; - public final fun copy (Ldev/kord/common/entity/ComponentType;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;)Ldev/kord/common/entity/DiscordChatComponent; - public static synthetic fun copy$default (Ldev/kord/common/entity/DiscordChatComponent;Ldev/kord/common/entity/ComponentType;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;ILjava/lang/Object;)Ldev/kord/common/entity/DiscordChatComponent; + public final fun copy (Ldev/kord/common/entity/ComponentType;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalSnowflake;)Ldev/kord/common/entity/DiscordChatComponent; + public static synthetic fun copy$default (Ldev/kord/common/entity/DiscordChatComponent;Ldev/kord/common/entity/ComponentType;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalSnowflake;ILjava/lang/Object;)Ldev/kord/common/entity/DiscordChatComponent; public fun equals (Ljava/lang/Object;)Z public fun getChannelTypes ()Ldev/kord/common/entity/optional/Optional; public fun getComponents ()Ldev/kord/common/entity/optional/Optional; @@ -3140,6 +3145,7 @@ public final class dev/kord/common/entity/DiscordChatComponent : dev/kord/common public fun getOptions ()Ldev/kord/common/entity/optional/Optional; public fun getPlaceholder ()Ldev/kord/common/entity/optional/Optional; public fun getRequired ()Ldev/kord/common/entity/optional/OptionalBoolean; + public final fun getSkuId ()Ldev/kord/common/entity/optional/OptionalSnowflake; public final fun getStyle ()Ldev/kord/common/entity/optional/Optional; public fun getType ()Ldev/kord/common/entity/ComponentType; public fun getUrl ()Ldev/kord/common/entity/optional/Optional; @@ -3648,6 +3654,52 @@ public final class dev/kord/common/entity/DiscordEmoji$Companion { public final fun serializer ()Lkotlinx/serialization/KSerializer; } +public final class dev/kord/common/entity/DiscordEntitlement { + public static final field Companion Ldev/kord/common/entity/DiscordEntitlement$Companion; + public fun (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/EntitlementType;ZLdev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/optional/OptionalBoolean;)V + public synthetic fun (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/EntitlementType;ZLdev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/optional/OptionalBoolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ldev/kord/common/entity/Snowflake; + public final fun component10 ()Ldev/kord/common/entity/optional/OptionalBoolean; + public final fun component2 ()Ldev/kord/common/entity/Snowflake; + public final fun component3 ()Ldev/kord/common/entity/Snowflake; + public final fun component4 ()Ldev/kord/common/entity/optional/OptionalSnowflake; + public final fun component5 ()Ldev/kord/common/entity/EntitlementType; + public final fun component6 ()Z + public final fun component7 ()Ldev/kord/common/entity/optional/Optional; + public final fun component8 ()Ldev/kord/common/entity/optional/Optional; + public final fun component9 ()Ldev/kord/common/entity/optional/OptionalSnowflake; + public final fun copy (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/EntitlementType;ZLdev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/optional/OptionalBoolean;)Ldev/kord/common/entity/DiscordEntitlement; + public static synthetic fun copy$default (Ldev/kord/common/entity/DiscordEntitlement;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/EntitlementType;ZLdev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/optional/OptionalBoolean;ILjava/lang/Object;)Ldev/kord/common/entity/DiscordEntitlement; + public fun equals (Ljava/lang/Object;)Z + public final fun getApplicationId ()Ldev/kord/common/entity/Snowflake; + public final fun getConsumed ()Ldev/kord/common/entity/optional/OptionalBoolean; + public final fun getDeleted ()Z + public final fun getEndsAt ()Ldev/kord/common/entity/optional/Optional; + public final fun getGuildId ()Ldev/kord/common/entity/optional/OptionalSnowflake; + public final fun getId ()Ldev/kord/common/entity/Snowflake; + public final fun getSkuId ()Ldev/kord/common/entity/Snowflake; + public final fun getStartsAt ()Ldev/kord/common/entity/optional/Optional; + public final fun getType ()Ldev/kord/common/entity/EntitlementType; + public final fun getUserId ()Ldev/kord/common/entity/optional/OptionalSnowflake; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public synthetic class dev/kord/common/entity/DiscordEntitlement$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Ldev/kord/common/entity/DiscordEntitlement$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/kord/common/entity/DiscordEntitlement; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Ldev/kord/common/entity/DiscordEntitlement;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class dev/kord/common/entity/DiscordEntitlement$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class dev/kord/common/entity/DiscordGuild { public static final field Companion Ldev/kord/common/entity/DiscordGuild$Companion; public synthetic fun (Ldev/kord/common/entity/Snowflake;Ljava/lang/String;Ljava/lang/String;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/optional/Optional;Ljava/lang/String;Ldev/kord/common/entity/Snowflake;JLdev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/VerificationLevel;Ldev/kord/common/entity/DefaultMessageNotificationLevel;Ldev/kord/common/entity/ExplicitContentFilter;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ldev/kord/common/entity/MFALevel;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/SystemChannelFlags;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalInt;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ldev/kord/common/entity/PremiumTier;Ldev/kord/common/entity/optional/OptionalInt;Ljava/lang/String;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/NsfwLevel;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;ZLdev/kord/common/entity/Snowflake;IILkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -4298,8 +4350,8 @@ public final class dev/kord/common/entity/DiscordIntegrationsAccount$Companion { public final class dev/kord/common/entity/DiscordInteraction { public static final field Companion Ldev/kord/common/entity/DiscordInteraction$Companion; - public fun (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/InteractionType;Ldev/kord/common/entity/InteractionCallbackData;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ljava/lang/String;ILdev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;)V - public synthetic fun (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/InteractionType;Ldev/kord/common/entity/InteractionCallbackData;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ljava/lang/String;ILdev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public fun (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/InteractionType;Ldev/kord/common/entity/InteractionCallbackData;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ljava/lang/String;ILdev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;)V + public synthetic fun (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/InteractionType;Ldev/kord/common/entity/InteractionCallbackData;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ljava/lang/String;ILdev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1 ()Ldev/kord/common/entity/Snowflake; public final fun component10 ()Ljava/lang/String; public final fun component11 ()I @@ -4307,6 +4359,7 @@ public final class dev/kord/common/entity/DiscordInteraction { public final fun component13 ()Ldev/kord/common/entity/optional/Optional; public final fun component14 ()Ldev/kord/common/entity/optional/Optional; public final fun component15 ()Ldev/kord/common/entity/optional/Optional; + public final fun component16 ()Ldev/kord/common/entity/optional/Optional; public final fun component2 ()Ldev/kord/common/entity/Snowflake; public final fun component3 ()Ldev/kord/common/entity/InteractionType; public final fun component4 ()Ldev/kord/common/entity/InteractionCallbackData; @@ -4315,14 +4368,15 @@ public final class dev/kord/common/entity/DiscordInteraction { public final fun component7 ()Ldev/kord/common/entity/optional/OptionalSnowflake; public final fun component8 ()Ldev/kord/common/entity/optional/Optional; public final fun component9 ()Ldev/kord/common/entity/optional/Optional; - public final fun copy (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/InteractionType;Ldev/kord/common/entity/InteractionCallbackData;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ljava/lang/String;ILdev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;)Ldev/kord/common/entity/DiscordInteraction; - public static synthetic fun copy$default (Ldev/kord/common/entity/DiscordInteraction;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/InteractionType;Ldev/kord/common/entity/InteractionCallbackData;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ljava/lang/String;ILdev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;ILjava/lang/Object;)Ldev/kord/common/entity/DiscordInteraction; + public final fun copy (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/InteractionType;Ldev/kord/common/entity/InteractionCallbackData;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ljava/lang/String;ILdev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;)Ldev/kord/common/entity/DiscordInteraction; + public static synthetic fun copy$default (Ldev/kord/common/entity/DiscordInteraction;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/InteractionType;Ldev/kord/common/entity/InteractionCallbackData;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ljava/lang/String;ILdev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;ILjava/lang/Object;)Ldev/kord/common/entity/DiscordInteraction; public fun equals (Ljava/lang/Object;)Z public final fun getAppPermissions ()Ldev/kord/common/entity/optional/Optional; public final fun getApplicationId ()Ldev/kord/common/entity/Snowflake; public final fun getChannel ()Ldev/kord/common/entity/optional/Optional; public final fun getChannelId ()Ldev/kord/common/entity/optional/OptionalSnowflake; public final fun getData ()Ldev/kord/common/entity/InteractionCallbackData; + public final fun getEntitlements ()Ldev/kord/common/entity/optional/Optional; public final fun getGuildId ()Ldev/kord/common/entity/optional/OptionalSnowflake; public final fun getGuildLocale ()Ldev/kord/common/entity/optional/Optional; public final fun getId ()Ldev/kord/common/entity/Snowflake; @@ -5549,6 +5603,43 @@ public final class dev/kord/common/entity/DiscordShard$NewCompanion { public final fun serializer ()Lkotlinx/serialization/KSerializer; } +public final class dev/kord/common/entity/DiscordSku { + public static final field Companion Ldev/kord/common/entity/DiscordSku$Companion; + public fun (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/SkuType;Ldev/kord/common/entity/Snowflake;Ljava/lang/String;Ljava/lang/String;Ldev/kord/common/entity/SkuFlags;)V + public final fun component1 ()Ldev/kord/common/entity/Snowflake; + public final fun component2 ()Ldev/kord/common/entity/SkuType; + public final fun component3 ()Ldev/kord/common/entity/Snowflake; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Ldev/kord/common/entity/SkuFlags; + public final fun copy (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/SkuType;Ldev/kord/common/entity/Snowflake;Ljava/lang/String;Ljava/lang/String;Ldev/kord/common/entity/SkuFlags;)Ldev/kord/common/entity/DiscordSku; + public static synthetic fun copy$default (Ldev/kord/common/entity/DiscordSku;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/SkuType;Ldev/kord/common/entity/Snowflake;Ljava/lang/String;Ljava/lang/String;Ldev/kord/common/entity/SkuFlags;ILjava/lang/Object;)Ldev/kord/common/entity/DiscordSku; + public fun equals (Ljava/lang/Object;)Z + public final fun getApplicationId ()Ldev/kord/common/entity/Snowflake; + public final fun getFlags ()Ldev/kord/common/entity/SkuFlags; + public final fun getId ()Ldev/kord/common/entity/Snowflake; + public final fun getName ()Ljava/lang/String; + public final fun getSlug ()Ljava/lang/String; + public final fun getType ()Ldev/kord/common/entity/SkuType; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public synthetic class dev/kord/common/entity/DiscordSku$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Ldev/kord/common/entity/DiscordSku$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/kord/common/entity/DiscordSku; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Ldev/kord/common/entity/DiscordSku;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class dev/kord/common/entity/DiscordSku$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class dev/kord/common/entity/DiscordStageInstance { public static final field Companion Ldev/kord/common/entity/DiscordStageInstance$Companion; public fun (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ljava/lang/String;Ldev/kord/common/entity/StageInstancePrivacyLevel;ZLdev/kord/common/entity/Snowflake;)V @@ -5659,6 +5750,50 @@ public final class dev/kord/common/entity/DiscordStickerPack$Companion { public final fun serializer ()Lkotlinx/serialization/KSerializer; } +public final class dev/kord/common/entity/DiscordSubscription { + public static final field Companion Ldev/kord/common/entity/DiscordSubscription$Companion; + public fun (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ljava/util/List;Ljava/util/List;Lkotlinx/datetime/Instant;Lkotlinx/datetime/Instant;Ldev/kord/common/entity/SubscriptionStatus;Lkotlinx/datetime/Instant;Ldev/kord/common/entity/optional/Optional;)V + public synthetic fun (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ljava/util/List;Ljava/util/List;Lkotlinx/datetime/Instant;Lkotlinx/datetime/Instant;Ldev/kord/common/entity/SubscriptionStatus;Lkotlinx/datetime/Instant;Ldev/kord/common/entity/optional/Optional;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ldev/kord/common/entity/Snowflake; + public final fun component2 ()Ldev/kord/common/entity/Snowflake; + public final fun component3 ()Ljava/util/List; + public final fun component4 ()Ljava/util/List; + public final fun component5 ()Lkotlinx/datetime/Instant; + public final fun component6 ()Lkotlinx/datetime/Instant; + public final fun component7 ()Ldev/kord/common/entity/SubscriptionStatus; + public final fun component8 ()Lkotlinx/datetime/Instant; + public final fun component9 ()Ldev/kord/common/entity/optional/Optional; + public final fun copy (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ljava/util/List;Ljava/util/List;Lkotlinx/datetime/Instant;Lkotlinx/datetime/Instant;Ldev/kord/common/entity/SubscriptionStatus;Lkotlinx/datetime/Instant;Ldev/kord/common/entity/optional/Optional;)Ldev/kord/common/entity/DiscordSubscription; + public static synthetic fun copy$default (Ldev/kord/common/entity/DiscordSubscription;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ljava/util/List;Ljava/util/List;Lkotlinx/datetime/Instant;Lkotlinx/datetime/Instant;Ldev/kord/common/entity/SubscriptionStatus;Lkotlinx/datetime/Instant;Ldev/kord/common/entity/optional/Optional;ILjava/lang/Object;)Ldev/kord/common/entity/DiscordSubscription; + public fun equals (Ljava/lang/Object;)Z + public final fun getCanceledAt ()Lkotlinx/datetime/Instant; + public final fun getCountry ()Ldev/kord/common/entity/optional/Optional; + public final fun getCurrentPeriodEnd ()Lkotlinx/datetime/Instant; + public final fun getCurrentPeriodStart ()Lkotlinx/datetime/Instant; + public final fun getEntitlementIds ()Ljava/util/List; + public final fun getId ()Ldev/kord/common/entity/Snowflake; + public final fun getSkuIds ()Ljava/util/List; + public final fun getStatus ()Ldev/kord/common/entity/SubscriptionStatus; + public final fun getUserId ()Ldev/kord/common/entity/Snowflake; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public synthetic class dev/kord/common/entity/DiscordSubscription$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Ldev/kord/common/entity/DiscordSubscription$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/kord/common/entity/DiscordSubscription; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Ldev/kord/common/entity/DiscordSubscription;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class dev/kord/common/entity/DiscordSubscription$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class dev/kord/common/entity/DiscordTeam { public static final field Companion Ldev/kord/common/entity/DiscordTeam$Companion; public fun (Ljava/lang/String;Ldev/kord/common/entity/Snowflake;Ljava/util/List;Ljava/lang/String;Ldev/kord/common/entity/Snowflake;)V @@ -6404,6 +6539,82 @@ public final class dev/kord/common/entity/EmbedType$Video : dev/kord/common/enti public static final field INSTANCE Ldev/kord/common/entity/EmbedType$Video; } +public abstract class dev/kord/common/entity/EntitlementOwnerType { + public static final field Companion Ldev/kord/common/entity/EntitlementOwnerType$Companion; + public synthetic fun (ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun equals (Ljava/lang/Object;)Z + public final fun getValue ()I + public final fun hashCode ()I + public final fun toString ()Ljava/lang/String; +} + +public final class dev/kord/common/entity/EntitlementOwnerType$Companion { + public final fun from (I)Ldev/kord/common/entity/EntitlementOwnerType; + public final fun getEntries ()Ljava/util/List; + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class dev/kord/common/entity/EntitlementOwnerType$Guild : dev/kord/common/entity/EntitlementOwnerType { + public static final field INSTANCE Ldev/kord/common/entity/EntitlementOwnerType$Guild; +} + +public final class dev/kord/common/entity/EntitlementOwnerType$Unknown : dev/kord/common/entity/EntitlementOwnerType { +} + +public final class dev/kord/common/entity/EntitlementOwnerType$User : dev/kord/common/entity/EntitlementOwnerType { + public static final field INSTANCE Ldev/kord/common/entity/EntitlementOwnerType$User; +} + +public abstract class dev/kord/common/entity/EntitlementType { + public static final field Companion Ldev/kord/common/entity/EntitlementType$Companion; + public synthetic fun (ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun equals (Ljava/lang/Object;)Z + public final fun getValue ()I + public final fun hashCode ()I + public final fun toString ()Ljava/lang/String; +} + +public final class dev/kord/common/entity/EntitlementType$ApplicationSubscription : dev/kord/common/entity/EntitlementType { + public static final field INSTANCE Ldev/kord/common/entity/EntitlementType$ApplicationSubscription; +} + +public final class dev/kord/common/entity/EntitlementType$Companion { + public final fun from (I)Ldev/kord/common/entity/EntitlementType; + public final fun getEntries ()Ljava/util/List; + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class dev/kord/common/entity/EntitlementType$DeveloperGift : dev/kord/common/entity/EntitlementType { + public static final field INSTANCE Ldev/kord/common/entity/EntitlementType$DeveloperGift; +} + +public final class dev/kord/common/entity/EntitlementType$FreePurchase : dev/kord/common/entity/EntitlementType { + public static final field INSTANCE Ldev/kord/common/entity/EntitlementType$FreePurchase; +} + +public final class dev/kord/common/entity/EntitlementType$PremiumPurchase : dev/kord/common/entity/EntitlementType { + public static final field INSTANCE Ldev/kord/common/entity/EntitlementType$PremiumPurchase; +} + +public final class dev/kord/common/entity/EntitlementType$PremiumSubscription : dev/kord/common/entity/EntitlementType { + public static final field INSTANCE Ldev/kord/common/entity/EntitlementType$PremiumSubscription; +} + +public final class dev/kord/common/entity/EntitlementType$Purchase : dev/kord/common/entity/EntitlementType { + public static final field INSTANCE Ldev/kord/common/entity/EntitlementType$Purchase; +} + +public final class dev/kord/common/entity/EntitlementType$TestModePurchase : dev/kord/common/entity/EntitlementType { + public static final field INSTANCE Ldev/kord/common/entity/EntitlementType$TestModePurchase; +} + +public final class dev/kord/common/entity/EntitlementType$Unknown : dev/kord/common/entity/EntitlementType { +} + +public final class dev/kord/common/entity/EntitlementType$UserGift : dev/kord/common/entity/EntitlementType { + public static final field INSTANCE Ldev/kord/common/entity/EntitlementType$UserGift; +} + public abstract class dev/kord/common/entity/ExplicitContentFilter { public static final field Companion Ldev/kord/common/entity/ExplicitContentFilter$Companion; public synthetic fun (ILkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -7471,6 +7682,10 @@ public final class dev/kord/common/entity/MessageType$InteractionPremiumUpsell : public static final field INSTANCE Ldev/kord/common/entity/MessageType$InteractionPremiumUpsell; } +public final class dev/kord/common/entity/MessageType$PurchaseNotification : dev/kord/common/entity/MessageType { + public static final field INSTANCE Ldev/kord/common/entity/MessageType$PurchaseNotification; +} + public final class dev/kord/common/entity/MessageType$RecipientAdd : dev/kord/common/entity/MessageType { public static final field INSTANCE Ldev/kord/common/entity/MessageType$RecipientAdd; } @@ -8233,6 +8448,112 @@ public final class dev/kord/common/entity/SelectDefaultValueType$User : dev/kord public static final field INSTANCE Ldev/kord/common/entity/SelectDefaultValueType$User; } +public abstract class dev/kord/common/entity/SkuFlag { + public static final field Companion Ldev/kord/common/entity/SkuFlag$Companion; + public synthetic fun (ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun equals (Ljava/lang/Object;)Z + public final fun getShift ()I + public final fun getValue ()I + public final fun hashCode ()I + public final fun plus (Ldev/kord/common/entity/SkuFlag;)Ldev/kord/common/entity/SkuFlags; + public final fun plus (Ldev/kord/common/entity/SkuFlags;)Ldev/kord/common/entity/SkuFlags; + public final fun toString ()Ljava/lang/String; +} + +public final class dev/kord/common/entity/SkuFlag$Available : dev/kord/common/entity/SkuFlag { + public static final field INSTANCE Ldev/kord/common/entity/SkuFlag$Available; +} + +public final class dev/kord/common/entity/SkuFlag$Companion { + public final fun fromShift (I)Ldev/kord/common/entity/SkuFlag; + public final fun getEntries ()Ljava/util/List; +} + +public final class dev/kord/common/entity/SkuFlag$GuildSubscription : dev/kord/common/entity/SkuFlag { + public static final field INSTANCE Ldev/kord/common/entity/SkuFlag$GuildSubscription; +} + +public final class dev/kord/common/entity/SkuFlag$Unknown : dev/kord/common/entity/SkuFlag { +} + +public final class dev/kord/common/entity/SkuFlag$UserSubscription : dev/kord/common/entity/SkuFlag { + public static final field INSTANCE Ldev/kord/common/entity/SkuFlag$UserSubscription; +} + +public final class dev/kord/common/entity/SkuFlagKt { + public static final fun SkuFlags (Ljava/lang/Iterable;)Ldev/kord/common/entity/SkuFlags; + public static final fun SkuFlags (Lkotlin/jvm/functions/Function1;)Ldev/kord/common/entity/SkuFlags; + public static final fun SkuFlags ([Ldev/kord/common/entity/SkuFlag;)Ldev/kord/common/entity/SkuFlags; + public static final fun SkuFlags ([Ldev/kord/common/entity/SkuFlags;)Ldev/kord/common/entity/SkuFlags; + public static synthetic fun SkuFlags$default (Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Ldev/kord/common/entity/SkuFlags; + public static final fun SkuFlags0 (Ljava/lang/Iterable;)Ldev/kord/common/entity/SkuFlags; +} + +public final class dev/kord/common/entity/SkuFlags { + public static final field Companion Ldev/kord/common/entity/SkuFlags$Companion; + public final fun contains (Ldev/kord/common/entity/SkuFlag;)Z + public final fun contains (Ldev/kord/common/entity/SkuFlags;)Z + public final fun copy (Lkotlin/jvm/functions/Function1;)Ldev/kord/common/entity/SkuFlags; + public fun equals (Ljava/lang/Object;)Z + public final fun getValue ()I + public final fun getValues ()Ljava/util/Set; + public fun hashCode ()I + public final fun minus (Ldev/kord/common/entity/SkuFlag;)Ldev/kord/common/entity/SkuFlags; + public final fun minus (Ldev/kord/common/entity/SkuFlags;)Ldev/kord/common/entity/SkuFlags; + public final fun plus (Ldev/kord/common/entity/SkuFlag;)Ldev/kord/common/entity/SkuFlags; + public final fun plus (Ldev/kord/common/entity/SkuFlags;)Ldev/kord/common/entity/SkuFlags; + public fun toString ()Ljava/lang/String; +} + +public final class dev/kord/common/entity/SkuFlags$Builder { + public fun ()V + public fun (I)V + public synthetic fun (IILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun build ()Ldev/kord/common/entity/SkuFlags; + public final fun unaryMinus (Ldev/kord/common/entity/SkuFlag;)V + public final fun unaryMinus (Ldev/kord/common/entity/SkuFlags;)V + public final fun unaryPlus (Ldev/kord/common/entity/SkuFlag;)V + public final fun unaryPlus (Ldev/kord/common/entity/SkuFlags;)V +} + +public final class dev/kord/common/entity/SkuFlags$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public abstract class dev/kord/common/entity/SkuType { + public static final field Companion Ldev/kord/common/entity/SkuType$Companion; + public synthetic fun (ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun equals (Ljava/lang/Object;)Z + public final fun getValue ()I + public final fun hashCode ()I + public final fun toString ()Ljava/lang/String; +} + +public final class dev/kord/common/entity/SkuType$Companion { + public final fun from (I)Ldev/kord/common/entity/SkuType; + public final fun getEntries ()Ljava/util/List; + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class dev/kord/common/entity/SkuType$Consumable : dev/kord/common/entity/SkuType { + public static final field INSTANCE Ldev/kord/common/entity/SkuType$Consumable; +} + +public final class dev/kord/common/entity/SkuType$Durable : dev/kord/common/entity/SkuType { + public static final field INSTANCE Ldev/kord/common/entity/SkuType$Durable; +} + +public final class dev/kord/common/entity/SkuType$Subscription : dev/kord/common/entity/SkuType { + public static final field INSTANCE Ldev/kord/common/entity/SkuType$Subscription; +} + +public final class dev/kord/common/entity/SkuType$SubscriptionGroup : dev/kord/common/entity/SkuType { + public static final field INSTANCE Ldev/kord/common/entity/SkuType$SubscriptionGroup; +} + +public final class dev/kord/common/entity/SkuType$Unknown : dev/kord/common/entity/SkuType { +} + public final class dev/kord/common/entity/Snowflake : java/lang/Comparable { public static final field Companion Ldev/kord/common/entity/Snowflake$Companion; public synthetic fun (JLkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -8352,6 +8673,36 @@ public final class dev/kord/common/entity/SubCommand$Companion { public final fun serializer ()Lkotlinx/serialization/KSerializer; } +public abstract class dev/kord/common/entity/SubscriptionStatus { + public static final field Companion Ldev/kord/common/entity/SubscriptionStatus$Companion; + public synthetic fun (ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun equals (Ljava/lang/Object;)Z + public final fun getValue ()I + public final fun hashCode ()I + public final fun toString ()Ljava/lang/String; +} + +public final class dev/kord/common/entity/SubscriptionStatus$Active : dev/kord/common/entity/SubscriptionStatus { + public static final field INSTANCE Ldev/kord/common/entity/SubscriptionStatus$Active; +} + +public final class dev/kord/common/entity/SubscriptionStatus$Companion { + public final fun from (I)Ldev/kord/common/entity/SubscriptionStatus; + public final fun getEntries ()Ljava/util/List; + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class dev/kord/common/entity/SubscriptionStatus$Ending : dev/kord/common/entity/SubscriptionStatus { + public static final field INSTANCE Ldev/kord/common/entity/SubscriptionStatus$Ending; +} + +public final class dev/kord/common/entity/SubscriptionStatus$Inactive : dev/kord/common/entity/SubscriptionStatus { + public static final field INSTANCE Ldev/kord/common/entity/SubscriptionStatus$Inactive; +} + +public final class dev/kord/common/entity/SubscriptionStatus$Unknown : dev/kord/common/entity/SubscriptionStatus { +} + public abstract class dev/kord/common/entity/SystemChannelFlag { public static final field Companion Ldev/kord/common/entity/SystemChannelFlag$Companion; public synthetic fun (ILkotlin/jvm/internal/DefaultConstructorMarker;)V diff --git a/common/api/common.klib.api b/common/api/common.klib.api index fe35937c226..0e61aef3ec7 100644 --- a/common/api/common.klib.api +++ b/common/api/common.klib.api @@ -1701,7 +1701,7 @@ final class dev.kord.common.entity/DiscordChannel { // dev.kord.common.entity/Di } final class dev.kord.common.entity/DiscordChatComponent : dev.kord.common.entity/DiscordComponent { // dev.kord.common.entity/DiscordChatComponent|null[0] - constructor (dev.kord.common.entity/ComponentType, dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/OptionalBoolean = ..., dev.kord.common.entity.optional/Optional> = ..., dev.kord.common.entity.optional/Optional> = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional> = ..., dev.kord.common.entity.optional/OptionalInt = ..., dev.kord.common.entity.optional/OptionalInt = ..., dev.kord.common.entity.optional/OptionalInt = ..., dev.kord.common.entity.optional/OptionalInt = ..., dev.kord.common.entity.optional/OptionalBoolean = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional> = ...) // dev.kord.common.entity/DiscordChatComponent.|(dev.kord.common.entity.ComponentType;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.OptionalBoolean;dev.kord.common.entity.optional.Optional>;dev.kord.common.entity.optional.Optional>;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional>;dev.kord.common.entity.optional.OptionalInt;dev.kord.common.entity.optional.OptionalInt;dev.kord.common.entity.optional.OptionalInt;dev.kord.common.entity.optional.OptionalInt;dev.kord.common.entity.optional.OptionalBoolean;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional>){}[0] + constructor (dev.kord.common.entity/ComponentType, dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/OptionalBoolean = ..., dev.kord.common.entity.optional/Optional> = ..., dev.kord.common.entity.optional/Optional> = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional> = ..., dev.kord.common.entity.optional/OptionalInt = ..., dev.kord.common.entity.optional/OptionalInt = ..., dev.kord.common.entity.optional/OptionalInt = ..., dev.kord.common.entity.optional/OptionalInt = ..., dev.kord.common.entity.optional/OptionalBoolean = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional> = ..., dev.kord.common.entity.optional/OptionalSnowflake = ...) // dev.kord.common.entity/DiscordChatComponent.|(dev.kord.common.entity.ComponentType;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.OptionalBoolean;dev.kord.common.entity.optional.Optional>;dev.kord.common.entity.optional.Optional>;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional>;dev.kord.common.entity.optional.OptionalInt;dev.kord.common.entity.optional.OptionalInt;dev.kord.common.entity.optional.OptionalInt;dev.kord.common.entity.optional.OptionalInt;dev.kord.common.entity.optional.OptionalBoolean;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional>;dev.kord.common.entity.optional.OptionalSnowflake){}[0] final val channelTypes // dev.kord.common.entity/DiscordChatComponent.channelTypes|{}channelTypes[0] final fun (): dev.kord.common.entity.optional/Optional> // dev.kord.common.entity/DiscordChatComponent.channelTypes.|(){}[0] @@ -1731,6 +1731,8 @@ final class dev.kord.common.entity/DiscordChatComponent : dev.kord.common.entity final fun (): dev.kord.common.entity.optional/Optional // dev.kord.common.entity/DiscordChatComponent.placeholder.|(){}[0] final val required // dev.kord.common.entity/DiscordChatComponent.required|{}required[0] final fun (): dev.kord.common.entity.optional/OptionalBoolean // dev.kord.common.entity/DiscordChatComponent.required.|(){}[0] + final val skuId // dev.kord.common.entity/DiscordChatComponent.skuId|{}skuId[0] + final fun (): dev.kord.common.entity.optional/OptionalSnowflake // dev.kord.common.entity/DiscordChatComponent.skuId.|(){}[0] final val style // dev.kord.common.entity/DiscordChatComponent.style|{}style[0] final fun (): dev.kord.common.entity.optional/Optional // dev.kord.common.entity/DiscordChatComponent.style.|(){}[0] final val type // dev.kord.common.entity/DiscordChatComponent.type|{}type[0] @@ -1750,6 +1752,7 @@ final class dev.kord.common.entity/DiscordChatComponent : dev.kord.common.entity final fun component16(): dev.kord.common.entity.optional/OptionalBoolean // dev.kord.common.entity/DiscordChatComponent.component16|component16(){}[0] final fun component17(): dev.kord.common.entity.optional/Optional // dev.kord.common.entity/DiscordChatComponent.component17|component17(){}[0] final fun component18(): dev.kord.common.entity.optional/Optional> // dev.kord.common.entity/DiscordChatComponent.component18|component18(){}[0] + final fun component19(): dev.kord.common.entity.optional/OptionalSnowflake // dev.kord.common.entity/DiscordChatComponent.component19|component19(){}[0] final fun component2(): dev.kord.common.entity.optional/Optional // dev.kord.common.entity/DiscordChatComponent.component2|component2(){}[0] final fun component3(): dev.kord.common.entity.optional/Optional // dev.kord.common.entity/DiscordChatComponent.component3|component3(){}[0] final fun component4(): dev.kord.common.entity.optional/Optional // dev.kord.common.entity/DiscordChatComponent.component4|component4(){}[0] @@ -1758,7 +1761,7 @@ final class dev.kord.common.entity/DiscordChatComponent : dev.kord.common.entity final fun component7(): dev.kord.common.entity.optional/OptionalBoolean // dev.kord.common.entity/DiscordChatComponent.component7|component7(){}[0] final fun component8(): dev.kord.common.entity.optional/Optional> // dev.kord.common.entity/DiscordChatComponent.component8|component8(){}[0] final fun component9(): dev.kord.common.entity.optional/Optional> // dev.kord.common.entity/DiscordChatComponent.component9|component9(){}[0] - final fun copy(dev.kord.common.entity/ComponentType = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/OptionalBoolean = ..., dev.kord.common.entity.optional/Optional> = ..., dev.kord.common.entity.optional/Optional> = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional> = ..., dev.kord.common.entity.optional/OptionalInt = ..., dev.kord.common.entity.optional/OptionalInt = ..., dev.kord.common.entity.optional/OptionalInt = ..., dev.kord.common.entity.optional/OptionalInt = ..., dev.kord.common.entity.optional/OptionalBoolean = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional> = ...): dev.kord.common.entity/DiscordChatComponent // dev.kord.common.entity/DiscordChatComponent.copy|copy(dev.kord.common.entity.ComponentType;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.OptionalBoolean;dev.kord.common.entity.optional.Optional>;dev.kord.common.entity.optional.Optional>;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional>;dev.kord.common.entity.optional.OptionalInt;dev.kord.common.entity.optional.OptionalInt;dev.kord.common.entity.optional.OptionalInt;dev.kord.common.entity.optional.OptionalInt;dev.kord.common.entity.optional.OptionalBoolean;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional>){}[0] + final fun copy(dev.kord.common.entity/ComponentType = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/OptionalBoolean = ..., dev.kord.common.entity.optional/Optional> = ..., dev.kord.common.entity.optional/Optional> = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional> = ..., dev.kord.common.entity.optional/OptionalInt = ..., dev.kord.common.entity.optional/OptionalInt = ..., dev.kord.common.entity.optional/OptionalInt = ..., dev.kord.common.entity.optional/OptionalInt = ..., dev.kord.common.entity.optional/OptionalBoolean = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional> = ..., dev.kord.common.entity.optional/OptionalSnowflake = ...): dev.kord.common.entity/DiscordChatComponent // dev.kord.common.entity/DiscordChatComponent.copy|copy(dev.kord.common.entity.ComponentType;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.OptionalBoolean;dev.kord.common.entity.optional.Optional>;dev.kord.common.entity.optional.Optional>;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional>;dev.kord.common.entity.optional.OptionalInt;dev.kord.common.entity.optional.OptionalInt;dev.kord.common.entity.optional.OptionalInt;dev.kord.common.entity.optional.OptionalInt;dev.kord.common.entity.optional.OptionalBoolean;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional>;dev.kord.common.entity.optional.OptionalSnowflake){}[0] final fun equals(kotlin/Any?): kotlin/Boolean // dev.kord.common.entity/DiscordChatComponent.equals|equals(kotlin.Any?){}[0] final fun hashCode(): kotlin/Int // dev.kord.common.entity/DiscordChatComponent.hashCode|hashCode(){}[0] final fun toString(): kotlin/String // dev.kord.common.entity/DiscordChatComponent.toString|toString(){}[0] @@ -2249,6 +2252,61 @@ final class dev.kord.common.entity/DiscordEmoji { // dev.kord.common.entity/Disc } } +final class dev.kord.common.entity/DiscordEntitlement { // dev.kord.common.entity/DiscordEntitlement|null[0] + constructor (dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake, dev.kord.common.entity.optional/OptionalSnowflake = ..., dev.kord.common.entity/EntitlementType, kotlin/Boolean, dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/OptionalSnowflake = ..., dev.kord.common.entity.optional/OptionalBoolean = ...) // dev.kord.common.entity/DiscordEntitlement.|(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;dev.kord.common.entity.optional.OptionalSnowflake;dev.kord.common.entity.EntitlementType;kotlin.Boolean;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.OptionalSnowflake;dev.kord.common.entity.optional.OptionalBoolean){}[0] + + final val applicationId // dev.kord.common.entity/DiscordEntitlement.applicationId|{}applicationId[0] + final fun (): dev.kord.common.entity/Snowflake // dev.kord.common.entity/DiscordEntitlement.applicationId.|(){}[0] + final val consumed // dev.kord.common.entity/DiscordEntitlement.consumed|{}consumed[0] + final fun (): dev.kord.common.entity.optional/OptionalBoolean // dev.kord.common.entity/DiscordEntitlement.consumed.|(){}[0] + final val deleted // dev.kord.common.entity/DiscordEntitlement.deleted|{}deleted[0] + final fun (): kotlin/Boolean // dev.kord.common.entity/DiscordEntitlement.deleted.|(){}[0] + final val endsAt // dev.kord.common.entity/DiscordEntitlement.endsAt|{}endsAt[0] + final fun (): dev.kord.common.entity.optional/Optional // dev.kord.common.entity/DiscordEntitlement.endsAt.|(){}[0] + final val guildId // dev.kord.common.entity/DiscordEntitlement.guildId|{}guildId[0] + final fun (): dev.kord.common.entity.optional/OptionalSnowflake // dev.kord.common.entity/DiscordEntitlement.guildId.|(){}[0] + final val id // dev.kord.common.entity/DiscordEntitlement.id|{}id[0] + final fun (): dev.kord.common.entity/Snowflake // dev.kord.common.entity/DiscordEntitlement.id.|(){}[0] + final val skuId // dev.kord.common.entity/DiscordEntitlement.skuId|{}skuId[0] + final fun (): dev.kord.common.entity/Snowflake // dev.kord.common.entity/DiscordEntitlement.skuId.|(){}[0] + final val startsAt // dev.kord.common.entity/DiscordEntitlement.startsAt|{}startsAt[0] + final fun (): dev.kord.common.entity.optional/Optional // dev.kord.common.entity/DiscordEntitlement.startsAt.|(){}[0] + final val type // dev.kord.common.entity/DiscordEntitlement.type|{}type[0] + final fun (): dev.kord.common.entity/EntitlementType // dev.kord.common.entity/DiscordEntitlement.type.|(){}[0] + final val userId // dev.kord.common.entity/DiscordEntitlement.userId|{}userId[0] + final fun (): dev.kord.common.entity.optional/OptionalSnowflake // dev.kord.common.entity/DiscordEntitlement.userId.|(){}[0] + + final fun component1(): dev.kord.common.entity/Snowflake // dev.kord.common.entity/DiscordEntitlement.component1|component1(){}[0] + final fun component10(): dev.kord.common.entity.optional/OptionalBoolean // dev.kord.common.entity/DiscordEntitlement.component10|component10(){}[0] + final fun component2(): dev.kord.common.entity/Snowflake // dev.kord.common.entity/DiscordEntitlement.component2|component2(){}[0] + final fun component3(): dev.kord.common.entity/Snowflake // dev.kord.common.entity/DiscordEntitlement.component3|component3(){}[0] + final fun component4(): dev.kord.common.entity.optional/OptionalSnowflake // dev.kord.common.entity/DiscordEntitlement.component4|component4(){}[0] + final fun component5(): dev.kord.common.entity/EntitlementType // dev.kord.common.entity/DiscordEntitlement.component5|component5(){}[0] + final fun component6(): kotlin/Boolean // dev.kord.common.entity/DiscordEntitlement.component6|component6(){}[0] + final fun component7(): dev.kord.common.entity.optional/Optional // dev.kord.common.entity/DiscordEntitlement.component7|component7(){}[0] + final fun component8(): dev.kord.common.entity.optional/Optional // dev.kord.common.entity/DiscordEntitlement.component8|component8(){}[0] + final fun component9(): dev.kord.common.entity.optional/OptionalSnowflake // dev.kord.common.entity/DiscordEntitlement.component9|component9(){}[0] + final fun copy(dev.kord.common.entity/Snowflake = ..., dev.kord.common.entity/Snowflake = ..., dev.kord.common.entity/Snowflake = ..., dev.kord.common.entity.optional/OptionalSnowflake = ..., dev.kord.common.entity/EntitlementType = ..., kotlin/Boolean = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/OptionalSnowflake = ..., dev.kord.common.entity.optional/OptionalBoolean = ...): dev.kord.common.entity/DiscordEntitlement // dev.kord.common.entity/DiscordEntitlement.copy|copy(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;dev.kord.common.entity.optional.OptionalSnowflake;dev.kord.common.entity.EntitlementType;kotlin.Boolean;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.OptionalSnowflake;dev.kord.common.entity.optional.OptionalBoolean){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // dev.kord.common.entity/DiscordEntitlement.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // dev.kord.common.entity/DiscordEntitlement.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // dev.kord.common.entity/DiscordEntitlement.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // dev.kord.common.entity/DiscordEntitlement.$serializer|null[0] + final val descriptor // dev.kord.common.entity/DiscordEntitlement.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // dev.kord.common.entity/DiscordEntitlement.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // dev.kord.common.entity/DiscordEntitlement.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): dev.kord.common.entity/DiscordEntitlement // dev.kord.common.entity/DiscordEntitlement.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, dev.kord.common.entity/DiscordEntitlement) // dev.kord.common.entity/DiscordEntitlement.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;dev.kord.common.entity.DiscordEntitlement){}[0] + } + + final object Companion { // dev.kord.common.entity/DiscordEntitlement.Companion|null[0] + final val $childSerializers // dev.kord.common.entity/DiscordEntitlement.Companion.$childSerializers|{}$childSerializers[0] + + final fun serializer(): kotlinx.serialization/KSerializer // dev.kord.common.entity/DiscordEntitlement.Companion.serializer|serializer(){}[0] + } +} + final class dev.kord.common.entity/DiscordGuild { // dev.kord.common.entity/DiscordGuild|null[0] constructor (dev.kord.common.entity/Snowflake, kotlin/String, kotlin/String?, dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/OptionalBoolean = ..., dev.kord.common.entity/Snowflake, dev.kord.common.entity.optional/Optional = ..., kotlin/String, dev.kord.common.entity/Snowflake?, kotlin.time/Duration, dev.kord.common.entity.optional/OptionalBoolean = ..., dev.kord.common.entity.optional/OptionalSnowflake? = ..., dev.kord.common.entity/VerificationLevel, dev.kord.common.entity/DefaultMessageNotificationLevel, dev.kord.common.entity/ExplicitContentFilter, kotlin.collections/List, kotlin.collections/List, kotlin.collections/List, dev.kord.common.entity/MFALevel, dev.kord.common.entity/Snowflake?, dev.kord.common.entity/Snowflake?, dev.kord.common.entity/SystemChannelFlags, dev.kord.common.entity/Snowflake?, dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/OptionalBoolean = ..., dev.kord.common.entity.optional/OptionalBoolean = ..., dev.kord.common.entity.optional/OptionalInt = ..., dev.kord.common.entity.optional/Optional> = ..., dev.kord.common.entity.optional/Optional> = ..., dev.kord.common.entity.optional/Optional> = ..., dev.kord.common.entity.optional/Optional> = ..., dev.kord.common.entity.optional/Optional> = ..., dev.kord.common.entity.optional/OptionalInt? = ..., dev.kord.common.entity.optional/OptionalInt = ..., kotlin/String?, kotlin/String?, kotlin/String?, dev.kord.common.entity/PremiumTier, dev.kord.common.entity.optional/OptionalInt = ..., kotlin/String, dev.kord.common.entity/Snowflake?, dev.kord.common.entity.optional/OptionalInt = ..., dev.kord.common.entity.optional/OptionalInt = ..., dev.kord.common.entity.optional/OptionalInt = ..., dev.kord.common.entity.optional/OptionalInt = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity/NsfwLevel, dev.kord.common.entity.optional/Optional> = ..., dev.kord.common.entity.optional/Optional> = ..., dev.kord.common.entity.optional/Optional> = ..., kotlin/Boolean, dev.kord.common.entity/Snowflake?) // dev.kord.common.entity/DiscordGuild.|(dev.kord.common.entity.Snowflake;kotlin.String;kotlin.String?;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.OptionalBoolean;dev.kord.common.entity.Snowflake;dev.kord.common.entity.optional.Optional;kotlin.String;dev.kord.common.entity.Snowflake?;kotlin.time.Duration;dev.kord.common.entity.optional.OptionalBoolean;dev.kord.common.entity.optional.OptionalSnowflake?;dev.kord.common.entity.VerificationLevel;dev.kord.common.entity.DefaultMessageNotificationLevel;dev.kord.common.entity.ExplicitContentFilter;kotlin.collections.List;kotlin.collections.List;kotlin.collections.List;dev.kord.common.entity.MFALevel;dev.kord.common.entity.Snowflake?;dev.kord.common.entity.Snowflake?;dev.kord.common.entity.SystemChannelFlags;dev.kord.common.entity.Snowflake?;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.OptionalBoolean;dev.kord.common.entity.optional.OptionalBoolean;dev.kord.common.entity.optional.OptionalInt;dev.kord.common.entity.optional.Optional>;dev.kord.common.entity.optional.Optional>;dev.kord.common.entity.optional.Optional>;dev.kord.common.entity.optional.Optional>;dev.kord.common.entity.optional.Optional>;dev.kord.common.entity.optional.OptionalInt?;dev.kord.common.entity.optional.OptionalInt;kotlin.String?;kotlin.String?;kotlin.String?;dev.kord.common.entity.PremiumTier;dev.kord.common.entity.optional.OptionalInt;kotlin.String;dev.kord.common.entity.Snowflake?;dev.kord.common.entity.optional.OptionalInt;dev.kord.common.entity.optional.OptionalInt;dev.kord.common.entity.optional.OptionalInt;dev.kord.common.entity.optional.OptionalInt;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.NsfwLevel;dev.kord.common.entity.optional.Optional>;dev.kord.common.entity.optional.Optional>;dev.kord.common.entity.optional.Optional>;kotlin.Boolean;dev.kord.common.entity.Snowflake?){}[0] @@ -3011,7 +3069,7 @@ final class dev.kord.common.entity/DiscordIntegrationsAccount { // dev.kord.comm } final class dev.kord.common.entity/DiscordInteraction { // dev.kord.common.entity/DiscordInteraction|null[0] - constructor (dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake, dev.kord.common.entity/InteractionType, dev.kord.common.entity/InteractionCallbackData, dev.kord.common.entity.optional/OptionalSnowflake = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/OptionalSnowflake = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., kotlin/String, kotlin/Int, dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ...) // dev.kord.common.entity/DiscordInteraction.|(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;dev.kord.common.entity.InteractionType;dev.kord.common.entity.InteractionCallbackData;dev.kord.common.entity.optional.OptionalSnowflake;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.OptionalSnowflake;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;kotlin.String;kotlin.Int;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional){}[0] + constructor (dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake, dev.kord.common.entity/InteractionType, dev.kord.common.entity/InteractionCallbackData, dev.kord.common.entity.optional/OptionalSnowflake = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/OptionalSnowflake = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., kotlin/String, kotlin/Int, dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional> = ...) // dev.kord.common.entity/DiscordInteraction.|(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;dev.kord.common.entity.InteractionType;dev.kord.common.entity.InteractionCallbackData;dev.kord.common.entity.optional.OptionalSnowflake;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.OptionalSnowflake;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;kotlin.String;kotlin.Int;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional>){}[0] final val appPermissions // dev.kord.common.entity/DiscordInteraction.appPermissions|{}appPermissions[0] final fun (): dev.kord.common.entity.optional/Optional // dev.kord.common.entity/DiscordInteraction.appPermissions.|(){}[0] @@ -3023,6 +3081,8 @@ final class dev.kord.common.entity/DiscordInteraction { // dev.kord.common.entit final fun (): dev.kord.common.entity.optional/OptionalSnowflake // dev.kord.common.entity/DiscordInteraction.channelId.|(){}[0] final val data // dev.kord.common.entity/DiscordInteraction.data|{}data[0] final fun (): dev.kord.common.entity/InteractionCallbackData // dev.kord.common.entity/DiscordInteraction.data.|(){}[0] + final val entitlements // dev.kord.common.entity/DiscordInteraction.entitlements|{}entitlements[0] + final fun (): dev.kord.common.entity.optional/Optional> // dev.kord.common.entity/DiscordInteraction.entitlements.|(){}[0] final val guildId // dev.kord.common.entity/DiscordInteraction.guildId|{}guildId[0] final fun (): dev.kord.common.entity.optional/OptionalSnowflake // dev.kord.common.entity/DiscordInteraction.guildId.|(){}[0] final val guildLocale // dev.kord.common.entity/DiscordInteraction.guildLocale|{}guildLocale[0] @@ -3051,6 +3111,7 @@ final class dev.kord.common.entity/DiscordInteraction { // dev.kord.common.entit final fun component13(): dev.kord.common.entity.optional/Optional // dev.kord.common.entity/DiscordInteraction.component13|component13(){}[0] final fun component14(): dev.kord.common.entity.optional/Optional // dev.kord.common.entity/DiscordInteraction.component14|component14(){}[0] final fun component15(): dev.kord.common.entity.optional/Optional // dev.kord.common.entity/DiscordInteraction.component15|component15(){}[0] + final fun component16(): dev.kord.common.entity.optional/Optional> // dev.kord.common.entity/DiscordInteraction.component16|component16(){}[0] final fun component2(): dev.kord.common.entity/Snowflake // dev.kord.common.entity/DiscordInteraction.component2|component2(){}[0] final fun component3(): dev.kord.common.entity/InteractionType // dev.kord.common.entity/DiscordInteraction.component3|component3(){}[0] final fun component4(): dev.kord.common.entity/InteractionCallbackData // dev.kord.common.entity/DiscordInteraction.component4|component4(){}[0] @@ -3059,7 +3120,7 @@ final class dev.kord.common.entity/DiscordInteraction { // dev.kord.common.entit final fun component7(): dev.kord.common.entity.optional/OptionalSnowflake // dev.kord.common.entity/DiscordInteraction.component7|component7(){}[0] final fun component8(): dev.kord.common.entity.optional/Optional // dev.kord.common.entity/DiscordInteraction.component8|component8(){}[0] final fun component9(): dev.kord.common.entity.optional/Optional // dev.kord.common.entity/DiscordInteraction.component9|component9(){}[0] - final fun copy(dev.kord.common.entity/Snowflake = ..., dev.kord.common.entity/Snowflake = ..., dev.kord.common.entity/InteractionType = ..., dev.kord.common.entity/InteractionCallbackData = ..., dev.kord.common.entity.optional/OptionalSnowflake = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/OptionalSnowflake = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., kotlin/String = ..., kotlin/Int = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ...): dev.kord.common.entity/DiscordInteraction // dev.kord.common.entity/DiscordInteraction.copy|copy(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;dev.kord.common.entity.InteractionType;dev.kord.common.entity.InteractionCallbackData;dev.kord.common.entity.optional.OptionalSnowflake;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.OptionalSnowflake;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;kotlin.String;kotlin.Int;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional){}[0] + final fun copy(dev.kord.common.entity/Snowflake = ..., dev.kord.common.entity/Snowflake = ..., dev.kord.common.entity/InteractionType = ..., dev.kord.common.entity/InteractionCallbackData = ..., dev.kord.common.entity.optional/OptionalSnowflake = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/OptionalSnowflake = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., kotlin/String = ..., kotlin/Int = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional> = ...): dev.kord.common.entity/DiscordInteraction // dev.kord.common.entity/DiscordInteraction.copy|copy(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;dev.kord.common.entity.InteractionType;dev.kord.common.entity.InteractionCallbackData;dev.kord.common.entity.optional.OptionalSnowflake;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.OptionalSnowflake;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;kotlin.String;kotlin.Int;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional>){}[0] final fun equals(kotlin/Any?): kotlin/Boolean // dev.kord.common.entity/DiscordInteraction.equals|equals(kotlin.Any?){}[0] final fun hashCode(): kotlin/Int // dev.kord.common.entity/DiscordInteraction.hashCode|hashCode(){}[0] final fun toString(): kotlin/String // dev.kord.common.entity/DiscordInteraction.toString|toString(){}[0] @@ -4490,6 +4551,47 @@ final class dev.kord.common.entity/DiscordShard { // dev.kord.common.entity/Disc } } +final class dev.kord.common.entity/DiscordSku { // dev.kord.common.entity/DiscordSku|null[0] + constructor (dev.kord.common.entity/Snowflake, dev.kord.common.entity/SkuType, dev.kord.common.entity/Snowflake, kotlin/String, kotlin/String, dev.kord.common.entity/SkuFlags) // dev.kord.common.entity/DiscordSku.|(dev.kord.common.entity.Snowflake;dev.kord.common.entity.SkuType;dev.kord.common.entity.Snowflake;kotlin.String;kotlin.String;dev.kord.common.entity.SkuFlags){}[0] + + final val applicationId // dev.kord.common.entity/DiscordSku.applicationId|{}applicationId[0] + final fun (): dev.kord.common.entity/Snowflake // dev.kord.common.entity/DiscordSku.applicationId.|(){}[0] + final val flags // dev.kord.common.entity/DiscordSku.flags|{}flags[0] + final fun (): dev.kord.common.entity/SkuFlags // dev.kord.common.entity/DiscordSku.flags.|(){}[0] + final val id // dev.kord.common.entity/DiscordSku.id|{}id[0] + final fun (): dev.kord.common.entity/Snowflake // dev.kord.common.entity/DiscordSku.id.|(){}[0] + final val name // dev.kord.common.entity/DiscordSku.name|{}name[0] + final fun (): kotlin/String // dev.kord.common.entity/DiscordSku.name.|(){}[0] + final val slug // dev.kord.common.entity/DiscordSku.slug|{}slug[0] + final fun (): kotlin/String // dev.kord.common.entity/DiscordSku.slug.|(){}[0] + final val type // dev.kord.common.entity/DiscordSku.type|{}type[0] + final fun (): dev.kord.common.entity/SkuType // dev.kord.common.entity/DiscordSku.type.|(){}[0] + + final fun component1(): dev.kord.common.entity/Snowflake // dev.kord.common.entity/DiscordSku.component1|component1(){}[0] + final fun component2(): dev.kord.common.entity/SkuType // dev.kord.common.entity/DiscordSku.component2|component2(){}[0] + final fun component3(): dev.kord.common.entity/Snowflake // dev.kord.common.entity/DiscordSku.component3|component3(){}[0] + final fun component4(): kotlin/String // dev.kord.common.entity/DiscordSku.component4|component4(){}[0] + final fun component5(): kotlin/String // dev.kord.common.entity/DiscordSku.component5|component5(){}[0] + final fun component6(): dev.kord.common.entity/SkuFlags // dev.kord.common.entity/DiscordSku.component6|component6(){}[0] + final fun copy(dev.kord.common.entity/Snowflake = ..., dev.kord.common.entity/SkuType = ..., dev.kord.common.entity/Snowflake = ..., kotlin/String = ..., kotlin/String = ..., dev.kord.common.entity/SkuFlags = ...): dev.kord.common.entity/DiscordSku // dev.kord.common.entity/DiscordSku.copy|copy(dev.kord.common.entity.Snowflake;dev.kord.common.entity.SkuType;dev.kord.common.entity.Snowflake;kotlin.String;kotlin.String;dev.kord.common.entity.SkuFlags){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // dev.kord.common.entity/DiscordSku.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // dev.kord.common.entity/DiscordSku.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // dev.kord.common.entity/DiscordSku.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // dev.kord.common.entity/DiscordSku.$serializer|null[0] + final val descriptor // dev.kord.common.entity/DiscordSku.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // dev.kord.common.entity/DiscordSku.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // dev.kord.common.entity/DiscordSku.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): dev.kord.common.entity/DiscordSku // dev.kord.common.entity/DiscordSku.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, dev.kord.common.entity/DiscordSku) // dev.kord.common.entity/DiscordSku.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;dev.kord.common.entity.DiscordSku){}[0] + } + + final object Companion { // dev.kord.common.entity/DiscordSku.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // dev.kord.common.entity/DiscordSku.Companion.serializer|serializer(){}[0] + } +} + final class dev.kord.common.entity/DiscordStageInstance { // dev.kord.common.entity/DiscordStageInstance|null[0] constructor (dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake, kotlin/String, dev.kord.common.entity/StageInstancePrivacyLevel, kotlin/Boolean, dev.kord.common.entity/Snowflake?) // dev.kord.common.entity/DiscordStageInstance.|(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;kotlin.String;dev.kord.common.entity.StageInstancePrivacyLevel;kotlin.Boolean;dev.kord.common.entity.Snowflake?){}[0] @@ -4612,6 +4714,58 @@ final class dev.kord.common.entity/DiscordStickerPack { // dev.kord.common.entit } } +final class dev.kord.common.entity/DiscordSubscription { // dev.kord.common.entity/DiscordSubscription|null[0] + constructor (dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake, kotlin.collections/List, kotlin.collections/List, kotlinx.datetime/Instant, kotlinx.datetime/Instant, dev.kord.common.entity/SubscriptionStatus, kotlinx.datetime/Instant?, dev.kord.common.entity.optional/Optional = ...) // dev.kord.common.entity/DiscordSubscription.|(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;kotlin.collections.List;kotlin.collections.List;kotlinx.datetime.Instant;kotlinx.datetime.Instant;dev.kord.common.entity.SubscriptionStatus;kotlinx.datetime.Instant?;dev.kord.common.entity.optional.Optional){}[0] + + final val canceledAt // dev.kord.common.entity/DiscordSubscription.canceledAt|{}canceledAt[0] + final fun (): kotlinx.datetime/Instant? // dev.kord.common.entity/DiscordSubscription.canceledAt.|(){}[0] + final val country // dev.kord.common.entity/DiscordSubscription.country|{}country[0] + final fun (): dev.kord.common.entity.optional/Optional // dev.kord.common.entity/DiscordSubscription.country.|(){}[0] + final val currentPeriodEnd // dev.kord.common.entity/DiscordSubscription.currentPeriodEnd|{}currentPeriodEnd[0] + final fun (): kotlinx.datetime/Instant // dev.kord.common.entity/DiscordSubscription.currentPeriodEnd.|(){}[0] + final val currentPeriodStart // dev.kord.common.entity/DiscordSubscription.currentPeriodStart|{}currentPeriodStart[0] + final fun (): kotlinx.datetime/Instant // dev.kord.common.entity/DiscordSubscription.currentPeriodStart.|(){}[0] + final val entitlementIds // dev.kord.common.entity/DiscordSubscription.entitlementIds|{}entitlementIds[0] + final fun (): kotlin.collections/List // dev.kord.common.entity/DiscordSubscription.entitlementIds.|(){}[0] + final val id // dev.kord.common.entity/DiscordSubscription.id|{}id[0] + final fun (): dev.kord.common.entity/Snowflake // dev.kord.common.entity/DiscordSubscription.id.|(){}[0] + final val skuIds // dev.kord.common.entity/DiscordSubscription.skuIds|{}skuIds[0] + final fun (): kotlin.collections/List // dev.kord.common.entity/DiscordSubscription.skuIds.|(){}[0] + final val status // dev.kord.common.entity/DiscordSubscription.status|{}status[0] + final fun (): dev.kord.common.entity/SubscriptionStatus // dev.kord.common.entity/DiscordSubscription.status.|(){}[0] + final val userId // dev.kord.common.entity/DiscordSubscription.userId|{}userId[0] + final fun (): dev.kord.common.entity/Snowflake // dev.kord.common.entity/DiscordSubscription.userId.|(){}[0] + + final fun component1(): dev.kord.common.entity/Snowflake // dev.kord.common.entity/DiscordSubscription.component1|component1(){}[0] + final fun component2(): dev.kord.common.entity/Snowflake // dev.kord.common.entity/DiscordSubscription.component2|component2(){}[0] + final fun component3(): kotlin.collections/List // dev.kord.common.entity/DiscordSubscription.component3|component3(){}[0] + final fun component4(): kotlin.collections/List // dev.kord.common.entity/DiscordSubscription.component4|component4(){}[0] + final fun component5(): kotlinx.datetime/Instant // dev.kord.common.entity/DiscordSubscription.component5|component5(){}[0] + final fun component6(): kotlinx.datetime/Instant // dev.kord.common.entity/DiscordSubscription.component6|component6(){}[0] + final fun component7(): dev.kord.common.entity/SubscriptionStatus // dev.kord.common.entity/DiscordSubscription.component7|component7(){}[0] + final fun component8(): kotlinx.datetime/Instant? // dev.kord.common.entity/DiscordSubscription.component8|component8(){}[0] + final fun component9(): dev.kord.common.entity.optional/Optional // dev.kord.common.entity/DiscordSubscription.component9|component9(){}[0] + final fun copy(dev.kord.common.entity/Snowflake = ..., dev.kord.common.entity/Snowflake = ..., kotlin.collections/List = ..., kotlin.collections/List = ..., kotlinx.datetime/Instant = ..., kotlinx.datetime/Instant = ..., dev.kord.common.entity/SubscriptionStatus = ..., kotlinx.datetime/Instant? = ..., dev.kord.common.entity.optional/Optional = ...): dev.kord.common.entity/DiscordSubscription // dev.kord.common.entity/DiscordSubscription.copy|copy(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;kotlin.collections.List;kotlin.collections.List;kotlinx.datetime.Instant;kotlinx.datetime.Instant;dev.kord.common.entity.SubscriptionStatus;kotlinx.datetime.Instant?;dev.kord.common.entity.optional.Optional){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // dev.kord.common.entity/DiscordSubscription.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // dev.kord.common.entity/DiscordSubscription.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // dev.kord.common.entity/DiscordSubscription.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // dev.kord.common.entity/DiscordSubscription.$serializer|null[0] + final val descriptor // dev.kord.common.entity/DiscordSubscription.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // dev.kord.common.entity/DiscordSubscription.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // dev.kord.common.entity/DiscordSubscription.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): dev.kord.common.entity/DiscordSubscription // dev.kord.common.entity/DiscordSubscription.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, dev.kord.common.entity/DiscordSubscription) // dev.kord.common.entity/DiscordSubscription.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;dev.kord.common.entity.DiscordSubscription){}[0] + } + + final object Companion { // dev.kord.common.entity/DiscordSubscription.Companion|null[0] + final val $childSerializers // dev.kord.common.entity/DiscordSubscription.Companion.$childSerializers|{}$childSerializers[0] + + final fun serializer(): kotlinx.serialization/KSerializer // dev.kord.common.entity/DiscordSubscription.Companion.serializer|serializer(){}[0] + } +} + final class dev.kord.common.entity/DiscordTeam { // dev.kord.common.entity/DiscordTeam|null[0] constructor (kotlin/String?, dev.kord.common.entity/Snowflake, kotlin.collections/List, kotlin/String, dev.kord.common.entity/Snowflake) // dev.kord.common.entity/DiscordTeam.|(kotlin.String?;dev.kord.common.entity.Snowflake;kotlin.collections.List;kotlin.String;dev.kord.common.entity.Snowflake){}[0] @@ -6043,6 +6197,38 @@ final class dev.kord.common.entity/RoleSubscription { // dev.kord.common.entity/ } } +final class dev.kord.common.entity/SkuFlags { // dev.kord.common.entity/SkuFlags|null[0] + final val value // dev.kord.common.entity/SkuFlags.value|{}value[0] + final fun (): kotlin/Int // dev.kord.common.entity/SkuFlags.value.|(){}[0] + final val values // dev.kord.common.entity/SkuFlags.values|{}values[0] + final fun (): kotlin.collections/Set // dev.kord.common.entity/SkuFlags.values.|(){}[0] + + final fun contains(dev.kord.common.entity/SkuFlag): kotlin/Boolean // dev.kord.common.entity/SkuFlags.contains|contains(dev.kord.common.entity.SkuFlag){}[0] + final fun contains(dev.kord.common.entity/SkuFlags): kotlin/Boolean // dev.kord.common.entity/SkuFlags.contains|contains(dev.kord.common.entity.SkuFlags){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // dev.kord.common.entity/SkuFlags.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // dev.kord.common.entity/SkuFlags.hashCode|hashCode(){}[0] + final fun minus(dev.kord.common.entity/SkuFlag): dev.kord.common.entity/SkuFlags // dev.kord.common.entity/SkuFlags.minus|minus(dev.kord.common.entity.SkuFlag){}[0] + final fun minus(dev.kord.common.entity/SkuFlags): dev.kord.common.entity/SkuFlags // dev.kord.common.entity/SkuFlags.minus|minus(dev.kord.common.entity.SkuFlags){}[0] + final fun plus(dev.kord.common.entity/SkuFlag): dev.kord.common.entity/SkuFlags // dev.kord.common.entity/SkuFlags.plus|plus(dev.kord.common.entity.SkuFlag){}[0] + final fun plus(dev.kord.common.entity/SkuFlags): dev.kord.common.entity/SkuFlags // dev.kord.common.entity/SkuFlags.plus|plus(dev.kord.common.entity.SkuFlags){}[0] + final fun toString(): kotlin/String // dev.kord.common.entity/SkuFlags.toString|toString(){}[0] + final inline fun copy(kotlin/Function1): dev.kord.common.entity/SkuFlags // dev.kord.common.entity/SkuFlags.copy|copy(kotlin.Function1){}[0] + + final class Builder { // dev.kord.common.entity/SkuFlags.Builder|null[0] + constructor (kotlin/Int = ...) // dev.kord.common.entity/SkuFlags.Builder.|(kotlin.Int){}[0] + + final fun (dev.kord.common.entity/SkuFlag).unaryMinus() // dev.kord.common.entity/SkuFlags.Builder.unaryMinus|unaryMinus@dev.kord.common.entity.SkuFlag(){}[0] + final fun (dev.kord.common.entity/SkuFlag).unaryPlus() // dev.kord.common.entity/SkuFlags.Builder.unaryPlus|unaryPlus@dev.kord.common.entity.SkuFlag(){}[0] + final fun (dev.kord.common.entity/SkuFlags).unaryMinus() // dev.kord.common.entity/SkuFlags.Builder.unaryMinus|unaryMinus@dev.kord.common.entity.SkuFlags(){}[0] + final fun (dev.kord.common.entity/SkuFlags).unaryPlus() // dev.kord.common.entity/SkuFlags.Builder.unaryPlus|unaryPlus@dev.kord.common.entity.SkuFlags(){}[0] + final fun build(): dev.kord.common.entity/SkuFlags // dev.kord.common.entity/SkuFlags.Builder.build|build(){}[0] + } + + final object Companion { // dev.kord.common.entity/SkuFlags.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // dev.kord.common.entity/SkuFlags.Companion.serializer|serializer(){}[0] + } +} + final class dev.kord.common.entity/Snowflake : kotlin/Comparable { // dev.kord.common.entity/Snowflake|null[0] constructor (kotlin/String) // dev.kord.common.entity/Snowflake.|(kotlin.String){}[0] constructor (kotlin/ULong) // dev.kord.common.entity/Snowflake.|(kotlin.ULong){}[0] @@ -7439,6 +7625,8 @@ sealed class dev.kord.common.entity/ButtonStyle { // dev.kord.common.entity/Butt final object Link : dev.kord.common.entity/ButtonStyle // dev.kord.common.entity/ButtonStyle.Link|null[0] + final object Premium : dev.kord.common.entity/ButtonStyle // dev.kord.common.entity/ButtonStyle.Premium|null[0] + final object Primary : dev.kord.common.entity/ButtonStyle // dev.kord.common.entity/ButtonStyle.Primary|null[0] final object Secondary : dev.kord.common.entity/ButtonStyle // dev.kord.common.entity/ButtonStyle.Secondary|null[0] @@ -7742,6 +7930,64 @@ sealed class dev.kord.common.entity/EmbedType { // dev.kord.common.entity/EmbedT final object Video : dev.kord.common.entity/EmbedType // dev.kord.common.entity/EmbedType.Video|null[0] } +sealed class dev.kord.common.entity/EntitlementOwnerType { // dev.kord.common.entity/EntitlementOwnerType|null[0] + final val value // dev.kord.common.entity/EntitlementOwnerType.value|{}value[0] + final fun (): kotlin/Int // dev.kord.common.entity/EntitlementOwnerType.value.|(){}[0] + + final fun equals(kotlin/Any?): kotlin/Boolean // dev.kord.common.entity/EntitlementOwnerType.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // dev.kord.common.entity/EntitlementOwnerType.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // dev.kord.common.entity/EntitlementOwnerType.toString|toString(){}[0] + + final class Unknown : dev.kord.common.entity/EntitlementOwnerType // dev.kord.common.entity/EntitlementOwnerType.Unknown|null[0] + + final object Companion { // dev.kord.common.entity/EntitlementOwnerType.Companion|null[0] + final val entries // dev.kord.common.entity/EntitlementOwnerType.Companion.entries|{}entries[0] + final fun (): kotlin.collections/List // dev.kord.common.entity/EntitlementOwnerType.Companion.entries.|(){}[0] + + final fun from(kotlin/Int): dev.kord.common.entity/EntitlementOwnerType // dev.kord.common.entity/EntitlementOwnerType.Companion.from|from(kotlin.Int){}[0] + final fun serializer(): kotlinx.serialization/KSerializer // dev.kord.common.entity/EntitlementOwnerType.Companion.serializer|serializer(){}[0] + } + + final object Guild : dev.kord.common.entity/EntitlementOwnerType // dev.kord.common.entity/EntitlementOwnerType.Guild|null[0] + + final object User : dev.kord.common.entity/EntitlementOwnerType // dev.kord.common.entity/EntitlementOwnerType.User|null[0] +} + +sealed class dev.kord.common.entity/EntitlementType { // dev.kord.common.entity/EntitlementType|null[0] + final val value // dev.kord.common.entity/EntitlementType.value|{}value[0] + final fun (): kotlin/Int // dev.kord.common.entity/EntitlementType.value.|(){}[0] + + final fun equals(kotlin/Any?): kotlin/Boolean // dev.kord.common.entity/EntitlementType.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // dev.kord.common.entity/EntitlementType.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // dev.kord.common.entity/EntitlementType.toString|toString(){}[0] + + final class Unknown : dev.kord.common.entity/EntitlementType // dev.kord.common.entity/EntitlementType.Unknown|null[0] + + final object ApplicationSubscription : dev.kord.common.entity/EntitlementType // dev.kord.common.entity/EntitlementType.ApplicationSubscription|null[0] + + final object Companion { // dev.kord.common.entity/EntitlementType.Companion|null[0] + final val entries // dev.kord.common.entity/EntitlementType.Companion.entries|{}entries[0] + final fun (): kotlin.collections/List // dev.kord.common.entity/EntitlementType.Companion.entries.|(){}[0] + + final fun from(kotlin/Int): dev.kord.common.entity/EntitlementType // dev.kord.common.entity/EntitlementType.Companion.from|from(kotlin.Int){}[0] + final fun serializer(): kotlinx.serialization/KSerializer // dev.kord.common.entity/EntitlementType.Companion.serializer|serializer(){}[0] + } + + final object DeveloperGift : dev.kord.common.entity/EntitlementType // dev.kord.common.entity/EntitlementType.DeveloperGift|null[0] + + final object FreePurchase : dev.kord.common.entity/EntitlementType // dev.kord.common.entity/EntitlementType.FreePurchase|null[0] + + final object PremiumPurchase : dev.kord.common.entity/EntitlementType // dev.kord.common.entity/EntitlementType.PremiumPurchase|null[0] + + final object PremiumSubscription : dev.kord.common.entity/EntitlementType // dev.kord.common.entity/EntitlementType.PremiumSubscription|null[0] + + final object Purchase : dev.kord.common.entity/EntitlementType // dev.kord.common.entity/EntitlementType.Purchase|null[0] + + final object TestModePurchase : dev.kord.common.entity/EntitlementType // dev.kord.common.entity/EntitlementType.TestModePurchase|null[0] + + final object UserGift : dev.kord.common.entity/EntitlementType // dev.kord.common.entity/EntitlementType.UserGift|null[0] +} + sealed class dev.kord.common.entity/ExplicitContentFilter { // dev.kord.common.entity/ExplicitContentFilter|null[0] final val value // dev.kord.common.entity/ExplicitContentFilter.value|{}value[0] final fun (): kotlin/Int // dev.kord.common.entity/ExplicitContentFilter.value.|(){}[0] @@ -8230,6 +8476,8 @@ sealed class dev.kord.common.entity/MessageType { // dev.kord.common.entity/Mess final object InteractionPremiumUpsell : dev.kord.common.entity/MessageType // dev.kord.common.entity/MessageType.InteractionPremiumUpsell|null[0] + final object PurchaseNotification : dev.kord.common.entity/MessageType // dev.kord.common.entity/MessageType.PurchaseNotification|null[0] + final object RecipientAdd : dev.kord.common.entity/MessageType // dev.kord.common.entity/MessageType.RecipientAdd|null[0] final object RecipientRemove : dev.kord.common.entity/MessageType // dev.kord.common.entity/MessageType.RecipientRemove|null[0] @@ -8606,6 +8854,61 @@ sealed class dev.kord.common.entity/SelectDefaultValueType { // dev.kord.common. final object User : dev.kord.common.entity/SelectDefaultValueType // dev.kord.common.entity/SelectDefaultValueType.User|null[0] } +sealed class dev.kord.common.entity/SkuFlag { // dev.kord.common.entity/SkuFlag|null[0] + final val shift // dev.kord.common.entity/SkuFlag.shift|{}shift[0] + final fun (): kotlin/Int // dev.kord.common.entity/SkuFlag.shift.|(){}[0] + final val value // dev.kord.common.entity/SkuFlag.value|{}value[0] + final fun (): kotlin/Int // dev.kord.common.entity/SkuFlag.value.|(){}[0] + + final fun equals(kotlin/Any?): kotlin/Boolean // dev.kord.common.entity/SkuFlag.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // dev.kord.common.entity/SkuFlag.hashCode|hashCode(){}[0] + final fun plus(dev.kord.common.entity/SkuFlag): dev.kord.common.entity/SkuFlags // dev.kord.common.entity/SkuFlag.plus|plus(dev.kord.common.entity.SkuFlag){}[0] + final fun plus(dev.kord.common.entity/SkuFlags): dev.kord.common.entity/SkuFlags // dev.kord.common.entity/SkuFlag.plus|plus(dev.kord.common.entity.SkuFlags){}[0] + final fun toString(): kotlin/String // dev.kord.common.entity/SkuFlag.toString|toString(){}[0] + + final class Unknown : dev.kord.common.entity/SkuFlag // dev.kord.common.entity/SkuFlag.Unknown|null[0] + + final object Available : dev.kord.common.entity/SkuFlag // dev.kord.common.entity/SkuFlag.Available|null[0] + + final object Companion { // dev.kord.common.entity/SkuFlag.Companion|null[0] + final val entries // dev.kord.common.entity/SkuFlag.Companion.entries|{}entries[0] + final fun (): kotlin.collections/List // dev.kord.common.entity/SkuFlag.Companion.entries.|(){}[0] + + final fun fromShift(kotlin/Int): dev.kord.common.entity/SkuFlag // dev.kord.common.entity/SkuFlag.Companion.fromShift|fromShift(kotlin.Int){}[0] + } + + final object GuildSubscription : dev.kord.common.entity/SkuFlag // dev.kord.common.entity/SkuFlag.GuildSubscription|null[0] + + final object UserSubscription : dev.kord.common.entity/SkuFlag // dev.kord.common.entity/SkuFlag.UserSubscription|null[0] +} + +sealed class dev.kord.common.entity/SkuType { // dev.kord.common.entity/SkuType|null[0] + final val value // dev.kord.common.entity/SkuType.value|{}value[0] + final fun (): kotlin/Int // dev.kord.common.entity/SkuType.value.|(){}[0] + + final fun equals(kotlin/Any?): kotlin/Boolean // dev.kord.common.entity/SkuType.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // dev.kord.common.entity/SkuType.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // dev.kord.common.entity/SkuType.toString|toString(){}[0] + + final class Unknown : dev.kord.common.entity/SkuType // dev.kord.common.entity/SkuType.Unknown|null[0] + + final object Companion { // dev.kord.common.entity/SkuType.Companion|null[0] + final val entries // dev.kord.common.entity/SkuType.Companion.entries|{}entries[0] + final fun (): kotlin.collections/List // dev.kord.common.entity/SkuType.Companion.entries.|(){}[0] + + final fun from(kotlin/Int): dev.kord.common.entity/SkuType // dev.kord.common.entity/SkuType.Companion.from|from(kotlin.Int){}[0] + final fun serializer(): kotlinx.serialization/KSerializer // dev.kord.common.entity/SkuType.Companion.serializer|serializer(){}[0] + } + + final object Consumable : dev.kord.common.entity/SkuType // dev.kord.common.entity/SkuType.Consumable|null[0] + + final object Durable : dev.kord.common.entity/SkuType // dev.kord.common.entity/SkuType.Durable|null[0] + + final object Subscription : dev.kord.common.entity/SkuType // dev.kord.common.entity/SkuType.Subscription|null[0] + + final object SubscriptionGroup : dev.kord.common.entity/SkuType // dev.kord.common.entity/SkuType.SubscriptionGroup|null[0] +} + sealed class dev.kord.common.entity/SortOrderType { // dev.kord.common.entity/SortOrderType|null[0] final val value // dev.kord.common.entity/SortOrderType.value|{}value[0] final fun (): kotlin/Int // dev.kord.common.entity/SortOrderType.value.|(){}[0] @@ -8652,6 +8955,31 @@ sealed class dev.kord.common.entity/StageInstancePrivacyLevel { // dev.kord.comm final object Public : dev.kord.common.entity/StageInstancePrivacyLevel // dev.kord.common.entity/StageInstancePrivacyLevel.Public|null[0] } +sealed class dev.kord.common.entity/SubscriptionStatus { // dev.kord.common.entity/SubscriptionStatus|null[0] + final val value // dev.kord.common.entity/SubscriptionStatus.value|{}value[0] + final fun (): kotlin/Int // dev.kord.common.entity/SubscriptionStatus.value.|(){}[0] + + final fun equals(kotlin/Any?): kotlin/Boolean // dev.kord.common.entity/SubscriptionStatus.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // dev.kord.common.entity/SubscriptionStatus.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // dev.kord.common.entity/SubscriptionStatus.toString|toString(){}[0] + + final class Unknown : dev.kord.common.entity/SubscriptionStatus // dev.kord.common.entity/SubscriptionStatus.Unknown|null[0] + + final object Active : dev.kord.common.entity/SubscriptionStatus // dev.kord.common.entity/SubscriptionStatus.Active|null[0] + + final object Companion { // dev.kord.common.entity/SubscriptionStatus.Companion|null[0] + final val entries // dev.kord.common.entity/SubscriptionStatus.Companion.entries|{}entries[0] + final fun (): kotlin.collections/List // dev.kord.common.entity/SubscriptionStatus.Companion.entries.|(){}[0] + + final fun from(kotlin/Int): dev.kord.common.entity/SubscriptionStatus // dev.kord.common.entity/SubscriptionStatus.Companion.from|from(kotlin.Int){}[0] + final fun serializer(): kotlinx.serialization/KSerializer // dev.kord.common.entity/SubscriptionStatus.Companion.serializer|serializer(){}[0] + } + + final object Ending : dev.kord.common.entity/SubscriptionStatus // dev.kord.common.entity/SubscriptionStatus.Ending|null[0] + + final object Inactive : dev.kord.common.entity/SubscriptionStatus // dev.kord.common.entity/SubscriptionStatus.Inactive|null[0] +} + sealed class dev.kord.common.entity/SystemChannelFlag { // dev.kord.common.entity/SystemChannelFlag|null[0] final val code // dev.kord.common.entity/SystemChannelFlag.code|{}code[0] final fun (): kotlin/Int // dev.kord.common.entity/SystemChannelFlag.code.|(){}[0] @@ -9076,6 +9404,10 @@ final fun dev.kord.common.entity/RoleFlags(kotlin.collections/Iterable): dev.kord.common.entity/RoleFlags // dev.kord.common.entity/RoleFlags|RoleFlags(kotlin.collections.Iterable){}[0] final fun dev.kord.common.entity/RoleFlags(kotlin/Array...): dev.kord.common.entity/RoleFlags // dev.kord.common.entity/RoleFlags|RoleFlags(kotlin.Array...){}[0] final fun dev.kord.common.entity/RoleFlags(kotlin/Array...): dev.kord.common.entity/RoleFlags // dev.kord.common.entity/RoleFlags|RoleFlags(kotlin.Array...){}[0] +final fun dev.kord.common.entity/SkuFlags(kotlin.collections/Iterable): dev.kord.common.entity/SkuFlags // dev.kord.common.entity/SkuFlags|SkuFlags(kotlin.collections.Iterable){}[0] +final fun dev.kord.common.entity/SkuFlags(kotlin.collections/Iterable): dev.kord.common.entity/SkuFlags // dev.kord.common.entity/SkuFlags|SkuFlags(kotlin.collections.Iterable){}[0] +final fun dev.kord.common.entity/SkuFlags(kotlin/Array...): dev.kord.common.entity/SkuFlags // dev.kord.common.entity/SkuFlags|SkuFlags(kotlin.Array...){}[0] +final fun dev.kord.common.entity/SkuFlags(kotlin/Array...): dev.kord.common.entity/SkuFlags // dev.kord.common.entity/SkuFlags|SkuFlags(kotlin.Array...){}[0] final fun dev.kord.common.entity/Snowflake(kotlin/Long): dev.kord.common.entity/Snowflake // dev.kord.common.entity/Snowflake|Snowflake(kotlin.Long){}[0] final fun dev.kord.common.entity/SystemChannelFlags(kotlin.collections/Iterable): dev.kord.common.entity/SystemChannelFlags // dev.kord.common.entity/SystemChannelFlags|SystemChannelFlags(kotlin.collections.Iterable){}[0] final fun dev.kord.common.entity/SystemChannelFlags(kotlin.collections/Iterable): dev.kord.common.entity/SystemChannelFlags // dev.kord.common.entity/SystemChannelFlags|SystemChannelFlags(kotlin.collections.Iterable){}[0] @@ -9116,6 +9448,7 @@ final inline fun dev.kord.common.entity/MessageFlags(kotlin/Function1 = ...): dev.kord.common.entity/Permissions // dev.kord.common.entity/Permissions|Permissions(kotlin.Function1){}[0] final inline fun dev.kord.common.entity/Permissions0(kotlin/Function1 = ...): dev.kord.common.entity/Permissions // dev.kord.common.entity/Permissions0|Permissions0(kotlin.Function1){}[0] final inline fun dev.kord.common.entity/RoleFlags(kotlin/Function1 = ...): dev.kord.common.entity/RoleFlags // dev.kord.common.entity/RoleFlags|RoleFlags(kotlin.Function1){}[0] +final inline fun dev.kord.common.entity/SkuFlags(kotlin/Function1 = ...): dev.kord.common.entity/SkuFlags // dev.kord.common.entity/SkuFlags|SkuFlags(kotlin.Function1){}[0] final inline fun dev.kord.common.entity/SystemChannelFlags(kotlin/Function1 = ...): dev.kord.common.entity/SystemChannelFlags // dev.kord.common.entity/SystemChannelFlags|SystemChannelFlags(kotlin.Function1){}[0] final inline fun dev.kord.common.entity/UserFlags(kotlin/Function1 = ...): dev.kord.common.entity/UserFlags // dev.kord.common.entity/UserFlags|UserFlags(kotlin.Function1){}[0] final suspend inline fun <#A: kotlin/Any?> (dev.kord.common.ratelimit/RateLimiter).dev.kord.common.ratelimit/consume(kotlin/Function0<#A>): #A // dev.kord.common.ratelimit/consume|consume@dev.kord.common.ratelimit.RateLimiter(kotlin.Function0<0:0>){0ยง}[0] diff --git a/common/build/generated/ksp/metadata/commonMain/kotlin/dev/kord/common/entity/ButtonStyle.kt b/common/build/generated/ksp/metadata/commonMain/kotlin/dev/kord/common/entity/ButtonStyle.kt index 6fe1f38b431..77155e3aa33 100644 --- a/common/build/generated/ksp/metadata/commonMain/kotlin/dev/kord/common/entity/ButtonStyle.kt +++ b/common/build/generated/ksp/metadata/commonMain/kotlin/dev/kord/common/entity/ButtonStyle.kt @@ -68,6 +68,11 @@ public sealed class ButtonStyle( */ public object Link : ButtonStyle(5) + /** + * Blurple, prompts to purchase a premium offering. + */ + public object Premium : ButtonStyle(6) + internal object Serializer : KSerializer { override val descriptor: SerialDescriptor = PrimitiveSerialDescriptor("dev.kord.common.entity.ButtonStyle", PrimitiveKind.INT) @@ -90,6 +95,7 @@ public sealed class ButtonStyle( Success, Danger, Link, + Premium, ) } @@ -103,6 +109,7 @@ public sealed class ButtonStyle( 3 -> Success 4 -> Danger 5 -> Link + 6 -> Premium else -> Unknown(value) } } diff --git a/common/build/generated/ksp/metadata/commonMain/kotlin/dev/kord/common/entity/EntitlementOwnerType.kt b/common/build/generated/ksp/metadata/commonMain/kotlin/dev/kord/common/entity/EntitlementOwnerType.kt new file mode 100644 index 00000000000..bb45525f252 --- /dev/null +++ b/common/build/generated/ksp/metadata/commonMain/kotlin/dev/kord/common/entity/EntitlementOwnerType.kt @@ -0,0 +1,88 @@ +// THIS FILE IS AUTO-GENERATED, DO NOT EDIT! +@file:Suppress(names = arrayOf("IncorrectFormatting", "ReplaceArrayOfWithLiteral", + "SpellCheckingInspection", "GrazieInspection")) + +package dev.kord.common.entity + +import kotlin.LazyThreadSafetyMode.PUBLICATION +import kotlinx.serialization.KSerializer +import kotlinx.serialization.Serializable +import kotlinx.serialization.descriptors.PrimitiveKind +import kotlinx.serialization.descriptors.PrimitiveSerialDescriptor +import kotlinx.serialization.descriptors.SerialDescriptor +import kotlinx.serialization.encoding.Decoder +import kotlinx.serialization.encoding.Encoder + +/** + * See [EntitlementOwnerType]s in the + * [Discord Developer Documentation](https://discord.com/developers/docs/resources/entitlement#create-test-entitlement-json-params). + */ +@Serializable(with = EntitlementOwnerType.Serializer::class) +public sealed class EntitlementOwnerType( + /** + * The raw value used by Discord. + */ + public val `value`: Int, +) { + final override fun equals(other: Any?): Boolean = this === other || + (other is EntitlementOwnerType && this.value == other.value) + + final override fun hashCode(): Int = value.hashCode() + + final override fun toString(): String = + if (this is Unknown) "EntitlementOwnerType.Unknown(value=$value)" + else "EntitlementOwnerType.${this::class.simpleName}" + + /** + * An unknown [EntitlementOwnerType]. + * + * This is used as a fallback for [EntitlementOwnerType]s that haven't been added to Kord yet. + */ + public class Unknown internal constructor( + `value`: Int, + ) : EntitlementOwnerType(value) + + /** + * Entitlement is owned by a guild. + */ + public object Guild : EntitlementOwnerType(1) + + /** + * Entitlement is owned by a user. + */ + public object User : EntitlementOwnerType(2) + + internal object Serializer : KSerializer { + override val descriptor: SerialDescriptor = + PrimitiveSerialDescriptor("dev.kord.common.entity.EntitlementOwnerType", + PrimitiveKind.INT) + + override fun serialize(encoder: Encoder, `value`: EntitlementOwnerType) { + encoder.encodeInt(value.value) + } + + override fun deserialize(decoder: Decoder): EntitlementOwnerType = from(decoder.decodeInt()) + } + + public companion object { + /** + * A [List] of all known [EntitlementOwnerType]s. + */ + public val entries: List by lazy(mode = PUBLICATION) { + listOf( + Guild, + User, + ) + } + + /** + * Returns an instance of [EntitlementOwnerType] with [EntitlementOwnerType.value] equal to + * the specified [value]. + */ + public fun from(`value`: Int): EntitlementOwnerType = when (value) { + 1 -> Guild + 2 -> User + else -> Unknown(value) + } + } +} diff --git a/common/build/generated/ksp/metadata/commonMain/kotlin/dev/kord/common/entity/EntitlementType.kt b/common/build/generated/ksp/metadata/commonMain/kotlin/dev/kord/common/entity/EntitlementType.kt new file mode 100644 index 00000000000..6f65a6591c0 --- /dev/null +++ b/common/build/generated/ksp/metadata/commonMain/kotlin/dev/kord/common/entity/EntitlementType.kt @@ -0,0 +1,130 @@ +// THIS FILE IS AUTO-GENERATED, DO NOT EDIT! +@file:Suppress(names = arrayOf("IncorrectFormatting", "ReplaceArrayOfWithLiteral", + "SpellCheckingInspection", "GrazieInspection")) + +package dev.kord.common.entity + +import kotlin.LazyThreadSafetyMode.PUBLICATION +import kotlinx.serialization.KSerializer +import kotlinx.serialization.Serializable +import kotlinx.serialization.descriptors.PrimitiveKind +import kotlinx.serialization.descriptors.PrimitiveSerialDescriptor +import kotlinx.serialization.descriptors.SerialDescriptor +import kotlinx.serialization.encoding.Decoder +import kotlinx.serialization.encoding.Encoder + +/** + * See [EntitlementType]s in the + * [Discord Developer Documentation](https://discord.com/developers/docs/resources/entitlement#entitlement-object-entitlement-types). + */ +@Serializable(with = EntitlementType.Serializer::class) +public sealed class EntitlementType( + /** + * The raw value used by Discord. + */ + public val `value`: Int, +) { + final override fun equals(other: Any?): Boolean = this === other || + (other is EntitlementType && this.value == other.value) + + final override fun hashCode(): Int = value.hashCode() + + final override fun toString(): String = + if (this is Unknown) "EntitlementType.Unknown(value=$value)" + else "EntitlementType.${this::class.simpleName}" + + /** + * An unknown [EntitlementType]. + * + * This is used as a fallback for [EntitlementType]s that haven't been added to Kord yet. + */ + public class Unknown internal constructor( + `value`: Int, + ) : EntitlementType(value) + + /** + * Entitlement that was purchased by a user. + */ + public object Purchase : EntitlementType(1) + + /** + * Entitlement for a Discord Nitro subscription. + */ + public object PremiumSubscription : EntitlementType(2) + + /** + * Entitlement that was gifted to a user by the developer. + */ + public object DeveloperGift : EntitlementType(3) + + /** + * Entitlement that was purchased by a dev in application test mode. + */ + public object TestModePurchase : EntitlementType(4) + + /** + * Entitlement that was granted when the [SKU][DiscordSku] was free. + */ + public object FreePurchase : EntitlementType(5) + + /** + * Entitlement that was gifted to a user by another user. + */ + public object UserGift : EntitlementType(6) + + /** + * Entitlement that was claimed by a user for free as a Nitro subscriber. + */ + public object PremiumPurchase : EntitlementType(7) + + /** + * Entitlement that was purchased as an app subscription. + */ + public object ApplicationSubscription : EntitlementType(8) + + internal object Serializer : KSerializer { + override val descriptor: SerialDescriptor = + PrimitiveSerialDescriptor("dev.kord.common.entity.EntitlementType", + PrimitiveKind.INT) + + override fun serialize(encoder: Encoder, `value`: EntitlementType) { + encoder.encodeInt(value.value) + } + + override fun deserialize(decoder: Decoder): EntitlementType = from(decoder.decodeInt()) + } + + public companion object { + /** + * A [List] of all known [EntitlementType]s. + */ + public val entries: List by lazy(mode = PUBLICATION) { + listOf( + Purchase, + PremiumSubscription, + DeveloperGift, + TestModePurchase, + FreePurchase, + UserGift, + PremiumPurchase, + ApplicationSubscription, + ) + } + + /** + * Returns an instance of [EntitlementType] with [EntitlementType.value] equal to the + * specified [value]. + */ + public fun from(`value`: Int): EntitlementType = when (value) { + 1 -> Purchase + 2 -> PremiumSubscription + 3 -> DeveloperGift + 4 -> TestModePurchase + 5 -> FreePurchase + 6 -> UserGift + 7 -> PremiumPurchase + 8 -> ApplicationSubscription + else -> Unknown(value) + } + } +} diff --git a/common/build/generated/ksp/metadata/commonMain/kotlin/dev/kord/common/entity/GuildScheduledEventStatus.kt b/common/build/generated/ksp/metadata/commonMain/kotlin/dev/kord/common/entity/GuildScheduledEventStatus.kt index c5c0e7bb6d7..bbbe7142beb 100644 --- a/common/build/generated/ksp/metadata/commonMain/kotlin/dev/kord/common/entity/GuildScheduledEventStatus.kt +++ b/common/build/generated/ksp/metadata/commonMain/kotlin/dev/kord/common/entity/GuildScheduledEventStatus.kt @@ -14,7 +14,7 @@ import kotlinx.serialization.encoding.Decoder import kotlinx.serialization.encoding.Encoder /** - * See [GuildScheduledEventStatus]s in the + * See [GuildScheduledEventStatus]es in the * [Discord Developer Documentation](https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object-guild-scheduled-event-status). */ @Serializable(with = GuildScheduledEventStatus.Serializer::class) @@ -36,7 +36,7 @@ public sealed class GuildScheduledEventStatus( /** * An unknown [GuildScheduledEventStatus]. * - * This is used as a fallback for [GuildScheduledEventStatus]s that haven't been added to Kord + * This is used as a fallback for [GuildScheduledEventStatus]es that haven't been added to Kord * yet. */ public class Unknown internal constructor( @@ -66,7 +66,7 @@ public sealed class GuildScheduledEventStatus( public companion object { /** - * A [List] of all known [GuildScheduledEventStatus]s. + * A [List] of all known [GuildScheduledEventStatus]es. */ public val entries: List by lazy(mode = PUBLICATION) { listOf( diff --git a/common/build/generated/ksp/metadata/commonMain/kotlin/dev/kord/common/entity/MessageType.kt b/common/build/generated/ksp/metadata/commonMain/kotlin/dev/kord/common/entity/MessageType.kt index 814ca85e50c..546465a13ae 100644 --- a/common/build/generated/ksp/metadata/commonMain/kotlin/dev/kord/common/entity/MessageType.kt +++ b/common/build/generated/ksp/metadata/commonMain/kotlin/dev/kord/common/entity/MessageType.kt @@ -103,6 +103,8 @@ public sealed class MessageType( public object GuildApplicationPremiumSubscription : MessageType(32) + public object PurchaseNotification : MessageType(44) + internal object Serializer : KSerializer { override val descriptor: SerialDescriptor = PrimitiveSerialDescriptor("dev.kord.common.entity.MessageType", PrimitiveKind.INT) @@ -151,6 +153,7 @@ public sealed class MessageType( StageSpeaker, StageTopic, GuildApplicationPremiumSubscription, + PurchaseNotification, ) } @@ -190,6 +193,7 @@ public sealed class MessageType( 29 -> StageSpeaker 31 -> StageTopic 32 -> GuildApplicationPremiumSubscription + 44 -> PurchaseNotification else -> Unknown(code) } } diff --git a/common/build/generated/ksp/metadata/commonMain/kotlin/dev/kord/common/entity/PresenceStatus.kt b/common/build/generated/ksp/metadata/commonMain/kotlin/dev/kord/common/entity/PresenceStatus.kt index 33b01d6fd72..593823e18ef 100644 --- a/common/build/generated/ksp/metadata/commonMain/kotlin/dev/kord/common/entity/PresenceStatus.kt +++ b/common/build/generated/ksp/metadata/commonMain/kotlin/dev/kord/common/entity/PresenceStatus.kt @@ -14,7 +14,7 @@ import kotlinx.serialization.encoding.Decoder import kotlinx.serialization.encoding.Encoder /** - * See [PresenceStatus]s in the + * See [PresenceStatus]es in the * [Discord Developer Documentation](https://discord.com/developers/docs/topics/gateway-events#update-presence-status-types). */ @Serializable(with = PresenceStatus.Serializer::class) @@ -36,7 +36,7 @@ public sealed class PresenceStatus( /** * An unknown [PresenceStatus]. * - * This is used as a fallback for [PresenceStatus]s that haven't been added to Kord yet. + * This is used as a fallback for [PresenceStatus]es that haven't been added to Kord yet. */ public class Unknown internal constructor( `value`: String, @@ -81,7 +81,7 @@ public sealed class PresenceStatus( public companion object { /** - * A [List] of all known [PresenceStatus]s. + * A [List] of all known [PresenceStatus]es. */ public val entries: List by lazy(mode = PUBLICATION) { listOf( diff --git a/common/build/generated/ksp/metadata/commonMain/kotlin/dev/kord/common/entity/SkuFlag.kt b/common/build/generated/ksp/metadata/commonMain/kotlin/dev/kord/common/entity/SkuFlag.kt new file mode 100644 index 00000000000..7fc5e428bad --- /dev/null +++ b/common/build/generated/ksp/metadata/commonMain/kotlin/dev/kord/common/entity/SkuFlag.kt @@ -0,0 +1,330 @@ +// THIS FILE IS AUTO-GENERATED, DO NOT EDIT! +@file:Suppress(names = arrayOf("IncorrectFormatting", "ReplaceArrayOfWithLiteral", + "SpellCheckingInspection", "GrazieInspection")) + +package dev.kord.common.entity + +import kotlin.LazyThreadSafetyMode.PUBLICATION +import kotlin.contracts.InvocationKind.EXACTLY_ONCE +import kotlin.contracts.contract +import kotlin.jvm.JvmName +import kotlinx.serialization.KSerializer +import kotlinx.serialization.Serializable +import kotlinx.serialization.builtins.serializer +import kotlinx.serialization.descriptors.PrimitiveKind +import kotlinx.serialization.descriptors.PrimitiveSerialDescriptor +import kotlinx.serialization.descriptors.SerialDescriptor +import kotlinx.serialization.encoding.Decoder +import kotlinx.serialization.encoding.Encoder + +/** + * See [SkuFlag]s in the + * [Discord Developer Documentation](https://discord.com/developers/docs/resources/sku#sku-object-sku-flags). + */ +public sealed class SkuFlag( + /** + * The position of the bit that is set in this [SkuFlag]. This is always in 0..30. + */ + public val shift: Int, +) { + init { + require(shift in 0..30) { """shift has to be in 0..30 but was $shift""" } + } + + /** + * The raw value used by Discord. + */ + public val `value`: Int + get() = 1 shl shift + + /** + * Returns an instance of [SkuFlags] that has all bits set that are set in `this` and [flag]. + */ + public operator fun plus(flag: SkuFlag): SkuFlags = SkuFlags(this.value or flag.value) + + /** + * Returns an instance of [SkuFlags] that has all bits set that are set in `this` and [flags]. + */ + public operator fun plus(flags: SkuFlags): SkuFlags = SkuFlags(this.value or flags.value) + + final override fun equals(other: Any?): Boolean = this === other || + (other is SkuFlag && this.shift == other.shift) + + final override fun hashCode(): Int = shift.hashCode() + + final override fun toString(): String = if (this is Unknown) "SkuFlag.Unknown(shift=$shift)" + else "SkuFlag.${this::class.simpleName}" + + /** + * An unknown [SkuFlag]. + * + * This is used as a fallback for [SkuFlag]s that haven't been added to Kord yet. + */ + public class Unknown internal constructor( + shift: Int, + ) : SkuFlag(shift) + + /** + * SKU is available for purchase. + */ + public object Available : SkuFlag(2) + + /** + * Recurring SKU that can be purchased by a user and applied to a single server. Grants access + * to every user in that server. + */ + public object GuildSubscription : SkuFlag(7) + + /** + * Recurring SKU purchased by a user for themselves. Grants access to the purchasing user in + * every server. + */ + public object UserSubscription : SkuFlag(8) + + public companion object { + /** + * A [List] of all known [SkuFlag]s. + */ + public val entries: List by lazy(mode = PUBLICATION) { + listOf( + Available, + GuildSubscription, + UserSubscription, + ) + } + + /** + * Returns an instance of [SkuFlag] with [SkuFlag.shift] equal to the specified [shift]. + * + * @throws IllegalArgumentException if [shift] is not in 0..30. + */ + public fun fromShift(shift: Int): SkuFlag = when (shift) { + 2 -> Available + 7 -> GuildSubscription + 8 -> UserSubscription + else -> Unknown(shift) + } + } +} + +/** + * A collection of multiple [SkuFlag]s. + * + * ## Creating an instance of [SkuFlags] + * + * You can create an instance of [SkuFlags] using the following methods: + * ```kotlin + * // from individual SkuFlags + * val skuFlags1 = SkuFlags(SkuFlag.Available, SkuFlag.GuildSubscription) + * + * // from an Iterable + * val iterable: Iterable = TODO() + * val skuFlags2 = SkuFlags(iterable) + * + * // using a builder + * val skuFlags3 = SkuFlags { + * +skuFlags2 + * +SkuFlag.Available + * -SkuFlag.GuildSubscription + * } + * ``` + * + * ## Modifying an existing instance of [SkuFlags] + * + * You can create a modified copy of an existing instance of [SkuFlags] using the [copy] method: + * ```kotlin + * skuFlags.copy { + * +SkuFlag.Available + * } + * ``` + * + * ## Mathematical operators + * + * All [SkuFlags] objects can use `+`/`-` operators: + * ```kotlin + * val skuFlags1 = skuFlags + SkuFlag.Available + * val skuFlags2 = skuFlags - SkuFlag.GuildSubscription + * val skuFlags3 = skuFlags1 + skuFlags2 + * ``` + * + * ## Checking for [SkuFlag]s + * + * You can use the [contains] operator to check whether an instance of [SkuFlags] contains specific + * [SkuFlag]s: + * ```kotlin + * val hasSkuFlag = SkuFlag.Available in skuFlags + * val hasSkuFlags = SkuFlags(SkuFlag.Available, SkuFlag.GuildSubscription) in skuFlags + * ``` + * + * ## Unknown [SkuFlag]s + * + * Whenever [SkuFlag]s haven't been added to Kord yet, they will be deserialized as instances of + * [SkuFlag.Unknown]. + * + * You can also use [SkuFlag.fromShift] to check for [unknown][SkuFlag.Unknown] [SkuFlag]s. + * ```kotlin + * val hasUnknownSkuFlag = SkuFlag.fromShift(23) in skuFlags + * ``` + * + * @see SkuFlag + * @see SkuFlags.Builder + */ +@Serializable(with = SkuFlags.Serializer::class) +public class SkuFlags internal constructor( + /** + * The raw value used by Discord. + */ + public val `value`: Int, +) { + /** + * A [Set] of all [SkuFlag]s contained in this instance of [SkuFlags]. + */ + public val values: Set + get() = buildSet { + var remaining = value + var shift = 0 + while (remaining != 0) { + if ((remaining and 1) != 0) add(SkuFlag.fromShift(shift)) + remaining = remaining ushr 1 + shift++ + } + } + + /** + * Checks if this instance of [SkuFlags] has all bits set that are set in [flag]. + */ + public operator fun contains(flag: SkuFlag): Boolean = this.value and flag.value == flag.value + + /** + * Checks if this instance of [SkuFlags] has all bits set that are set in [flags]. + */ + public operator fun contains(flags: SkuFlags): Boolean = + this.value and flags.value == flags.value + + /** + * Returns an instance of [SkuFlags] that has all bits set that are set in `this` and [flag]. + */ + public operator fun plus(flag: SkuFlag): SkuFlags = SkuFlags(this.value or flag.value) + + /** + * Returns an instance of [SkuFlags] that has all bits set that are set in `this` and [flags]. + */ + public operator fun plus(flags: SkuFlags): SkuFlags = SkuFlags(this.value or flags.value) + + /** + * Returns an instance of [SkuFlags] that has all bits set that are set in `this` except the + * bits that are set in [flag]. + */ + public operator fun minus(flag: SkuFlag): SkuFlags = SkuFlags(this.value and flag.value.inv()) + + /** + * Returns an instance of [SkuFlags] that has all bits set that are set in `this` except the + * bits that are set in [flags]. + */ + public operator fun minus(flags: SkuFlags): SkuFlags = + SkuFlags(this.value and flags.value.inv()) + + /** + * Returns a copy of this instance of [SkuFlags] modified with [builder]. + */ + public inline fun copy(builder: Builder.() -> Unit): SkuFlags { + contract { callsInPlace(builder, EXACTLY_ONCE) } + return Builder(value).apply(builder).build() + } + + override fun equals(other: Any?): Boolean = this === other || + (other is SkuFlags && this.value == other.value) + + override fun hashCode(): Int = value.hashCode() + + override fun toString(): String = "SkuFlags(values=$values)" + + public class Builder( + private var `value`: Int = 0, + ) { + /** + * Sets all bits in the [Builder] that are set in this [SkuFlag]. + */ + public operator fun SkuFlag.unaryPlus() { + this@Builder.value = this@Builder.value or this.value + } + + /** + * Sets all bits in the [Builder] that are set in this [SkuFlags]. + */ + public operator fun SkuFlags.unaryPlus() { + this@Builder.value = this@Builder.value or this.value + } + + /** + * Unsets all bits in the [Builder] that are set in this [SkuFlag]. + */ + public operator fun SkuFlag.unaryMinus() { + this@Builder.value = this@Builder.value and this.value.inv() + } + + /** + * Unsets all bits in the [Builder] that are set in this [SkuFlags]. + */ + public operator fun SkuFlags.unaryMinus() { + this@Builder.value = this@Builder.value and this.value.inv() + } + + /** + * Returns an instance of [SkuFlags] that has all bits set that are currently set in this + * [Builder]. + */ + public fun build(): SkuFlags = SkuFlags(value) + } + + internal object Serializer : KSerializer { + override val descriptor: SerialDescriptor = + PrimitiveSerialDescriptor("dev.kord.common.entity.SkuFlags", PrimitiveKind.INT) + + private val `delegate`: KSerializer = Int.serializer() + + override fun serialize(encoder: Encoder, `value`: SkuFlags) { + encoder.encodeSerializableValue(delegate, value.value) + } + + override fun deserialize(decoder: Decoder): SkuFlags = + SkuFlags(decoder.decodeSerializableValue(delegate)) + } +} + +/** + * Returns an instance of [SkuFlags] built with [SkuFlags.Builder]. + */ +public inline fun SkuFlags(builder: SkuFlags.Builder.() -> Unit = {}): SkuFlags { + contract { callsInPlace(builder, EXACTLY_ONCE) } + return SkuFlags.Builder().apply(builder).build() +} + +/** + * Returns an instance of [SkuFlags] that has all bits set that are set in any element of [flags]. + */ +public fun SkuFlags(vararg flags: SkuFlag): SkuFlags = SkuFlags { + flags.forEach { +it } +} + +/** + * Returns an instance of [SkuFlags] that has all bits set that are set in any element of [flags]. + */ +public fun SkuFlags(vararg flags: SkuFlags): SkuFlags = SkuFlags { + flags.forEach { +it } +} + +/** + * Returns an instance of [SkuFlags] that has all bits set that are set in any element of [flags]. + */ +public fun SkuFlags(flags: Iterable): SkuFlags = SkuFlags { + flags.forEach { +it } +} + +/** + * Returns an instance of [SkuFlags] that has all bits set that are set in any element of [flags]. + */ +@JvmName("SkuFlags0") +public fun SkuFlags(flags: Iterable): SkuFlags = SkuFlags { + flags.forEach { +it } +} diff --git a/common/build/generated/ksp/metadata/commonMain/kotlin/dev/kord/common/entity/SkuType.kt b/common/build/generated/ksp/metadata/commonMain/kotlin/dev/kord/common/entity/SkuType.kt new file mode 100644 index 00000000000..7392bf3043e --- /dev/null +++ b/common/build/generated/ksp/metadata/commonMain/kotlin/dev/kord/common/entity/SkuType.kt @@ -0,0 +1,99 @@ +// THIS FILE IS AUTO-GENERATED, DO NOT EDIT! +@file:Suppress(names = arrayOf("IncorrectFormatting", "ReplaceArrayOfWithLiteral", + "SpellCheckingInspection", "GrazieInspection")) + +package dev.kord.common.entity + +import kotlin.LazyThreadSafetyMode.PUBLICATION +import kotlinx.serialization.KSerializer +import kotlinx.serialization.Serializable +import kotlinx.serialization.descriptors.PrimitiveKind +import kotlinx.serialization.descriptors.PrimitiveSerialDescriptor +import kotlinx.serialization.descriptors.SerialDescriptor +import kotlinx.serialization.encoding.Decoder +import kotlinx.serialization.encoding.Encoder + +/** + * See [SkuType]s in the + * [Discord Developer Documentation](https://discord.com/developers/docs/resources/sku#sku-object-sku-types). + */ +@Serializable(with = SkuType.Serializer::class) +public sealed class SkuType( + /** + * The raw value used by Discord. + */ + public val `value`: Int, +) { + final override fun equals(other: Any?): Boolean = this === other || + (other is SkuType && this.value == other.value) + + final override fun hashCode(): Int = value.hashCode() + + final override fun toString(): String = if (this is Unknown) "SkuType.Unknown(value=$value)" + else "SkuType.${this::class.simpleName}" + + /** + * An unknown [SkuType]. + * + * This is used as a fallback for [SkuType]s that haven't been added to Kord yet. + */ + public class Unknown internal constructor( + `value`: Int, + ) : SkuType(value) + + /** + * A durable one-time purchase. + */ + public object Durable : SkuType(2) + + /** + * A consumable one-time purchase. + */ + public object Consumable : SkuType(3) + + /** + * Represents a recurring subscription. + */ + public object Subscription : SkuType(5) + + /** + * System-generated group for each [Subscription][Subscription] [SKU][DiscordSku] created. + */ + public object SubscriptionGroup : SkuType(6) + + internal object Serializer : KSerializer { + override val descriptor: SerialDescriptor = + PrimitiveSerialDescriptor("dev.kord.common.entity.SkuType", PrimitiveKind.INT) + + override fun serialize(encoder: Encoder, `value`: SkuType) { + encoder.encodeInt(value.value) + } + + override fun deserialize(decoder: Decoder): SkuType = from(decoder.decodeInt()) + } + + public companion object { + /** + * A [List] of all known [SkuType]s. + */ + public val entries: List by lazy(mode = PUBLICATION) { + listOf( + Durable, + Consumable, + Subscription, + SubscriptionGroup, + ) + } + + /** + * Returns an instance of [SkuType] with [SkuType.value] equal to the specified [value]. + */ + public fun from(`value`: Int): SkuType = when (value) { + 2 -> Durable + 3 -> Consumable + 5 -> Subscription + 6 -> SubscriptionGroup + else -> Unknown(value) + } + } +} diff --git a/common/build/generated/ksp/metadata/commonMain/kotlin/dev/kord/common/entity/SubscriptionStatus.kt b/common/build/generated/ksp/metadata/commonMain/kotlin/dev/kord/common/entity/SubscriptionStatus.kt new file mode 100644 index 00000000000..af4df56f403 --- /dev/null +++ b/common/build/generated/ksp/metadata/commonMain/kotlin/dev/kord/common/entity/SubscriptionStatus.kt @@ -0,0 +1,95 @@ +// THIS FILE IS AUTO-GENERATED, DO NOT EDIT! +@file:Suppress(names = arrayOf("IncorrectFormatting", "ReplaceArrayOfWithLiteral", + "SpellCheckingInspection", "GrazieInspection")) + +package dev.kord.common.entity + +import kotlin.LazyThreadSafetyMode.PUBLICATION +import kotlinx.serialization.KSerializer +import kotlinx.serialization.Serializable +import kotlinx.serialization.descriptors.PrimitiveKind +import kotlinx.serialization.descriptors.PrimitiveSerialDescriptor +import kotlinx.serialization.descriptors.SerialDescriptor +import kotlinx.serialization.encoding.Decoder +import kotlinx.serialization.encoding.Encoder + +/** + * See [SubscriptionStatus]es in the + * [Discord Developer Documentation](https://discord.com/developers/docs/resources/subscription#subscription-statuses). + */ +@Serializable(with = SubscriptionStatus.Serializer::class) +public sealed class SubscriptionStatus( + /** + * The raw value used by Discord. + */ + public val `value`: Int, +) { + final override fun equals(other: Any?): Boolean = this === other || + (other is SubscriptionStatus && this.value == other.value) + + final override fun hashCode(): Int = value.hashCode() + + final override fun toString(): String = + if (this is Unknown) "SubscriptionStatus.Unknown(value=$value)" + else "SubscriptionStatus.${this::class.simpleName}" + + /** + * An unknown [SubscriptionStatus]. + * + * This is used as a fallback for [SubscriptionStatus]es that haven't been added to Kord yet. + */ + public class Unknown internal constructor( + `value`: Int, + ) : SubscriptionStatus(value) + + /** + * The subscription is active and scheduled to renew. + */ + public object Active : SubscriptionStatus(0) + + /** + * The subscription is active but will not renew. + */ + public object Ending : SubscriptionStatus(1) + + /** + * The subscription is inactive and not being charged. + */ + public object Inactive : SubscriptionStatus(2) + + internal object Serializer : KSerializer { + override val descriptor: SerialDescriptor = + PrimitiveSerialDescriptor("dev.kord.common.entity.SubscriptionStatus", + PrimitiveKind.INT) + + override fun serialize(encoder: Encoder, `value`: SubscriptionStatus) { + encoder.encodeInt(value.value) + } + + override fun deserialize(decoder: Decoder): SubscriptionStatus = from(decoder.decodeInt()) + } + + public companion object { + /** + * A [List] of all known [SubscriptionStatus]es. + */ + public val entries: List by lazy(mode = PUBLICATION) { + listOf( + Active, + Ending, + Inactive, + ) + } + + /** + * Returns an instance of [SubscriptionStatus] with [SubscriptionStatus.value] equal to the + * specified [value]. + */ + public fun from(`value`: Int): SubscriptionStatus = when (value) { + 0 -> Active + 1 -> Ending + 2 -> Inactive + else -> Unknown(value) + } + } +} diff --git a/common/src/commonMain/kotlin/entity/DiscordComponent.kt b/common/src/commonMain/kotlin/entity/DiscordComponent.kt index e9ee9252795..473da79e3cf 100644 --- a/common/src/commonMain/kotlin/entity/DiscordComponent.kt +++ b/common/src/commonMain/kotlin/entity/DiscordComponent.kt @@ -23,6 +23,7 @@ Entry("Success", intValue = 3, kDoc = "Green."), Entry("Danger", intValue = 4, kDoc = "Red."), Entry("Link", intValue = 5, kDoc = "Grey, navigates to a URL."), + Entry("Premium", intValue = 6, kDoc = "Blurple, prompts to purchase a premium offering."), ], ) @@ -41,6 +42,7 @@ package dev.kord.common.entity import dev.kord.common.entity.optional.Optional import dev.kord.common.entity.optional.OptionalBoolean import dev.kord.common.entity.optional.OptionalInt +import dev.kord.common.entity.optional.OptionalSnowflake import dev.kord.ksp.Generate import dev.kord.ksp.Generate.EntityType.INT_KORD_ENUM import dev.kord.ksp.Generate.Entry @@ -135,6 +137,8 @@ public data class DiscordChatComponent( override val value: Optional = Optional.Missing(), @SerialName("channel_types") override val channelTypes: Optional> = Optional.Missing(), + @SerialName("sku_id") + val skuId: OptionalSnowflake = OptionalSnowflake.Missing, ) : DiscordComponent() @Serializable diff --git a/common/src/commonMain/kotlin/entity/DiscordMessage.kt b/common/src/commonMain/kotlin/entity/DiscordMessage.kt index 6cd1a5bc853..2e64eca136e 100644 --- a/common/src/commonMain/kotlin/entity/DiscordMessage.kt +++ b/common/src/commonMain/kotlin/entity/DiscordMessage.kt @@ -33,6 +33,7 @@ Entry("StageSpeaker", intValue = 29), Entry("StageTopic", intValue = 31), Entry("GuildApplicationPremiumSubscription", intValue = 32), + Entry("PurchaseNotification", intValue = 44), ], ) diff --git a/common/src/commonMain/kotlin/entity/Entitlement.kt b/common/src/commonMain/kotlin/entity/Entitlement.kt new file mode 100644 index 00000000000..dbf17630511 --- /dev/null +++ b/common/src/commonMain/kotlin/entity/Entitlement.kt @@ -0,0 +1,64 @@ +@file:Generate( + INT_KORD_ENUM, name = "EntitlementType", + docUrl = "https://discord.com/developers/docs/resources/entitlement#entitlement-object-entitlement-types", + entries = [ + Entry("Purchase", intValue = 1, kDoc = "Entitlement that was purchased by a user."), + Entry("PremiumSubscription", intValue = 2, kDoc = "Entitlement for a Discord Nitro subscription."), + Entry("DeveloperGift", intValue = 3, kDoc = "Entitlement that was gifted to a user by the developer."), + Entry( + "TestModePurchase", intValue = 4, + kDoc = "Entitlement that was purchased by a dev in application test mode.", + ), + Entry("FreePurchase", intValue = 5, kDoc = "Entitlement that was granted when the [SKU][DiscordSku] was free."), + Entry("UserGift", intValue = 6, kDoc = "Entitlement that was gifted to a user by another user."), + Entry( + "PremiumPurchase", intValue = 7, + kDoc = "Entitlement that was claimed by a user for free as a Nitro subscriber.", + ), + Entry("ApplicationSubscription", intValue = 8, kDoc = "Entitlement that was purchased as an app subscription."), + ], +) + +@file:Generate( + INT_KORD_ENUM, name = "EntitlementOwnerType", + docUrl = "https://discord.com/developers/docs/resources/entitlement#create-test-entitlement-json-params", + entries = [ + Entry("Guild", intValue = 1, kDoc = "Entitlement is owned by a guild."), + Entry("User", intValue = 2, kDoc = "Entitlement is owned by a user."), + ], +) + +package dev.kord.common.entity + +import dev.kord.common.entity.optional.Optional +import dev.kord.common.entity.optional.OptionalBoolean +import dev.kord.common.entity.optional.OptionalSnowflake +import dev.kord.ksp.Generate +import dev.kord.ksp.Generate.EntityType.INT_KORD_ENUM +import dev.kord.ksp.Generate.Entry +import kotlinx.datetime.Instant +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +/** + * An instance of a [Discord Entitlement](https://discord.com/developers/docs/resources/entitlement#entitlement-object). + */ +@Serializable +public data class DiscordEntitlement( + val id: Snowflake, + @SerialName("sku_id") + val skuId: Snowflake, + @SerialName("application_id") + val applicationId: Snowflake, + @SerialName("user_id") + val userId: OptionalSnowflake = OptionalSnowflake.Missing, + val type: EntitlementType, + val deleted: Boolean, + @SerialName("starts_at") + val startsAt: Optional = Optional.Missing(), + @SerialName("ends_at") + val endsAt: Optional = Optional.Missing(), + @SerialName("guild_id") + val guildId: OptionalSnowflake = OptionalSnowflake.Missing, + val consumed: OptionalBoolean = OptionalBoolean.Missing, +) diff --git a/common/src/commonMain/kotlin/entity/Interactions.kt b/common/src/commonMain/kotlin/entity/Interactions.kt index 906562bdc80..57e125fb7ac 100644 --- a/common/src/commonMain/kotlin/entity/Interactions.kt +++ b/common/src/commonMain/kotlin/entity/Interactions.kt @@ -260,6 +260,8 @@ public data class DiscordInteraction( val locale: Optional = Optional.Missing(), @SerialName("guild_locale") val guildLocale: Optional = Optional.Missing(), + // Don't trust the docs: This can be missing + val entitlements: Optional> = Optional.Missing(), ) { /** diff --git a/common/src/commonMain/kotlin/entity/Sku.kt b/common/src/commonMain/kotlin/entity/Sku.kt new file mode 100644 index 00000000000..bd952eafb75 --- /dev/null +++ b/common/src/commonMain/kotlin/entity/Sku.kt @@ -0,0 +1,54 @@ +@file:Generate( + INT_KORD_ENUM, name = "SkuType", + docUrl = "https://discord.com/developers/docs/resources/sku#sku-object-sku-types", + entries = [ + Entry("Durable", intValue = 2, kDoc = "A durable one-time purchase."), + Entry("Consumable", intValue = 3, kDoc = "A consumable one-time purchase."), + Entry("Subscription", intValue = 5, kDoc = "Represents a recurring subscription."), + Entry( + "SubscriptionGroup", intValue = 6, + kDoc = "System-generated group for each [Subscription][Subscription] [SKU][DiscordSku] created.", + ), + ], +) + +@file:Generate( + INT_FLAGS, name = "SkuFlag", + docUrl = "https://discord.com/developers/docs/resources/sku#sku-object-sku-flags", + entries = [ + Entry("Available", shift = 2, kDoc = "SKU is available for purchase."), + Entry( + "GuildSubscription", shift = 7, + kDoc = "Recurring SKU that can be purchased by a user and applied to a single server. Grants access to " + + "every user in that server.", + ), + Entry( + "UserSubscription", shift = 8, + kDoc = "Recurring SKU purchased by a user for themselves. Grants access to the purchasing user in every " + + "server.", + ), + ], +) + +package dev.kord.common.entity + +import dev.kord.ksp.Generate +import dev.kord.ksp.Generate.EntityType.INT_FLAGS +import dev.kord.ksp.Generate.EntityType.INT_KORD_ENUM +import dev.kord.ksp.Generate.Entry +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +/** + * Represents a [Discord SKU](https://discord.com/developers/docs/resources/sku#sku-object). + */ +@Serializable +public data class DiscordSku( + val id: Snowflake, + val type: SkuType, + @SerialName("application_id") + val applicationId: Snowflake, + val name: String, + val slug: String, + val flags: SkuFlags, +) diff --git a/common/src/commonMain/kotlin/entity/Subscription.kt b/common/src/commonMain/kotlin/entity/Subscription.kt new file mode 100644 index 00000000000..97f3c336172 --- /dev/null +++ b/common/src/commonMain/kotlin/entity/Subscription.kt @@ -0,0 +1,38 @@ +@file:Generate( + INT_KORD_ENUM, name = "SubscriptionStatus", + docUrl = "https://discord.com/developers/docs/resources/subscription#subscription-statuses", + entries = [ + Entry("Active", intValue = 0, kDoc = "The subscription is active and scheduled to renew."), + Entry("Ending", intValue = 1, kDoc = "The subscription is active but will not renew."), + Entry("Inactive", intValue = 2, kDoc = "The subscription is inactive and not being charged."), + ], +) + +package dev.kord.common.entity + +import dev.kord.common.entity.optional.Optional +import dev.kord.ksp.Generate +import dev.kord.ksp.Generate.EntityType.INT_KORD_ENUM +import dev.kord.ksp.Generate.Entry +import kotlinx.datetime.Instant +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +public data class DiscordSubscription( + val id: Snowflake, + @SerialName("user_id") + val userId: Snowflake, + @SerialName("sku_ids") + val skuIds: List, + @SerialName("entitlement_ids") + val entitlementIds: List, + @SerialName("current_period_start") + val currentPeriodStart: Instant, + @SerialName("current_period_end") + val currentPeriodEnd: Instant, + val status: SubscriptionStatus, + @SerialName("canceled_at") + val canceledAt: Instant?, + val country: Optional = Optional.Missing(), +) diff --git a/common/src/commonTest/kotlin/json/InteractionTest.kt b/common/src/commonTest/kotlin/json/InteractionTest.kt index 6d73f785727..eaf6bb6aa79 100644 --- a/common/src/commonTest/kotlin/json/InteractionTest.kt +++ b/common/src/commonTest/kotlin/json/InteractionTest.kt @@ -20,6 +20,16 @@ private val perms = Permissions( ManageGuildExpressions, ) +private val testEntitlements = listOf( + DiscordEntitlement( + id = Snowflake.min, + applicationId = Snowflake.min, + skuId = Snowflake.min, + type = EntitlementType.ApplicationSubscription, + deleted = false, + ), +) + class InteractionTest { val json = Json { @@ -51,6 +61,7 @@ class InteractionTest { arg.name shouldBe "testint" arg.value shouldBe 1L appPermissions shouldBe perms + entitlements shouldBe testEntitlements } } @@ -77,6 +88,7 @@ class InteractionTest { arg.name shouldBe "testint" arg.value shouldBe 1L appPermissions shouldBe perms + entitlements shouldBe testEntitlements } } @@ -102,6 +114,7 @@ class InteractionTest { arg.name shouldBe "testint" arg.value shouldBe 1L appPermissions shouldBe perms + entitlements shouldBe testEntitlements } } @@ -142,6 +155,7 @@ class InteractionTest { guildId shouldBe "772904309264089089" id shouldBe "847587388497854464" appPermissions shouldBe perms + entitlements shouldBe testEntitlements } } diff --git a/common/src/commonTest/resources/json/interaction/groupsubcommand.json b/common/src/commonTest/resources/json/interaction/groupsubcommand.json index 1e27103d55d..d006f7b3def 100644 --- a/common/src/commonTest/resources/json/interaction/groupsubcommand.json +++ b/common/src/commonTest/resources/json/interaction/groupsubcommand.json @@ -54,5 +54,14 @@ "application_id": "297153970613387264", "app_permissions": "2147483647", "locale": "de", - "guild_locale": "en-US" + "guild_locale": "en-US", + "entitlements": [ + { + "id":"0", + "application_id":"0", + "sku_id":"0", + "type":8, + "deleted":false + } + ] } diff --git a/common/src/commonTest/resources/json/interaction/rootcommand.json b/common/src/commonTest/resources/json/interaction/rootcommand.json index 9424de1ccbc..e4cb9d35f24 100644 --- a/common/src/commonTest/resources/json/interaction/rootcommand.json +++ b/common/src/commonTest/resources/json/interaction/rootcommand.json @@ -42,5 +42,14 @@ "application_id": "297153970613387264", "app_permissions": "2147483647", "locale": "de", - "guild_locale": "en-US" + "guild_locale": "en-US", + "entitlements": [ + { + "id":"0", + "application_id":"0", + "sku_id":"0", + "type":8, + "deleted":false + } + ] } diff --git a/common/src/commonTest/resources/json/interaction/selectmenu.json b/common/src/commonTest/resources/json/interaction/selectmenu.json index de514c5202d..cdcabba7562 100644 --- a/common/src/commonTest/resources/json/interaction/selectmenu.json +++ b/common/src/commonTest/resources/json/interaction/selectmenu.json @@ -122,5 +122,14 @@ }, "token": "UNIQUE_TOKEN", "type": 3, - "version": 1 + "version": 1, + "entitlements": [ + { + "id":"0", + "application_id":"0", + "sku_id":"0", + "type":8, + "deleted":false + } + ] } diff --git a/common/src/commonTest/resources/json/interaction/subcommand.json b/common/src/commonTest/resources/json/interaction/subcommand.json index 7165eb0220e..9941d0d510e 100644 --- a/common/src/commonTest/resources/json/interaction/subcommand.json +++ b/common/src/commonTest/resources/json/interaction/subcommand.json @@ -48,5 +48,14 @@ "application_id": "297153970613387264", "app_permissions": "2147483647", "locale": "de", - "guild_locale": "en-US" + "guild_locale": "en-US", + "entitlements": [ + { + "id":"0", + "application_id":"0", + "sku_id":"0", + "type":8, + "deleted":false + } + ] } diff --git a/core/api/core.api b/core/api/core.api index 19c163b67c2..c6b9747ca07 100644 --- a/core/api/core.api +++ b/core/api/core.api @@ -37,6 +37,8 @@ public final class dev/kord/core/Kord : kotlinx/coroutines/CoroutineScope { public static synthetic fun getChannel$default (Ldev/kord/core/Kord;Ldev/kord/common/entity/Snowflake;Ldev/kord/core/supplier/EntitySupplyStrategy;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public fun getCoroutineContext ()Lkotlin/coroutines/CoroutineContext; public final fun getDefaultSupplier ()Ldev/kord/core/supplier/EntitySupplier; + public final fun getEntitlements (Ldev/kord/core/supplier/EntitySupplyStrategy;Lkotlin/jvm/functions/Function1;)Lkotlinx/coroutines/flow/Flow; + public static synthetic fun getEntitlements$default (Ldev/kord/core/Kord;Ldev/kord/core/supplier/EntitySupplyStrategy;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lkotlinx/coroutines/flow/Flow; public final fun getEvents ()Lkotlinx/coroutines/flow/SharedFlow; public final fun getGateway ()Ldev/kord/core/gateway/MasterGateway; public final fun getGlobalApplicationCommand (Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; @@ -69,6 +71,7 @@ public final class dev/kord/core/Kord : kotlinx/coroutines/CoroutineScope { public final fun getSelf (Ldev/kord/core/supplier/EntitySupplyStrategy;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun getSelf$default (Ldev/kord/core/Kord;Ldev/kord/core/supplier/EntitySupplyStrategy;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public final fun getSelfId ()Ldev/kord/common/entity/Snowflake; + public final fun getSkus (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public final fun getSticker (Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public final fun getUnsafe ()Ldev/kord/core/Unsafe; public final fun getUser (Ldev/kord/common/entity/Snowflake;Ldev/kord/core/supplier/EntitySupplyStrategy;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; @@ -138,6 +141,8 @@ public final class dev/kord/core/Unsafe { public final fun privateThreadParent (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;)Ldev/kord/core/behavior/channel/threads/PrivateThreadParentChannelBehavior; public final fun publicThreadParent (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;)Ldev/kord/core/behavior/channel/threads/ThreadParentChannelBehavior; public final fun role (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;)Ldev/kord/core/behavior/RoleBehavior; + public final fun sku (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;)Ldev/kord/core/behavior/monetization/SkuBehavior; + public static synthetic fun sku$default (Ldev/kord/core/Unsafe;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;ILjava/lang/Object;)Ldev/kord/core/behavior/monetization/SkuBehavior; public final fun spamAutoModerationRule (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;)Ldev/kord/core/behavior/automoderation/SpamAutoModerationRuleBehavior; public final fun stageInstance (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;)Ldev/kord/core/behavior/StageInstanceBehavior; public final fun textChannel (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;)Ldev/kord/core/behavior/channel/TextChannelBehavior; @@ -2123,6 +2128,29 @@ public final class dev/kord/core/behavior/interaction/response/PublicMessageInte public static fun withStrategy (Ldev/kord/core/behavior/interaction/response/PublicMessageInteractionResponseBehavior;Ldev/kord/core/supplier/EntitySupplyStrategy;)Ldev/kord/core/behavior/interaction/response/PublicMessageInteractionResponseBehavior; } +public abstract interface class dev/kord/core/behavior/monetization/SkuBehavior : dev/kord/core/entity/KordEntity, dev/kord/core/entity/Strategizable { + public abstract fun createTestEntitlement (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/EntitlementOwnerType;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun createTestEntitlement (Ldev/kord/core/behavior/GuildBehavior;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun createTestEntitlement (Ldev/kord/core/behavior/UserBehavior;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun getApplicationId ()Ldev/kord/common/entity/Snowflake; + public abstract fun getSubscription (Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun getSubscriptionOrNull (Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun withStrategy (Ldev/kord/core/supplier/EntitySupplyStrategy;)Ldev/kord/core/behavior/monetization/SkuBehavior; +} + +public final class dev/kord/core/behavior/monetization/SkuBehavior$DefaultImpls { + public static fun compareTo (Ldev/kord/core/behavior/monetization/SkuBehavior;Ldev/kord/core/entity/Entity;)I + public static fun createTestEntitlement (Ldev/kord/core/behavior/monetization/SkuBehavior;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/EntitlementOwnerType;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static fun createTestEntitlement (Ldev/kord/core/behavior/monetization/SkuBehavior;Ldev/kord/core/behavior/GuildBehavior;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static fun createTestEntitlement (Ldev/kord/core/behavior/monetization/SkuBehavior;Ldev/kord/core/behavior/UserBehavior;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static fun getSubscription (Ldev/kord/core/behavior/monetization/SkuBehavior;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static fun getSubscriptionOrNull (Ldev/kord/core/behavior/monetization/SkuBehavior;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; +} + +public final class dev/kord/core/behavior/monetization/SkuBehaviorKt { + public static final fun getSubscriptions (Ldev/kord/core/behavior/monetization/SkuBehavior;Lkotlin/jvm/functions/Function1;)Lkotlinx/coroutines/flow/Flow; +} + public final class dev/kord/core/builder/components/ButtonBuilderExtensionsKt { public static final fun emoji (Ldev/kord/rest/builder/component/ButtonBuilder;Ldev/kord/core/entity/GuildEmoji;)V public static final fun emoji (Ldev/kord/rest/builder/component/ButtonBuilder;Ldev/kord/core/entity/ReactionEmoji$Custom;)V @@ -2226,6 +2254,7 @@ public final class dev/kord/core/cache/KordCacheBuilder { public final fun channels (Lkotlin/jvm/functions/Function2;)V public final fun disableAll ()V public final fun emojis (Lkotlin/jvm/functions/Function2;)V + public final fun entitlements (Lkotlin/jvm/functions/Function2;)V public final fun forDescription (Ldev/kord/cache/api/data/DataDescription;Lkotlin/jvm/functions/Function2;)V public final fun getDefaultGenerator ()Lkotlin/jvm/functions/Function2; public final fun guilds (Lkotlin/jvm/functions/Function2;)V @@ -2236,6 +2265,7 @@ public final class dev/kord/core/cache/KordCacheBuilder { public final fun roles (Lkotlin/jvm/functions/Function2;)V public final fun setDefaultGenerator (Lkotlin/jvm/functions/Function2;)V public final fun stickers (Lkotlin/jvm/functions/Function2;)V + public final fun subscriptions (Lkotlin/jvm/functions/Function2;)V public final fun users (Lkotlin/jvm/functions/Function2;)V public final fun voiceState (Lkotlin/jvm/functions/Function2;)V public final fun webhooks (Lkotlin/jvm/functions/Function2;)V @@ -3056,8 +3086,8 @@ public final class dev/kord/core/cache/data/ChannelDataKt { public final class dev/kord/core/cache/data/ChatComponentData : dev/kord/core/cache/data/ComponentData { public static final field Companion Ldev/kord/core/cache/data/ChatComponentData$Companion; - public fun (Ldev/kord/common/entity/ComponentType;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;)V - public synthetic fun (Ldev/kord/common/entity/ComponentType;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public fun (Ldev/kord/common/entity/ComponentType;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalSnowflake;)V + public synthetic fun (Ldev/kord/common/entity/ComponentType;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalSnowflake;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1 ()Ldev/kord/common/entity/ComponentType; public final fun component10 ()Ldev/kord/common/entity/optional/Optional; public final fun component11 ()Ldev/kord/common/entity/optional/OptionalInt; @@ -3068,6 +3098,7 @@ public final class dev/kord/core/cache/data/ChatComponentData : dev/kord/core/ca public final fun component16 ()Ldev/kord/common/entity/optional/OptionalBoolean; public final fun component17 ()Ldev/kord/common/entity/optional/Optional; public final fun component18 ()Ldev/kord/common/entity/optional/Optional; + public final fun component19 ()Ldev/kord/common/entity/optional/OptionalSnowflake; public final fun component2 ()Ldev/kord/common/entity/optional/Optional; public final fun component3 ()Ldev/kord/common/entity/optional/Optional; public final fun component4 ()Ldev/kord/common/entity/optional/Optional; @@ -3076,8 +3107,8 @@ public final class dev/kord/core/cache/data/ChatComponentData : dev/kord/core/ca public final fun component7 ()Ldev/kord/common/entity/optional/OptionalBoolean; public final fun component8 ()Ldev/kord/common/entity/optional/Optional; public final fun component9 ()Ldev/kord/common/entity/optional/Optional; - public final fun copy (Ldev/kord/common/entity/ComponentType;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;)Ldev/kord/core/cache/data/ChatComponentData; - public static synthetic fun copy$default (Ldev/kord/core/cache/data/ChatComponentData;Ldev/kord/common/entity/ComponentType;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;ILjava/lang/Object;)Ldev/kord/core/cache/data/ChatComponentData; + public final fun copy (Ldev/kord/common/entity/ComponentType;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalSnowflake;)Ldev/kord/core/cache/data/ChatComponentData; + public static synthetic fun copy$default (Ldev/kord/core/cache/data/ChatComponentData;Ldev/kord/common/entity/ComponentType;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalSnowflake;ILjava/lang/Object;)Ldev/kord/core/cache/data/ChatComponentData; public fun equals (Ljava/lang/Object;)Z public fun getChannelTypes ()Ldev/kord/common/entity/optional/Optional; public fun getComponents ()Ldev/kord/common/entity/optional/Optional; @@ -3093,6 +3124,7 @@ public final class dev/kord/core/cache/data/ChatComponentData : dev/kord/core/ca public fun getOptions ()Ldev/kord/common/entity/optional/Optional; public fun getPlaceholder ()Ldev/kord/common/entity/optional/Optional; public fun getRequired ()Ldev/kord/common/entity/optional/OptionalBoolean; + public final fun getSkuId ()Ldev/kord/common/entity/optional/OptionalSnowflake; public final fun getStyle ()Ldev/kord/common/entity/optional/Optional; public fun getType ()Ldev/kord/common/entity/ComponentType; public fun getUrl ()Ldev/kord/common/entity/optional/Optional; @@ -3522,6 +3554,54 @@ public final class dev/kord/core/cache/data/EmojiDataKt { public static final fun toData (Ldev/kord/common/entity/DiscordEmoji;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;)Ldev/kord/core/cache/data/EmojiData; } +public final class dev/kord/core/cache/data/EntitlementData { + public static final field Companion Ldev/kord/core/cache/data/EntitlementData$Companion; + public fun (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/EntitlementType;ZLdev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/optional/OptionalBoolean;)V + public synthetic fun (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/EntitlementType;ZLdev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/optional/OptionalBoolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ldev/kord/common/entity/Snowflake; + public final fun component10 ()Ldev/kord/common/entity/optional/OptionalBoolean; + public final fun component2 ()Ldev/kord/common/entity/Snowflake; + public final fun component3 ()Ldev/kord/common/entity/Snowflake; + public final fun component4 ()Ldev/kord/common/entity/optional/OptionalSnowflake; + public final fun component5 ()Ldev/kord/common/entity/EntitlementType; + public final fun component6 ()Z + public final fun component7 ()Ldev/kord/common/entity/optional/Optional; + public final fun component8 ()Ldev/kord/common/entity/optional/Optional; + public final fun component9 ()Ldev/kord/common/entity/optional/OptionalSnowflake; + public final fun copy (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/EntitlementType;ZLdev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/optional/OptionalBoolean;)Ldev/kord/core/cache/data/EntitlementData; + public static synthetic fun copy$default (Ldev/kord/core/cache/data/EntitlementData;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/EntitlementType;ZLdev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/optional/OptionalBoolean;ILjava/lang/Object;)Ldev/kord/core/cache/data/EntitlementData; + public fun equals (Ljava/lang/Object;)Z + public final fun getApplicationId ()Ldev/kord/common/entity/Snowflake; + public final fun getConsumed ()Ldev/kord/common/entity/optional/OptionalBoolean; + public final fun getDeleted ()Z + public final fun getEndsAt ()Ldev/kord/common/entity/optional/Optional; + public final fun getGuildId ()Ldev/kord/common/entity/optional/OptionalSnowflake; + public final fun getId ()Ldev/kord/common/entity/Snowflake; + public final fun getSkuId ()Ldev/kord/common/entity/Snowflake; + public final fun getStartsAt ()Ldev/kord/common/entity/optional/Optional; + public final fun getType ()Ldev/kord/common/entity/EntitlementType; + public final fun getUserId ()Ldev/kord/common/entity/optional/OptionalSnowflake; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public synthetic class dev/kord/core/cache/data/EntitlementData$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Ldev/kord/core/cache/data/EntitlementData$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/kord/core/cache/data/EntitlementData; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Ldev/kord/core/cache/data/EntitlementData;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class dev/kord/core/cache/data/EntitlementData$Companion { + public final fun from (Ldev/kord/common/entity/DiscordEntitlement;)Ldev/kord/core/cache/data/EntitlementData; + public final fun getDescription ()Ldev/kord/cache/api/data/DataDescription; + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class dev/kord/core/cache/data/GuildApplicationCommandPermissionData { public static final field Companion Ldev/kord/core/cache/data/GuildApplicationCommandPermissionData$Companion; public fun (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/ApplicationCommandPermissionType;Z)V @@ -3908,8 +3988,8 @@ public final class dev/kord/core/cache/data/IntegrationsAccountData$Companion { public final class dev/kord/core/cache/data/InteractionData { public static final field Companion Ldev/kord/core/cache/data/InteractionData$Companion; - public fun (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/InteractionType;Ldev/kord/core/cache/data/ApplicationInteractionData;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ljava/lang/String;Ldev/kord/common/entity/optional/Optional;ILdev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;)V - public synthetic fun (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/InteractionType;Ldev/kord/core/cache/data/ApplicationInteractionData;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ljava/lang/String;Ldev/kord/common/entity/optional/Optional;ILdev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public fun (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/InteractionType;Ldev/kord/core/cache/data/ApplicationInteractionData;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ljava/lang/String;Ldev/kord/common/entity/optional/Optional;ILdev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;)V + public synthetic fun (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/InteractionType;Ldev/kord/core/cache/data/ApplicationInteractionData;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ljava/lang/String;Ldev/kord/common/entity/optional/Optional;ILdev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1 ()Ldev/kord/common/entity/Snowflake; public final fun component10 ()Ljava/lang/String; public final fun component11 ()Ldev/kord/common/entity/optional/Optional; @@ -3918,6 +3998,7 @@ public final class dev/kord/core/cache/data/InteractionData { public final fun component14 ()Ldev/kord/common/entity/optional/Optional; public final fun component15 ()Ldev/kord/common/entity/optional/Optional; public final fun component16 ()Ldev/kord/common/entity/optional/Optional; + public final fun component17 ()Ldev/kord/common/entity/optional/Optional; public final fun component2 ()Ldev/kord/common/entity/Snowflake; public final fun component3 ()Ldev/kord/common/entity/InteractionType; public final fun component4 ()Ldev/kord/core/cache/data/ApplicationInteractionData; @@ -3926,14 +4007,15 @@ public final class dev/kord/core/cache/data/InteractionData { public final fun component7 ()Ldev/kord/common/entity/optional/OptionalSnowflake; public final fun component8 ()Ldev/kord/common/entity/optional/Optional; public final fun component9 ()Ldev/kord/common/entity/optional/Optional; - public final fun copy (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/InteractionType;Ldev/kord/core/cache/data/ApplicationInteractionData;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ljava/lang/String;Ldev/kord/common/entity/optional/Optional;ILdev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;)Ldev/kord/core/cache/data/InteractionData; - public static synthetic fun copy$default (Ldev/kord/core/cache/data/InteractionData;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/InteractionType;Ldev/kord/core/cache/data/ApplicationInteractionData;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ljava/lang/String;Ldev/kord/common/entity/optional/Optional;ILdev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;ILjava/lang/Object;)Ldev/kord/core/cache/data/InteractionData; + public final fun copy (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/InteractionType;Ldev/kord/core/cache/data/ApplicationInteractionData;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ljava/lang/String;Ldev/kord/common/entity/optional/Optional;ILdev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;)Ldev/kord/core/cache/data/InteractionData; + public static synthetic fun copy$default (Ldev/kord/core/cache/data/InteractionData;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/InteractionType;Ldev/kord/core/cache/data/ApplicationInteractionData;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ljava/lang/String;Ldev/kord/common/entity/optional/Optional;ILdev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;ILjava/lang/Object;)Ldev/kord/core/cache/data/InteractionData; public fun equals (Ljava/lang/Object;)Z public final fun getAppPermissions ()Ldev/kord/common/entity/optional/Optional; public final fun getApplicationId ()Ldev/kord/common/entity/Snowflake; public final fun getChannel ()Ldev/kord/common/entity/optional/Optional; public final fun getChannelId ()Ldev/kord/common/entity/optional/OptionalSnowflake; public final fun getData ()Ldev/kord/core/cache/data/ApplicationInteractionData; + public final fun getEntitlements ()Ldev/kord/common/entity/optional/Optional; public final fun getGuildId ()Ldev/kord/common/entity/optional/OptionalSnowflake; public final fun getGuildLocale ()Ldev/kord/common/entity/optional/Optional; public final fun getId ()Ldev/kord/common/entity/Snowflake; @@ -5114,6 +5196,52 @@ public final class dev/kord/core/cache/data/StickerPackData$Companion { public final fun getDescription ()Ldev/kord/cache/api/data/DataDescription; } +public final class dev/kord/core/cache/data/SubscriptionData { + public static final field Companion Ldev/kord/core/cache/data/SubscriptionData$Companion; + public fun (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ljava/util/List;Ljava/util/List;Lkotlinx/datetime/Instant;Lkotlinx/datetime/Instant;Ldev/kord/common/entity/SubscriptionStatus;Lkotlinx/datetime/Instant;Ldev/kord/common/entity/optional/Optional;)V + public synthetic fun (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ljava/util/List;Ljava/util/List;Lkotlinx/datetime/Instant;Lkotlinx/datetime/Instant;Ldev/kord/common/entity/SubscriptionStatus;Lkotlinx/datetime/Instant;Ldev/kord/common/entity/optional/Optional;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ldev/kord/common/entity/Snowflake; + public final fun component2 ()Ldev/kord/common/entity/Snowflake; + public final fun component3 ()Ljava/util/List; + public final fun component4 ()Ljava/util/List; + public final fun component5 ()Lkotlinx/datetime/Instant; + public final fun component6 ()Lkotlinx/datetime/Instant; + public final fun component7 ()Ldev/kord/common/entity/SubscriptionStatus; + public final fun component8 ()Lkotlinx/datetime/Instant; + public final fun component9 ()Ldev/kord/common/entity/optional/Optional; + public final fun copy (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ljava/util/List;Ljava/util/List;Lkotlinx/datetime/Instant;Lkotlinx/datetime/Instant;Ldev/kord/common/entity/SubscriptionStatus;Lkotlinx/datetime/Instant;Ldev/kord/common/entity/optional/Optional;)Ldev/kord/core/cache/data/SubscriptionData; + public static synthetic fun copy$default (Ldev/kord/core/cache/data/SubscriptionData;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ljava/util/List;Ljava/util/List;Lkotlinx/datetime/Instant;Lkotlinx/datetime/Instant;Ldev/kord/common/entity/SubscriptionStatus;Lkotlinx/datetime/Instant;Ldev/kord/common/entity/optional/Optional;ILjava/lang/Object;)Ldev/kord/core/cache/data/SubscriptionData; + public fun equals (Ljava/lang/Object;)Z + public final fun getCanceledAt ()Lkotlinx/datetime/Instant; + public final fun getCountry ()Ldev/kord/common/entity/optional/Optional; + public final fun getCurrentPeriodEnd ()Lkotlinx/datetime/Instant; + public final fun getCurrentPeriodStart ()Lkotlinx/datetime/Instant; + public final fun getEntitlementIds ()Ljava/util/List; + public final fun getId ()Ldev/kord/common/entity/Snowflake; + public final fun getSkuIds ()Ljava/util/List; + public final fun getStatus ()Ldev/kord/common/entity/SubscriptionStatus; + public final fun getUserId ()Ldev/kord/common/entity/Snowflake; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public synthetic class dev/kord/core/cache/data/SubscriptionData$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Ldev/kord/core/cache/data/SubscriptionData$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/kord/core/cache/data/SubscriptionData; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Ldev/kord/core/cache/data/SubscriptionData;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class dev/kord/core/cache/data/SubscriptionData$Companion { + public final fun from (Ldev/kord/common/entity/DiscordSubscription;)Ldev/kord/core/cache/data/SubscriptionData; + public final fun getDescription ()Ldev/kord/cache/api/data/DataDescription; + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class dev/kord/core/cache/data/TeamData { public static final field Companion Ldev/kord/core/cache/data/TeamData$Companion; public fun (Ldev/kord/common/entity/Snowflake;Ljava/lang/String;Ljava/util/List;Ldev/kord/common/entity/Snowflake;Ljava/lang/String;)V @@ -8934,6 +9062,7 @@ public final class dev/kord/core/entity/component/ActionRowComponent : dev/kord/ public fun getData ()Ldev/kord/core/cache/data/ComponentData; public final fun getInteractionButtons ()Ljava/util/Map; public final fun getLinkButtons ()Ljava/util/List; + public final fun getPremiumButtons ()Ljava/util/List; public final fun getSelectMenus ()Ljava/util/Map; public final fun getTextInputs ()Ljava/util/Map; public fun getType ()Ldev/kord/common/entity/ComponentType$ActionRow; @@ -8949,6 +9078,7 @@ public final class dev/kord/core/entity/component/ButtonComponent : dev/kord/cor public final fun getDisabled ()Z public final fun getEmoji ()Ldev/kord/core/entity/ReactionEmoji; public final fun getLabel ()Ljava/lang/String; + public final fun getSkuId ()Ldev/kord/common/entity/Snowflake; public final fun getStyle ()Ldev/kord/common/entity/ButtonStyle; public fun getType ()Ldev/kord/common/entity/ComponentType$Button; public synthetic fun getType ()Ldev/kord/common/entity/ComponentType; @@ -9109,6 +9239,7 @@ public final class dev/kord/core/entity/interaction/ActionInteraction$DefaultImp public static fun getChannel (Ldev/kord/core/entity/interaction/ActionInteraction;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static fun getChannelId (Ldev/kord/core/entity/interaction/ActionInteraction;)Ldev/kord/common/entity/Snowflake; public static fun getChannelOrNull (Ldev/kord/core/entity/interaction/ActionInteraction;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static fun getEntitlements (Ldev/kord/core/entity/interaction/ActionInteraction;)Ljava/util/List; public static fun getGuildLocale (Ldev/kord/core/entity/interaction/ActionInteraction;)Ldev/kord/common/Locale; public static fun getId (Ldev/kord/core/entity/interaction/ActionInteraction;)Ldev/kord/common/entity/Snowflake; public static fun getLocale (Ldev/kord/core/entity/interaction/ActionInteraction;)Ldev/kord/common/Locale; @@ -9139,6 +9270,7 @@ public final class dev/kord/core/entity/interaction/ApplicationCommandInteractio public static fun getChannel (Ldev/kord/core/entity/interaction/ApplicationCommandInteraction;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static fun getChannelId (Ldev/kord/core/entity/interaction/ApplicationCommandInteraction;)Ldev/kord/common/entity/Snowflake; public static fun getChannelOrNull (Ldev/kord/core/entity/interaction/ApplicationCommandInteraction;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static fun getEntitlements (Ldev/kord/core/entity/interaction/ApplicationCommandInteraction;)Ljava/util/List; public static fun getGuildLocale (Ldev/kord/core/entity/interaction/ApplicationCommandInteraction;)Ldev/kord/common/Locale; public static fun getId (Ldev/kord/core/entity/interaction/ApplicationCommandInteraction;)Ldev/kord/common/entity/Snowflake; public static fun getInvokedCommandGuildId (Ldev/kord/core/entity/interaction/ApplicationCommandInteraction;)Ldev/kord/common/entity/Snowflake; @@ -9185,6 +9317,7 @@ public final class dev/kord/core/entity/interaction/AutoCompleteInteraction$Defa public static fun getChannelId (Ldev/kord/core/entity/interaction/AutoCompleteInteraction;)Ldev/kord/common/entity/Snowflake; public static fun getChannelOrNull (Ldev/kord/core/entity/interaction/AutoCompleteInteraction;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static fun getCommand (Ldev/kord/core/entity/interaction/AutoCompleteInteraction;)Ldev/kord/core/entity/interaction/InteractionCommand; + public static fun getEntitlements (Ldev/kord/core/entity/interaction/AutoCompleteInteraction;)Ljava/util/List; public static fun getFocusedOption (Ldev/kord/core/entity/interaction/AutoCompleteInteraction;)Ldev/kord/core/entity/interaction/StringOptionValue; public static fun getGuildLocale (Ldev/kord/core/entity/interaction/AutoCompleteInteraction;)Ldev/kord/common/Locale; public static fun getId (Ldev/kord/core/entity/interaction/AutoCompleteInteraction;)Ldev/kord/common/entity/Snowflake; @@ -9223,6 +9356,7 @@ public final class dev/kord/core/entity/interaction/ButtonInteraction$DefaultImp public static fun getComponent (Ldev/kord/core/entity/interaction/ButtonInteraction;)Ldev/kord/core/entity/component/ButtonComponent; public static fun getComponentId (Ldev/kord/core/entity/interaction/ButtonInteraction;)Ljava/lang/String; public static fun getComponentType (Ldev/kord/core/entity/interaction/ButtonInteraction;)Ldev/kord/common/entity/ComponentType; + public static fun getEntitlements (Ldev/kord/core/entity/interaction/ButtonInteraction;)Ljava/util/List; public static fun getGuildLocale (Ldev/kord/core/entity/interaction/ButtonInteraction;)Ldev/kord/common/Locale; public static fun getId (Ldev/kord/core/entity/interaction/ButtonInteraction;)Ldev/kord/common/entity/Snowflake; public static fun getLocale (Ldev/kord/core/entity/interaction/ButtonInteraction;)Ldev/kord/common/Locale; @@ -9261,6 +9395,7 @@ public final class dev/kord/core/entity/interaction/ChatInputCommandInteraction$ public static fun getChannelId (Ldev/kord/core/entity/interaction/ChatInputCommandInteraction;)Ldev/kord/common/entity/Snowflake; public static fun getChannelOrNull (Ldev/kord/core/entity/interaction/ChatInputCommandInteraction;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static fun getCommand (Ldev/kord/core/entity/interaction/ChatInputCommandInteraction;)Ldev/kord/core/entity/interaction/InteractionCommand; + public static fun getEntitlements (Ldev/kord/core/entity/interaction/ChatInputCommandInteraction;)Ljava/util/List; public static fun getGuildLocale (Ldev/kord/core/entity/interaction/ChatInputCommandInteraction;)Ldev/kord/common/Locale; public static fun getId (Ldev/kord/core/entity/interaction/ChatInputCommandInteraction;)Ldev/kord/common/entity/Snowflake; public static fun getInvokedCommandGuildId (Ldev/kord/core/entity/interaction/ChatInputCommandInteraction;)Ldev/kord/common/entity/Snowflake; @@ -9299,6 +9434,7 @@ public final class dev/kord/core/entity/interaction/ComponentInteraction$Default public static fun getChannelOrNull (Ldev/kord/core/entity/interaction/ComponentInteraction;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static fun getComponentId (Ldev/kord/core/entity/interaction/ComponentInteraction;)Ljava/lang/String; public static fun getComponentType (Ldev/kord/core/entity/interaction/ComponentInteraction;)Ldev/kord/common/entity/ComponentType; + public static fun getEntitlements (Ldev/kord/core/entity/interaction/ComponentInteraction;)Ljava/util/List; public static fun getGuildLocale (Ldev/kord/core/entity/interaction/ComponentInteraction;)Ldev/kord/common/Locale; public static fun getId (Ldev/kord/core/entity/interaction/ComponentInteraction;)Ldev/kord/common/entity/Snowflake; public static fun getLocale (Ldev/kord/core/entity/interaction/ComponentInteraction;)Ldev/kord/common/Locale; @@ -9326,6 +9462,7 @@ public final class dev/kord/core/entity/interaction/DataInteraction$DefaultImpls public static fun getChannel (Ldev/kord/core/entity/interaction/DataInteraction;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static fun getChannelId (Ldev/kord/core/entity/interaction/DataInteraction;)Ldev/kord/common/entity/Snowflake; public static fun getChannelOrNull (Ldev/kord/core/entity/interaction/DataInteraction;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static fun getEntitlements (Ldev/kord/core/entity/interaction/DataInteraction;)Ljava/util/List; public static fun getGuildLocale (Ldev/kord/core/entity/interaction/DataInteraction;)Ldev/kord/common/Locale; public static fun getId (Ldev/kord/core/entity/interaction/DataInteraction;)Ldev/kord/common/entity/Snowflake; public static fun getLocale (Ldev/kord/core/entity/interaction/DataInteraction;)Ldev/kord/common/Locale; @@ -9349,6 +9486,7 @@ public final class dev/kord/core/entity/interaction/GlobalApplicationCommandInte public static fun getChannel (Ldev/kord/core/entity/interaction/GlobalApplicationCommandInteraction;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static fun getChannelId (Ldev/kord/core/entity/interaction/GlobalApplicationCommandInteraction;)Ldev/kord/common/entity/Snowflake; public static fun getChannelOrNull (Ldev/kord/core/entity/interaction/GlobalApplicationCommandInteraction;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static fun getEntitlements (Ldev/kord/core/entity/interaction/GlobalApplicationCommandInteraction;)Ljava/util/List; public static fun getGuildLocale (Ldev/kord/core/entity/interaction/GlobalApplicationCommandInteraction;)Ldev/kord/common/Locale; public static fun getId (Ldev/kord/core/entity/interaction/GlobalApplicationCommandInteraction;)Ldev/kord/common/entity/Snowflake; public static fun getInvokedCommandGuildId (Ldev/kord/core/entity/interaction/GlobalApplicationCommandInteraction;)Ldev/kord/common/entity/Snowflake; @@ -9379,6 +9517,7 @@ public final class dev/kord/core/entity/interaction/GlobalAutoCompleteInteractio public fun getChannelOrNull (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun getCommand ()Ldev/kord/core/entity/interaction/InteractionCommand; public fun getData ()Ldev/kord/core/cache/data/InteractionData; + public fun getEntitlements ()Ljava/util/List; public fun getFocusedOption ()Ldev/kord/core/entity/interaction/StringOptionValue; public fun getGuildLocale ()Ldev/kord/common/Locale; public fun getId ()Ldev/kord/common/entity/Snowflake; @@ -9424,6 +9563,7 @@ public final class dev/kord/core/entity/interaction/GlobalButtonInteraction : de public fun getComponentId ()Ljava/lang/String; public fun getComponentType ()Ldev/kord/common/entity/ComponentType; public fun getData ()Ldev/kord/core/cache/data/InteractionData; + public fun getEntitlements ()Ljava/util/List; public fun getGuildLocale ()Ldev/kord/common/Locale; public fun getId ()Ldev/kord/common/entity/Snowflake; public fun getKord ()Ldev/kord/core/Kord; @@ -9469,6 +9609,7 @@ public final class dev/kord/core/entity/interaction/GlobalChatInputCommandIntera public fun getChannelOrNull (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun getCommand ()Ldev/kord/core/entity/interaction/InteractionCommand; public fun getData ()Ldev/kord/core/cache/data/InteractionData; + public fun getEntitlements ()Ljava/util/List; public fun getGuildLocale ()Ldev/kord/common/Locale; public fun getId ()Ldev/kord/common/entity/Snowflake; public fun getInvokedCommandGuildId ()Ldev/kord/common/entity/Snowflake; @@ -9521,6 +9662,7 @@ public final class dev/kord/core/entity/interaction/GlobalComponentInteraction$D public static fun getChannelOrNull (Ldev/kord/core/entity/interaction/GlobalComponentInteraction;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static fun getComponentId (Ldev/kord/core/entity/interaction/GlobalComponentInteraction;)Ljava/lang/String; public static fun getComponentType (Ldev/kord/core/entity/interaction/GlobalComponentInteraction;)Ldev/kord/common/entity/ComponentType; + public static fun getEntitlements (Ldev/kord/core/entity/interaction/GlobalComponentInteraction;)Ljava/util/List; public static fun getGuildLocale (Ldev/kord/core/entity/interaction/GlobalComponentInteraction;)Ldev/kord/common/Locale; public static fun getId (Ldev/kord/core/entity/interaction/GlobalComponentInteraction;)Ldev/kord/common/entity/Snowflake; public static fun getLocale (Ldev/kord/core/entity/interaction/GlobalComponentInteraction;)Ldev/kord/common/Locale; @@ -9545,6 +9687,7 @@ public final class dev/kord/core/entity/interaction/GlobalInteraction$DefaultImp public static fun getChannel (Ldev/kord/core/entity/interaction/GlobalInteraction;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static fun getChannelId (Ldev/kord/core/entity/interaction/GlobalInteraction;)Ldev/kord/common/entity/Snowflake; public static fun getChannelOrNull (Ldev/kord/core/entity/interaction/GlobalInteraction;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static fun getEntitlements (Ldev/kord/core/entity/interaction/GlobalInteraction;)Ljava/util/List; public static fun getGuildLocale (Ldev/kord/core/entity/interaction/GlobalInteraction;)Ldev/kord/common/Locale; public static fun getId (Ldev/kord/core/entity/interaction/GlobalInteraction;)Ldev/kord/common/entity/Snowflake; public static fun getLocale (Ldev/kord/core/entity/interaction/GlobalInteraction;)Ldev/kord/common/Locale; @@ -9569,6 +9712,7 @@ public final class dev/kord/core/entity/interaction/GlobalMessageCommandInteract public fun getChannelId ()Ldev/kord/common/entity/Snowflake; public fun getChannelOrNull (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun getData ()Ldev/kord/core/cache/data/InteractionData; + public fun getEntitlements ()Ljava/util/List; public fun getGuildLocale ()Ldev/kord/common/Locale; public fun getId ()Ldev/kord/common/entity/Snowflake; public fun getInvokedCommandGuildId ()Ldev/kord/common/entity/Snowflake; @@ -9626,6 +9770,7 @@ public final class dev/kord/core/entity/interaction/GlobalModalSubmitInteraction public fun getChannelId ()Ldev/kord/common/entity/Snowflake; public fun getChannelOrNull (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun getData ()Ldev/kord/core/cache/data/InteractionData; + public fun getEntitlements ()Ljava/util/List; public fun getGuildLocale ()Ldev/kord/common/Locale; public fun getId ()Ldev/kord/common/entity/Snowflake; public fun getKord ()Ldev/kord/core/Kord; @@ -9675,6 +9820,7 @@ public final class dev/kord/core/entity/interaction/GlobalSelectMenuInteraction public fun getComponentId ()Ljava/lang/String; public fun getComponentType ()Ldev/kord/common/entity/ComponentType; public fun getData ()Ldev/kord/core/cache/data/InteractionData; + public fun getEntitlements ()Ljava/util/List; public fun getGuildLocale ()Ldev/kord/common/Locale; public fun getId ()Ldev/kord/common/entity/Snowflake; public fun getKord ()Ldev/kord/core/Kord; @@ -9721,6 +9867,7 @@ public final class dev/kord/core/entity/interaction/GlobalUserCommandInteraction public fun getChannelId ()Ldev/kord/common/entity/Snowflake; public fun getChannelOrNull (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun getData ()Ldev/kord/core/cache/data/InteractionData; + public fun getEntitlements ()Ljava/util/List; public fun getGuildLocale ()Ldev/kord/common/Locale; public fun getId ()Ldev/kord/common/entity/Snowflake; public fun getInvokedCommandGuildId ()Ldev/kord/common/entity/Snowflake; @@ -9797,6 +9944,7 @@ public final class dev/kord/core/entity/interaction/GuildApplicationCommandInter public static fun getChannel (Ldev/kord/core/entity/interaction/GuildApplicationCommandInteraction;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static fun getChannelId (Ldev/kord/core/entity/interaction/GuildApplicationCommandInteraction;)Ldev/kord/common/entity/Snowflake; public static fun getChannelOrNull (Ldev/kord/core/entity/interaction/GuildApplicationCommandInteraction;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static fun getEntitlements (Ldev/kord/core/entity/interaction/GuildApplicationCommandInteraction;)Ljava/util/List; public static fun getGuild (Ldev/kord/core/entity/interaction/GuildApplicationCommandInteraction;)Ldev/kord/core/behavior/GuildBehavior; public static fun getGuild (Ldev/kord/core/entity/interaction/GuildApplicationCommandInteraction;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static fun getGuildId (Ldev/kord/core/entity/interaction/GuildApplicationCommandInteraction;)Ldev/kord/common/entity/Snowflake; @@ -9834,6 +9982,7 @@ public final class dev/kord/core/entity/interaction/GuildAutoCompleteInteraction public fun getChannelOrNull (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun getCommand ()Ldev/kord/core/entity/interaction/InteractionCommand; public fun getData ()Ldev/kord/core/cache/data/InteractionData; + public fun getEntitlements ()Ljava/util/List; public fun getFocusedOption ()Ldev/kord/core/entity/interaction/StringOptionValue; public fun getGuild ()Ldev/kord/core/behavior/GuildBehavior; public fun getGuild (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; @@ -9887,6 +10036,7 @@ public final class dev/kord/core/entity/interaction/GuildButtonInteraction : dev public fun getComponentId ()Ljava/lang/String; public fun getComponentType ()Ldev/kord/common/entity/ComponentType; public fun getData ()Ldev/kord/core/cache/data/InteractionData; + public fun getEntitlements ()Ljava/util/List; public fun getGuild ()Ldev/kord/core/behavior/GuildBehavior; public fun getGuild (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun getGuildId ()Ldev/kord/common/entity/Snowflake; @@ -9940,6 +10090,7 @@ public final class dev/kord/core/entity/interaction/GuildChatInputCommandInterac public fun getChannelOrNull (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun getCommand ()Ldev/kord/core/entity/interaction/InteractionCommand; public fun getData ()Ldev/kord/core/cache/data/InteractionData; + public fun getEntitlements ()Ljava/util/List; public fun getGuild ()Ldev/kord/core/behavior/GuildBehavior; public fun getGuild (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun getGuildId ()Ldev/kord/common/entity/Snowflake; @@ -9999,6 +10150,7 @@ public final class dev/kord/core/entity/interaction/GuildComponentInteraction$De public static fun getChannelOrNull (Ldev/kord/core/entity/interaction/GuildComponentInteraction;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static fun getComponentId (Ldev/kord/core/entity/interaction/GuildComponentInteraction;)Ljava/lang/String; public static fun getComponentType (Ldev/kord/core/entity/interaction/GuildComponentInteraction;)Ldev/kord/common/entity/ComponentType; + public static fun getEntitlements (Ldev/kord/core/entity/interaction/GuildComponentInteraction;)Ljava/util/List; public static fun getGuild (Ldev/kord/core/entity/interaction/GuildComponentInteraction;)Ldev/kord/core/behavior/GuildBehavior; public static fun getGuild (Ldev/kord/core/entity/interaction/GuildComponentInteraction;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static fun getGuildId (Ldev/kord/core/entity/interaction/GuildComponentInteraction;)Ldev/kord/common/entity/Snowflake; @@ -10032,6 +10184,7 @@ public final class dev/kord/core/entity/interaction/GuildInteraction$DefaultImpl public static fun getChannel (Ldev/kord/core/entity/interaction/GuildInteraction;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static fun getChannelId (Ldev/kord/core/entity/interaction/GuildInteraction;)Ldev/kord/common/entity/Snowflake; public static fun getChannelOrNull (Ldev/kord/core/entity/interaction/GuildInteraction;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static fun getEntitlements (Ldev/kord/core/entity/interaction/GuildInteraction;)Ljava/util/List; public static fun getGuild (Ldev/kord/core/entity/interaction/GuildInteraction;)Ldev/kord/core/behavior/GuildBehavior; public static fun getGuild (Ldev/kord/core/entity/interaction/GuildInteraction;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static fun getGuildId (Ldev/kord/core/entity/interaction/GuildInteraction;)Ldev/kord/common/entity/Snowflake; @@ -10063,6 +10216,7 @@ public final class dev/kord/core/entity/interaction/GuildMessageCommandInteracti public fun getChannelId ()Ldev/kord/common/entity/Snowflake; public fun getChannelOrNull (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun getData ()Ldev/kord/core/cache/data/InteractionData; + public fun getEntitlements ()Ljava/util/List; public fun getGuild ()Ldev/kord/core/behavior/GuildBehavior; public fun getGuild (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun getGuildId ()Ldev/kord/common/entity/Snowflake; @@ -10128,6 +10282,7 @@ public final class dev/kord/core/entity/interaction/GuildModalSubmitInteraction public fun getChannelId ()Ldev/kord/common/entity/Snowflake; public fun getChannelOrNull (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun getData ()Ldev/kord/core/cache/data/InteractionData; + public fun getEntitlements ()Ljava/util/List; public fun getGuild ()Ldev/kord/core/behavior/GuildBehavior; public fun getGuild (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun getGuildId ()Ldev/kord/common/entity/Snowflake; @@ -10185,6 +10340,7 @@ public final class dev/kord/core/entity/interaction/GuildSelectMenuInteraction : public fun getComponentId ()Ljava/lang/String; public fun getComponentType ()Ldev/kord/common/entity/ComponentType; public fun getData ()Ldev/kord/core/cache/data/InteractionData; + public fun getEntitlements ()Ljava/util/List; public fun getGuild ()Ldev/kord/core/behavior/GuildBehavior; public fun getGuild (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun getGuildId ()Ldev/kord/common/entity/Snowflake; @@ -10239,6 +10395,7 @@ public final class dev/kord/core/entity/interaction/GuildUserCommandInteraction public fun getChannelId ()Ldev/kord/common/entity/Snowflake; public fun getChannelOrNull (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun getData ()Ldev/kord/core/cache/data/InteractionData; + public fun getEntitlements ()Ljava/util/List; public fun getGuild ()Ldev/kord/core/behavior/GuildBehavior; public fun getGuild (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun getGuildId ()Ldev/kord/common/entity/Snowflake; @@ -10296,6 +10453,7 @@ public abstract interface class dev/kord/core/entity/interaction/Interaction : d public abstract fun getApplicationId ()Ldev/kord/common/entity/Snowflake; public abstract fun getChannelId ()Ldev/kord/common/entity/Snowflake; public abstract fun getData ()Ldev/kord/core/cache/data/InteractionData; + public abstract fun getEntitlements ()Ljava/util/List; public abstract fun getGuildLocale ()Ldev/kord/common/Locale; public abstract fun getId ()Ldev/kord/common/entity/Snowflake; public abstract fun getLocale ()Ldev/kord/common/Locale; @@ -10318,6 +10476,7 @@ public final class dev/kord/core/entity/interaction/Interaction$DefaultImpls { public static fun getChannel (Ldev/kord/core/entity/interaction/Interaction;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static fun getChannelId (Ldev/kord/core/entity/interaction/Interaction;)Ldev/kord/common/entity/Snowflake; public static fun getChannelOrNull (Ldev/kord/core/entity/interaction/Interaction;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static fun getEntitlements (Ldev/kord/core/entity/interaction/Interaction;)Ljava/util/List; public static fun getGuildLocale (Ldev/kord/core/entity/interaction/Interaction;)Ldev/kord/common/Locale; public static fun getId (Ldev/kord/core/entity/interaction/Interaction;)Ldev/kord/common/entity/Snowflake; public static fun getLocale (Ldev/kord/core/entity/interaction/Interaction;)Ldev/kord/common/Locale; @@ -10401,6 +10560,7 @@ public final class dev/kord/core/entity/interaction/MessageCommandInteraction$De public static fun getChannel (Ldev/kord/core/entity/interaction/MessageCommandInteraction;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static fun getChannelId (Ldev/kord/core/entity/interaction/MessageCommandInteraction;)Ldev/kord/common/entity/Snowflake; public static fun getChannelOrNull (Ldev/kord/core/entity/interaction/MessageCommandInteraction;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static fun getEntitlements (Ldev/kord/core/entity/interaction/MessageCommandInteraction;)Ljava/util/List; public static fun getGuildLocale (Ldev/kord/core/entity/interaction/MessageCommandInteraction;)Ldev/kord/common/Locale; public static fun getId (Ldev/kord/core/entity/interaction/MessageCommandInteraction;)Ldev/kord/common/entity/Snowflake; public static fun getInvokedCommandGuildId (Ldev/kord/core/entity/interaction/MessageCommandInteraction;)Ldev/kord/common/entity/Snowflake; @@ -10443,6 +10603,7 @@ public final class dev/kord/core/entity/interaction/ModalSubmitInteraction$Defau public static fun getChannel (Ldev/kord/core/entity/interaction/ModalSubmitInteraction;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static fun getChannelId (Ldev/kord/core/entity/interaction/ModalSubmitInteraction;)Ldev/kord/common/entity/Snowflake; public static fun getChannelOrNull (Ldev/kord/core/entity/interaction/ModalSubmitInteraction;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static fun getEntitlements (Ldev/kord/core/entity/interaction/ModalSubmitInteraction;)Ljava/util/List; public static fun getGuildLocale (Ldev/kord/core/entity/interaction/ModalSubmitInteraction;)Ldev/kord/common/Locale; public static fun getId (Ldev/kord/core/entity/interaction/ModalSubmitInteraction;)Ldev/kord/common/entity/Snowflake; public static fun getLocale (Ldev/kord/core/entity/interaction/ModalSubmitInteraction;)Ldev/kord/common/Locale; @@ -10549,6 +10710,7 @@ public final class dev/kord/core/entity/interaction/SelectMenuInteraction$Defaul public static fun getComponent (Ldev/kord/core/entity/interaction/SelectMenuInteraction;)Ldev/kord/core/entity/component/SelectMenuComponent; public static fun getComponentId (Ldev/kord/core/entity/interaction/SelectMenuInteraction;)Ljava/lang/String; public static fun getComponentType (Ldev/kord/core/entity/interaction/SelectMenuInteraction;)Ldev/kord/common/entity/ComponentType; + public static fun getEntitlements (Ldev/kord/core/entity/interaction/SelectMenuInteraction;)Ljava/util/List; public static fun getGuildLocale (Ldev/kord/core/entity/interaction/SelectMenuInteraction;)Ldev/kord/common/Locale; public static fun getId (Ldev/kord/core/entity/interaction/SelectMenuInteraction;)Ldev/kord/common/entity/Snowflake; public static fun getLocale (Ldev/kord/core/entity/interaction/SelectMenuInteraction;)Ldev/kord/common/Locale; @@ -10611,6 +10773,7 @@ public final class dev/kord/core/entity/interaction/UserCommandInteraction$Defau public static fun getChannel (Ldev/kord/core/entity/interaction/UserCommandInteraction;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static fun getChannelId (Ldev/kord/core/entity/interaction/UserCommandInteraction;)Ldev/kord/common/entity/Snowflake; public static fun getChannelOrNull (Ldev/kord/core/entity/interaction/UserCommandInteraction;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static fun getEntitlements (Ldev/kord/core/entity/interaction/UserCommandInteraction;)Ljava/util/List; public static fun getGuildLocale (Ldev/kord/core/entity/interaction/UserCommandInteraction;)Ldev/kord/common/Locale; public static fun getId (Ldev/kord/core/entity/interaction/UserCommandInteraction;)Ldev/kord/common/entity/Snowflake; public static fun getInvokedCommandGuildId (Ldev/kord/core/entity/interaction/UserCommandInteraction;)Ldev/kord/common/entity/Snowflake; @@ -10730,6 +10893,81 @@ public final class dev/kord/core/entity/interaction/response/PublicMessageIntera public fun withStrategy (Ldev/kord/core/supplier/EntitySupplyStrategy;)Ldev/kord/core/entity/interaction/response/PublicMessageInteractionResponse; } +public final class dev/kord/core/entity/monetization/Entitlement : dev/kord/core/entity/KordEntity { + public fun (Ldev/kord/core/cache/data/EntitlementData;Ldev/kord/core/Kord;)V + public fun compareTo (Ldev/kord/core/entity/Entity;)I + public synthetic fun compareTo (Ljava/lang/Object;)I + public final fun consume (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public final fun delete (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public fun equals (Ljava/lang/Object;)Z + public final fun getApplicationId ()Ldev/kord/common/entity/Snowflake; + public final fun getData ()Ldev/kord/core/cache/data/EntitlementData; + public final fun getEndsAt ()Lkotlinx/datetime/Instant; + public final fun getGuild ()Ldev/kord/core/behavior/GuildBehavior; + public final fun getGuildId ()Ldev/kord/common/entity/Snowflake; + public fun getId ()Ldev/kord/common/entity/Snowflake; + public fun getKord ()Ldev/kord/core/Kord; + public final fun getSkuId ()Ldev/kord/common/entity/Snowflake; + public final fun getStartsAt ()Lkotlinx/datetime/Instant; + public final fun getType ()Ldev/kord/common/entity/EntitlementType; + public final fun getUser ()Ldev/kord/core/behavior/UserBehavior; + public final fun getUserId ()Ldev/kord/common/entity/Snowflake; + public fun hashCode ()I + public final fun isConsumed ()Ljava/lang/Boolean; + public final fun isDeleted ()Z + public fun toString ()Ljava/lang/String; +} + +public final class dev/kord/core/entity/monetization/Sku : dev/kord/core/behavior/monetization/SkuBehavior { + public fun (Ldev/kord/common/entity/DiscordSku;Ldev/kord/core/Kord;Ldev/kord/core/supplier/EntitySupplier;)V + public synthetic fun (Ldev/kord/common/entity/DiscordSku;Ldev/kord/core/Kord;Ldev/kord/core/supplier/EntitySupplier;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public fun compareTo (Ldev/kord/core/entity/Entity;)I + public synthetic fun compareTo (Ljava/lang/Object;)I + public fun createTestEntitlement (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/EntitlementOwnerType;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public fun createTestEntitlement (Ldev/kord/core/behavior/GuildBehavior;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public fun createTestEntitlement (Ldev/kord/core/behavior/UserBehavior;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public fun equals (Ljava/lang/Object;)Z + public fun getApplicationId ()Ldev/kord/common/entity/Snowflake; + public final fun getData ()Ldev/kord/common/entity/DiscordSku; + public final fun getFlags ()Ldev/kord/common/entity/SkuFlags; + public fun getId ()Ldev/kord/common/entity/Snowflake; + public fun getKord ()Ldev/kord/core/Kord; + public final fun getName ()Ljava/lang/String; + public final fun getSlug ()Ljava/lang/String; + public fun getSubscription (Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public fun getSubscriptionOrNull (Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public fun getSupplier ()Ldev/kord/core/supplier/EntitySupplier; + public final fun getType ()Ldev/kord/common/entity/SkuType; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public synthetic fun withStrategy (Ldev/kord/core/supplier/EntitySupplyStrategy;)Ldev/kord/core/behavior/monetization/SkuBehavior; + public synthetic fun withStrategy (Ldev/kord/core/supplier/EntitySupplyStrategy;)Ldev/kord/core/entity/Strategizable; + public fun withStrategy (Ldev/kord/core/supplier/EntitySupplyStrategy;)Ldev/kord/core/entity/monetization/Sku; +} + +public final class dev/kord/core/entity/monetization/Subscription : dev/kord/core/entity/KordEntity { + public fun (Ldev/kord/core/cache/data/SubscriptionData;Ldev/kord/core/Kord;)V + public fun compareTo (Ldev/kord/core/entity/Entity;)I + public synthetic fun compareTo (Ljava/lang/Object;)I + public fun equals (Ljava/lang/Object;)Z + public final fun getCanceledAt ()Lkotlinx/datetime/Instant; + public final fun getCountry ()Ljava/lang/String; + public final fun getCurrentPeriodEnd ()Lkotlinx/datetime/Instant; + public final fun getCurrentPeriodStart ()Lkotlinx/datetime/Instant; + public final fun getData ()Ldev/kord/core/cache/data/SubscriptionData; + public final fun getEntitlementIds ()Ljava/util/List; + public fun getId ()Ldev/kord/common/entity/Snowflake; + public fun getKord ()Ldev/kord/core/Kord; + public final fun getSkuIds ()Ljava/util/List; + public final fun getSkus ()Ljava/util/List; + public final fun getStartsAt ()Lkotlinx/datetime/Instant; + public final fun getStatus ()Ldev/kord/common/entity/SubscriptionStatus; + public final fun getUser ()Ldev/kord/core/behavior/UserBehavior; + public final fun getUserId ()Ldev/kord/common/entity/Snowflake; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + public abstract interface class dev/kord/core/event/Event : dev/kord/core/KordObject { public abstract fun getCustomContext ()Ljava/lang/Object; public abstract fun getGateway ()Ldev/kord/gateway/Gateway; @@ -12918,6 +13156,68 @@ public final class dev/kord/core/event/message/ReactionRemoveEvent : dev/kord/co public fun withStrategy (Ldev/kord/core/supplier/EntitySupplyStrategy;)Ldev/kord/core/event/message/ReactionRemoveEvent; } +public final class dev/kord/core/event/monetization/EntitlementCreateEvent : dev/kord/core/event/Event { + public fun (Ldev/kord/core/entity/monetization/Entitlement;Ldev/kord/core/Kord;ILjava/lang/Object;)V + public fun getCustomContext ()Ljava/lang/Object; + public final fun getEntitlement ()Ldev/kord/core/entity/monetization/Entitlement; + public fun getGateway ()Ldev/kord/gateway/Gateway; + public fun getKord ()Ldev/kord/core/Kord; + public fun getShard ()I + public fun toString ()Ljava/lang/String; +} + +public final class dev/kord/core/event/monetization/EntitlementDeleteEvent : dev/kord/core/event/Event { + public fun (Ldev/kord/core/entity/monetization/Entitlement;Ldev/kord/core/Kord;ILjava/lang/Object;)V + public fun getCustomContext ()Ljava/lang/Object; + public final fun getEntitlement ()Ldev/kord/core/entity/monetization/Entitlement; + public fun getGateway ()Ldev/kord/gateway/Gateway; + public fun getKord ()Ldev/kord/core/Kord; + public fun getShard ()I + public fun toString ()Ljava/lang/String; +} + +public final class dev/kord/core/event/monetization/EntitlementUpdateEvent : dev/kord/core/event/Event { + public fun (Ldev/kord/core/entity/monetization/Entitlement;Ldev/kord/core/entity/monetization/Entitlement;Ldev/kord/core/Kord;ILjava/lang/Object;)V + public fun getCustomContext ()Ljava/lang/Object; + public final fun getEntitlement ()Ldev/kord/core/entity/monetization/Entitlement; + public fun getGateway ()Ldev/kord/gateway/Gateway; + public fun getKord ()Ldev/kord/core/Kord; + public final fun getOld ()Ldev/kord/core/entity/monetization/Entitlement; + public fun getShard ()I + public fun toString ()Ljava/lang/String; +} + +public final class dev/kord/core/event/monetization/SubscriptionCreateEvent : dev/kord/core/event/Event { + public fun (Ldev/kord/core/entity/monetization/Subscription;Ldev/kord/core/Kord;ILjava/lang/Object;)V + public fun getCustomContext ()Ljava/lang/Object; + public fun getGateway ()Ldev/kord/gateway/Gateway; + public fun getKord ()Ldev/kord/core/Kord; + public fun getShard ()I + public final fun getSubscription ()Ldev/kord/core/entity/monetization/Subscription; + public fun toString ()Ljava/lang/String; +} + +public final class dev/kord/core/event/monetization/SubscriptionDeleteEvent : dev/kord/core/event/Event { + public fun (Ldev/kord/core/entity/monetization/Subscription;Ldev/kord/core/Kord;ILjava/lang/Object;)V + public fun getCustomContext ()Ljava/lang/Object; + public fun getGateway ()Ldev/kord/gateway/Gateway; + public fun getKord ()Ldev/kord/core/Kord; + public fun getShard ()I + public final fun getSubscription ()Ldev/kord/core/entity/monetization/Subscription; + public fun toString ()Ljava/lang/String; +} + +public final class dev/kord/core/event/monetization/SubscriptionUpdateEvent : dev/kord/core/event/Event { + public fun (Ldev/kord/core/entity/monetization/Subscription;Ldev/kord/core/entity/monetization/Subscription;Ldev/kord/core/Kord;ILjava/lang/Object;)V + public fun getCustomContext ()Ljava/lang/Object; + public fun getGateway ()Ldev/kord/gateway/Gateway; + public fun getKord ()Ldev/kord/core/Kord; + public final fun getOld ()Ldev/kord/core/entity/monetization/Subscription; + public fun getShard ()I + public final fun getSubscription ()Ldev/kord/core/entity/monetization/Subscription; + public fun toString ()Ljava/lang/String; +} + public final class dev/kord/core/event/role/RoleCreateEvent : dev/kord/core/entity/Strategizable, dev/kord/core/event/Event { public fun (Ldev/kord/core/entity/Role;ILjava/lang/Object;Ldev/kord/core/supplier/EntitySupplier;)V public synthetic fun (Ldev/kord/core/entity/Role;ILjava/lang/Object;Ldev/kord/core/supplier/EntitySupplier;ILkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -13048,6 +13348,7 @@ public final class dev/kord/core/exception/EntityNotFoundException$Companion { public final fun selfNotFound ()Ljava/lang/Void; public final fun stageInstanceNotFound (Ldev/kord/common/entity/Snowflake;)Ljava/lang/Void; public final fun stickerNotFound (Ldev/kord/common/entity/Snowflake;)Ljava/lang/Void; + public final fun subscriptionNotFound (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;)Ljava/lang/Void; public final fun templateNotFound (Ljava/lang/String;)Ljava/lang/Void; public final fun userNotFound (Ldev/kord/common/entity/Snowflake;)Ljava/lang/Void; public final fun webhookMessageNotFound (Ldev/kord/common/entity/Snowflake;Ljava/lang/String;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;)Ljava/lang/Void; @@ -13449,6 +13750,7 @@ public final class dev/kord/core/supplier/CacheEntitySupplier : dev/kord/core/su public fun getEmoji (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun getEmojiOrNull (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun getEmojis (Ldev/kord/common/entity/Snowflake;)Lkotlinx/coroutines/flow/Flow; + public fun getEntitlements (Ldev/kord/common/entity/Snowflake;Ldev/kord/rest/json/request/EntitlementsListRequest;)Lkotlinx/coroutines/flow/Flow; public fun getFollowupMessage (Ldev/kord/common/entity/Snowflake;Ljava/lang/String;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun getFollowupMessageOrNull (Ldev/kord/common/entity/Snowflake;Ljava/lang/String;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun getGlobalApplicationCommand (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; @@ -13508,6 +13810,9 @@ public final class dev/kord/core/supplier/CacheEntitySupplier : dev/kord/core/su public fun getStageInstanceOrNull (Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun getSticker (Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun getStickerOrNull (Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public fun getSubscription (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public fun getSubscriptionOrNull (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public fun getSubscriptions (Ldev/kord/common/entity/Snowflake;Ldev/kord/rest/json/request/SkuSubscriptionsListRequest;)Lkotlinx/coroutines/flow/Flow; public fun getTemplate (Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun getTemplateOrNull (Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun getTemplates (Ldev/kord/common/entity/Snowflake;)Lkotlinx/coroutines/flow/Flow; @@ -13539,6 +13844,7 @@ public abstract interface class dev/kord/core/supplier/EntitySupplier { public abstract fun getEmoji (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public abstract fun getEmojiOrNull (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public abstract fun getEmojis (Ldev/kord/common/entity/Snowflake;)Lkotlinx/coroutines/flow/Flow; + public abstract fun getEntitlements (Ldev/kord/common/entity/Snowflake;Ldev/kord/rest/json/request/EntitlementsListRequest;)Lkotlinx/coroutines/flow/Flow; public abstract fun getFollowupMessage (Ldev/kord/common/entity/Snowflake;Ljava/lang/String;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public abstract fun getFollowupMessageOrNull (Ldev/kord/common/entity/Snowflake;Ljava/lang/String;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public abstract fun getGlobalApplicationCommand (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; @@ -13595,6 +13901,9 @@ public abstract interface class dev/kord/core/supplier/EntitySupplier { public abstract fun getStageInstanceOrNull (Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public abstract fun getSticker (Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public abstract fun getStickerOrNull (Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun getSubscription (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun getSubscriptionOrNull (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun getSubscriptions (Ldev/kord/common/entity/Snowflake;Ldev/kord/rest/json/request/SkuSubscriptionsListRequest;)Lkotlinx/coroutines/flow/Flow; public abstract fun getTemplate (Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public abstract fun getTemplateOrNull (Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public abstract fun getTemplates (Ldev/kord/common/entity/Snowflake;)Lkotlinx/coroutines/flow/Flow; @@ -13648,6 +13957,7 @@ public final class dev/kord/core/supplier/EntitySupplier$DefaultImpls { public static fun getSelf (Ldev/kord/core/supplier/EntitySupplier;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static fun getStageInstance (Ldev/kord/core/supplier/EntitySupplier;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static fun getSticker (Ldev/kord/core/supplier/EntitySupplier;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static fun getSubscription (Ldev/kord/core/supplier/EntitySupplier;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static fun getTemplate (Ldev/kord/core/supplier/EntitySupplier;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static fun getUser (Ldev/kord/core/supplier/EntitySupplier;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static fun getWebhook (Ldev/kord/core/supplier/EntitySupplier;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; @@ -13695,6 +14005,7 @@ public final class dev/kord/core/supplier/RestEntitySupplier : dev/kord/core/sup public fun getEmoji (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun getEmojiOrNull (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun getEmojis (Ldev/kord/common/entity/Snowflake;)Lkotlinx/coroutines/flow/Flow; + public fun getEntitlements (Ldev/kord/common/entity/Snowflake;Ldev/kord/rest/json/request/EntitlementsListRequest;)Lkotlinx/coroutines/flow/Flow; public fun getFollowupMessage (Ldev/kord/common/entity/Snowflake;Ljava/lang/String;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun getFollowupMessageOrNull (Ldev/kord/common/entity/Snowflake;Ljava/lang/String;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun getGlobalApplicationCommand (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; @@ -13763,6 +14074,9 @@ public final class dev/kord/core/supplier/RestEntitySupplier : dev/kord/core/sup public fun getStageInstanceOrNull (Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun getSticker (Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun getStickerOrNull (Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public fun getSubscription (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public fun getSubscriptionOrNull (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public fun getSubscriptions (Ldev/kord/common/entity/Snowflake;Ldev/kord/rest/json/request/SkuSubscriptionsListRequest;)Lkotlinx/coroutines/flow/Flow; public fun getTemplate (Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun getTemplateOrNull (Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun getTemplates (Ldev/kord/common/entity/Snowflake;)Lkotlinx/coroutines/flow/Flow; @@ -13794,6 +14108,7 @@ public final class dev/kord/core/supplier/StoreEntitySupplier : dev/kord/core/su public fun getEmoji (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun getEmojiOrNull (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun getEmojis (Ldev/kord/common/entity/Snowflake;)Lkotlinx/coroutines/flow/Flow; + public fun getEntitlements (Ldev/kord/common/entity/Snowflake;Ldev/kord/rest/json/request/EntitlementsListRequest;)Lkotlinx/coroutines/flow/Flow; public fun getFollowupMessage (Ldev/kord/common/entity/Snowflake;Ljava/lang/String;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun getFollowupMessageOrNull (Ldev/kord/common/entity/Snowflake;Ljava/lang/String;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun getGlobalApplicationCommand (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; @@ -13850,6 +14165,9 @@ public final class dev/kord/core/supplier/StoreEntitySupplier : dev/kord/core/su public fun getStageInstanceOrNull (Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun getSticker (Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun getStickerOrNull (Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public fun getSubscription (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public fun getSubscriptionOrNull (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public fun getSubscriptions (Ldev/kord/common/entity/Snowflake;Ldev/kord/rest/json/request/SkuSubscriptionsListRequest;)Lkotlinx/coroutines/flow/Flow; public fun getTemplate (Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun getTemplateOrNull (Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun getTemplates (Ldev/kord/common/entity/Snowflake;)Lkotlinx/coroutines/flow/Flow; diff --git a/core/api/core.klib.api b/core/api/core.klib.api index 31bc5ef8fe3..6d212634e25 100644 --- a/core/api/core.klib.api +++ b/core/api/core.klib.api @@ -406,6 +406,18 @@ abstract interface dev.kord.core.behavior.interaction/ModalParentInteractionBeha abstract fun withStrategy(dev.kord.core.supplier/EntitySupplyStrategy<*>): dev.kord.core.behavior.interaction/ModalParentInteractionBehavior // dev.kord.core.behavior.interaction/ModalParentInteractionBehavior.withStrategy|withStrategy(dev.kord.core.supplier.EntitySupplyStrategy<*>){}[0] } +abstract interface dev.kord.core.behavior.monetization/SkuBehavior : dev.kord.core.entity/KordEntity, dev.kord.core.entity/Strategizable { // dev.kord.core.behavior.monetization/SkuBehavior|null[0] + abstract val applicationId // dev.kord.core.behavior.monetization/SkuBehavior.applicationId|{}applicationId[0] + abstract fun (): dev.kord.common.entity/Snowflake // dev.kord.core.behavior.monetization/SkuBehavior.applicationId.|(){}[0] + + abstract fun withStrategy(dev.kord.core.supplier/EntitySupplyStrategy<*>): dev.kord.core.behavior.monetization/SkuBehavior // dev.kord.core.behavior.monetization/SkuBehavior.withStrategy|withStrategy(dev.kord.core.supplier.EntitySupplyStrategy<*>){}[0] + open suspend fun createTestEntitlement(dev.kord.common.entity/Snowflake, dev.kord.common.entity/EntitlementOwnerType): dev.kord.core.entity.monetization/Entitlement // dev.kord.core.behavior.monetization/SkuBehavior.createTestEntitlement|createTestEntitlement(dev.kord.common.entity.Snowflake;dev.kord.common.entity.EntitlementOwnerType){}[0] + open suspend fun createTestEntitlement(dev.kord.core.behavior/GuildBehavior): dev.kord.core.entity.monetization/Entitlement // dev.kord.core.behavior.monetization/SkuBehavior.createTestEntitlement|createTestEntitlement(dev.kord.core.behavior.GuildBehavior){}[0] + open suspend fun createTestEntitlement(dev.kord.core.behavior/UserBehavior): dev.kord.core.entity.monetization/Entitlement // dev.kord.core.behavior.monetization/SkuBehavior.createTestEntitlement|createTestEntitlement(dev.kord.core.behavior.UserBehavior){}[0] + open suspend fun getSubscription(dev.kord.common.entity/Snowflake): dev.kord.core.entity.monetization/Subscription // dev.kord.core.behavior.monetization/SkuBehavior.getSubscription|getSubscription(dev.kord.common.entity.Snowflake){}[0] + open suspend fun getSubscriptionOrNull(dev.kord.common.entity/Snowflake): dev.kord.core.entity.monetization/Subscription? // dev.kord.core.behavior.monetization/SkuBehavior.getSubscriptionOrNull|getSubscriptionOrNull(dev.kord.common.entity.Snowflake){}[0] +} + abstract interface dev.kord.core.behavior/ApplicationCommandBehavior : dev.kord.core.entity/Entity { // dev.kord.core.behavior/ApplicationCommandBehavior|null[0] abstract val applicationId // dev.kord.core.behavior/ApplicationCommandBehavior.applicationId|{}applicationId[0] abstract fun (): dev.kord.common.entity/Snowflake // dev.kord.core.behavior/ApplicationCommandBehavior.applicationId.|(){}[0] @@ -927,6 +939,7 @@ abstract interface dev.kord.core.supplier/EntitySupplier { // dev.kord.core.supp abstract fun getChannelWebhooks(dev.kord.common.entity/Snowflake): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/EntitySupplier.getChannelWebhooks|getChannelWebhooks(dev.kord.common.entity.Snowflake){}[0] abstract fun getCurrentUserGuilds(kotlin/Int? = ...): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/EntitySupplier.getCurrentUserGuilds|getCurrentUserGuilds(kotlin.Int?){}[0] abstract fun getEmojis(dev.kord.common.entity/Snowflake): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/EntitySupplier.getEmojis|getEmojis(dev.kord.common.entity.Snowflake){}[0] + abstract fun getEntitlements(dev.kord.common.entity/Snowflake, dev.kord.rest.json.request/EntitlementsListRequest): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/EntitySupplier.getEntitlements|getEntitlements(dev.kord.common.entity.Snowflake;dev.kord.rest.json.request.EntitlementsListRequest){}[0] abstract fun getGlobalApplicationCommands(dev.kord.common.entity/Snowflake, kotlin/Boolean? = ...): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/EntitySupplier.getGlobalApplicationCommands|getGlobalApplicationCommands(dev.kord.common.entity.Snowflake;kotlin.Boolean?){}[0] abstract fun getGuildApplicationCommandPermissions(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/EntitySupplier.getGuildApplicationCommandPermissions|getGuildApplicationCommandPermissions(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake){}[0] abstract fun getGuildApplicationCommands(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake, kotlin/Boolean? = ...): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/EntitySupplier.getGuildApplicationCommands|getGuildApplicationCommands(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;kotlin.Boolean?){}[0] @@ -949,6 +962,7 @@ abstract interface dev.kord.core.supplier/EntitySupplier { // dev.kord.core.supp abstract fun getNitroStickerPacks(): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/EntitySupplier.getNitroStickerPacks|getNitroStickerPacks(){}[0] abstract fun getPrivateArchivedThreads(dev.kord.common.entity/Snowflake, kotlinx.datetime/Instant? = ..., kotlin/Int? = ...): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/EntitySupplier.getPrivateArchivedThreads|getPrivateArchivedThreads(dev.kord.common.entity.Snowflake;kotlinx.datetime.Instant?;kotlin.Int?){}[0] abstract fun getPublicArchivedThreads(dev.kord.common.entity/Snowflake, kotlinx.datetime/Instant? = ..., kotlin/Int? = ...): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/EntitySupplier.getPublicArchivedThreads|getPublicArchivedThreads(dev.kord.common.entity.Snowflake;kotlinx.datetime.Instant?;kotlin.Int?){}[0] + abstract fun getSubscriptions(dev.kord.common.entity/Snowflake, dev.kord.rest.json.request/SkuSubscriptionsListRequest): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/EntitySupplier.getSubscriptions|getSubscriptions(dev.kord.common.entity.Snowflake;dev.kord.rest.json.request.SkuSubscriptionsListRequest){}[0] abstract fun getTemplates(dev.kord.common.entity/Snowflake): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/EntitySupplier.getTemplates|getTemplates(dev.kord.common.entity.Snowflake){}[0] abstract fun getThreadMembers(dev.kord.common.entity/Snowflake): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/EntitySupplier.getThreadMembers|getThreadMembers(dev.kord.common.entity.Snowflake){}[0] abstract suspend fun getApplicationCommandPermissionsOrNull(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake): dev.kord.core.entity.application/ApplicationCommandPermissions? // dev.kord.core.supplier/EntitySupplier.getApplicationCommandPermissionsOrNull|getApplicationCommandPermissionsOrNull(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake){}[0] @@ -970,6 +984,7 @@ abstract interface dev.kord.core.supplier/EntitySupplier { // dev.kord.core.supp abstract suspend fun getSelfOrNull(): dev.kord.core.entity/User? // dev.kord.core.supplier/EntitySupplier.getSelfOrNull|getSelfOrNull(){}[0] abstract suspend fun getStageInstanceOrNull(dev.kord.common.entity/Snowflake): dev.kord.core.entity/StageInstance? // dev.kord.core.supplier/EntitySupplier.getStageInstanceOrNull|getStageInstanceOrNull(dev.kord.common.entity.Snowflake){}[0] abstract suspend fun getStickerOrNull(dev.kord.common.entity/Snowflake): dev.kord.core.entity/Sticker? // dev.kord.core.supplier/EntitySupplier.getStickerOrNull|getStickerOrNull(dev.kord.common.entity.Snowflake){}[0] + abstract suspend fun getSubscriptionOrNull(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake): dev.kord.core.entity.monetization/Subscription? // dev.kord.core.supplier/EntitySupplier.getSubscriptionOrNull|getSubscriptionOrNull(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake){}[0] abstract suspend fun getTemplateOrNull(kotlin/String): dev.kord.core.entity/Template? // dev.kord.core.supplier/EntitySupplier.getTemplateOrNull|getTemplateOrNull(kotlin.String){}[0] abstract suspend fun getUserOrNull(dev.kord.common.entity/Snowflake): dev.kord.core.entity/User? // dev.kord.core.supplier/EntitySupplier.getUserOrNull|getUserOrNull(dev.kord.common.entity.Snowflake){}[0] abstract suspend fun getWebhookMessageOrNull(dev.kord.common.entity/Snowflake, kotlin/String, dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake? = ...): dev.kord.core.entity/Message? // dev.kord.core.supplier/EntitySupplier.getWebhookMessageOrNull|getWebhookMessageOrNull(dev.kord.common.entity.Snowflake;kotlin.String;dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake?){}[0] @@ -996,6 +1011,7 @@ abstract interface dev.kord.core.supplier/EntitySupplier { // dev.kord.core.supp open suspend fun getSelf(): dev.kord.core.entity/User // dev.kord.core.supplier/EntitySupplier.getSelf|getSelf(){}[0] open suspend fun getStageInstance(dev.kord.common.entity/Snowflake): dev.kord.core.entity/StageInstance // dev.kord.core.supplier/EntitySupplier.getStageInstance|getStageInstance(dev.kord.common.entity.Snowflake){}[0] open suspend fun getSticker(dev.kord.common.entity/Snowflake): dev.kord.core.entity/Sticker // dev.kord.core.supplier/EntitySupplier.getSticker|getSticker(dev.kord.common.entity.Snowflake){}[0] + open suspend fun getSubscription(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake): dev.kord.core.entity.monetization/Subscription // dev.kord.core.supplier/EntitySupplier.getSubscription|getSubscription(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake){}[0] open suspend fun getTemplate(kotlin/String): dev.kord.core.entity/Template // dev.kord.core.supplier/EntitySupplier.getTemplate|getTemplate(kotlin.String){}[0] open suspend fun getUser(dev.kord.common.entity/Snowflake): dev.kord.core.entity/User // dev.kord.core.supplier/EntitySupplier.getUser|getUser(dev.kord.common.entity.Snowflake){}[0] open suspend fun getWebhook(dev.kord.common.entity/Snowflake): dev.kord.core.entity/Webhook // dev.kord.core.supplier/EntitySupplier.getWebhook|getWebhook(dev.kord.common.entity.Snowflake){}[0] @@ -1354,6 +1370,8 @@ sealed interface dev.kord.core.entity.interaction/Interaction : dev.kord.core.be open fun (): dev.kord.common.entity/Snowflake // dev.kord.core.entity.interaction/Interaction.applicationId.|(){}[0] open val channelId // dev.kord.core.entity.interaction/Interaction.channelId|{}channelId[0] open fun (): dev.kord.common.entity/Snowflake // dev.kord.core.entity.interaction/Interaction.channelId.|(){}[0] + open val entitlements // dev.kord.core.entity.interaction/Interaction.entitlements|{}entitlements[0] + open fun (): kotlin.collections/List // dev.kord.core.entity.interaction/Interaction.entitlements.|(){}[0] open val guildLocale // dev.kord.core.entity.interaction/Interaction.guildLocale|{}guildLocale[0] open fun (): dev.kord.common/Locale? // dev.kord.core.entity.interaction/Interaction.guildLocale.|(){}[0] open val id // dev.kord.core.entity.interaction/Interaction.id|{}id[0] @@ -2632,7 +2650,7 @@ final class dev.kord.core.cache.data/ChannelData { // dev.kord.core.cache.data/C } final class dev.kord.core.cache.data/ChatComponentData : dev.kord.core.cache.data/ComponentData { // dev.kord.core.cache.data/ChatComponentData|null[0] - constructor (dev.kord.common.entity/ComponentType, dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/OptionalBoolean = ..., dev.kord.common.entity.optional/Optional> = ..., dev.kord.common.entity.optional/Optional> = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/OptionalInt = ..., dev.kord.common.entity.optional/OptionalInt = ..., dev.kord.common.entity.optional/Optional> = ..., dev.kord.common.entity.optional/OptionalInt = ..., dev.kord.common.entity.optional/OptionalInt = ..., dev.kord.common.entity.optional/OptionalBoolean = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional> = ...) // dev.kord.core.cache.data/ChatComponentData.|(dev.kord.common.entity.ComponentType;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.OptionalBoolean;dev.kord.common.entity.optional.Optional>;dev.kord.common.entity.optional.Optional>;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.OptionalInt;dev.kord.common.entity.optional.OptionalInt;dev.kord.common.entity.optional.Optional>;dev.kord.common.entity.optional.OptionalInt;dev.kord.common.entity.optional.OptionalInt;dev.kord.common.entity.optional.OptionalBoolean;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional>){}[0] + constructor (dev.kord.common.entity/ComponentType, dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/OptionalBoolean = ..., dev.kord.common.entity.optional/Optional> = ..., dev.kord.common.entity.optional/Optional> = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/OptionalInt = ..., dev.kord.common.entity.optional/OptionalInt = ..., dev.kord.common.entity.optional/Optional> = ..., dev.kord.common.entity.optional/OptionalInt = ..., dev.kord.common.entity.optional/OptionalInt = ..., dev.kord.common.entity.optional/OptionalBoolean = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional> = ..., dev.kord.common.entity.optional/OptionalSnowflake = ...) // dev.kord.core.cache.data/ChatComponentData.|(dev.kord.common.entity.ComponentType;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.OptionalBoolean;dev.kord.common.entity.optional.Optional>;dev.kord.common.entity.optional.Optional>;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.OptionalInt;dev.kord.common.entity.optional.OptionalInt;dev.kord.common.entity.optional.Optional>;dev.kord.common.entity.optional.OptionalInt;dev.kord.common.entity.optional.OptionalInt;dev.kord.common.entity.optional.OptionalBoolean;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional>;dev.kord.common.entity.optional.OptionalSnowflake){}[0] final val channelTypes // dev.kord.core.cache.data/ChatComponentData.channelTypes|{}channelTypes[0] final fun (): dev.kord.common.entity.optional/Optional> // dev.kord.core.cache.data/ChatComponentData.channelTypes.|(){}[0] @@ -2662,6 +2680,8 @@ final class dev.kord.core.cache.data/ChatComponentData : dev.kord.core.cache.dat final fun (): dev.kord.common.entity.optional/Optional // dev.kord.core.cache.data/ChatComponentData.placeholder.|(){}[0] final val required // dev.kord.core.cache.data/ChatComponentData.required|{}required[0] final fun (): dev.kord.common.entity.optional/OptionalBoolean // dev.kord.core.cache.data/ChatComponentData.required.|(){}[0] + final val skuId // dev.kord.core.cache.data/ChatComponentData.skuId|{}skuId[0] + final fun (): dev.kord.common.entity.optional/OptionalSnowflake // dev.kord.core.cache.data/ChatComponentData.skuId.|(){}[0] final val style // dev.kord.core.cache.data/ChatComponentData.style|{}style[0] final fun (): dev.kord.common.entity.optional/Optional // dev.kord.core.cache.data/ChatComponentData.style.|(){}[0] final val type // dev.kord.core.cache.data/ChatComponentData.type|{}type[0] @@ -2681,6 +2701,7 @@ final class dev.kord.core.cache.data/ChatComponentData : dev.kord.core.cache.dat final fun component16(): dev.kord.common.entity.optional/OptionalBoolean // dev.kord.core.cache.data/ChatComponentData.component16|component16(){}[0] final fun component17(): dev.kord.common.entity.optional/Optional // dev.kord.core.cache.data/ChatComponentData.component17|component17(){}[0] final fun component18(): dev.kord.common.entity.optional/Optional> // dev.kord.core.cache.data/ChatComponentData.component18|component18(){}[0] + final fun component19(): dev.kord.common.entity.optional/OptionalSnowflake // dev.kord.core.cache.data/ChatComponentData.component19|component19(){}[0] final fun component2(): dev.kord.common.entity.optional/Optional // dev.kord.core.cache.data/ChatComponentData.component2|component2(){}[0] final fun component3(): dev.kord.common.entity.optional/Optional // dev.kord.core.cache.data/ChatComponentData.component3|component3(){}[0] final fun component4(): dev.kord.common.entity.optional/Optional // dev.kord.core.cache.data/ChatComponentData.component4|component4(){}[0] @@ -2689,7 +2710,7 @@ final class dev.kord.core.cache.data/ChatComponentData : dev.kord.core.cache.dat final fun component7(): dev.kord.common.entity.optional/OptionalBoolean // dev.kord.core.cache.data/ChatComponentData.component7|component7(){}[0] final fun component8(): dev.kord.common.entity.optional/Optional> // dev.kord.core.cache.data/ChatComponentData.component8|component8(){}[0] final fun component9(): dev.kord.common.entity.optional/Optional> // dev.kord.core.cache.data/ChatComponentData.component9|component9(){}[0] - final fun copy(dev.kord.common.entity/ComponentType = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/OptionalBoolean = ..., dev.kord.common.entity.optional/Optional> = ..., dev.kord.common.entity.optional/Optional> = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/OptionalInt = ..., dev.kord.common.entity.optional/OptionalInt = ..., dev.kord.common.entity.optional/Optional> = ..., dev.kord.common.entity.optional/OptionalInt = ..., dev.kord.common.entity.optional/OptionalInt = ..., dev.kord.common.entity.optional/OptionalBoolean = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional> = ...): dev.kord.core.cache.data/ChatComponentData // dev.kord.core.cache.data/ChatComponentData.copy|copy(dev.kord.common.entity.ComponentType;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.OptionalBoolean;dev.kord.common.entity.optional.Optional>;dev.kord.common.entity.optional.Optional>;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.OptionalInt;dev.kord.common.entity.optional.OptionalInt;dev.kord.common.entity.optional.Optional>;dev.kord.common.entity.optional.OptionalInt;dev.kord.common.entity.optional.OptionalInt;dev.kord.common.entity.optional.OptionalBoolean;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional>){}[0] + final fun copy(dev.kord.common.entity/ComponentType = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/OptionalBoolean = ..., dev.kord.common.entity.optional/Optional> = ..., dev.kord.common.entity.optional/Optional> = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/OptionalInt = ..., dev.kord.common.entity.optional/OptionalInt = ..., dev.kord.common.entity.optional/Optional> = ..., dev.kord.common.entity.optional/OptionalInt = ..., dev.kord.common.entity.optional/OptionalInt = ..., dev.kord.common.entity.optional/OptionalBoolean = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional> = ..., dev.kord.common.entity.optional/OptionalSnowflake = ...): dev.kord.core.cache.data/ChatComponentData // dev.kord.core.cache.data/ChatComponentData.copy|copy(dev.kord.common.entity.ComponentType;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.OptionalBoolean;dev.kord.common.entity.optional.Optional>;dev.kord.common.entity.optional.Optional>;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.OptionalInt;dev.kord.common.entity.optional.OptionalInt;dev.kord.common.entity.optional.Optional>;dev.kord.common.entity.optional.OptionalInt;dev.kord.common.entity.optional.OptionalInt;dev.kord.common.entity.optional.OptionalBoolean;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional>;dev.kord.common.entity.optional.OptionalSnowflake){}[0] final fun equals(kotlin/Any?): kotlin/Boolean // dev.kord.core.cache.data/ChatComponentData.equals|equals(kotlin.Any?){}[0] final fun hashCode(): kotlin/Int // dev.kord.core.cache.data/ChatComponentData.hashCode|hashCode(){}[0] final fun toString(): kotlin/String // dev.kord.core.cache.data/ChatComponentData.toString|toString(){}[0] @@ -3114,6 +3135,64 @@ final class dev.kord.core.cache.data/EmojiData { // dev.kord.core.cache.data/Emo } } +final class dev.kord.core.cache.data/EntitlementData { // dev.kord.core.cache.data/EntitlementData|null[0] + constructor (dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake, dev.kord.common.entity.optional/OptionalSnowflake = ..., dev.kord.common.entity/EntitlementType, kotlin/Boolean, dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/OptionalSnowflake = ..., dev.kord.common.entity.optional/OptionalBoolean = ...) // dev.kord.core.cache.data/EntitlementData.|(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;dev.kord.common.entity.optional.OptionalSnowflake;dev.kord.common.entity.EntitlementType;kotlin.Boolean;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.OptionalSnowflake;dev.kord.common.entity.optional.OptionalBoolean){}[0] + + final val applicationId // dev.kord.core.cache.data/EntitlementData.applicationId|{}applicationId[0] + final fun (): dev.kord.common.entity/Snowflake // dev.kord.core.cache.data/EntitlementData.applicationId.|(){}[0] + final val consumed // dev.kord.core.cache.data/EntitlementData.consumed|{}consumed[0] + final fun (): dev.kord.common.entity.optional/OptionalBoolean // dev.kord.core.cache.data/EntitlementData.consumed.|(){}[0] + final val deleted // dev.kord.core.cache.data/EntitlementData.deleted|{}deleted[0] + final fun (): kotlin/Boolean // dev.kord.core.cache.data/EntitlementData.deleted.|(){}[0] + final val endsAt // dev.kord.core.cache.data/EntitlementData.endsAt|{}endsAt[0] + final fun (): dev.kord.common.entity.optional/Optional // dev.kord.core.cache.data/EntitlementData.endsAt.|(){}[0] + final val guildId // dev.kord.core.cache.data/EntitlementData.guildId|{}guildId[0] + final fun (): dev.kord.common.entity.optional/OptionalSnowflake // dev.kord.core.cache.data/EntitlementData.guildId.|(){}[0] + final val id // dev.kord.core.cache.data/EntitlementData.id|{}id[0] + final fun (): dev.kord.common.entity/Snowflake // dev.kord.core.cache.data/EntitlementData.id.|(){}[0] + final val skuId // dev.kord.core.cache.data/EntitlementData.skuId|{}skuId[0] + final fun (): dev.kord.common.entity/Snowflake // dev.kord.core.cache.data/EntitlementData.skuId.|(){}[0] + final val startsAt // dev.kord.core.cache.data/EntitlementData.startsAt|{}startsAt[0] + final fun (): dev.kord.common.entity.optional/Optional // dev.kord.core.cache.data/EntitlementData.startsAt.|(){}[0] + final val type // dev.kord.core.cache.data/EntitlementData.type|{}type[0] + final fun (): dev.kord.common.entity/EntitlementType // dev.kord.core.cache.data/EntitlementData.type.|(){}[0] + final val userId // dev.kord.core.cache.data/EntitlementData.userId|{}userId[0] + final fun (): dev.kord.common.entity.optional/OptionalSnowflake // dev.kord.core.cache.data/EntitlementData.userId.|(){}[0] + + final fun component1(): dev.kord.common.entity/Snowflake // dev.kord.core.cache.data/EntitlementData.component1|component1(){}[0] + final fun component10(): dev.kord.common.entity.optional/OptionalBoolean // dev.kord.core.cache.data/EntitlementData.component10|component10(){}[0] + final fun component2(): dev.kord.common.entity/Snowflake // dev.kord.core.cache.data/EntitlementData.component2|component2(){}[0] + final fun component3(): dev.kord.common.entity/Snowflake // dev.kord.core.cache.data/EntitlementData.component3|component3(){}[0] + final fun component4(): dev.kord.common.entity.optional/OptionalSnowflake // dev.kord.core.cache.data/EntitlementData.component4|component4(){}[0] + final fun component5(): dev.kord.common.entity/EntitlementType // dev.kord.core.cache.data/EntitlementData.component5|component5(){}[0] + final fun component6(): kotlin/Boolean // dev.kord.core.cache.data/EntitlementData.component6|component6(){}[0] + final fun component7(): dev.kord.common.entity.optional/Optional // dev.kord.core.cache.data/EntitlementData.component7|component7(){}[0] + final fun component8(): dev.kord.common.entity.optional/Optional // dev.kord.core.cache.data/EntitlementData.component8|component8(){}[0] + final fun component9(): dev.kord.common.entity.optional/OptionalSnowflake // dev.kord.core.cache.data/EntitlementData.component9|component9(){}[0] + final fun copy(dev.kord.common.entity/Snowflake = ..., dev.kord.common.entity/Snowflake = ..., dev.kord.common.entity/Snowflake = ..., dev.kord.common.entity.optional/OptionalSnowflake = ..., dev.kord.common.entity/EntitlementType = ..., kotlin/Boolean = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/OptionalSnowflake = ..., dev.kord.common.entity.optional/OptionalBoolean = ...): dev.kord.core.cache.data/EntitlementData // dev.kord.core.cache.data/EntitlementData.copy|copy(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;dev.kord.common.entity.optional.OptionalSnowflake;dev.kord.common.entity.EntitlementType;kotlin.Boolean;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.OptionalSnowflake;dev.kord.common.entity.optional.OptionalBoolean){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // dev.kord.core.cache.data/EntitlementData.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // dev.kord.core.cache.data/EntitlementData.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // dev.kord.core.cache.data/EntitlementData.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // dev.kord.core.cache.data/EntitlementData.$serializer|null[0] + final val descriptor // dev.kord.core.cache.data/EntitlementData.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // dev.kord.core.cache.data/EntitlementData.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // dev.kord.core.cache.data/EntitlementData.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): dev.kord.core.cache.data/EntitlementData // dev.kord.core.cache.data/EntitlementData.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, dev.kord.core.cache.data/EntitlementData) // dev.kord.core.cache.data/EntitlementData.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;dev.kord.core.cache.data.EntitlementData){}[0] + } + + final object Companion { // dev.kord.core.cache.data/EntitlementData.Companion|null[0] + final val $childSerializers // dev.kord.core.cache.data/EntitlementData.Companion.$childSerializers|{}$childSerializers[0] + final val description // dev.kord.core.cache.data/EntitlementData.Companion.description|{}description[0] + final fun (): dev.kord.cache.api.data/DataDescription // dev.kord.core.cache.data/EntitlementData.Companion.description.|(){}[0] + + final fun from(dev.kord.common.entity/DiscordEntitlement): dev.kord.core.cache.data/EntitlementData // dev.kord.core.cache.data/EntitlementData.Companion.from|from(dev.kord.common.entity.DiscordEntitlement){}[0] + final fun serializer(): kotlinx.serialization/KSerializer // dev.kord.core.cache.data/EntitlementData.Companion.serializer|serializer(){}[0] + } +} + final class dev.kord.core.cache.data/GuildApplicationCommandPermissionData { // dev.kord.core.cache.data/GuildApplicationCommandPermissionData|null[0] constructor (dev.kord.common.entity/Snowflake, dev.kord.common.entity/ApplicationCommandPermissionType, kotlin/Boolean) // dev.kord.core.cache.data/GuildApplicationCommandPermissionData.|(dev.kord.common.entity.Snowflake;dev.kord.common.entity.ApplicationCommandPermissionType;kotlin.Boolean){}[0] @@ -3593,7 +3672,7 @@ final class dev.kord.core.cache.data/IntegrationsAccountData { // dev.kord.core. } final class dev.kord.core.cache.data/InteractionData { // dev.kord.core.cache.data/InteractionData|null[0] - constructor (dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake, dev.kord.common.entity/InteractionType, dev.kord.core.cache.data/ApplicationInteractionData, dev.kord.common.entity.optional/OptionalSnowflake = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/OptionalSnowflake = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., kotlin/String, dev.kord.common.entity.optional/Optional = ..., kotlin/Int, dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ...) // dev.kord.core.cache.data/InteractionData.|(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;dev.kord.common.entity.InteractionType;dev.kord.core.cache.data.ApplicationInteractionData;dev.kord.common.entity.optional.OptionalSnowflake;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.OptionalSnowflake;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;kotlin.String;dev.kord.common.entity.optional.Optional;kotlin.Int;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional){}[0] + constructor (dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake, dev.kord.common.entity/InteractionType, dev.kord.core.cache.data/ApplicationInteractionData, dev.kord.common.entity.optional/OptionalSnowflake = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/OptionalSnowflake = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., kotlin/String, dev.kord.common.entity.optional/Optional = ..., kotlin/Int, dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional> = ...) // dev.kord.core.cache.data/InteractionData.|(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;dev.kord.common.entity.InteractionType;dev.kord.core.cache.data.ApplicationInteractionData;dev.kord.common.entity.optional.OptionalSnowflake;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.OptionalSnowflake;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;kotlin.String;dev.kord.common.entity.optional.Optional;kotlin.Int;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional>){}[0] final val appPermissions // dev.kord.core.cache.data/InteractionData.appPermissions|{}appPermissions[0] final fun (): dev.kord.common.entity.optional/Optional // dev.kord.core.cache.data/InteractionData.appPermissions.|(){}[0] @@ -3605,6 +3684,8 @@ final class dev.kord.core.cache.data/InteractionData { // dev.kord.core.cache.da final fun (): dev.kord.common.entity.optional/OptionalSnowflake // dev.kord.core.cache.data/InteractionData.channelId.|(){}[0] final val data // dev.kord.core.cache.data/InteractionData.data|{}data[0] final fun (): dev.kord.core.cache.data/ApplicationInteractionData // dev.kord.core.cache.data/InteractionData.data.|(){}[0] + final val entitlements // dev.kord.core.cache.data/InteractionData.entitlements|{}entitlements[0] + final fun (): dev.kord.common.entity.optional/Optional> // dev.kord.core.cache.data/InteractionData.entitlements.|(){}[0] final val guildId // dev.kord.core.cache.data/InteractionData.guildId|{}guildId[0] final fun (): dev.kord.common.entity.optional/OptionalSnowflake // dev.kord.core.cache.data/InteractionData.guildId.|(){}[0] final val guildLocale // dev.kord.core.cache.data/InteractionData.guildLocale|{}guildLocale[0] @@ -3636,6 +3717,7 @@ final class dev.kord.core.cache.data/InteractionData { // dev.kord.core.cache.da final fun component14(): dev.kord.common.entity.optional/Optional // dev.kord.core.cache.data/InteractionData.component14|component14(){}[0] final fun component15(): dev.kord.common.entity.optional/Optional // dev.kord.core.cache.data/InteractionData.component15|component15(){}[0] final fun component16(): dev.kord.common.entity.optional/Optional // dev.kord.core.cache.data/InteractionData.component16|component16(){}[0] + final fun component17(): dev.kord.common.entity.optional/Optional> // dev.kord.core.cache.data/InteractionData.component17|component17(){}[0] final fun component2(): dev.kord.common.entity/Snowflake // dev.kord.core.cache.data/InteractionData.component2|component2(){}[0] final fun component3(): dev.kord.common.entity/InteractionType // dev.kord.core.cache.data/InteractionData.component3|component3(){}[0] final fun component4(): dev.kord.core.cache.data/ApplicationInteractionData // dev.kord.core.cache.data/InteractionData.component4|component4(){}[0] @@ -3644,7 +3726,7 @@ final class dev.kord.core.cache.data/InteractionData { // dev.kord.core.cache.da final fun component7(): dev.kord.common.entity.optional/OptionalSnowflake // dev.kord.core.cache.data/InteractionData.component7|component7(){}[0] final fun component8(): dev.kord.common.entity.optional/Optional // dev.kord.core.cache.data/InteractionData.component8|component8(){}[0] final fun component9(): dev.kord.common.entity.optional/Optional // dev.kord.core.cache.data/InteractionData.component9|component9(){}[0] - final fun copy(dev.kord.common.entity/Snowflake = ..., dev.kord.common.entity/Snowflake = ..., dev.kord.common.entity/InteractionType = ..., dev.kord.core.cache.data/ApplicationInteractionData = ..., dev.kord.common.entity.optional/OptionalSnowflake = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/OptionalSnowflake = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., kotlin/String = ..., dev.kord.common.entity.optional/Optional = ..., kotlin/Int = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ...): dev.kord.core.cache.data/InteractionData // dev.kord.core.cache.data/InteractionData.copy|copy(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;dev.kord.common.entity.InteractionType;dev.kord.core.cache.data.ApplicationInteractionData;dev.kord.common.entity.optional.OptionalSnowflake;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.OptionalSnowflake;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;kotlin.String;dev.kord.common.entity.optional.Optional;kotlin.Int;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional){}[0] + final fun copy(dev.kord.common.entity/Snowflake = ..., dev.kord.common.entity/Snowflake = ..., dev.kord.common.entity/InteractionType = ..., dev.kord.core.cache.data/ApplicationInteractionData = ..., dev.kord.common.entity.optional/OptionalSnowflake = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/OptionalSnowflake = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., kotlin/String = ..., dev.kord.common.entity.optional/Optional = ..., kotlin/Int = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional> = ...): dev.kord.core.cache.data/InteractionData // dev.kord.core.cache.data/InteractionData.copy|copy(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;dev.kord.common.entity.InteractionType;dev.kord.core.cache.data.ApplicationInteractionData;dev.kord.common.entity.optional.OptionalSnowflake;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.OptionalSnowflake;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;kotlin.String;dev.kord.common.entity.optional.Optional;kotlin.Int;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional>){}[0] final fun equals(kotlin/Any?): kotlin/Boolean // dev.kord.core.cache.data/InteractionData.equals|equals(kotlin.Any?){}[0] final fun hashCode(): kotlin/Int // dev.kord.core.cache.data/InteractionData.hashCode|hashCode(){}[0] final fun toString(): kotlin/String // dev.kord.core.cache.data/InteractionData.toString|toString(){}[0] @@ -4970,6 +5052,61 @@ final class dev.kord.core.cache.data/StickerPackData { // dev.kord.core.cache.da } } +final class dev.kord.core.cache.data/SubscriptionData { // dev.kord.core.cache.data/SubscriptionData|null[0] + constructor (dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake, kotlin.collections/List, kotlin.collections/List, kotlinx.datetime/Instant, kotlinx.datetime/Instant, dev.kord.common.entity/SubscriptionStatus, kotlinx.datetime/Instant?, dev.kord.common.entity.optional/Optional = ...) // dev.kord.core.cache.data/SubscriptionData.|(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;kotlin.collections.List;kotlin.collections.List;kotlinx.datetime.Instant;kotlinx.datetime.Instant;dev.kord.common.entity.SubscriptionStatus;kotlinx.datetime.Instant?;dev.kord.common.entity.optional.Optional){}[0] + + final val canceledAt // dev.kord.core.cache.data/SubscriptionData.canceledAt|{}canceledAt[0] + final fun (): kotlinx.datetime/Instant? // dev.kord.core.cache.data/SubscriptionData.canceledAt.|(){}[0] + final val country // dev.kord.core.cache.data/SubscriptionData.country|{}country[0] + final fun (): dev.kord.common.entity.optional/Optional // dev.kord.core.cache.data/SubscriptionData.country.|(){}[0] + final val currentPeriodEnd // dev.kord.core.cache.data/SubscriptionData.currentPeriodEnd|{}currentPeriodEnd[0] + final fun (): kotlinx.datetime/Instant // dev.kord.core.cache.data/SubscriptionData.currentPeriodEnd.|(){}[0] + final val currentPeriodStart // dev.kord.core.cache.data/SubscriptionData.currentPeriodStart|{}currentPeriodStart[0] + final fun (): kotlinx.datetime/Instant // dev.kord.core.cache.data/SubscriptionData.currentPeriodStart.|(){}[0] + final val entitlementIds // dev.kord.core.cache.data/SubscriptionData.entitlementIds|{}entitlementIds[0] + final fun (): kotlin.collections/List // dev.kord.core.cache.data/SubscriptionData.entitlementIds.|(){}[0] + final val id // dev.kord.core.cache.data/SubscriptionData.id|{}id[0] + final fun (): dev.kord.common.entity/Snowflake // dev.kord.core.cache.data/SubscriptionData.id.|(){}[0] + final val skuIds // dev.kord.core.cache.data/SubscriptionData.skuIds|{}skuIds[0] + final fun (): kotlin.collections/List // dev.kord.core.cache.data/SubscriptionData.skuIds.|(){}[0] + final val status // dev.kord.core.cache.data/SubscriptionData.status|{}status[0] + final fun (): dev.kord.common.entity/SubscriptionStatus // dev.kord.core.cache.data/SubscriptionData.status.|(){}[0] + final val userId // dev.kord.core.cache.data/SubscriptionData.userId|{}userId[0] + final fun (): dev.kord.common.entity/Snowflake // dev.kord.core.cache.data/SubscriptionData.userId.|(){}[0] + + final fun component1(): dev.kord.common.entity/Snowflake // dev.kord.core.cache.data/SubscriptionData.component1|component1(){}[0] + final fun component2(): dev.kord.common.entity/Snowflake // dev.kord.core.cache.data/SubscriptionData.component2|component2(){}[0] + final fun component3(): kotlin.collections/List // dev.kord.core.cache.data/SubscriptionData.component3|component3(){}[0] + final fun component4(): kotlin.collections/List // dev.kord.core.cache.data/SubscriptionData.component4|component4(){}[0] + final fun component5(): kotlinx.datetime/Instant // dev.kord.core.cache.data/SubscriptionData.component5|component5(){}[0] + final fun component6(): kotlinx.datetime/Instant // dev.kord.core.cache.data/SubscriptionData.component6|component6(){}[0] + final fun component7(): dev.kord.common.entity/SubscriptionStatus // dev.kord.core.cache.data/SubscriptionData.component7|component7(){}[0] + final fun component8(): kotlinx.datetime/Instant? // dev.kord.core.cache.data/SubscriptionData.component8|component8(){}[0] + final fun component9(): dev.kord.common.entity.optional/Optional // dev.kord.core.cache.data/SubscriptionData.component9|component9(){}[0] + final fun copy(dev.kord.common.entity/Snowflake = ..., dev.kord.common.entity/Snowflake = ..., kotlin.collections/List = ..., kotlin.collections/List = ..., kotlinx.datetime/Instant = ..., kotlinx.datetime/Instant = ..., dev.kord.common.entity/SubscriptionStatus = ..., kotlinx.datetime/Instant? = ..., dev.kord.common.entity.optional/Optional = ...): dev.kord.core.cache.data/SubscriptionData // dev.kord.core.cache.data/SubscriptionData.copy|copy(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;kotlin.collections.List;kotlin.collections.List;kotlinx.datetime.Instant;kotlinx.datetime.Instant;dev.kord.common.entity.SubscriptionStatus;kotlinx.datetime.Instant?;dev.kord.common.entity.optional.Optional){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // dev.kord.core.cache.data/SubscriptionData.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // dev.kord.core.cache.data/SubscriptionData.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // dev.kord.core.cache.data/SubscriptionData.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // dev.kord.core.cache.data/SubscriptionData.$serializer|null[0] + final val descriptor // dev.kord.core.cache.data/SubscriptionData.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // dev.kord.core.cache.data/SubscriptionData.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // dev.kord.core.cache.data/SubscriptionData.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): dev.kord.core.cache.data/SubscriptionData // dev.kord.core.cache.data/SubscriptionData.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, dev.kord.core.cache.data/SubscriptionData) // dev.kord.core.cache.data/SubscriptionData.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;dev.kord.core.cache.data.SubscriptionData){}[0] + } + + final object Companion { // dev.kord.core.cache.data/SubscriptionData.Companion|null[0] + final val $childSerializers // dev.kord.core.cache.data/SubscriptionData.Companion.$childSerializers|{}$childSerializers[0] + final val description // dev.kord.core.cache.data/SubscriptionData.Companion.description|{}description[0] + final fun (): dev.kord.cache.api.data/DataDescription // dev.kord.core.cache.data/SubscriptionData.Companion.description.|(){}[0] + + final fun from(dev.kord.common.entity/DiscordSubscription): dev.kord.core.cache.data/SubscriptionData // dev.kord.core.cache.data/SubscriptionData.Companion.from|from(dev.kord.common.entity.DiscordSubscription){}[0] + final fun serializer(): kotlinx.serialization/KSerializer // dev.kord.core.cache.data/SubscriptionData.Companion.serializer|serializer(){}[0] + } +} + final class dev.kord.core.cache.data/TeamData { // dev.kord.core.cache.data/TeamData|null[0] constructor (dev.kord.common.entity/Snowflake, kotlin/String? = ..., kotlin.collections/List, dev.kord.common.entity/Snowflake, kotlin/String) // dev.kord.core.cache.data/TeamData.|(dev.kord.common.entity.Snowflake;kotlin.String?;kotlin.collections.List;dev.kord.common.entity.Snowflake;kotlin.String){}[0] @@ -5595,12 +5732,14 @@ final class dev.kord.core.cache/KordCacheBuilder { // dev.kord.core.cache/KordCa final fun channels(kotlin/Function2, dev.kord.cache.api/DataEntryCache>) // dev.kord.core.cache/KordCacheBuilder.channels|channels(kotlin.Function2,dev.kord.cache.api.DataEntryCache>){}[0] final fun disableAll() // dev.kord.core.cache/KordCacheBuilder.disableAll|disableAll(){}[0] final fun emojis(kotlin/Function2, dev.kord.cache.api/DataEntryCache>) // dev.kord.core.cache/KordCacheBuilder.emojis|emojis(kotlin.Function2,dev.kord.cache.api.DataEntryCache>){}[0] + final fun entitlements(kotlin/Function2, dev.kord.cache.api/DataEntryCache>) // dev.kord.core.cache/KordCacheBuilder.entitlements|entitlements(kotlin.Function2,dev.kord.cache.api.DataEntryCache>){}[0] final fun guilds(kotlin/Function2, dev.kord.cache.api/DataEntryCache>) // dev.kord.core.cache/KordCacheBuilder.guilds|guilds(kotlin.Function2,dev.kord.cache.api.DataEntryCache>){}[0] final fun members(kotlin/Function2, dev.kord.cache.api/DataEntryCache>) // dev.kord.core.cache/KordCacheBuilder.members|members(kotlin.Function2,dev.kord.cache.api.DataEntryCache>){}[0] final fun messages(kotlin/Function2, dev.kord.cache.api/DataEntryCache>) // dev.kord.core.cache/KordCacheBuilder.messages|messages(kotlin.Function2,dev.kord.cache.api.DataEntryCache>){}[0] final fun presences(kotlin/Function2, dev.kord.cache.api/DataEntryCache>) // dev.kord.core.cache/KordCacheBuilder.presences|presences(kotlin.Function2,dev.kord.cache.api.DataEntryCache>){}[0] final fun roles(kotlin/Function2, dev.kord.cache.api/DataEntryCache>) // dev.kord.core.cache/KordCacheBuilder.roles|roles(kotlin.Function2,dev.kord.cache.api.DataEntryCache>){}[0] final fun stickers(kotlin/Function2, dev.kord.cache.api/DataEntryCache>) // dev.kord.core.cache/KordCacheBuilder.stickers|stickers(kotlin.Function2,dev.kord.cache.api.DataEntryCache>){}[0] + final fun subscriptions(kotlin/Function2, dev.kord.cache.api/DataEntryCache>) // dev.kord.core.cache/KordCacheBuilder.subscriptions|subscriptions(kotlin.Function2,dev.kord.cache.api.DataEntryCache>){}[0] final fun users(kotlin/Function2, dev.kord.cache.api/DataEntryCache>) // dev.kord.core.cache/KordCacheBuilder.users|users(kotlin.Function2,dev.kord.cache.api.DataEntryCache>){}[0] final fun voiceState(kotlin/Function2, dev.kord.cache.api/DataEntryCache>) // dev.kord.core.cache/KordCacheBuilder.voiceState|voiceState(kotlin.Function2,dev.kord.cache.api.DataEntryCache>){}[0] final fun webhooks(kotlin/Function2, dev.kord.cache.api/DataEntryCache>) // dev.kord.core.cache/KordCacheBuilder.webhooks|webhooks(kotlin.Function2,dev.kord.cache.api.DataEntryCache>){}[0] @@ -6218,6 +6357,8 @@ final class dev.kord.core.entity.component/ActionRowComponent : dev.kord.core.en final fun (): kotlin.collections/Map // dev.kord.core.entity.component/ActionRowComponent.interactionButtons.|(){}[0] final val linkButtons // dev.kord.core.entity.component/ActionRowComponent.linkButtons|{}linkButtons[0] final fun (): kotlin.collections/List // dev.kord.core.entity.component/ActionRowComponent.linkButtons.|(){}[0] + final val premiumButtons // dev.kord.core.entity.component/ActionRowComponent.premiumButtons|{}premiumButtons[0] + final fun (): kotlin.collections/List // dev.kord.core.entity.component/ActionRowComponent.premiumButtons.|(){}[0] final val selectMenus // dev.kord.core.entity.component/ActionRowComponent.selectMenus|{}selectMenus[0] final fun (): kotlin.collections/Map // dev.kord.core.entity.component/ActionRowComponent.selectMenus.|(){}[0] final val textInputs // dev.kord.core.entity.component/ActionRowComponent.textInputs|{}textInputs[0] @@ -6241,6 +6382,8 @@ final class dev.kord.core.entity.component/ButtonComponent : dev.kord.core.entit final fun (): dev.kord.core.entity/ReactionEmoji? // dev.kord.core.entity.component/ButtonComponent.emoji.|(){}[0] final val label // dev.kord.core.entity.component/ButtonComponent.label|{}label[0] final fun (): kotlin/String? // dev.kord.core.entity.component/ButtonComponent.label.|(){}[0] + final val skuId // dev.kord.core.entity.component/ButtonComponent.skuId|{}skuId[0] + final fun (): dev.kord.common.entity/Snowflake? // dev.kord.core.entity.component/ButtonComponent.skuId.|(){}[0] final val style // dev.kord.core.entity.component/ButtonComponent.style|{}style[0] final fun (): dev.kord.common.entity/ButtonStyle // dev.kord.core.entity.component/ButtonComponent.style.|(){}[0] final val type // dev.kord.core.entity.component/ButtonComponent.type|{}type[0] @@ -6806,6 +6949,110 @@ final class dev.kord.core.entity.interaction/SubCommand : dev.kord.core.entity.i final fun (): kotlin.collections/Map> // dev.kord.core.entity.interaction/SubCommand.options.|(){}[0] } +final class dev.kord.core.entity.monetization/Entitlement : dev.kord.core.entity/KordEntity { // dev.kord.core.entity.monetization/Entitlement|null[0] + constructor (dev.kord.core.cache.data/EntitlementData, dev.kord.core/Kord) // dev.kord.core.entity.monetization/Entitlement.|(dev.kord.core.cache.data.EntitlementData;dev.kord.core.Kord){}[0] + + final val applicationId // dev.kord.core.entity.monetization/Entitlement.applicationId|{}applicationId[0] + final fun (): dev.kord.common.entity/Snowflake // dev.kord.core.entity.monetization/Entitlement.applicationId.|(){}[0] + final val data // dev.kord.core.entity.monetization/Entitlement.data|{}data[0] + final fun (): dev.kord.core.cache.data/EntitlementData // dev.kord.core.entity.monetization/Entitlement.data.|(){}[0] + final val endsAt // dev.kord.core.entity.monetization/Entitlement.endsAt|{}endsAt[0] + final fun (): kotlinx.datetime/Instant? // dev.kord.core.entity.monetization/Entitlement.endsAt.|(){}[0] + final val guild // dev.kord.core.entity.monetization/Entitlement.guild|{}guild[0] + final fun (): dev.kord.core.behavior/GuildBehavior? // dev.kord.core.entity.monetization/Entitlement.guild.|(){}[0] + final val guildId // dev.kord.core.entity.monetization/Entitlement.guildId|{}guildId[0] + final fun (): dev.kord.common.entity/Snowflake? // dev.kord.core.entity.monetization/Entitlement.guildId.|(){}[0] + final val id // dev.kord.core.entity.monetization/Entitlement.id|{}id[0] + final fun (): dev.kord.common.entity/Snowflake // dev.kord.core.entity.monetization/Entitlement.id.|(){}[0] + final val isConsumed // dev.kord.core.entity.monetization/Entitlement.isConsumed|{}isConsumed[0] + final fun (): kotlin/Boolean? // dev.kord.core.entity.monetization/Entitlement.isConsumed.|(){}[0] + final val isDeleted // dev.kord.core.entity.monetization/Entitlement.isDeleted|{}isDeleted[0] + final fun (): kotlin/Boolean // dev.kord.core.entity.monetization/Entitlement.isDeleted.|(){}[0] + final val kord // dev.kord.core.entity.monetization/Entitlement.kord|{}kord[0] + final fun (): dev.kord.core/Kord // dev.kord.core.entity.monetization/Entitlement.kord.|(){}[0] + final val skuId // dev.kord.core.entity.monetization/Entitlement.skuId|{}skuId[0] + final fun (): dev.kord.common.entity/Snowflake // dev.kord.core.entity.monetization/Entitlement.skuId.|(){}[0] + final val startsAt // dev.kord.core.entity.monetization/Entitlement.startsAt|{}startsAt[0] + final fun (): kotlinx.datetime/Instant? // dev.kord.core.entity.monetization/Entitlement.startsAt.|(){}[0] + final val type // dev.kord.core.entity.monetization/Entitlement.type|{}type[0] + final fun (): dev.kord.common.entity/EntitlementType // dev.kord.core.entity.monetization/Entitlement.type.|(){}[0] + final val user // dev.kord.core.entity.monetization/Entitlement.user|{}user[0] + final fun (): dev.kord.core.behavior/UserBehavior? // dev.kord.core.entity.monetization/Entitlement.user.|(){}[0] + final val userId // dev.kord.core.entity.monetization/Entitlement.userId|{}userId[0] + final fun (): dev.kord.common.entity/Snowflake? // dev.kord.core.entity.monetization/Entitlement.userId.|(){}[0] + + final fun equals(kotlin/Any?): kotlin/Boolean // dev.kord.core.entity.monetization/Entitlement.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // dev.kord.core.entity.monetization/Entitlement.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // dev.kord.core.entity.monetization/Entitlement.toString|toString(){}[0] + final suspend fun consume() // dev.kord.core.entity.monetization/Entitlement.consume|consume(){}[0] + final suspend fun delete() // dev.kord.core.entity.monetization/Entitlement.delete|delete(){}[0] +} + +final class dev.kord.core.entity.monetization/Sku : dev.kord.core.behavior.monetization/SkuBehavior { // dev.kord.core.entity.monetization/Sku|null[0] + constructor (dev.kord.common.entity/DiscordSku, dev.kord.core/Kord, dev.kord.core.supplier/EntitySupplier = ...) // dev.kord.core.entity.monetization/Sku.|(dev.kord.common.entity.DiscordSku;dev.kord.core.Kord;dev.kord.core.supplier.EntitySupplier){}[0] + + final val applicationId // dev.kord.core.entity.monetization/Sku.applicationId|{}applicationId[0] + final fun (): dev.kord.common.entity/Snowflake // dev.kord.core.entity.monetization/Sku.applicationId.|(){}[0] + final val data // dev.kord.core.entity.monetization/Sku.data|{}data[0] + final fun (): dev.kord.common.entity/DiscordSku // dev.kord.core.entity.monetization/Sku.data.|(){}[0] + final val flags // dev.kord.core.entity.monetization/Sku.flags|{}flags[0] + final fun (): dev.kord.common.entity/SkuFlags // dev.kord.core.entity.monetization/Sku.flags.|(){}[0] + final val id // dev.kord.core.entity.monetization/Sku.id|{}id[0] + final fun (): dev.kord.common.entity/Snowflake // dev.kord.core.entity.monetization/Sku.id.|(){}[0] + final val kord // dev.kord.core.entity.monetization/Sku.kord|{}kord[0] + final fun (): dev.kord.core/Kord // dev.kord.core.entity.monetization/Sku.kord.|(){}[0] + final val name // dev.kord.core.entity.monetization/Sku.name|{}name[0] + final fun (): kotlin/String // dev.kord.core.entity.monetization/Sku.name.|(){}[0] + final val slug // dev.kord.core.entity.monetization/Sku.slug|{}slug[0] + final fun (): kotlin/String // dev.kord.core.entity.monetization/Sku.slug.|(){}[0] + final val supplier // dev.kord.core.entity.monetization/Sku.supplier|{}supplier[0] + final fun (): dev.kord.core.supplier/EntitySupplier // dev.kord.core.entity.monetization/Sku.supplier.|(){}[0] + final val type // dev.kord.core.entity.monetization/Sku.type|{}type[0] + final fun (): dev.kord.common.entity/SkuType // dev.kord.core.entity.monetization/Sku.type.|(){}[0] + + final fun equals(kotlin/Any?): kotlin/Boolean // dev.kord.core.entity.monetization/Sku.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // dev.kord.core.entity.monetization/Sku.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // dev.kord.core.entity.monetization/Sku.toString|toString(){}[0] + final fun withStrategy(dev.kord.core.supplier/EntitySupplyStrategy<*>): dev.kord.core.entity.monetization/Sku // dev.kord.core.entity.monetization/Sku.withStrategy|withStrategy(dev.kord.core.supplier.EntitySupplyStrategy<*>){}[0] +} + +final class dev.kord.core.entity.monetization/Subscription : dev.kord.core.entity/KordEntity { // dev.kord.core.entity.monetization/Subscription|null[0] + constructor (dev.kord.core.cache.data/SubscriptionData, dev.kord.core/Kord) // dev.kord.core.entity.monetization/Subscription.|(dev.kord.core.cache.data.SubscriptionData;dev.kord.core.Kord){}[0] + + final val canceledAt // dev.kord.core.entity.monetization/Subscription.canceledAt|{}canceledAt[0] + final fun (): kotlinx.datetime/Instant? // dev.kord.core.entity.monetization/Subscription.canceledAt.|(){}[0] + final val country // dev.kord.core.entity.monetization/Subscription.country|{}country[0] + final fun (): kotlin/String? // dev.kord.core.entity.monetization/Subscription.country.|(){}[0] + final val currentPeriodEnd // dev.kord.core.entity.monetization/Subscription.currentPeriodEnd|{}currentPeriodEnd[0] + final fun (): kotlinx.datetime/Instant // dev.kord.core.entity.monetization/Subscription.currentPeriodEnd.|(){}[0] + final val currentPeriodStart // dev.kord.core.entity.monetization/Subscription.currentPeriodStart|{}currentPeriodStart[0] + final fun (): kotlinx.datetime/Instant // dev.kord.core.entity.monetization/Subscription.currentPeriodStart.|(){}[0] + final val data // dev.kord.core.entity.monetization/Subscription.data|{}data[0] + final fun (): dev.kord.core.cache.data/SubscriptionData // dev.kord.core.entity.monetization/Subscription.data.|(){}[0] + final val entitlementIds // dev.kord.core.entity.monetization/Subscription.entitlementIds|{}entitlementIds[0] + final fun (): kotlin.collections/List // dev.kord.core.entity.monetization/Subscription.entitlementIds.|(){}[0] + final val id // dev.kord.core.entity.monetization/Subscription.id|{}id[0] + final fun (): dev.kord.common.entity/Snowflake // dev.kord.core.entity.monetization/Subscription.id.|(){}[0] + final val kord // dev.kord.core.entity.monetization/Subscription.kord|{}kord[0] + final fun (): dev.kord.core/Kord // dev.kord.core.entity.monetization/Subscription.kord.|(){}[0] + final val skuIds // dev.kord.core.entity.monetization/Subscription.skuIds|{}skuIds[0] + final fun (): kotlin.collections/List // dev.kord.core.entity.monetization/Subscription.skuIds.|(){}[0] + final val skus // dev.kord.core.entity.monetization/Subscription.skus|{}skus[0] + final fun (): kotlin.collections/List // dev.kord.core.entity.monetization/Subscription.skus.|(){}[0] + final val startsAt // dev.kord.core.entity.monetization/Subscription.startsAt|{}startsAt[0] + final fun (): kotlinx.datetime/Instant // dev.kord.core.entity.monetization/Subscription.startsAt.|(){}[0] + final val status // dev.kord.core.entity.monetization/Subscription.status|{}status[0] + final fun (): dev.kord.common.entity/SubscriptionStatus // dev.kord.core.entity.monetization/Subscription.status.|(){}[0] + final val user // dev.kord.core.entity.monetization/Subscription.user|{}user[0] + final fun (): dev.kord.core.behavior/UserBehavior // dev.kord.core.entity.monetization/Subscription.user.|(){}[0] + final val userId // dev.kord.core.entity.monetization/Subscription.userId|{}userId[0] + final fun (): dev.kord.common.entity/Snowflake // dev.kord.core.entity.monetization/Subscription.userId.|(){}[0] + + final fun equals(kotlin/Any?): kotlin/Boolean // dev.kord.core.entity.monetization/Subscription.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // dev.kord.core.entity.monetization/Subscription.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // dev.kord.core.entity.monetization/Subscription.toString|toString(){}[0] +} + final class dev.kord.core.entity/Activity { // dev.kord.core.entity/Activity|null[0] constructor (dev.kord.core.cache.data/ActivityData) // dev.kord.core.entity/Activity.|(dev.kord.core.cache.data.ActivityData){}[0] @@ -10687,6 +10934,100 @@ final class dev.kord.core.event.message/ReactionRemoveEvent : dev.kord.core.enti final suspend fun getUserOrNull(): dev.kord.core.entity/User? // dev.kord.core.event.message/ReactionRemoveEvent.getUserOrNull|getUserOrNull(){}[0] } +final class dev.kord.core.event.monetization/EntitlementCreateEvent : dev.kord.core.event/Event { // dev.kord.core.event.monetization/EntitlementCreateEvent|null[0] + constructor (dev.kord.core.entity.monetization/Entitlement, dev.kord.core/Kord, kotlin/Int, kotlin/Any?) // dev.kord.core.event.monetization/EntitlementCreateEvent.|(dev.kord.core.entity.monetization.Entitlement;dev.kord.core.Kord;kotlin.Int;kotlin.Any?){}[0] + + final val customContext // dev.kord.core.event.monetization/EntitlementCreateEvent.customContext|{}customContext[0] + final fun (): kotlin/Any? // dev.kord.core.event.monetization/EntitlementCreateEvent.customContext.|(){}[0] + final val entitlement // dev.kord.core.event.monetization/EntitlementCreateEvent.entitlement|{}entitlement[0] + final fun (): dev.kord.core.entity.monetization/Entitlement // dev.kord.core.event.monetization/EntitlementCreateEvent.entitlement.|(){}[0] + final val kord // dev.kord.core.event.monetization/EntitlementCreateEvent.kord|{}kord[0] + final fun (): dev.kord.core/Kord // dev.kord.core.event.monetization/EntitlementCreateEvent.kord.|(){}[0] + final val shard // dev.kord.core.event.monetization/EntitlementCreateEvent.shard|{}shard[0] + final fun (): kotlin/Int // dev.kord.core.event.monetization/EntitlementCreateEvent.shard.|(){}[0] + + final fun toString(): kotlin/String // dev.kord.core.event.monetization/EntitlementCreateEvent.toString|toString(){}[0] +} + +final class dev.kord.core.event.monetization/EntitlementDeleteEvent : dev.kord.core.event/Event { // dev.kord.core.event.monetization/EntitlementDeleteEvent|null[0] + constructor (dev.kord.core.entity.monetization/Entitlement, dev.kord.core/Kord, kotlin/Int, kotlin/Any?) // dev.kord.core.event.monetization/EntitlementDeleteEvent.|(dev.kord.core.entity.monetization.Entitlement;dev.kord.core.Kord;kotlin.Int;kotlin.Any?){}[0] + + final val customContext // dev.kord.core.event.monetization/EntitlementDeleteEvent.customContext|{}customContext[0] + final fun (): kotlin/Any? // dev.kord.core.event.monetization/EntitlementDeleteEvent.customContext.|(){}[0] + final val entitlement // dev.kord.core.event.monetization/EntitlementDeleteEvent.entitlement|{}entitlement[0] + final fun (): dev.kord.core.entity.monetization/Entitlement // dev.kord.core.event.monetization/EntitlementDeleteEvent.entitlement.|(){}[0] + final val kord // dev.kord.core.event.monetization/EntitlementDeleteEvent.kord|{}kord[0] + final fun (): dev.kord.core/Kord // dev.kord.core.event.monetization/EntitlementDeleteEvent.kord.|(){}[0] + final val shard // dev.kord.core.event.monetization/EntitlementDeleteEvent.shard|{}shard[0] + final fun (): kotlin/Int // dev.kord.core.event.monetization/EntitlementDeleteEvent.shard.|(){}[0] + + final fun toString(): kotlin/String // dev.kord.core.event.monetization/EntitlementDeleteEvent.toString|toString(){}[0] +} + +final class dev.kord.core.event.monetization/EntitlementUpdateEvent : dev.kord.core.event/Event { // dev.kord.core.event.monetization/EntitlementUpdateEvent|null[0] + constructor (dev.kord.core.entity.monetization/Entitlement, dev.kord.core.entity.monetization/Entitlement?, dev.kord.core/Kord, kotlin/Int, kotlin/Any?) // dev.kord.core.event.monetization/EntitlementUpdateEvent.|(dev.kord.core.entity.monetization.Entitlement;dev.kord.core.entity.monetization.Entitlement?;dev.kord.core.Kord;kotlin.Int;kotlin.Any?){}[0] + + final val customContext // dev.kord.core.event.monetization/EntitlementUpdateEvent.customContext|{}customContext[0] + final fun (): kotlin/Any? // dev.kord.core.event.monetization/EntitlementUpdateEvent.customContext.|(){}[0] + final val entitlement // dev.kord.core.event.monetization/EntitlementUpdateEvent.entitlement|{}entitlement[0] + final fun (): dev.kord.core.entity.monetization/Entitlement // dev.kord.core.event.monetization/EntitlementUpdateEvent.entitlement.|(){}[0] + final val kord // dev.kord.core.event.monetization/EntitlementUpdateEvent.kord|{}kord[0] + final fun (): dev.kord.core/Kord // dev.kord.core.event.monetization/EntitlementUpdateEvent.kord.|(){}[0] + final val old // dev.kord.core.event.monetization/EntitlementUpdateEvent.old|{}old[0] + final fun (): dev.kord.core.entity.monetization/Entitlement? // dev.kord.core.event.monetization/EntitlementUpdateEvent.old.|(){}[0] + final val shard // dev.kord.core.event.monetization/EntitlementUpdateEvent.shard|{}shard[0] + final fun (): kotlin/Int // dev.kord.core.event.monetization/EntitlementUpdateEvent.shard.|(){}[0] + + final fun toString(): kotlin/String // dev.kord.core.event.monetization/EntitlementUpdateEvent.toString|toString(){}[0] +} + +final class dev.kord.core.event.monetization/SubscriptionCreateEvent : dev.kord.core.event/Event { // dev.kord.core.event.monetization/SubscriptionCreateEvent|null[0] + constructor (dev.kord.core.entity.monetization/Subscription, dev.kord.core/Kord, kotlin/Int, kotlin/Any?) // dev.kord.core.event.monetization/SubscriptionCreateEvent.|(dev.kord.core.entity.monetization.Subscription;dev.kord.core.Kord;kotlin.Int;kotlin.Any?){}[0] + + final val customContext // dev.kord.core.event.monetization/SubscriptionCreateEvent.customContext|{}customContext[0] + final fun (): kotlin/Any? // dev.kord.core.event.monetization/SubscriptionCreateEvent.customContext.|(){}[0] + final val kord // dev.kord.core.event.monetization/SubscriptionCreateEvent.kord|{}kord[0] + final fun (): dev.kord.core/Kord // dev.kord.core.event.monetization/SubscriptionCreateEvent.kord.|(){}[0] + final val shard // dev.kord.core.event.monetization/SubscriptionCreateEvent.shard|{}shard[0] + final fun (): kotlin/Int // dev.kord.core.event.monetization/SubscriptionCreateEvent.shard.|(){}[0] + final val subscription // dev.kord.core.event.monetization/SubscriptionCreateEvent.subscription|{}subscription[0] + final fun (): dev.kord.core.entity.monetization/Subscription // dev.kord.core.event.monetization/SubscriptionCreateEvent.subscription.|(){}[0] + + final fun toString(): kotlin/String // dev.kord.core.event.monetization/SubscriptionCreateEvent.toString|toString(){}[0] +} + +final class dev.kord.core.event.monetization/SubscriptionDeleteEvent : dev.kord.core.event/Event { // dev.kord.core.event.monetization/SubscriptionDeleteEvent|null[0] + constructor (dev.kord.core.entity.monetization/Subscription, dev.kord.core/Kord, kotlin/Int, kotlin/Any?) // dev.kord.core.event.monetization/SubscriptionDeleteEvent.|(dev.kord.core.entity.monetization.Subscription;dev.kord.core.Kord;kotlin.Int;kotlin.Any?){}[0] + + final val customContext // dev.kord.core.event.monetization/SubscriptionDeleteEvent.customContext|{}customContext[0] + final fun (): kotlin/Any? // dev.kord.core.event.monetization/SubscriptionDeleteEvent.customContext.|(){}[0] + final val kord // dev.kord.core.event.monetization/SubscriptionDeleteEvent.kord|{}kord[0] + final fun (): dev.kord.core/Kord // dev.kord.core.event.monetization/SubscriptionDeleteEvent.kord.|(){}[0] + final val shard // dev.kord.core.event.monetization/SubscriptionDeleteEvent.shard|{}shard[0] + final fun (): kotlin/Int // dev.kord.core.event.monetization/SubscriptionDeleteEvent.shard.|(){}[0] + final val subscription // dev.kord.core.event.monetization/SubscriptionDeleteEvent.subscription|{}subscription[0] + final fun (): dev.kord.core.entity.monetization/Subscription // dev.kord.core.event.monetization/SubscriptionDeleteEvent.subscription.|(){}[0] + + final fun toString(): kotlin/String // dev.kord.core.event.monetization/SubscriptionDeleteEvent.toString|toString(){}[0] +} + +final class dev.kord.core.event.monetization/SubscriptionUpdateEvent : dev.kord.core.event/Event { // dev.kord.core.event.monetization/SubscriptionUpdateEvent|null[0] + constructor (dev.kord.core.entity.monetization/Subscription, dev.kord.core.entity.monetization/Subscription?, dev.kord.core/Kord, kotlin/Int, kotlin/Any?) // dev.kord.core.event.monetization/SubscriptionUpdateEvent.|(dev.kord.core.entity.monetization.Subscription;dev.kord.core.entity.monetization.Subscription?;dev.kord.core.Kord;kotlin.Int;kotlin.Any?){}[0] + + final val customContext // dev.kord.core.event.monetization/SubscriptionUpdateEvent.customContext|{}customContext[0] + final fun (): kotlin/Any? // dev.kord.core.event.monetization/SubscriptionUpdateEvent.customContext.|(){}[0] + final val kord // dev.kord.core.event.monetization/SubscriptionUpdateEvent.kord|{}kord[0] + final fun (): dev.kord.core/Kord // dev.kord.core.event.monetization/SubscriptionUpdateEvent.kord.|(){}[0] + final val old // dev.kord.core.event.monetization/SubscriptionUpdateEvent.old|{}old[0] + final fun (): dev.kord.core.entity.monetization/Subscription? // dev.kord.core.event.monetization/SubscriptionUpdateEvent.old.|(){}[0] + final val shard // dev.kord.core.event.monetization/SubscriptionUpdateEvent.shard|{}shard[0] + final fun (): kotlin/Int // dev.kord.core.event.monetization/SubscriptionUpdateEvent.shard.|(){}[0] + final val subscription // dev.kord.core.event.monetization/SubscriptionUpdateEvent.subscription|{}subscription[0] + final fun (): dev.kord.core.entity.monetization/Subscription // dev.kord.core.event.monetization/SubscriptionUpdateEvent.subscription.|(){}[0] + + final fun toString(): kotlin/String // dev.kord.core.event.monetization/SubscriptionUpdateEvent.toString|toString(){}[0] +} + final class dev.kord.core.event.role/RoleCreateEvent : dev.kord.core.entity/Strategizable, dev.kord.core.event/Event { // dev.kord.core.event.role/RoleCreateEvent|null[0] constructor (dev.kord.core.entity/Role, kotlin/Int, kotlin/Any?, dev.kord.core.supplier/EntitySupplier = ...) // dev.kord.core.event.role/RoleCreateEvent.|(dev.kord.core.entity.Role;kotlin.Int;kotlin.Any?;dev.kord.core.supplier.EntitySupplier){}[0] @@ -10876,6 +11217,7 @@ final class dev.kord.core.exception/EntityNotFoundException : kotlin/Exception { final inline fun selfNotFound(): kotlin/Nothing // dev.kord.core.exception/EntityNotFoundException.Companion.selfNotFound|selfNotFound(){}[0] final inline fun stageInstanceNotFound(dev.kord.common.entity/Snowflake): kotlin/Nothing // dev.kord.core.exception/EntityNotFoundException.Companion.stageInstanceNotFound|stageInstanceNotFound(dev.kord.common.entity.Snowflake){}[0] final inline fun stickerNotFound(dev.kord.common.entity/Snowflake): kotlin/Nothing // dev.kord.core.exception/EntityNotFoundException.Companion.stickerNotFound|stickerNotFound(dev.kord.common.entity.Snowflake){}[0] + final inline fun subscriptionNotFound(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake): kotlin/Nothing // dev.kord.core.exception/EntityNotFoundException.Companion.subscriptionNotFound|subscriptionNotFound(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake){}[0] final inline fun templateNotFound(kotlin/String): kotlin/Nothing // dev.kord.core.exception/EntityNotFoundException.Companion.templateNotFound|templateNotFound(kotlin.String){}[0] final inline fun userNotFound(dev.kord.common.entity/Snowflake): kotlin/Nothing // dev.kord.core.exception/EntityNotFoundException.Companion.userNotFound|userNotFound(dev.kord.common.entity.Snowflake){}[0] final inline fun webhookMessageNotFound(dev.kord.common.entity/Snowflake, kotlin/String, dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake? = ...): kotlin/Nothing // dev.kord.core.exception/EntityNotFoundException.Companion.webhookMessageNotFound|webhookMessageNotFound(dev.kord.common.entity.Snowflake;kotlin.String;dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake?){}[0] @@ -11071,6 +11413,7 @@ final class dev.kord.core.supplier/CacheEntitySupplier : dev.kord.core.supplier/ final fun getChannelWebhooks(dev.kord.common.entity/Snowflake): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/CacheEntitySupplier.getChannelWebhooks|getChannelWebhooks(dev.kord.common.entity.Snowflake){}[0] final fun getCurrentUserGuilds(kotlin/Int?): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/CacheEntitySupplier.getCurrentUserGuilds|getCurrentUserGuilds(kotlin.Int?){}[0] final fun getEmojis(dev.kord.common.entity/Snowflake): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/CacheEntitySupplier.getEmojis|getEmojis(dev.kord.common.entity.Snowflake){}[0] + final fun getEntitlements(dev.kord.common.entity/Snowflake, dev.kord.rest.json.request/EntitlementsListRequest): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/CacheEntitySupplier.getEntitlements|getEntitlements(dev.kord.common.entity.Snowflake;dev.kord.rest.json.request.EntitlementsListRequest){}[0] final fun getGlobalApplicationCommands(dev.kord.common.entity/Snowflake, kotlin/Boolean?): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/CacheEntitySupplier.getGlobalApplicationCommands|getGlobalApplicationCommands(dev.kord.common.entity.Snowflake;kotlin.Boolean?){}[0] final fun getGuildApplicationCommandPermissions(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/CacheEntitySupplier.getGuildApplicationCommandPermissions|getGuildApplicationCommandPermissions(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake){}[0] final fun getGuildApplicationCommands(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake, kotlin/Boolean?): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/CacheEntitySupplier.getGuildApplicationCommands|getGuildApplicationCommands(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;kotlin.Boolean?){}[0] @@ -11093,6 +11436,7 @@ final class dev.kord.core.supplier/CacheEntitySupplier : dev.kord.core.supplier/ final fun getNitroStickerPacks(): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/CacheEntitySupplier.getNitroStickerPacks|getNitroStickerPacks(){}[0] final fun getPrivateArchivedThreads(dev.kord.common.entity/Snowflake, kotlinx.datetime/Instant?, kotlin/Int?): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/CacheEntitySupplier.getPrivateArchivedThreads|getPrivateArchivedThreads(dev.kord.common.entity.Snowflake;kotlinx.datetime.Instant?;kotlin.Int?){}[0] final fun getPublicArchivedThreads(dev.kord.common.entity/Snowflake, kotlinx.datetime/Instant?, kotlin/Int?): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/CacheEntitySupplier.getPublicArchivedThreads|getPublicArchivedThreads(dev.kord.common.entity.Snowflake;kotlinx.datetime.Instant?;kotlin.Int?){}[0] + final fun getSubscriptions(dev.kord.common.entity/Snowflake, dev.kord.rest.json.request/SkuSubscriptionsListRequest): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/CacheEntitySupplier.getSubscriptions|getSubscriptions(dev.kord.common.entity.Snowflake;dev.kord.rest.json.request.SkuSubscriptionsListRequest){}[0] final fun getTemplates(dev.kord.common.entity/Snowflake): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/CacheEntitySupplier.getTemplates|getTemplates(dev.kord.common.entity.Snowflake){}[0] final fun getThreadMembers(dev.kord.common.entity/Snowflake): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/CacheEntitySupplier.getThreadMembers|getThreadMembers(dev.kord.common.entity.Snowflake){}[0] final fun toString(): kotlin/String // dev.kord.core.supplier/CacheEntitySupplier.toString|toString(){}[0] @@ -11116,6 +11460,7 @@ final class dev.kord.core.supplier/CacheEntitySupplier : dev.kord.core.supplier/ final suspend fun getSelfOrNull(): dev.kord.core.entity/User? // dev.kord.core.supplier/CacheEntitySupplier.getSelfOrNull|getSelfOrNull(){}[0] final suspend fun getStageInstanceOrNull(dev.kord.common.entity/Snowflake): dev.kord.core.entity/StageInstance? // dev.kord.core.supplier/CacheEntitySupplier.getStageInstanceOrNull|getStageInstanceOrNull(dev.kord.common.entity.Snowflake){}[0] final suspend fun getStickerOrNull(dev.kord.common.entity/Snowflake): dev.kord.core.entity/Sticker? // dev.kord.core.supplier/CacheEntitySupplier.getStickerOrNull|getStickerOrNull(dev.kord.common.entity.Snowflake){}[0] + final suspend fun getSubscriptionOrNull(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake): dev.kord.core.entity.monetization/Subscription? // dev.kord.core.supplier/CacheEntitySupplier.getSubscriptionOrNull|getSubscriptionOrNull(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake){}[0] final suspend fun getTemplateOrNull(kotlin/String): dev.kord.core.entity/Template? // dev.kord.core.supplier/CacheEntitySupplier.getTemplateOrNull|getTemplateOrNull(kotlin.String){}[0] final suspend fun getUserOrNull(dev.kord.common.entity/Snowflake): dev.kord.core.entity/User? // dev.kord.core.supplier/CacheEntitySupplier.getUserOrNull|getUserOrNull(dev.kord.common.entity.Snowflake){}[0] final suspend fun getWebhookMessageOrNull(dev.kord.common.entity/Snowflake, kotlin/String, dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake?): dev.kord.core.entity/Message? // dev.kord.core.supplier/CacheEntitySupplier.getWebhookMessageOrNull|getWebhookMessageOrNull(dev.kord.common.entity.Snowflake;kotlin.String;dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake?){}[0] @@ -11140,6 +11485,7 @@ final class dev.kord.core.supplier/RestEntitySupplier : dev.kord.core.supplier/E final fun getChannelWebhooks(dev.kord.common.entity/Snowflake): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/RestEntitySupplier.getChannelWebhooks|getChannelWebhooks(dev.kord.common.entity.Snowflake){}[0] final fun getCurrentUserGuilds(kotlin/Int?): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/RestEntitySupplier.getCurrentUserGuilds|getCurrentUserGuilds(kotlin.Int?){}[0] final fun getEmojis(dev.kord.common.entity/Snowflake): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/RestEntitySupplier.getEmojis|getEmojis(dev.kord.common.entity.Snowflake){}[0] + final fun getEntitlements(dev.kord.common.entity/Snowflake, dev.kord.rest.json.request/EntitlementsListRequest): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/RestEntitySupplier.getEntitlements|getEntitlements(dev.kord.common.entity.Snowflake;dev.kord.rest.json.request.EntitlementsListRequest){}[0] final fun getGlobalApplicationCommands(dev.kord.common.entity/Snowflake, kotlin/Boolean?): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/RestEntitySupplier.getGlobalApplicationCommands|getGlobalApplicationCommands(dev.kord.common.entity.Snowflake;kotlin.Boolean?){}[0] final fun getGuildApplicationCommandPermissions(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/RestEntitySupplier.getGuildApplicationCommandPermissions|getGuildApplicationCommandPermissions(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake){}[0] final fun getGuildApplicationCommands(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake, kotlin/Boolean?): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/RestEntitySupplier.getGuildApplicationCommands|getGuildApplicationCommands(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;kotlin.Boolean?){}[0] @@ -11163,6 +11509,7 @@ final class dev.kord.core.supplier/RestEntitySupplier : dev.kord.core.supplier/E final fun getPrivateArchivedThreads(dev.kord.common.entity/Snowflake, kotlinx.datetime/Instant?, kotlin/Int?): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/RestEntitySupplier.getPrivateArchivedThreads|getPrivateArchivedThreads(dev.kord.common.entity.Snowflake;kotlinx.datetime.Instant?;kotlin.Int?){}[0] final fun getPublicArchivedThreads(dev.kord.common.entity/Snowflake, kotlinx.datetime/Instant?, kotlin/Int?): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/RestEntitySupplier.getPublicArchivedThreads|getPublicArchivedThreads(dev.kord.common.entity.Snowflake;kotlinx.datetime.Instant?;kotlin.Int?){}[0] final fun getReactors(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake, dev.kord.core.entity/ReactionEmoji): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/RestEntitySupplier.getReactors|getReactors(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;dev.kord.core.entity.ReactionEmoji){}[0] + final fun getSubscriptions(dev.kord.common.entity/Snowflake, dev.kord.rest.json.request/SkuSubscriptionsListRequest): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/RestEntitySupplier.getSubscriptions|getSubscriptions(dev.kord.common.entity.Snowflake;dev.kord.rest.json.request.SkuSubscriptionsListRequest){}[0] final fun getTemplates(dev.kord.common.entity/Snowflake): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/RestEntitySupplier.getTemplates|getTemplates(dev.kord.common.entity.Snowflake){}[0] final fun getThreadMembers(dev.kord.common.entity/Snowflake): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/RestEntitySupplier.getThreadMembers|getThreadMembers(dev.kord.common.entity.Snowflake){}[0] final fun toString(): kotlin/String // dev.kord.core.supplier/RestEntitySupplier.toString|toString(){}[0] @@ -11195,6 +11542,7 @@ final class dev.kord.core.supplier/RestEntitySupplier : dev.kord.core.supplier/E final suspend fun getSelfOrNull(): dev.kord.core.entity/User? // dev.kord.core.supplier/RestEntitySupplier.getSelfOrNull|getSelfOrNull(){}[0] final suspend fun getStageInstanceOrNull(dev.kord.common.entity/Snowflake): dev.kord.core.entity/StageInstance? // dev.kord.core.supplier/RestEntitySupplier.getStageInstanceOrNull|getStageInstanceOrNull(dev.kord.common.entity.Snowflake){}[0] final suspend fun getStickerOrNull(dev.kord.common.entity/Snowflake): dev.kord.core.entity/Sticker? // dev.kord.core.supplier/RestEntitySupplier.getStickerOrNull|getStickerOrNull(dev.kord.common.entity.Snowflake){}[0] + final suspend fun getSubscriptionOrNull(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake): dev.kord.core.entity.monetization/Subscription? // dev.kord.core.supplier/RestEntitySupplier.getSubscriptionOrNull|getSubscriptionOrNull(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake){}[0] final suspend fun getTemplateOrNull(kotlin/String): dev.kord.core.entity/Template? // dev.kord.core.supplier/RestEntitySupplier.getTemplateOrNull|getTemplateOrNull(kotlin.String){}[0] final suspend fun getUserOrNull(dev.kord.common.entity/Snowflake): dev.kord.core.entity/User? // dev.kord.core.supplier/RestEntitySupplier.getUserOrNull|getUserOrNull(dev.kord.common.entity.Snowflake){}[0] final suspend fun getWebhookMessageOrNull(dev.kord.common.entity/Snowflake, kotlin/String, dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake?): dev.kord.core.entity/Message? // dev.kord.core.supplier/RestEntitySupplier.getWebhookMessageOrNull|getWebhookMessageOrNull(dev.kord.common.entity.Snowflake;kotlin.String;dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake?){}[0] @@ -11216,6 +11564,7 @@ final class dev.kord.core.supplier/StoreEntitySupplier : dev.kord.core.supplier/ final fun getChannelWebhooks(dev.kord.common.entity/Snowflake): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/StoreEntitySupplier.getChannelWebhooks|getChannelWebhooks(dev.kord.common.entity.Snowflake){}[0] final fun getCurrentUserGuilds(kotlin/Int?): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/StoreEntitySupplier.getCurrentUserGuilds|getCurrentUserGuilds(kotlin.Int?){}[0] final fun getEmojis(dev.kord.common.entity/Snowflake): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/StoreEntitySupplier.getEmojis|getEmojis(dev.kord.common.entity.Snowflake){}[0] + final fun getEntitlements(dev.kord.common.entity/Snowflake, dev.kord.rest.json.request/EntitlementsListRequest): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/StoreEntitySupplier.getEntitlements|getEntitlements(dev.kord.common.entity.Snowflake;dev.kord.rest.json.request.EntitlementsListRequest){}[0] final fun getGlobalApplicationCommands(dev.kord.common.entity/Snowflake, kotlin/Boolean?): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/StoreEntitySupplier.getGlobalApplicationCommands|getGlobalApplicationCommands(dev.kord.common.entity.Snowflake;kotlin.Boolean?){}[0] final fun getGuildApplicationCommandPermissions(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/StoreEntitySupplier.getGuildApplicationCommandPermissions|getGuildApplicationCommandPermissions(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake){}[0] final fun getGuildApplicationCommands(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake, kotlin/Boolean?): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/StoreEntitySupplier.getGuildApplicationCommands|getGuildApplicationCommands(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;kotlin.Boolean?){}[0] @@ -11238,6 +11587,7 @@ final class dev.kord.core.supplier/StoreEntitySupplier : dev.kord.core.supplier/ final fun getNitroStickerPacks(): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/StoreEntitySupplier.getNitroStickerPacks|getNitroStickerPacks(){}[0] final fun getPrivateArchivedThreads(dev.kord.common.entity/Snowflake, kotlinx.datetime/Instant?, kotlin/Int?): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/StoreEntitySupplier.getPrivateArchivedThreads|getPrivateArchivedThreads(dev.kord.common.entity.Snowflake;kotlinx.datetime.Instant?;kotlin.Int?){}[0] final fun getPublicArchivedThreads(dev.kord.common.entity/Snowflake, kotlinx.datetime/Instant?, kotlin/Int?): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/StoreEntitySupplier.getPublicArchivedThreads|getPublicArchivedThreads(dev.kord.common.entity.Snowflake;kotlinx.datetime.Instant?;kotlin.Int?){}[0] + final fun getSubscriptions(dev.kord.common.entity/Snowflake, dev.kord.rest.json.request/SkuSubscriptionsListRequest): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/StoreEntitySupplier.getSubscriptions|getSubscriptions(dev.kord.common.entity.Snowflake;dev.kord.rest.json.request.SkuSubscriptionsListRequest){}[0] final fun getTemplates(dev.kord.common.entity/Snowflake): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/StoreEntitySupplier.getTemplates|getTemplates(dev.kord.common.entity.Snowflake){}[0] final fun getThreadMembers(dev.kord.common.entity/Snowflake): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/StoreEntitySupplier.getThreadMembers|getThreadMembers(dev.kord.common.entity.Snowflake){}[0] final fun toString(): kotlin/String // dev.kord.core.supplier/StoreEntitySupplier.toString|toString(){}[0] @@ -11260,6 +11610,7 @@ final class dev.kord.core.supplier/StoreEntitySupplier : dev.kord.core.supplier/ final suspend fun getSelfOrNull(): dev.kord.core.entity/User? // dev.kord.core.supplier/StoreEntitySupplier.getSelfOrNull|getSelfOrNull(){}[0] final suspend fun getStageInstanceOrNull(dev.kord.common.entity/Snowflake): dev.kord.core.entity/StageInstance? // dev.kord.core.supplier/StoreEntitySupplier.getStageInstanceOrNull|getStageInstanceOrNull(dev.kord.common.entity.Snowflake){}[0] final suspend fun getStickerOrNull(dev.kord.common.entity/Snowflake): dev.kord.core.entity/Sticker? // dev.kord.core.supplier/StoreEntitySupplier.getStickerOrNull|getStickerOrNull(dev.kord.common.entity.Snowflake){}[0] + final suspend fun getSubscriptionOrNull(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake): dev.kord.core.entity.monetization/Subscription? // dev.kord.core.supplier/StoreEntitySupplier.getSubscriptionOrNull|getSubscriptionOrNull(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake){}[0] final suspend fun getTemplateOrNull(kotlin/String): dev.kord.core.entity/Template? // dev.kord.core.supplier/StoreEntitySupplier.getTemplateOrNull|getTemplateOrNull(kotlin.String){}[0] final suspend fun getUserOrNull(dev.kord.common.entity/Snowflake): dev.kord.core.entity/User? // dev.kord.core.supplier/StoreEntitySupplier.getUserOrNull|getUserOrNull(dev.kord.common.entity.Snowflake){}[0] final suspend fun getWebhookMessageOrNull(dev.kord.common.entity/Snowflake, kotlin/String, dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake?): dev.kord.core.entity/Message? // dev.kord.core.supplier/StoreEntitySupplier.getWebhookMessageOrNull|getWebhookMessageOrNull(dev.kord.common.entity.Snowflake;kotlin.String;dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake?){}[0] @@ -11320,6 +11671,7 @@ final class dev.kord.core/Kord : kotlinx.coroutines/CoroutineScope { // dev.kord final fun getGuildApplicationCommands(dev.kord.common.entity/Snowflake, kotlin/Boolean? = ...): kotlinx.coroutines.flow/Flow // dev.kord.core/Kord.getGuildApplicationCommands|getGuildApplicationCommands(dev.kord.common.entity.Snowflake;kotlin.Boolean?){}[0] final fun hashCode(): kotlin/Int // dev.kord.core/Kord.hashCode|hashCode(){}[0] final fun toString(): kotlin/String // dev.kord.core/Kord.toString|toString(){}[0] + final inline fun getEntitlements(dev.kord.core.supplier/EntitySupplyStrategy<*> = ..., kotlin/Function1 = ...): kotlinx.coroutines.flow/Flow // dev.kord.core/Kord.getEntitlements|getEntitlements(dev.kord.core.supplier.EntitySupplyStrategy<*>;kotlin.Function1){}[0] final suspend fun <#A1: kotlin/Any?> getGlobalApplicationCommandOf(dev.kord.common.entity/Snowflake): #A1 // dev.kord.core/Kord.getGlobalApplicationCommandOf|getGlobalApplicationCommandOf(dev.kord.common.entity.Snowflake){0ยง}[0] final suspend fun <#A1: kotlin/Any?> getGlobalApplicationCommandOfOrNull(dev.kord.common.entity/Snowflake): #A1? // dev.kord.core/Kord.getGlobalApplicationCommandOfOrNull|getGlobalApplicationCommandOfOrNull(dev.kord.common.entity.Snowflake){0ยง}[0] final suspend fun editSelf(kotlin/Function1): dev.kord.core.entity/User // dev.kord.core/Kord.editSelf|editSelf(kotlin.Function1){}[0] @@ -11337,6 +11689,7 @@ final class dev.kord.core/Kord : kotlinx.coroutines/CoroutineScope { // dev.kord final suspend fun getInvite(kotlin/String, kotlin/Boolean = ..., kotlin/Boolean = ..., dev.kord.common.entity/Snowflake? = ...): dev.kord.core.entity/Invite // dev.kord.core/Kord.getInvite|getInvite(kotlin.String;kotlin.Boolean;kotlin.Boolean;dev.kord.common.entity.Snowflake?){}[0] final suspend fun getInviteOrNull(kotlin/String, kotlin/Boolean = ..., kotlin/Boolean = ..., dev.kord.common.entity/Snowflake? = ...): dev.kord.core.entity/Invite? // dev.kord.core/Kord.getInviteOrNull|getInviteOrNull(kotlin.String;kotlin.Boolean;kotlin.Boolean;dev.kord.common.entity.Snowflake?){}[0] final suspend fun getSelf(dev.kord.core.supplier/EntitySupplyStrategy<*> = ...): dev.kord.core.entity/User // dev.kord.core/Kord.getSelf|getSelf(dev.kord.core.supplier.EntitySupplyStrategy<*>){}[0] + final suspend fun getSkus(): kotlin.collections/List // dev.kord.core/Kord.getSkus|getSkus(){}[0] final suspend fun getSticker(dev.kord.common.entity/Snowflake): dev.kord.core.entity/Sticker // dev.kord.core/Kord.getSticker|getSticker(dev.kord.common.entity.Snowflake){}[0] final suspend fun getUser(dev.kord.common.entity/Snowflake, dev.kord.core.supplier/EntitySupplyStrategy<*> = ...): dev.kord.core.entity/User? // dev.kord.core/Kord.getUser|getUser(dev.kord.common.entity.Snowflake;dev.kord.core.supplier.EntitySupplyStrategy<*>){}[0] final suspend fun getWebhook(dev.kord.common.entity/Snowflake, dev.kord.core.supplier/EntitySupplyStrategy<*> = ...): dev.kord.core.entity/Webhook // dev.kord.core/Kord.getWebhook|getWebhook(dev.kord.common.entity.Snowflake;dev.kord.core.supplier.EntitySupplyStrategy<*>){}[0] @@ -11394,6 +11747,7 @@ final class dev.kord.core/Unsafe { // dev.kord.core/Unsafe|null[0] final fun privateThreadParent(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake): dev.kord.core.behavior.channel.threads/PrivateThreadParentChannelBehavior // dev.kord.core/Unsafe.privateThreadParent|privateThreadParent(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake){}[0] final fun publicThreadParent(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake): dev.kord.core.behavior.channel.threads/ThreadParentChannelBehavior // dev.kord.core/Unsafe.publicThreadParent|publicThreadParent(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake){}[0] final fun role(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake): dev.kord.core.behavior/RoleBehavior // dev.kord.core/Unsafe.role|role(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake){}[0] + final fun sku(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake = ...): dev.kord.core.behavior.monetization/SkuBehavior // dev.kord.core/Unsafe.sku|sku(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake){}[0] final fun spamAutoModerationRule(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake): dev.kord.core.behavior.automoderation/SpamAutoModerationRuleBehavior // dev.kord.core/Unsafe.spamAutoModerationRule|spamAutoModerationRule(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake){}[0] final fun stageInstance(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake): dev.kord.core.behavior/StageInstanceBehavior // dev.kord.core/Unsafe.stageInstance|stageInstance(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake){}[0] final fun textChannel(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake): dev.kord.core.behavior.channel/TextChannelBehavior // dev.kord.core/Unsafe.textChannel|textChannel(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake){}[0] @@ -12070,6 +12424,7 @@ final fun dev.kord.core.entity.interaction/InteractionCommand(dev.kord.core.cach final fun dev.kord.core.entity.interaction/ModalSubmitInteraction(dev.kord.core.cache.data/InteractionData, dev.kord.core/Kord, dev.kord.core.supplier/EntitySupplier = ...): dev.kord.core.entity.interaction/ModalSubmitInteraction // dev.kord.core.entity.interaction/ModalSubmitInteraction|ModalSubmitInteraction(dev.kord.core.cache.data.InteractionData;dev.kord.core.Kord;dev.kord.core.supplier.EntitySupplier){}[0] final fun dev.kord.core.entity.interaction/OptionValue(dev.kord.common.entity/CommandArgument<*>, dev.kord.core.entity.interaction/ResolvedObjects?): dev.kord.core.entity.interaction/OptionValue<*> // dev.kord.core.entity.interaction/OptionValue|OptionValue(dev.kord.common.entity.CommandArgument<*>;dev.kord.core.entity.interaction.ResolvedObjects?){}[0] final fun dev.kord.core/logCaughtThrowable(kotlin/Throwable) // dev.kord.core/logCaughtThrowable|logCaughtThrowable(kotlin.Throwable){}[0] +final inline fun (dev.kord.core.behavior.monetization/SkuBehavior).dev.kord.core.behavior.monetization/getSubscriptions(kotlin/Function1): kotlinx.coroutines.flow/Flow // dev.kord.core.behavior.monetization/getSubscriptions|getSubscriptions@dev.kord.core.behavior.monetization.SkuBehavior(kotlin.Function1){}[0] final inline fun (dev.kord.core.behavior/GuildBehavior).dev.kord.core.behavior/getAuditLogEntries(kotlin/Function1 = ...): kotlinx.coroutines.flow/Flow // dev.kord.core.behavior/getAuditLogEntries|getAuditLogEntries@dev.kord.core.behavior.GuildBehavior(kotlin.Function1){}[0] final inline fun (dev.kord.core.behavior/GuildBehavior).dev.kord.core.behavior/requestMembers(kotlin/Function1 = ...): kotlinx.coroutines.flow/Flow // dev.kord.core.behavior/requestMembers|requestMembers@dev.kord.core.behavior.GuildBehavior(kotlin.Function1){}[0] final inline fun (dev.kord.core.entity.channel/Category).dev.kord.core.live.channel/live(kotlinx.coroutines/CoroutineScope = ..., kotlin/Function1): dev.kord.core.live.channel/LiveCategory // dev.kord.core.live.channel/live|live@dev.kord.core.entity.channel.Category(kotlinx.coroutines.CoroutineScope;kotlin.Function1){}[0] diff --git a/core/src/commonMain/kotlin/Kord.kt b/core/src/commonMain/kotlin/Kord.kt index 0ae5ec4fae1..9f49374ee11 100644 --- a/core/src/commonMain/kotlin/Kord.kt +++ b/core/src/commonMain/kotlin/Kord.kt @@ -15,6 +15,8 @@ import dev.kord.core.cache.data.UserData import dev.kord.core.entity.* import dev.kord.core.entity.application.* import dev.kord.core.entity.channel.Channel +import dev.kord.core.entity.monetization.Entitlement +import dev.kord.core.entity.monetization.Sku import dev.kord.core.event.Event import dev.kord.core.exception.EntityNotFoundException import dev.kord.core.exception.KordInitializationException @@ -28,6 +30,7 @@ import dev.kord.gateway.builder.PresenceBuilder import dev.kord.rest.builder.application.ApplicationRoleConnectionMetadataRecordsBuilder import dev.kord.rest.builder.guild.GuildCreateBuilder import dev.kord.rest.builder.interaction.* +import dev.kord.rest.builder.monetization.EntitlementsListRequestBuilder import dev.kord.rest.builder.user.CurrentUserModifyBuilder import dev.kord.rest.request.RestRequestException import dev.kord.rest.service.RestClient @@ -365,6 +368,27 @@ public class Kord( scheduledEventId: Snowflake? = null, ): Invite? = with(EntitySupplyStrategy.rest).getInviteOrNull(code, withCounts, withExpiration, scheduledEventId) + /** + * Requests to get all [Sku]s for this application. + * + * @throws RestRequestException if something went wrong during the request. + */ + public suspend fun getSkus(): List = rest.sku.listSkus(selfId).map { Sku(it, this) } + + /** + * Requests to get all [Entitlement]s for this application. + * + * @throws RequestException if something went wrong during the request. + */ + public inline fun getEntitlements( + strategy: EntitySupplyStrategy<*> = resources.defaultStrategy, + builder: EntitlementsListRequestBuilder.() -> Unit = {}, + ): Flow { + contract { callsInPlace(builder, InvocationKind.EXACTLY_ONCE) } + val request = EntitlementsListRequestBuilder().apply(builder).toRequest() + return strategy.supply(this).getEntitlements(selfId, request) + } + public suspend fun getSticker(id: Snowflake): Sticker = defaultSupplier.getSticker(id) diff --git a/core/src/commonMain/kotlin/Unsafe.kt b/core/src/commonMain/kotlin/Unsafe.kt index 269d0676fb5..28e98182034 100644 --- a/core/src/commonMain/kotlin/Unsafe.kt +++ b/core/src/commonMain/kotlin/Unsafe.kt @@ -11,6 +11,8 @@ import dev.kord.core.behavior.channel.threads.ThreadChannelBehavior import dev.kord.core.behavior.channel.threads.ThreadParentChannelBehavior import dev.kord.core.behavior.interaction.ApplicationCommandInteractionBehavior import dev.kord.core.behavior.interaction.ComponentInteractionBehavior +import dev.kord.core.behavior.monetization.SkuBehavior +import dev.kord.core.behavior.monetization.SkuBehaviorImpl import dev.kord.rest.service.InteractionService /** @@ -46,6 +48,9 @@ public class Unsafe(private val kord: Kord) { ruleId: Snowflake, ): MentionSpamAutoModerationRuleBehavior = MentionSpamAutoModerationRuleBehaviorImpl(guildId, ruleId, kord) + public fun sku(skuId: Snowflake, applicationId: Snowflake = kord.selfId): SkuBehavior = + SkuBehaviorImpl(applicationId, skuId, kord) + public fun message(channelId: Snowflake, messageId: Snowflake): MessageBehavior = MessageBehavior(channelId = channelId, messageId = messageId, kord = kord) diff --git a/core/src/commonMain/kotlin/behavior/monetization/SkuBehavior.kt b/core/src/commonMain/kotlin/behavior/monetization/SkuBehavior.kt new file mode 100644 index 00000000000..5b261137df3 --- /dev/null +++ b/core/src/commonMain/kotlin/behavior/monetization/SkuBehavior.kt @@ -0,0 +1,126 @@ +package dev.kord.core.behavior.monetization + +import dev.kord.common.entity.EntitlementOwnerType +import dev.kord.common.entity.Snowflake +import dev.kord.common.exception.RequestException +import dev.kord.core.Kord +import dev.kord.core.behavior.GuildBehavior +import dev.kord.core.behavior.UserBehavior +import dev.kord.core.cache.data.EntitlementData +import dev.kord.core.entity.Application +import dev.kord.core.entity.KordEntity +import dev.kord.core.entity.Strategizable +import dev.kord.core.entity.monetization.Entitlement +import dev.kord.core.entity.monetization.Sku +import dev.kord.core.entity.monetization.Subscription +import dev.kord.core.exception.EntityNotFoundException +import dev.kord.core.hash +import dev.kord.core.supplier.EntitySupplier +import dev.kord.core.supplier.EntitySupplyStrategy +import dev.kord.rest.builder.monetization.SkuSubscriptionsListRequestBuilder +import dev.kord.rest.json.request.TestEntitlementCreateRequest +import dev.kord.rest.request.RestRequestException +import kotlinx.coroutines.flow.Flow +import kotlin.contracts.InvocationKind.EXACTLY_ONCE +import kotlin.contracts.contract + +/** The behavior of an [Sku]. */ +public interface SkuBehavior : KordEntity, Strategizable { + + /** The ID of the [Application] this SKU is for. */ + public val applicationId: Snowflake + + /** + * Requests a [Subscription] containing this SKU by its [id][subscriptionId]. Returns `null` if it wasn't found. + * + * @throws RequestException if something went wrong during the request. + */ + public suspend fun getSubscriptionOrNull(subscriptionId: Snowflake): Subscription? = + supplier.getSubscriptionOrNull(skuId = this.id, subscriptionId) + + /** + * Requests a [Subscription] containing this SKU by its [id][subscriptionId]. + * + * @throws RequestException if something went wrong during the request. + * @throws EntityNotFoundException if the [Subscription] wasn't found. + */ + public suspend fun getSubscription(subscriptionId: Snowflake): Subscription = + supplier.getSubscription(skuId = this.id, subscriptionId) + + /** + * Requests to create a new [test entitlement][Entitlement] to this SKU for an owner with the given [ownerId] and + * [ownerType]. + * + * Discord will act as though that owner has entitlement to your premium offering. + * + * The returned [Entitlement] will not contain [startsAt][Entitlement.startsAt] and [endsAt][Entitlement.endsAt], as + * it's valid in perpetuity. + * + * @throws RestRequestException if something went wrong during the request. + */ + public suspend fun createTestEntitlement(ownerId: Snowflake, ownerType: EntitlementOwnerType): Entitlement { + val response = kord.rest.entitlement.createTestEntitlement( + applicationId, + TestEntitlementCreateRequest(skuId = this.id, ownerId, ownerType), + ) + return Entitlement(EntitlementData.from(response), kord) + } + + /** + * Requests to create a new [test entitlement][Entitlement] to this SKU for a given [user]. + * + * Discord will act as though that user has entitlement to your premium offering. + * + * The returned [Entitlement] will not contain [startsAt][Entitlement.startsAt] and [endsAt][Entitlement.endsAt], as + * it's valid in perpetuity. + * + * @throws RestRequestException if something went wrong during the request. + */ + public suspend fun createTestEntitlement(user: UserBehavior): Entitlement = + createTestEntitlement(user.id, EntitlementOwnerType.User) + + /** + * Requests to create a new [test entitlement][Entitlement] to this SKU for a given [guild]. + * + * Discord will act as though that guild has entitlement to your premium offering. + * + * The returned [Entitlement] will not contain [startsAt][Entitlement.startsAt] and [endsAt][Entitlement.endsAt], as + * it's valid in perpetuity. + * + * @throws RestRequestException if something went wrong during the request. + */ + public suspend fun createTestEntitlement(guild: GuildBehavior): Entitlement = + createTestEntitlement(guild.id, EntitlementOwnerType.Guild) + + override fun withStrategy(strategy: EntitySupplyStrategy<*>): SkuBehavior +} + +/** + * Requests to get all [Subscription]s containing this [Sku]. + * + * The returned flow is lazily executed, any [RequestException] will be thrown on + * [terminal operators](https://kotlinlang.org/docs/reference/coroutines/flow.html#terminal-flow-operators) instead. + */ +public inline fun SkuBehavior.getSubscriptions( + builder: SkuSubscriptionsListRequestBuilder.() -> Unit, +): Flow { + contract { callsInPlace(builder, EXACTLY_ONCE) } + val request = SkuSubscriptionsListRequestBuilder().apply(builder).toRequest() + return supplier.getSubscriptions(skuId = this.id, request) +} + +internal class SkuBehaviorImpl( + override val applicationId: Snowflake, + override val id: Snowflake, + override val kord: Kord, + override val supplier: EntitySupplier = kord.defaultSupplier, +) : SkuBehavior { + override fun withStrategy(strategy: EntitySupplyStrategy<*>) = + SkuBehaviorImpl(applicationId, id, kord, strategy.supply(kord)) + + override fun equals(other: Any?) = + other is SkuBehavior && this.id == other.id && this.applicationId == other.applicationId + + override fun hashCode() = hash(id, applicationId) + override fun toString() = "SkuBehavior(applicationId=$applicationId, id=$id, kord=$kord, supplier=$supplier)" +} diff --git a/core/src/commonMain/kotlin/cache/DataCacheExtensions.kt b/core/src/commonMain/kotlin/cache/DataCacheExtensions.kt index e5f7a83a052..33220b80134 100644 --- a/core/src/commonMain/kotlin/cache/DataCacheExtensions.kt +++ b/core/src/commonMain/kotlin/cache/DataCacheExtensions.kt @@ -28,6 +28,8 @@ public suspend fun DataCache.registerKordData(): Unit = register( StickerPackData.description, StickerData.description, AutoModerationRuleData.description, + EntitlementData.description, + SubscriptionData.description, ) /** @@ -50,6 +52,8 @@ internal suspend fun DataCache.removeKordData() { query().remove() query().remove() query().remove() + query().remove() + query().remove() } /** diff --git a/core/src/commonMain/kotlin/cache/KordCache.kt b/core/src/commonMain/kotlin/cache/KordCache.kt index 1f64516ef4d..b20740b0db9 100644 --- a/core/src/commonMain/kotlin/cache/KordCache.kt +++ b/core/src/commonMain/kotlin/cache/KordCache.kt @@ -119,6 +119,14 @@ public class KordCacheBuilder { public fun autoModerationRules(generator: Generator): Unit = forDescription(AutoModerationRuleData.description, generator) + /** Configures the caching for [EntitlementData]. */ + public fun entitlements(generator: Generator): Unit = + forDescription(EntitlementData.description, generator) + + /** Configures the caching for [SubscriptionData]. */ + public fun subscriptions(generator: Generator): Unit = + forDescription(SubscriptionData.description, generator) + public fun build(): DataCache = DelegatingDataCache(EntrySupplier.invoke { cache, description -> val generator = descriptionGenerators[description] ?: defaultGenerator generator(cache, description) diff --git a/core/src/commonMain/kotlin/cache/data/ComponentData.kt b/core/src/commonMain/kotlin/cache/data/ComponentData.kt index b840a39a35d..b318d2ad575 100644 --- a/core/src/commonMain/kotlin/cache/data/ComponentData.kt +++ b/core/src/commonMain/kotlin/cache/data/ComponentData.kt @@ -1,10 +1,7 @@ package dev.kord.core.cache.data import dev.kord.common.entity.* -import dev.kord.common.entity.optional.Optional -import dev.kord.common.entity.optional.OptionalBoolean -import dev.kord.common.entity.optional.OptionalInt -import dev.kord.common.entity.optional.mapList +import dev.kord.common.entity.optional.* import kotlinx.serialization.ExperimentalSerializationApi import kotlinx.serialization.Serializable import kotlinx.serialization.json.JsonClassDiscriminator @@ -54,7 +51,8 @@ public sealed class ComponentData { maxLength = maxLength, required = required, value = value, - channelTypes = channelTypes + channelTypes = channelTypes, + skuId = entity.skuId, ) } is DiscordTextInputComponent -> { @@ -105,6 +103,7 @@ public data class ChatComponentData( override val required: OptionalBoolean = OptionalBoolean.Missing, override val value: Optional = Optional.Missing(), override val channelTypes: Optional> = Optional.Missing(), + val skuId: OptionalSnowflake = OptionalSnowflake.Missing, ) : ComponentData() @Serializable diff --git a/core/src/commonMain/kotlin/cache/data/EntitlementData.kt b/core/src/commonMain/kotlin/cache/data/EntitlementData.kt new file mode 100644 index 00000000000..0d2af9ee165 --- /dev/null +++ b/core/src/commonMain/kotlin/cache/data/EntitlementData.kt @@ -0,0 +1,45 @@ +package dev.kord.core.cache.data + +import dev.kord.cache.api.data.DataDescription +import dev.kord.cache.api.data.description +import dev.kord.common.entity.DiscordEntitlement +import dev.kord.common.entity.EntitlementType +import dev.kord.common.entity.Snowflake +import dev.kord.common.entity.optional.Optional +import dev.kord.common.entity.optional.OptionalBoolean +import dev.kord.common.entity.optional.OptionalSnowflake +import kotlinx.datetime.Instant +import kotlinx.serialization.Serializable + +@Serializable +public data class EntitlementData( + val id: Snowflake, + val skuId: Snowflake, + val applicationId: Snowflake, + val userId: OptionalSnowflake = OptionalSnowflake.Missing, + val type: EntitlementType, + val deleted: Boolean, + val startsAt: Optional = Optional.Missing(), + val endsAt: Optional = Optional.Missing(), + val guildId: OptionalSnowflake = OptionalSnowflake.Missing, + val consumed: OptionalBoolean = OptionalBoolean.Missing, +) { + public companion object { + public val description: DataDescription = description(EntitlementData::id) + + public fun from(entitlement: DiscordEntitlement): EntitlementData = with(entitlement) { + EntitlementData( + id = id, + skuId = skuId, + applicationId = applicationId, + userId = userId, + type = type, + deleted = deleted, + startsAt = startsAt, + endsAt = endsAt, + guildId = guildId, + consumed = consumed, + ) + } + } +} diff --git a/core/src/commonMain/kotlin/cache/data/GuildData.kt b/core/src/commonMain/kotlin/cache/data/GuildData.kt index 59abb143573..fdd65ab2720 100644 --- a/core/src/commonMain/kotlin/cache/data/GuildData.kt +++ b/core/src/commonMain/kotlin/cache/data/GuildData.kt @@ -13,6 +13,7 @@ private val MessageData.nullableGuildId get() = guildId.value private val ChannelData.nullableGuildId get() = guildId.value private val WebhookData.nullableGuildId get() = guildId.value private val StickerData.nullableGuildId get() = guildId.value +private val EntitlementData.nullableGuildId get() = guildId.value @Serializable public data class GuildData( @@ -85,6 +86,7 @@ public data class GuildData( link(GuildData::id to StickerData::nullableGuildId) link(GuildData::id to EmojiData::guildId) link(GuildData::id to AutoModerationRuleData::guildId) + link(GuildData::id to EntitlementData::nullableGuildId) } public fun from(entity: DiscordGuild): GuildData = with(entity) { diff --git a/core/src/commonMain/kotlin/cache/data/InteractionData.kt b/core/src/commonMain/kotlin/cache/data/InteractionData.kt index c162309d023..9c224fe313b 100644 --- a/core/src/commonMain/kotlin/cache/data/InteractionData.kt +++ b/core/src/commonMain/kotlin/cache/data/InteractionData.kt @@ -28,7 +28,8 @@ public data class InteractionData( val message: Optional = Optional.Missing(), val appPermissions: Optional = Optional.Missing(), val locale: Optional = Optional.Missing(), - val guildLocale: Optional = Optional.Missing() + val guildLocale: Optional = Optional.Missing(), + val entitlements: Optional> = Optional.Missing(), ) { public companion object { public fun from(interaction: DiscordInteraction): InteractionData { @@ -52,7 +53,8 @@ public data class InteractionData( }, appPermissions, locale, - guildLocale + guildLocale, + entitlements.mapList { EntitlementData.from(it) }, ) } } diff --git a/core/src/commonMain/kotlin/cache/data/SubscriptionData.kt b/core/src/commonMain/kotlin/cache/data/SubscriptionData.kt new file mode 100644 index 00000000000..0d05e230344 --- /dev/null +++ b/core/src/commonMain/kotlin/cache/data/SubscriptionData.kt @@ -0,0 +1,41 @@ +package dev.kord.core.cache.data + +import dev.kord.cache.api.data.DataDescription +import dev.kord.cache.api.data.description +import dev.kord.common.entity.DiscordSubscription +import dev.kord.common.entity.Snowflake +import dev.kord.common.entity.SubscriptionStatus +import dev.kord.common.entity.optional.Optional +import kotlinx.datetime.Instant +import kotlinx.serialization.Serializable + +@Serializable +public data class SubscriptionData( + val id: Snowflake, + val userId: Snowflake, + val skuIds: List, + val entitlementIds: List, + val currentPeriodStart: Instant, + val currentPeriodEnd: Instant, + val status: SubscriptionStatus, + val canceledAt: Instant?, + val country: Optional = Optional.Missing(), +) { + public companion object { + public val description: DataDescription = description(SubscriptionData::id) + + public fun from(subscription: DiscordSubscription): SubscriptionData = with(subscription) { + SubscriptionData( + id = id, + userId = userId, + skuIds = skuIds, + entitlementIds = entitlementIds, + currentPeriodStart = currentPeriodStart, + currentPeriodEnd = currentPeriodEnd, + status = status, + canceledAt = canceledAt, + country = country, + ) + } + } +} diff --git a/core/src/commonMain/kotlin/cache/data/UserData.kt b/core/src/commonMain/kotlin/cache/data/UserData.kt index 64e35b3ad91..82c5830cfac 100644 --- a/core/src/commonMain/kotlin/cache/data/UserData.kt +++ b/core/src/commonMain/kotlin/cache/data/UserData.kt @@ -11,6 +11,7 @@ import dev.kord.common.entity.optional.OptionalBoolean import kotlinx.serialization.Serializable private val ThreadMemberData.nullableUserId get() = userId.value +private val EntitlementData.nullableUserId get() = userId.value @Serializable public data class UserData( @@ -32,6 +33,8 @@ public data class UserData( link(UserData::id to ThreadMemberData::nullableUserId) link(UserData::id to VoiceStateData::userId) link(UserData::id to PresenceData::userId) + link(UserData::id to EntitlementData::nullableUserId) + link(UserData::id to SubscriptionData::userId) } public fun from(entity: DiscordUser): UserData = with(entity) { diff --git a/core/src/commonMain/kotlin/entity/component/ActionRowComponent.kt b/core/src/commonMain/kotlin/entity/component/ActionRowComponent.kt index f992e428a2f..935b2b0c886 100644 --- a/core/src/commonMain/kotlin/entity/component/ActionRowComponent.kt +++ b/core/src/commonMain/kotlin/entity/component/ActionRowComponent.kt @@ -19,7 +19,7 @@ public class ActionRowComponent(override val data: ComponentData) : Component { get() = data.components.orEmpty().map { Component(it) } /** - * The [ButtonComponent]s of this action row that are not a link button, indexed by their + * The [ButtonComponent]s of this action row that are not a link or premium button, indexed by their * [customId][ButtonComponent.customId] (which is always present on these buttons). * * @see components @@ -38,6 +38,15 @@ public class ActionRowComponent(override val data: ComponentData) : Component { public val linkButtons: List get() = components.filterIsInstance().filter { it.url != null } + /** + * The [ButtonComponent]s of this action row that are a premium button. [skuId][ButtonComponent.skuId] is always + * present on these buttons. + * + * @see components + */ + public val premiumButtons: List + get() = components.filterIsInstance().filter { it.skuId != null } + /** * The [SelectMenuComponent]s of this action row, indexed by their [customId][SelectMenuComponent.customId]. * diff --git a/core/src/commonMain/kotlin/entity/component/ButtonComponent.kt b/core/src/commonMain/kotlin/entity/component/ButtonComponent.kt index c19fffa3d5d..54f63818b27 100644 --- a/core/src/commonMain/kotlin/entity/component/ButtonComponent.kt +++ b/core/src/commonMain/kotlin/entity/component/ButtonComponent.kt @@ -2,11 +2,13 @@ package dev.kord.core.entity.component import dev.kord.common.entity.ButtonStyle import dev.kord.common.entity.ComponentType +import dev.kord.common.entity.Snowflake import dev.kord.common.entity.optional.value import dev.kord.core.cache.data.ChatComponentData import dev.kord.core.entity.ReactionEmoji import dev.kord.core.entity.interaction.ButtonInteraction import dev.kord.core.entity.interaction.ComponentInteraction +import dev.kord.core.entity.monetization.Sku import dev.kord.core.event.interaction.InteractionCreateEvent /** @@ -21,8 +23,8 @@ public class ButtonComponent(override val data: ChatComponentData) : Component { get() = ComponentType.Button /** - * The style of this button, [ButtonStyle.Link] buttons will always - * have a [url]. + * The style of this button, [ButtonStyle.Link] buttons will always have a [url], [ButtonStyle.Premium] buttons will + * always have an [skuId]. */ public val style: ButtonStyle get() = data.style.value!! @@ -47,11 +49,16 @@ public class ButtonComponent(override val data: ChatComponentData) : Component { } /** - * The custom identifier for any [ComponentInteractions][ButtonInteraction] - * this button will trigger. Present if this button is not a link button. + * The custom identifier for any [ComponentInteractions][ButtonInteraction] this button will trigger. Present if + * this button is not a link or premium button. */ public val customId: String? get() = data.customId.value + /** + * The ID of the [Sku] this button will prompt to purchase. Present if this button is a premium button. + */ + public val skuId: Snowflake? get() = data.skuId.value + /** * The url the button will link to. Present if this button is a link button. */ diff --git a/core/src/commonMain/kotlin/entity/interaction/Interaction.kt b/core/src/commonMain/kotlin/entity/interaction/Interaction.kt index b61dcad5167..18cc561f4fe 100644 --- a/core/src/commonMain/kotlin/entity/interaction/Interaction.kt +++ b/core/src/commonMain/kotlin/entity/interaction/Interaction.kt @@ -4,10 +4,14 @@ import dev.kord.common.Locale import dev.kord.common.entity.InteractionType import dev.kord.common.entity.Snowflake import dev.kord.common.entity.optional.OptionalSnowflake +import dev.kord.common.entity.optional.mapList +import dev.kord.common.entity.optional.orEmpty import dev.kord.core.Kord import dev.kord.core.behavior.interaction.InteractionBehavior import dev.kord.core.cache.data.InteractionData import dev.kord.core.entity.User +import dev.kord.core.entity.monetization.Entitlement +import dev.kord.core.entity.monetization.Sku import dev.kord.core.supplier.EntitySupplyStrategy /** @@ -53,6 +57,12 @@ public sealed interface Interaction : InteractionBehavior { */ public val version: Int get() = data.version + /** + * For [monetized apps](https://discord.com/developers/docs/monetization/overview), any [Entitlement]s for the + * [invoking user][user], representing access to premium [Sku]s. + */ + public val entitlements: List get() = data.entitlements.mapList { Entitlement(it, kord) }.orEmpty() + override fun withStrategy(strategy: EntitySupplyStrategy<*>): Interaction public companion object { diff --git a/core/src/commonMain/kotlin/entity/monetization/Entitlement.kt b/core/src/commonMain/kotlin/entity/monetization/Entitlement.kt new file mode 100644 index 00000000000..db036d58d79 --- /dev/null +++ b/core/src/commonMain/kotlin/entity/monetization/Entitlement.kt @@ -0,0 +1,128 @@ +package dev.kord.core.entity.monetization + +import dev.kord.common.entity.EntitlementType +import dev.kord.common.entity.Snowflake +import dev.kord.common.entity.optional.value +import dev.kord.core.Kord +import dev.kord.core.behavior.GuildBehavior +import dev.kord.core.behavior.UserBehavior +import dev.kord.core.cache.data.EntitlementData +import dev.kord.core.entity.Application +import dev.kord.core.entity.Guild +import dev.kord.core.entity.KordEntity +import dev.kord.core.entity.User +import dev.kord.core.hash +import dev.kord.rest.request.RestRequestException +import kotlinx.datetime.Instant + +/** + * An instance of an [Entitlement](https://discord.com/developers/docs/resources/entitlement). + * + * Entitlements represent that a [User] or [Guild] has access to a premium offering in your [Application]. + */ +public class Entitlement( + public val data: EntitlementData, + override val kord: Kord, +) : KordEntity { + override val id: Snowflake + get() = data.id + + /** + * The ID of the [Sku] this entitlement is for. + */ + public val skuId: Snowflake + get() = data.skuId + + /** + * The ID of the [Application] this entitlement is for. + */ + public val applicationId: Snowflake + get() = data.applicationId + + /** + * The ID of the [User] that is granted access to this entitlement's [Sku]. + */ + public val userId: Snowflake? + get() = data.userId.value + + /** + * The behavior of the [User] that is granted access to this entitlement's [Sku]. + */ + public val user: UserBehavior? + get() = userId?.let { UserBehavior(it, kord) } + + /** + * The type of this entitlement. + */ + public val type: EntitlementType + get() = data.type + + /** + * Whether this entitlement has been deleted. + */ + public val isDeleted: Boolean + get() = data.deleted + + /** + * The start date at which this entitlement is valid. + * + * Not present when using test entitlements. + */ + public val startsAt: Instant? + get() = data.startsAt.value + + /** + * The date at which this entitlement is no longer valid. + * + * Not present when using test entitlements. + */ + public val endsAt: Instant? + get() = data.endsAt.value + + /** + * The ID of the [Guild] that is granted access to this entitlement's [Sku]. + */ + public val guildId: Snowflake? + get() = data.guildId.value + + /** + * The behavior of the [Guild] that is granted access to this entitlement's [Sku]. + */ + public val guild: GuildBehavior? + get() = guildId?.let { GuildBehavior(it, kord) } + + /** + * For consumable items, whether this entitlement has been consumed. + */ + public val isConsumed: Boolean? + get() = data.consumed.value + + /** + * For One-Time Purchase consumable [Sku]s, marks this entitlement for the [user] as [consumed][isConsumed]. + * + * @throws RestRequestException if something went wrong during the request. + */ + public suspend fun consume() { + kord.rest.entitlement.consumeEntitlement(applicationId, id) + } + + /** + * Requests to delete this currently active test entitlement. + * + * Discord will act as though that [user] or [guild] *no longer* has entitlement to your premium offering. + * + * This request will fail if this is not a test entitlement. + * + * @throws RestRequestException if something went wrong during the request. + */ + public suspend fun delete() { + kord.rest.entitlement.deleteTestEntitlement(applicationId, id) + } + + override fun equals(other: Any?): Boolean = + other is Entitlement && this.id == other.id && this.applicationId == other.applicationId + + override fun hashCode(): Int = hash(id, applicationId) + + override fun toString(): String = "Entitlement(data=$data, kord=$kord)" +} diff --git a/core/src/commonMain/kotlin/entity/monetization/Sku.kt b/core/src/commonMain/kotlin/entity/monetization/Sku.kt new file mode 100644 index 00000000000..9863f2a195c --- /dev/null +++ b/core/src/commonMain/kotlin/entity/monetization/Sku.kt @@ -0,0 +1,60 @@ +package dev.kord.core.entity.monetization + +import dev.kord.common.entity.DiscordSku +import dev.kord.common.entity.SkuFlags +import dev.kord.common.entity.SkuType +import dev.kord.common.entity.Snowflake +import dev.kord.core.Kord +import dev.kord.core.behavior.monetization.SkuBehavior +import dev.kord.core.entity.Application +import dev.kord.core.entity.Guild +import dev.kord.core.entity.User +import dev.kord.core.hash +import dev.kord.core.supplier.EntitySupplier +import dev.kord.core.supplier.EntitySupplyStrategy + +/** + * An instance of an [SKU](https://discord.com/developers/docs/resources/sku). + * + * SKUs (or stock-keeping units) represent premium offerings that can be made available to your [Application]'s [User]s + * or [Guild]s. + */ +public class Sku( + public val data: DiscordSku, + override val kord: Kord, + override val supplier: EntitySupplier = kord.defaultSupplier, +) : SkuBehavior { + override val id: Snowflake + get() = data.id + + /** + * The type of this SKU. + */ + public val type: SkuType get() = data.type + + override val applicationId: Snowflake get() = data.applicationId + + /** + * The customer-facing name of this premium offering. + */ + public val name: String get() = data.name + + /** + * A system-generated URL slug based on this SKU's name. + */ + public val slug: String get() = data.slug + + /** + * The flags of this SKU. + */ + public val flags: SkuFlags get() = data.flags + + override fun withStrategy(strategy: EntitySupplyStrategy<*>): Sku = Sku(data, kord, strategy.supply(kord)) + + override fun equals(other: Any?): Boolean = + other is SkuBehavior && this.id == other.id && this.applicationId == other.applicationId + + override fun hashCode(): Int = hash(id, applicationId) + + override fun toString(): String = "Sku(data=$data, kord=$kord)" +} diff --git a/core/src/commonMain/kotlin/entity/monetization/Subscription.kt b/core/src/commonMain/kotlin/entity/monetization/Subscription.kt new file mode 100644 index 00000000000..09d0235eb67 --- /dev/null +++ b/core/src/commonMain/kotlin/entity/monetization/Subscription.kt @@ -0,0 +1,71 @@ +package dev.kord.core.entity.monetization + +import dev.kord.common.entity.Snowflake +import dev.kord.common.entity.SubscriptionStatus +import dev.kord.core.Kord +import dev.kord.core.behavior.UserBehavior +import dev.kord.core.behavior.monetization.SkuBehavior +import dev.kord.core.behavior.monetization.SkuBehaviorImpl +import dev.kord.core.cache.data.SubscriptionData +import dev.kord.core.entity.KordEntity +import dev.kord.core.entity.User +import dev.kord.core.hash +import kotlinx.datetime.Instant + +/** + * An instance of a [Subscription](https://discord.com/developers/docs/resources/subscription). + * + * Subscriptions represent a [User] making recurring payments for at least one [Sku] over an ongoing period. Successful + * payments grant the [User] access to [Entitlement]s associated with the [Sku]. + */ +public class Subscription( + public val data: SubscriptionData, + override val kord: Kord, +) : KordEntity { + override val id: Snowflake get() = data.id + + /** The ID of the [User] who is subscribed. */ + public val userId: Snowflake get() = data.userId + + /** The behavior of the [User] who is subscribed. */ + public val user: UserBehavior get() = UserBehavior(userId, kord) + + /** The list of IDs of the [Sku]s subscribed to. */ + public val skuIds: List get() = data.skuIds + + /** The list of behaviors of the [Sku]s subscribed to. */ + public val skus: List + get() = skuIds.map { skuId -> SkuBehaviorImpl(applicationId = kord.selfId, id = skuId, kord) } + + /** The list of IDs of the [Entitlement]s granted for this subscription. */ + public val entitlementIds: List get() = data.entitlementIds + + /** The start date of the current subscription period. */ + public val currentPeriodStart: Instant get() = data.currentPeriodStart + + /** The end date of the current subscription period. */ + public val currentPeriodEnd: Instant get() = data.currentPeriodEnd + + /** The current status of this subscription. */ + public val status: SubscriptionStatus get() = data.status + + /** When this subscription was canceled. */ + public val canceledAt: Instant? get() = data.canceledAt + + /** + * The ISO3166-1 alpha-2 country code of the payment source used to purchase this subscription. + * + * Missing unless queried with a private OAuth scope. + */ + public val country: String? get() = data.country.value + + /** The start date of this subscription. */ + public val startsAt: Instant get() = id.timestamp + + override fun equals(other: Any?): Boolean = + other is Subscription && this.id == other.id && this.userId == other.userId + + override fun hashCode(): Int = hash(id, userId) + + override fun toString(): String = "Subscription(data=$data, kord=$kord)" +} diff --git a/core/src/commonMain/kotlin/event/monetization/EntitlementEvents.kt b/core/src/commonMain/kotlin/event/monetization/EntitlementEvents.kt new file mode 100644 index 00000000000..af7a777262e --- /dev/null +++ b/core/src/commonMain/kotlin/event/monetization/EntitlementEvents.kt @@ -0,0 +1,60 @@ +package dev.kord.core.event.monetization + +import dev.kord.core.Kord +import dev.kord.core.entity.User +import dev.kord.core.entity.monetization.Entitlement +import dev.kord.core.event.Event + +/** + * An [Event] that is sent when an [Entitlement] is created. + */ +public class EntitlementCreateEvent( + /** The [Entitlement] that was created. */ + public val entitlement: Entitlement, + override val kord: Kord, + override val shard: Int, + override val customContext: Any?, +) : Event { + override fun toString(): String = + "EntitlementCreateEvent(entitlement=$entitlement, kord=$kord, shard=$shard, customContext=$customContext)" +} + +/** + * An [Event] that is sent when an [Entitlement] is updated. + * + * An [Entitlement] is updated when a subscription is canceled, [entitlement.endsAt][Entitlement.endsAt] indicates the + * end date. + */ +public class EntitlementUpdateEvent( + /** The [Entitlement] that was updated. */ + public val entitlement: Entitlement, + /** The [entitlement] as found in [cache][Kord.cache] before the update. */ + public val old: Entitlement?, + override val kord: Kord, + override val shard: Int, + override val customContext: Any?, +) : Event { + override fun toString(): String = "EntitlementUpdateEvent(entitlement=$entitlement, old=$old, kord=$kord, " + + "shard=$shard, customContext=$customContext)" +} + +/** + * An [Event] that is sent when an [Entitlement] is deleted. + * + * [Entitlement] deletions are infrequent, and occur when: + * - Discord issues a refund for a subscription + * - Discord removes an [Entitlement] from a [User] via internal tooling + * - Discord deletes an app-managed [Entitlement] they created via the API + * + * [Entitlement]s are _not_ deleted when they expire. + */ +public class EntitlementDeleteEvent( + /** The [Entitlement] that was deleted. */ + public val entitlement: Entitlement, + override val kord: Kord, + override val shard: Int, + override val customContext: Any?, +) : Event { + override fun toString(): String = + "EntitlementDeleteEvent(entitlement=$entitlement, kord=$kord, shard=$shard, customContext=$customContext)" +} diff --git a/core/src/commonMain/kotlin/event/monetization/SubscriptionEvents.kt b/core/src/commonMain/kotlin/event/monetization/SubscriptionEvents.kt new file mode 100644 index 00000000000..73263a27325 --- /dev/null +++ b/core/src/commonMain/kotlin/event/monetization/SubscriptionEvents.kt @@ -0,0 +1,52 @@ +package dev.kord.core.event.monetization + +import dev.kord.common.entity.SubscriptionStatus.Active +import dev.kord.common.entity.SubscriptionStatus.Inactive +import dev.kord.core.Kord +import dev.kord.core.entity.monetization.Entitlement +import dev.kord.core.entity.monetization.Subscription +import dev.kord.core.event.Event + +/** + * An [Event] that is sent when a [Subscription] for a Premium App is created. + * + * A [Subscription]'s [status][Subscription.status] can be either [Inactive] or [Active] when this event is received. + * You will receive subsequent [SubscriptionUpdateEvent]s if the [status][Subscription.status] is updated to [Active]. + * As a best practice, you should not grant any perks to users until the [Entitlement]s are created. + */ +public class SubscriptionCreateEvent( + /** The [Subscription] that was created. */ + public val subscription: Subscription, + override val kord: Kord, + override val shard: Int, + override val customContext: Any?, +) : Event { + override fun toString(): String = + "SubscriptionCreateEvent(subscription=$subscription, kord=$kord, shard=$shard, customContext=$customContext)" +} + +/** An [Event] that is sent when a [Subscription] for a Premium App has been updated. */ +public class SubscriptionUpdateEvent( + /** The [Subscription] that was updated. */ + public val subscription: Subscription, + /** The [Subscription] as found in [cache][Kord.cache] before the update. */ + public val old: Subscription?, + override val kord: Kord, + override val shard: Int, + override val customContext: Any?, +) : Event { + override fun toString(): String = "SubscriptionUpdateEvent(subscription=$subscription, old=$old, kord=$kord, " + + "shard=$shard, customContext=$customContext)" +} + +/** An [Event] that is sent when a [Subscription] for a Premium App has been deleted. */ +public class SubscriptionDeleteEvent( + /** The [Subscription] that was deleted. */ + public val subscription: Subscription, + override val kord: Kord, + override val shard: Int, + override val customContext: Any?, +) : Event { + override fun toString(): String = + "SubscriptionDeleteEvent(subscription=$subscription, kord=$kord, shard=$shard, customContext=$customContext)" +} diff --git a/core/src/commonMain/kotlin/exception/EntityNotFoundException.kt b/core/src/commonMain/kotlin/exception/EntityNotFoundException.kt index a145d0956a2..86ca26572cf 100644 --- a/core/src/commonMain/kotlin/exception/EntityNotFoundException.kt +++ b/core/src/commonMain/kotlin/exception/EntityNotFoundException.kt @@ -104,5 +104,8 @@ public class EntityNotFoundException : Exception { public inline fun autoModerationRuleNotFound(guildId: Snowflake, ruleId: Snowflake): Nothing = guildEntityNotFound("Auto Moderation Rule", guildId, ruleId) + + public inline fun subscriptionNotFound(skuId: Snowflake, subscriptionId: Snowflake): Nothing = + throw EntityNotFoundException("Subscription with id $subscriptionId for SKU with id $skuId was not found.") } } diff --git a/core/src/commonMain/kotlin/gateway/handler/DefaultGatewayEventInterceptor.kt b/core/src/commonMain/kotlin/gateway/handler/DefaultGatewayEventInterceptor.kt index 4960b214d79..6af30d04b7b 100644 --- a/core/src/commonMain/kotlin/gateway/handler/DefaultGatewayEventInterceptor.kt +++ b/core/src/commonMain/kotlin/gateway/handler/DefaultGatewayEventInterceptor.kt @@ -37,10 +37,12 @@ public class DefaultGatewayEventInterceptor @KordPreview public constructor( private val listeners = listOf( AutoModerationEventHandler(), ChannelEventHandler(), + EntitlementEventHandler(), GuildEventHandler(), InteractionEventHandler(), LifeCycleEventHandler(), MessageEventHandler(), + SubscriptionEventHandler(), ThreadEventHandler(), UnknownEventHandler(), UserEventHandler(), diff --git a/core/src/commonMain/kotlin/gateway/handler/EntitlementEventHandler.kt b/core/src/commonMain/kotlin/gateway/handler/EntitlementEventHandler.kt new file mode 100644 index 00000000000..a3b4c04b609 --- /dev/null +++ b/core/src/commonMain/kotlin/gateway/handler/EntitlementEventHandler.kt @@ -0,0 +1,68 @@ +package dev.kord.core.gateway.handler + +import dev.kord.cache.api.put +import dev.kord.cache.api.query +import dev.kord.cache.api.remove +import dev.kord.common.entity.DiscordEntitlement +import dev.kord.core.Kord +import dev.kord.core.cache.data.EntitlementData +import dev.kord.core.cache.idEq +import dev.kord.core.entity.monetization.Entitlement +import dev.kord.core.event.monetization.EntitlementCreateEvent +import dev.kord.core.event.monetization.EntitlementDeleteEvent +import dev.kord.core.event.monetization.EntitlementUpdateEvent +import dev.kord.gateway.EntitlementCreate +import dev.kord.gateway.EntitlementDelete +import dev.kord.gateway.EntitlementUpdate +import dev.kord.gateway.Event + +internal class EntitlementEventHandler : BaseGatewayEventHandler() { + + override suspend fun handle( + event: Event, + shard: Int, + kord: Kord, + context: LazyContext?, + ): dev.kord.core.event.Event? = when (event) { + is EntitlementCreate -> EntitlementCreateEvent( + entitlement = handleEntitlement(event.entitlement, kord), + kord = kord, + shard = shard, + customContext = context?.get(), + ) + is EntitlementUpdate -> EntitlementUpdateEvent( + old = kord.cache + .query { + idEq(EntitlementData::id, event.entitlement.id) + idEq(EntitlementData::applicationId, event.entitlement.applicationId) + } + .singleOrNull() + ?.let { Entitlement(it, kord) }, + entitlement = handleEntitlement(event.entitlement, kord), + kord = kord, + shard = shard, + customContext = context?.get(), + ) + is EntitlementDelete -> EntitlementDeleteEvent( + entitlement = handleDeletedEntitlement(event.entitlement, kord), + kord = kord, + shard = shard, + customContext = context?.get(), + ) + else -> null + } + + private suspend fun handleDeletedEntitlement(entitlement: DiscordEntitlement, kord: Kord): Entitlement { + kord.cache.remove { + idEq(EntitlementData::id, entitlement.id) + idEq(EntitlementData::applicationId, entitlement.applicationId) + } + return Entitlement(EntitlementData.from(entitlement), kord) + } + + private suspend fun handleEntitlement(entitlement: DiscordEntitlement, kord: Kord): Entitlement { + val data = EntitlementData.from(entitlement) + kord.cache.put(data) + return Entitlement(data, kord) + } +} diff --git a/core/src/commonMain/kotlin/gateway/handler/SubscriptionEventHandler.kt b/core/src/commonMain/kotlin/gateway/handler/SubscriptionEventHandler.kt new file mode 100644 index 00000000000..897295161fa --- /dev/null +++ b/core/src/commonMain/kotlin/gateway/handler/SubscriptionEventHandler.kt @@ -0,0 +1,68 @@ +package dev.kord.core.gateway.handler + +import dev.kord.cache.api.put +import dev.kord.cache.api.query +import dev.kord.cache.api.remove +import dev.kord.common.entity.DiscordSubscription +import dev.kord.core.Kord +import dev.kord.core.cache.data.SubscriptionData +import dev.kord.core.cache.idEq +import dev.kord.core.entity.monetization.Subscription +import dev.kord.core.event.monetization.SubscriptionCreateEvent +import dev.kord.core.event.monetization.SubscriptionDeleteEvent +import dev.kord.core.event.monetization.SubscriptionUpdateEvent +import dev.kord.gateway.Event +import dev.kord.gateway.SubscriptionCreate +import dev.kord.gateway.SubscriptionDelete +import dev.kord.gateway.SubscriptionUpdate + +internal class SubscriptionEventHandler : BaseGatewayEventHandler() { + + override suspend fun handle( + event: Event, + shard: Int, + kord: Kord, + context: LazyContext?, + ): dev.kord.core.event.Event? = when (event) { + is SubscriptionCreate -> SubscriptionCreateEvent( + subscription = handleSubscription(event.subscription, kord), + kord = kord, + shard = shard, + customContext = context?.get(), + ) + is SubscriptionUpdate -> SubscriptionUpdateEvent( + old = kord.cache + .query { + idEq(SubscriptionData::id, event.subscription.id) + idEq(SubscriptionData::userId, event.subscription.userId) + } + .singleOrNull() + ?.let { Subscription(it, kord) }, + subscription = handleSubscription(event.subscription, kord), + kord = kord, + shard = shard, + customContext = context?.get(), + ) + is SubscriptionDelete -> SubscriptionDeleteEvent( + subscription = handleDeletedSubscription(event.subscription, kord), + kord = kord, + shard = shard, + customContext = context?.get(), + ) + else -> null + } + + private suspend fun handleDeletedSubscription(subscription: DiscordSubscription, kord: Kord): Subscription { + kord.cache.remove { + idEq(SubscriptionData::id, subscription.id) + idEq(SubscriptionData::userId, subscription.userId) + } + return Subscription(SubscriptionData.from(subscription), kord) + } + + private suspend fun handleSubscription(subscription: DiscordSubscription, kord: Kord): Subscription { + val data = SubscriptionData.from(subscription) + kord.cache.put(data) + return Subscription(data, kord) + } +} diff --git a/core/src/commonMain/kotlin/supplier/CacheEntitySupplier.kt b/core/src/commonMain/kotlin/supplier/CacheEntitySupplier.kt index 6f782fd40cc..31fbbb86033 100644 --- a/core/src/commonMain/kotlin/supplier/CacheEntitySupplier.kt +++ b/core/src/commonMain/kotlin/supplier/CacheEntitySupplier.kt @@ -22,9 +22,15 @@ import dev.kord.core.entity.channel.TopGuildChannel import dev.kord.core.entity.channel.thread.ThreadChannel import dev.kord.core.entity.channel.thread.ThreadMember import dev.kord.core.entity.interaction.followup.FollowupMessage +import dev.kord.core.entity.monetization.Entitlement +import dev.kord.core.entity.monetization.Subscription import dev.kord.core.exception.EntityNotFoundException import dev.kord.gateway.Gateway +import dev.kord.rest.json.request.EntitlementsListRequest +import dev.kord.rest.json.request.SkuSubscriptionsListRequest +import dev.kord.rest.route.Position import kotlinx.coroutines.flow.* +import kotlinx.datetime.Clock import kotlinx.datetime.Instant /** @@ -599,6 +605,73 @@ public class CacheEntitySupplier(private val kord: Kord) : EntitySupplier { .singleOrNull() ?.let { AutoModerationRule(it, kord) } + /** + * Requests to get all [Entitlement]s for the [Application] with the given [applicationId]. + * + * The returned flow is lazily executed, any [RequestException] will be thrown on + * [terminal operators](https://kotlinlang.org/docs/reference/coroutines/flow.html#terminal-flow-operators) instead. + * + * Queries that use [EntitlementsListRequest.excludeEnded] may be susceptible to Clock drift as the + * [System Clock][Clock.System] is required. + */ + override fun getEntitlements(applicationId: Snowflake, request: EntitlementsListRequest): Flow { + checkLimit(request.limit) + return cache + .query { + idEq(EntitlementData::applicationId, applicationId) + + request.userId?.let { idEq(EntitlementData::userId, it) } + + if (request.skuIds.isNotEmpty()) { + EntitlementData::skuId `in` request.skuIds + } + + when (val pos = request.position) { + null -> {} + is Position.Before -> idLt(EntitlementData::id, pos.value) + is Position.After -> idGt(EntitlementData::id, pos.value) + } + + request.guildId?.let { idEq(EntitlementData::guildId, it) } + + if (request.excludeEnded == true) { + val now = Clock.System.now() + EntitlementData::endsAt predicate { endsAt -> endsAt.value?.let { it < now } ?: true } + } + } + .asFlow() + .map { Entitlement(it, kord) } + .limit(request.limit) + } + + override fun getSubscriptions(skuId: Snowflake, request: SkuSubscriptionsListRequest): Flow { + checkLimit(request.limit) + return cache + .query { + SubscriptionData::skuIds predicate { skuIds -> skuId in skuIds } + + when (val pos = request.position) { + null -> {} + is Position.Before -> idLt(SubscriptionData::id, pos.value) + is Position.After -> idGt(SubscriptionData::id, pos.value) + } + + request.userId?.let { idEq(SubscriptionData::userId, it) } + } + .asFlow() + .map { Subscription(it, kord) } + .limit(request.limit) + } + + override suspend fun getSubscriptionOrNull(skuId: Snowflake, subscriptionId: Snowflake): Subscription? = + cache + .query { + idEq(SubscriptionData::id, subscriptionId) + SubscriptionData::skuIds predicate { skuIds -> skuId in skuIds } + } + .singleOrNull() + ?.let { Subscription(it, kord) } + override fun toString(): String = "CacheEntitySupplier(cache=$cache)" } diff --git a/core/src/commonMain/kotlin/supplier/EntitySupplier.kt b/core/src/commonMain/kotlin/supplier/EntitySupplier.kt index 153ad6190d7..4c45962e56b 100644 --- a/core/src/commonMain/kotlin/supplier/EntitySupplier.kt +++ b/core/src/commonMain/kotlin/supplier/EntitySupplier.kt @@ -15,7 +15,12 @@ import dev.kord.core.entity.channel.TopGuildChannel import dev.kord.core.entity.channel.thread.ThreadChannel import dev.kord.core.entity.channel.thread.ThreadMember import dev.kord.core.entity.interaction.followup.FollowupMessage +import dev.kord.core.entity.monetization.Entitlement +import dev.kord.core.entity.monetization.Sku +import dev.kord.core.entity.monetization.Subscription import dev.kord.core.exception.EntityNotFoundException +import dev.kord.rest.json.request.EntitlementsListRequest +import dev.kord.rest.json.request.SkuSubscriptionsListRequest import kotlinx.coroutines.flow.Flow import kotlinx.datetime.Instant @@ -642,6 +647,39 @@ public interface EntitySupplier { public suspend fun getAutoModerationRule(guildId: Snowflake, ruleId: Snowflake): AutoModerationRule = getAutoModerationRuleOrNull(guildId, ruleId) ?: EntityNotFoundException.autoModerationRuleNotFound(guildId, ruleId) + + /** + * Requests to get all [Entitlement]s for the [Application] with the given [applicationId]. + * + * The returned flow is lazily executed, any [RequestException] will be thrown on + * [terminal operators](https://kotlinlang.org/docs/reference/coroutines/flow.html#terminal-flow-operators) instead. + */ + public fun getEntitlements(applicationId: Snowflake, request: EntitlementsListRequest): Flow + + /** + * Requests to get all [Subscription]s containing the [Sku] with the given [skuId]. + * + * The returned flow is lazily executed, any [RequestException] will be thrown on + * [terminal operators](https://kotlinlang.org/docs/reference/coroutines/flow.html#terminal-flow-operators) instead. + */ + public fun getSubscriptions(skuId: Snowflake, request: SkuSubscriptionsListRequest): Flow + + /** + * Requests a [Subscription] by its [id][subscriptionId]. Returns `null` if it wasn't found. + * + * @throws RequestException if something went wrong during the request. + */ + public suspend fun getSubscriptionOrNull(skuId: Snowflake, subscriptionId: Snowflake): Subscription? + + /** + * Requests a [Subscription] by its [id][subscriptionId]. + * + * @throws RequestException if something went wrong during the request. + * @throws EntityNotFoundException if the [Subscription] wasn't found. + */ + public suspend fun getSubscription(skuId: Snowflake, subscriptionId: Snowflake): Subscription = + getSubscriptionOrNull(skuId, subscriptionId) + ?: EntityNotFoundException.subscriptionNotFound(skuId, subscriptionId) } diff --git a/core/src/commonMain/kotlin/supplier/FallbackEntitySupplier.kt b/core/src/commonMain/kotlin/supplier/FallbackEntitySupplier.kt index 73e532554b9..d098c9329b5 100644 --- a/core/src/commonMain/kotlin/supplier/FallbackEntitySupplier.kt +++ b/core/src/commonMain/kotlin/supplier/FallbackEntitySupplier.kt @@ -11,7 +11,11 @@ import dev.kord.core.entity.channel.TopGuildChannel import dev.kord.core.entity.channel.thread.ThreadChannel import dev.kord.core.entity.channel.thread.ThreadMember import dev.kord.core.entity.interaction.followup.FollowupMessage +import dev.kord.core.entity.monetization.Entitlement +import dev.kord.core.entity.monetization.Subscription import dev.kord.core.switchIfEmpty +import dev.kord.rest.json.request.EntitlementsListRequest +import dev.kord.rest.json.request.SkuSubscriptionsListRequest import kotlinx.coroutines.flow.Flow import kotlinx.datetime.Instant @@ -277,6 +281,15 @@ private class FallbackEntitySupplier(val first: EntitySupplier, val second: Enti override suspend fun getAutoModerationRuleOrNull(guildId: Snowflake, ruleId: Snowflake): AutoModerationRule? = first.getAutoModerationRuleOrNull(guildId, ruleId) ?: second.getAutoModerationRuleOrNull(guildId, ruleId) + override fun getEntitlements(applicationId: Snowflake, request: EntitlementsListRequest): Flow = + first.getEntitlements(applicationId, request).switchIfEmpty(second.getEntitlements(applicationId, request)) + + override fun getSubscriptions(skuId: Snowflake, request: SkuSubscriptionsListRequest): Flow = + first.getSubscriptions(skuId, request).switchIfEmpty(second.getSubscriptions(skuId, request)) + + override suspend fun getSubscriptionOrNull(skuId: Snowflake, subscriptionId: Snowflake): Subscription? = + first.getSubscriptionOrNull(skuId, subscriptionId) ?: second.getSubscriptionOrNull(skuId, subscriptionId) + override fun toString(): String = "FallbackEntitySupplier(first=$first, second=$second)" } diff --git a/core/src/commonMain/kotlin/supplier/RestEntitySupplier.kt b/core/src/commonMain/kotlin/supplier/RestEntitySupplier.kt index 479e6aaf93a..a57432799bc 100644 --- a/core/src/commonMain/kotlin/supplier/RestEntitySupplier.kt +++ b/core/src/commonMain/kotlin/supplier/RestEntitySupplier.kt @@ -1,6 +1,8 @@ package dev.kord.core.supplier import dev.kord.common.entity.DiscordAuditLogEntry +import dev.kord.common.entity.DiscordEntitlement +import dev.kord.common.entity.DiscordSubscription import dev.kord.common.entity.Snowflake import dev.kord.common.entity.optional.OptionalSnowflake import dev.kord.common.entity.optional.optionalSnowflake @@ -16,12 +18,11 @@ import dev.kord.core.entity.channel.TopGuildChannel import dev.kord.core.entity.channel.thread.ThreadChannel import dev.kord.core.entity.channel.thread.ThreadMember import dev.kord.core.entity.interaction.followup.FollowupMessage +import dev.kord.core.entity.monetization.Entitlement +import dev.kord.core.entity.monetization.Subscription import dev.kord.core.exception.EntityNotFoundException import dev.kord.rest.builder.auditlog.AuditLogGetRequestBuilder -import dev.kord.rest.json.request.AuditLogGetRequest -import dev.kord.rest.json.request.GuildScheduledEventUsersResponse -import dev.kord.rest.json.request.ListThreadsBySnowflakeRequest -import dev.kord.rest.json.request.ListThreadsByTimestampRequest +import dev.kord.rest.json.request.* import dev.kord.rest.request.RestRequestException import dev.kord.rest.route.Position import dev.kord.rest.service.RestClient @@ -48,22 +49,22 @@ public class RestEntitySupplier(public val kord: Kord) : EntitySupplier { private inline val interaction get() = kord.rest.interaction // resources + private inline val application get() = kord.rest.application private inline val auditLog get() = kord.rest.auditLog private inline val autoModeration get() = kord.rest.autoModeration private inline val channel get() = kord.rest.channel private inline val emoji get() = kord.rest.emoji + private inline val entitlement get() = kord.rest.entitlement private inline val guild get() = kord.rest.guild private inline val template get() = kord.rest.template private inline val invite get() = kord.rest.invite private inline val stageInstance get() = kord.rest.stageInstance private inline val sticker get() = kord.rest.sticker + private inline val subscription get() = kord.rest.subscription private inline val user get() = kord.rest.user private inline val voice get() = kord.rest.voice private inline val webhook get() = kord.rest.webhook - // topics - private inline val application get() = kord.rest.application - // max batchSize/limit: see https://discord.com/developers/docs/resources/user#get-current-user-guilds override val guilds: Flow @@ -647,6 +648,45 @@ public class RestEntitySupplier(public val kord: Kord) : EntitySupplier { GuildApplicationCommand(data, interaction) } + // maxBatchSize: see https://discord.com/developers/docs/resources/entitlement#list-entitlements + override fun getEntitlements( + applicationId: Snowflake, + request: EntitlementsListRequest, + ): Flow = limitedPagination(request.limit, maxBatchSize = 100) { batchSize -> + val req: suspend (Position.BeforeOrAfter) -> List = { position -> + entitlement.listEntitlements(applicationId, request.copy(position = position, limit = batchSize)) + } + when (val start = request.position) { + null, is Position.After -> + paginateForwards(batchSize, start = start?.value ?: Snowflake.min, idSelector = { it.id }, req) + + is Position.Before -> paginateBackwards(batchSize, start.value, idSelector = { it.id }, req) + } + }.map { entitlement -> Entitlement(data = EntitlementData.from(entitlement), kord) } + + // maxBatchSize: see https://discord.com/developers/docs/resources/subscription#list-sku-subscriptions + override fun getSubscriptions( + skuId: Snowflake, + request: SkuSubscriptionsListRequest, + ): Flow = limitedPagination(request.limit, maxBatchSize = 100) { batchSize -> + val req: suspend (Position.BeforeOrAfter) -> List = { position -> + subscription.listSkuSubscriptions(skuId, request.copy(position = position, limit = batchSize)) + } + when (val start = request.position) { + null, is Position.After -> + paginateForwards(batchSize, start = start?.value ?: Snowflake.min, idSelector = { it.id }, req) + + is Position.Before -> paginateBackwards(batchSize, start.value, idSelector = { it.id }, req) + } + }.map { subscription -> Subscription(data = SubscriptionData.from(subscription), kord) } + + override suspend fun getSubscriptionOrNull(skuId: Snowflake, subscriptionId: Snowflake): Subscription? = + catchNotFound { + val response = subscription.getSkuSubscription(skuId, subscriptionId) + val data = SubscriptionData.from(response) + Subscription(data, kord) + } + override fun toString(): String = "RestEntitySupplier(rest=${kord.rest})" } diff --git a/core/src/commonMain/kotlin/supplier/StoreEntitySupplier.kt b/core/src/commonMain/kotlin/supplier/StoreEntitySupplier.kt index 3404a634c86..2da0f5d0752 100644 --- a/core/src/commonMain/kotlin/supplier/StoreEntitySupplier.kt +++ b/core/src/commonMain/kotlin/supplier/StoreEntitySupplier.kt @@ -13,6 +13,10 @@ import dev.kord.core.entity.channel.TopGuildChannel import dev.kord.core.entity.channel.thread.ThreadChannel import dev.kord.core.entity.channel.thread.ThreadMember import dev.kord.core.entity.interaction.followup.FollowupMessage +import dev.kord.core.entity.monetization.Entitlement +import dev.kord.core.entity.monetization.Subscription +import dev.kord.rest.json.request.EntitlementsListRequest +import dev.kord.rest.json.request.SkuSubscriptionsListRequest import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.onEach import kotlinx.datetime.Instant @@ -309,6 +313,15 @@ public class StoreEntitySupplier( override suspend fun getAutoModerationRuleOrNull(guildId: Snowflake, ruleId: Snowflake): AutoModerationRule? = storeAndReturn(supplier.getAutoModerationRuleOrNull(guildId, ruleId)) { it.data } + override fun getEntitlements(applicationId: Snowflake, request: EntitlementsListRequest): Flow = + storeOnEach(supplier.getEntitlements(applicationId, request)) { it.data } + + override fun getSubscriptions(skuId: Snowflake, request: SkuSubscriptionsListRequest): Flow = + storeOnEach(supplier.getSubscriptions(skuId, request)) { it.data } + + override suspend fun getSubscriptionOrNull(skuId: Snowflake, subscriptionId: Snowflake): Subscription? = + storeAndReturn(supplier.getSubscriptionOrNull(skuId, subscriptionId)) { it.data } + private inline fun storeOnEach(source: Flow, crossinline transform: (T) -> R): Flow { return source.onEach { fetchedEntity -> diff --git a/gateway/api/gateway.api b/gateway/api/gateway.api index 4891edf17d6..949870c870f 100644 --- a/gateway/api/gateway.api +++ b/gateway/api/gateway.api @@ -581,6 +581,45 @@ public abstract class dev/kord/gateway/DispatchEvent : dev/kord/gateway/Event { public abstract fun getSequence ()Ljava/lang/Integer; } +public final class dev/kord/gateway/EntitlementCreate : dev/kord/gateway/DispatchEvent { + public fun (Ldev/kord/common/entity/DiscordEntitlement;Ljava/lang/Integer;)V + public final fun component1 ()Ldev/kord/common/entity/DiscordEntitlement; + public final fun component2 ()Ljava/lang/Integer; + public final fun copy (Ldev/kord/common/entity/DiscordEntitlement;Ljava/lang/Integer;)Ldev/kord/gateway/EntitlementCreate; + public static synthetic fun copy$default (Ldev/kord/gateway/EntitlementCreate;Ldev/kord/common/entity/DiscordEntitlement;Ljava/lang/Integer;ILjava/lang/Object;)Ldev/kord/gateway/EntitlementCreate; + public fun equals (Ljava/lang/Object;)Z + public final fun getEntitlement ()Ldev/kord/common/entity/DiscordEntitlement; + public fun getSequence ()Ljava/lang/Integer; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class dev/kord/gateway/EntitlementDelete : dev/kord/gateway/DispatchEvent { + public fun (Ldev/kord/common/entity/DiscordEntitlement;Ljava/lang/Integer;)V + public final fun component1 ()Ldev/kord/common/entity/DiscordEntitlement; + public final fun component2 ()Ljava/lang/Integer; + public final fun copy (Ldev/kord/common/entity/DiscordEntitlement;Ljava/lang/Integer;)Ldev/kord/gateway/EntitlementDelete; + public static synthetic fun copy$default (Ldev/kord/gateway/EntitlementDelete;Ldev/kord/common/entity/DiscordEntitlement;Ljava/lang/Integer;ILjava/lang/Object;)Ldev/kord/gateway/EntitlementDelete; + public fun equals (Ljava/lang/Object;)Z + public final fun getEntitlement ()Ldev/kord/common/entity/DiscordEntitlement; + public fun getSequence ()Ljava/lang/Integer; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class dev/kord/gateway/EntitlementUpdate : dev/kord/gateway/DispatchEvent { + public fun (Ldev/kord/common/entity/DiscordEntitlement;Ljava/lang/Integer;)V + public final fun component1 ()Ldev/kord/common/entity/DiscordEntitlement; + public final fun component2 ()Ljava/lang/Integer; + public final fun copy (Ldev/kord/common/entity/DiscordEntitlement;Ljava/lang/Integer;)Ldev/kord/gateway/EntitlementUpdate; + public static synthetic fun copy$default (Ldev/kord/gateway/EntitlementUpdate;Ldev/kord/common/entity/DiscordEntitlement;Ljava/lang/Integer;ILjava/lang/Object;)Ldev/kord/gateway/EntitlementUpdate; + public fun equals (Ljava/lang/Object;)Z + public final fun getEntitlement ()Ldev/kord/common/entity/DiscordEntitlement; + public fun getSequence ()Ljava/lang/Integer; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + public abstract class dev/kord/gateway/Event { } @@ -1686,6 +1725,45 @@ public final class dev/kord/gateway/Resumed$Companion { public final fun serializer ()Lkotlinx/serialization/KSerializer; } +public final class dev/kord/gateway/SubscriptionCreate : dev/kord/gateway/DispatchEvent { + public fun (Ldev/kord/common/entity/DiscordSubscription;Ljava/lang/Integer;)V + public final fun component1 ()Ldev/kord/common/entity/DiscordSubscription; + public final fun component2 ()Ljava/lang/Integer; + public final fun copy (Ldev/kord/common/entity/DiscordSubscription;Ljava/lang/Integer;)Ldev/kord/gateway/SubscriptionCreate; + public static synthetic fun copy$default (Ldev/kord/gateway/SubscriptionCreate;Ldev/kord/common/entity/DiscordSubscription;Ljava/lang/Integer;ILjava/lang/Object;)Ldev/kord/gateway/SubscriptionCreate; + public fun equals (Ljava/lang/Object;)Z + public fun getSequence ()Ljava/lang/Integer; + public final fun getSubscription ()Ldev/kord/common/entity/DiscordSubscription; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class dev/kord/gateway/SubscriptionDelete : dev/kord/gateway/DispatchEvent { + public fun (Ldev/kord/common/entity/DiscordSubscription;Ljava/lang/Integer;)V + public final fun component1 ()Ldev/kord/common/entity/DiscordSubscription; + public final fun component2 ()Ljava/lang/Integer; + public final fun copy (Ldev/kord/common/entity/DiscordSubscription;Ljava/lang/Integer;)Ldev/kord/gateway/SubscriptionDelete; + public static synthetic fun copy$default (Ldev/kord/gateway/SubscriptionDelete;Ldev/kord/common/entity/DiscordSubscription;Ljava/lang/Integer;ILjava/lang/Object;)Ldev/kord/gateway/SubscriptionDelete; + public fun equals (Ljava/lang/Object;)Z + public fun getSequence ()Ljava/lang/Integer; + public final fun getSubscription ()Ldev/kord/common/entity/DiscordSubscription; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class dev/kord/gateway/SubscriptionUpdate : dev/kord/gateway/DispatchEvent { + public fun (Ldev/kord/common/entity/DiscordSubscription;Ljava/lang/Integer;)V + public final fun component1 ()Ldev/kord/common/entity/DiscordSubscription; + public final fun component2 ()Ljava/lang/Integer; + public final fun copy (Ldev/kord/common/entity/DiscordSubscription;Ljava/lang/Integer;)Ldev/kord/gateway/SubscriptionUpdate; + public static synthetic fun copy$default (Ldev/kord/gateway/SubscriptionUpdate;Ldev/kord/common/entity/DiscordSubscription;Ljava/lang/Integer;ILjava/lang/Object;)Ldev/kord/gateway/SubscriptionUpdate; + public fun equals (Ljava/lang/Object;)Z + public fun getSequence ()Ljava/lang/Integer; + public final fun getSubscription ()Ldev/kord/common/entity/DiscordSubscription; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + public final class dev/kord/gateway/ThreadCreate : dev/kord/gateway/DispatchEvent { public fun (Ldev/kord/common/entity/DiscordChannel;Ljava/lang/Integer;)V public final fun component1 ()Ldev/kord/common/entity/DiscordChannel; diff --git a/gateway/api/gateway.klib.api b/gateway/api/gateway.klib.api index 41a57dd2dc7..b272e94d237 100644 --- a/gateway/api/gateway.klib.api +++ b/gateway/api/gateway.klib.api @@ -783,6 +783,54 @@ final class dev.kord.gateway/DiscordThreadMembersUpdate { // dev.kord.gateway/Di } } +final class dev.kord.gateway/EntitlementCreate : dev.kord.gateway/DispatchEvent { // dev.kord.gateway/EntitlementCreate|null[0] + constructor (dev.kord.common.entity/DiscordEntitlement, kotlin/Int?) // dev.kord.gateway/EntitlementCreate.|(dev.kord.common.entity.DiscordEntitlement;kotlin.Int?){}[0] + + final val entitlement // dev.kord.gateway/EntitlementCreate.entitlement|{}entitlement[0] + final fun (): dev.kord.common.entity/DiscordEntitlement // dev.kord.gateway/EntitlementCreate.entitlement.|(){}[0] + final val sequence // dev.kord.gateway/EntitlementCreate.sequence|{}sequence[0] + final fun (): kotlin/Int? // dev.kord.gateway/EntitlementCreate.sequence.|(){}[0] + + final fun component1(): dev.kord.common.entity/DiscordEntitlement // dev.kord.gateway/EntitlementCreate.component1|component1(){}[0] + final fun component2(): kotlin/Int? // dev.kord.gateway/EntitlementCreate.component2|component2(){}[0] + final fun copy(dev.kord.common.entity/DiscordEntitlement = ..., kotlin/Int? = ...): dev.kord.gateway/EntitlementCreate // dev.kord.gateway/EntitlementCreate.copy|copy(dev.kord.common.entity.DiscordEntitlement;kotlin.Int?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // dev.kord.gateway/EntitlementCreate.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // dev.kord.gateway/EntitlementCreate.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // dev.kord.gateway/EntitlementCreate.toString|toString(){}[0] +} + +final class dev.kord.gateway/EntitlementDelete : dev.kord.gateway/DispatchEvent { // dev.kord.gateway/EntitlementDelete|null[0] + constructor (dev.kord.common.entity/DiscordEntitlement, kotlin/Int?) // dev.kord.gateway/EntitlementDelete.|(dev.kord.common.entity.DiscordEntitlement;kotlin.Int?){}[0] + + final val entitlement // dev.kord.gateway/EntitlementDelete.entitlement|{}entitlement[0] + final fun (): dev.kord.common.entity/DiscordEntitlement // dev.kord.gateway/EntitlementDelete.entitlement.|(){}[0] + final val sequence // dev.kord.gateway/EntitlementDelete.sequence|{}sequence[0] + final fun (): kotlin/Int? // dev.kord.gateway/EntitlementDelete.sequence.|(){}[0] + + final fun component1(): dev.kord.common.entity/DiscordEntitlement // dev.kord.gateway/EntitlementDelete.component1|component1(){}[0] + final fun component2(): kotlin/Int? // dev.kord.gateway/EntitlementDelete.component2|component2(){}[0] + final fun copy(dev.kord.common.entity/DiscordEntitlement = ..., kotlin/Int? = ...): dev.kord.gateway/EntitlementDelete // dev.kord.gateway/EntitlementDelete.copy|copy(dev.kord.common.entity.DiscordEntitlement;kotlin.Int?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // dev.kord.gateway/EntitlementDelete.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // dev.kord.gateway/EntitlementDelete.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // dev.kord.gateway/EntitlementDelete.toString|toString(){}[0] +} + +final class dev.kord.gateway/EntitlementUpdate : dev.kord.gateway/DispatchEvent { // dev.kord.gateway/EntitlementUpdate|null[0] + constructor (dev.kord.common.entity/DiscordEntitlement, kotlin/Int?) // dev.kord.gateway/EntitlementUpdate.|(dev.kord.common.entity.DiscordEntitlement;kotlin.Int?){}[0] + + final val entitlement // dev.kord.gateway/EntitlementUpdate.entitlement|{}entitlement[0] + final fun (): dev.kord.common.entity/DiscordEntitlement // dev.kord.gateway/EntitlementUpdate.entitlement.|(){}[0] + final val sequence // dev.kord.gateway/EntitlementUpdate.sequence|{}sequence[0] + final fun (): kotlin/Int? // dev.kord.gateway/EntitlementUpdate.sequence.|(){}[0] + + final fun component1(): dev.kord.common.entity/DiscordEntitlement // dev.kord.gateway/EntitlementUpdate.component1|component1(){}[0] + final fun component2(): kotlin/Int? // dev.kord.gateway/EntitlementUpdate.component2|component2(){}[0] + final fun copy(dev.kord.common.entity/DiscordEntitlement = ..., kotlin/Int? = ...): dev.kord.gateway/EntitlementUpdate // dev.kord.gateway/EntitlementUpdate.copy|copy(dev.kord.common.entity.DiscordEntitlement;kotlin.Int?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // dev.kord.gateway/EntitlementUpdate.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // dev.kord.gateway/EntitlementUpdate.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // dev.kord.gateway/EntitlementUpdate.toString|toString(){}[0] +} + final class dev.kord.gateway/GatewayConfiguration { // dev.kord.gateway/GatewayConfiguration|null[0] constructor (kotlin/String, kotlin/String, dev.kord.common.entity/DiscordShard, dev.kord.common.entity.optional/Optional = ..., kotlin/Int, dev.kord.gateway/Intents) // dev.kord.gateway/GatewayConfiguration.|(kotlin.String;kotlin.String;dev.kord.common.entity.DiscordShard;dev.kord.common.entity.optional.Optional;kotlin.Int;dev.kord.gateway.Intents){}[0] @@ -1837,6 +1885,54 @@ final class dev.kord.gateway/Resumed : dev.kord.gateway/DispatchEvent { // dev.k } } +final class dev.kord.gateway/SubscriptionCreate : dev.kord.gateway/DispatchEvent { // dev.kord.gateway/SubscriptionCreate|null[0] + constructor (dev.kord.common.entity/DiscordSubscription, kotlin/Int?) // dev.kord.gateway/SubscriptionCreate.|(dev.kord.common.entity.DiscordSubscription;kotlin.Int?){}[0] + + final val sequence // dev.kord.gateway/SubscriptionCreate.sequence|{}sequence[0] + final fun (): kotlin/Int? // dev.kord.gateway/SubscriptionCreate.sequence.|(){}[0] + final val subscription // dev.kord.gateway/SubscriptionCreate.subscription|{}subscription[0] + final fun (): dev.kord.common.entity/DiscordSubscription // dev.kord.gateway/SubscriptionCreate.subscription.|(){}[0] + + final fun component1(): dev.kord.common.entity/DiscordSubscription // dev.kord.gateway/SubscriptionCreate.component1|component1(){}[0] + final fun component2(): kotlin/Int? // dev.kord.gateway/SubscriptionCreate.component2|component2(){}[0] + final fun copy(dev.kord.common.entity/DiscordSubscription = ..., kotlin/Int? = ...): dev.kord.gateway/SubscriptionCreate // dev.kord.gateway/SubscriptionCreate.copy|copy(dev.kord.common.entity.DiscordSubscription;kotlin.Int?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // dev.kord.gateway/SubscriptionCreate.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // dev.kord.gateway/SubscriptionCreate.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // dev.kord.gateway/SubscriptionCreate.toString|toString(){}[0] +} + +final class dev.kord.gateway/SubscriptionDelete : dev.kord.gateway/DispatchEvent { // dev.kord.gateway/SubscriptionDelete|null[0] + constructor (dev.kord.common.entity/DiscordSubscription, kotlin/Int?) // dev.kord.gateway/SubscriptionDelete.|(dev.kord.common.entity.DiscordSubscription;kotlin.Int?){}[0] + + final val sequence // dev.kord.gateway/SubscriptionDelete.sequence|{}sequence[0] + final fun (): kotlin/Int? // dev.kord.gateway/SubscriptionDelete.sequence.|(){}[0] + final val subscription // dev.kord.gateway/SubscriptionDelete.subscription|{}subscription[0] + final fun (): dev.kord.common.entity/DiscordSubscription // dev.kord.gateway/SubscriptionDelete.subscription.|(){}[0] + + final fun component1(): dev.kord.common.entity/DiscordSubscription // dev.kord.gateway/SubscriptionDelete.component1|component1(){}[0] + final fun component2(): kotlin/Int? // dev.kord.gateway/SubscriptionDelete.component2|component2(){}[0] + final fun copy(dev.kord.common.entity/DiscordSubscription = ..., kotlin/Int? = ...): dev.kord.gateway/SubscriptionDelete // dev.kord.gateway/SubscriptionDelete.copy|copy(dev.kord.common.entity.DiscordSubscription;kotlin.Int?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // dev.kord.gateway/SubscriptionDelete.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // dev.kord.gateway/SubscriptionDelete.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // dev.kord.gateway/SubscriptionDelete.toString|toString(){}[0] +} + +final class dev.kord.gateway/SubscriptionUpdate : dev.kord.gateway/DispatchEvent { // dev.kord.gateway/SubscriptionUpdate|null[0] + constructor (dev.kord.common.entity/DiscordSubscription, kotlin/Int?) // dev.kord.gateway/SubscriptionUpdate.|(dev.kord.common.entity.DiscordSubscription;kotlin.Int?){}[0] + + final val sequence // dev.kord.gateway/SubscriptionUpdate.sequence|{}sequence[0] + final fun (): kotlin/Int? // dev.kord.gateway/SubscriptionUpdate.sequence.|(){}[0] + final val subscription // dev.kord.gateway/SubscriptionUpdate.subscription|{}subscription[0] + final fun (): dev.kord.common.entity/DiscordSubscription // dev.kord.gateway/SubscriptionUpdate.subscription.|(){}[0] + + final fun component1(): dev.kord.common.entity/DiscordSubscription // dev.kord.gateway/SubscriptionUpdate.component1|component1(){}[0] + final fun component2(): kotlin/Int? // dev.kord.gateway/SubscriptionUpdate.component2|component2(){}[0] + final fun copy(dev.kord.common.entity/DiscordSubscription = ..., kotlin/Int? = ...): dev.kord.gateway/SubscriptionUpdate // dev.kord.gateway/SubscriptionUpdate.copy|copy(dev.kord.common.entity.DiscordSubscription;kotlin.Int?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // dev.kord.gateway/SubscriptionUpdate.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // dev.kord.gateway/SubscriptionUpdate.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // dev.kord.gateway/SubscriptionUpdate.toString|toString(){}[0] +} + final class dev.kord.gateway/ThreadCreate : dev.kord.gateway/DispatchEvent { // dev.kord.gateway/ThreadCreate|null[0] constructor (dev.kord.common.entity/DiscordChannel, kotlin/Int?) // dev.kord.gateway/ThreadCreate.|(dev.kord.common.entity.DiscordChannel;kotlin.Int?){}[0] diff --git a/gateway/src/commonMain/kotlin/Event.kt b/gateway/src/commonMain/kotlin/Event.kt index ac19a5dd5ce..69d0df9be3e 100644 --- a/gateway/src/commonMain/kotlin/Event.kt +++ b/gateway/src/commonMain/kotlin/Event.kt @@ -134,7 +134,9 @@ public sealed class Event { "THREAD_MEMBER_UPDATE" -> ThreadMemberUpdate(decode(DiscordThreadMember.serializer()), sequence) "THREAD_MEMBERS_UPDATE" -> ThreadMembersUpdate(decode(DiscordThreadMembersUpdate.serializer()), sequence) - // Missing: Entitlement Create, Entitlement Update, Entitlement Delete + "ENTITLEMENT_CREATE" -> EntitlementCreate(decode(DiscordEntitlement.serializer()), sequence) + "ENTITLEMENT_UPDATE" -> EntitlementUpdate(decode(DiscordEntitlement.serializer()), sequence) + "ENTITLEMENT_DELETE" -> EntitlementDelete(decode(DiscordEntitlement.serializer()), sequence) "GUILD_CREATE" -> GuildCreate(decode(DiscordGuild.serializer()), sequence) "GUILD_UPDATE" -> GuildUpdate(decode(DiscordGuild.serializer()), sequence) "GUILD_DELETE" -> GuildDelete(decode(DiscordUnavailableGuild.serializer()), sequence) @@ -181,9 +183,13 @@ public sealed class Event { "MESSAGE_REACTION_REMOVE_EMOJI" -> MessageReactionRemoveEmoji(decode(DiscordRemovedEmoji.serializer()), sequence) "PRESENCE_UPDATE" -> PresenceUpdate(decode(DiscordPresenceUpdate.serializer()), sequence) - // Missing: Stage Instance Create, Stage Instance Update, Stage Instance Delete + // Missing: Stage Instance Create, Stage Instance Update, Stage Instance Delete + "SUBSCRIPTION_CREATE" -> SubscriptionCreate(decode(DiscordSubscription.serializer()), sequence) + "SUBSCRIPTION_UPDATE" -> SubscriptionUpdate(decode(DiscordSubscription.serializer()), sequence) + "SUBSCRIPTION_DELETE" -> SubscriptionDelete(decode(DiscordSubscription.serializer()), sequence) "TYPING_START" -> TypingStart(decode(DiscordTyping.serializer()), sequence) "USER_UPDATE" -> UserUpdate(decode(DiscordUser.serializer()), sequence) + // Missing: Voice Channel Effect Send "VOICE_STATE_UPDATE" -> VoiceStateUpdate(decode(DiscordVoiceState.serializer()), sequence) "VOICE_SERVER_UPDATE" -> VoiceServerUpdate(decode(DiscordVoiceServerUpdateData.serializer()), sequence) "WEBHOOKS_UPDATE" -> WebhooksUpdate(decode(DiscordWebhooksUpdateData.serializer()), sequence) @@ -646,3 +652,18 @@ public data class DiscordThreadMembersUpdate( @SerialName("removed_member_ids") val removedMemberIds: Optional> = Optional.Missing() ) + +public data class EntitlementCreate(val entitlement: DiscordEntitlement, override val sequence: Int?) : DispatchEvent() + +public data class EntitlementUpdate(val entitlement: DiscordEntitlement, override val sequence: Int?) : DispatchEvent() + +public data class EntitlementDelete(val entitlement: DiscordEntitlement, override val sequence: Int?) : DispatchEvent() + +public data class SubscriptionCreate(val subscription: DiscordSubscription, override val sequence: Int?) : + DispatchEvent() + +public data class SubscriptionUpdate(val subscription: DiscordSubscription, override val sequence: Int?) : + DispatchEvent() + +public data class SubscriptionDelete(val subscription: DiscordSubscription, override val sequence: Int?) : + DispatchEvent() diff --git a/gateway/src/commonTest/kotlin/json/DispatchEventDeserializationTest.kt b/gateway/src/commonTest/kotlin/json/DispatchEventDeserializationTest.kt index ae7ab0cd696..5ff4dac99ce 100644 --- a/gateway/src/commonTest/kotlin/json/DispatchEventDeserializationTest.kt +++ b/gateway/src/commonTest/kotlin/json/DispatchEventDeserializationTest.kt @@ -61,6 +61,14 @@ class DispatchEventDeserializationTest { private val channelJson = """{"id":"0","type":0}""" private val thread = DiscordChannel(id = Snowflake.min, type = ChannelType.PublicGuildThread) private val threadJson = """{"id":"0","type":11}""" + private val entitlement = DiscordEntitlement( + id = Snowflake.min, + skuId = Snowflake.min, + applicationId = Snowflake.min, + type = EntitlementType.ApplicationSubscription, + deleted = false, + ) + private val entitlementJson = """{"id":"0","sku_id":"0","application_id":"0","type":8,"deleted":false}""" private val guild = DiscordGuild( id = Snowflake.min, name = "name", @@ -150,6 +158,18 @@ class DispatchEventDeserializationTest { ) private val integrationJson = """{"id":"0","name":"name","type":"discord","enabled":true,"account":{"id":"id","name":"name"}}""" + private val subscription = DiscordSubscription( + id = Snowflake.min, + userId = Snowflake.min, + skuIds = emptyList(), + entitlementIds = emptyList(), + currentPeriodStart = instant, + currentPeriodEnd = instant, + status = SubscriptionStatus.Active, + canceledAt = null, + ) + private val subscriptionJson = """{"id":"0","user_id":"0","sku_ids":[],"entitlement_ids":[],""" + + """"current_period_start":"$instant","current_period_end":"$instant","status":0,"canceled_at":null}""" /* @@ -318,12 +338,29 @@ class DispatchEventDeserializationTest { json = """{"id":"0","guild_id":"0","member_count":42}""", ) - /* - * Missing: - * - EntitlementCreate - * - EntitlementUpdate - * - EntitlementDelete - */ + @Test + fun test_EntitlementCreate_deserialization() = testDispatchEventDeserialization( + eventName = "ENTITLEMENT_CREATE", + eventConstructor = ::EntitlementCreate, + data = entitlement, + json = entitlementJson, + ) + + @Test + fun test_EntitlementUpdate_deserialization() = testDispatchEventDeserialization( + eventName = "ENTITLEMENT_UPDATE", + eventConstructor = ::EntitlementUpdate, + data = entitlement, + json = entitlementJson, + ) + + @Test + fun test_EntitlementDelete_deserialization() = testDispatchEventDeserialization( + eventName = "ENTITLEMENT_DELETE", + eventConstructor = ::EntitlementDelete, + data = entitlement, + json = entitlementJson, + ) @Test fun test_GuildCreate_deserialization() = testDispatchEventDeserialization( @@ -694,6 +731,30 @@ class DispatchEventDeserializationTest { * - StageInstanceDelete */ + @Test + fun test_SubscriptionCreate_deserialization() = testDispatchEventDeserialization( + eventName = "SUBSCRIPTION_CREATE", + eventConstructor = ::SubscriptionCreate, + data = subscription, + json = subscriptionJson, + ) + + @Test + fun test_SubscriptionUpdate_deserialization() = testDispatchEventDeserialization( + eventName = "SUBSCRIPTION_UPDATE", + eventConstructor = ::SubscriptionUpdate, + data = subscription, + json = subscriptionJson, + ) + + @Test + fun test_SubscriptionDelete_deserialization() = testDispatchEventDeserialization( + eventName = "SUBSCRIPTION_DELETE", + eventConstructor = ::SubscriptionDelete, + data = subscription, + json = subscriptionJson, + ) + @Test fun test_TypingStart_deserialization() = testDispatchEventDeserialization( eventName = "TYPING_START", @@ -714,6 +775,11 @@ class DispatchEventDeserializationTest { json = userJson, ) + /* + * Missing: + * - VoiceChannelEffectSend + */ + @Test fun test_VoiceStateUpdate_deserialization() = testDispatchEventDeserialization( eventName = "VOICE_STATE_UPDATE", diff --git a/ksp-processors/src/main/kotlin/generation/shared/SharedContent.kt b/ksp-processors/src/main/kotlin/generation/shared/SharedContent.kt index 7ec592410b4..89b808ddab3 100644 --- a/ksp-processors/src/main/kotlin/generation/shared/SharedContent.kt +++ b/ksp-processors/src/main/kotlin/generation/shared/SharedContent.kt @@ -9,9 +9,11 @@ import dev.kord.ksp.* import dev.kord.ksp.generation.GenerationEntity import kotlinx.serialization.descriptors.SerialDescriptor +private val GenerationEntity.entityNamePluralSuffix get() = if (entityName.endsWith('s')) "es" else "s" + context(GenerationEntity, GenerationContext) internal fun TypeSpec.Builder.addEntityKDoc() { - val docLink = "See [%T]s in the [DiscordยทDeveloperยทDocumentation]($docUrl)." + val docLink = "See [%T]$entityNamePluralSuffix in the [DiscordยทDeveloperยทDocumentation]($docUrl)." val combinedKDocFormat = if (kDoc != null) "$kDoc\n\n$docLink" else docLink addKdoc(combinedKDocFormat, entityCN) } @@ -20,7 +22,8 @@ context(GenerationEntity, GenerationContext) internal fun TypeSpec.Builder.addUnknownClass(constructorParameterName: String, constructorParameterType: TypeName) = addClass("Unknown") { addKdoc( - "An unknown [%1T].\n\nThis is used as a fallback for [%1T]s that haven't been added to Kord yet.", + "An unknown [%1T].\n\nThis is used as a fallback for [%1T]$entityNamePluralSuffix that haven't been " + + "added to Kord yet.", entityCN, ) addModifiers(PUBLIC) @@ -67,7 +70,7 @@ context(GenerationEntity, GenerationContext) internal fun TypeSpec.Builder.addSharedCompanionObjectContent() { addModifiers(PUBLIC) addProperty("entries", LIST.parameterizedBy(entityCN), PUBLIC) { - addKdoc("A [List] of all known [%T]s.", entityCN) + addKdoc("A [List] of all known [%T]$entityNamePluralSuffix.", entityCN) addEntryOptIns() delegate { withControlFlow("lazy(modeยท=ยท%M)", LazyThreadSafetyMode.PUBLICATION.asMemberName()) { diff --git a/rest/api/rest.api b/rest/api/rest.api index 2b117ebf1a5..b8013ff244e 100644 --- a/rest/api/rest.api +++ b/rest/api/rest.api @@ -1001,6 +1001,8 @@ public final class dev/kord/rest/builder/component/ActionRowBuilder : dev/kord/r public final fun linkButton (Ljava/lang/String;Lkotlin/jvm/functions/Function1;)V public final fun mentionableSelect (Ljava/lang/String;Lkotlin/jvm/functions/Function1;)V public static synthetic fun mentionableSelect$default (Ldev/kord/rest/builder/component/ActionRowBuilder;Ljava/lang/String;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V + public final fun premiumButton (Ldev/kord/common/entity/Snowflake;Lkotlin/jvm/functions/Function1;)V + public static synthetic fun premiumButton$default (Ldev/kord/rest/builder/component/ActionRowBuilder;Ldev/kord/common/entity/Snowflake;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V public final fun roleSelect (Ljava/lang/String;Lkotlin/jvm/functions/Function1;)V public static synthetic fun roleSelect$default (Ldev/kord/rest/builder/component/ActionRowBuilder;Ljava/lang/String;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V public final fun stringSelect (Ljava/lang/String;Lkotlin/jvm/functions/Function1;)V @@ -1064,6 +1066,14 @@ public final class dev/kord/rest/builder/component/MentionableSelectBuilder : de public abstract interface class dev/kord/rest/builder/component/MessageComponentBuilder : dev/kord/rest/builder/component/ComponentBuilder { } +public final class dev/kord/rest/builder/component/PremiumButtonBuilder : dev/kord/rest/builder/component/ActionRowComponentBuilder { + public fun (Ldev/kord/common/entity/Snowflake;)V + public fun build ()Ldev/kord/common/entity/DiscordChatComponent; + public synthetic fun build ()Ldev/kord/common/entity/DiscordComponent; + public final fun getSkuId ()Ldev/kord/common/entity/Snowflake; + public final fun setSkuId (Ldev/kord/common/entity/Snowflake;)V +} + public final class dev/kord/rest/builder/component/RoleSelectBuilder : dev/kord/rest/builder/component/SelectMenuBuilder { public fun (Ljava/lang/String;)V public final fun getDefaultRoles ()Ljava/util/List; @@ -2318,6 +2328,40 @@ public final class dev/kord/rest/builder/message/modify/WebhookMessageModifyBuil public synthetic fun toRequest ()Ljava/lang/Object; } +public final class dev/kord/rest/builder/monetization/EntitlementsListRequestBuilder : dev/kord/rest/builder/RequestBuilder { + public fun ()V + public final fun after (Ldev/kord/common/entity/Snowflake;)V + public final fun before (Ldev/kord/common/entity/Snowflake;)V + public final fun getExcludeEnded ()Ljava/lang/Boolean; + public final fun getGuildId ()Ldev/kord/common/entity/Snowflake; + public final fun getLimit ()Ljava/lang/Integer; + public final fun getPosition ()Ldev/kord/rest/route/Position$BeforeOrAfter; + public final fun getSkuIds ()Ljava/util/List; + public final fun getUserId ()Ldev/kord/common/entity/Snowflake; + public final fun setExcludeEnded (Ljava/lang/Boolean;)V + public final fun setGuildId (Ldev/kord/common/entity/Snowflake;)V + public final fun setLimit (Ljava/lang/Integer;)V + public final fun setPosition (Ldev/kord/rest/route/Position$BeforeOrAfter;)V + public final fun setSkuIds (Ljava/util/List;)V + public final fun setUserId (Ldev/kord/common/entity/Snowflake;)V + public fun toRequest ()Ldev/kord/rest/json/request/EntitlementsListRequest; + public synthetic fun toRequest ()Ljava/lang/Object; +} + +public final class dev/kord/rest/builder/monetization/SkuSubscriptionsListRequestBuilder : dev/kord/rest/builder/RequestBuilder { + public fun ()V + public final fun after (Ldev/kord/common/entity/Snowflake;)V + public final fun before (Ldev/kord/common/entity/Snowflake;)V + public final fun getLimit ()Ljava/lang/Integer; + public final fun getPosition ()Ldev/kord/rest/route/Position$BeforeOrAfter; + public final fun getUserId ()Ldev/kord/common/entity/Snowflake; + public final fun setLimit (Ljava/lang/Integer;)V + public final fun setPosition (Ldev/kord/rest/route/Position$BeforeOrAfter;)V + public final fun setUserId (Ldev/kord/common/entity/Snowflake;)V + public fun toRequest ()Ldev/kord/rest/json/request/SkuSubscriptionsListRequest; + public synthetic fun toRequest ()Ljava/lang/Object; +} + public final class dev/kord/rest/builder/role/RoleCreateBuilder : dev/kord/rest/builder/AuditRequestBuilder { public fun ()V public final fun getColor ()Ldev/kord/common/Color; @@ -2514,6 +2558,7 @@ public final class dev/kord/rest/json/JsonErrorCode : java/lang/Enum { public static final field BitrateTooHigh Ldev/kord/rest/json/JsonErrorCode; public static final field BotsEndpoint Ldev/kord/rest/json/JsonErrorCode; public static final field BulkDeleteOldMessage Ldev/kord/rest/json/JsonErrorCode; + public static final field CanOnlyDeleteSandboxEntitlements Ldev/kord/rest/json/JsonErrorCode; public static final field CannotConvertBetweenPremiumAndNormalEmoji Ldev/kord/rest/json/JsonErrorCode; public static final field CannotDeleteGuildSubscriptionIntegration Ldev/kord/rest/json/JsonErrorCode; public static final field CannotDeleteRequiredCommunityChannel Ldev/kord/rest/json/JsonErrorCode; @@ -2542,6 +2587,7 @@ public final class dev/kord/rest/json/JsonErrorCode : java/lang/Enum { public static final field Companion Ldev/kord/rest/json/JsonErrorCode$Companion; public static final field ConnectionRevoked Ldev/kord/rest/json/JsonErrorCode; public static final field DisallowedName Ldev/kord/rest/json/JsonErrorCode; + public static final field EntitlementAlreadyGranted Ldev/kord/rest/json/JsonErrorCode; public static final field EntityOfEventDifferentFromEventEntity Ldev/kord/rest/json/JsonErrorCode; public static final field FailedToCreateStage Ldev/kord/rest/json/JsonErrorCode; public static final field FailedToResizeAssetBelowMaximumSize Ldev/kord/rest/json/JsonErrorCode; @@ -2569,6 +2615,7 @@ public final class dev/kord/rest/json/JsonErrorCode : java/lang/Enum { public static final field InvalidRecipients Ldev/kord/rest/json/JsonErrorCode; public static final field InvalidRequestOrigin Ldev/kord/rest/json/JsonErrorCode; public static final field InvalidRole Ldev/kord/rest/json/JsonErrorCode; + public static final field InvalidSku Ldev/kord/rest/json/JsonErrorCode; public static final field InvalidStickerFrameRate Ldev/kord/rest/json/JsonErrorCode; public static final field InvalidStickerSent Ldev/kord/rest/json/JsonErrorCode; public static final field InvalidThreadNotificationSettings Ldev/kord/rest/json/JsonErrorCode; @@ -2621,6 +2668,7 @@ public final class dev/kord/rest/json/JsonErrorCode : java/lang/Enum { public static final field NonBotGuildInviteAccepted Ldev/kord/rest/json/JsonErrorCode; public static final field OAuth2ApplicationLimit Ldev/kord/rest/json/JsonErrorCode; public static final field OAuth2HasNoBot Ldev/kord/rest/json/JsonErrorCode; + public static final field OnlyConsumableSkusCanBeConsumed Ldev/kord/rest/json/JsonErrorCode; public static final field OnlyOwner Ldev/kord/rest/json/JsonErrorCode; public static final field OperationOnArchivedThread Ldev/kord/rest/json/JsonErrorCode; public static final field OwnerCannotBePendingMember Ldev/kord/rest/json/JsonErrorCode; @@ -3589,6 +3637,29 @@ public final class dev/kord/rest/json/request/EmojiModifyRequest$Companion { public final fun serializer ()Lkotlinx/serialization/KSerializer; } +public final class dev/kord/rest/json/request/EntitlementsListRequest { + public fun ()V + public fun (Ldev/kord/common/entity/Snowflake;Ljava/util/List;Ldev/kord/rest/route/Position$BeforeOrAfter;Ljava/lang/Integer;Ldev/kord/common/entity/Snowflake;Ljava/lang/Boolean;)V + public synthetic fun (Ldev/kord/common/entity/Snowflake;Ljava/util/List;Ldev/kord/rest/route/Position$BeforeOrAfter;Ljava/lang/Integer;Ldev/kord/common/entity/Snowflake;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ldev/kord/common/entity/Snowflake; + public final fun component2 ()Ljava/util/List; + public final fun component3 ()Ldev/kord/rest/route/Position$BeforeOrAfter; + public final fun component4 ()Ljava/lang/Integer; + public final fun component5 ()Ldev/kord/common/entity/Snowflake; + public final fun component6 ()Ljava/lang/Boolean; + public final fun copy (Ldev/kord/common/entity/Snowflake;Ljava/util/List;Ldev/kord/rest/route/Position$BeforeOrAfter;Ljava/lang/Integer;Ldev/kord/common/entity/Snowflake;Ljava/lang/Boolean;)Ldev/kord/rest/json/request/EntitlementsListRequest; + public static synthetic fun copy$default (Ldev/kord/rest/json/request/EntitlementsListRequest;Ldev/kord/common/entity/Snowflake;Ljava/util/List;Ldev/kord/rest/route/Position$BeforeOrAfter;Ljava/lang/Integer;Ldev/kord/common/entity/Snowflake;Ljava/lang/Boolean;ILjava/lang/Object;)Ldev/kord/rest/json/request/EntitlementsListRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getExcludeEnded ()Ljava/lang/Boolean; + public final fun getGuildId ()Ldev/kord/common/entity/Snowflake; + public final fun getLimit ()Ljava/lang/Integer; + public final fun getPosition ()Ldev/kord/rest/route/Position$BeforeOrAfter; + public final fun getSkuIds ()Ljava/util/List; + public final fun getUserId ()Ldev/kord/common/entity/Snowflake; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + public final class dev/kord/rest/json/request/FollowupMessageCreateRequest { public static final field Companion Ldev/kord/rest/json/request/FollowupMessageCreateRequest$Companion; public fun ()V @@ -5159,6 +5230,23 @@ public final class dev/kord/rest/json/request/ScheduledEventModifyRequest$Compan public final fun serializer ()Lkotlinx/serialization/KSerializer; } +public final class dev/kord/rest/json/request/SkuSubscriptionsListRequest { + public fun ()V + public fun (Ldev/kord/rest/route/Position$BeforeOrAfter;Ljava/lang/Integer;Ldev/kord/common/entity/Snowflake;)V + public synthetic fun (Ldev/kord/rest/route/Position$BeforeOrAfter;Ljava/lang/Integer;Ldev/kord/common/entity/Snowflake;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ldev/kord/rest/route/Position$BeforeOrAfter; + public final fun component2 ()Ljava/lang/Integer; + public final fun component3 ()Ldev/kord/common/entity/Snowflake; + public final fun copy (Ldev/kord/rest/route/Position$BeforeOrAfter;Ljava/lang/Integer;Ldev/kord/common/entity/Snowflake;)Ldev/kord/rest/json/request/SkuSubscriptionsListRequest; + public static synthetic fun copy$default (Ldev/kord/rest/json/request/SkuSubscriptionsListRequest;Ldev/kord/rest/route/Position$BeforeOrAfter;Ljava/lang/Integer;Ldev/kord/common/entity/Snowflake;ILjava/lang/Object;)Ldev/kord/rest/json/request/SkuSubscriptionsListRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getLimit ()Ljava/lang/Integer; + public final fun getPosition ()Ldev/kord/rest/route/Position$BeforeOrAfter; + public final fun getUserId ()Ldev/kord/common/entity/Snowflake; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + public final class dev/kord/rest/json/request/StageInstanceCreateRequest { public static final field Companion Ldev/kord/rest/json/request/StageInstanceCreateRequest$Companion; public fun (Ldev/kord/common/entity/Snowflake;Ljava/lang/String;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/OptionalSnowflake;)V @@ -5266,6 +5354,37 @@ public final class dev/kord/rest/json/request/StartThreadRequest$Companion { public final fun serializer ()Lkotlinx/serialization/KSerializer; } +public final class dev/kord/rest/json/request/TestEntitlementCreateRequest { + public static final field Companion Ldev/kord/rest/json/request/TestEntitlementCreateRequest$Companion; + public fun (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/EntitlementOwnerType;)V + public final fun component1 ()Ldev/kord/common/entity/Snowflake; + public final fun component2 ()Ldev/kord/common/entity/Snowflake; + public final fun component3 ()Ldev/kord/common/entity/EntitlementOwnerType; + public final fun copy (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/EntitlementOwnerType;)Ldev/kord/rest/json/request/TestEntitlementCreateRequest; + public static synthetic fun copy$default (Ldev/kord/rest/json/request/TestEntitlementCreateRequest;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/EntitlementOwnerType;ILjava/lang/Object;)Ldev/kord/rest/json/request/TestEntitlementCreateRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getOwnerId ()Ldev/kord/common/entity/Snowflake; + public final fun getOwnerType ()Ldev/kord/common/entity/EntitlementOwnerType; + public final fun getSkuId ()Ldev/kord/common/entity/Snowflake; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public synthetic class dev/kord/rest/json/request/TestEntitlementCreateRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Ldev/kord/rest/json/request/TestEntitlementCreateRequest$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/kord/rest/json/request/TestEntitlementCreateRequest; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Ldev/kord/rest/json/request/TestEntitlementCreateRequest;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class dev/kord/rest/json/request/TestEntitlementCreateRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class dev/kord/rest/json/request/UserAddDMRequest { public static final field Companion Ldev/kord/rest/json/request/UserAddDMRequest$Companion; public fun (Ljava/lang/String;Ljava/lang/String;)V @@ -6476,6 +6595,18 @@ public final class dev/kord/rest/route/Route$EmojiId : dev/kord/rest/route/Route public static final field INSTANCE Ldev/kord/rest/route/Route$EmojiId; } +public final class dev/kord/rest/route/Route$EntitlementConsume : dev/kord/rest/route/Route { + public static final field INSTANCE Ldev/kord/rest/route/Route$EntitlementConsume; +} + +public final class dev/kord/rest/route/Route$EntitlementId : dev/kord/rest/route/Route$Key { + public static final field INSTANCE Ldev/kord/rest/route/Route$EntitlementId; +} + +public final class dev/kord/rest/route/Route$EntitlementsList : dev/kord/rest/route/Route { + public static final field INSTANCE Ldev/kord/rest/route/Route$EntitlementsList; +} + public final class dev/kord/rest/route/Route$ExecuteGithubWebhookPost : dev/kord/rest/route/Route { public static final field INSTANCE Ldev/kord/rest/route/Route$ExecuteGithubWebhookPost; } @@ -7000,6 +7131,22 @@ public final class dev/kord/rest/route/Route$SelfVoiceStatePatch : dev/kord/rest public static final field INSTANCE Ldev/kord/rest/route/Route$SelfVoiceStatePatch; } +public final class dev/kord/rest/route/Route$SkuId : dev/kord/rest/route/Route$Key { + public static final field INSTANCE Ldev/kord/rest/route/Route$SkuId; +} + +public final class dev/kord/rest/route/Route$SkuSubscriptionGet : dev/kord/rest/route/Route { + public static final field INSTANCE Ldev/kord/rest/route/Route$SkuSubscriptionGet; +} + +public final class dev/kord/rest/route/Route$SkuSubscriptionsList : dev/kord/rest/route/Route { + public static final field INSTANCE Ldev/kord/rest/route/Route$SkuSubscriptionsList; +} + +public final class dev/kord/rest/route/Route$SkusList : dev/kord/rest/route/Route { + public static final field INSTANCE Ldev/kord/rest/route/Route$SkusList; +} + public final class dev/kord/rest/route/Route$StageInstanceDelete : dev/kord/rest/route/Route { public static final field INSTANCE Ldev/kord/rest/route/Route$StageInstanceDelete; } @@ -7032,6 +7179,10 @@ public final class dev/kord/rest/route/Route$StickerId : dev/kord/rest/route/Rou public static final field INSTANCE Ldev/kord/rest/route/Route$StickerId; } +public final class dev/kord/rest/route/Route$SubscriptionId : dev/kord/rest/route/Route$Key { + public static final field INSTANCE Ldev/kord/rest/route/Route$SubscriptionId; +} + public final class dev/kord/rest/route/Route$TemplateCode : dev/kord/rest/route/Route$Key { public static final field INSTANCE Ldev/kord/rest/route/Route$TemplateCode; } @@ -7052,6 +7203,14 @@ public final class dev/kord/rest/route/Route$TemplateSyncPut : dev/kord/rest/rou public static final field INSTANCE Ldev/kord/rest/route/Route$TemplateSyncPut; } +public final class dev/kord/rest/route/Route$TestEntitlementCreate : dev/kord/rest/route/Route { + public static final field INSTANCE Ldev/kord/rest/route/Route$TestEntitlementCreate; +} + +public final class dev/kord/rest/route/Route$TestEntitlementDelete : dev/kord/rest/route/Route { + public static final field INSTANCE Ldev/kord/rest/route/Route$TestEntitlementDelete; +} + public final class dev/kord/rest/route/Route$ThreadMembersGet : dev/kord/rest/route/Route { public static final field INSTANCE Ldev/kord/rest/route/Route$ThreadMembersGet; } @@ -7245,6 +7404,14 @@ public final class dev/kord/rest/service/EmojiService : dev/kord/rest/service/Re public final fun modifyEmoji (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; } +public final class dev/kord/rest/service/EntitlementService : dev/kord/rest/service/RestService { + public fun (Ldev/kord/rest/request/RequestHandler;)V + public final fun consumeEntitlement (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public final fun createTestEntitlement (Ldev/kord/common/entity/Snowflake;Ldev/kord/rest/json/request/TestEntitlementCreateRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public final fun deleteTestEntitlement (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public final fun listEntitlements (Ldev/kord/common/entity/Snowflake;Ldev/kord/rest/json/request/EntitlementsListRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; +} + public final class dev/kord/rest/service/GuildService : dev/kord/rest/service/RestService { public fun (Ldev/kord/rest/request/RequestHandler;)V public final fun addGuildBan (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; @@ -7434,11 +7601,14 @@ public final class dev/kord/rest/service/RestClient : dev/kord/rest/service/Rest public final fun getAutoModeration ()Ldev/kord/rest/service/AutoModerationService; public final fun getChannel ()Ldev/kord/rest/service/ChannelService; public final fun getEmoji ()Ldev/kord/rest/service/EmojiService; + public final fun getEntitlement ()Ldev/kord/rest/service/EntitlementService; public final fun getGuild ()Ldev/kord/rest/service/GuildService; public final fun getInteraction ()Ldev/kord/rest/service/InteractionService; public final fun getInvite ()Ldev/kord/rest/service/InviteService; + public final fun getSku ()Ldev/kord/rest/service/SkuService; public final fun getStageInstance ()Ldev/kord/rest/service/StageInstanceService; public final fun getSticker ()Ldev/kord/rest/service/StickerService; + public final fun getSubscription ()Ldev/kord/rest/service/SubscriptionService; public final fun getTemplate ()Ldev/kord/rest/service/TemplateService; public final fun getUser ()Ldev/kord/rest/service/UserService; public final fun getVoice ()Ldev/kord/rest/service/VoiceService; @@ -7457,6 +7627,11 @@ public abstract class dev/kord/rest/service/RestService { public final fun getRequestHandler ()Ldev/kord/rest/request/RequestHandler; } +public final class dev/kord/rest/service/SkuService : dev/kord/rest/service/RestService { + public fun (Ldev/kord/rest/request/RequestHandler;)V + public final fun listSkus (Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; +} + public final class dev/kord/rest/service/StageInstanceService : dev/kord/rest/service/RestService { public fun (Ldev/kord/rest/request/RequestHandler;)V public final fun createStageInstance (Ldev/kord/common/entity/Snowflake;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; @@ -7483,6 +7658,12 @@ public final class dev/kord/rest/service/StickerService : dev/kord/rest/service/ public final fun modifyGuildSticker (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; } +public final class dev/kord/rest/service/SubscriptionService : dev/kord/rest/service/RestService { + public fun (Ldev/kord/rest/request/RequestHandler;)V + public final fun getSkuSubscription (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public final fun listSkuSubscriptions (Ldev/kord/common/entity/Snowflake;Ldev/kord/rest/json/request/SkuSubscriptionsListRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; +} + public final class dev/kord/rest/service/TemplateService : dev/kord/rest/service/RestService { public fun (Ldev/kord/rest/request/RequestHandler;)V public final fun createGuildFromTemplate (Ljava/lang/String;Ldev/kord/rest/json/request/GuildFromTemplateCreateRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; diff --git a/rest/api/rest.klib.api b/rest/api/rest.klib.api index d7343b2bdfa..be3fe66206e 100644 --- a/rest/api/rest.klib.api +++ b/rest/api/rest.klib.api @@ -16,6 +16,7 @@ final enum class dev.kord.rest.json/JsonErrorCode : kotlin/Enum) // dev.kord.rest.builder.component/ActionRowBuilder.interactionButton|interactionButton(dev.kord.common.entity.ButtonStyle;kotlin.String;kotlin.Function1){}[0] final inline fun linkButton(kotlin/String, kotlin/Function1) // dev.kord.rest.builder.component/ActionRowBuilder.linkButton|linkButton(kotlin.String;kotlin.Function1){}[0] final inline fun mentionableSelect(kotlin/String, kotlin/Function1 = ...) // dev.kord.rest.builder.component/ActionRowBuilder.mentionableSelect|mentionableSelect(kotlin.String;kotlin.Function1){}[0] + final inline fun premiumButton(dev.kord.common.entity/Snowflake, kotlin/Function1 = ...) // dev.kord.rest.builder.component/ActionRowBuilder.premiumButton|premiumButton(dev.kord.common.entity.Snowflake;kotlin.Function1){}[0] final inline fun roleSelect(kotlin/String, kotlin/Function1 = ...) // dev.kord.rest.builder.component/ActionRowBuilder.roleSelect|roleSelect(kotlin.String;kotlin.Function1){}[0] final inline fun stringSelect(kotlin/String, kotlin/Function1) // dev.kord.rest.builder.component/ActionRowBuilder.stringSelect|stringSelect(kotlin.String;kotlin.Function1){}[0] final inline fun textInput(dev.kord.common.entity/TextInputStyle, kotlin/String, kotlin/String, kotlin/Function1 = ...) // dev.kord.rest.builder.component/ActionRowBuilder.textInput|textInput(dev.kord.common.entity.TextInputStyle;kotlin.String;kotlin.String;kotlin.Function1){}[0] @@ -1657,6 +1662,16 @@ final class dev.kord.rest.builder.component/MentionableSelectBuilder : dev.kord. final fun (): kotlin.collections/MutableList // dev.kord.rest.builder.component/MentionableSelectBuilder.defaultUsers.|(){}[0] } +final class dev.kord.rest.builder.component/PremiumButtonBuilder : dev.kord.rest.builder.component/ActionRowComponentBuilder { // dev.kord.rest.builder.component/PremiumButtonBuilder|null[0] + constructor (dev.kord.common.entity/Snowflake) // dev.kord.rest.builder.component/PremiumButtonBuilder.|(dev.kord.common.entity.Snowflake){}[0] + + final var skuId // dev.kord.rest.builder.component/PremiumButtonBuilder.skuId|{}skuId[0] + final fun (): dev.kord.common.entity/Snowflake // dev.kord.rest.builder.component/PremiumButtonBuilder.skuId.|(){}[0] + final fun (dev.kord.common.entity/Snowflake) // dev.kord.rest.builder.component/PremiumButtonBuilder.skuId.|(dev.kord.common.entity.Snowflake){}[0] + + final fun build(): dev.kord.common.entity/DiscordChatComponent // dev.kord.rest.builder.component/PremiumButtonBuilder.build|build(){}[0] +} + final class dev.kord.rest.builder.component/RoleSelectBuilder : dev.kord.rest.builder.component/SelectMenuBuilder { // dev.kord.rest.builder.component/RoleSelectBuilder|null[0] constructor (kotlin/String) // dev.kord.rest.builder.component/RoleSelectBuilder.|(kotlin.String){}[0] @@ -2705,6 +2720,51 @@ final class dev.kord.rest.builder.message/EmbedBuilder : dev.kord.rest.builder/R } } +final class dev.kord.rest.builder.monetization/EntitlementsListRequestBuilder : dev.kord.rest.builder/RequestBuilder { // dev.kord.rest.builder.monetization/EntitlementsListRequestBuilder|null[0] + constructor () // dev.kord.rest.builder.monetization/EntitlementsListRequestBuilder.|(){}[0] + + final var excludeEnded // dev.kord.rest.builder.monetization/EntitlementsListRequestBuilder.excludeEnded|{}excludeEnded[0] + final fun (): kotlin/Boolean? // dev.kord.rest.builder.monetization/EntitlementsListRequestBuilder.excludeEnded.|(){}[0] + final fun (kotlin/Boolean?) // dev.kord.rest.builder.monetization/EntitlementsListRequestBuilder.excludeEnded.|(kotlin.Boolean?){}[0] + final var guildId // dev.kord.rest.builder.monetization/EntitlementsListRequestBuilder.guildId|{}guildId[0] + final fun (): dev.kord.common.entity/Snowflake? // dev.kord.rest.builder.monetization/EntitlementsListRequestBuilder.guildId.|(){}[0] + final fun (dev.kord.common.entity/Snowflake?) // dev.kord.rest.builder.monetization/EntitlementsListRequestBuilder.guildId.|(dev.kord.common.entity.Snowflake?){}[0] + final var limit // dev.kord.rest.builder.monetization/EntitlementsListRequestBuilder.limit|{}limit[0] + final fun (): kotlin/Int? // dev.kord.rest.builder.monetization/EntitlementsListRequestBuilder.limit.|(){}[0] + final fun (kotlin/Int?) // dev.kord.rest.builder.monetization/EntitlementsListRequestBuilder.limit.|(kotlin.Int?){}[0] + final var position // dev.kord.rest.builder.monetization/EntitlementsListRequestBuilder.position|{}position[0] + final fun (): dev.kord.rest.route/Position.BeforeOrAfter? // dev.kord.rest.builder.monetization/EntitlementsListRequestBuilder.position.|(){}[0] + final fun (dev.kord.rest.route/Position.BeforeOrAfter?) // dev.kord.rest.builder.monetization/EntitlementsListRequestBuilder.position.|(dev.kord.rest.route.Position.BeforeOrAfter?){}[0] + final var skuIds // dev.kord.rest.builder.monetization/EntitlementsListRequestBuilder.skuIds|{}skuIds[0] + final fun (): kotlin.collections/MutableList // dev.kord.rest.builder.monetization/EntitlementsListRequestBuilder.skuIds.|(){}[0] + final fun (kotlin.collections/MutableList) // dev.kord.rest.builder.monetization/EntitlementsListRequestBuilder.skuIds.|(kotlin.collections.MutableList){}[0] + final var userId // dev.kord.rest.builder.monetization/EntitlementsListRequestBuilder.userId|{}userId[0] + final fun (): dev.kord.common.entity/Snowflake? // dev.kord.rest.builder.monetization/EntitlementsListRequestBuilder.userId.|(){}[0] + final fun (dev.kord.common.entity/Snowflake?) // dev.kord.rest.builder.monetization/EntitlementsListRequestBuilder.userId.|(dev.kord.common.entity.Snowflake?){}[0] + + final fun after(dev.kord.common.entity/Snowflake) // dev.kord.rest.builder.monetization/EntitlementsListRequestBuilder.after|after(dev.kord.common.entity.Snowflake){}[0] + final fun before(dev.kord.common.entity/Snowflake) // dev.kord.rest.builder.monetization/EntitlementsListRequestBuilder.before|before(dev.kord.common.entity.Snowflake){}[0] + final fun toRequest(): dev.kord.rest.json.request/EntitlementsListRequest // dev.kord.rest.builder.monetization/EntitlementsListRequestBuilder.toRequest|toRequest(){}[0] +} + +final class dev.kord.rest.builder.monetization/SkuSubscriptionsListRequestBuilder : dev.kord.rest.builder/RequestBuilder { // dev.kord.rest.builder.monetization/SkuSubscriptionsListRequestBuilder|null[0] + constructor () // dev.kord.rest.builder.monetization/SkuSubscriptionsListRequestBuilder.|(){}[0] + + final var limit // dev.kord.rest.builder.monetization/SkuSubscriptionsListRequestBuilder.limit|{}limit[0] + final fun (): kotlin/Int? // dev.kord.rest.builder.monetization/SkuSubscriptionsListRequestBuilder.limit.|(){}[0] + final fun (kotlin/Int?) // dev.kord.rest.builder.monetization/SkuSubscriptionsListRequestBuilder.limit.|(kotlin.Int?){}[0] + final var position // dev.kord.rest.builder.monetization/SkuSubscriptionsListRequestBuilder.position|{}position[0] + final fun (): dev.kord.rest.route/Position.BeforeOrAfter? // dev.kord.rest.builder.monetization/SkuSubscriptionsListRequestBuilder.position.|(){}[0] + final fun (dev.kord.rest.route/Position.BeforeOrAfter?) // dev.kord.rest.builder.monetization/SkuSubscriptionsListRequestBuilder.position.|(dev.kord.rest.route.Position.BeforeOrAfter?){}[0] + final var userId // dev.kord.rest.builder.monetization/SkuSubscriptionsListRequestBuilder.userId|{}userId[0] + final fun (): dev.kord.common.entity/Snowflake? // dev.kord.rest.builder.monetization/SkuSubscriptionsListRequestBuilder.userId.|(){}[0] + final fun (dev.kord.common.entity/Snowflake?) // dev.kord.rest.builder.monetization/SkuSubscriptionsListRequestBuilder.userId.|(dev.kord.common.entity.Snowflake?){}[0] + + final fun after(dev.kord.common.entity/Snowflake) // dev.kord.rest.builder.monetization/SkuSubscriptionsListRequestBuilder.after|after(dev.kord.common.entity.Snowflake){}[0] + final fun before(dev.kord.common.entity/Snowflake) // dev.kord.rest.builder.monetization/SkuSubscriptionsListRequestBuilder.before|before(dev.kord.common.entity.Snowflake){}[0] + final fun toRequest(): dev.kord.rest.json.request/SkuSubscriptionsListRequest // dev.kord.rest.builder.monetization/SkuSubscriptionsListRequestBuilder.toRequest|toRequest(){}[0] +} + final class dev.kord.rest.builder.role/RoleCreateBuilder : dev.kord.rest.builder/AuditRequestBuilder { // dev.kord.rest.builder.role/RoleCreateBuilder|null[0] constructor () // dev.kord.rest.builder.role/RoleCreateBuilder.|(){}[0] @@ -3904,6 +3964,34 @@ final class dev.kord.rest.json.request/EmojiModifyRequest { // dev.kord.rest.jso } } +final class dev.kord.rest.json.request/EntitlementsListRequest { // dev.kord.rest.json.request/EntitlementsListRequest|null[0] + constructor (dev.kord.common.entity/Snowflake? = ..., kotlin.collections/List = ..., dev.kord.rest.route/Position.BeforeOrAfter? = ..., kotlin/Int? = ..., dev.kord.common.entity/Snowflake? = ..., kotlin/Boolean? = ...) // dev.kord.rest.json.request/EntitlementsListRequest.|(dev.kord.common.entity.Snowflake?;kotlin.collections.List;dev.kord.rest.route.Position.BeforeOrAfter?;kotlin.Int?;dev.kord.common.entity.Snowflake?;kotlin.Boolean?){}[0] + + final val excludeEnded // dev.kord.rest.json.request/EntitlementsListRequest.excludeEnded|{}excludeEnded[0] + final fun (): kotlin/Boolean? // dev.kord.rest.json.request/EntitlementsListRequest.excludeEnded.|(){}[0] + final val guildId // dev.kord.rest.json.request/EntitlementsListRequest.guildId|{}guildId[0] + final fun (): dev.kord.common.entity/Snowflake? // dev.kord.rest.json.request/EntitlementsListRequest.guildId.|(){}[0] + final val limit // dev.kord.rest.json.request/EntitlementsListRequest.limit|{}limit[0] + final fun (): kotlin/Int? // dev.kord.rest.json.request/EntitlementsListRequest.limit.|(){}[0] + final val position // dev.kord.rest.json.request/EntitlementsListRequest.position|{}position[0] + final fun (): dev.kord.rest.route/Position.BeforeOrAfter? // dev.kord.rest.json.request/EntitlementsListRequest.position.|(){}[0] + final val skuIds // dev.kord.rest.json.request/EntitlementsListRequest.skuIds|{}skuIds[0] + final fun (): kotlin.collections/List // dev.kord.rest.json.request/EntitlementsListRequest.skuIds.|(){}[0] + final val userId // dev.kord.rest.json.request/EntitlementsListRequest.userId|{}userId[0] + final fun (): dev.kord.common.entity/Snowflake? // dev.kord.rest.json.request/EntitlementsListRequest.userId.|(){}[0] + + final fun component1(): dev.kord.common.entity/Snowflake? // dev.kord.rest.json.request/EntitlementsListRequest.component1|component1(){}[0] + final fun component2(): kotlin.collections/List // dev.kord.rest.json.request/EntitlementsListRequest.component2|component2(){}[0] + final fun component3(): dev.kord.rest.route/Position.BeforeOrAfter? // dev.kord.rest.json.request/EntitlementsListRequest.component3|component3(){}[0] + final fun component4(): kotlin/Int? // dev.kord.rest.json.request/EntitlementsListRequest.component4|component4(){}[0] + final fun component5(): dev.kord.common.entity/Snowflake? // dev.kord.rest.json.request/EntitlementsListRequest.component5|component5(){}[0] + final fun component6(): kotlin/Boolean? // dev.kord.rest.json.request/EntitlementsListRequest.component6|component6(){}[0] + final fun copy(dev.kord.common.entity/Snowflake? = ..., kotlin.collections/List = ..., dev.kord.rest.route/Position.BeforeOrAfter? = ..., kotlin/Int? = ..., dev.kord.common.entity/Snowflake? = ..., kotlin/Boolean? = ...): dev.kord.rest.json.request/EntitlementsListRequest // dev.kord.rest.json.request/EntitlementsListRequest.copy|copy(dev.kord.common.entity.Snowflake?;kotlin.collections.List;dev.kord.rest.route.Position.BeforeOrAfter?;kotlin.Int?;dev.kord.common.entity.Snowflake?;kotlin.Boolean?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // dev.kord.rest.json.request/EntitlementsListRequest.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // dev.kord.rest.json.request/EntitlementsListRequest.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // dev.kord.rest.json.request/EntitlementsListRequest.toString|toString(){}[0] +} + final class dev.kord.rest.json.request/FollowupMessageCreateRequest { // dev.kord.rest.json.request/FollowupMessageCreateRequest|null[0] constructor (dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/OptionalBoolean = ..., dev.kord.common.entity.optional/Optional> = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional> = ..., dev.kord.common.entity.optional/Optional> = ..., dev.kord.common.entity.optional/Optional = ...) // dev.kord.rest.json.request/FollowupMessageCreateRequest.|(dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.OptionalBoolean;dev.kord.common.entity.optional.Optional>;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional>;dev.kord.common.entity.optional.Optional>;dev.kord.common.entity.optional.Optional){}[0] @@ -5645,6 +5733,25 @@ final class dev.kord.rest.json.request/ScheduledEventModifyRequest { // dev.kord } } +final class dev.kord.rest.json.request/SkuSubscriptionsListRequest { // dev.kord.rest.json.request/SkuSubscriptionsListRequest|null[0] + constructor (dev.kord.rest.route/Position.BeforeOrAfter? = ..., kotlin/Int? = ..., dev.kord.common.entity/Snowflake? = ...) // dev.kord.rest.json.request/SkuSubscriptionsListRequest.|(dev.kord.rest.route.Position.BeforeOrAfter?;kotlin.Int?;dev.kord.common.entity.Snowflake?){}[0] + + final val limit // dev.kord.rest.json.request/SkuSubscriptionsListRequest.limit|{}limit[0] + final fun (): kotlin/Int? // dev.kord.rest.json.request/SkuSubscriptionsListRequest.limit.|(){}[0] + final val position // dev.kord.rest.json.request/SkuSubscriptionsListRequest.position|{}position[0] + final fun (): dev.kord.rest.route/Position.BeforeOrAfter? // dev.kord.rest.json.request/SkuSubscriptionsListRequest.position.|(){}[0] + final val userId // dev.kord.rest.json.request/SkuSubscriptionsListRequest.userId|{}userId[0] + final fun (): dev.kord.common.entity/Snowflake? // dev.kord.rest.json.request/SkuSubscriptionsListRequest.userId.|(){}[0] + + final fun component1(): dev.kord.rest.route/Position.BeforeOrAfter? // dev.kord.rest.json.request/SkuSubscriptionsListRequest.component1|component1(){}[0] + final fun component2(): kotlin/Int? // dev.kord.rest.json.request/SkuSubscriptionsListRequest.component2|component2(){}[0] + final fun component3(): dev.kord.common.entity/Snowflake? // dev.kord.rest.json.request/SkuSubscriptionsListRequest.component3|component3(){}[0] + final fun copy(dev.kord.rest.route/Position.BeforeOrAfter? = ..., kotlin/Int? = ..., dev.kord.common.entity/Snowflake? = ...): dev.kord.rest.json.request/SkuSubscriptionsListRequest // dev.kord.rest.json.request/SkuSubscriptionsListRequest.copy|copy(dev.kord.rest.route.Position.BeforeOrAfter?;kotlin.Int?;dev.kord.common.entity.Snowflake?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // dev.kord.rest.json.request/SkuSubscriptionsListRequest.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // dev.kord.rest.json.request/SkuSubscriptionsListRequest.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // dev.kord.rest.json.request/SkuSubscriptionsListRequest.toString|toString(){}[0] +} + final class dev.kord.rest.json.request/StageInstanceCreateRequest { // dev.kord.rest.json.request/StageInstanceCreateRequest|null[0] constructor (dev.kord.common.entity/Snowflake, kotlin/String, dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/OptionalBoolean = ..., dev.kord.common.entity.optional/OptionalSnowflake = ...) // dev.kord.rest.json.request/StageInstanceCreateRequest.|(dev.kord.common.entity.Snowflake;kotlin.String;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.OptionalBoolean;dev.kord.common.entity.optional.OptionalSnowflake){}[0] @@ -5762,6 +5869,38 @@ final class dev.kord.rest.json.request/StartThreadRequest { // dev.kord.rest.jso } } +final class dev.kord.rest.json.request/TestEntitlementCreateRequest { // dev.kord.rest.json.request/TestEntitlementCreateRequest|null[0] + constructor (dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake, dev.kord.common.entity/EntitlementOwnerType) // dev.kord.rest.json.request/TestEntitlementCreateRequest.|(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;dev.kord.common.entity.EntitlementOwnerType){}[0] + + final val ownerId // dev.kord.rest.json.request/TestEntitlementCreateRequest.ownerId|{}ownerId[0] + final fun (): dev.kord.common.entity/Snowflake // dev.kord.rest.json.request/TestEntitlementCreateRequest.ownerId.|(){}[0] + final val ownerType // dev.kord.rest.json.request/TestEntitlementCreateRequest.ownerType|{}ownerType[0] + final fun (): dev.kord.common.entity/EntitlementOwnerType // dev.kord.rest.json.request/TestEntitlementCreateRequest.ownerType.|(){}[0] + final val skuId // dev.kord.rest.json.request/TestEntitlementCreateRequest.skuId|{}skuId[0] + final fun (): dev.kord.common.entity/Snowflake // dev.kord.rest.json.request/TestEntitlementCreateRequest.skuId.|(){}[0] + + final fun component1(): dev.kord.common.entity/Snowflake // dev.kord.rest.json.request/TestEntitlementCreateRequest.component1|component1(){}[0] + final fun component2(): dev.kord.common.entity/Snowflake // dev.kord.rest.json.request/TestEntitlementCreateRequest.component2|component2(){}[0] + final fun component3(): dev.kord.common.entity/EntitlementOwnerType // dev.kord.rest.json.request/TestEntitlementCreateRequest.component3|component3(){}[0] + final fun copy(dev.kord.common.entity/Snowflake = ..., dev.kord.common.entity/Snowflake = ..., dev.kord.common.entity/EntitlementOwnerType = ...): dev.kord.rest.json.request/TestEntitlementCreateRequest // dev.kord.rest.json.request/TestEntitlementCreateRequest.copy|copy(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;dev.kord.common.entity.EntitlementOwnerType){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // dev.kord.rest.json.request/TestEntitlementCreateRequest.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // dev.kord.rest.json.request/TestEntitlementCreateRequest.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // dev.kord.rest.json.request/TestEntitlementCreateRequest.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // dev.kord.rest.json.request/TestEntitlementCreateRequest.$serializer|null[0] + final val descriptor // dev.kord.rest.json.request/TestEntitlementCreateRequest.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // dev.kord.rest.json.request/TestEntitlementCreateRequest.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // dev.kord.rest.json.request/TestEntitlementCreateRequest.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): dev.kord.rest.json.request/TestEntitlementCreateRequest // dev.kord.rest.json.request/TestEntitlementCreateRequest.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, dev.kord.rest.json.request/TestEntitlementCreateRequest) // dev.kord.rest.json.request/TestEntitlementCreateRequest.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;dev.kord.rest.json.request.TestEntitlementCreateRequest){}[0] + } + + final object Companion { // dev.kord.rest.json.request/TestEntitlementCreateRequest.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // dev.kord.rest.json.request/TestEntitlementCreateRequest.Companion.serializer|serializer(){}[0] + } +} + final class dev.kord.rest.json.request/UserAddDMRequest { // dev.kord.rest.json.request/UserAddDMRequest|null[0] constructor (kotlin/String, kotlin/String) // dev.kord.rest.json.request/UserAddDMRequest.|(kotlin.String;kotlin.String){}[0] @@ -6610,6 +6749,15 @@ final class dev.kord.rest.service/EmojiService : dev.kord.rest.service/RestServi final suspend inline fun modifyEmoji(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake, kotlin/Function1): dev.kord.common.entity/DiscordEmoji // dev.kord.rest.service/EmojiService.modifyEmoji|modifyEmoji(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;kotlin.Function1){}[0] } +final class dev.kord.rest.service/EntitlementService : dev.kord.rest.service/RestService { // dev.kord.rest.service/EntitlementService|null[0] + constructor (dev.kord.rest.request/RequestHandler) // dev.kord.rest.service/EntitlementService.|(dev.kord.rest.request.RequestHandler){}[0] + + final suspend fun consumeEntitlement(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake) // dev.kord.rest.service/EntitlementService.consumeEntitlement|consumeEntitlement(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake){}[0] + final suspend fun createTestEntitlement(dev.kord.common.entity/Snowflake, dev.kord.rest.json.request/TestEntitlementCreateRequest): dev.kord.common.entity/DiscordEntitlement // dev.kord.rest.service/EntitlementService.createTestEntitlement|createTestEntitlement(dev.kord.common.entity.Snowflake;dev.kord.rest.json.request.TestEntitlementCreateRequest){}[0] + final suspend fun deleteTestEntitlement(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake) // dev.kord.rest.service/EntitlementService.deleteTestEntitlement|deleteTestEntitlement(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake){}[0] + final suspend fun listEntitlements(dev.kord.common.entity/Snowflake, dev.kord.rest.json.request/EntitlementsListRequest): kotlin.collections/List // dev.kord.rest.service/EntitlementService.listEntitlements|listEntitlements(dev.kord.common.entity.Snowflake;dev.kord.rest.json.request.EntitlementsListRequest){}[0] +} + final class dev.kord.rest.service/GuildService : dev.kord.rest.service/RestService { // dev.kord.rest.service/GuildService|null[0] constructor (dev.kord.rest.request/RequestHandler) // dev.kord.rest.service/GuildService.|(dev.kord.rest.request.RequestHandler){}[0] @@ -6750,16 +6898,22 @@ final class dev.kord.rest.service/RestClient : dev.kord.rest.service/RestService final fun (): dev.kord.rest.service/ChannelService // dev.kord.rest.service/RestClient.channel.|(){}[0] final val emoji // dev.kord.rest.service/RestClient.emoji|{}emoji[0] final fun (): dev.kord.rest.service/EmojiService // dev.kord.rest.service/RestClient.emoji.|(){}[0] + final val entitlement // dev.kord.rest.service/RestClient.entitlement|{}entitlement[0] + final fun (): dev.kord.rest.service/EntitlementService // dev.kord.rest.service/RestClient.entitlement.|(){}[0] final val guild // dev.kord.rest.service/RestClient.guild|{}guild[0] final fun (): dev.kord.rest.service/GuildService // dev.kord.rest.service/RestClient.guild.|(){}[0] final val interaction // dev.kord.rest.service/RestClient.interaction|{}interaction[0] final fun (): dev.kord.rest.service/InteractionService // dev.kord.rest.service/RestClient.interaction.|(){}[0] final val invite // dev.kord.rest.service/RestClient.invite|{}invite[0] final fun (): dev.kord.rest.service/InviteService // dev.kord.rest.service/RestClient.invite.|(){}[0] + final val sku // dev.kord.rest.service/RestClient.sku|{}sku[0] + final fun (): dev.kord.rest.service/SkuService // dev.kord.rest.service/RestClient.sku.|(){}[0] final val stageInstance // dev.kord.rest.service/RestClient.stageInstance|{}stageInstance[0] final fun (): dev.kord.rest.service/StageInstanceService // dev.kord.rest.service/RestClient.stageInstance.|(){}[0] final val sticker // dev.kord.rest.service/RestClient.sticker|{}sticker[0] final fun (): dev.kord.rest.service/StickerService // dev.kord.rest.service/RestClient.sticker.|(){}[0] + final val subscription // dev.kord.rest.service/RestClient.subscription|{}subscription[0] + final fun (): dev.kord.rest.service/SubscriptionService // dev.kord.rest.service/RestClient.subscription.|(){}[0] final val template // dev.kord.rest.service/RestClient.template|{}template[0] final fun (): dev.kord.rest.service/TemplateService // dev.kord.rest.service/RestClient.template.|(){}[0] final val user // dev.kord.rest.service/RestClient.user|{}user[0] @@ -6772,6 +6926,12 @@ final class dev.kord.rest.service/RestClient : dev.kord.rest.service/RestService final suspend inline fun <#A1: kotlin/Any?> unsafe(dev.kord.rest.route/Route<#A1>, kotlin/Function1, kotlin/Unit>): #A1 // dev.kord.rest.service/RestClient.unsafe|unsafe(dev.kord.rest.route.Route<0:0>;kotlin.Function1,kotlin.Unit>){0ยง}[0] } +final class dev.kord.rest.service/SkuService : dev.kord.rest.service/RestService { // dev.kord.rest.service/SkuService|null[0] + constructor (dev.kord.rest.request/RequestHandler) // dev.kord.rest.service/SkuService.|(dev.kord.rest.request.RequestHandler){}[0] + + final suspend fun listSkus(dev.kord.common.entity/Snowflake): kotlin.collections/List // dev.kord.rest.service/SkuService.listSkus|listSkus(dev.kord.common.entity.Snowflake){}[0] +} + final class dev.kord.rest.service/StageInstanceService : dev.kord.rest.service/RestService { // dev.kord.rest.service/StageInstanceService|null[0] constructor (dev.kord.rest.request/RequestHandler) // dev.kord.rest.service/StageInstanceService.|(dev.kord.rest.request.RequestHandler){}[0] @@ -6796,6 +6956,13 @@ final class dev.kord.rest.service/StickerService : dev.kord.rest.service/RestSer final suspend inline fun modifyGuildSticker(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake, kotlin/Function1): dev.kord.common.entity/DiscordMessageSticker // dev.kord.rest.service/StickerService.modifyGuildSticker|modifyGuildSticker(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;kotlin.Function1){}[0] } +final class dev.kord.rest.service/SubscriptionService : dev.kord.rest.service/RestService { // dev.kord.rest.service/SubscriptionService|null[0] + constructor (dev.kord.rest.request/RequestHandler) // dev.kord.rest.service/SubscriptionService.|(dev.kord.rest.request.RequestHandler){}[0] + + final suspend fun getSkuSubscription(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake): dev.kord.common.entity/DiscordSubscription // dev.kord.rest.service/SubscriptionService.getSkuSubscription|getSkuSubscription(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake){}[0] + final suspend fun listSkuSubscriptions(dev.kord.common.entity/Snowflake, dev.kord.rest.json.request/SkuSubscriptionsListRequest): kotlin.collections/List // dev.kord.rest.service/SubscriptionService.listSkuSubscriptions|listSkuSubscriptions(dev.kord.common.entity.Snowflake;dev.kord.rest.json.request.SkuSubscriptionsListRequest){}[0] +} + final class dev.kord.rest.service/TemplateService : dev.kord.rest.service/RestService { // dev.kord.rest.service/TemplateService|null[0] constructor (dev.kord.rest.request/RequestHandler) // dev.kord.rest.service/TemplateService.|(dev.kord.rest.request.RequestHandler){}[0] @@ -7095,6 +7262,12 @@ sealed class <#A: kotlin/Any?> dev.kord.rest.route/Route { // dev.kord.rest.rout final object EmojiId : dev.kord.rest.route/Route.Key // dev.kord.rest.route/Route.EmojiId|null[0] + final object EntitlementConsume : dev.kord.rest.route/Route // dev.kord.rest.route/Route.EntitlementConsume|null[0] + + final object EntitlementId : dev.kord.rest.route/Route.Key // dev.kord.rest.route/Route.EntitlementId|null[0] + + final object EntitlementsList : dev.kord.rest.route/Route> // dev.kord.rest.route/Route.EntitlementsList|null[0] + final object ExecuteGithubWebhookPost : dev.kord.rest.route/Route // dev.kord.rest.route/Route.ExecuteGithubWebhookPost|null[0] final object ExecuteSlackWebhookPost : dev.kord.rest.route/Route // dev.kord.rest.route/Route.ExecuteSlackWebhookPost|null[0] @@ -7353,6 +7526,14 @@ sealed class <#A: kotlin/Any?> dev.kord.rest.route/Route { // dev.kord.rest.rout final object SelfVoiceStatePatch : dev.kord.rest.route/Route // dev.kord.rest.route/Route.SelfVoiceStatePatch|null[0] + final object SkuId : dev.kord.rest.route/Route.Key // dev.kord.rest.route/Route.SkuId|null[0] + + final object SkuSubscriptionGet : dev.kord.rest.route/Route // dev.kord.rest.route/Route.SkuSubscriptionGet|null[0] + + final object SkuSubscriptionsList : dev.kord.rest.route/Route> // dev.kord.rest.route/Route.SkuSubscriptionsList|null[0] + + final object SkusList : dev.kord.rest.route/Route> // dev.kord.rest.route/Route.SkusList|null[0] + final object StageInstanceDelete : dev.kord.rest.route/Route // dev.kord.rest.route/Route.StageInstanceDelete|null[0] final object StageInstanceGet : dev.kord.rest.route/Route // dev.kord.rest.route/Route.StageInstanceGet|null[0] @@ -7369,6 +7550,8 @@ sealed class <#A: kotlin/Any?> dev.kord.rest.route/Route { // dev.kord.rest.rout final object StickerId : dev.kord.rest.route/Route.Key // dev.kord.rest.route/Route.StickerId|null[0] + final object SubscriptionId : dev.kord.rest.route/Route.Key // dev.kord.rest.route/Route.SubscriptionId|null[0] + final object TemplateCode : dev.kord.rest.route/Route.Key // dev.kord.rest.route/Route.TemplateCode|null[0] final object TemplateDelete : dev.kord.rest.route/Route // dev.kord.rest.route/Route.TemplateDelete|null[0] @@ -7379,6 +7562,10 @@ sealed class <#A: kotlin/Any?> dev.kord.rest.route/Route { // dev.kord.rest.rout final object TemplateSyncPut : dev.kord.rest.route/Route // dev.kord.rest.route/Route.TemplateSyncPut|null[0] + final object TestEntitlementCreate : dev.kord.rest.route/Route // dev.kord.rest.route/Route.TestEntitlementCreate|null[0] + + final object TestEntitlementDelete : dev.kord.rest.route/Route // dev.kord.rest.route/Route.TestEntitlementDelete|null[0] + final object ThreadMembersGet : dev.kord.rest.route/Route> // dev.kord.rest.route/Route.ThreadMembersGet|null[0] final object TypingIndicatorPost : dev.kord.rest.route/Route // dev.kord.rest.route/Route.TypingIndicatorPost|null[0] diff --git a/rest/src/commonMain/kotlin/builder/component/ActionRowBuilder.kt b/rest/src/commonMain/kotlin/builder/component/ActionRowBuilder.kt index c9eae6f3935..85b4e62cf1a 100644 --- a/rest/src/commonMain/kotlin/builder/component/ActionRowBuilder.kt +++ b/rest/src/commonMain/kotlin/builder/component/ActionRowBuilder.kt @@ -1,10 +1,7 @@ package dev.kord.rest.builder.component import dev.kord.common.annotation.KordDsl -import dev.kord.common.entity.ButtonStyle -import dev.kord.common.entity.ComponentType -import dev.kord.common.entity.DiscordChatComponent -import dev.kord.common.entity.TextInputStyle +import dev.kord.common.entity.* import dev.kord.common.entity.optional.Optional import kotlin.contracts.InvocationKind import kotlin.contracts.contract @@ -40,6 +37,19 @@ public class ActionRowBuilder : MessageComponentBuilder { ) } + public inline fun premiumButton( + skuId: Snowflake, + builder: PremiumButtonBuilder.() -> Unit = {}, + ) { + contract { + callsInPlace(builder, InvocationKind.EXACTLY_ONCE) + } + + components.add( + PremiumButtonBuilder(skuId).apply(builder) + ) + } + /** * Creates and adds a string select menu with the [customId] and configured by the [builder]. * An ActionRow with a select menu cannot have any other select menus or buttons. diff --git a/rest/src/commonMain/kotlin/builder/component/ButtonBuilder.kt b/rest/src/commonMain/kotlin/builder/component/ButtonBuilder.kt index 034130f8467..206346205e9 100644 --- a/rest/src/commonMain/kotlin/builder/component/ButtonBuilder.kt +++ b/rest/src/commonMain/kotlin/builder/component/ButtonBuilder.kt @@ -3,12 +3,10 @@ package dev.kord.rest.builder.component import dev.kord.common.annotation.KordDsl -import dev.kord.common.entity.ButtonStyle -import dev.kord.common.entity.ComponentType -import dev.kord.common.entity.DiscordChatComponent -import dev.kord.common.entity.DiscordPartialEmoji +import dev.kord.common.entity.* import dev.kord.common.entity.optional.Optional import dev.kord.common.entity.optional.delegate.delegate +import dev.kord.common.entity.optional.optionalSnowflake @KordDsl public sealed class ButtonBuilder : ActionRowComponentBuilder() { @@ -75,3 +73,21 @@ public sealed class ButtonBuilder : ActionRowComponentBuilder() { ) } } + + +/** + * A button that prompts the user to purchase an [SKU][DiscordSku]. + * + * @param skuId The ID of the [SKU][DiscordSku] to prompt for purchase when clicked. + */ +@KordDsl +public class PremiumButtonBuilder( + public var skuId: Snowflake, +) : ActionRowComponentBuilder() { + override fun build(): DiscordChatComponent = DiscordChatComponent( + type = ComponentType.Button, + style = Optional(ButtonStyle.Premium), + skuId = skuId.optionalSnowflake(), + disabled = _disabled, + ) +} diff --git a/rest/src/commonMain/kotlin/builder/monetization/EntitlementsListRequestBuilder.kt b/rest/src/commonMain/kotlin/builder/monetization/EntitlementsListRequestBuilder.kt new file mode 100644 index 00000000000..eab98c3bce5 --- /dev/null +++ b/rest/src/commonMain/kotlin/builder/monetization/EntitlementsListRequestBuilder.kt @@ -0,0 +1,63 @@ +package dev.kord.rest.builder.monetization + +import dev.kord.common.annotation.KordDsl +import dev.kord.common.entity.Snowflake +import dev.kord.rest.builder.RequestBuilder +import dev.kord.rest.json.request.EntitlementsListRequest +import dev.kord.rest.route.Position + +@KordDsl +public class EntitlementsListRequestBuilder : RequestBuilder { + /** + * User ID to look up entitlements for. + */ + public var userId: Snowflake? = null + + /** + * An optional list of SKU IDs to check entitlements for. + */ + public var skuIds: MutableList = mutableListOf() + + /** + * Retrieve entitlements before or after a specific entitlement ID. + */ + public var position: Position.BeforeOrAfter? = null + + /** + * Retrieve entitlements before the specified entitlement [id]. + */ + public fun before(id: Snowflake) { + position = Position.Before(id) + } + + /** + * Retrieve entitlements after the specified entitlement [id]. + */ + public fun after(id: Snowflake) { + position = Position.After(id) + } + + /** + * The maximum number of entitlements to return. + */ + public var limit: Int? = null + + /** + * The guild ID to look up entitlements for. + */ + public var guildId: Snowflake? = null + + /** + * Whether to exclude ended entitlements. + */ + public var excludeEnded: Boolean? = null + + override fun toRequest(): EntitlementsListRequest = EntitlementsListRequest( + userId = userId, + skuIds = skuIds.toList(), + position = position, + limit = limit, + guildId = guildId, + excludeEnded = excludeEnded, + ) +} diff --git a/rest/src/commonMain/kotlin/builder/monetization/SkuSubscriptionsListRequestBuilder.kt b/rest/src/commonMain/kotlin/builder/monetization/SkuSubscriptionsListRequestBuilder.kt new file mode 100644 index 00000000000..a73a3743e7a --- /dev/null +++ b/rest/src/commonMain/kotlin/builder/monetization/SkuSubscriptionsListRequestBuilder.kt @@ -0,0 +1,36 @@ +package dev.kord.rest.builder.monetization + +import dev.kord.common.annotation.KordDsl +import dev.kord.common.entity.Snowflake +import dev.kord.rest.builder.RequestBuilder +import dev.kord.rest.json.request.SkuSubscriptionsListRequest +import dev.kord.rest.route.Position + +@KordDsl +public class SkuSubscriptionsListRequestBuilder : RequestBuilder { + + /** Return subscriptions before or after a specific subscription ID. */ + public var position: Position.BeforeOrAfter? = null + + /** Return subscriptions before the specified subscription [id]. */ + public fun before(id: Snowflake) { + position = Position.Before(id) + } + + /** Return subscriptions after the specified subscription [id]. */ + public fun after(id: Snowflake) { + position = Position.After(id) + } + + /** The maximum number of subscriptions to return. */ + public var limit: Int? = null + + /** User ID for which to return subscriptions. */ + public var userId: Snowflake? = null + + override fun toRequest(): SkuSubscriptionsListRequest = SkuSubscriptionsListRequest( + position = position, + limit = limit, + userId = userId, + ) +} diff --git a/rest/src/commonMain/kotlin/json/JsonErrorCode.kt b/rest/src/commonMain/kotlin/json/JsonErrorCode.kt index c57cacb517e..ae6112f59bb 100644 --- a/rest/src/commonMain/kotlin/json/JsonErrorCode.kt +++ b/rest/src/commonMain/kotlin/json/JsonErrorCode.kt @@ -307,6 +307,12 @@ public enum class JsonErrorCode(public val code: Int) { /** Connection has been revoked. */ ConnectionRevoked(40012), + /** Only consumable SKUs can be consumed. */ + OnlyConsumableSkusCanBeConsumed(40018), + + /** You can only delete sandbox entitlements. */ + CanOnlyDeleteSandboxEntitlements(40019), + /** Target user is not connected to voice. */ UserNotInVoice(40032), @@ -337,6 +343,9 @@ public enum class JsonErrorCode(public val code: Int) { /** A tag is required to create a forum post in this channel. */ TagRequired(40067), + /** An entitlement has already been granted for this resource. */ + EntitlementAlreadyGranted(40074), + /** Missing access. */ MissingAccess(50001), @@ -447,6 +456,9 @@ public enum class JsonErrorCode(public val code: Int) { /** Invalid Guild. */ InvalidGuild(50055), + /** Invalid SKU. */ + InvalidSku(50057), + /** Invalid request origin. */ InvalidRequestOrigin(50067), diff --git a/rest/src/commonMain/kotlin/json/request/EntitlementRequests.kt b/rest/src/commonMain/kotlin/json/request/EntitlementRequests.kt new file mode 100644 index 00000000000..ca585c2d12a --- /dev/null +++ b/rest/src/commonMain/kotlin/json/request/EntitlementRequests.kt @@ -0,0 +1,26 @@ +package dev.kord.rest.json.request + +import dev.kord.common.entity.EntitlementOwnerType +import dev.kord.common.entity.Snowflake +import dev.kord.rest.route.Position +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +public data class EntitlementsListRequest( + val userId: Snowflake? = null, + val skuIds: List = emptyList(), + val position: Position.BeforeOrAfter? = null, + val limit: Int? = null, + val guildId: Snowflake? = null, + val excludeEnded: Boolean? = null, +) + +@Serializable +public data class TestEntitlementCreateRequest( + @SerialName("sku_id") + val skuId: Snowflake, + @SerialName("owner_id") + val ownerId: Snowflake, + @SerialName("owner_type") + val ownerType: EntitlementOwnerType, +) diff --git a/rest/src/commonMain/kotlin/json/request/SubscriptionRequests.kt b/rest/src/commonMain/kotlin/json/request/SubscriptionRequests.kt new file mode 100644 index 00000000000..afd1852ca67 --- /dev/null +++ b/rest/src/commonMain/kotlin/json/request/SubscriptionRequests.kt @@ -0,0 +1,10 @@ +package dev.kord.rest.json.request + +import dev.kord.common.entity.Snowflake +import dev.kord.rest.route.Position + +public data class SkuSubscriptionsListRequest( + val position: Position.BeforeOrAfter? = null, + val limit: Int? = null, + val userId: Snowflake? = null, +) diff --git a/rest/src/commonMain/kotlin/route/Route.kt b/rest/src/commonMain/kotlin/route/Route.kt index d861a485263..7476d62e5ef 100644 --- a/rest/src/commonMain/kotlin/route/Route.kt +++ b/rest/src/commonMain/kotlin/route/Route.kt @@ -74,6 +74,9 @@ public sealed class Route( public object WebhookId : Key("{webhook.id}", true) public object WebhookToken : Key("{webhook.token}") public object TemplateCode : Key("{template.code}") + public object EntitlementId : Key("{entitlement.id}") + public object SkuId : Key("{sku.id}") + public object SubscriptionId : Key("{subscription.id}") public object ApplicationId : Key("{application.id}", true) public object CommandId : Key("{command.id}", true) public object InteractionId : Key("{interaction.id}", true) @@ -372,6 +375,32 @@ public sealed class Route( Route(HttpMethod.Patch, "/guilds/$GuildId/emojis/$EmojiId", DiscordEmoji.serializer()) + /* + * Entitlement: + * https://discord.com/developers/docs/resources/entitlement + */ + + public object EntitlementsList : + Route>( + HttpMethod.Get, + "/applications/$ApplicationId/entitlements", + ListSerializer(DiscordEntitlement.serializer()), + ) + + public object EntitlementConsume : + Route(HttpMethod.Post, "/applications/$ApplicationId/entitlements/$EntitlementId/consume", NoStrategy) + + public object TestEntitlementCreate : + Route( + HttpMethod.Post, + "/applications/$ApplicationId/entitlements", + DiscordEntitlement.serializer(), + ) + + public object TestEntitlementDelete : + Route(HttpMethod.Delete, "/applications/$ApplicationId/entitlements/$EntitlementId", NoStrategy) + + /* * Invite: * https://discord.com/developers/docs/resources/invite @@ -384,6 +413,39 @@ public sealed class Route( Route(HttpMethod.Delete, "/invites/$InviteCode", DiscordInvite.serializer()) + /* + * SKU: + * https://discord.com/developers/docs/resources/sku + */ + + public object SkusList : + Route>( + HttpMethod.Get, + "/applications/$ApplicationId/skus", + ListSerializer(DiscordSku.serializer()), + ) + + + /* + * Subscription: + * https://discord.com/developers/docs/resources/subscription + */ + + public object SkuSubscriptionsList : + Route>( + HttpMethod.Get, + "/skus/$SkuId/subscriptions", + ListSerializer(DiscordSubscription.serializer()), + ) + + public object SkuSubscriptionGet : + Route( + HttpMethod.Get, + "/skus/$SkuId/subscriptions/$SubscriptionId", + DiscordSubscription.serializer(), + ) + + /* * User: * https://discord.com/developers/docs/resources/user diff --git a/rest/src/commonMain/kotlin/service/EntitlementService.kt b/rest/src/commonMain/kotlin/service/EntitlementService.kt new file mode 100644 index 00000000000..20829113d11 --- /dev/null +++ b/rest/src/commonMain/kotlin/service/EntitlementService.kt @@ -0,0 +1,48 @@ +package dev.kord.rest.service + +import dev.kord.common.entity.DiscordEntitlement +import dev.kord.common.entity.Snowflake +import dev.kord.rest.json.request.EntitlementsListRequest +import dev.kord.rest.json.request.TestEntitlementCreateRequest +import dev.kord.rest.request.RequestHandler +import dev.kord.rest.route.Route + +public class EntitlementService(requestHandler: RequestHandler) : RestService(requestHandler) { + + public suspend fun listEntitlements( + applicationId: Snowflake, + request: EntitlementsListRequest, + ): List = call(Route.EntitlementsList) { + keys[Route.ApplicationId] = applicationId + request.userId?.let { parameter("user_id", it) } + request.skuIds.joinToString(",").ifBlank { null }?.let { parameter("sku_ids", it) } + request.position?.let { parameter(it.key, it.value) } + request.limit?.let { parameter("limit", it) } + request.guildId?.let { parameter("guild_id", it) } + request.excludeEnded?.let { parameter("exclude_ended", it) } + } + + public suspend fun consumeEntitlement( + applicationId: Snowflake, + entitlementId: Snowflake, + ): Unit = call(Route.EntitlementConsume) { + keys[Route.ApplicationId] = applicationId + keys[Route.EntitlementId] = entitlementId + } + + public suspend fun createTestEntitlement( + applicationId: Snowflake, + request: TestEntitlementCreateRequest, + ): DiscordEntitlement = call(Route.TestEntitlementCreate) { + keys[Route.ApplicationId] = applicationId + body(TestEntitlementCreateRequest.serializer(), request) + } + + public suspend fun deleteTestEntitlement( + applicationId: Snowflake, + entitlementId: Snowflake, + ): Unit = call(Route.TestEntitlementDelete) { + keys[Route.ApplicationId] = applicationId + keys[Route.EntitlementId] = entitlementId + } +} diff --git a/rest/src/commonMain/kotlin/service/RestClient.kt b/rest/src/commonMain/kotlin/service/RestClient.kt index 66f82abf8db..be958edee6a 100644 --- a/rest/src/commonMain/kotlin/service/RestClient.kt +++ b/rest/src/commonMain/kotlin/service/RestClient.kt @@ -17,24 +17,25 @@ public class RestClient(requestHandler: RequestHandler) : RestService(requestHan public val interaction: InteractionService = InteractionService(requestHandler) // resources + public val application: ApplicationService = ApplicationService(requestHandler) public val applicationRoleConnectionMetadata: ApplicationRoleConnectionMetadataService = ApplicationRoleConnectionMetadataService(requestHandler) public val auditLog: AuditLogService = AuditLogService(requestHandler) public val autoModeration: AutoModerationService = AutoModerationService(requestHandler) public val channel: ChannelService = ChannelService(requestHandler) public val emoji: EmojiService = EmojiService(requestHandler) + public val entitlement: EntitlementService = EntitlementService(requestHandler) public val guild: GuildService = GuildService(requestHandler) public val template: TemplateService = TemplateService(requestHandler) public val invite: InviteService = InviteService(requestHandler) + public val sku: SkuService = SkuService(requestHandler) public val stageInstance: StageInstanceService = StageInstanceService(requestHandler) public val sticker: StickerService = StickerService(requestHandler) + public val subscription: SubscriptionService = SubscriptionService(requestHandler) public val user: UserService = UserService(requestHandler) public val voice: VoiceService = VoiceService(requestHandler) public val webhook: WebhookService = WebhookService(requestHandler) - // topics - public val application: ApplicationService = ApplicationService(requestHandler) - /** * Sends a request to the given [route]. This function exposes a direct call to the Discord api and allows * the user to send a custom [RequestBuilder.body]. diff --git a/rest/src/commonMain/kotlin/service/SkuService.kt b/rest/src/commonMain/kotlin/service/SkuService.kt new file mode 100644 index 00000000000..745bdfc582c --- /dev/null +++ b/rest/src/commonMain/kotlin/service/SkuService.kt @@ -0,0 +1,13 @@ +package dev.kord.rest.service + +import dev.kord.common.entity.DiscordSku +import dev.kord.common.entity.Snowflake +import dev.kord.rest.request.RequestHandler +import dev.kord.rest.route.Route + +public class SkuService(requestHandler: RequestHandler) : RestService(requestHandler) { + + public suspend fun listSkus(applicationId: Snowflake): List = call(Route.SkusList) { + keys[Route.ApplicationId] = applicationId + } +} diff --git a/rest/src/commonMain/kotlin/service/SubscriptionService.kt b/rest/src/commonMain/kotlin/service/SubscriptionService.kt new file mode 100644 index 00000000000..ca7927e9fee --- /dev/null +++ b/rest/src/commonMain/kotlin/service/SubscriptionService.kt @@ -0,0 +1,28 @@ +package dev.kord.rest.service + +import dev.kord.common.entity.DiscordSubscription +import dev.kord.common.entity.Snowflake +import dev.kord.rest.json.request.SkuSubscriptionsListRequest +import dev.kord.rest.request.RequestHandler +import dev.kord.rest.route.Route + +public class SubscriptionService(requestHandler: RequestHandler) : RestService(requestHandler) { + + public suspend fun listSkuSubscriptions( + skuId: Snowflake, + request: SkuSubscriptionsListRequest, + ): List = call(Route.SkuSubscriptionsList) { + keys[Route.SkuId] = skuId + request.position?.let { parameter(it.key, it.value) } + request.limit?.let { parameter("limit", it) } + request.userId?.let { parameter("user_id", it) } + } + + public suspend fun getSkuSubscription( + skuId: Snowflake, + subscriptionId: Snowflake, + ): DiscordSubscription = call(Route.SkuSubscriptionGet) { + keys[Route.SkuId] = skuId + keys[Route.SubscriptionId] = subscriptionId + } +}