diff --git a/common/api/common.api b/common/api/common.api index fb87a200c9d..6f5da7df31b 100644 --- a/common/api/common.api +++ b/common/api/common.api @@ -5633,6 +5633,48 @@ public final class dev/kord/common/entity/DiscordSku$Companion { public final fun serializer ()Lkotlinx/serialization/KSerializer; } +public final class dev/kord/common/entity/DiscordSoundboardSound { + public static final field Companion Ldev/kord/common/entity/DiscordSoundboardSound$Companion; + public fun (Ljava/lang/String;Ldev/kord/common/entity/Snowflake;DLdev/kord/common/entity/Snowflake;Ljava/lang/String;Ldev/kord/common/entity/optional/OptionalSnowflake;ZLdev/kord/common/entity/optional/Optional;)V + public synthetic fun (Ljava/lang/String;Ldev/kord/common/entity/Snowflake;DLdev/kord/common/entity/Snowflake;Ljava/lang/String;Ldev/kord/common/entity/optional/OptionalSnowflake;ZLdev/kord/common/entity/optional/Optional;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ldev/kord/common/entity/Snowflake; + public final fun component3 ()D + public final fun component4 ()Ldev/kord/common/entity/Snowflake; + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Ldev/kord/common/entity/optional/OptionalSnowflake; + public final fun component7 ()Z + public final fun component8 ()Ldev/kord/common/entity/optional/Optional; + public final fun copy (Ljava/lang/String;Ldev/kord/common/entity/Snowflake;DLdev/kord/common/entity/Snowflake;Ljava/lang/String;Ldev/kord/common/entity/optional/OptionalSnowflake;ZLdev/kord/common/entity/optional/Optional;)Ldev/kord/common/entity/DiscordSoundboardSound; + public static synthetic fun copy$default (Ldev/kord/common/entity/DiscordSoundboardSound;Ljava/lang/String;Ldev/kord/common/entity/Snowflake;DLdev/kord/common/entity/Snowflake;Ljava/lang/String;Ldev/kord/common/entity/optional/OptionalSnowflake;ZLdev/kord/common/entity/optional/Optional;ILjava/lang/Object;)Ldev/kord/common/entity/DiscordSoundboardSound; + public fun equals (Ljava/lang/Object;)Z + public final fun getAvailable ()Z + public final fun getEmojiId ()Ldev/kord/common/entity/Snowflake; + public final fun getEmojiName ()Ljava/lang/String; + public final fun getGuildId ()Ldev/kord/common/entity/optional/OptionalSnowflake; + public final fun getName ()Ljava/lang/String; + public final fun getSoundId ()Ldev/kord/common/entity/Snowflake; + public final fun getUser ()Ldev/kord/common/entity/optional/Optional; + public final fun getVolume ()D + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public synthetic class dev/kord/common/entity/DiscordSoundboardSound$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Ldev/kord/common/entity/DiscordSoundboardSound$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/kord/common/entity/DiscordSoundboardSound; + 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/DiscordSoundboardSound;)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/DiscordSoundboardSound$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 @@ -9196,6 +9238,40 @@ public final class dev/kord/common/entity/optional/OptionalBooleanKt { public static final fun orElse (Ldev/kord/common/entity/optional/OptionalBoolean;Z)Z } +public abstract class dev/kord/common/entity/optional/OptionalDouble { + public static final field Companion Ldev/kord/common/entity/optional/OptionalDouble$Companion; + public final fun getAsNullable ()Ljava/lang/Double; + public final fun getAsOptional ()Ldev/kord/common/entity/optional/Optional; + public final fun orElse (D)D +} + +public final class dev/kord/common/entity/optional/OptionalDouble$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class dev/kord/common/entity/optional/OptionalDouble$Missing : dev/kord/common/entity/optional/OptionalDouble { + public static final field INSTANCE Ldev/kord/common/entity/optional/OptionalDouble$Missing; + public fun toString ()Ljava/lang/String; +} + +public final class dev/kord/common/entity/optional/OptionalDouble$Value : dev/kord/common/entity/optional/OptionalDouble { + public fun (D)V + public final fun component1 ()D + public fun equals (Ljava/lang/Object;)Z + public final fun getValue ()D + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class dev/kord/common/entity/optional/OptionalDoubleKt { + public static final fun getAsNullable (Ldev/kord/common/entity/optional/OptionalDouble;)Ljava/lang/Double; + public static final fun getOrThrow (Ldev/kord/common/entity/optional/OptionalDouble;)D + public static final fun getValue (Ldev/kord/common/entity/optional/OptionalDouble;)Ljava/lang/Double; + public static final fun map (Ldev/kord/common/entity/optional/OptionalDouble;Lkotlin/jvm/functions/Function1;)Ldev/kord/common/entity/optional/OptionalDouble; + public static final fun optionalDouble (D)Ldev/kord/common/entity/optional/OptionalDouble$Value; + public static final fun orElse (Ldev/kord/common/entity/optional/OptionalDouble;I)I +} + public abstract class dev/kord/common/entity/optional/OptionalInt { public static final field Companion Ldev/kord/common/entity/optional/OptionalInt$Companion; public final fun getAsNullable ()Ljava/lang/Integer; @@ -9316,6 +9392,7 @@ public final class dev/kord/common/entity/optional/OptionalSnowflake$Value : dev } public final class dev/kord/common/entity/optional/OptionalSnowflakeKt { + public static final fun getMissingIfNull (Ldev/kord/common/entity/Snowflake;)Ldev/kord/common/entity/optional/OptionalSnowflake; public static final fun getValue (Ldev/kord/common/entity/optional/OptionalSnowflake;)Ldev/kord/common/entity/Snowflake; public static final fun map (Ldev/kord/common/entity/optional/OptionalSnowflake;Lkotlin/jvm/functions/Function1;)Ldev/kord/common/entity/optional/Optional; public static final fun optionalNullable (Ldev/kord/common/entity/Snowflake;)Ldev/kord/common/entity/optional/OptionalSnowflake$Value; @@ -9333,6 +9410,11 @@ public final class dev/kord/common/entity/optional/delegate/OptionalDelegateKt { public static final fun provideNullableDelegate (Lkotlin/reflect/KMutableProperty0;)Lkotlin/properties/ReadWriteProperty; } +public final class dev/kord/common/entity/optional/delegate/OptionalDoubleDelegateKt { + public static final fun delegate (Lkotlin/reflect/KMutableProperty0;)Lkotlin/properties/ReadWriteProperty; + public static final fun provideNullableDelegate (Lkotlin/reflect/KMutableProperty0;)Lkotlin/properties/ReadWriteProperty; +} + public final class dev/kord/common/entity/optional/delegate/OptionalIntDelegateKt { public static final fun delegate (Lkotlin/reflect/KMutableProperty0;)Lkotlin/properties/ReadWriteProperty; public static final fun provideNullableDelegate (Lkotlin/reflect/KMutableProperty0;)Lkotlin/properties/ReadWriteProperty; diff --git a/common/api/common.klib.api b/common/api/common.klib.api index 309c5b6cec0..538f77a1661 100644 --- a/common/api/common.klib.api +++ b/common/api/common.klib.api @@ -4592,6 +4592,55 @@ final class dev.kord.common.entity/DiscordSku { // dev.kord.common.entity/Discor } } +final class dev.kord.common.entity/DiscordSoundboardSound { // dev.kord.common.entity/DiscordSoundboardSound|null[0] + constructor (kotlin/String, dev.kord.common.entity/Snowflake, kotlin/Double, dev.kord.common.entity/Snowflake?, kotlin/String?, dev.kord.common.entity.optional/OptionalSnowflake = ..., kotlin/Boolean, dev.kord.common.entity.optional/Optional = ...) // dev.kord.common.entity/DiscordSoundboardSound.|(kotlin.String;dev.kord.common.entity.Snowflake;kotlin.Double;dev.kord.common.entity.Snowflake?;kotlin.String?;dev.kord.common.entity.optional.OptionalSnowflake;kotlin.Boolean;dev.kord.common.entity.optional.Optional){}[0] + + final val available // dev.kord.common.entity/DiscordSoundboardSound.available|{}available[0] + final fun (): kotlin/Boolean // dev.kord.common.entity/DiscordSoundboardSound.available.|(){}[0] + final val emojiId // dev.kord.common.entity/DiscordSoundboardSound.emojiId|{}emojiId[0] + final fun (): dev.kord.common.entity/Snowflake? // dev.kord.common.entity/DiscordSoundboardSound.emojiId.|(){}[0] + final val emojiName // dev.kord.common.entity/DiscordSoundboardSound.emojiName|{}emojiName[0] + final fun (): kotlin/String? // dev.kord.common.entity/DiscordSoundboardSound.emojiName.|(){}[0] + final val guildId // dev.kord.common.entity/DiscordSoundboardSound.guildId|{}guildId[0] + final fun (): dev.kord.common.entity.optional/OptionalSnowflake // dev.kord.common.entity/DiscordSoundboardSound.guildId.|(){}[0] + final val name // dev.kord.common.entity/DiscordSoundboardSound.name|{}name[0] + final fun (): kotlin/String // dev.kord.common.entity/DiscordSoundboardSound.name.|(){}[0] + final val soundId // dev.kord.common.entity/DiscordSoundboardSound.soundId|{}soundId[0] + final fun (): dev.kord.common.entity/Snowflake // dev.kord.common.entity/DiscordSoundboardSound.soundId.|(){}[0] + final val user // dev.kord.common.entity/DiscordSoundboardSound.user|{}user[0] + final fun (): dev.kord.common.entity.optional/Optional // dev.kord.common.entity/DiscordSoundboardSound.user.|(){}[0] + final val volume // dev.kord.common.entity/DiscordSoundboardSound.volume|{}volume[0] + final fun (): kotlin/Double // dev.kord.common.entity/DiscordSoundboardSound.volume.|(){}[0] + + final fun component1(): kotlin/String // dev.kord.common.entity/DiscordSoundboardSound.component1|component1(){}[0] + final fun component2(): dev.kord.common.entity/Snowflake // dev.kord.common.entity/DiscordSoundboardSound.component2|component2(){}[0] + final fun component3(): kotlin/Double // dev.kord.common.entity/DiscordSoundboardSound.component3|component3(){}[0] + final fun component4(): dev.kord.common.entity/Snowflake? // dev.kord.common.entity/DiscordSoundboardSound.component4|component4(){}[0] + final fun component5(): kotlin/String? // dev.kord.common.entity/DiscordSoundboardSound.component5|component5(){}[0] + final fun component6(): dev.kord.common.entity.optional/OptionalSnowflake // dev.kord.common.entity/DiscordSoundboardSound.component6|component6(){}[0] + final fun component7(): kotlin/Boolean // dev.kord.common.entity/DiscordSoundboardSound.component7|component7(){}[0] + final fun component8(): dev.kord.common.entity.optional/Optional // dev.kord.common.entity/DiscordSoundboardSound.component8|component8(){}[0] + final fun copy(kotlin/String = ..., dev.kord.common.entity/Snowflake = ..., kotlin/Double = ..., dev.kord.common.entity/Snowflake? = ..., kotlin/String? = ..., dev.kord.common.entity.optional/OptionalSnowflake = ..., kotlin/Boolean = ..., dev.kord.common.entity.optional/Optional = ...): dev.kord.common.entity/DiscordSoundboardSound // dev.kord.common.entity/DiscordSoundboardSound.copy|copy(kotlin.String;dev.kord.common.entity.Snowflake;kotlin.Double;dev.kord.common.entity.Snowflake?;kotlin.String?;dev.kord.common.entity.optional.OptionalSnowflake;kotlin.Boolean;dev.kord.common.entity.optional.Optional){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // dev.kord.common.entity/DiscordSoundboardSound.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // dev.kord.common.entity/DiscordSoundboardSound.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // dev.kord.common.entity/DiscordSoundboardSound.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // dev.kord.common.entity/DiscordSoundboardSound.$serializer|null[0] + final val descriptor // dev.kord.common.entity/DiscordSoundboardSound.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // dev.kord.common.entity/DiscordSoundboardSound.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // dev.kord.common.entity/DiscordSoundboardSound.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): dev.kord.common.entity/DiscordSoundboardSound // dev.kord.common.entity/DiscordSoundboardSound.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, dev.kord.common.entity/DiscordSoundboardSound) // dev.kord.common.entity/DiscordSoundboardSound.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;dev.kord.common.entity.DiscordSoundboardSound){}[0] + } + + final object Companion { // dev.kord.common.entity/DiscordSoundboardSound.Companion|null[0] + final val $childSerializers // dev.kord.common.entity/DiscordSoundboardSound.Companion.$childSerializers|{}$childSerializers[0] + + final fun serializer(): kotlinx.serialization/KSerializer // dev.kord.common.entity/DiscordSoundboardSound.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] @@ -6961,6 +7010,35 @@ sealed class dev.kord.common.entity.optional/OptionalBoolean { // dev.kord.commo } } +sealed class dev.kord.common.entity.optional/OptionalDouble { // dev.kord.common.entity.optional/OptionalDouble|null[0] + final val asNullable // dev.kord.common.entity.optional/OptionalDouble.asNullable|{}asNullable[0] + final fun (): kotlin/Double? // dev.kord.common.entity.optional/OptionalDouble.asNullable.|(){}[0] + final val asOptional // dev.kord.common.entity.optional/OptionalDouble.asOptional|{}asOptional[0] + final fun (): dev.kord.common.entity.optional/Optional // dev.kord.common.entity.optional/OptionalDouble.asOptional.|(){}[0] + + final fun orElse(kotlin/Double): kotlin/Double // dev.kord.common.entity.optional/OptionalDouble.orElse|orElse(kotlin.Double){}[0] + + final class Value : dev.kord.common.entity.optional/OptionalDouble { // dev.kord.common.entity.optional/OptionalDouble.Value|null[0] + constructor (kotlin/Double) // dev.kord.common.entity.optional/OptionalDouble.Value.|(kotlin.Double){}[0] + + final val value // dev.kord.common.entity.optional/OptionalDouble.Value.value|{}value[0] + final fun (): kotlin/Double // dev.kord.common.entity.optional/OptionalDouble.Value.value.|(){}[0] + + final fun component1(): kotlin/Double // dev.kord.common.entity.optional/OptionalDouble.Value.component1|component1(){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // dev.kord.common.entity.optional/OptionalDouble.Value.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // dev.kord.common.entity.optional/OptionalDouble.Value.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // dev.kord.common.entity.optional/OptionalDouble.Value.toString|toString(){}[0] + } + + final object Companion { // dev.kord.common.entity.optional/OptionalDouble.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // dev.kord.common.entity.optional/OptionalDouble.Companion.serializer|serializer(){}[0] + } + + final object Missing : dev.kord.common.entity.optional/OptionalDouble { // dev.kord.common.entity.optional/OptionalDouble.Missing|null[0] + final fun toString(): kotlin/String // dev.kord.common.entity.optional/OptionalDouble.Missing.toString|toString(){}[0] + } +} + sealed class dev.kord.common.entity.optional/OptionalInt { // dev.kord.common.entity.optional/OptionalInt|null[0] final val asNullable // dev.kord.common.entity.optional/OptionalInt.asNullable|{}asNullable[0] final fun (): kotlin/Int? // dev.kord.common.entity.optional/OptionalInt.asNullable.|(){}[0] @@ -9312,12 +9390,18 @@ final object dev.kord.common/KordConstants { // dev.kord.common/KordConstants|nu final val dev.kord.common.entity.optional/asNullable // dev.kord.common.entity.optional/asNullable|@dev.kord.common.entity.optional.OptionalBoolean?{}asNullable[0] final fun (dev.kord.common.entity.optional/OptionalBoolean?).(): kotlin/Boolean? // dev.kord.common.entity.optional/asNullable.|@dev.kord.common.entity.optional.OptionalBoolean?(){}[0] +final val dev.kord.common.entity.optional/asNullable // dev.kord.common.entity.optional/asNullable|@dev.kord.common.entity.optional.OptionalDouble?{}asNullable[0] + final fun (dev.kord.common.entity.optional/OptionalDouble?).(): kotlin/Double? // dev.kord.common.entity.optional/asNullable.|@dev.kord.common.entity.optional.OptionalDouble?(){}[0] final val dev.kord.common.entity.optional/asNullable // dev.kord.common.entity.optional/asNullable|@dev.kord.common.entity.optional.OptionalInt?{}asNullable[0] final fun (dev.kord.common.entity.optional/OptionalInt?).(): kotlin/Int? // dev.kord.common.entity.optional/asNullable.|@dev.kord.common.entity.optional.OptionalInt?(){}[0] final val dev.kord.common.entity.optional/asNullable // dev.kord.common.entity.optional/asNullable|@dev.kord.common.entity.optional.OptionalLong?{}asNullable[0] final fun (dev.kord.common.entity.optional/OptionalLong?).(): kotlin/Long? // dev.kord.common.entity.optional/asNullable.|@dev.kord.common.entity.optional.OptionalLong?(){}[0] +final val dev.kord.common.entity.optional/missingIfNull // dev.kord.common.entity.optional/missingIfNull|@dev.kord.common.entity.Snowflake?{}missingIfNull[0] + final fun (dev.kord.common.entity/Snowflake?).(): dev.kord.common.entity.optional/OptionalSnowflake // dev.kord.common.entity.optional/missingIfNull.|@dev.kord.common.entity.Snowflake?(){}[0] final val dev.kord.common.entity.optional/value // dev.kord.common.entity.optional/value|@dev.kord.common.entity.optional.OptionalBoolean?{}value[0] final fun (dev.kord.common.entity.optional/OptionalBoolean?).(): kotlin/Boolean? // dev.kord.common.entity.optional/value.|@dev.kord.common.entity.optional.OptionalBoolean?(){}[0] +final val dev.kord.common.entity.optional/value // dev.kord.common.entity.optional/value|@dev.kord.common.entity.optional.OptionalDouble?{}value[0] + final fun (dev.kord.common.entity.optional/OptionalDouble?).(): kotlin/Double? // dev.kord.common.entity.optional/value.|@dev.kord.common.entity.optional.OptionalDouble?(){}[0] final val dev.kord.common.entity.optional/value // dev.kord.common.entity.optional/value|@dev.kord.common.entity.optional.OptionalInt?{}value[0] final fun (dev.kord.common.entity.optional/OptionalInt?).(): kotlin/Int? // dev.kord.common.entity.optional/value.|@dev.kord.common.entity.optional.OptionalInt?(){}[0] final val dev.kord.common.entity.optional/value // dev.kord.common.entity.optional/value|@dev.kord.common.entity.optional.OptionalLong?{}value[0] @@ -9331,12 +9415,16 @@ final val dev.kord.common.entity/ALL // dev.kord.common.entity/ALL|@dev.kord.com final fun (dev.kord.common.entity.optional/Optional).dev.kord.common.entity.optional/toPrimitive(): dev.kord.common.entity.optional/OptionalBoolean // dev.kord.common.entity.optional/toPrimitive|toPrimitive@dev.kord.common.entity.optional.Optional(){}[0] final fun (dev.kord.common.entity.optional/OptionalBoolean?).dev.kord.common.entity.optional/orElse(kotlin/Boolean): kotlin/Boolean // dev.kord.common.entity.optional/orElse|orElse@dev.kord.common.entity.optional.OptionalBoolean?(kotlin.Boolean){}[0] +final fun (dev.kord.common.entity.optional/OptionalDouble?).dev.kord.common.entity.optional/getOrThrow(): kotlin/Double // dev.kord.common.entity.optional/getOrThrow|getOrThrow@dev.kord.common.entity.optional.OptionalDouble?(){}[0] +final fun (dev.kord.common.entity.optional/OptionalDouble?).dev.kord.common.entity.optional/orElse(kotlin/Int): kotlin/Int // dev.kord.common.entity.optional/orElse|orElse@dev.kord.common.entity.optional.OptionalDouble?(kotlin.Int){}[0] final fun (dev.kord.common.entity.optional/OptionalInt?).dev.kord.common.entity.optional/getOrThrow(): kotlin/Int // dev.kord.common.entity.optional/getOrThrow|getOrThrow@dev.kord.common.entity.optional.OptionalInt?(){}[0] final fun (dev.kord.common.entity.optional/OptionalInt?).dev.kord.common.entity.optional/orElse(kotlin/Int): kotlin/Int // dev.kord.common.entity.optional/orElse|orElse@dev.kord.common.entity.optional.OptionalInt?(kotlin.Int){}[0] final fun (dev.kord.common.entity.optional/OptionalLong?).dev.kord.common.entity.optional/orElse(kotlin/Long): kotlin/Long // dev.kord.common.entity.optional/orElse|orElse@dev.kord.common.entity.optional.OptionalLong?(kotlin.Long){}[0] final fun (dev.kord.common.entity/Snowflake).dev.kord.common.entity.optional/optionalSnowflake(): dev.kord.common.entity.optional/OptionalSnowflake.Value // dev.kord.common.entity.optional/optionalSnowflake|optionalSnowflake@dev.kord.common.entity.Snowflake(){}[0] final fun (dev.kord.common.entity/Snowflake?).dev.kord.common.entity.optional/optionalSnowflake(): dev.kord.common.entity.optional/OptionalSnowflake.Value? // dev.kord.common.entity.optional/optionalSnowflake|optionalSnowflake@dev.kord.common.entity.Snowflake?(){}[0] final fun (kotlin.reflect/KMutableProperty0).dev.kord.common.entity.optional.delegate/delegate(): kotlin.properties/ReadWriteProperty // dev.kord.common.entity.optional.delegate/delegate|delegate@kotlin.reflect.KMutableProperty0(){}[0] +final fun (kotlin.reflect/KMutableProperty0).dev.kord.common.entity.optional.delegate/delegate(): kotlin.properties/ReadWriteProperty // dev.kord.common.entity.optional.delegate/delegate|delegate@kotlin.reflect.KMutableProperty0(){}[0] +final fun (kotlin.reflect/KMutableProperty0).dev.kord.common.entity.optional.delegate/delegate(): kotlin.properties/ReadWriteProperty // dev.kord.common.entity.optional.delegate/delegate|delegate@kotlin.reflect.KMutableProperty0(){}[0] final fun (kotlin.reflect/KMutableProperty0).dev.kord.common.entity.optional.delegate/delegate(): kotlin.properties/ReadWriteProperty // dev.kord.common.entity.optional.delegate/delegate|delegate@kotlin.reflect.KMutableProperty0(){}[0] final fun (kotlin.reflect/KMutableProperty0).dev.kord.common.entity.optional.delegate/delegate(): kotlin.properties/ReadWriteProperty // dev.kord.common.entity.optional.delegate/delegate|delegate@kotlin.reflect.KMutableProperty0(){}[0] final fun (kotlin.reflect/KMutableProperty0).dev.kord.common.entity.optional.delegate/delegate(): kotlin.properties/ReadWriteProperty // dev.kord.common.entity.optional.delegate/delegate|delegate@kotlin.reflect.KMutableProperty0(){}[0] @@ -9344,6 +9432,7 @@ final fun (kotlin.reflect/KMutableProperty0).dev.kord.common.entity.optional.delegate/delegate(): kotlin.properties/ReadWriteProperty // dev.kord.common.entity.optional.delegate/delegate|delegate@kotlin.reflect.KMutableProperty0(){}[0] final fun (kotlin.reflect/KMutableProperty0).dev.kord.common.entity.optional.delegate/delegate(): kotlin.properties/ReadWriteProperty // dev.kord.common.entity.optional.delegate/delegate|delegate@kotlin.reflect.KMutableProperty0(){}[0] final fun (kotlin/Boolean).dev.kord.common.entity.optional/optional(): dev.kord.common.entity.optional/OptionalBoolean.Value // dev.kord.common.entity.optional/optional|optional@kotlin.Boolean(){}[0] +final fun (kotlin/Double).dev.kord.common.entity.optional/optionalDouble(): dev.kord.common.entity.optional/OptionalDouble.Value // dev.kord.common.entity.optional/optionalDouble|optionalDouble@kotlin.Double(){}[0] final fun (kotlin/Int).dev.kord.common.entity.optional/optionalInt(): dev.kord.common.entity.optional/OptionalInt.Value // dev.kord.common.entity.optional/optionalInt|optionalInt@kotlin.Int(){}[0] final fun (kotlin/Long?).dev.kord.common.entity.optional/optional(): dev.kord.common.entity.optional/OptionalLong // dev.kord.common.entity.optional/optional|optional@kotlin.Long?(){}[0] final fun (kotlinx.datetime/Instant).dev.kord.common/toMessageFormat(dev.kord.common/DiscordTimestampStyle? = ...): kotlin/String // dev.kord.common/toMessageFormat|toMessageFormat@kotlinx.datetime.Instant(dev.kord.common.DiscordTimestampStyle?){}[0] @@ -9410,6 +9499,7 @@ final fun dev.kord.common.ratelimit/IntervalRateLimiter(kotlin/Int, kotlin.time/ final fun dev.kord.common/DiscordBitSet(kotlin/LongArray...): dev.kord.common/DiscordBitSet // dev.kord.common/DiscordBitSet|DiscordBitSet(kotlin.LongArray...){}[0] final fun dev.kord.common/DiscordBitSet(kotlin/String): dev.kord.common/DiscordBitSet // dev.kord.common/DiscordBitSet|DiscordBitSet(kotlin.String){}[0] final fun dev.kord.common/EmptyBitSet(): dev.kord.common/DiscordBitSet // dev.kord.common/EmptyBitSet|EmptyBitSet(){}[0] +final inline fun (dev.kord.common.entity.optional/OptionalDouble).dev.kord.common.entity.optional/map(kotlin/Function1): dev.kord.common.entity.optional/OptionalDouble // dev.kord.common.entity.optional/map|map@dev.kord.common.entity.optional.OptionalDouble(kotlin.Function1){}[0] final inline fun (dev.kord.common.entity.optional/OptionalInt).dev.kord.common.entity.optional/map(kotlin/Function1): dev.kord.common.entity.optional/OptionalInt // dev.kord.common.entity.optional/map|map@dev.kord.common.entity.optional.OptionalInt(kotlin.Function1){}[0] final inline fun <#A: kotlin/Any, #B: kotlin/Any> (dev.kord.common.entity.optional/Optional<#A>).dev.kord.common.entity.optional/flatMap(kotlin/Function1<#A, dev.kord.common.entity.optional/Optional<#B>>): dev.kord.common.entity.optional/Optional<#B> // dev.kord.common.entity.optional/flatMap|flatMap@dev.kord.common.entity.optional.Optional<0:0>(kotlin.Function1<0:0,dev.kord.common.entity.optional.Optional<0:1>>){0§;1§}[0] final inline fun <#A: kotlin/Any, #B: kotlin/Any> (dev.kord.common.entity.optional/Optional<#A>).dev.kord.common.entity.optional/map(kotlin/Function1<#A, #B>): dev.kord.common.entity.optional/Optional<#B> // dev.kord.common.entity.optional/map|map@dev.kord.common.entity.optional.Optional<0:0>(kotlin.Function1<0:0,0:1>){0§;1§}[0] diff --git a/common/src/commonMain/kotlin/entity/DiscordSoundboard.kt b/common/src/commonMain/kotlin/entity/DiscordSoundboard.kt new file mode 100644 index 00000000000..67ab2aa931c --- /dev/null +++ b/common/src/commonMain/kotlin/entity/DiscordSoundboard.kt @@ -0,0 +1,34 @@ +package dev.kord.common.entity + +import dev.kord.common.entity.optional.Optional +import dev.kord.common.entity.optional.OptionalSnowflake +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +/** + * Representation of a [Soundboard Sound](https://discord.com/developers/docs/resources/soundboard#soundboard-sound-object-soundboard-sound-structure). + * + * @property name the name of this sound + * @property soundId the id of this sound + * @property volume the volume of this sound, from `0.0` to `1.0` + * @property emojiId the id of this sound's custom emoji (if set) + * @property emojiName the unicode character of this sound's standard emoji (if set) + * @property guildId the id of the guild this sound is in, or [OptionalSnowflake.Missing] for default sounds + * @property available whether this sound can be used, may be false due to loss of Server Boosts + * @property user the user who created this sound, or [OptionalSnowflake.Missing] for default sounds + */ +@Serializable +public data class DiscordSoundboardSound( + val name: String, + @SerialName("sound_id") + val soundId: Snowflake, + val volume: Double, + @SerialName("emoji_id") + val emojiId: Snowflake?, + @SerialName("emoji_name") + val emojiName: String?, + @SerialName("guild_id") + val guildId: OptionalSnowflake = OptionalSnowflake.Missing, + val available: Boolean, + val user: Optional = Optional.Missing() +) diff --git a/common/src/commonMain/kotlin/entity/optional/OptionalDouble.kt b/common/src/commonMain/kotlin/entity/optional/OptionalDouble.kt new file mode 100644 index 00000000000..1debb63103e --- /dev/null +++ b/common/src/commonMain/kotlin/entity/optional/OptionalDouble.kt @@ -0,0 +1,144 @@ +package dev.kord.common.entity.optional + +import dev.kord.common.entity.optional.OptionalDouble.Missing +import dev.kord.common.entity.optional.OptionalDouble.Value +import kotlinx.serialization.KSerializer +import kotlinx.serialization.Serializable +import kotlinx.serialization.SerializationException +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 + +/** + * Represents a value that encapsulate [the optional and value state of an Int in the Discord API](https://discord.com/developers/docs/reference#nullable-and-optional-resource-fields). + * Specifically: + + * * [Missing] - an Int field that was not present in the serialized entity. + * * [Value] - an Int field that was assigned a non-null value in the serialized entity. + * + * > Note that there is no nullable variant present. Use Int? or `OptionalDouble?` for this case instead. + * + * The base class is (de)serializable with kotlinx.serialization. + * + * Note that kotlinx.serialization does **not** call serializers for values that are not + * present in the serialized format. `Optional` fields should have a default value of `OptionalDouble.Missing`: + * + * ```kotlin + * @Serializable + * public data class CreateSoundboardSoundRequest( + * val name: String, + * val sound: String, + * val volume: OptionalDouble? = OptionalDouble.Missing, + * @SerialName("emoji_id") + * val emojiId: OptionalSnowflake? = OptionalSnowflake.Missing, + * @SerialName("emoji_name") + * val emojiName: Optional = Optional.Missing(), + * ) + * ``` + */ +@Serializable(with = OptionalDouble.Serializer::class) +public sealed class OptionalDouble { + + public val asNullable: Double? + get() = when (this) { + Missing -> null + is Value -> value + } + + public val asOptional: Optional + get() = when (this) { + Missing -> Optional.Missing() + is Value -> Optional.Value(value) + } + + /** + * returns [default] if the optional is [Missing], or [Value.value] if is [Value]. + */ + public fun orElse(default: Double): Double = when (this) { + Missing -> default + is Value -> value + } + + /** + * Represents an Int field that was not present in the serialized entity. + */ + public object Missing : OptionalDouble() { + override fun toString(): String = "OptionalDouble.Missing" + } + + /** + * Represents a field that was assigned a non-null value in the serialized entity. + * Equality and hashcode is implemented through its [value]. + * + * @param value the value this optional wraps. + */ + public class Value(public val value: Double) : OptionalDouble() { + + /** + * Destructures this optional to its [value]. + */ + public operator fun component1(): Double = value + + override fun toString(): String = "Optional.Value(value=$value)" + + override fun equals(other: Any?): Boolean { + val value = other as? Value ?: return false + return value.value == this.value + } + + override fun hashCode(): Int = value.hashCode() + } + + internal object Serializer : KSerializer { + + override val descriptor: SerialDescriptor + get() = PrimitiveSerialDescriptor("Kord.OptionalDouble", PrimitiveKind.DOUBLE) + + override fun deserialize(decoder: Decoder): OptionalDouble = Value(decoder.decodeDouble()) + + override fun serialize(encoder: Encoder, value: OptionalDouble) = when (value) { + Missing -> throw SerializationException("missing values cannot be serialized") + is Value -> encoder.encodeDouble(value.value) + } + + } + +} + +/** + * returns `null` if this is `null` or [OptionalDouble.Missing], calls [OptionalDouble.Value.value] otherwise. + */ +public val OptionalDouble?.value: Double? + get() = when (this) { + is Value -> value + Missing, null -> null + } + +/** + * returns `null` if this is `null`, calls [OptionalDouble.asNullable] otherwise. + */ +public val OptionalDouble?.asNullable: Double? get() = this?.asNullable + +/** + * returns [default] if this is `null`, calls [OptionalDouble.asNullable] otherwise. + */ +public fun OptionalDouble?.orElse(default: Int): Int = this?.orElse(default) ?: default + +/** + * returns the value of the optional or throws a [IllegalStateException] if the optional doesn't contain a value or is `null`. + */ +public fun OptionalDouble?.getOrThrow(): Double = when (this) { + Missing, null -> throw IllegalStateException("Optional did not contain a value") + is Value -> value +} + + +@Suppress("RemoveRedundantQualifierName") +public fun Double.optionalDouble(): OptionalDouble.Value = OptionalDouble.Value(this) + +public inline fun OptionalDouble.map(mapper: (Double) -> Double): OptionalDouble = when (this) { + Missing -> Missing + is Value -> Value(mapper(value)) +} diff --git a/common/src/commonMain/kotlin/entity/optional/OptionalSnowflake.kt b/common/src/commonMain/kotlin/entity/optional/OptionalSnowflake.kt index f8fbbdb9ef9..0440ed5075d 100644 --- a/common/src/commonMain/kotlin/entity/optional/OptionalSnowflake.kt +++ b/common/src/commonMain/kotlin/entity/optional/OptionalSnowflake.kt @@ -105,6 +105,12 @@ public sealed class OptionalSnowflake { } } +public val Snowflake?.missingIfNull: OptionalSnowflake + get() = when(this) { + null -> OptionalSnowflake.Missing + else -> OptionalSnowflake.Value(this) + } + /** * returns `null` if this is `null` or [OptionalSnowflake.Missing], calls [OptionalSnowflake.Value.value] otherwise. */ diff --git a/common/src/commonMain/kotlin/entity/optional/delegate/OptionalDoubleDelegate.kt b/common/src/commonMain/kotlin/entity/optional/delegate/OptionalDoubleDelegate.kt new file mode 100644 index 00000000000..bdda75be78c --- /dev/null +++ b/common/src/commonMain/kotlin/entity/optional/delegate/OptionalDoubleDelegate.kt @@ -0,0 +1,38 @@ +package dev.kord.common.entity.optional.delegate + +import dev.kord.common.entity.optional.OptionalDouble +import dev.kord.common.entity.optional.optionalDouble +import dev.kord.common.entity.optional.value +import kotlin.js.JsName +import kotlin.jvm.JvmName +import kotlin.properties.ReadWriteProperty +import kotlin.reflect.KMutableProperty0 +import kotlin.reflect.KProperty + +@JsName("doubleDelegate") +public fun KMutableProperty0.delegate(): ReadWriteProperty = + object : ReadWriteProperty { + + override fun getValue(thisRef: Any?, property: KProperty<*>): Double? { + return this@delegate.get().value + } + + override fun setValue(thisRef: Any?, property: KProperty<*>, value: Double?) { + val optional = if (value == null) OptionalDouble.Missing + else OptionalDouble.Value(value) + this@delegate.set(optional) + } + } + +@JvmName("provideNullableDelegate") +public fun KMutableProperty0.delegate(): ReadWriteProperty = + object : ReadWriteProperty { + + override fun getValue(thisRef: Any?, property: KProperty<*>): Double? { + return this@delegate.get().value + } + + override fun setValue(thisRef: Any?, property: KProperty<*>, value: Double?) { + this@delegate.set(value?.optionalDouble()) + } + } diff --git a/common/src/commonTest/kotlin/json/SoundBoardTest.kt b/common/src/commonTest/kotlin/json/SoundBoardTest.kt new file mode 100644 index 00000000000..0d768a07192 --- /dev/null +++ b/common/src/commonTest/kotlin/json/SoundBoardTest.kt @@ -0,0 +1,43 @@ +package dev.kord.common.json + +import dev.kord.common.entity.DiscordSoundboardSound +import dev.kord.common.readFile +import kotlinx.coroutines.test.runTest +import kotlinx.serialization.json.Json +import kotlin.js.JsName +import kotlin.test.Test + +private suspend fun file(name: String): String = readFile("soundboard", name) + +class SoundBoardTest { + + @Test + @JsName("test1") + fun `test default soundboard sound serialization`() = runTest { + val sound = Json.decodeFromString(file("default")) + + with(sound) { + name shouldBe "quack" + soundId shouldBe "1" + volume shouldBe 1.0 + emojiId shouldBe null + emojiName shouldBe "🦆" + available shouldBe true + } + } + + @Test + @JsName("test2") + fun `test guild soundboard sound serialization`() = runTest { + val sound = Json.decodeFromString(file("guild")) + + with(sound) { + name shouldBe "Yay" + soundId shouldBe "1106714396018884649" + volume shouldBe 1.0 + emojiId shouldBe "989193655938064464" + emojiName shouldBe null + available shouldBe true + } + } +} diff --git a/common/src/commonTest/resources/json/soundboard/default.json b/common/src/commonTest/resources/json/soundboard/default.json new file mode 100644 index 00000000000..97086652d67 --- /dev/null +++ b/common/src/commonTest/resources/json/soundboard/default.json @@ -0,0 +1,8 @@ +{ + "name": "quack", + "sound_id": "1", + "volume": 1.0, + "emoji_id": null, + "emoji_name": "🦆", + "available": true +} \ No newline at end of file diff --git a/common/src/commonTest/resources/json/soundboard/guild.json b/common/src/commonTest/resources/json/soundboard/guild.json new file mode 100644 index 00000000000..7aff6acd51d --- /dev/null +++ b/common/src/commonTest/resources/json/soundboard/guild.json @@ -0,0 +1,9 @@ +{ + "name": "Yay", + "sound_id": "1106714396018884649", + "volume": 1, + "emoji_id": "989193655938064464", + "emoji_name": null, + "guild_id": "613425648685547541", + "available": true +} \ No newline at end of file diff --git a/core/api/core.api b/core/api/core.api index a038d4920bb..910486491a7 100644 --- a/core/api/core.api +++ b/core/api/core.api @@ -36,6 +36,7 @@ public final class dev/kord/core/Kord : kotlinx/coroutines/CoroutineScope { public final fun getChannel (Ldev/kord/common/entity/Snowflake;Ldev/kord/core/supplier/EntitySupplyStrategy;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; 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 getDefaultSoundboardSounds ()Lkotlinx/coroutines/flow/Flow; 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; @@ -88,6 +89,7 @@ public final class dev/kord/core/Kord : kotlinx/coroutines/CoroutineScope { public final fun login (Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun login$default (Ldev/kord/core/Kord;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public final fun logout (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public final fun requestSoundboardSounds (Ljava/util/List;)Lkotlinx/coroutines/flow/Flow; public final fun shutdown (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun toString ()Ljava/lang/String; public final fun updateApplicationRoleConnectionMetadataRecords (Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; @@ -180,6 +182,15 @@ public final class dev/kord/core/behavior/ChatInputCommandBehavior$DefaultImpls public static fun compareTo (Ldev/kord/core/behavior/ChatInputCommandBehavior;Ldev/kord/core/entity/Entity;)I } +public abstract interface class dev/kord/core/behavior/DefaultSoundboardSoundBehavior : dev/kord/core/behavior/SoundboardSoundBehavior { + public abstract fun send (Ldev/kord/core/behavior/channel/VoiceChannelBehavior;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; +} + +public final class dev/kord/core/behavior/DefaultSoundboardSoundBehavior$DefaultImpls { + public static fun compareTo (Ldev/kord/core/behavior/DefaultSoundboardSoundBehavior;Ldev/kord/core/entity/Entity;)I + public static fun send (Ldev/kord/core/behavior/DefaultSoundboardSoundBehavior;Ldev/kord/core/behavior/channel/VoiceChannelBehavior;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; +} + public abstract interface class dev/kord/core/behavior/GlobalApplicationCommandBehavior : dev/kord/core/behavior/ApplicationCommandBehavior { public abstract fun delete (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; } @@ -281,6 +292,9 @@ public abstract interface class dev/kord/core/behavior/GuildBehavior : dev/kord/ public abstract fun getRoleOrNull (Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public abstract fun getRoles ()Lkotlinx/coroutines/flow/Flow; public abstract fun getScheduledEvents ()Lkotlinx/coroutines/flow/Flow; + public abstract fun getSoundboardSound (Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun getSoundboardSoundOrNull (Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun getSoundboardSounds ()Lkotlinx/coroutines/flow/Flow; 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 getStickers ()Lkotlinx/coroutines/flow/Flow; @@ -298,6 +312,7 @@ public abstract interface class dev/kord/core/behavior/GuildBehavior : dev/kord/ public abstract fun leave (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public abstract fun prune (ILjava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public abstract fun requestMembers (Ldev/kord/gateway/RequestGuildMembers;)Lkotlinx/coroutines/flow/Flow; + public abstract fun requestSoundboardSounds ()Lkotlinx/coroutines/flow/Flow; public abstract fun unban (Ldev/kord/common/entity/Snowflake;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public abstract fun withStrategy (Ldev/kord/core/supplier/EntitySupplyStrategy;)Ldev/kord/core/behavior/GuildBehavior; } @@ -357,6 +372,9 @@ public final class dev/kord/core/behavior/GuildBehavior$DefaultImpls { public static fun getRoleOrNull (Ldev/kord/core/behavior/GuildBehavior;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static fun getRoles (Ldev/kord/core/behavior/GuildBehavior;)Lkotlinx/coroutines/flow/Flow; public static fun getScheduledEvents (Ldev/kord/core/behavior/GuildBehavior;)Lkotlinx/coroutines/flow/Flow; + public static fun getSoundboardSound (Ldev/kord/core/behavior/GuildBehavior;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static fun getSoundboardSoundOrNull (Ldev/kord/core/behavior/GuildBehavior;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static fun getSoundboardSounds (Ldev/kord/core/behavior/GuildBehavior;)Lkotlinx/coroutines/flow/Flow; public static fun getSticker (Ldev/kord/core/behavior/GuildBehavior;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static fun getStickerOrNull (Ldev/kord/core/behavior/GuildBehavior;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static fun getStickers (Ldev/kord/core/behavior/GuildBehavior;)Lkotlinx/coroutines/flow/Flow; @@ -376,6 +394,7 @@ public final class dev/kord/core/behavior/GuildBehavior$DefaultImpls { public static fun prune (Ldev/kord/core/behavior/GuildBehavior;ILjava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun prune$default (Ldev/kord/core/behavior/GuildBehavior;ILjava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static fun requestMembers (Ldev/kord/core/behavior/GuildBehavior;Ldev/kord/gateway/RequestGuildMembers;)Lkotlinx/coroutines/flow/Flow; + public static fun requestSoundboardSounds (Ldev/kord/core/behavior/GuildBehavior;)Lkotlinx/coroutines/flow/Flow; public static fun unban (Ldev/kord/core/behavior/GuildBehavior;Ldev/kord/common/entity/Snowflake;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun unban$default (Ldev/kord/core/behavior/GuildBehavior;Ldev/kord/common/entity/Snowflake;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static fun withStrategy (Ldev/kord/core/behavior/GuildBehavior;Ldev/kord/core/supplier/EntitySupplyStrategy;)Ldev/kord/core/behavior/GuildBehavior; @@ -411,6 +430,8 @@ public final class dev/kord/core/behavior/GuildBehaviorKt { public static final fun createRole (Ldev/kord/core/behavior/GuildBehavior;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun createRole$default (Ldev/kord/core/behavior/GuildBehavior;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun createScheduledEvent (Ldev/kord/core/behavior/GuildBehavior;Ljava/lang/String;Ldev/kord/common/entity/GuildScheduledEventPrivacyLevel;Lkotlinx/datetime/Instant;Ldev/kord/common/entity/ScheduledEntityType;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun createSoundboardSound (Ldev/kord/core/behavior/GuildBehavior;Ljava/lang/String;Ldev/kord/rest/Sound;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun createSoundboardSound$default (Ldev/kord/core/behavior/GuildBehavior;Ljava/lang/String;Ldev/kord/rest/Sound;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun createSpamAutoModerationRule (Ldev/kord/core/behavior/GuildBehavior;Ljava/lang/String;Ldev/kord/common/entity/AutoModerationRuleEventType;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun createSpamAutoModerationRule$default (Ldev/kord/core/behavior/GuildBehavior;Ljava/lang/String;Ldev/kord/common/entity/AutoModerationRuleEventType;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun createStageChannel (Ldev/kord/core/behavior/GuildBehavior;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; @@ -509,6 +530,30 @@ public final class dev/kord/core/behavior/GuildScheduledEventBehaviorKt { public static final fun edit (Ldev/kord/core/behavior/GuildScheduledEventBehavior;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; } +public abstract interface class dev/kord/core/behavior/GuildSoundboardSoundBehavior : dev/kord/core/behavior/SoundboardSoundBehavior { + public abstract fun asGuildSoundboardSound (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun asGuildSoundboardSoundOrNull (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun delete (Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun fetchGuildSoundboardSound (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun fetchGuildSoundboardSoundOrNull (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun getGuild ()Ldev/kord/core/behavior/GuildBehavior; + public abstract fun getGuildId ()Ldev/kord/common/entity/Snowflake; + public abstract fun send (Ldev/kord/core/behavior/channel/VoiceChannelBehavior;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun withStrategy (Ldev/kord/core/supplier/EntitySupplyStrategy;)Ldev/kord/core/behavior/GuildSoundboardSoundBehavior; +} + +public final class dev/kord/core/behavior/GuildSoundboardSoundBehavior$DefaultImpls { + public static fun asGuildSoundboardSound (Ldev/kord/core/behavior/GuildSoundboardSoundBehavior;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static fun asGuildSoundboardSoundOrNull (Ldev/kord/core/behavior/GuildSoundboardSoundBehavior;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static fun compareTo (Ldev/kord/core/behavior/GuildSoundboardSoundBehavior;Ldev/kord/core/entity/Entity;)I + public static fun delete (Ldev/kord/core/behavior/GuildSoundboardSoundBehavior;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun delete$default (Ldev/kord/core/behavior/GuildSoundboardSoundBehavior;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static fun fetchGuildSoundboardSound (Ldev/kord/core/behavior/GuildSoundboardSoundBehavior;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static fun fetchGuildSoundboardSoundOrNull (Ldev/kord/core/behavior/GuildSoundboardSoundBehavior;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static fun getGuild (Ldev/kord/core/behavior/GuildSoundboardSoundBehavior;)Ldev/kord/core/behavior/GuildBehavior; + public static fun send (Ldev/kord/core/behavior/GuildSoundboardSoundBehavior;Ldev/kord/core/behavior/channel/VoiceChannelBehavior;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; +} + public abstract interface class dev/kord/core/behavior/GuildUserCommandBehavior : dev/kord/core/behavior/GuildApplicationCommandBehavior, dev/kord/core/behavior/UserCommandBehavior { public abstract fun edit (Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; } @@ -683,6 +728,19 @@ public final class dev/kord/core/behavior/RoleBehaviorKt { public static final fun edit (Ldev/kord/core/behavior/RoleBehavior;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; } +public abstract interface class dev/kord/core/behavior/SoundboardSoundBehavior : dev/kord/core/entity/KordEntity, dev/kord/core/entity/Strategizable { + public abstract fun send (Ldev/kord/core/behavior/channel/VoiceChannelBehavior;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun withStrategy (Ldev/kord/core/supplier/EntitySupplyStrategy;)Ldev/kord/core/behavior/SoundboardSoundBehavior; +} + +public final class dev/kord/core/behavior/SoundboardSoundBehavior$DefaultImpls { + public static fun compareTo (Ldev/kord/core/behavior/SoundboardSoundBehavior;Ldev/kord/core/entity/Entity;)I +} + +public final class dev/kord/core/behavior/SoundboardSoundBehaviorKt { + public static final fun edit (Ldev/kord/core/behavior/GuildSoundboardSoundBehavior;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; +} + public abstract interface class dev/kord/core/behavior/StageInstanceBehavior : dev/kord/core/entity/KordEntity, dev/kord/core/entity/Strategizable { public abstract fun asStageInstance (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public abstract fun asStageInstanceOrNull (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; @@ -1554,6 +1612,7 @@ public abstract interface class dev/kord/core/behavior/channel/VoiceChannelBehav public abstract fun asChannelOrNull (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public abstract fun fetchChannel (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public abstract fun fetchChannelOrNull (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun playSound (Ldev/kord/core/behavior/SoundboardSoundBehavior;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public abstract fun withStrategy (Ldev/kord/core/supplier/EntitySupplyStrategy;)Ldev/kord/core/behavior/channel/VoiceChannelBehavior; } @@ -1583,6 +1642,7 @@ public final class dev/kord/core/behavior/channel/VoiceChannelBehavior$DefaultIm public static fun getPosition (Ldev/kord/core/behavior/channel/VoiceChannelBehavior;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static fun getVoiceStates (Ldev/kord/core/behavior/channel/VoiceChannelBehavior;)Lkotlinx/coroutines/flow/Flow; public static fun getWebhooks (Ldev/kord/core/behavior/channel/VoiceChannelBehavior;)Lkotlinx/coroutines/flow/Flow; + public static fun playSound (Ldev/kord/core/behavior/channel/VoiceChannelBehavior;Ldev/kord/core/behavior/SoundboardSoundBehavior;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static fun type (Ldev/kord/core/behavior/channel/VoiceChannelBehavior;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static fun typeUntil (Ldev/kord/core/behavior/channel/VoiceChannelBehavior;Lkotlin/time/TimeMark;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static fun typeUntil (Ldev/kord/core/behavior/channel/VoiceChannelBehavior;Lkotlinx/datetime/Instant;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; @@ -2285,6 +2345,7 @@ public final class dev/kord/core/cache/KordCacheBuilder { public final fun presences (Lkotlin/jvm/functions/Function2;)V public final fun roles (Lkotlin/jvm/functions/Function2;)V public final fun setDefaultGenerator (Lkotlin/jvm/functions/Function2;)V + public final fun soundboardSounds (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 @@ -5065,6 +5126,37 @@ public final class dev/kord/core/cache/data/SelectOptionData$Companion { public final fun serializer ()Lkotlinx/serialization/KSerializer; } +public final class dev/kord/core/cache/data/SoundboardSoundData { + public static final field Companion Ldev/kord/core/cache/data/SoundboardSoundData$Companion; + public fun (Ljava/lang/String;Ldev/kord/common/entity/Snowflake;DLdev/kord/common/entity/Snowflake;Ljava/lang/String;Ldev/kord/common/entity/optional/OptionalSnowflake;ZLdev/kord/common/entity/optional/Optional;)V + public synthetic fun (Ljava/lang/String;Ldev/kord/common/entity/Snowflake;DLdev/kord/common/entity/Snowflake;Ljava/lang/String;Ldev/kord/common/entity/optional/OptionalSnowflake;ZLdev/kord/common/entity/optional/Optional;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun getAvailable ()Z + public final fun getEmojiId ()Ldev/kord/common/entity/Snowflake; + public final fun getEmojiName ()Ljava/lang/String; + public final fun getGuildId ()Ldev/kord/common/entity/optional/OptionalSnowflake; + public final fun getId ()Ldev/kord/common/entity/Snowflake; + public final fun getName ()Ljava/lang/String; + public final fun getUser ()Ldev/kord/common/entity/optional/Optional; + public final fun getVolume ()D +} + +public synthetic class dev/kord/core/cache/data/SoundboardSoundData$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Ldev/kord/core/cache/data/SoundboardSoundData$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/kord/core/cache/data/SoundboardSoundData; + 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/SoundboardSoundData;)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/SoundboardSoundData$Companion { + public final fun from (Ldev/kord/common/entity/DiscordSoundboardSound;)Ldev/kord/core/cache/data/SoundboardSoundData; + 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/StageInstanceData { public static final field Companion Ldev/kord/core/cache/data/StageInstanceData$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;Ldev/kord/common/entity/Snowflake;)V @@ -6034,6 +6126,27 @@ public final class dev/kord/core/entity/ClientStatus$Client$Web : dev/kord/core/ public fun (Ldev/kord/common/entity/PresenceStatus;)V } +public final class dev/kord/core/entity/DefaultSoundboardSound : dev/kord/core/behavior/DefaultSoundboardSoundBehavior, dev/kord/core/entity/SoundboardSound { + public fun (Ldev/kord/core/cache/data/SoundboardSoundData;Ldev/kord/core/Kord;Ldev/kord/core/supplier/EntitySupplier;)V + public synthetic fun (Ldev/kord/core/cache/data/SoundboardSoundData;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 getAvailable ()Z + public fun getData ()Ldev/kord/core/cache/data/SoundboardSoundData; + public fun getEmojiName ()Ljava/lang/String; + public fun getId ()Ldev/kord/common/entity/Snowflake; + public fun getKord ()Ldev/kord/core/Kord; + public fun getName ()Ljava/lang/String; + public fun getSoundId ()Ldev/kord/common/entity/Snowflake; + public fun getSupplier ()Ldev/kord/core/supplier/EntitySupplier; + public fun getVolume ()D + public fun send (Ldev/kord/core/behavior/channel/VoiceChannelBehavior;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public synthetic fun withStrategy (Ldev/kord/core/supplier/EntitySupplyStrategy;)Ldev/kord/core/behavior/SoundboardSoundBehavior; + public fun withStrategy (Ldev/kord/core/supplier/EntitySupplyStrategy;)Ldev/kord/core/entity/DefaultSoundboardSound; + public synthetic fun withStrategy (Ldev/kord/core/supplier/EntitySupplyStrategy;)Ldev/kord/core/entity/SoundboardSound; + public synthetic fun withStrategy (Ldev/kord/core/supplier/EntitySupplyStrategy;)Ldev/kord/core/entity/Strategizable; +} + public final class dev/kord/core/entity/Embed : dev/kord/core/KordObject { public fun (Ldev/kord/core/cache/data/EmbedData;Ldev/kord/core/Kord;)V public final fun apply (Ldev/kord/rest/builder/message/EmbedBuilder;)V @@ -6304,6 +6417,9 @@ public final class dev/kord/core/entity/Guild : dev/kord/core/behavior/GuildBeha public final fun getSafetyAlertsChannel ()Ldev/kord/core/behavior/channel/TextChannelBehavior; public final fun getSafetyAlertsChannelId ()Ldev/kord/common/entity/Snowflake; public fun getScheduledEvents ()Lkotlinx/coroutines/flow/Flow; + public fun getSoundboardSound (Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public fun getSoundboardSoundOrNull (Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public fun getSoundboardSounds ()Lkotlinx/coroutines/flow/Flow; public final fun getSplash ()Ldev/kord/core/entity/Asset; public final fun getSplashHash ()Ljava/lang/String; public final fun getStageInstances ()Ljava/util/Set; @@ -6340,6 +6456,7 @@ public final class dev/kord/core/entity/Guild : dev/kord/core/behavior/GuildBeha public fun leave (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun prune (ILjava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun requestMembers (Ldev/kord/gateway/RequestGuildMembers;)Lkotlinx/coroutines/flow/Flow; + public fun requestSoundboardSounds ()Lkotlinx/coroutines/flow/Flow; public fun toString ()Ljava/lang/String; public fun unban (Ldev/kord/common/entity/Snowflake;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public synthetic fun withStrategy (Ldev/kord/core/supplier/EntitySupplyStrategy;)Ldev/kord/core/behavior/GuildBehavior; @@ -6510,6 +6627,37 @@ public final class dev/kord/core/entity/GuildScheduledEvent : dev/kord/core/beha public fun withStrategy (Ldev/kord/core/supplier/EntitySupplyStrategy;)Ldev/kord/core/entity/Strategizable; } +public final class dev/kord/core/entity/GuildSoundboardSound : dev/kord/core/behavior/GuildSoundboardSoundBehavior, dev/kord/core/entity/SoundboardSound { + public fun (Ldev/kord/core/cache/data/SoundboardSoundData;Ldev/kord/core/Kord;Ldev/kord/core/supplier/EntitySupplier;)V + public synthetic fun (Ldev/kord/core/cache/data/SoundboardSoundData;Ldev/kord/core/Kord;Ldev/kord/core/supplier/EntitySupplier;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public fun asGuildSoundboardSound (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public fun asGuildSoundboardSoundOrNull (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public fun compareTo (Ldev/kord/core/entity/Entity;)I + public synthetic fun compareTo (Ljava/lang/Object;)I + public fun delete (Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public fun fetchGuildSoundboardSound (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public fun fetchGuildSoundboardSoundOrNull (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public fun getAvailable ()Z + public fun getData ()Ldev/kord/core/cache/data/SoundboardSoundData; + public final fun getEmojiId ()Ldev/kord/common/entity/Snowflake; + public fun getEmojiName ()Ljava/lang/String; + public fun getGuild ()Ldev/kord/core/behavior/GuildBehavior; + public fun getGuildId ()Ldev/kord/common/entity/Snowflake; + public fun getId ()Ldev/kord/common/entity/Snowflake; + public fun getKord ()Ldev/kord/core/Kord; + public fun getName ()Ljava/lang/String; + public fun getSoundId ()Ldev/kord/common/entity/Snowflake; + public fun getSupplier ()Ldev/kord/core/supplier/EntitySupplier; + public final fun getUser ()Ldev/kord/core/entity/User; + public fun getVolume ()D + public fun send (Ldev/kord/core/behavior/channel/VoiceChannelBehavior;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public synthetic fun withStrategy (Ldev/kord/core/supplier/EntitySupplyStrategy;)Ldev/kord/core/behavior/GuildSoundboardSoundBehavior; + public synthetic fun withStrategy (Ldev/kord/core/supplier/EntitySupplyStrategy;)Ldev/kord/core/behavior/SoundboardSoundBehavior; + public fun withStrategy (Ldev/kord/core/supplier/EntitySupplyStrategy;)Ldev/kord/core/entity/GuildSoundboardSound; + public synthetic fun withStrategy (Ldev/kord/core/supplier/EntitySupplyStrategy;)Ldev/kord/core/entity/SoundboardSound; + public synthetic fun withStrategy (Ldev/kord/core/supplier/EntitySupplyStrategy;)Ldev/kord/core/entity/Strategizable; +} + public final class dev/kord/core/entity/GuildSticker : dev/kord/core/entity/Sticker, dev/kord/core/behavior/StickerBehavior { public fun (Ldev/kord/core/cache/data/StickerData;Ldev/kord/core/Kord;Ldev/kord/core/supplier/EntitySupplier;)V public synthetic fun (Ldev/kord/core/cache/data/StickerData;Ldev/kord/core/Kord;Ldev/kord/core/supplier/EntitySupplier;ILkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -6860,6 +7008,9 @@ public final class dev/kord/core/entity/PartialGuild : dev/kord/core/behavior/Gu public fun getRoleOrNull (Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun getRoles ()Lkotlinx/coroutines/flow/Flow; public fun getScheduledEvents ()Lkotlinx/coroutines/flow/Flow; + public fun getSoundboardSound (Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public fun getSoundboardSoundOrNull (Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public fun getSoundboardSounds ()Lkotlinx/coroutines/flow/Flow; public final fun getSplash ()Ldev/kord/core/entity/Asset; public final fun getSplashHash ()Ljava/lang/String; public fun getSticker (Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; @@ -6885,6 +7036,7 @@ public final class dev/kord/core/entity/PartialGuild : dev/kord/core/behavior/Gu public fun leave (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun prune (ILjava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun requestMembers (Ldev/kord/gateway/RequestGuildMembers;)Lkotlinx/coroutines/flow/Flow; + public fun requestSoundboardSounds ()Lkotlinx/coroutines/flow/Flow; public fun toString ()Ljava/lang/String; public fun unban (Ldev/kord/common/entity/Snowflake;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public synthetic fun withStrategy (Ldev/kord/core/supplier/EntitySupplyStrategy;)Ldev/kord/core/behavior/GuildBehavior; @@ -7085,6 +7237,25 @@ public final class dev/kord/core/entity/RoleTags : dev/kord/core/KordObject, dev public fun withStrategy (Ldev/kord/core/supplier/EntitySupplyStrategy;)Ldev/kord/core/entity/Strategizable; } +public abstract interface class dev/kord/core/entity/SoundboardSound : dev/kord/core/behavior/SoundboardSoundBehavior { + public abstract fun getAvailable ()Z + public abstract fun getData ()Ldev/kord/core/cache/data/SoundboardSoundData; + public abstract fun getEmojiName ()Ljava/lang/String; + public abstract fun getName ()Ljava/lang/String; + public abstract fun getSoundId ()Ldev/kord/common/entity/Snowflake; + public abstract fun getVolume ()D + public abstract fun withStrategy (Ldev/kord/core/supplier/EntitySupplyStrategy;)Ldev/kord/core/entity/SoundboardSound; +} + +public final class dev/kord/core/entity/SoundboardSound$DefaultImpls { + public static fun compareTo (Ldev/kord/core/entity/SoundboardSound;Ldev/kord/core/entity/Entity;)I + public static fun getAvailable (Ldev/kord/core/entity/SoundboardSound;)Z + public static fun getEmojiName (Ldev/kord/core/entity/SoundboardSound;)Ljava/lang/String; + public static fun getName (Ldev/kord/core/entity/SoundboardSound;)Ljava/lang/String; + public static fun getSoundId (Ldev/kord/core/entity/SoundboardSound;)Ldev/kord/common/entity/Snowflake; + public static fun getVolume (Ldev/kord/core/entity/SoundboardSound;)D +} + public final class dev/kord/core/entity/StageInstance : dev/kord/core/behavior/StageInstanceBehavior { public fun (Ldev/kord/core/cache/data/StageInstanceData;Ldev/kord/core/Kord;Ldev/kord/core/supplier/EntitySupplier;)V public synthetic fun (Ldev/kord/core/cache/data/StageInstanceData;Ldev/kord/core/Kord;Ldev/kord/core/supplier/EntitySupplier;ILkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -8767,6 +8938,7 @@ public final class dev/kord/core/entity/channel/VoiceChannel : dev/kord/core/beh public fun getVoiceStates ()Lkotlinx/coroutines/flow/Flow; public fun getWebhooks ()Lkotlinx/coroutines/flow/Flow; public fun hashCode ()I + public fun playSound (Ldev/kord/core/behavior/SoundboardSoundBehavior;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun toString ()Ljava/lang/String; public fun type (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun typeUntil (Lkotlin/time/TimeMark;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; @@ -12271,6 +12443,58 @@ public final class dev/kord/core/event/guild/GuildScheduledEventUserRemoveEvent public fun withStrategy (Ldev/kord/core/supplier/EntitySupplyStrategy;)Ldev/kord/core/event/guild/GuildScheduledEventUserRemoveEvent; } +public final class dev/kord/core/event/guild/GuildSoundboardSoundCreateEvent : dev/kord/core/event/Event { + public fun (Ldev/kord/core/entity/GuildSoundboardSound;ILjava/lang/Object;Ldev/kord/core/Kord;)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 getSound ()Ldev/kord/core/entity/GuildSoundboardSound; +} + +public final class dev/kord/core/event/guild/GuildSoundboardSoundDeletEvent : dev/kord/core/event/Event { + public fun (Ldev/kord/core/entity/GuildSoundboardSound;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;ILjava/lang/Object;Ldev/kord/core/Kord;)V + public fun getCustomContext ()Ljava/lang/Object; + public fun getGateway ()Ldev/kord/gateway/Gateway; + public final fun getGuildId ()Ldev/kord/common/entity/Snowflake; + public fun getKord ()Ldev/kord/core/Kord; + public final fun getOld ()Ldev/kord/core/entity/GuildSoundboardSound; + public fun getShard ()I + public final fun getSoundId ()Ldev/kord/common/entity/Snowflake; +} + +public final class dev/kord/core/event/guild/GuildSoundboardSoundUpdateEvent : dev/kord/core/event/Event { + public fun (Ldev/kord/core/entity/GuildSoundboardSound;Ldev/kord/core/entity/GuildSoundboardSound;ILjava/lang/Object;Ldev/kord/core/Kord;)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/GuildSoundboardSound; + public fun getShard ()I + public final fun getSound ()Ldev/kord/core/entity/GuildSoundboardSound; +} + +public final class dev/kord/core/event/guild/GuildSoundboardSoundsUpdateEvent : dev/kord/core/event/Event { + public fun (Ljava/util/List;ILjava/lang/Object;Ldev/kord/core/Kord;)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 getSounds ()Ljava/util/List; +} + +public final class dev/kord/core/event/guild/GuildSoundboardSoundsUpdateEvent$UpdatedGuildSoundboardSound { + public fun (Ldev/kord/core/entity/GuildSoundboardSound;Ldev/kord/core/entity/GuildSoundboardSound;)V + public final fun component1 ()Ldev/kord/core/entity/GuildSoundboardSound; + public final fun component2 ()Ldev/kord/core/entity/GuildSoundboardSound; + public final fun copy (Ldev/kord/core/entity/GuildSoundboardSound;Ldev/kord/core/entity/GuildSoundboardSound;)Ldev/kord/core/event/guild/GuildSoundboardSoundsUpdateEvent$UpdatedGuildSoundboardSound; + public static synthetic fun copy$default (Ldev/kord/core/event/guild/GuildSoundboardSoundsUpdateEvent$UpdatedGuildSoundboardSound;Ldev/kord/core/entity/GuildSoundboardSound;Ldev/kord/core/entity/GuildSoundboardSound;ILjava/lang/Object;)Ldev/kord/core/event/guild/GuildSoundboardSoundsUpdateEvent$UpdatedGuildSoundboardSound; + public fun equals (Ljava/lang/Object;)Z + public final fun getOld ()Ldev/kord/core/entity/GuildSoundboardSound; + public final fun getSound ()Ldev/kord/core/entity/GuildSoundboardSound; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + public final class dev/kord/core/event/guild/GuildUpdateEvent : dev/kord/core/event/Event { public fun (Ldev/kord/core/entity/Guild;Ldev/kord/core/entity/Guild;ILjava/lang/Object;)V public fun getCustomContext ()Ljava/lang/Object; @@ -12493,6 +12717,29 @@ public final class dev/kord/core/event/guild/MembersChunkEvent : dev/kord/core/e public fun withStrategy (Ldev/kord/core/supplier/EntitySupplyStrategy;)Ldev/kord/core/event/guild/MembersChunkEvent; } +public final class dev/kord/core/event/guild/SoundboardSounds : dev/kord/core/entity/Strategizable, dev/kord/core/event/Event { + public fun (Ljava/util/List;Ldev/kord/common/entity/Snowflake;ILjava/lang/Object;Ldev/kord/core/Kord;Ldev/kord/core/supplier/EntitySupplier;)V + public synthetic fun (Ljava/util/List;Ldev/kord/common/entity/Snowflake;ILjava/lang/Object;Ldev/kord/core/Kord;Ldev/kord/core/supplier/EntitySupplier;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public fun getCustomContext ()Ljava/lang/Object; + public fun getGateway ()Ldev/kord/gateway/Gateway; + public final fun getGuild (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public final fun getGuildId ()Ldev/kord/common/entity/Snowflake; + public fun getKord ()Ldev/kord/core/Kord; + public fun getShard ()I + public final fun getSounds ()Ljava/util/List; + public fun getSupplier ()Ldev/kord/core/supplier/EntitySupplier; + public fun withStrategy (Ldev/kord/core/supplier/EntitySupplyStrategy;)Ldev/kord/core/entity/Strategizable; +} + +public final class dev/kord/core/event/guild/VoiceChannelEffectSentEvent : dev/kord/core/event/Event { + public fun (Ldev/kord/gateway/VoiceChannelEffect;ILjava/lang/Object;Ldev/kord/core/Kord;)V + public fun getCustomContext ()Ljava/lang/Object; + public final fun getEffect ()Ldev/kord/gateway/VoiceChannelEffect; + public fun getGateway ()Ldev/kord/gateway/Gateway; + public fun getKord ()Ldev/kord/core/Kord; + public fun getShard ()I +} + public final class dev/kord/core/event/guild/VoiceServerUpdateEvent : dev/kord/core/entity/Strategizable, dev/kord/core/event/Event { public fun (Ljava/lang/String;Ldev/kord/common/entity/Snowflake;Ljava/lang/String;Ldev/kord/core/Kord;ILjava/lang/Object;Ldev/kord/core/supplier/EntitySupplier;)V public synthetic fun (Ljava/lang/String;Ldev/kord/common/entity/Snowflake;Ljava/lang/String;Ldev/kord/core/Kord;ILjava/lang/Object;Ldev/kord/core/supplier/EntitySupplier;ILkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -13392,6 +13639,7 @@ public final class dev/kord/core/exception/EntityNotFoundException$Companion { public final fun onboardingNotFound (Ldev/kord/common/entity/Snowflake;)Ljava/lang/Void; public final fun roleNotFound (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;)Ljava/lang/Void; public final fun selfNotFound ()Ljava/lang/Void; + public final fun soundboardSoundNotFound (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;)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; @@ -13825,6 +14073,9 @@ public final class dev/kord/core/supplier/CacheEntitySupplier : dev/kord/core/su public fun getGuildScheduledEventUsersAfter (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ljava/lang/Integer;)Lkotlinx/coroutines/flow/Flow; public fun getGuildScheduledEventUsersBefore (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ljava/lang/Integer;)Lkotlinx/coroutines/flow/Flow; public fun getGuildScheduledEvents (Ldev/kord/common/entity/Snowflake;)Lkotlinx/coroutines/flow/Flow; + public fun getGuildSoundboardSound (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public fun getGuildSoundboardSoundOrNull (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public fun getGuildSoundboardSounds (Ldev/kord/common/entity/Snowflake;)Lkotlinx/coroutines/flow/Flow; public fun getGuildSticker (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun getGuildStickerOrNull (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun getGuildStickers (Ldev/kord/common/entity/Snowflake;)Lkotlinx/coroutines/flow/Flow; @@ -13919,6 +14170,9 @@ public abstract interface class dev/kord/core/supplier/EntitySupplier { public abstract fun getGuildScheduledEventUsersAfter (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ljava/lang/Integer;)Lkotlinx/coroutines/flow/Flow; public abstract fun getGuildScheduledEventUsersBefore (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ljava/lang/Integer;)Lkotlinx/coroutines/flow/Flow; public abstract fun getGuildScheduledEvents (Ldev/kord/common/entity/Snowflake;)Lkotlinx/coroutines/flow/Flow; + public abstract fun getGuildSoundboardSound (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun getGuildSoundboardSoundOrNull (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun getGuildSoundboardSounds (Ldev/kord/common/entity/Snowflake;)Lkotlinx/coroutines/flow/Flow; public abstract fun getGuildSticker (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public abstract fun getGuildStickerOrNull (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public abstract fun getGuildStickers (Ldev/kord/common/entity/Snowflake;)Lkotlinx/coroutines/flow/Flow; @@ -13989,6 +14243,7 @@ public final class dev/kord/core/supplier/EntitySupplier$DefaultImpls { public static synthetic fun getGuildScheduledEventUsers$default (Ldev/kord/core/supplier/EntitySupplier;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ljava/lang/Integer;ILjava/lang/Object;)Lkotlinx/coroutines/flow/Flow; public static synthetic fun getGuildScheduledEventUsersAfter$default (Ldev/kord/core/supplier/EntitySupplier;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ljava/lang/Integer;ILjava/lang/Object;)Lkotlinx/coroutines/flow/Flow; public static synthetic fun getGuildScheduledEventUsersBefore$default (Ldev/kord/core/supplier/EntitySupplier;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ljava/lang/Integer;ILjava/lang/Object;)Lkotlinx/coroutines/flow/Flow; + public static fun getGuildSoundboardSound (Ldev/kord/core/supplier/EntitySupplier;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static fun getGuildSticker (Ldev/kord/core/supplier/EntitySupplier;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static fun getGuildWidget (Ldev/kord/core/supplier/EntitySupplier;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun getJoinedPrivateArchivedThreads$default (Ldev/kord/core/supplier/EntitySupplier;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ljava/lang/Integer;ILjava/lang/Object;)Lkotlinx/coroutines/flow/Flow; @@ -14082,6 +14337,9 @@ public final class dev/kord/core/supplier/RestEntitySupplier : dev/kord/core/sup public fun getGuildScheduledEventUsersAfter (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ljava/lang/Integer;)Lkotlinx/coroutines/flow/Flow; public fun getGuildScheduledEventUsersBefore (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ljava/lang/Integer;)Lkotlinx/coroutines/flow/Flow; public fun getGuildScheduledEvents (Ldev/kord/common/entity/Snowflake;)Lkotlinx/coroutines/flow/Flow; + public fun getGuildSoundboardSound (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public fun getGuildSoundboardSoundOrNull (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public fun getGuildSoundboardSounds (Ldev/kord/common/entity/Snowflake;)Lkotlinx/coroutines/flow/Flow; public fun getGuildSticker (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun getGuildStickerOrNull (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun getGuildStickers (Ldev/kord/common/entity/Snowflake;)Lkotlinx/coroutines/flow/Flow; @@ -14183,6 +14441,9 @@ public final class dev/kord/core/supplier/StoreEntitySupplier : dev/kord/core/su public fun getGuildScheduledEventUsersAfter (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ljava/lang/Integer;)Lkotlinx/coroutines/flow/Flow; public fun getGuildScheduledEventUsersBefore (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ljava/lang/Integer;)Lkotlinx/coroutines/flow/Flow; public fun getGuildScheduledEvents (Ldev/kord/common/entity/Snowflake;)Lkotlinx/coroutines/flow/Flow; + public fun getGuildSoundboardSound (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public fun getGuildSoundboardSoundOrNull (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public fun getGuildSoundboardSounds (Ldev/kord/common/entity/Snowflake;)Lkotlinx/coroutines/flow/Flow; public fun getGuildSticker (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun getGuildStickerOrNull (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun getGuildStickers (Ldev/kord/common/entity/Snowflake;)Lkotlinx/coroutines/flow/Flow; diff --git a/core/api/core.klib.api b/core/api/core.klib.api index 23bc8491c80..02ddbde0ea2 100644 --- a/core/api/core.klib.api +++ b/core/api/core.klib.api @@ -294,6 +294,7 @@ abstract interface dev.kord.core.behavior.channel/VoiceChannelBehavior : dev.kor open suspend fun asChannelOrNull(): dev.kord.core.entity.channel/VoiceChannel? // dev.kord.core.behavior.channel/VoiceChannelBehavior.asChannelOrNull|asChannelOrNull(){}[0] open suspend fun fetchChannel(): dev.kord.core.entity.channel/VoiceChannel // dev.kord.core.behavior.channel/VoiceChannelBehavior.fetchChannel|fetchChannel(){}[0] open suspend fun fetchChannelOrNull(): dev.kord.core.entity.channel/VoiceChannel? // dev.kord.core.behavior.channel/VoiceChannelBehavior.fetchChannelOrNull|fetchChannelOrNull(){}[0] + open suspend fun playSound(dev.kord.core.behavior/SoundboardSoundBehavior) // dev.kord.core.behavior.channel/VoiceChannelBehavior.playSound|playSound(dev.kord.core.behavior.SoundboardSoundBehavior){}[0] } abstract interface dev.kord.core.behavior.interaction.followup/EphemeralFollowupMessageBehavior : dev.kord.core.behavior.interaction.followup/FollowupMessageBehavior { // dev.kord.core.behavior.interaction.followup/EphemeralFollowupMessageBehavior|null[0] @@ -440,6 +441,10 @@ abstract interface dev.kord.core.behavior/ChatInputCommandBehavior : dev.kord.co abstract suspend fun edit(kotlin.coroutines/SuspendFunction1): dev.kord.core.entity.application/ChatInputCommandCommand // dev.kord.core.behavior/ChatInputCommandBehavior.edit|edit(kotlin.coroutines.SuspendFunction1){}[0] } +abstract interface dev.kord.core.behavior/DefaultSoundboardSoundBehavior : dev.kord.core.behavior/SoundboardSoundBehavior { // dev.kord.core.behavior/DefaultSoundboardSoundBehavior|null[0] + open suspend fun send(dev.kord.core.behavior.channel/VoiceChannelBehavior) // dev.kord.core.behavior/DefaultSoundboardSoundBehavior.send|send(dev.kord.core.behavior.channel.VoiceChannelBehavior){}[0] +} + abstract interface dev.kord.core.behavior/GlobalApplicationCommandBehavior : dev.kord.core.behavior/ApplicationCommandBehavior { // dev.kord.core.behavior/GlobalApplicationCommandBehavior|null[0] open suspend fun delete() // dev.kord.core.behavior/GlobalApplicationCommandBehavior.delete|delete(){}[0] } @@ -492,6 +497,8 @@ abstract interface dev.kord.core.behavior/GuildBehavior : dev.kord.core.entity/K open fun (): kotlinx.coroutines.flow/Flow // dev.kord.core.behavior/GuildBehavior.roles.|(){}[0] open val scheduledEvents // dev.kord.core.behavior/GuildBehavior.scheduledEvents|{}scheduledEvents[0] open fun (): kotlinx.coroutines.flow/Flow // dev.kord.core.behavior/GuildBehavior.scheduledEvents.|(){}[0] + open val soundboardSounds // dev.kord.core.behavior/GuildBehavior.soundboardSounds|{}soundboardSounds[0] + open fun (): kotlinx.coroutines.flow/Flow // dev.kord.core.behavior/GuildBehavior.soundboardSounds.|(){}[0] open val stickers // dev.kord.core.behavior/GuildBehavior.stickers|{}stickers[0] open fun (): kotlinx.coroutines.flow/Flow // dev.kord.core.behavior/GuildBehavior.stickers.|(){}[0] open val templates // dev.kord.core.behavior/GuildBehavior.templates|{}templates[0] @@ -504,6 +511,7 @@ abstract interface dev.kord.core.behavior/GuildBehavior : dev.kord.core.entity/K open fun getApplicationCommands(kotlin/Boolean? = ...): kotlinx.coroutines.flow/Flow // dev.kord.core.behavior/GuildBehavior.getApplicationCommands|getApplicationCommands(kotlin.Boolean?){}[0] open fun getMembers(kotlin/String, kotlin/Int = ...): kotlinx.coroutines.flow/Flow // dev.kord.core.behavior/GuildBehavior.getMembers|getMembers(kotlin.String;kotlin.Int){}[0] open fun requestMembers(dev.kord.gateway/RequestGuildMembers): kotlinx.coroutines.flow/Flow // dev.kord.core.behavior/GuildBehavior.requestMembers|requestMembers(dev.kord.gateway.RequestGuildMembers){}[0] + open fun requestSoundboardSounds(): kotlinx.coroutines.flow/Flow // dev.kord.core.behavior/GuildBehavior.requestSoundboardSounds|requestSoundboardSounds(){}[0] open fun withStrategy(dev.kord.core.supplier/EntitySupplyStrategy<*>): dev.kord.core.behavior/GuildBehavior // dev.kord.core.behavior/GuildBehavior.withStrategy|withStrategy(dev.kord.core.supplier.EntitySupplyStrategy<*>){}[0] open suspend fun asGuild(): dev.kord.core.entity/Guild // dev.kord.core.behavior/GuildBehavior.asGuild|asGuild(){}[0] open suspend fun asGuildOrNull(): dev.kord.core.entity/Guild? // dev.kord.core.behavior/GuildBehavior.asGuildOrNull|asGuildOrNull(){}[0] @@ -535,6 +543,8 @@ abstract interface dev.kord.core.behavior/GuildBehavior : dev.kord.core.entity/K open suspend fun getPruneCount(kotlin/Int = ...): kotlin/Int // dev.kord.core.behavior/GuildBehavior.getPruneCount|getPruneCount(kotlin.Int){}[0] open suspend fun getRole(dev.kord.common.entity/Snowflake): dev.kord.core.entity/Role // dev.kord.core.behavior/GuildBehavior.getRole|getRole(dev.kord.common.entity.Snowflake){}[0] open suspend fun getRoleOrNull(dev.kord.common.entity/Snowflake): dev.kord.core.entity/Role? // dev.kord.core.behavior/GuildBehavior.getRoleOrNull|getRoleOrNull(dev.kord.common.entity.Snowflake){}[0] + open suspend fun getSoundboardSound(dev.kord.common.entity/Snowflake): dev.kord.core.entity/GuildSoundboardSound // dev.kord.core.behavior/GuildBehavior.getSoundboardSound|getSoundboardSound(dev.kord.common.entity.Snowflake){}[0] + open suspend fun getSoundboardSoundOrNull(dev.kord.common.entity/Snowflake): dev.kord.core.entity/GuildSoundboardSound? // dev.kord.core.behavior/GuildBehavior.getSoundboardSoundOrNull|getSoundboardSoundOrNull(dev.kord.common.entity.Snowflake){}[0] open suspend fun getSticker(dev.kord.common.entity/Snowflake): dev.kord.core.entity/GuildSticker // dev.kord.core.behavior/GuildBehavior.getSticker|getSticker(dev.kord.common.entity.Snowflake){}[0] open suspend fun getStickerOrNull(dev.kord.common.entity/Snowflake): dev.kord.core.entity/GuildSticker? // dev.kord.core.behavior/GuildBehavior.getStickerOrNull|getStickerOrNull(dev.kord.common.entity.Snowflake){}[0] open suspend fun getTemplate(kotlin/String): dev.kord.core.entity/Template // dev.kord.core.behavior/GuildBehavior.getTemplate|getTemplate(kotlin.String){}[0] @@ -587,6 +597,21 @@ abstract interface dev.kord.core.behavior/GuildScheduledEventBehavior : dev.kord open suspend fun fetchGuildScheduledEventOrNull(): dev.kord.core.entity/GuildScheduledEvent? // dev.kord.core.behavior/GuildScheduledEventBehavior.fetchGuildScheduledEventOrNull|fetchGuildScheduledEventOrNull(){}[0] } +abstract interface dev.kord.core.behavior/GuildSoundboardSoundBehavior : dev.kord.core.behavior/SoundboardSoundBehavior { // dev.kord.core.behavior/GuildSoundboardSoundBehavior|null[0] + abstract val guildId // dev.kord.core.behavior/GuildSoundboardSoundBehavior.guildId|{}guildId[0] + abstract fun (): dev.kord.common.entity/Snowflake // dev.kord.core.behavior/GuildSoundboardSoundBehavior.guildId.|(){}[0] + open val guild // dev.kord.core.behavior/GuildSoundboardSoundBehavior.guild|{}guild[0] + open fun (): dev.kord.core.behavior/GuildBehavior // dev.kord.core.behavior/GuildSoundboardSoundBehavior.guild.|(){}[0] + + abstract fun withStrategy(dev.kord.core.supplier/EntitySupplyStrategy<*>): dev.kord.core.behavior/GuildSoundboardSoundBehavior // dev.kord.core.behavior/GuildSoundboardSoundBehavior.withStrategy|withStrategy(dev.kord.core.supplier.EntitySupplyStrategy<*>){}[0] + open suspend fun asGuildSoundboardSound(): dev.kord.core.entity/GuildSoundboardSound // dev.kord.core.behavior/GuildSoundboardSoundBehavior.asGuildSoundboardSound|asGuildSoundboardSound(){}[0] + open suspend fun asGuildSoundboardSoundOrNull(): dev.kord.core.entity/GuildSoundboardSound? // dev.kord.core.behavior/GuildSoundboardSoundBehavior.asGuildSoundboardSoundOrNull|asGuildSoundboardSoundOrNull(){}[0] + open suspend fun delete(kotlin/String? = ...) // dev.kord.core.behavior/GuildSoundboardSoundBehavior.delete|delete(kotlin.String?){}[0] + open suspend fun fetchGuildSoundboardSound(): dev.kord.core.entity/GuildSoundboardSound // dev.kord.core.behavior/GuildSoundboardSoundBehavior.fetchGuildSoundboardSound|fetchGuildSoundboardSound(){}[0] + open suspend fun fetchGuildSoundboardSoundOrNull(): dev.kord.core.entity/GuildSoundboardSound? // dev.kord.core.behavior/GuildSoundboardSoundBehavior.fetchGuildSoundboardSoundOrNull|fetchGuildSoundboardSoundOrNull(){}[0] + open suspend fun send(dev.kord.core.behavior.channel/VoiceChannelBehavior) // dev.kord.core.behavior/GuildSoundboardSoundBehavior.send|send(dev.kord.core.behavior.channel.VoiceChannelBehavior){}[0] +} + abstract interface dev.kord.core.behavior/GuildUserCommandBehavior : dev.kord.core.behavior/GuildApplicationCommandBehavior, dev.kord.core.behavior/UserCommandBehavior { // dev.kord.core.behavior/GuildUserCommandBehavior|null[0] open suspend fun edit(kotlin.coroutines/SuspendFunction1): dev.kord.core.entity.application/GuildUserCommand // dev.kord.core.behavior/GuildUserCommandBehavior.edit|edit(kotlin.coroutines.SuspendFunction1){}[0] } @@ -662,6 +687,11 @@ abstract interface dev.kord.core.behavior/RoleBehavior : dev.kord.core.entity/Ko open suspend fun getPosition(): kotlin/Int // dev.kord.core.behavior/RoleBehavior.getPosition|getPosition(){}[0] } +abstract interface dev.kord.core.behavior/SoundboardSoundBehavior : dev.kord.core.entity/KordEntity, dev.kord.core.entity/Strategizable { // dev.kord.core.behavior/SoundboardSoundBehavior|null[0] + abstract fun withStrategy(dev.kord.core.supplier/EntitySupplyStrategy<*>): dev.kord.core.behavior/SoundboardSoundBehavior // dev.kord.core.behavior/SoundboardSoundBehavior.withStrategy|withStrategy(dev.kord.core.supplier.EntitySupplyStrategy<*>){}[0] + abstract suspend fun send(dev.kord.core.behavior.channel/VoiceChannelBehavior) // dev.kord.core.behavior/SoundboardSoundBehavior.send|send(dev.kord.core.behavior.channel.VoiceChannelBehavior){}[0] +} + abstract interface dev.kord.core.behavior/StageInstanceBehavior : dev.kord.core.entity/KordEntity, dev.kord.core.entity/Strategizable { // dev.kord.core.behavior/StageInstanceBehavior|null[0] abstract val channelId // dev.kord.core.behavior/StageInstanceBehavior.channelId|{}channelId[0] abstract fun (): dev.kord.common.entity/Snowflake // dev.kord.core.behavior/StageInstanceBehavior.channelId.|(){}[0] @@ -868,6 +898,23 @@ abstract interface dev.kord.core.entity/Entity : kotlin/Comparable(): dev.kord.core.cache.data/SoundboardSoundData // dev.kord.core.entity/SoundboardSound.data.|(){}[0] + open val available // dev.kord.core.entity/SoundboardSound.available|{}available[0] + open fun (): kotlin/Boolean // dev.kord.core.entity/SoundboardSound.available.|(){}[0] + open val emojiName // dev.kord.core.entity/SoundboardSound.emojiName|{}emojiName[0] + open fun (): kotlin/String? // dev.kord.core.entity/SoundboardSound.emojiName.|(){}[0] + open val name // dev.kord.core.entity/SoundboardSound.name|{}name[0] + open fun (): kotlin/String // dev.kord.core.entity/SoundboardSound.name.|(){}[0] + open val soundId // dev.kord.core.entity/SoundboardSound.soundId|{}soundId[0] + open fun (): dev.kord.common.entity/Snowflake // dev.kord.core.entity/SoundboardSound.soundId.|(){}[0] + open val volume // dev.kord.core.entity/SoundboardSound.volume|{}volume[0] + open fun (): kotlin/Double // dev.kord.core.entity/SoundboardSound.volume.|(){}[0] + + abstract fun withStrategy(dev.kord.core.supplier/EntitySupplyStrategy<*>): dev.kord.core.entity/SoundboardSound // dev.kord.core.entity/SoundboardSound.withStrategy|withStrategy(dev.kord.core.supplier.EntitySupplyStrategy<*>){}[0] +} + abstract interface dev.kord.core.entity/Strategizable { // dev.kord.core.entity/Strategizable|null[0] abstract val supplier // dev.kord.core.entity/Strategizable.supplier|{}supplier[0] abstract fun (): dev.kord.core.supplier/EntitySupplier // dev.kord.core.entity/Strategizable.supplier.|(){}[0] @@ -961,6 +1008,7 @@ abstract interface dev.kord.core.supplier/EntitySupplier { // dev.kord.core.supp abstract fun getGuildScheduledEventUsersAfter(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake, kotlin/Int? = ...): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/EntitySupplier.getGuildScheduledEventUsersAfter|getGuildScheduledEventUsersAfter(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;kotlin.Int?){}[0] abstract fun getGuildScheduledEventUsersBefore(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake, kotlin/Int? = ...): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/EntitySupplier.getGuildScheduledEventUsersBefore|getGuildScheduledEventUsersBefore(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;kotlin.Int?){}[0] abstract fun getGuildScheduledEvents(dev.kord.common.entity/Snowflake): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/EntitySupplier.getGuildScheduledEvents|getGuildScheduledEvents(dev.kord.common.entity.Snowflake){}[0] + abstract fun getGuildSoundboardSounds(dev.kord.common.entity/Snowflake): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/EntitySupplier.getGuildSoundboardSounds|getGuildSoundboardSounds(dev.kord.common.entity.Snowflake){}[0] abstract fun getGuildStickers(dev.kord.common.entity/Snowflake): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/EntitySupplier.getGuildStickers|getGuildStickers(dev.kord.common.entity.Snowflake){}[0] abstract fun getGuildVoiceRegions(dev.kord.common.entity/Snowflake): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/EntitySupplier.getGuildVoiceRegions|getGuildVoiceRegions(dev.kord.common.entity.Snowflake){}[0] abstract fun getGuildWebhooks(dev.kord.common.entity/Snowflake): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/EntitySupplier.getGuildWebhooks|getGuildWebhooks(dev.kord.common.entity.Snowflake){}[0] @@ -985,6 +1033,7 @@ abstract interface dev.kord.core.supplier/EntitySupplier { // dev.kord.core.supp abstract suspend fun getGuildOrNull(dev.kord.common.entity/Snowflake): dev.kord.core.entity/Guild? // dev.kord.core.supplier/EntitySupplier.getGuildOrNull|getGuildOrNull(dev.kord.common.entity.Snowflake){}[0] abstract suspend fun getGuildPreviewOrNull(dev.kord.common.entity/Snowflake): dev.kord.core.entity/GuildPreview? // dev.kord.core.supplier/EntitySupplier.getGuildPreviewOrNull|getGuildPreviewOrNull(dev.kord.common.entity.Snowflake){}[0] abstract suspend fun getGuildScheduledEventOrNull(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake): dev.kord.core.entity/GuildScheduledEvent? // dev.kord.core.supplier/EntitySupplier.getGuildScheduledEventOrNull|getGuildScheduledEventOrNull(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake){}[0] + abstract suspend fun getGuildSoundboardSoundOrNull(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake): dev.kord.core.entity/GuildSoundboardSound? // dev.kord.core.supplier/EntitySupplier.getGuildSoundboardSoundOrNull|getGuildSoundboardSoundOrNull(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake){}[0] abstract suspend fun getGuildStickerOrNull(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake): dev.kord.core.entity/GuildSticker? // dev.kord.core.supplier/EntitySupplier.getGuildStickerOrNull|getGuildStickerOrNull(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake){}[0] abstract suspend fun getGuildWidgetOrNull(dev.kord.common.entity/Snowflake): dev.kord.core.entity/GuildWidget? // dev.kord.core.supplier/EntitySupplier.getGuildWidgetOrNull|getGuildWidgetOrNull(dev.kord.common.entity.Snowflake){}[0] abstract suspend fun getMemberOrNull(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake): dev.kord.core.entity/Member? // dev.kord.core.supplier/EntitySupplier.getMemberOrNull|getMemberOrNull(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake){}[0] @@ -1012,6 +1061,7 @@ abstract interface dev.kord.core.supplier/EntitySupplier { // dev.kord.core.supp open suspend fun getGuildBan(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake): dev.kord.core.entity/Ban // dev.kord.core.supplier/EntitySupplier.getGuildBan|getGuildBan(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake){}[0] open suspend fun getGuildPreview(dev.kord.common.entity/Snowflake): dev.kord.core.entity/GuildPreview // dev.kord.core.supplier/EntitySupplier.getGuildPreview|getGuildPreview(dev.kord.common.entity.Snowflake){}[0] open suspend fun getGuildScheduledEvent(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake): dev.kord.core.entity/GuildScheduledEvent // dev.kord.core.supplier/EntitySupplier.getGuildScheduledEvent|getGuildScheduledEvent(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake){}[0] + open suspend fun getGuildSoundboardSound(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake): dev.kord.core.entity/GuildSoundboardSound // dev.kord.core.supplier/EntitySupplier.getGuildSoundboardSound|getGuildSoundboardSound(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake){}[0] open suspend fun getGuildSticker(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake): dev.kord.core.entity/GuildSticker // dev.kord.core.supplier/EntitySupplier.getGuildSticker|getGuildSticker(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake){}[0] open suspend fun getGuildWidget(dev.kord.common.entity/Snowflake): dev.kord.core.entity/GuildWidget // dev.kord.core.supplier/EntitySupplier.getGuildWidget|getGuildWidget(dev.kord.common.entity.Snowflake){}[0] open suspend fun getMember(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake): dev.kord.core.entity/Member // dev.kord.core.supplier/EntitySupplier.getMember|getMember(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake){}[0] @@ -4890,6 +4940,45 @@ final class dev.kord.core.cache.data/SelectOptionData { // dev.kord.core.cache.d } } +final class dev.kord.core.cache.data/SoundboardSoundData { // dev.kord.core.cache.data/SoundboardSoundData|null[0] + constructor (kotlin/String, dev.kord.common.entity/Snowflake, kotlin/Double, dev.kord.common.entity/Snowflake?, kotlin/String?, dev.kord.common.entity.optional/OptionalSnowflake = ..., kotlin/Boolean, dev.kord.common.entity.optional/Optional = ...) // dev.kord.core.cache.data/SoundboardSoundData.|(kotlin.String;dev.kord.common.entity.Snowflake;kotlin.Double;dev.kord.common.entity.Snowflake?;kotlin.String?;dev.kord.common.entity.optional.OptionalSnowflake;kotlin.Boolean;dev.kord.common.entity.optional.Optional){}[0] + + final val available // dev.kord.core.cache.data/SoundboardSoundData.available|{}available[0] + final fun (): kotlin/Boolean // dev.kord.core.cache.data/SoundboardSoundData.available.|(){}[0] + final val emojiId // dev.kord.core.cache.data/SoundboardSoundData.emojiId|{}emojiId[0] + final fun (): dev.kord.common.entity/Snowflake? // dev.kord.core.cache.data/SoundboardSoundData.emojiId.|(){}[0] + final val emojiName // dev.kord.core.cache.data/SoundboardSoundData.emojiName|{}emojiName[0] + final fun (): kotlin/String? // dev.kord.core.cache.data/SoundboardSoundData.emojiName.|(){}[0] + final val guildId // dev.kord.core.cache.data/SoundboardSoundData.guildId|{}guildId[0] + final fun (): dev.kord.common.entity.optional/OptionalSnowflake // dev.kord.core.cache.data/SoundboardSoundData.guildId.|(){}[0] + final val id // dev.kord.core.cache.data/SoundboardSoundData.id|{}id[0] + final fun (): dev.kord.common.entity/Snowflake // dev.kord.core.cache.data/SoundboardSoundData.id.|(){}[0] + final val name // dev.kord.core.cache.data/SoundboardSoundData.name|{}name[0] + final fun (): kotlin/String // dev.kord.core.cache.data/SoundboardSoundData.name.|(){}[0] + final val user // dev.kord.core.cache.data/SoundboardSoundData.user|{}user[0] + final fun (): dev.kord.common.entity.optional/Optional // dev.kord.core.cache.data/SoundboardSoundData.user.|(){}[0] + final val volume // dev.kord.core.cache.data/SoundboardSoundData.volume|{}volume[0] + final fun (): kotlin/Double // dev.kord.core.cache.data/SoundboardSoundData.volume.|(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // dev.kord.core.cache.data/SoundboardSoundData.$serializer|null[0] + final val descriptor // dev.kord.core.cache.data/SoundboardSoundData.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // dev.kord.core.cache.data/SoundboardSoundData.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // dev.kord.core.cache.data/SoundboardSoundData.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): dev.kord.core.cache.data/SoundboardSoundData // dev.kord.core.cache.data/SoundboardSoundData.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, dev.kord.core.cache.data/SoundboardSoundData) // dev.kord.core.cache.data/SoundboardSoundData.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;dev.kord.core.cache.data.SoundboardSoundData){}[0] + } + + final object Companion { // dev.kord.core.cache.data/SoundboardSoundData.Companion|null[0] + final val $childSerializers // dev.kord.core.cache.data/SoundboardSoundData.Companion.$childSerializers|{}$childSerializers[0] + final val description // dev.kord.core.cache.data/SoundboardSoundData.Companion.description|{}description[0] + final fun (): dev.kord.cache.api.data/DataDescription // dev.kord.core.cache.data/SoundboardSoundData.Companion.description.|(){}[0] + + final fun from(dev.kord.common.entity/DiscordSoundboardSound): dev.kord.core.cache.data/SoundboardSoundData // dev.kord.core.cache.data/SoundboardSoundData.Companion.from|from(dev.kord.common.entity.DiscordSoundboardSound){}[0] + final fun serializer(): kotlinx.serialization/KSerializer // dev.kord.core.cache.data/SoundboardSoundData.Companion.serializer|serializer(){}[0] + } +} + final class dev.kord.core.cache.data/StageInstanceData { // dev.kord.core.cache.data/StageInstanceData|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, dev.kord.common.entity/Snowflake?) // dev.kord.core.cache.data/StageInstanceData.|(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;kotlin.String;dev.kord.common.entity.StageInstancePrivacyLevel;dev.kord.common.entity.Snowflake?){}[0] @@ -5747,6 +5836,7 @@ final class dev.kord.core.cache/KordCacheBuilder { // dev.kord.core.cache/KordCa 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 soundboardSounds(kotlin/Function2, dev.kord.cache.api/DataEntryCache>) // dev.kord.core.cache/KordCacheBuilder.soundboardSounds|soundboardSounds(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] @@ -7387,6 +7477,23 @@ final class dev.kord.core.entity/ClientStatus { // dev.kord.core.entity/ClientSt } } +final class dev.kord.core.entity/DefaultSoundboardSound : dev.kord.core.behavior/DefaultSoundboardSoundBehavior, dev.kord.core.entity/SoundboardSound { // dev.kord.core.entity/DefaultSoundboardSound|null[0] + constructor (dev.kord.core.cache.data/SoundboardSoundData, dev.kord.core/Kord, dev.kord.core.supplier/EntitySupplier = ...) // dev.kord.core.entity/DefaultSoundboardSound.|(dev.kord.core.cache.data.SoundboardSoundData;dev.kord.core.Kord;dev.kord.core.supplier.EntitySupplier){}[0] + + final val data // dev.kord.core.entity/DefaultSoundboardSound.data|{}data[0] + final fun (): dev.kord.core.cache.data/SoundboardSoundData // dev.kord.core.entity/DefaultSoundboardSound.data.|(){}[0] + final val emojiName // dev.kord.core.entity/DefaultSoundboardSound.emojiName|{}emojiName[0] + final fun (): kotlin/String // dev.kord.core.entity/DefaultSoundboardSound.emojiName.|(){}[0] + final val id // dev.kord.core.entity/DefaultSoundboardSound.id|{}id[0] + final fun (): dev.kord.common.entity/Snowflake // dev.kord.core.entity/DefaultSoundboardSound.id.|(){}[0] + final val kord // dev.kord.core.entity/DefaultSoundboardSound.kord|{}kord[0] + final fun (): dev.kord.core/Kord // dev.kord.core.entity/DefaultSoundboardSound.kord.|(){}[0] + final val supplier // dev.kord.core.entity/DefaultSoundboardSound.supplier|{}supplier[0] + final fun (): dev.kord.core.supplier/EntitySupplier // dev.kord.core.entity/DefaultSoundboardSound.supplier.|(){}[0] + + final fun withStrategy(dev.kord.core.supplier/EntitySupplyStrategy<*>): dev.kord.core.entity/DefaultSoundboardSound // dev.kord.core.entity/DefaultSoundboardSound.withStrategy|withStrategy(dev.kord.core.supplier.EntitySupplyStrategy<*>){}[0] +} + final class dev.kord.core.entity/Embed : dev.kord.core/KordObject { // dev.kord.core.entity/Embed|null[0] constructor (dev.kord.core.cache.data/EmbedData, dev.kord.core/Kord) // dev.kord.core.entity/Embed.|(dev.kord.core.cache.data.EmbedData;dev.kord.core.Kord){}[0] @@ -7977,6 +8084,31 @@ final class dev.kord.core.entity/GuildScheduledEvent : dev.kord.core.behavior/Gu final suspend inline fun <#A1: reified dev.kord.core.entity.channel/TopGuildChannel> getChannelOfOrNull(): #A1? // dev.kord.core.entity/GuildScheduledEvent.getChannelOfOrNull|getChannelOfOrNull(){0§}[0] } +final class dev.kord.core.entity/GuildSoundboardSound : dev.kord.core.behavior/GuildSoundboardSoundBehavior, dev.kord.core.entity/SoundboardSound { // dev.kord.core.entity/GuildSoundboardSound|null[0] + constructor (dev.kord.core.cache.data/SoundboardSoundData, dev.kord.core/Kord, dev.kord.core.supplier/EntitySupplier = ...) // dev.kord.core.entity/GuildSoundboardSound.|(dev.kord.core.cache.data.SoundboardSoundData;dev.kord.core.Kord;dev.kord.core.supplier.EntitySupplier){}[0] + + final val data // dev.kord.core.entity/GuildSoundboardSound.data|{}data[0] + final fun (): dev.kord.core.cache.data/SoundboardSoundData // dev.kord.core.entity/GuildSoundboardSound.data.|(){}[0] + final val emojiId // dev.kord.core.entity/GuildSoundboardSound.emojiId|{}emojiId[0] + final fun (): dev.kord.common.entity/Snowflake? // dev.kord.core.entity/GuildSoundboardSound.emojiId.|(){}[0] + final val emojiName // dev.kord.core.entity/GuildSoundboardSound.emojiName|{}emojiName[0] + final fun (): kotlin/String // dev.kord.core.entity/GuildSoundboardSound.emojiName.|(){}[0] + final val guildId // dev.kord.core.entity/GuildSoundboardSound.guildId|{}guildId[0] + final fun (): dev.kord.common.entity/Snowflake // dev.kord.core.entity/GuildSoundboardSound.guildId.|(){}[0] + final val id // dev.kord.core.entity/GuildSoundboardSound.id|{}id[0] + final fun (): dev.kord.common.entity/Snowflake // dev.kord.core.entity/GuildSoundboardSound.id.|(){}[0] + final val kord // dev.kord.core.entity/GuildSoundboardSound.kord|{}kord[0] + final fun (): dev.kord.core/Kord // dev.kord.core.entity/GuildSoundboardSound.kord.|(){}[0] + final val supplier // dev.kord.core.entity/GuildSoundboardSound.supplier|{}supplier[0] + final fun (): dev.kord.core.supplier/EntitySupplier // dev.kord.core.entity/GuildSoundboardSound.supplier.|(){}[0] + final val user // dev.kord.core.entity/GuildSoundboardSound.user|{}user[0] + final fun (): dev.kord.core.entity/User // dev.kord.core.entity/GuildSoundboardSound.user.|(){}[0] + + final fun withStrategy(dev.kord.core.supplier/EntitySupplyStrategy<*>): dev.kord.core.entity/GuildSoundboardSound // dev.kord.core.entity/GuildSoundboardSound.withStrategy|withStrategy(dev.kord.core.supplier.EntitySupplyStrategy<*>){}[0] + final suspend fun asGuildSoundboardSound(): dev.kord.core.entity/GuildSoundboardSound // dev.kord.core.entity/GuildSoundboardSound.asGuildSoundboardSound|asGuildSoundboardSound(){}[0] + final suspend fun asGuildSoundboardSoundOrNull(): dev.kord.core.entity/GuildSoundboardSound // dev.kord.core.entity/GuildSoundboardSound.asGuildSoundboardSoundOrNull|asGuildSoundboardSoundOrNull(){}[0] +} + final class dev.kord.core.entity/GuildSticker : dev.kord.core.behavior/StickerBehavior, dev.kord.core.entity/Sticker { // dev.kord.core.entity/GuildSticker|null[0] constructor (dev.kord.core.cache.data/StickerData, dev.kord.core/Kord, dev.kord.core.supplier/EntitySupplier = ...) // dev.kord.core.entity/GuildSticker.|(dev.kord.core.cache.data.StickerData;dev.kord.core.Kord;dev.kord.core.supplier.EntitySupplier){}[0] @@ -9966,6 +10098,80 @@ final class dev.kord.core.event.guild/GuildScheduledEventUserRemoveEvent : dev.k final fun withStrategy(dev.kord.core.supplier/EntitySupplyStrategy<*>): dev.kord.core.event.guild/GuildScheduledEventUserRemoveEvent // dev.kord.core.event.guild/GuildScheduledEventUserRemoveEvent.withStrategy|withStrategy(dev.kord.core.supplier.EntitySupplyStrategy<*>){}[0] } +final class dev.kord.core.event.guild/GuildSoundboardSoundCreateEvent : dev.kord.core.event/Event { // dev.kord.core.event.guild/GuildSoundboardSoundCreateEvent|null[0] + constructor (dev.kord.core.entity/GuildSoundboardSound, kotlin/Int, kotlin/Any?, dev.kord.core/Kord) // dev.kord.core.event.guild/GuildSoundboardSoundCreateEvent.|(dev.kord.core.entity.GuildSoundboardSound;kotlin.Int;kotlin.Any?;dev.kord.core.Kord){}[0] + + final val customContext // dev.kord.core.event.guild/GuildSoundboardSoundCreateEvent.customContext|{}customContext[0] + final fun (): kotlin/Any? // dev.kord.core.event.guild/GuildSoundboardSoundCreateEvent.customContext.|(){}[0] + final val kord // dev.kord.core.event.guild/GuildSoundboardSoundCreateEvent.kord|{}kord[0] + final fun (): dev.kord.core/Kord // dev.kord.core.event.guild/GuildSoundboardSoundCreateEvent.kord.|(){}[0] + final val shard // dev.kord.core.event.guild/GuildSoundboardSoundCreateEvent.shard|{}shard[0] + final fun (): kotlin/Int // dev.kord.core.event.guild/GuildSoundboardSoundCreateEvent.shard.|(){}[0] + final val sound // dev.kord.core.event.guild/GuildSoundboardSoundCreateEvent.sound|{}sound[0] + final fun (): dev.kord.core.entity/GuildSoundboardSound // dev.kord.core.event.guild/GuildSoundboardSoundCreateEvent.sound.|(){}[0] +} + +final class dev.kord.core.event.guild/GuildSoundboardSoundDeletEvent : dev.kord.core.event/Event { // dev.kord.core.event.guild/GuildSoundboardSoundDeletEvent|null[0] + constructor (dev.kord.core.entity/GuildSoundboardSound?, dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake, kotlin/Int, kotlin/Any?, dev.kord.core/Kord) // dev.kord.core.event.guild/GuildSoundboardSoundDeletEvent.|(dev.kord.core.entity.GuildSoundboardSound?;dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;kotlin.Int;kotlin.Any?;dev.kord.core.Kord){}[0] + + final val customContext // dev.kord.core.event.guild/GuildSoundboardSoundDeletEvent.customContext|{}customContext[0] + final fun (): kotlin/Any? // dev.kord.core.event.guild/GuildSoundboardSoundDeletEvent.customContext.|(){}[0] + final val guildId // dev.kord.core.event.guild/GuildSoundboardSoundDeletEvent.guildId|{}guildId[0] + final fun (): dev.kord.common.entity/Snowflake // dev.kord.core.event.guild/GuildSoundboardSoundDeletEvent.guildId.|(){}[0] + final val kord // dev.kord.core.event.guild/GuildSoundboardSoundDeletEvent.kord|{}kord[0] + final fun (): dev.kord.core/Kord // dev.kord.core.event.guild/GuildSoundboardSoundDeletEvent.kord.|(){}[0] + final val old // dev.kord.core.event.guild/GuildSoundboardSoundDeletEvent.old|{}old[0] + final fun (): dev.kord.core.entity/GuildSoundboardSound? // dev.kord.core.event.guild/GuildSoundboardSoundDeletEvent.old.|(){}[0] + final val shard // dev.kord.core.event.guild/GuildSoundboardSoundDeletEvent.shard|{}shard[0] + final fun (): kotlin/Int // dev.kord.core.event.guild/GuildSoundboardSoundDeletEvent.shard.|(){}[0] + final val soundId // dev.kord.core.event.guild/GuildSoundboardSoundDeletEvent.soundId|{}soundId[0] + final fun (): dev.kord.common.entity/Snowflake // dev.kord.core.event.guild/GuildSoundboardSoundDeletEvent.soundId.|(){}[0] +} + +final class dev.kord.core.event.guild/GuildSoundboardSoundUpdateEvent : dev.kord.core.event/Event { // dev.kord.core.event.guild/GuildSoundboardSoundUpdateEvent|null[0] + constructor (dev.kord.core.entity/GuildSoundboardSound?, dev.kord.core.entity/GuildSoundboardSound, kotlin/Int, kotlin/Any?, dev.kord.core/Kord) // dev.kord.core.event.guild/GuildSoundboardSoundUpdateEvent.|(dev.kord.core.entity.GuildSoundboardSound?;dev.kord.core.entity.GuildSoundboardSound;kotlin.Int;kotlin.Any?;dev.kord.core.Kord){}[0] + + final val customContext // dev.kord.core.event.guild/GuildSoundboardSoundUpdateEvent.customContext|{}customContext[0] + final fun (): kotlin/Any? // dev.kord.core.event.guild/GuildSoundboardSoundUpdateEvent.customContext.|(){}[0] + final val kord // dev.kord.core.event.guild/GuildSoundboardSoundUpdateEvent.kord|{}kord[0] + final fun (): dev.kord.core/Kord // dev.kord.core.event.guild/GuildSoundboardSoundUpdateEvent.kord.|(){}[0] + final val old // dev.kord.core.event.guild/GuildSoundboardSoundUpdateEvent.old|{}old[0] + final fun (): dev.kord.core.entity/GuildSoundboardSound? // dev.kord.core.event.guild/GuildSoundboardSoundUpdateEvent.old.|(){}[0] + final val shard // dev.kord.core.event.guild/GuildSoundboardSoundUpdateEvent.shard|{}shard[0] + final fun (): kotlin/Int // dev.kord.core.event.guild/GuildSoundboardSoundUpdateEvent.shard.|(){}[0] + final val sound // dev.kord.core.event.guild/GuildSoundboardSoundUpdateEvent.sound|{}sound[0] + final fun (): dev.kord.core.entity/GuildSoundboardSound // dev.kord.core.event.guild/GuildSoundboardSoundUpdateEvent.sound.|(){}[0] +} + +final class dev.kord.core.event.guild/GuildSoundboardSoundsUpdateEvent : dev.kord.core.event/Event { // dev.kord.core.event.guild/GuildSoundboardSoundsUpdateEvent|null[0] + constructor (kotlin.collections/List, kotlin/Int, kotlin/Any?, dev.kord.core/Kord) // dev.kord.core.event.guild/GuildSoundboardSoundsUpdateEvent.|(kotlin.collections.List;kotlin.Int;kotlin.Any?;dev.kord.core.Kord){}[0] + + final val customContext // dev.kord.core.event.guild/GuildSoundboardSoundsUpdateEvent.customContext|{}customContext[0] + final fun (): kotlin/Any? // dev.kord.core.event.guild/GuildSoundboardSoundsUpdateEvent.customContext.|(){}[0] + final val kord // dev.kord.core.event.guild/GuildSoundboardSoundsUpdateEvent.kord|{}kord[0] + final fun (): dev.kord.core/Kord // dev.kord.core.event.guild/GuildSoundboardSoundsUpdateEvent.kord.|(){}[0] + final val shard // dev.kord.core.event.guild/GuildSoundboardSoundsUpdateEvent.shard|{}shard[0] + final fun (): kotlin/Int // dev.kord.core.event.guild/GuildSoundboardSoundsUpdateEvent.shard.|(){}[0] + final val sounds // dev.kord.core.event.guild/GuildSoundboardSoundsUpdateEvent.sounds|{}sounds[0] + final fun (): kotlin.collections/List // dev.kord.core.event.guild/GuildSoundboardSoundsUpdateEvent.sounds.|(){}[0] + + final class UpdatedGuildSoundboardSound { // dev.kord.core.event.guild/GuildSoundboardSoundsUpdateEvent.UpdatedGuildSoundboardSound|null[0] + constructor (dev.kord.core.entity/GuildSoundboardSound?, dev.kord.core.entity/GuildSoundboardSound) // dev.kord.core.event.guild/GuildSoundboardSoundsUpdateEvent.UpdatedGuildSoundboardSound.|(dev.kord.core.entity.GuildSoundboardSound?;dev.kord.core.entity.GuildSoundboardSound){}[0] + + final val old // dev.kord.core.event.guild/GuildSoundboardSoundsUpdateEvent.UpdatedGuildSoundboardSound.old|{}old[0] + final fun (): dev.kord.core.entity/GuildSoundboardSound? // dev.kord.core.event.guild/GuildSoundboardSoundsUpdateEvent.UpdatedGuildSoundboardSound.old.|(){}[0] + final val sound // dev.kord.core.event.guild/GuildSoundboardSoundsUpdateEvent.UpdatedGuildSoundboardSound.sound|{}sound[0] + final fun (): dev.kord.core.entity/GuildSoundboardSound // dev.kord.core.event.guild/GuildSoundboardSoundsUpdateEvent.UpdatedGuildSoundboardSound.sound.|(){}[0] + + final fun component1(): dev.kord.core.entity/GuildSoundboardSound? // dev.kord.core.event.guild/GuildSoundboardSoundsUpdateEvent.UpdatedGuildSoundboardSound.component1|component1(){}[0] + final fun component2(): dev.kord.core.entity/GuildSoundboardSound // dev.kord.core.event.guild/GuildSoundboardSoundsUpdateEvent.UpdatedGuildSoundboardSound.component2|component2(){}[0] + final fun copy(dev.kord.core.entity/GuildSoundboardSound? = ..., dev.kord.core.entity/GuildSoundboardSound = ...): dev.kord.core.event.guild/GuildSoundboardSoundsUpdateEvent.UpdatedGuildSoundboardSound // dev.kord.core.event.guild/GuildSoundboardSoundsUpdateEvent.UpdatedGuildSoundboardSound.copy|copy(dev.kord.core.entity.GuildSoundboardSound?;dev.kord.core.entity.GuildSoundboardSound){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // dev.kord.core.event.guild/GuildSoundboardSoundsUpdateEvent.UpdatedGuildSoundboardSound.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // dev.kord.core.event.guild/GuildSoundboardSoundsUpdateEvent.UpdatedGuildSoundboardSound.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // dev.kord.core.event.guild/GuildSoundboardSoundsUpdateEvent.UpdatedGuildSoundboardSound.toString|toString(){}[0] + } +} + final class dev.kord.core.event.guild/GuildUpdateEvent : dev.kord.core.event/Event { // dev.kord.core.event.guild/GuildUpdateEvent|null[0] constructor (dev.kord.core.entity/Guild, dev.kord.core.entity/Guild?, kotlin/Int, kotlin/Any?) // dev.kord.core.event.guild/GuildUpdateEvent.|(dev.kord.core.entity.Guild;dev.kord.core.entity.Guild?;kotlin.Int;kotlin.Any?){}[0] @@ -10281,6 +10487,39 @@ final class dev.kord.core.event.guild/MembersChunkEvent : dev.kord.core.entity/S final suspend fun getGuildOrNull(): dev.kord.core.entity/Guild? // dev.kord.core.event.guild/MembersChunkEvent.getGuildOrNull|getGuildOrNull(){}[0] } +final class dev.kord.core.event.guild/SoundboardSounds : dev.kord.core.entity/Strategizable, dev.kord.core.event/Event { // dev.kord.core.event.guild/SoundboardSounds|null[0] + constructor (kotlin.collections/List, dev.kord.common.entity/Snowflake, kotlin/Int, kotlin/Any?, dev.kord.core/Kord, dev.kord.core.supplier/EntitySupplier = ...) // dev.kord.core.event.guild/SoundboardSounds.|(kotlin.collections.List;dev.kord.common.entity.Snowflake;kotlin.Int;kotlin.Any?;dev.kord.core.Kord;dev.kord.core.supplier.EntitySupplier){}[0] + + final val customContext // dev.kord.core.event.guild/SoundboardSounds.customContext|{}customContext[0] + final fun (): kotlin/Any? // dev.kord.core.event.guild/SoundboardSounds.customContext.|(){}[0] + final val guildId // dev.kord.core.event.guild/SoundboardSounds.guildId|{}guildId[0] + final fun (): dev.kord.common.entity/Snowflake // dev.kord.core.event.guild/SoundboardSounds.guildId.|(){}[0] + final val kord // dev.kord.core.event.guild/SoundboardSounds.kord|{}kord[0] + final fun (): dev.kord.core/Kord // dev.kord.core.event.guild/SoundboardSounds.kord.|(){}[0] + final val shard // dev.kord.core.event.guild/SoundboardSounds.shard|{}shard[0] + final fun (): kotlin/Int // dev.kord.core.event.guild/SoundboardSounds.shard.|(){}[0] + final val sounds // dev.kord.core.event.guild/SoundboardSounds.sounds|{}sounds[0] + final fun (): kotlin.collections/List // dev.kord.core.event.guild/SoundboardSounds.sounds.|(){}[0] + final val supplier // dev.kord.core.event.guild/SoundboardSounds.supplier|{}supplier[0] + final fun (): dev.kord.core.supplier/EntitySupplier // dev.kord.core.event.guild/SoundboardSounds.supplier.|(){}[0] + + final fun withStrategy(dev.kord.core.supplier/EntitySupplyStrategy<*>): dev.kord.core.entity/Strategizable // dev.kord.core.event.guild/SoundboardSounds.withStrategy|withStrategy(dev.kord.core.supplier.EntitySupplyStrategy<*>){}[0] + final suspend fun getGuild(): dev.kord.core.entity/Guild // dev.kord.core.event.guild/SoundboardSounds.getGuild|getGuild(){}[0] +} + +final class dev.kord.core.event.guild/VoiceChannelEffectSentEvent : dev.kord.core.event/Event { // dev.kord.core.event.guild/VoiceChannelEffectSentEvent|null[0] + constructor (dev.kord.gateway/VoiceChannelEffect, kotlin/Int, kotlin/Any?, dev.kord.core/Kord) // dev.kord.core.event.guild/VoiceChannelEffectSentEvent.|(dev.kord.gateway.VoiceChannelEffect;kotlin.Int;kotlin.Any?;dev.kord.core.Kord){}[0] + + final val customContext // dev.kord.core.event.guild/VoiceChannelEffectSentEvent.customContext|{}customContext[0] + final fun (): kotlin/Any? // dev.kord.core.event.guild/VoiceChannelEffectSentEvent.customContext.|(){}[0] + final val effect // dev.kord.core.event.guild/VoiceChannelEffectSentEvent.effect|{}effect[0] + final fun (): dev.kord.gateway/VoiceChannelEffect // dev.kord.core.event.guild/VoiceChannelEffectSentEvent.effect.|(){}[0] + final val kord // dev.kord.core.event.guild/VoiceChannelEffectSentEvent.kord|{}kord[0] + final fun (): dev.kord.core/Kord // dev.kord.core.event.guild/VoiceChannelEffectSentEvent.kord.|(){}[0] + final val shard // dev.kord.core.event.guild/VoiceChannelEffectSentEvent.shard|{}shard[0] + final fun (): kotlin/Int // dev.kord.core.event.guild/VoiceChannelEffectSentEvent.shard.|(){}[0] +} + final class dev.kord.core.event.guild/VoiceServerUpdateEvent : dev.kord.core.entity/Strategizable, dev.kord.core.event/Event { // dev.kord.core.event.guild/VoiceServerUpdateEvent|null[0] constructor (kotlin/String, dev.kord.common.entity/Snowflake, kotlin/String?, dev.kord.core/Kord, kotlin/Int, kotlin/Any?, dev.kord.core.supplier/EntitySupplier = ...) // dev.kord.core.event.guild/VoiceServerUpdateEvent.|(kotlin.String;dev.kord.common.entity.Snowflake;kotlin.String?;dev.kord.core.Kord;kotlin.Int;kotlin.Any?;dev.kord.core.supplier.EntitySupplier){}[0] @@ -11249,6 +11488,7 @@ final class dev.kord.core.exception/EntityNotFoundException : kotlin/Exception { final inline fun onboardingNotFound(dev.kord.common.entity/Snowflake): kotlin/Nothing // dev.kord.core.exception/EntityNotFoundException.Companion.onboardingNotFound|onboardingNotFound(dev.kord.common.entity.Snowflake){}[0] final inline fun roleNotFound(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake): kotlin/Nothing // dev.kord.core.exception/EntityNotFoundException.Companion.roleNotFound|roleNotFound(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake){}[0] final inline fun selfNotFound(): kotlin/Nothing // dev.kord.core.exception/EntityNotFoundException.Companion.selfNotFound|selfNotFound(){}[0] + final inline fun soundboardSoundNotFound(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake): kotlin/Nothing // dev.kord.core.exception/EntityNotFoundException.Companion.soundboardSoundNotFound|soundboardSoundNotFound(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake){}[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] @@ -11460,6 +11700,7 @@ final class dev.kord.core.supplier/CacheEntitySupplier : dev.kord.core.supplier/ final fun getGuildScheduledEventUsersAfter(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake, kotlin/Int?): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/CacheEntitySupplier.getGuildScheduledEventUsersAfter|getGuildScheduledEventUsersAfter(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;kotlin.Int?){}[0] final fun getGuildScheduledEventUsersBefore(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake, kotlin/Int?): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/CacheEntitySupplier.getGuildScheduledEventUsersBefore|getGuildScheduledEventUsersBefore(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;kotlin.Int?){}[0] final fun getGuildScheduledEvents(dev.kord.common.entity/Snowflake): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/CacheEntitySupplier.getGuildScheduledEvents|getGuildScheduledEvents(dev.kord.common.entity.Snowflake){}[0] + final fun getGuildSoundboardSounds(dev.kord.common.entity/Snowflake): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/CacheEntitySupplier.getGuildSoundboardSounds|getGuildSoundboardSounds(dev.kord.common.entity.Snowflake){}[0] final fun getGuildStickers(dev.kord.common.entity/Snowflake): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/CacheEntitySupplier.getGuildStickers|getGuildStickers(dev.kord.common.entity.Snowflake){}[0] final fun getGuildVoiceRegions(dev.kord.common.entity/Snowflake): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/CacheEntitySupplier.getGuildVoiceRegions|getGuildVoiceRegions(dev.kord.common.entity.Snowflake){}[0] final fun getGuildWebhooks(dev.kord.common.entity/Snowflake): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/CacheEntitySupplier.getGuildWebhooks|getGuildWebhooks(dev.kord.common.entity.Snowflake){}[0] @@ -11485,6 +11726,7 @@ final class dev.kord.core.supplier/CacheEntitySupplier : dev.kord.core.supplier/ final suspend fun getGuildOrNull(dev.kord.common.entity/Snowflake): dev.kord.core.entity/Guild? // dev.kord.core.supplier/CacheEntitySupplier.getGuildOrNull|getGuildOrNull(dev.kord.common.entity.Snowflake){}[0] final suspend fun getGuildPreviewOrNull(dev.kord.common.entity/Snowflake): dev.kord.core.entity/GuildPreview? // dev.kord.core.supplier/CacheEntitySupplier.getGuildPreviewOrNull|getGuildPreviewOrNull(dev.kord.common.entity.Snowflake){}[0] final suspend fun getGuildScheduledEventOrNull(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake): dev.kord.core.entity/GuildScheduledEvent? // dev.kord.core.supplier/CacheEntitySupplier.getGuildScheduledEventOrNull|getGuildScheduledEventOrNull(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake){}[0] + final suspend fun getGuildSoundboardSoundOrNull(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake): dev.kord.core.entity/GuildSoundboardSound? // dev.kord.core.supplier/CacheEntitySupplier.getGuildSoundboardSoundOrNull|getGuildSoundboardSoundOrNull(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake){}[0] final suspend fun getGuildStickerOrNull(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake): dev.kord.core.entity/GuildSticker? // dev.kord.core.supplier/CacheEntitySupplier.getGuildStickerOrNull|getGuildStickerOrNull(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake){}[0] final suspend fun getGuildWidgetOrNull(dev.kord.common.entity/Snowflake): dev.kord.core.entity/GuildWidget? // dev.kord.core.supplier/CacheEntitySupplier.getGuildWidgetOrNull|getGuildWidgetOrNull(dev.kord.common.entity.Snowflake){}[0] final suspend fun getMemberOrNull(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake): dev.kord.core.entity/Member? // dev.kord.core.supplier/CacheEntitySupplier.getMemberOrNull|getMemberOrNull(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake){}[0] @@ -11532,6 +11774,7 @@ final class dev.kord.core.supplier/RestEntitySupplier : dev.kord.core.supplier/E final fun getGuildScheduledEventUsersAfter(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake, kotlin/Int?): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/RestEntitySupplier.getGuildScheduledEventUsersAfter|getGuildScheduledEventUsersAfter(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;kotlin.Int?){}[0] final fun getGuildScheduledEventUsersBefore(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake, kotlin/Int?): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/RestEntitySupplier.getGuildScheduledEventUsersBefore|getGuildScheduledEventUsersBefore(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;kotlin.Int?){}[0] final fun getGuildScheduledEvents(dev.kord.common.entity/Snowflake): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/RestEntitySupplier.getGuildScheduledEvents|getGuildScheduledEvents(dev.kord.common.entity.Snowflake){}[0] + final fun getGuildSoundboardSounds(dev.kord.common.entity/Snowflake): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/RestEntitySupplier.getGuildSoundboardSounds|getGuildSoundboardSounds(dev.kord.common.entity.Snowflake){}[0] final fun getGuildStickers(dev.kord.common.entity/Snowflake): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/RestEntitySupplier.getGuildStickers|getGuildStickers(dev.kord.common.entity.Snowflake){}[0] final fun getGuildVoiceRegions(dev.kord.common.entity/Snowflake): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/RestEntitySupplier.getGuildVoiceRegions|getGuildVoiceRegions(dev.kord.common.entity.Snowflake){}[0] final fun getGuildWebhooks(dev.kord.common.entity/Snowflake): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/RestEntitySupplier.getGuildWebhooks|getGuildWebhooks(dev.kord.common.entity.Snowflake){}[0] @@ -11562,6 +11805,7 @@ final class dev.kord.core.supplier/RestEntitySupplier : dev.kord.core.supplier/E final suspend fun getGuildOrNull(dev.kord.common.entity/Snowflake): dev.kord.core.entity/Guild? // dev.kord.core.supplier/RestEntitySupplier.getGuildOrNull|getGuildOrNull(dev.kord.common.entity.Snowflake){}[0] final suspend fun getGuildPreviewOrNull(dev.kord.common.entity/Snowflake): dev.kord.core.entity/GuildPreview? // dev.kord.core.supplier/RestEntitySupplier.getGuildPreviewOrNull|getGuildPreviewOrNull(dev.kord.common.entity.Snowflake){}[0] final suspend fun getGuildScheduledEventOrNull(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake): dev.kord.core.entity/GuildScheduledEvent? // dev.kord.core.supplier/RestEntitySupplier.getGuildScheduledEventOrNull|getGuildScheduledEventOrNull(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake){}[0] + final suspend fun getGuildSoundboardSoundOrNull(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake): dev.kord.core.entity/GuildSoundboardSound? // dev.kord.core.supplier/RestEntitySupplier.getGuildSoundboardSoundOrNull|getGuildSoundboardSoundOrNull(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake){}[0] final suspend fun getGuildStickerOrNull(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake): dev.kord.core.entity/GuildSticker? // dev.kord.core.supplier/RestEntitySupplier.getGuildStickerOrNull|getGuildStickerOrNull(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake){}[0] final suspend fun getGuildWelcomeScreen(dev.kord.common.entity/Snowflake): dev.kord.core.entity/WelcomeScreen // dev.kord.core.supplier/RestEntitySupplier.getGuildWelcomeScreen|getGuildWelcomeScreen(dev.kord.common.entity.Snowflake){}[0] final suspend fun getGuildWelcomeScreenOrNull(dev.kord.common.entity/Snowflake): dev.kord.core.entity/WelcomeScreen? // dev.kord.core.supplier/RestEntitySupplier.getGuildWelcomeScreenOrNull|getGuildWelcomeScreenOrNull(dev.kord.common.entity.Snowflake){}[0] @@ -11611,6 +11855,7 @@ final class dev.kord.core.supplier/StoreEntitySupplier : dev.kord.core.supplier/ final fun getGuildScheduledEventUsersAfter(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake, kotlin/Int?): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/StoreEntitySupplier.getGuildScheduledEventUsersAfter|getGuildScheduledEventUsersAfter(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;kotlin.Int?){}[0] final fun getGuildScheduledEventUsersBefore(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake, kotlin/Int?): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/StoreEntitySupplier.getGuildScheduledEventUsersBefore|getGuildScheduledEventUsersBefore(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;kotlin.Int?){}[0] final fun getGuildScheduledEvents(dev.kord.common.entity/Snowflake): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/StoreEntitySupplier.getGuildScheduledEvents|getGuildScheduledEvents(dev.kord.common.entity.Snowflake){}[0] + final fun getGuildSoundboardSounds(dev.kord.common.entity/Snowflake): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/StoreEntitySupplier.getGuildSoundboardSounds|getGuildSoundboardSounds(dev.kord.common.entity.Snowflake){}[0] final fun getGuildStickers(dev.kord.common.entity/Snowflake): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/StoreEntitySupplier.getGuildStickers|getGuildStickers(dev.kord.common.entity.Snowflake){}[0] final fun getGuildVoiceRegions(dev.kord.common.entity/Snowflake): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/StoreEntitySupplier.getGuildVoiceRegions|getGuildVoiceRegions(dev.kord.common.entity.Snowflake){}[0] final fun getGuildWebhooks(dev.kord.common.entity/Snowflake): kotlinx.coroutines.flow/Flow // dev.kord.core.supplier/StoreEntitySupplier.getGuildWebhooks|getGuildWebhooks(dev.kord.common.entity.Snowflake){}[0] @@ -11636,6 +11881,7 @@ final class dev.kord.core.supplier/StoreEntitySupplier : dev.kord.core.supplier/ final suspend fun getGuildOrNull(dev.kord.common.entity/Snowflake): dev.kord.core.entity/Guild? // dev.kord.core.supplier/StoreEntitySupplier.getGuildOrNull|getGuildOrNull(dev.kord.common.entity.Snowflake){}[0] final suspend fun getGuildPreviewOrNull(dev.kord.common.entity/Snowflake): dev.kord.core.entity/GuildPreview? // dev.kord.core.supplier/StoreEntitySupplier.getGuildPreviewOrNull|getGuildPreviewOrNull(dev.kord.common.entity.Snowflake){}[0] final suspend fun getGuildScheduledEventOrNull(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake): dev.kord.core.entity/GuildScheduledEvent? // dev.kord.core.supplier/StoreEntitySupplier.getGuildScheduledEventOrNull|getGuildScheduledEventOrNull(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake){}[0] + final suspend fun getGuildSoundboardSoundOrNull(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake): dev.kord.core.entity/GuildSoundboardSound? // dev.kord.core.supplier/StoreEntitySupplier.getGuildSoundboardSoundOrNull|getGuildSoundboardSoundOrNull(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake){}[0] final suspend fun getGuildStickerOrNull(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake): dev.kord.core.entity/GuildSticker? // dev.kord.core.supplier/StoreEntitySupplier.getGuildStickerOrNull|getGuildStickerOrNull(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake){}[0] final suspend fun getGuildWidgetOrNull(dev.kord.common.entity/Snowflake): dev.kord.core.entity/GuildWidget? // dev.kord.core.supplier/StoreEntitySupplier.getGuildWidgetOrNull|getGuildWidgetOrNull(dev.kord.common.entity.Snowflake){}[0] final suspend fun getMemberOrNull(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake): dev.kord.core.entity/Member? // dev.kord.core.supplier/StoreEntitySupplier.getMemberOrNull|getMemberOrNull(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake){}[0] @@ -11678,6 +11924,8 @@ final class dev.kord.core/Kord : kotlinx.coroutines/CoroutineScope { // dev.kord final fun (): dev.kord.cache.api/DataCache // dev.kord.core/Kord.cache.|(){}[0] final val coroutineContext // dev.kord.core/Kord.coroutineContext|{}coroutineContext[0] final fun (): kotlin.coroutines/CoroutineContext // dev.kord.core/Kord.coroutineContext.|(){}[0] + final val defaultSoundboardSounds // dev.kord.core/Kord.defaultSoundboardSounds|{}defaultSoundboardSounds[0] + final fun (): kotlinx.coroutines.flow/Flow // dev.kord.core/Kord.defaultSoundboardSounds.|(){}[0] final val defaultSupplier // dev.kord.core/Kord.defaultSupplier|{}defaultSupplier[0] final fun (): dev.kord.core.supplier/EntitySupplier // dev.kord.core/Kord.defaultSupplier.|(){}[0] final val events // dev.kord.core/Kord.events|{}events[0] @@ -11704,6 +11952,7 @@ final class dev.kord.core/Kord : kotlinx.coroutines/CoroutineScope { // dev.kord final fun getGlobalApplicationCommands(kotlin/Boolean? = ...): kotlinx.coroutines.flow/Flow // dev.kord.core/Kord.getGlobalApplicationCommands|getGlobalApplicationCommands(kotlin.Boolean?){}[0] 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 requestSoundboardSounds(kotlin.collections/List): kotlinx.coroutines.flow/Flow // dev.kord.core/Kord.requestSoundboardSounds|requestSoundboardSounds(kotlin.collections.List){}[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] @@ -12552,6 +12801,7 @@ final suspend inline fun (dev.kord.core.behavior/GuildBehavior).dev.kord.core.be final suspend inline fun (dev.kord.core.behavior/GuildBehavior).dev.kord.core.behavior/createMessageCommand(kotlin/String, kotlin/Function1 = ...): dev.kord.core.entity.application/GuildMessageCommand // dev.kord.core.behavior/createMessageCommand|createMessageCommand@dev.kord.core.behavior.GuildBehavior(kotlin.String;kotlin.Function1){}[0] final suspend inline fun (dev.kord.core.behavior/GuildBehavior).dev.kord.core.behavior/createNewsChannel(kotlin/String, kotlin/Function1 = ...): dev.kord.core.entity.channel/NewsChannel // dev.kord.core.behavior/createNewsChannel|createNewsChannel@dev.kord.core.behavior.GuildBehavior(kotlin.String;kotlin.Function1){}[0] final suspend inline fun (dev.kord.core.behavior/GuildBehavior).dev.kord.core.behavior/createRole(kotlin/Function1 = ...): dev.kord.core.entity/Role // dev.kord.core.behavior/createRole|createRole@dev.kord.core.behavior.GuildBehavior(kotlin.Function1){}[0] +final suspend inline fun (dev.kord.core.behavior/GuildBehavior).dev.kord.core.behavior/createSoundboardSound(kotlin/String, dev.kord.rest/Sound, kotlin/Function1 = ...): dev.kord.core.entity/GuildSoundboardSound // dev.kord.core.behavior/createSoundboardSound|createSoundboardSound@dev.kord.core.behavior.GuildBehavior(kotlin.String;dev.kord.rest.Sound;kotlin.Function1){}[0] final suspend inline fun (dev.kord.core.behavior/GuildBehavior).dev.kord.core.behavior/createSpamAutoModerationRule(kotlin/String, dev.kord.common.entity/AutoModerationRuleEventType = ..., kotlin/Function1): dev.kord.core.entity.automoderation/SpamAutoModerationRule // dev.kord.core.behavior/createSpamAutoModerationRule|createSpamAutoModerationRule@dev.kord.core.behavior.GuildBehavior(kotlin.String;dev.kord.common.entity.AutoModerationRuleEventType;kotlin.Function1){}[0] final suspend inline fun (dev.kord.core.behavior/GuildBehavior).dev.kord.core.behavior/createStageChannel(kotlin/String, kotlin/Function1 = ...): dev.kord.core.entity.channel/StageChannel // dev.kord.core.behavior/createStageChannel|createStageChannel@dev.kord.core.behavior.GuildBehavior(kotlin.String;kotlin.Function1){}[0] final suspend inline fun (dev.kord.core.behavior/GuildBehavior).dev.kord.core.behavior/createTextChannel(kotlin/String, kotlin/Function1 = ...): dev.kord.core.entity.channel/TextChannel // dev.kord.core.behavior/createTextChannel|createTextChannel@dev.kord.core.behavior.GuildBehavior(kotlin.String;kotlin.Function1){}[0] @@ -12564,6 +12814,7 @@ final suspend inline fun (dev.kord.core.behavior/GuildBehavior).dev.kord.core.be final suspend inline fun (dev.kord.core.behavior/GuildBehavior).dev.kord.core.behavior/swapRolePositions(kotlin/Function1): kotlinx.coroutines.flow/Flow // dev.kord.core.behavior/swapRolePositions|swapRolePositions@dev.kord.core.behavior.GuildBehavior(kotlin.Function1){}[0] final suspend inline fun (dev.kord.core.behavior/GuildEmojiBehavior).dev.kord.core.behavior/edit(kotlin/Function1): dev.kord.core.entity/GuildEmoji // dev.kord.core.behavior/edit|edit@dev.kord.core.behavior.GuildEmojiBehavior(kotlin.Function1){}[0] final suspend inline fun (dev.kord.core.behavior/GuildScheduledEventBehavior).dev.kord.core.behavior/edit(kotlin/Function1): dev.kord.core.entity/GuildScheduledEvent // dev.kord.core.behavior/edit|edit@dev.kord.core.behavior.GuildScheduledEventBehavior(kotlin.Function1){}[0] +final suspend inline fun (dev.kord.core.behavior/GuildSoundboardSoundBehavior).dev.kord.core.behavior/edit(kotlin/Function1): dev.kord.core.entity/GuildSoundboardSound // dev.kord.core.behavior/edit|edit@dev.kord.core.behavior.GuildSoundboardSoundBehavior(kotlin.Function1){}[0] final suspend inline fun (dev.kord.core.behavior/MemberBehavior).dev.kord.core.behavior/ban(kotlin/Function1 = ...) // dev.kord.core.behavior/ban|ban@dev.kord.core.behavior.MemberBehavior(kotlin.Function1){}[0] final suspend inline fun (dev.kord.core.behavior/MemberBehavior).dev.kord.core.behavior/edit(kotlin/Function1): dev.kord.core.entity/Member // dev.kord.core.behavior/edit|edit@dev.kord.core.behavior.MemberBehavior(kotlin.Function1){}[0] final suspend inline fun (dev.kord.core.behavior/MessageBehavior).dev.kord.core.behavior/edit(dev.kord.common.entity/Snowflake, kotlin/String, dev.kord.common.entity/Snowflake? = ..., kotlin/Function1): dev.kord.core.entity/Message // dev.kord.core.behavior/edit|edit@dev.kord.core.behavior.MessageBehavior(dev.kord.common.entity.Snowflake;kotlin.String;dev.kord.common.entity.Snowflake?;kotlin.Function1){}[0] diff --git a/core/src/commonMain/kotlin/Kord.kt b/core/src/commonMain/kotlin/Kord.kt index 71d4c3d6741..34a301b1f17 100644 --- a/core/src/commonMain/kotlin/Kord.kt +++ b/core/src/commonMain/kotlin/Kord.kt @@ -11,6 +11,7 @@ import dev.kord.core.builder.kord.KordProxyBuilder import dev.kord.core.builder.kord.KordRestOnlyBuilder import dev.kord.core.cache.data.ApplicationCommandData import dev.kord.core.cache.data.GuildData +import dev.kord.core.cache.data.SoundboardSoundData import dev.kord.core.cache.data.UserData import dev.kord.core.entity.* import dev.kord.core.entity.application.* @@ -27,6 +28,8 @@ import dev.kord.core.supplier.* import dev.kord.gateway.Gateway import dev.kord.gateway.builder.LoginBuilder import dev.kord.gateway.builder.PresenceBuilder +import dev.kord.gateway.requestSoundboardSounds +import dev.kord.gateway.start import dev.kord.rest.builder.application.ApplicationRoleConnectionMetadataRecordsBuilder import dev.kord.rest.builder.guild.GuildCreateBuilder import dev.kord.rest.builder.interaction.* @@ -37,6 +40,7 @@ import dev.kord.rest.service.RestClient import io.github.oshai.kotlinlogging.KotlinLogging import kotlinx.coroutines.* import kotlinx.coroutines.flow.* +import kotlin.collections.map import kotlin.contracts.InvocationKind import kotlin.contracts.contract import kotlin.coroutines.CoroutineContext @@ -106,6 +110,12 @@ public class Kord( public val guilds: Flow get() = defaultSupplier.guilds + public val defaultSoundboardSounds: Flow + get() = flow { + rest.soundboard.getDefaultSounds() + .forEach { emit(DefaultSoundboardSound(SoundboardSoundData.from(it), this@Kord)) } + } + init { gateway.events .buffer(kotlinx.coroutines.channels.Channel.UNLIMITED) @@ -406,6 +416,34 @@ public class Kord( gateway.sendAll(status) } + /** + * Requests guild emojis [through the gateway][requestSoundboardSounds] for [guildIds]. + * + * The returned flow is cold, and will execute the request only on subscription. + * Collection of this flow on a [Gateway] that is not [running][Gateway.start] + * will result in an [IllegalStateException] being thrown. + * + * Executing the request on a [MasterGateway] with a [Shard][dev.kord.common.entity.DiscordShard] that + * [does not match the guild id](https://discord.com/developers/docs/topics/gateway#sharding) + * can result in undefined behavior for the returned flow and inconsistencies in the cache. + */ + @OptIn(ExperimentalCoroutinesApi::class, KordUnsafe::class) + public fun requestSoundboardSounds(guildIds: List): Flow { + return guildIds.groupBy { guildId -> + val guild = unsafe.guild(guildId) + guild.gateway + }.mapNotNull { (gateway, guilds) -> + val gateway = gateway ?: return@mapNotNull null + + gateway.requestSoundboardSounds(guilds).flatMapConcat { + it.soundboardSounds.map { sound -> + val data = SoundboardSoundData.from(sound) + GuildSoundboardSound(data, this) + }.asFlow() + } + }.asFlow().flattenConcat() + } + override fun equals(other: Any?): Boolean = other is Kord && this.resources.token == other.resources.token override fun hashCode(): Int = resources.token.hashCode() override fun toString(): String = diff --git a/core/src/commonMain/kotlin/Util.kt b/core/src/commonMain/kotlin/Util.kt index 4f54cb3ae10..c602ae16e81 100644 --- a/core/src/commonMain/kotlin/Util.kt +++ b/core/src/commonMain/kotlin/Util.kt @@ -370,7 +370,7 @@ public fun Intents.Builder.enableEvent(event: KClass): Unit = when (e InviteCreateEvent::class, InviteDeleteEvent::class -> +GuildInvites - VoiceStateUpdateEvent::class -> +GuildVoiceStates + VoiceStateUpdateEvent::class, VoiceChannelEffectSentEvent::class -> +GuildVoiceStates PresenceUpdateEvent::class -> +GuildPresences @@ -396,6 +396,13 @@ public fun Intents.Builder.enableEvent(event: KClass): Unit = when (e AutoModerationRuleDeleteEvent::class, -> +AutoModerationConfiguration + EmojisUpdateEvent::class, + GuildSoundboardSoundCreateEvent::class, + GuildSoundboardSoundUpdateEvent::class, + GuildSoundboardSoundsUpdateEvent::class, + GuildSoundboardSoundDeletEvent::class, + -> +GuildExpressions + /* * events requiring multiple intents: diff --git a/core/src/commonMain/kotlin/behavior/GuildBehavior.kt b/core/src/commonMain/kotlin/behavior/GuildBehavior.kt index 2a387a977c9..154631687ba 100644 --- a/core/src/commonMain/kotlin/behavior/GuildBehavior.kt +++ b/core/src/commonMain/kotlin/behavior/GuildBehavior.kt @@ -31,9 +31,11 @@ import dev.kord.gateway.Gateway import dev.kord.gateway.PrivilegedIntent import dev.kord.gateway.RequestGuildMembers import dev.kord.gateway.builder.RequestGuildMembersBuilder +import dev.kord.gateway.requestSoundboardSounds import dev.kord.gateway.start import dev.kord.rest.Image import dev.kord.rest.NamedFile +import dev.kord.rest.Sound import dev.kord.rest.builder.auditlog.AuditLogGetRequestBuilder import dev.kord.rest.builder.automoderation.* import dev.kord.rest.builder.ban.BanCreateBuilder @@ -51,6 +53,7 @@ import dev.kord.rest.json.request.GuildStickerCreateRequest import dev.kord.rest.json.request.MultipartGuildStickerCreateRequest import dev.kord.rest.request.RestRequestException import dev.kord.rest.service.* +import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.flow.* import kotlinx.datetime.Instant import kotlin.contracts.InvocationKind.EXACTLY_ONCE @@ -79,6 +82,15 @@ public interface GuildBehavior : KordEntity, Strategizable { public val activeThreads: Flow get() = supplier.getActiveThreads(id) + /** + * Returns all [soundboard sounds][GuildSoundboardSound] in this guild. + * + * 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 val soundboardSounds: Flow + get() = supplier.getGuildSoundboardSounds(id) + /** * Requests to get all threads in this guild that are present in [cache][Kord.cache]. * @@ -257,6 +269,28 @@ public interface GuildBehavior : KordEntity, Strategizable { } } + /** + * Requests guild emojis [through the gateway][requestSoundboardSounds]. + * + * The returned flow is cold, and will execute the [request] only on subscription. + * Collection of this flow on a [Gateway] that is not [running][Gateway.start] + * will result in an [IllegalStateException] being thrown. + * + * Executing the request on a [Gateway] with a [Shard][dev.kord.common.entity.DiscordShard] that + * [does not match the guild id](https://discord.com/developers/docs/topics/gateway#sharding) + * can result in undefined behavior for the returned flow and inconsistencies in the cache. + */ + @OptIn(ExperimentalCoroutinesApi::class) + public fun requestSoundboardSounds(): Flow { + val gateway = gateway ?: return emptyFlow() + return gateway.requestSoundboardSounds(listOf(id)).flatMapConcat { + it.soundboardSounds.map { sound -> + val data = SoundboardSoundData.from(sound) + GuildSoundboardSound(data, kord, supplier) + }.asFlow() + } + } + public fun getApplicationCommands(withLocalizations: Boolean? = null): Flow = supplier.getGuildApplicationCommands(kord.resources.applicationId, id, withLocalizations) @@ -597,6 +631,24 @@ public interface GuildBehavior : KordEntity, Strategizable { public suspend fun getGuildScheduledEventOrNull(eventId: Snowflake): GuildScheduledEvent? = supplier.getGuildScheduledEventOrNull(id, eventId) + /** + * Requests a [GuildSoundboardSound] by its [soundId]. + * + * @throws [RequestException] if anything went wrong during the request. + * @throws EntityNotFoundException if the sound is null + */ + public suspend fun getSoundboardSound(soundId: Snowflake): GuildSoundboardSound = + supplier.getGuildSoundboardSound(id, soundId) + + /** + * Requests a [GuildSoundboardSound] by its [soundId] returns `null` if none could be found. + * + * @throws [RequestException] if anything went wrong during the request. + * @throws EntityNotFoundException if the sound is null + */ + public suspend fun getSoundboardSoundOrNull(soundId: Snowflake): GuildSoundboardSound? = + supplier.getGuildSoundboardSoundOrNull(id, soundId) + public suspend fun getWidget(): GuildWidget = supplier.getGuildWidget(id) public suspend fun getWidgetOrNull(): GuildWidget? = supplier.getGuildWidgetOrNull(id) @@ -1144,3 +1196,20 @@ public suspend inline fun GuildBehavior.createMemberProfileAutoModerationRule( val rule = kord.rest.autoModeration.createMemberProfileAutoModerationRule(guildId = id, name, eventType, builder) return MemberProfileAutoModerationRule(AutoModerationRuleData.from(rule), kord, supplier) } + +/** + * Creates a new [sound][GuildSoundboardSound] on this guild and returns it. + * + * This requires the [Permission.ManageGuildExpressions] permission. + * + * @param name the name of the sound + * @param sound the [Sound] + * + * @throws RestRequestException if something went wrong during the request. + */ +public suspend inline fun GuildBehavior.createSoundboardSound(name: String, sound: Sound, builder: SoundboardSoundCreateBuilder.() -> Unit = {}): GuildSoundboardSound { + contract { callsInPlace(builder, EXACTLY_ONCE) } + val sound = kord.rest.guild.createGuildSoundboardSound(guildId = id, name, sound, builder) + + return GuildSoundboardSound(SoundboardSoundData.from(sound), kord, supplier) +} diff --git a/core/src/commonMain/kotlin/behavior/GuildEmojiBehavior.kt b/core/src/commonMain/kotlin/behavior/GuildEmojiBehavior.kt index d71f3aa431b..95b400432d2 100644 --- a/core/src/commonMain/kotlin/behavior/GuildEmojiBehavior.kt +++ b/core/src/commonMain/kotlin/behavior/GuildEmojiBehavior.kt @@ -3,8 +3,8 @@ package dev.kord.core.behavior import dev.kord.common.entity.Snowflake import dev.kord.core.Kord import dev.kord.core.cache.data.EmojiData -import dev.kord.core.entity.KordEntity import dev.kord.core.entity.GuildEmoji +import dev.kord.core.entity.KordEntity import dev.kord.core.entity.Strategizable import dev.kord.core.hash import dev.kord.core.supplier.EntitySupplier diff --git a/core/src/commonMain/kotlin/behavior/SoundboardSoundBehavior.kt b/core/src/commonMain/kotlin/behavior/SoundboardSoundBehavior.kt new file mode 100644 index 00000000000..60870d58172 --- /dev/null +++ b/core/src/commonMain/kotlin/behavior/SoundboardSoundBehavior.kt @@ -0,0 +1,128 @@ + +package dev.kord.core.behavior + +import dev.kord.common.entity.Permission +import dev.kord.common.entity.Snowflake +import dev.kord.common.exception.RequestException +import dev.kord.core.behavior.channel.VoiceChannelBehavior +import dev.kord.core.cache.data.SoundboardSoundData +import dev.kord.core.entity.GuildSoundboardSound +import dev.kord.core.entity.KordEntity +import dev.kord.core.entity.Strategizable +import dev.kord.core.entity.VoiceState +import dev.kord.core.exception.EntityNotFoundException +import dev.kord.core.supplier.EntitySupplyStrategy +import dev.kord.rest.builder.guild.SoundboardSoundModifyBuilder +import dev.kord.rest.request.RestRequestException +import dev.kord.rest.service.modifyGuildSoundboardSound +import kotlin.contracts.contract + +/** + * Behavior of a discord soundboard sound. + * + * @see DefaultSoundboardSoundBehavior + * @see GuildSoundboardSoundBehavior + */ +public interface SoundboardSoundBehavior : KordEntity, Strategizable { + + /** + * Plays this sound in [channel]. + * + * This requires the [Permission.Speak] and [Permission.UseSoundboard] permissions, and also the + * [Permission.UseExternalSounds] permission if the sound is from a different server. + * Additionally, requires the user to be connected to the voice channel, + * having a [voice state] without [VoiceState.isDeafened], [VoiceState.isSelfDeafened], [VoiceState.isMuted], + * or [VoiceState.isSuppressed] enabled. + * + * @throws RestRequestException if something went wrong during the request. + */ + public suspend fun send(channel: VoiceChannelBehavior) + + override fun withStrategy(strategy: EntitySupplyStrategy<*>): SoundboardSoundBehavior +} + +/** + * Behavior of a default sound board sound. + */ +public interface DefaultSoundboardSoundBehavior : SoundboardSoundBehavior { + override suspend fun send(channel: VoiceChannelBehavior): Unit = + kord.rest.channel.sendSoundboardSound(id, channel.id) +} + +/** + * Behavior of guild soundboard sounds. + */ +public interface GuildSoundboardSoundBehavior : SoundboardSoundBehavior { + /** + * The id of the guild the sound is on. + */ + public val guildId: Snowflake + + /** + * The behavior of the guild this emoji is part of. + */ + public val guild: GuildBehavior get() = GuildBehavior(guildId, kord) + + override suspend fun send(channel: VoiceChannelBehavior): Unit = + kord.rest.channel.sendSoundboardSound(id, channel.id, guildId) + + /** + * Requests to get this behavior as a [GuildSoundboardSoundBehavior] . + * + * @throws RequestException if something went wrong during the request. + * @throws EntityNotFoundException if the sound wasn't present. + */ + public suspend fun asGuildSoundboardSound(): GuildSoundboardSound = fetchGuildSoundboardSound() + + /** + * Requests to get this behavior as a [GuildSoundboardSoundBehavior] or `null` if the sound does not exist. + * + * @throws RequestException if something went wrong during the request. + */ + public suspend fun asGuildSoundboardSoundOrNull(): GuildSoundboardSound? = fetchGuildSoundboardSoundOrNull() + + /** + * Retrieves to get this behavior as a [GuildSoundboardSoundBehavior] . + * + * @throws RequestException if something went wrong during the request. + * @throws EntityNotFoundException if the sound wasn't present. + */ + public suspend fun fetchGuildSoundboardSound(): GuildSoundboardSound = + supplier.getGuildSoundboardSound(guildId, id) + + /** + * Retrieves to get this behavior as a [GuildSoundboardSoundBehavior] or `null` if the sound does not exist. + * + * @throws RequestException if something went wrong during the request. + */ + public suspend fun fetchGuildSoundboardSoundOrNull(): GuildSoundboardSound? = + supplier.getGuildSoundboardSoundOrNull(guildId, id) + + /** + * Deletes this sound. + * + * This requires the [Permission.ManageGuildExpressions] permission. + * + * @param reason the audit log reason for this change + * + * @throws RestRequestException if something went wrong during the request. + */ + public suspend fun delete(reason: String? = null): Unit = + kord.rest.guild.deleteGuildSoundboardSound(guildId, id, reason) + + override fun withStrategy(strategy: EntitySupplyStrategy<*>): GuildSoundboardSoundBehavior +} + +/** + * Modifies this sound. + */ +public suspend inline fun GuildSoundboardSoundBehavior.edit(builder: SoundboardSoundModifyBuilder.() -> Unit): GuildSoundboardSound { + contract { + callsInPlace(builder, kotlin.contracts.InvocationKind.EXACTLY_ONCE) + } + + val response = kord.rest.guild.modifyGuildSoundboardSound(guildId, id, builder) + val data = SoundboardSoundData.from(response) + + return GuildSoundboardSound(data, kord, supplier) +} diff --git a/core/src/commonMain/kotlin/behavior/channel/VoiceChannelBehavior.kt b/core/src/commonMain/kotlin/behavior/channel/VoiceChannelBehavior.kt index 0c1b1ed4874..1199d93e76c 100644 --- a/core/src/commonMain/kotlin/behavior/channel/VoiceChannelBehavior.kt +++ b/core/src/commonMain/kotlin/behavior/channel/VoiceChannelBehavior.kt @@ -1,9 +1,13 @@ package dev.kord.core.behavior.channel +import dev.kord.common.entity.Permission import dev.kord.common.entity.Snowflake import dev.kord.common.exception.RequestException import dev.kord.core.Kord +import dev.kord.core.behavior.SoundboardSoundBehavior import dev.kord.core.cache.data.ChannelData +import dev.kord.core.entity.SoundboardSound +import dev.kord.core.entity.VoiceState import dev.kord.core.entity.channel.Channel import dev.kord.core.entity.channel.VoiceChannel import dev.kord.core.exception.EntityNotFoundException @@ -21,6 +25,21 @@ import kotlin.contracts.contract */ public interface VoiceChannelBehavior : TopGuildMessageChannelBehavior, BaseVoiceChannelBehavior { + /** + * Plays [sound] in this channel. + * + * This requires the [Permission.Speak] and [Permission.UseSoundboard] permissions, and also the + * [Permission.UseExternalSounds] permission if the sound is from a different server. + * Additionally, requires the user to be connected to the voice channel, + * having a [voice state] without [VoiceState.isDeafened], [VoiceState.isSelfDeafened], [VoiceState.isMuted], + * or [VoiceState.isSuppressed] enabled. + * + * @see SoundboardSoundBehavior.play + * + * @throws RestRequestException if something went wrong during the request. + */ + public suspend fun playSound(sound: SoundboardSoundBehavior): Unit = sound.send(this) + /** * Requests to get the this behavior as a [VoiceChannel]. * diff --git a/core/src/commonMain/kotlin/cache/DataCacheExtensions.kt b/core/src/commonMain/kotlin/cache/DataCacheExtensions.kt index 33220b80134..8743bf14a55 100644 --- a/core/src/commonMain/kotlin/cache/DataCacheExtensions.kt +++ b/core/src/commonMain/kotlin/cache/DataCacheExtensions.kt @@ -30,6 +30,7 @@ public suspend fun DataCache.registerKordData(): Unit = register( AutoModerationRuleData.description, EntitlementData.description, SubscriptionData.description, + SoundboardSoundData.description ) /** @@ -54,6 +55,7 @@ internal suspend fun DataCache.removeKordData() { 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 b20740b0db9..938f2dcc044 100644 --- a/core/src/commonMain/kotlin/cache/KordCache.kt +++ b/core/src/commonMain/kotlin/cache/KordCache.kt @@ -100,6 +100,12 @@ public class KordCacheBuilder { */ public fun emojis(generator: Generator): Unit = forDescription(EmojiData.description, generator) + /** + * Configures the caching for [SoundboardSoundData]. + */ + public fun soundboardSounds(generator: Generator): Unit = + forDescription(SoundboardSoundData.description, generator) + /** * Configures the caching for [WebhookData]. */ diff --git a/core/src/commonMain/kotlin/cache/data/GuildData.kt b/core/src/commonMain/kotlin/cache/data/GuildData.kt index fdd65ab2720..0b8cb1c58f3 100644 --- a/core/src/commonMain/kotlin/cache/data/GuildData.kt +++ b/core/src/commonMain/kotlin/cache/data/GuildData.kt @@ -87,6 +87,7 @@ public data class GuildData( link(GuildData::id to EmojiData::guildId) link(GuildData::id to AutoModerationRuleData::guildId) link(GuildData::id to EntitlementData::nullableGuildId) + link(GuildData::id to SoundboardSoundData::guildId) } public fun from(entity: DiscordGuild): GuildData = with(entity) { diff --git a/core/src/commonMain/kotlin/cache/data/SoundboardSoundData.kt b/core/src/commonMain/kotlin/cache/data/SoundboardSoundData.kt new file mode 100644 index 00000000000..77a1a553b78 --- /dev/null +++ b/core/src/commonMain/kotlin/cache/data/SoundboardSoundData.kt @@ -0,0 +1,40 @@ +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.DiscordSoundboardSound +import dev.kord.common.entity.Snowflake +import dev.kord.common.entity.optional.Optional +import dev.kord.common.entity.optional.Optional.Missing.Companion.invoke +import dev.kord.common.entity.optional.OptionalSnowflake +import dev.kord.common.entity.optional.map +import kotlinx.serialization.Serializable + +@Serializable +public class SoundboardSoundData( + public val name: String, + public val id: Snowflake, + public val volume: Double, + public val emojiId: Snowflake?, + public val emojiName: String?, + public val guildId: OptionalSnowflake = OptionalSnowflake.Missing, + public val available: Boolean, + public val user: Optional = Optional.Missing() +) { + public companion object { + public val description: DataDescription = description(SoundboardSoundData::id) + + public fun from(sound: DiscordSoundboardSound): SoundboardSoundData = with(sound) { + SoundboardSoundData( + name, + soundId, + volume, + emojiId, + emojiName, + guildId, + available, + user.map(UserData::from) + ) + } + } +} diff --git a/core/src/commonMain/kotlin/entity/Soundboard.kt b/core/src/commonMain/kotlin/entity/Soundboard.kt new file mode 100644 index 00000000000..ed0836ceba9 --- /dev/null +++ b/core/src/commonMain/kotlin/entity/Soundboard.kt @@ -0,0 +1,75 @@ +package dev.kord.core.entity + +import dev.kord.common.entity.Snowflake +import dev.kord.core.Kord +import dev.kord.core.behavior.DefaultSoundboardSoundBehavior +import dev.kord.core.behavior.GuildSoundboardSoundBehavior +import dev.kord.core.behavior.SoundboardSoundBehavior +import dev.kord.core.cache.data.SoundboardSoundData +import dev.kord.core.supplier.EntitySupplier +import dev.kord.core.supplier.EntitySupplyStrategy + +/** + * Representation of a soundboard sound. + * + * @property data the cache data + * @property name the name of this sound + * @property soundId the id of this sound + * @property volume the volume of this sound, from `0.0` to `1.0` + * @property emojiName the unicode character of this sound's standard emoji (if set) + * @property available whether this sound can be used, may be false due to loss of Server Boosts + */ +public interface SoundboardSound : SoundboardSoundBehavior { + public val data: SoundboardSoundData + + public val name: String get() = data.name + public val soundId: Snowflake get() = data.id + public val volume: Double get() = data.volume + public val emojiName: String? get() = data.emojiName + public val available: Boolean get() = data.available + + override fun withStrategy(strategy: EntitySupplyStrategy<*>): SoundboardSound +} + +/** + * A Soundboard Sound that everyone can use. + * + * @see SoundboardSound + */ +public class DefaultSoundboardSound( + override val data: SoundboardSoundData, + override val kord: Kord, + override val supplier: EntitySupplier = kord.defaultSupplier +) : DefaultSoundboardSoundBehavior, SoundboardSound { + override val id: Snowflake get() = data.id + override val emojiName: String + get() = data.emojiName!! + + override fun withStrategy(strategy: EntitySupplyStrategy<*>): DefaultSoundboardSound = + DefaultSoundboardSound(data, kord, strategy.supply(kord)) +} + +/** + * A Soundboard Sound that can be used by everyone. + * + * @property emojiId the id of this sound's custom emoji + * @property user the user who created this sound + * @see SoundboardSound + */ +public class GuildSoundboardSound( + override val data: SoundboardSoundData, + override val kord: Kord, + override val supplier: EntitySupplier = kord.defaultSupplier +) : SoundboardSound, GuildSoundboardSoundBehavior { + override val id: Snowflake get() = data.id + override val emojiName: String get() = data.emojiName!! + override val guildId: Snowflake get() = data.guildId.value!! + public val emojiId: Snowflake? get() = data.emojiId + public val user: User get() = User(data.user.value!!, kord, supplier) + + override suspend fun asGuildSoundboardSound(): GuildSoundboardSound = this + override suspend fun asGuildSoundboardSoundOrNull(): GuildSoundboardSound = this + + override fun withStrategy(strategy: EntitySupplyStrategy<*>): GuildSoundboardSound = + GuildSoundboardSound(data, kord, strategy.supply(kord)) +} diff --git a/core/src/commonMain/kotlin/event/guild/Soundboard.kt b/core/src/commonMain/kotlin/event/guild/Soundboard.kt new file mode 100644 index 00000000000..b9c76744475 --- /dev/null +++ b/core/src/commonMain/kotlin/event/guild/Soundboard.kt @@ -0,0 +1,102 @@ +package dev.kord.core.event.guild + +import dev.kord.common.annotation.KordPreview +import dev.kord.common.entity.Snowflake +import dev.kord.core.Kord +import dev.kord.core.entity.Guild +import dev.kord.core.entity.GuildSoundboardSound +import dev.kord.core.entity.Strategizable +import dev.kord.core.event.Event +import dev.kord.core.supplier.EntitySupplier +import dev.kord.core.supplier.EntitySupplyStrategy +import dev.kord.gateway.VoiceChannelEffect + +/** + * Event fired when a new [GuildSoundboardSound] is created. + * + * @property sound the newly created sound + */ +public class GuildSoundboardSoundCreateEvent( + public val sound: GuildSoundboardSound, + override val shard: Int, @KordPreview + override val customContext: Any?, override val kord: Kord +) : Event + +/** + * Event fired when a [GuildSoundboardSound] is updated. + * + * @property sound the updated sound + * @property old the old value of the sound (if cached) + */ +public class GuildSoundboardSoundUpdateEvent( + public val old: GuildSoundboardSound?, + public val sound: GuildSoundboardSound, + override val shard: Int, @KordPreview + override val customContext: Any?, override val kord: Kord +) : Event + +/** + * Event fired when a [GuildSoundboardSounds][GuildSoundboardSound] are updated. + * + * @property sounds the updated sounds + */ +public class GuildSoundboardSoundsUpdateEvent( + public val sounds: List, + override val shard: Int, @KordPreview + override val customContext: Any?, override val kord: Kord +) : Event { + /** + * Representation of a sound update. + * + * @property old the old value of the sound if cache + * @property sound the updated values of the sound + */ + public data class UpdatedGuildSoundboardSound(val old: GuildSoundboardSound?, val sound: GuildSoundboardSound) +} + +/** + * Event fired when a new [GuildSoundboardSound] is deleted. + * + * @property soundId the id of the deleted sound + * @property guildId the id of the guild the sound was on + * @property old the old value of the sound (if cached) + */ +public class GuildSoundboardSoundDeletEvent( + public val old: GuildSoundboardSound?, + public val soundId: Snowflake, + public val guildId: Snowflake, + override val shard: Int, @KordPreview + override val customContext: Any?, override val kord: Kord +) : Event + +/** + * Event fired when a [VoiceChannelEffect] is sent. + * + * @property effect the effect + */ +public class VoiceChannelEffectSentEvent( + public val effect: VoiceChannelEffect, + override val shard: Int, @KordPreview + override val customContext: Any?, override val kord: Kord +) : Event + +public class SoundboardSounds( + public val sounds: List, + public val guildId: Snowflake, + override val shard: Int, + @KordPreview + override val customContext: Any?, + override val kord: Kord, + override val supplier: EntitySupplier = kord.defaultSupplier +) : Event, Strategizable { + public suspend fun getGuild(): Guild = supplier.getGuild(guildId) + + override fun withStrategy(strategy: EntitySupplyStrategy<*>): Strategizable = SoundboardSounds( + sounds, + guildId, + shard, + customContext, + kord, + strategy.supply(kord) + ) +} diff --git a/core/src/commonMain/kotlin/exception/EntityNotFoundException.kt b/core/src/commonMain/kotlin/exception/EntityNotFoundException.kt index 86ca26572cf..6229d9329b2 100644 --- a/core/src/commonMain/kotlin/exception/EntityNotFoundException.kt +++ b/core/src/commonMain/kotlin/exception/EntityNotFoundException.kt @@ -49,6 +49,9 @@ public class EntityNotFoundException : Exception { public inline fun emojiNotFound(guildId: Snowflake, emojiId: Snowflake): Nothing = guildEntityNotFound("GuildEmoji", guildId = guildId, id = emojiId) + public inline fun soundboardSoundNotFound(guildId: Snowflake, soundId: Snowflake): Nothing = + guildEntityNotFound("SoundboardSound", guildId = guildId, id = soundId) + public inline fun webhookNotFound(webhookId: Snowflake): Nothing = entityNotFound("Webhook", webhookId) diff --git a/core/src/commonMain/kotlin/gateway/handler/GuildEventHandler.kt b/core/src/commonMain/kotlin/gateway/handler/GuildEventHandler.kt index 2d40f885174..f999969fe9d 100644 --- a/core/src/commonMain/kotlin/gateway/handler/GuildEventHandler.kt +++ b/core/src/commonMain/kotlin/gateway/handler/GuildEventHandler.kt @@ -17,10 +17,12 @@ import dev.kord.core.event.role.RoleDeleteEvent import dev.kord.core.event.role.RoleUpdateEvent import dev.kord.core.event.user.PresenceUpdateEvent import dev.kord.gateway.* +import dev.kord.gateway.SoundboardSounds import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.singleOrNull import kotlinx.coroutines.flow.toSet import dev.kord.core.event.Event as CoreEvent +import dev.kord.core.event.guild.SoundboardSounds as CoreSoundboardSounds internal class GuildEventHandler : BaseGatewayEventHandler() { @@ -49,6 +51,11 @@ internal class GuildEventHandler : BaseGatewayEventHandler() { is GuildScheduledEventDelete -> handle(event, shard, kord, context) is GuildScheduledEventUserAdd -> handle(event, shard, kord, context) is GuildScheduledEventUserRemove -> handle(event, shard, kord, context) + is GuildSoundboardSoundCreate -> handle(event, shard, kord, context) + is GuildSoundboardSoundsUpdate -> handle(event, shard, kord, context) + is GuildSoundboardSoundUpdate -> handle(event, shard, kord, context) + is GuildSoundboardSoundDelete -> handle(event, shard, kord, context) + is SoundboardSounds -> handle(event, shard, kord, context) is PresenceUpdate -> handle(event, shard, kord, context) is InviteCreate -> handle(event, shard, kord, context) is InviteDelete -> handle(event, shard, kord, context) @@ -490,4 +497,108 @@ internal class GuildEventHandler : BaseGatewayEventHandler() { val data = InviteDeleteData.from(invite) InviteDeleteEvent(data, kord, shard, context?.get()) } + + private suspend fun handle( + event: GuildSoundboardSoundCreate, + shard: Int, + kord: Kord, + context: LazyContext?, + ) = with(event) { + val data = SoundboardSoundData.from(event.sound) + + kord.cache.put(data) + + GuildSoundboardSoundCreateEvent(GuildSoundboardSound(data, kord), shard, context?.get(), kord) + } + + private suspend fun handle( + event: GuildSoundboardSoundUpdate, + shard: Int, + kord: Kord, + context: LazyContext?, + ) = with(event) { + val data = SoundboardSoundData.from(event.sound) + + val old = kord.cache.query { + idEq(SoundboardSoundData::id, event.sound.soundId) + // this is a guild event, so guild_id will be present + idEq(SoundboardSoundData::guildId, event.sound.guildId.value!!) + }.singleOrNull() + + kord.cache.put(data) + + GuildSoundboardSoundUpdateEvent( + old?.let { GuildSoundboardSound(it, kord) }, + GuildSoundboardSound(data, kord), + shard, + context?.get(), + kord + ) + } + + private suspend fun handle( + event: GuildSoundboardSoundsUpdate, + shard: Int, + kord: Kord, + context: LazyContext?, + ) = with(event) { + val data = event.data.soundboardSounds.map(SoundboardSoundData::from) + + val updates = data.map { + val oldData = kord.cache.query { + idEq(SoundboardSoundData::id, it.id) + idEq(SoundboardSoundData::guildId, it.guildId.value!!) + }.singleOrNull() + val old = oldData?.let {GuildSoundboardSound(it, kord)} + + GuildSoundboardSoundsUpdateEvent.UpdatedGuildSoundboardSound(old, GuildSoundboardSound(it, kord)) + } + + kord.cache.putAll(data) + + + GuildSoundboardSoundsUpdateEvent(updates, shard, context?.get(), kord) + } + + private suspend fun handle( + event: GuildSoundboardSoundDelete, + shard: Int, + kord: Kord, + context: LazyContext?, + ) = with(event) { + val query = kord.cache.query { + idEq(SoundboardSoundData::id, event.sound.soundId) + idEq(SoundboardSoundData::guildId, event.sound.guildId) + } + val data = query.singleOrNull() + query.remove() + + GuildSoundboardSoundDeletEvent( + data?.let { GuildSoundboardSound(it, kord) }, + event.sound.soundId, + event.sound.guildId, + shard, + context?.get(), + kord + ) + } + + private suspend fun handle( + event: SoundboardSounds, + shard: Int, + kord: Kord, + context: LazyContext?, + ): CoreSoundboardSounds { + val data = event.data.soundboardSounds.map(SoundboardSoundData::from) + + kord.cache.putAll(data) + + return CoreSoundboardSounds( + data.map { GuildSoundboardSound(it, kord) }, + event.data.guildId, + shard, + context?.get(), + kord + ) + } } diff --git a/core/src/commonMain/kotlin/gateway/handler/VoiceEventHandler.kt b/core/src/commonMain/kotlin/gateway/handler/VoiceEventHandler.kt index 621fe005386..b8d7883bb4c 100644 --- a/core/src/commonMain/kotlin/gateway/handler/VoiceEventHandler.kt +++ b/core/src/commonMain/kotlin/gateway/handler/VoiceEventHandler.kt @@ -7,9 +7,11 @@ import dev.kord.core.cache.data.VoiceStateData import dev.kord.core.cache.data.id import dev.kord.core.cache.idEq import dev.kord.core.entity.VoiceState +import dev.kord.core.event.guild.VoiceChannelEffectSentEvent import dev.kord.core.event.guild.VoiceServerUpdateEvent import dev.kord.core.event.user.VoiceStateUpdateEvent import dev.kord.gateway.Event +import dev.kord.gateway.VoiceEffectSend import dev.kord.gateway.VoiceServerUpdate import dev.kord.gateway.VoiceStateUpdate import kotlinx.coroutines.flow.map @@ -22,6 +24,7 @@ internal class VoiceEventHandler : BaseGatewayEventHandler() { when (event) { is VoiceStateUpdate -> handle(event, shard, kord, context) is VoiceServerUpdate -> handle(event, shard, kord, context) + is VoiceEffectSend -> handle(event, shard, kord, context) else -> null } @@ -52,4 +55,14 @@ internal class VoiceEventHandler : BaseGatewayEventHandler() { VoiceServerUpdateEvent(token, guildId, endpoint, kord, shard, context?.get()) } + private suspend fun handle( + event: VoiceEffectSend, + shard: Int, + kord: Kord, + context: LazyContext?, + ): VoiceChannelEffectSentEvent = + with(event) { + VoiceChannelEffectSentEvent(effect, shard, context?.get(), kord) + } + } diff --git a/core/src/commonMain/kotlin/supplier/CacheEntitySupplier.kt b/core/src/commonMain/kotlin/supplier/CacheEntitySupplier.kt index 31fbbb86033..2cb7a4cafe5 100644 --- a/core/src/commonMain/kotlin/supplier/CacheEntitySupplier.kt +++ b/core/src/commonMain/kotlin/supplier/CacheEntitySupplier.kt @@ -240,6 +240,19 @@ public class CacheEntitySupplier(private val kord: Kord) : EntitySupplier { idEq(EmojiData::guildId, guildId) }.asFlow().map { GuildEmoji(it, kord) } + override suspend fun getGuildSoundboardSoundOrNull(guildId: Snowflake, soundId: Snowflake): GuildSoundboardSound? { + val data = cache.query { + idEq(SoundboardSoundData::guildId, guildId) + idEq(SoundboardSoundData::id, soundId) + }.asFlow().singleOrNull() ?: return null + + return GuildSoundboardSound(data, kord) + } + + override fun getGuildSoundboardSounds(guildId: Snowflake): Flow = cache.query { + idEq(SoundboardSoundData::guildId, guildId) + }.asFlow().map { GuildSoundboardSound(it, kord) } + override fun getCurrentUserGuilds(limit: Int?): Flow { checkLimit(limit) return guilds.filter { diff --git a/core/src/commonMain/kotlin/supplier/EntitySupplier.kt b/core/src/commonMain/kotlin/supplier/EntitySupplier.kt index 4c45962e56b..2dbe48892df 100644 --- a/core/src/commonMain/kotlin/supplier/EntitySupplier.kt +++ b/core/src/commonMain/kotlin/supplier/EntitySupplier.kt @@ -338,6 +338,30 @@ public interface EntitySupplier { */ public fun getEmojis(guildId: Snowflake): Flow + /** + * Requests the [GuildSoundboardSound] with the [soundId] in the [Guild] with the given [guildId]. + * + * @throws RequestException if something went wrong while retrieving the emoji. + */ + public suspend fun getGuildSoundboardSoundOrNull(guildId: Snowflake, soundId: Snowflake): GuildSoundboardSound? + + /** + * Requests the [GuildSoundboardSound] with the [soundId] in the [Guild] wit the given [guildId]. + * + * @throws RequestException if something went wrong while retrieving the emoji. + * @throws EntityNotFoundException if the sound was null. + */ + public suspend fun getGuildSoundboardSound(guildId: Snowflake, soundId: Snowflake): GuildSoundboardSound = + getGuildSoundboardSoundOrNull(guildId, soundId) ?: EntityNotFoundException.soundboardSoundNotFound(guildId, soundId) + + /** + * Requests the [guild soundboard sound][GuildSoundboardSound] of the [Guild] with the given [guildId]. + * + * 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 getGuildSoundboardSounds(guildId: Snowflake): Flow + /** * Requests [guilds][Guild] this bot is known to be part of. * diff --git a/core/src/commonMain/kotlin/supplier/FallbackEntitySupplier.kt b/core/src/commonMain/kotlin/supplier/FallbackEntitySupplier.kt index d098c9329b5..1ef9608ab06 100644 --- a/core/src/commonMain/kotlin/supplier/FallbackEntitySupplier.kt +++ b/core/src/commonMain/kotlin/supplier/FallbackEntitySupplier.kt @@ -96,6 +96,12 @@ private class FallbackEntitySupplier(val first: EntitySupplier, val second: Enti override fun getEmojis(guildId: Snowflake): Flow = first.getEmojis(guildId).switchIfEmpty(second.getEmojis(guildId)) + override suspend fun getGuildSoundboardSoundOrNull(guildId: Snowflake, soundId: Snowflake): GuildSoundboardSound? = + first.getGuildSoundboardSoundOrNull(guildId, soundId) ?: second.getGuildSoundboardSoundOrNull(guildId, soundId) + + override fun getGuildSoundboardSounds(guildId: Snowflake): Flow = + first.getGuildSoundboardSounds(guildId).switchIfEmpty(second.getGuildSoundboardSounds(guildId)) + override fun getCurrentUserGuilds(limit: Int?): Flow = first.getCurrentUserGuilds(limit).switchIfEmpty(second.getCurrentUserGuilds(limit)) diff --git a/core/src/commonMain/kotlin/supplier/RestEntitySupplier.kt b/core/src/commonMain/kotlin/supplier/RestEntitySupplier.kt index a57432799bc..7d576c596f3 100644 --- a/core/src/commonMain/kotlin/supplier/RestEntitySupplier.kt +++ b/core/src/commonMain/kotlin/supplier/RestEntitySupplier.kt @@ -224,6 +224,19 @@ public class RestEntitySupplier(public val kord: Kord) : EntitySupplier { } } + override suspend fun getGuildSoundboardSoundOrNull(guildId: Snowflake, soundId: Snowflake): GuildSoundboardSound? = catchNotFound { + val data = SoundboardSoundData.from(guild.getGuildSoundboardSound(guildId, soundId)) + + return GuildSoundboardSound(data, kord) + } + + override fun getGuildSoundboardSounds(guildId: Snowflake): Flow = flow { + for (sound in guild.listGuildSoundboardSounds(guildId).items) { + val data = SoundboardSoundData.from(sound) + emit(GuildSoundboardSound(data, kord)) + } + } + // maxBatchSize: see https://discord.com/developers/docs/resources/user#get-current-user-guilds override fun getCurrentUserGuilds(limit: Int?): Flow = limitedPagination(limit, maxBatchSize = 200) { batchSize -> diff --git a/core/src/commonMain/kotlin/supplier/StoreEntitySupplier.kt b/core/src/commonMain/kotlin/supplier/StoreEntitySupplier.kt index 2da0f5d0752..38000cc139b 100644 --- a/core/src/commonMain/kotlin/supplier/StoreEntitySupplier.kt +++ b/core/src/commonMain/kotlin/supplier/StoreEntitySupplier.kt @@ -126,9 +126,14 @@ public class StoreEntitySupplier( override fun getEmojis(guildId: Snowflake): Flow { return storeOnEach(supplier.getEmojis(guildId)) { it.data } - } + override suspend fun getGuildSoundboardSoundOrNull(guildId: Snowflake, soundId: Snowflake): GuildSoundboardSound? = + storeAndReturn(supplier.getGuildSoundboardSoundOrNull(guildId, soundId)) { it.data } + + override fun getGuildSoundboardSounds(guildId: Snowflake): Flow = + storeOnEach(supplier.getGuildSoundboardSounds(guildId)) { it.data } + override fun getCurrentUserGuilds(limit: Int?): Flow { return storeOnEach(supplier.getCurrentUserGuilds(limit)) { it.data } diff --git a/gateway/api/gateway.api b/gateway/api/gateway.api index b73047ebda7..6a11f6a9a09 100644 --- a/gateway/api/gateway.api +++ b/gateway/api/gateway.api @@ -1,3 +1,29 @@ +public abstract class dev/kord/gateway/AnimationType { + public static final field Companion Ldev/kord/gateway/AnimationType$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/gateway/AnimationType$Basic : dev/kord/gateway/AnimationType { + public static final field INSTANCE Ldev/kord/gateway/AnimationType$Basic; +} + +public final class dev/kord/gateway/AnimationType$Companion { + public final fun from (I)Ldev/kord/gateway/AnimationType; + public final fun getEntries ()Ljava/util/List; + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class dev/kord/gateway/AnimationType$Premium : dev/kord/gateway/AnimationType { + public static final field INSTANCE Ldev/kord/gateway/AnimationType$Premium; +} + +public final class dev/kord/gateway/AnimationType$Unknown : dev/kord/gateway/AnimationType { +} + public final class dev/kord/gateway/ApplicationCommandCreate : dev/kord/gateway/DispatchEvent { public fun (Ldev/kord/common/entity/DiscordApplicationCommand;Ljava/lang/Integer;)V public final fun component1 ()Ldev/kord/common/entity/DiscordApplicationCommand; @@ -281,6 +307,35 @@ public final class dev/kord/gateway/DefaultGatewayKt { public static synthetic fun DefaultGateway$default (Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Ldev/kord/gateway/DefaultGateway; } +public final class dev/kord/gateway/DeletedSound { + public static final field Companion Ldev/kord/gateway/DeletedSound$Companion; + public fun (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;)V + public final fun component1 ()Ldev/kord/common/entity/Snowflake; + public final fun component2 ()Ldev/kord/common/entity/Snowflake; + public final fun copy (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;)Ldev/kord/gateway/DeletedSound; + public static synthetic fun copy$default (Ldev/kord/gateway/DeletedSound;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;ILjava/lang/Object;)Ldev/kord/gateway/DeletedSound; + public fun equals (Ljava/lang/Object;)Z + public final fun getGuildId ()Ldev/kord/common/entity/Snowflake; + public final fun getSoundId ()Ldev/kord/common/entity/Snowflake; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public synthetic class dev/kord/gateway/DeletedSound$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Ldev/kord/gateway/DeletedSound$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/kord/gateway/DeletedSound; + 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/gateway/DeletedSound;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class dev/kord/gateway/DeletedSound$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class dev/kord/gateway/DiscordAutoModerationActionExecution { public static final field Companion Ldev/kord/gateway/DiscordAutoModerationActionExecution$Companion; public fun (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/DiscordAutoModerationAction;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/AutoModerationRuleTriggerType;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/optional/OptionalSnowflake;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V @@ -711,6 +766,7 @@ public final class dev/kord/gateway/GatewayKt { public static final fun requestGuildMembers (Ldev/kord/gateway/Gateway;Ldev/kord/common/entity/Snowflake;Lkotlin/jvm/functions/Function1;)Lkotlinx/coroutines/flow/Flow; public static final fun requestGuildMembers (Ldev/kord/gateway/Gateway;Ldev/kord/gateway/RequestGuildMembers;)Lkotlinx/coroutines/flow/Flow; public static synthetic fun requestGuildMembers$default (Ldev/kord/gateway/Gateway;Ldev/kord/common/entity/Snowflake;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lkotlinx/coroutines/flow/Flow; + public static final fun requestSoundboardSounds (Ldev/kord/gateway/Gateway;Ljava/util/List;)Lkotlinx/coroutines/flow/Flow; public static final fun start (Ldev/kord/gateway/Gateway;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun start$default (Ldev/kord/gateway/Gateway;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; } @@ -1033,6 +1089,58 @@ public final class dev/kord/gateway/GuildScheduledEventUserRemove : dev/kord/gat public fun toString ()Ljava/lang/String; } +public final class dev/kord/gateway/GuildSoundboardSoundCreate : dev/kord/gateway/DispatchEvent { + public fun (Ldev/kord/common/entity/DiscordSoundboardSound;Ljava/lang/Integer;)V + public final fun component1 ()Ldev/kord/common/entity/DiscordSoundboardSound; + public final fun component2 ()Ljava/lang/Integer; + public final fun copy (Ldev/kord/common/entity/DiscordSoundboardSound;Ljava/lang/Integer;)Ldev/kord/gateway/GuildSoundboardSoundCreate; + public static synthetic fun copy$default (Ldev/kord/gateway/GuildSoundboardSoundCreate;Ldev/kord/common/entity/DiscordSoundboardSound;Ljava/lang/Integer;ILjava/lang/Object;)Ldev/kord/gateway/GuildSoundboardSoundCreate; + public fun equals (Ljava/lang/Object;)Z + public fun getSequence ()Ljava/lang/Integer; + public final fun getSound ()Ldev/kord/common/entity/DiscordSoundboardSound; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class dev/kord/gateway/GuildSoundboardSoundDelete : dev/kord/gateway/DispatchEvent { + public fun (Ldev/kord/gateway/DeletedSound;Ljava/lang/Integer;)V + public final fun component1 ()Ldev/kord/gateway/DeletedSound; + public final fun component2 ()Ljava/lang/Integer; + public final fun copy (Ldev/kord/gateway/DeletedSound;Ljava/lang/Integer;)Ldev/kord/gateway/GuildSoundboardSoundDelete; + public static synthetic fun copy$default (Ldev/kord/gateway/GuildSoundboardSoundDelete;Ldev/kord/gateway/DeletedSound;Ljava/lang/Integer;ILjava/lang/Object;)Ldev/kord/gateway/GuildSoundboardSoundDelete; + public fun equals (Ljava/lang/Object;)Z + public fun getSequence ()Ljava/lang/Integer; + public final fun getSound ()Ldev/kord/gateway/DeletedSound; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class dev/kord/gateway/GuildSoundboardSoundUpdate : dev/kord/gateway/DispatchEvent { + public fun (Ldev/kord/common/entity/DiscordSoundboardSound;Ljava/lang/Integer;)V + public final fun component1 ()Ldev/kord/common/entity/DiscordSoundboardSound; + public final fun component2 ()Ljava/lang/Integer; + public final fun copy (Ldev/kord/common/entity/DiscordSoundboardSound;Ljava/lang/Integer;)Ldev/kord/gateway/GuildSoundboardSoundUpdate; + public static synthetic fun copy$default (Ldev/kord/gateway/GuildSoundboardSoundUpdate;Ldev/kord/common/entity/DiscordSoundboardSound;Ljava/lang/Integer;ILjava/lang/Object;)Ldev/kord/gateway/GuildSoundboardSoundUpdate; + public fun equals (Ljava/lang/Object;)Z + public fun getSequence ()Ljava/lang/Integer; + public final fun getSound ()Ldev/kord/common/entity/DiscordSoundboardSound; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class dev/kord/gateway/GuildSoundboardSoundsUpdate : dev/kord/gateway/DispatchEvent { + public fun (Ldev/kord/gateway/SoundboardSoundsChunk;Ljava/lang/Integer;)V + public final fun component1 ()Ldev/kord/gateway/SoundboardSoundsChunk; + public final fun component2 ()Ljava/lang/Integer; + public final fun copy (Ldev/kord/gateway/SoundboardSoundsChunk;Ljava/lang/Integer;)Ldev/kord/gateway/GuildSoundboardSoundsUpdate; + public static synthetic fun copy$default (Ldev/kord/gateway/GuildSoundboardSoundsUpdate;Ldev/kord/gateway/SoundboardSoundsChunk;Ljava/lang/Integer;ILjava/lang/Object;)Ldev/kord/gateway/GuildSoundboardSoundsUpdate; + public fun equals (Ljava/lang/Object;)Z + public final fun getData ()Ldev/kord/gateway/SoundboardSoundsChunk; + public fun getSequence ()Ljava/lang/Integer; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + public final class dev/kord/gateway/GuildUpdate : dev/kord/gateway/DispatchEvent { public fun (Ldev/kord/common/entity/DiscordGuild;Ljava/lang/Integer;)V public final fun component1 ()Ldev/kord/common/entity/DiscordGuild; @@ -1254,6 +1362,10 @@ public final class dev/kord/gateway/Intent$GuildEmojis : dev/kord/gateway/Intent public static final field INSTANCE Ldev/kord/gateway/Intent$GuildEmojis; } +public final class dev/kord/gateway/Intent$GuildExpressions : dev/kord/gateway/Intent { + public static final field INSTANCE Ldev/kord/gateway/Intent$GuildExpressions; +} + public final class dev/kord/gateway/Intent$GuildIntegrations : dev/kord/gateway/Intent { public static final field INSTANCE Ldev/kord/gateway/Intent$GuildIntegrations; } @@ -1528,6 +1640,7 @@ public final class dev/kord/gateway/OpCode : java/lang/Enum { public static final field InvalidSession Ldev/kord/gateway/OpCode; public static final field Reconnect Ldev/kord/gateway/OpCode; public static final field RequestGuildMembers Ldev/kord/gateway/OpCode; + public static final field RequestSoundboardSounds Ldev/kord/gateway/OpCode; public static final field Resume Ldev/kord/gateway/OpCode; public static final field StatusUpdate Ldev/kord/gateway/OpCode; public static final field Unknown Ldev/kord/gateway/OpCode; @@ -1666,6 +1779,33 @@ public final class dev/kord/gateway/RequestGuildMembers$Nonce { public final fun new ()Ljava/lang/String; } +public final class dev/kord/gateway/RequestSoundboardSounds : dev/kord/gateway/Command { + public static final field Companion Ldev/kord/gateway/RequestSoundboardSounds$Companion; + public fun (Ljava/util/List;)V + public final fun component1 ()Ljava/util/List; + public final fun copy (Ljava/util/List;)Ldev/kord/gateway/RequestSoundboardSounds; + public static synthetic fun copy$default (Ldev/kord/gateway/RequestSoundboardSounds;Ljava/util/List;ILjava/lang/Object;)Ldev/kord/gateway/RequestSoundboardSounds; + public fun equals (Ljava/lang/Object;)Z + public final fun getGuildIds ()Ljava/util/List; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public synthetic class dev/kord/gateway/RequestSoundboardSounds$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Ldev/kord/gateway/RequestSoundboardSounds$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/kord/gateway/RequestSoundboardSounds; + 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/gateway/RequestSoundboardSounds;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class dev/kord/gateway/RequestSoundboardSounds$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class dev/kord/gateway/Resume : dev/kord/gateway/Command { public static final field Companion Ldev/kord/gateway/Resume$Companion; public fun (Ljava/lang/String;Ljava/lang/String;I)V @@ -1724,6 +1864,48 @@ public final class dev/kord/gateway/Resumed$Companion { public final fun serializer ()Lkotlinx/serialization/KSerializer; } +public final class dev/kord/gateway/SoundboardSounds : dev/kord/gateway/DispatchEvent { + public fun (Ldev/kord/gateway/SoundboardSoundsChunk;Ljava/lang/Integer;)V + public final fun component1 ()Ldev/kord/gateway/SoundboardSoundsChunk; + public final fun component2 ()Ljava/lang/Integer; + public final fun copy (Ldev/kord/gateway/SoundboardSoundsChunk;Ljava/lang/Integer;)Ldev/kord/gateway/SoundboardSounds; + public static synthetic fun copy$default (Ldev/kord/gateway/SoundboardSounds;Ldev/kord/gateway/SoundboardSoundsChunk;Ljava/lang/Integer;ILjava/lang/Object;)Ldev/kord/gateway/SoundboardSounds; + public fun equals (Ljava/lang/Object;)Z + public final fun getData ()Ldev/kord/gateway/SoundboardSoundsChunk; + public fun getSequence ()Ljava/lang/Integer; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class dev/kord/gateway/SoundboardSoundsChunk { + public static final field Companion Ldev/kord/gateway/SoundboardSoundsChunk$Companion; + public fun (Ljava/util/List;Ldev/kord/common/entity/Snowflake;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ldev/kord/common/entity/Snowflake; + public final fun copy (Ljava/util/List;Ldev/kord/common/entity/Snowflake;)Ldev/kord/gateway/SoundboardSoundsChunk; + public static synthetic fun copy$default (Ldev/kord/gateway/SoundboardSoundsChunk;Ljava/util/List;Ldev/kord/common/entity/Snowflake;ILjava/lang/Object;)Ldev/kord/gateway/SoundboardSoundsChunk; + public fun equals (Ljava/lang/Object;)Z + public final fun getGuildId ()Ldev/kord/common/entity/Snowflake; + public final fun getSoundboardSounds ()Ljava/util/List; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public synthetic class dev/kord/gateway/SoundboardSoundsChunk$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Ldev/kord/gateway/SoundboardSoundsChunk$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/kord/gateway/SoundboardSoundsChunk; + 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/gateway/SoundboardSoundsChunk;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class dev/kord/gateway/SoundboardSoundsChunk$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; @@ -1957,6 +2139,61 @@ public final class dev/kord/gateway/UserUpdate : dev/kord/gateway/DispatchEvent public fun toString ()Ljava/lang/String; } +public final class dev/kord/gateway/VoiceChannelEffect { + public static final field Companion Ldev/kord/gateway/VoiceChannelEffect$Companion; + public fun (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/optional/OptionalDouble;)V + public synthetic fun (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/optional/OptionalDouble;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 ()Ldev/kord/common/entity/Snowflake; + public final fun component4 ()Ldev/kord/common/entity/optional/Optional; + public final fun component5 ()Ldev/kord/common/entity/optional/Optional; + public final fun component6 ()Ldev/kord/common/entity/optional/OptionalInt; + public final fun component7 ()Ldev/kord/common/entity/optional/OptionalSnowflake; + public final fun component8 ()Ldev/kord/common/entity/optional/OptionalDouble; + public final fun copy (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/optional/OptionalDouble;)Ldev/kord/gateway/VoiceChannelEffect; + public static synthetic fun copy$default (Ldev/kord/gateway/VoiceChannelEffect;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalInt;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/optional/OptionalDouble;ILjava/lang/Object;)Ldev/kord/gateway/VoiceChannelEffect; + public fun equals (Ljava/lang/Object;)Z + public final fun getAnimationId ()Ldev/kord/common/entity/optional/OptionalInt; + public final fun getAnimationType ()Ldev/kord/common/entity/optional/Optional; + public final fun getChannelId ()Ldev/kord/common/entity/Snowflake; + public final fun getEmoji ()Ldev/kord/common/entity/optional/Optional; + public final fun getGuildId ()Ldev/kord/common/entity/Snowflake; + public final fun getSoundId ()Ldev/kord/common/entity/optional/OptionalSnowflake; + public final fun getSoundVolume ()Ldev/kord/common/entity/optional/OptionalDouble; + public final fun getUserId ()Ldev/kord/common/entity/Snowflake; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public synthetic class dev/kord/gateway/VoiceChannelEffect$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Ldev/kord/gateway/VoiceChannelEffect$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/kord/gateway/VoiceChannelEffect; + 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/gateway/VoiceChannelEffect;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class dev/kord/gateway/VoiceChannelEffect$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class dev/kord/gateway/VoiceEffectSend : dev/kord/gateway/DispatchEvent { + public fun (Ldev/kord/gateway/VoiceChannelEffect;Ljava/lang/Integer;)V + public final fun component1 ()Ldev/kord/gateway/VoiceChannelEffect; + public final fun component2 ()Ljava/lang/Integer; + public final fun copy (Ldev/kord/gateway/VoiceChannelEffect;Ljava/lang/Integer;)Ldev/kord/gateway/VoiceEffectSend; + public static synthetic fun copy$default (Ldev/kord/gateway/VoiceEffectSend;Ldev/kord/gateway/VoiceChannelEffect;Ljava/lang/Integer;ILjava/lang/Object;)Ldev/kord/gateway/VoiceEffectSend; + public fun equals (Ljava/lang/Object;)Z + public final fun getEffect ()Ldev/kord/gateway/VoiceChannelEffect; + public fun getSequence ()Ljava/lang/Integer; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + public final class dev/kord/gateway/VoiceServerUpdate : dev/kord/gateway/DispatchEvent { public fun (Ldev/kord/common/entity/DiscordVoiceServerUpdateData;Ljava/lang/Integer;)V public final fun component1 ()Ldev/kord/common/entity/DiscordVoiceServerUpdateData; diff --git a/gateway/api/gateway.klib.api b/gateway/api/gateway.klib.api index b2e60f175ae..405889b6f7e 100644 --- a/gateway/api/gateway.klib.api +++ b/gateway/api/gateway.klib.api @@ -44,6 +44,7 @@ final enum class dev.kord.gateway/OpCode : kotlin/Enum enum entry InvalidSession // dev.kord.gateway/OpCode.InvalidSession|null[0] enum entry Reconnect // dev.kord.gateway/OpCode.Reconnect|null[0] enum entry RequestGuildMembers // dev.kord.gateway/OpCode.RequestGuildMembers|null[0] + enum entry RequestSoundboardSounds // dev.kord.gateway/OpCode.RequestSoundboardSounds|null[0] enum entry Resume // dev.kord.gateway/OpCode.Resume|null[0] enum entry StatusUpdate // dev.kord.gateway/OpCode.StatusUpdate|null[0] enum entry Unknown // dev.kord.gateway/OpCode.Unknown|null[0] @@ -458,6 +459,35 @@ final class dev.kord.gateway/DefaultGatewayData { // dev.kord.gateway/DefaultGat final fun toString(): kotlin/String // dev.kord.gateway/DefaultGatewayData.toString|toString(){}[0] } +final class dev.kord.gateway/DeletedSound { // dev.kord.gateway/DeletedSound|null[0] + constructor (dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake) // dev.kord.gateway/DeletedSound.|(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake){}[0] + + final val guildId // dev.kord.gateway/DeletedSound.guildId|{}guildId[0] + final fun (): dev.kord.common.entity/Snowflake // dev.kord.gateway/DeletedSound.guildId.|(){}[0] + final val soundId // dev.kord.gateway/DeletedSound.soundId|{}soundId[0] + final fun (): dev.kord.common.entity/Snowflake // dev.kord.gateway/DeletedSound.soundId.|(){}[0] + + final fun component1(): dev.kord.common.entity/Snowflake // dev.kord.gateway/DeletedSound.component1|component1(){}[0] + final fun component2(): dev.kord.common.entity/Snowflake // dev.kord.gateway/DeletedSound.component2|component2(){}[0] + final fun copy(dev.kord.common.entity/Snowflake = ..., dev.kord.common.entity/Snowflake = ...): dev.kord.gateway/DeletedSound // dev.kord.gateway/DeletedSound.copy|copy(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // dev.kord.gateway/DeletedSound.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // dev.kord.gateway/DeletedSound.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // dev.kord.gateway/DeletedSound.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // dev.kord.gateway/DeletedSound.$serializer|null[0] + final val descriptor // dev.kord.gateway/DeletedSound.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // dev.kord.gateway/DeletedSound.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // dev.kord.gateway/DeletedSound.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): dev.kord.gateway/DeletedSound // dev.kord.gateway/DeletedSound.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, dev.kord.gateway/DeletedSound) // dev.kord.gateway/DeletedSound.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;dev.kord.gateway.DeletedSound){}[0] + } + + final object Companion { // dev.kord.gateway/DeletedSound.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // dev.kord.gateway/DeletedSound.Companion.serializer|serializer(){}[0] + } +} + final class dev.kord.gateway/DiscordAutoModerationActionExecution { // dev.kord.gateway/DiscordAutoModerationActionExecution|null[0] constructor (dev.kord.common.entity/Snowflake, dev.kord.common.entity/DiscordAutoModerationAction, dev.kord.common.entity/Snowflake, dev.kord.common.entity/AutoModerationRuleTriggerType, dev.kord.common.entity/Snowflake, dev.kord.common.entity.optional/OptionalSnowflake = ..., dev.kord.common.entity.optional/OptionalSnowflake = ..., dev.kord.common.entity.optional/OptionalSnowflake = ..., kotlin/String, kotlin/String?, kotlin/String?) // dev.kord.gateway/DiscordAutoModerationActionExecution.|(dev.kord.common.entity.Snowflake;dev.kord.common.entity.DiscordAutoModerationAction;dev.kord.common.entity.Snowflake;dev.kord.common.entity.AutoModerationRuleTriggerType;dev.kord.common.entity.Snowflake;dev.kord.common.entity.optional.OptionalSnowflake;dev.kord.common.entity.optional.OptionalSnowflake;dev.kord.common.entity.optional.OptionalSnowflake;kotlin.String;kotlin.String?;kotlin.String?){}[0] @@ -1267,6 +1297,70 @@ final class dev.kord.gateway/GuildScheduledEventUserRemove : dev.kord.gateway/Di final fun toString(): kotlin/String // dev.kord.gateway/GuildScheduledEventUserRemove.toString|toString(){}[0] } +final class dev.kord.gateway/GuildSoundboardSoundCreate : dev.kord.gateway/DispatchEvent { // dev.kord.gateway/GuildSoundboardSoundCreate|null[0] + constructor (dev.kord.common.entity/DiscordSoundboardSound, kotlin/Int?) // dev.kord.gateway/GuildSoundboardSoundCreate.|(dev.kord.common.entity.DiscordSoundboardSound;kotlin.Int?){}[0] + + final val sequence // dev.kord.gateway/GuildSoundboardSoundCreate.sequence|{}sequence[0] + final fun (): kotlin/Int? // dev.kord.gateway/GuildSoundboardSoundCreate.sequence.|(){}[0] + final val sound // dev.kord.gateway/GuildSoundboardSoundCreate.sound|{}sound[0] + final fun (): dev.kord.common.entity/DiscordSoundboardSound // dev.kord.gateway/GuildSoundboardSoundCreate.sound.|(){}[0] + + final fun component1(): dev.kord.common.entity/DiscordSoundboardSound // dev.kord.gateway/GuildSoundboardSoundCreate.component1|component1(){}[0] + final fun component2(): kotlin/Int? // dev.kord.gateway/GuildSoundboardSoundCreate.component2|component2(){}[0] + final fun copy(dev.kord.common.entity/DiscordSoundboardSound = ..., kotlin/Int? = ...): dev.kord.gateway/GuildSoundboardSoundCreate // dev.kord.gateway/GuildSoundboardSoundCreate.copy|copy(dev.kord.common.entity.DiscordSoundboardSound;kotlin.Int?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // dev.kord.gateway/GuildSoundboardSoundCreate.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // dev.kord.gateway/GuildSoundboardSoundCreate.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // dev.kord.gateway/GuildSoundboardSoundCreate.toString|toString(){}[0] +} + +final class dev.kord.gateway/GuildSoundboardSoundDelete : dev.kord.gateway/DispatchEvent { // dev.kord.gateway/GuildSoundboardSoundDelete|null[0] + constructor (dev.kord.gateway/DeletedSound, kotlin/Int?) // dev.kord.gateway/GuildSoundboardSoundDelete.|(dev.kord.gateway.DeletedSound;kotlin.Int?){}[0] + + final val sequence // dev.kord.gateway/GuildSoundboardSoundDelete.sequence|{}sequence[0] + final fun (): kotlin/Int? // dev.kord.gateway/GuildSoundboardSoundDelete.sequence.|(){}[0] + final val sound // dev.kord.gateway/GuildSoundboardSoundDelete.sound|{}sound[0] + final fun (): dev.kord.gateway/DeletedSound // dev.kord.gateway/GuildSoundboardSoundDelete.sound.|(){}[0] + + final fun component1(): dev.kord.gateway/DeletedSound // dev.kord.gateway/GuildSoundboardSoundDelete.component1|component1(){}[0] + final fun component2(): kotlin/Int? // dev.kord.gateway/GuildSoundboardSoundDelete.component2|component2(){}[0] + final fun copy(dev.kord.gateway/DeletedSound = ..., kotlin/Int? = ...): dev.kord.gateway/GuildSoundboardSoundDelete // dev.kord.gateway/GuildSoundboardSoundDelete.copy|copy(dev.kord.gateway.DeletedSound;kotlin.Int?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // dev.kord.gateway/GuildSoundboardSoundDelete.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // dev.kord.gateway/GuildSoundboardSoundDelete.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // dev.kord.gateway/GuildSoundboardSoundDelete.toString|toString(){}[0] +} + +final class dev.kord.gateway/GuildSoundboardSoundUpdate : dev.kord.gateway/DispatchEvent { // dev.kord.gateway/GuildSoundboardSoundUpdate|null[0] + constructor (dev.kord.common.entity/DiscordSoundboardSound, kotlin/Int?) // dev.kord.gateway/GuildSoundboardSoundUpdate.|(dev.kord.common.entity.DiscordSoundboardSound;kotlin.Int?){}[0] + + final val sequence // dev.kord.gateway/GuildSoundboardSoundUpdate.sequence|{}sequence[0] + final fun (): kotlin/Int? // dev.kord.gateway/GuildSoundboardSoundUpdate.sequence.|(){}[0] + final val sound // dev.kord.gateway/GuildSoundboardSoundUpdate.sound|{}sound[0] + final fun (): dev.kord.common.entity/DiscordSoundboardSound // dev.kord.gateway/GuildSoundboardSoundUpdate.sound.|(){}[0] + + final fun component1(): dev.kord.common.entity/DiscordSoundboardSound // dev.kord.gateway/GuildSoundboardSoundUpdate.component1|component1(){}[0] + final fun component2(): kotlin/Int? // dev.kord.gateway/GuildSoundboardSoundUpdate.component2|component2(){}[0] + final fun copy(dev.kord.common.entity/DiscordSoundboardSound = ..., kotlin/Int? = ...): dev.kord.gateway/GuildSoundboardSoundUpdate // dev.kord.gateway/GuildSoundboardSoundUpdate.copy|copy(dev.kord.common.entity.DiscordSoundboardSound;kotlin.Int?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // dev.kord.gateway/GuildSoundboardSoundUpdate.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // dev.kord.gateway/GuildSoundboardSoundUpdate.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // dev.kord.gateway/GuildSoundboardSoundUpdate.toString|toString(){}[0] +} + +final class dev.kord.gateway/GuildSoundboardSoundsUpdate : dev.kord.gateway/DispatchEvent { // dev.kord.gateway/GuildSoundboardSoundsUpdate|null[0] + constructor (dev.kord.gateway/SoundboardSoundsChunk, kotlin/Int?) // dev.kord.gateway/GuildSoundboardSoundsUpdate.|(dev.kord.gateway.SoundboardSoundsChunk;kotlin.Int?){}[0] + + final val data // dev.kord.gateway/GuildSoundboardSoundsUpdate.data|{}data[0] + final fun (): dev.kord.gateway/SoundboardSoundsChunk // dev.kord.gateway/GuildSoundboardSoundsUpdate.data.|(){}[0] + final val sequence // dev.kord.gateway/GuildSoundboardSoundsUpdate.sequence|{}sequence[0] + final fun (): kotlin/Int? // dev.kord.gateway/GuildSoundboardSoundsUpdate.sequence.|(){}[0] + + final fun component1(): dev.kord.gateway/SoundboardSoundsChunk // dev.kord.gateway/GuildSoundboardSoundsUpdate.component1|component1(){}[0] + final fun component2(): kotlin/Int? // dev.kord.gateway/GuildSoundboardSoundsUpdate.component2|component2(){}[0] + final fun copy(dev.kord.gateway/SoundboardSoundsChunk = ..., kotlin/Int? = ...): dev.kord.gateway/GuildSoundboardSoundsUpdate // dev.kord.gateway/GuildSoundboardSoundsUpdate.copy|copy(dev.kord.gateway.SoundboardSoundsChunk;kotlin.Int?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // dev.kord.gateway/GuildSoundboardSoundsUpdate.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // dev.kord.gateway/GuildSoundboardSoundsUpdate.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // dev.kord.gateway/GuildSoundboardSoundsUpdate.toString|toString(){}[0] +} + final class dev.kord.gateway/GuildUpdate : dev.kord.gateway/DispatchEvent { // dev.kord.gateway/GuildUpdate|null[0] constructor (dev.kord.common.entity/DiscordGuild, kotlin/Int?) // dev.kord.gateway/GuildUpdate.|(dev.kord.common.entity.DiscordGuild;kotlin.Int?){}[0] @@ -1827,6 +1921,34 @@ final class dev.kord.gateway/RequestGuildMembers : dev.kord.gateway/Command { // } } +final class dev.kord.gateway/RequestSoundboardSounds : dev.kord.gateway/Command { // dev.kord.gateway/RequestSoundboardSounds|null[0] + constructor (kotlin.collections/List) // dev.kord.gateway/RequestSoundboardSounds.|(kotlin.collections.List){}[0] + + final val guildIds // dev.kord.gateway/RequestSoundboardSounds.guildIds|{}guildIds[0] + final fun (): kotlin.collections/List // dev.kord.gateway/RequestSoundboardSounds.guildIds.|(){}[0] + + final fun component1(): kotlin.collections/List // dev.kord.gateway/RequestSoundboardSounds.component1|component1(){}[0] + final fun copy(kotlin.collections/List = ...): dev.kord.gateway/RequestSoundboardSounds // dev.kord.gateway/RequestSoundboardSounds.copy|copy(kotlin.collections.List){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // dev.kord.gateway/RequestSoundboardSounds.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // dev.kord.gateway/RequestSoundboardSounds.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // dev.kord.gateway/RequestSoundboardSounds.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // dev.kord.gateway/RequestSoundboardSounds.$serializer|null[0] + final val descriptor // dev.kord.gateway/RequestSoundboardSounds.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // dev.kord.gateway/RequestSoundboardSounds.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // dev.kord.gateway/RequestSoundboardSounds.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): dev.kord.gateway/RequestSoundboardSounds // dev.kord.gateway/RequestSoundboardSounds.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, dev.kord.gateway/RequestSoundboardSounds) // dev.kord.gateway/RequestSoundboardSounds.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;dev.kord.gateway.RequestSoundboardSounds){}[0] + } + + final object Companion { // dev.kord.gateway/RequestSoundboardSounds.Companion|null[0] + final val $childSerializers // dev.kord.gateway/RequestSoundboardSounds.Companion.$childSerializers|{}$childSerializers[0] + + final fun serializer(): kotlinx.serialization/KSerializer // dev.kord.gateway/RequestSoundboardSounds.Companion.serializer|serializer(){}[0] + } +} + final class dev.kord.gateway/Resume : dev.kord.gateway/Command { // dev.kord.gateway/Resume|null[0] constructor (kotlin/String, kotlin/String, kotlin/Int) // dev.kord.gateway/Resume.|(kotlin.String;kotlin.String;kotlin.Int){}[0] @@ -1885,6 +2007,53 @@ final class dev.kord.gateway/Resumed : dev.kord.gateway/DispatchEvent { // dev.k } } +final class dev.kord.gateway/SoundboardSounds : dev.kord.gateway/DispatchEvent { // dev.kord.gateway/SoundboardSounds|null[0] + constructor (dev.kord.gateway/SoundboardSoundsChunk, kotlin/Int?) // dev.kord.gateway/SoundboardSounds.|(dev.kord.gateway.SoundboardSoundsChunk;kotlin.Int?){}[0] + + final val data // dev.kord.gateway/SoundboardSounds.data|{}data[0] + final fun (): dev.kord.gateway/SoundboardSoundsChunk // dev.kord.gateway/SoundboardSounds.data.|(){}[0] + final val sequence // dev.kord.gateway/SoundboardSounds.sequence|{}sequence[0] + final fun (): kotlin/Int? // dev.kord.gateway/SoundboardSounds.sequence.|(){}[0] + + final fun component1(): dev.kord.gateway/SoundboardSoundsChunk // dev.kord.gateway/SoundboardSounds.component1|component1(){}[0] + final fun component2(): kotlin/Int? // dev.kord.gateway/SoundboardSounds.component2|component2(){}[0] + final fun copy(dev.kord.gateway/SoundboardSoundsChunk = ..., kotlin/Int? = ...): dev.kord.gateway/SoundboardSounds // dev.kord.gateway/SoundboardSounds.copy|copy(dev.kord.gateway.SoundboardSoundsChunk;kotlin.Int?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // dev.kord.gateway/SoundboardSounds.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // dev.kord.gateway/SoundboardSounds.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // dev.kord.gateway/SoundboardSounds.toString|toString(){}[0] +} + +final class dev.kord.gateway/SoundboardSoundsChunk { // dev.kord.gateway/SoundboardSoundsChunk|null[0] + constructor (kotlin.collections/List, dev.kord.common.entity/Snowflake) // dev.kord.gateway/SoundboardSoundsChunk.|(kotlin.collections.List;dev.kord.common.entity.Snowflake){}[0] + + final val guildId // dev.kord.gateway/SoundboardSoundsChunk.guildId|{}guildId[0] + final fun (): dev.kord.common.entity/Snowflake // dev.kord.gateway/SoundboardSoundsChunk.guildId.|(){}[0] + final val soundboardSounds // dev.kord.gateway/SoundboardSoundsChunk.soundboardSounds|{}soundboardSounds[0] + final fun (): kotlin.collections/List // dev.kord.gateway/SoundboardSoundsChunk.soundboardSounds.|(){}[0] + + final fun component1(): kotlin.collections/List // dev.kord.gateway/SoundboardSoundsChunk.component1|component1(){}[0] + final fun component2(): dev.kord.common.entity/Snowflake // dev.kord.gateway/SoundboardSoundsChunk.component2|component2(){}[0] + final fun copy(kotlin.collections/List = ..., dev.kord.common.entity/Snowflake = ...): dev.kord.gateway/SoundboardSoundsChunk // dev.kord.gateway/SoundboardSoundsChunk.copy|copy(kotlin.collections.List;dev.kord.common.entity.Snowflake){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // dev.kord.gateway/SoundboardSoundsChunk.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // dev.kord.gateway/SoundboardSoundsChunk.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // dev.kord.gateway/SoundboardSoundsChunk.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // dev.kord.gateway/SoundboardSoundsChunk.$serializer|null[0] + final val descriptor // dev.kord.gateway/SoundboardSoundsChunk.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // dev.kord.gateway/SoundboardSoundsChunk.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // dev.kord.gateway/SoundboardSoundsChunk.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): dev.kord.gateway/SoundboardSoundsChunk // dev.kord.gateway/SoundboardSoundsChunk.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, dev.kord.gateway/SoundboardSoundsChunk) // dev.kord.gateway/SoundboardSoundsChunk.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;dev.kord.gateway.SoundboardSoundsChunk){}[0] + } + + final object Companion { // dev.kord.gateway/SoundboardSoundsChunk.Companion|null[0] + final val $childSerializers // dev.kord.gateway/SoundboardSoundsChunk.Companion.$childSerializers|{}$childSerializers[0] + + final fun serializer(): kotlinx.serialization/KSerializer // dev.kord.gateway/SoundboardSoundsChunk.Companion.serializer|serializer(){}[0] + } +} + 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] @@ -2162,6 +2331,71 @@ final class dev.kord.gateway/UserUpdate : dev.kord.gateway/DispatchEvent { // de final fun toString(): kotlin/String // dev.kord.gateway/UserUpdate.toString|toString(){}[0] } +final class dev.kord.gateway/VoiceChannelEffect { // dev.kord.gateway/VoiceChannelEffect|null[0] + constructor (dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake, dev.kord.common.entity.optional/Optional, dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/OptionalInt = ..., dev.kord.common.entity.optional/OptionalSnowflake = ..., dev.kord.common.entity.optional/OptionalDouble = ...) // dev.kord.gateway/VoiceChannelEffect.|(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.OptionalInt;dev.kord.common.entity.optional.OptionalSnowflake;dev.kord.common.entity.optional.OptionalDouble){}[0] + + final val animationId // dev.kord.gateway/VoiceChannelEffect.animationId|{}animationId[0] + final fun (): dev.kord.common.entity.optional/OptionalInt // dev.kord.gateway/VoiceChannelEffect.animationId.|(){}[0] + final val animationType // dev.kord.gateway/VoiceChannelEffect.animationType|{}animationType[0] + final fun (): dev.kord.common.entity.optional/Optional // dev.kord.gateway/VoiceChannelEffect.animationType.|(){}[0] + final val channelId // dev.kord.gateway/VoiceChannelEffect.channelId|{}channelId[0] + final fun (): dev.kord.common.entity/Snowflake // dev.kord.gateway/VoiceChannelEffect.channelId.|(){}[0] + final val emoji // dev.kord.gateway/VoiceChannelEffect.emoji|{}emoji[0] + final fun (): dev.kord.common.entity.optional/Optional // dev.kord.gateway/VoiceChannelEffect.emoji.|(){}[0] + final val guildId // dev.kord.gateway/VoiceChannelEffect.guildId|{}guildId[0] + final fun (): dev.kord.common.entity/Snowflake // dev.kord.gateway/VoiceChannelEffect.guildId.|(){}[0] + final val soundId // dev.kord.gateway/VoiceChannelEffect.soundId|{}soundId[0] + final fun (): dev.kord.common.entity.optional/OptionalSnowflake // dev.kord.gateway/VoiceChannelEffect.soundId.|(){}[0] + final val soundVolume // dev.kord.gateway/VoiceChannelEffect.soundVolume|{}soundVolume[0] + final fun (): dev.kord.common.entity.optional/OptionalDouble // dev.kord.gateway/VoiceChannelEffect.soundVolume.|(){}[0] + final val userId // dev.kord.gateway/VoiceChannelEffect.userId|{}userId[0] + final fun (): dev.kord.common.entity/Snowflake // dev.kord.gateway/VoiceChannelEffect.userId.|(){}[0] + + final fun component1(): dev.kord.common.entity/Snowflake // dev.kord.gateway/VoiceChannelEffect.component1|component1(){}[0] + final fun component2(): dev.kord.common.entity/Snowflake // dev.kord.gateway/VoiceChannelEffect.component2|component2(){}[0] + final fun component3(): dev.kord.common.entity/Snowflake // dev.kord.gateway/VoiceChannelEffect.component3|component3(){}[0] + final fun component4(): dev.kord.common.entity.optional/Optional // dev.kord.gateway/VoiceChannelEffect.component4|component4(){}[0] + final fun component5(): dev.kord.common.entity.optional/Optional // dev.kord.gateway/VoiceChannelEffect.component5|component5(){}[0] + final fun component6(): dev.kord.common.entity.optional/OptionalInt // dev.kord.gateway/VoiceChannelEffect.component6|component6(){}[0] + final fun component7(): dev.kord.common.entity.optional/OptionalSnowflake // dev.kord.gateway/VoiceChannelEffect.component7|component7(){}[0] + final fun component8(): dev.kord.common.entity.optional/OptionalDouble // dev.kord.gateway/VoiceChannelEffect.component8|component8(){}[0] + final fun copy(dev.kord.common.entity/Snowflake = ..., dev.kord.common.entity/Snowflake = ..., dev.kord.common.entity/Snowflake = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/OptionalInt = ..., dev.kord.common.entity.optional/OptionalSnowflake = ..., dev.kord.common.entity.optional/OptionalDouble = ...): dev.kord.gateway/VoiceChannelEffect // dev.kord.gateway/VoiceChannelEffect.copy|copy(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.OptionalInt;dev.kord.common.entity.optional.OptionalSnowflake;dev.kord.common.entity.optional.OptionalDouble){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // dev.kord.gateway/VoiceChannelEffect.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // dev.kord.gateway/VoiceChannelEffect.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // dev.kord.gateway/VoiceChannelEffect.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // dev.kord.gateway/VoiceChannelEffect.$serializer|null[0] + final val descriptor // dev.kord.gateway/VoiceChannelEffect.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // dev.kord.gateway/VoiceChannelEffect.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // dev.kord.gateway/VoiceChannelEffect.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): dev.kord.gateway/VoiceChannelEffect // dev.kord.gateway/VoiceChannelEffect.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, dev.kord.gateway/VoiceChannelEffect) // dev.kord.gateway/VoiceChannelEffect.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;dev.kord.gateway.VoiceChannelEffect){}[0] + } + + final object Companion { // dev.kord.gateway/VoiceChannelEffect.Companion|null[0] + final val $childSerializers // dev.kord.gateway/VoiceChannelEffect.Companion.$childSerializers|{}$childSerializers[0] + + final fun serializer(): kotlinx.serialization/KSerializer // dev.kord.gateway/VoiceChannelEffect.Companion.serializer|serializer(){}[0] + } +} + +final class dev.kord.gateway/VoiceEffectSend : dev.kord.gateway/DispatchEvent { // dev.kord.gateway/VoiceEffectSend|null[0] + constructor (dev.kord.gateway/VoiceChannelEffect, kotlin/Int?) // dev.kord.gateway/VoiceEffectSend.|(dev.kord.gateway.VoiceChannelEffect;kotlin.Int?){}[0] + + final val effect // dev.kord.gateway/VoiceEffectSend.effect|{}effect[0] + final fun (): dev.kord.gateway/VoiceChannelEffect // dev.kord.gateway/VoiceEffectSend.effect.|(){}[0] + final val sequence // dev.kord.gateway/VoiceEffectSend.sequence|{}sequence[0] + final fun (): kotlin/Int? // dev.kord.gateway/VoiceEffectSend.sequence.|(){}[0] + + final fun component1(): dev.kord.gateway/VoiceChannelEffect // dev.kord.gateway/VoiceEffectSend.component1|component1(){}[0] + final fun component2(): kotlin/Int? // dev.kord.gateway/VoiceEffectSend.component2|component2(){}[0] + final fun copy(dev.kord.gateway/VoiceChannelEffect = ..., kotlin/Int? = ...): dev.kord.gateway/VoiceEffectSend // dev.kord.gateway/VoiceEffectSend.copy|copy(dev.kord.gateway.VoiceChannelEffect;kotlin.Int?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // dev.kord.gateway/VoiceEffectSend.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // dev.kord.gateway/VoiceEffectSend.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // dev.kord.gateway/VoiceEffectSend.toString|toString(){}[0] +} + final class dev.kord.gateway/VoiceServerUpdate : dev.kord.gateway/DispatchEvent { // dev.kord.gateway/VoiceServerUpdate|null[0] constructor (dev.kord.common.entity/DiscordVoiceServerUpdateData, kotlin/Int?) // dev.kord.gateway/VoiceServerUpdate.|(dev.kord.common.entity.DiscordVoiceServerUpdateData;kotlin.Int?){}[0] @@ -2210,6 +2444,29 @@ final class dev.kord.gateway/WebhooksUpdate : dev.kord.gateway/DispatchEvent { / final fun toString(): kotlin/String // dev.kord.gateway/WebhooksUpdate.toString|toString(){}[0] } +sealed class dev.kord.gateway/AnimationType { // dev.kord.gateway/AnimationType|null[0] + final val value // dev.kord.gateway/AnimationType.value|{}value[0] + final fun (): kotlin/Int // dev.kord.gateway/AnimationType.value.|(){}[0] + + final fun equals(kotlin/Any?): kotlin/Boolean // dev.kord.gateway/AnimationType.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // dev.kord.gateway/AnimationType.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // dev.kord.gateway/AnimationType.toString|toString(){}[0] + + final class Unknown : dev.kord.gateway/AnimationType // dev.kord.gateway/AnimationType.Unknown|null[0] + + final object Basic : dev.kord.gateway/AnimationType // dev.kord.gateway/AnimationType.Basic|null[0] + + final object Companion { // dev.kord.gateway/AnimationType.Companion|null[0] + final val entries // dev.kord.gateway/AnimationType.Companion.entries|{}entries[0] + final fun (): kotlin.collections/List // dev.kord.gateway/AnimationType.Companion.entries.|(){}[0] + + final fun from(kotlin/Int): dev.kord.gateway/AnimationType // dev.kord.gateway/AnimationType.Companion.from|from(kotlin.Int){}[0] + final fun serializer(): kotlinx.serialization/KSerializer // dev.kord.gateway/AnimationType.Companion.serializer|serializer(){}[0] + } + + final object Premium : dev.kord.gateway/AnimationType // dev.kord.gateway/AnimationType.Premium|null[0] +} + sealed class dev.kord.gateway/Close : dev.kord.gateway/Event { // dev.kord.gateway/Close|null[0] final class DiscordClose : dev.kord.gateway/Close { // dev.kord.gateway/Close.DiscordClose|null[0] constructor (dev.kord.gateway/GatewayCloseCode, kotlin/Boolean) // dev.kord.gateway/Close.DiscordClose.|(dev.kord.gateway.GatewayCloseCode;kotlin.Boolean){}[0] @@ -2311,6 +2568,8 @@ sealed class dev.kord.gateway/Intent { // dev.kord.gateway/Intent|null[0] final object GuildEmojis : dev.kord.gateway/Intent // dev.kord.gateway/Intent.GuildEmojis|null[0] + final object GuildExpressions : dev.kord.gateway/Intent // dev.kord.gateway/Intent.GuildExpressions|null[0] + final object GuildIntegrations : dev.kord.gateway/Intent // dev.kord.gateway/Intent.GuildIntegrations|null[0] final object GuildInvites : dev.kord.gateway/Intent // dev.kord.gateway/Intent.GuildInvites|null[0] @@ -2353,6 +2612,7 @@ final val dev.kord.gateway/PRIVILEGED // dev.kord.gateway/PRIVILEGED|@dev.kord.g final fun (dev.kord.gateway/Gateway).dev.kord.gateway/requestGuildMembers(dev.kord.common.entity/Snowflake, kotlin/Function1 = ...): kotlinx.coroutines.flow/Flow // dev.kord.gateway/requestGuildMembers|requestGuildMembers@dev.kord.gateway.Gateway(dev.kord.common.entity.Snowflake;kotlin.Function1){}[0] final fun (dev.kord.gateway/Gateway).dev.kord.gateway/requestGuildMembers(dev.kord.gateway/RequestGuildMembers): kotlinx.coroutines.flow/Flow // dev.kord.gateway/requestGuildMembers|requestGuildMembers@dev.kord.gateway.Gateway(dev.kord.gateway.RequestGuildMembers){}[0] +final fun (dev.kord.gateway/Gateway).dev.kord.gateway/requestSoundboardSounds(kotlin.collections/List): kotlinx.coroutines.flow/Flow // dev.kord.gateway/requestSoundboardSounds|requestSoundboardSounds@dev.kord.gateway.Gateway(kotlin.collections.List){}[0] final fun dev.kord.gateway.ratelimit/IdentifyRateLimiter(kotlin/Int, kotlinx.coroutines/CoroutineDispatcher = ...): dev.kord.gateway.ratelimit/IdentifyRateLimiter // dev.kord.gateway.ratelimit/IdentifyRateLimiter|IdentifyRateLimiter(kotlin.Int;kotlinx.coroutines.CoroutineDispatcher){}[0] final fun dev.kord.gateway/Intents(kotlin.collections/Iterable): dev.kord.gateway/Intents // dev.kord.gateway/Intents|Intents(kotlin.collections.Iterable){}[0] final fun dev.kord.gateway/Intents(kotlin.collections/Iterable): dev.kord.gateway/Intents // dev.kord.gateway/Intents|Intents(kotlin.collections.Iterable){}[0] diff --git a/gateway/build.gradle.kts b/gateway/build.gradle.kts index 2b646a41100..a2185518aed 100644 --- a/gateway/build.gradle.kts +++ b/gateway/build.gradle.kts @@ -34,3 +34,7 @@ kotlin { } } } + +dependencies { + kspCommonMainMetadata(projects.kspProcessors) +} diff --git a/gateway/build/generated/ksp/metadata/commonMain/kotlin/dev/kord/gateway/AnimationType.kt b/gateway/build/generated/ksp/metadata/commonMain/kotlin/dev/kord/gateway/AnimationType.kt new file mode 100644 index 00000000000..b9ec84ec979 --- /dev/null +++ b/gateway/build/generated/ksp/metadata/commonMain/kotlin/dev/kord/gateway/AnimationType.kt @@ -0,0 +1,81 @@ +// THIS FILE IS AUTO-GENERATED, DO NOT EDIT! +@file:Suppress(names = arrayOf("IncorrectFormatting", "ReplaceArrayOfWithLiteral", + "SpellCheckingInspection", "GrazieInspection")) + +package dev.kord.gateway + +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 [AnimationType]s in the + * [Discord Developer Documentation](https://discord.com/developers/docs/events/gateway-events#voice-channel-effect-send-animation-types). + */ +@Serializable(with = AnimationType.Serializer::class) +public sealed class AnimationType( + /** + * The raw value used by Discord. + */ + public val `value`: Int, +) { + final override fun equals(other: Any?): Boolean = this === other || + (other is AnimationType && this.value == other.value) + + final override fun hashCode(): Int = value.hashCode() + + final override fun toString(): String = + if (this is Unknown) "AnimationType.Unknown(value=$value)" + else "AnimationType.${this::class.simpleName}" + + /** + * An unknown [AnimationType]. + * + * This is used as a fallback for [AnimationType]s that haven't been added to Kord yet. + */ + public class Unknown internal constructor( + `value`: Int, + ) : AnimationType(value) + + public object Basic : AnimationType(0) + + public object Premium : AnimationType(1) + + internal object Serializer : KSerializer { + override val descriptor: SerialDescriptor = + PrimitiveSerialDescriptor("dev.kord.gateway.AnimationType", PrimitiveKind.INT) + + override fun serialize(encoder: Encoder, `value`: AnimationType) { + encoder.encodeInt(value.value) + } + + override fun deserialize(decoder: Decoder): AnimationType = from(decoder.decodeInt()) + } + + public companion object { + /** + * A [List] of all known [AnimationType]s. + */ + public val entries: List by lazy(mode = PUBLICATION) { + listOf( + Basic, + Premium, + ) + } + + /** + * Returns an instance of [AnimationType] with [AnimationType.value] equal to the specified + * [value]. + */ + public fun from(`value`: Int): AnimationType = when (value) { + 0 -> Basic + 1 -> Premium + else -> Unknown(value) + } + } +} diff --git a/gateway/build/generated/ksp/metadata/commonMain/kotlin/dev/kord/gateway/Intent.kt b/gateway/build/generated/ksp/metadata/commonMain/kotlin/dev/kord/gateway/Intent.kt index 5d189d3cd0f..7f8e83485e8 100644 --- a/gateway/build/generated/ksp/metadata/commonMain/kotlin/dev/kord/gateway/Intent.kt +++ b/gateway/build/generated/ksp/metadata/commonMain/kotlin/dev/kord/gateway/Intent.kt @@ -108,6 +108,16 @@ public sealed class Intent( */ public object GuildModeration : Intent(2) + /** + * Enables the following events: + * - [GuildEmojisUpdate] + * - [GuildSoundboardSoundCreate] + * - [GuildSoundboardSoundUpdate] + * - [GuildSoundboardSoundsUpdate] + * - [GuildSoundboardSoundDelete] + */ + public object GuildExpressions : Intent(3) + /** * Enables the following events: * - [GuildEmojisUpdate] @@ -253,7 +263,7 @@ public sealed class Intent( Guilds, GuildMembers, GuildModeration, - GuildEmojis, + GuildExpressions, GuildIntegrations, GuildWebhooks, GuildInvites, @@ -282,7 +292,7 @@ public sealed class Intent( 0 -> Guilds 1 -> GuildMembers 2 -> GuildModeration - 3 -> GuildEmojis + 3 -> GuildExpressions 4 -> GuildIntegrations 5 -> GuildWebhooks 6 -> GuildInvites diff --git a/gateway/src/commonMain/kotlin/Command.kt b/gateway/src/commonMain/kotlin/Command.kt index 472eecdf6c5..f8220322494 100644 --- a/gateway/src/commonMain/kotlin/Command.kt +++ b/gateway/src/commonMain/kotlin/Command.kt @@ -35,6 +35,10 @@ public sealed class Command { composite.encodeSerializableElement(descriptor, 0, OpCode.serializer(), OpCode.RequestGuildMembers) composite.encodeSerializableElement(descriptor, 1, RequestGuildMembers.serializer(), value) } + is RequestSoundboardSounds -> { + composite.encodeSerializableElement(descriptor, 0, OpCode.serializer(), OpCode.RequestSoundboardSounds) + composite.encodeSerializableElement(descriptor, 1, RequestSoundboardSounds.serializer(), value) + } is UpdateVoiceStatus -> { composite.encodeSerializableElement(descriptor, 0, OpCode.serializer(), OpCode.VoiceStateUpdate) composite.encodeSerializableElement(descriptor, 1, UpdateVoiceStatus.serializer(), value) @@ -60,9 +64,7 @@ public sealed class Command { composite.endStructure(descriptor) } - } - } @@ -166,9 +168,16 @@ public data class RequestGuildMembers( public fun new(): String = counter.getAndIncrement().toUInt().toString() } - } +/** + * This will similarly to [RequestGuildMembers] request the soundboard sounds of the specified [guilds][guildIds]. + * + * This will cause a [SoundboardSounds] event to be sent for every guild in [guildIds], containing the requested sounds. + */ +@Serializable +public data class RequestSoundboardSounds(@SerialName("guild_ids") val guildIds: List) : Command() + @Serializable public data class UpdateVoiceStatus( @SerialName("guild_id") diff --git a/gateway/src/commonMain/kotlin/Event.kt b/gateway/src/commonMain/kotlin/Event.kt index d9aead9ff00..e87a0d3da39 100644 --- a/gateway/src/commonMain/kotlin/Event.kt +++ b/gateway/src/commonMain/kotlin/Event.kt @@ -1,9 +1,22 @@ +@file:Generate( + Generate.EntityType.INT_KORD_ENUM, + "AnimationType", + "https://discord.com/developers/docs/events/gateway-events#voice-channel-effect-send-animation-types", + entries = [ + Generate.Entry("Basic", intValue = 0), + Generate.Entry("Premium", intValue = 1), + ] +) + package dev.kord.gateway import dev.kord.common.entity.* import dev.kord.common.entity.optional.Optional +import dev.kord.common.entity.optional.OptionalDouble +import dev.kord.common.entity.optional.OptionalInt import dev.kord.common.entity.optional.OptionalSnowflake import dev.kord.common.serialization.DurationInSeconds +import dev.kord.ksp.Generate import io.github.oshai.kotlinlogging.KotlinLogging import kotlinx.datetime.Instant import kotlinx.serialization.* @@ -70,7 +83,7 @@ public sealed class Event { } // OpCodes for Commands (aka send events), they shouldn't be received OpCode.Identify, OpCode.StatusUpdate, OpCode.VoiceStateUpdate, OpCode.Resume, - OpCode.RequestGuildMembers, + OpCode.RequestGuildMembers, OpCode.RequestSoundboardSounds -> throw IllegalArgumentException("Illegal opcode for gateway event: $op") OpCode.Unknown -> throw IllegalArgumentException("Unknown opcode for gateway event") } @@ -205,6 +218,12 @@ public sealed class Event { "APPLICATION_COMMAND_DELETE" -> @Suppress("DEPRECATION_ERROR") ApplicationCommandDelete(decode(DiscordApplicationCommand.serializer()), sequence) + "GUILD_SOUNDBOARD_SOUND_CREATE" -> GuildSoundboardSoundCreate(decode(DiscordSoundboardSound.serializer()), sequence) + "GUILD_SOUNDBOARD_SOUND_UPDATE" -> GuildSoundboardSoundUpdate(decode(DiscordSoundboardSound.serializer()), sequence) + "GUILD_SOUNDBOARD_SOUNDS_UPDATE" -> GuildSoundboardSoundsUpdate(decode(SoundboardSoundsChunk.serializer()), sequence) + "GUILD_SOUNDBOARD_SOUNDS_DELETE" -> GuildSoundboardSoundDelete(decode(DeletedSound.serializer()), sequence) + "VOICE_CHANNEL_EFFECT_SEND" -> VoiceEffectSend(decode(VoiceChannelEffect.serializer()), sequence) + "SOUNDBOARD_SOUNDS" -> SoundboardSounds(decode(SoundboardSoundsChunk.serializer()), sequence) else -> { jsonLogger.debug { "Unknown gateway event name: $eventName" } UnknownDispatchEvent(eventName, eventData, sequence) @@ -662,3 +681,57 @@ public data class SubscriptionUpdate(val subscription: DiscordSubscription, over public data class SubscriptionDelete(val subscription: DiscordSubscription, override val sequence: Int?) : DispatchEvent() + +@Serializable +public data class SoundboardSoundsChunk( + @SerialName("soundboard_sounds") val soundboardSounds: List, + @SerialName("guild_id") val guildId: Snowflake +) + +@Serializable +public data class DeletedSound( + @SerialName("sound_id") + val soundId: Snowflake, + @SerialName("guild_id") + val guildId: Snowflake +) + +@Serializable +public data class VoiceChannelEffect( + @SerialName("channel_id") + val channelId: Snowflake, + @SerialName("guild_id") + val guildId: Snowflake, + @SerialName("user_id") + val userId: Snowflake, + val emoji: Optional = Optional.Missing(), + @SerialName("animation_type") + val animationType: Optional = Optional.Missing(), + @SerialName("animation_id") + val animationId: OptionalInt = OptionalInt.Missing, + @SerialName("sound_id") + val soundId: OptionalSnowflake = OptionalSnowflake.Missing, + @SerialName("sound_volume") + val soundVolume: OptionalDouble = OptionalDouble.Missing +) + +/** + * Event sent in response to [RequestSoundboardSounds] containing the [sounds][data] for [guildId]. + */ +public data class SoundboardSounds( + val data: SoundboardSoundsChunk, + override val sequence: Int? +) : DispatchEvent() + +public data class GuildSoundboardSoundCreate(val sound: DiscordSoundboardSound, override val sequence: Int?) : + DispatchEvent() + +public data class GuildSoundboardSoundUpdate(val sound: DiscordSoundboardSound, override val sequence: Int?) : + DispatchEvent() + +public data class GuildSoundboardSoundsUpdate(val data: SoundboardSoundsChunk, override val sequence: Int?) : + DispatchEvent() + +public data class GuildSoundboardSoundDelete(val sound: DeletedSound, override val sequence: Int?) : DispatchEvent() + +public data class VoiceEffectSend(val effect: VoiceChannelEffect, override val sequence: Int?) : DispatchEvent() diff --git a/gateway/src/commonMain/kotlin/Gateway.kt b/gateway/src/commonMain/kotlin/Gateway.kt index 2948b89b5c9..1ee61cb5907 100644 --- a/gateway/src/commonMain/kotlin/Gateway.kt +++ b/gateway/src/commonMain/kotlin/Gateway.kt @@ -223,6 +223,24 @@ public fun Gateway.requestGuildMembers(request: RequestGuildMembers): Flow): Flow { + val receivedGuilds = ArrayList(guildIds.size) + return events + .onSubscription { send(RequestSoundboardSounds(guildIds)) } + .filterIsInstance() + .transformWhile { + emit(it.data) + receivedGuilds.size < guildIds.size + } +} + /** * Enum representation of Discord's [Gateway close event codes](https://discord.com/developers/docs/topics/opcodes-and-status-codes#gateway-gateway-close-event-codes). */ diff --git a/gateway/src/commonMain/kotlin/Intents.kt b/gateway/src/commonMain/kotlin/Intents.kt index 07a4a41410d..13490821fb4 100644 --- a/gateway/src/commonMain/kotlin/Intents.kt +++ b/gateway/src/commonMain/kotlin/Intents.kt @@ -47,6 +47,17 @@ - [GuildBanRemove] """, ), + Entry( + "GuildExpressions", shift = 3, + kDoc = """ + Enables the following events: + - [GuildEmojisUpdate] + - [GuildSoundboardSoundCreate] + - [GuildSoundboardSoundUpdate] + - [GuildSoundboardSoundsUpdate] + - [GuildSoundboardSoundDelete] + """ + ), Entry( "GuildEmojis", shift = 3, kDoc = """ diff --git a/gateway/src/commonMain/kotlin/OpCode.kt b/gateway/src/commonMain/kotlin/OpCode.kt index 1cd07f46d86..7f5f9bb38b7 100644 --- a/gateway/src/commonMain/kotlin/OpCode.kt +++ b/gateway/src/commonMain/kotlin/OpCode.kt @@ -65,7 +65,12 @@ public enum class OpCode(public val code: Int) { /** * Sent in response to receiving a heartbeat to acknowledge that it has been received. */ - HeartbeatACK(11); + HeartbeatACK(11), + + /** + * Request information about soundboard sounds in a set of guilds. + */ + RequestSoundboardSounds(31); internal object Serializer : KSerializer { override val descriptor = PrimitiveSerialDescriptor("dev.kord.gateway.OpCode", PrimitiveKind.INT) diff --git a/rest/api/rest.api b/rest/api/rest.api index 541efb4ea8f..61b6181b663 100644 --- a/rest/api/rest.api +++ b/rest/api/rest.api @@ -71,6 +71,53 @@ public final class dev/kord/rest/NamedFile { public final fun getUrl ()Ljava/lang/String; } +public final class dev/kord/rest/Sound { + public static final field Companion Ldev/kord/rest/Sound$Companion; + public synthetic fun ([BLdev/kord/rest/Sound$Format;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun getData ()[B + public final fun getDataUri ()Ljava/lang/String; + public final fun getFormat ()Ldev/kord/rest/Sound$Format; +} + +public final class dev/kord/rest/Sound$Companion { + public final fun fromFile (Lkotlinx/io/files/Path;Lkotlinx/io/files/FileSystem;)Ldev/kord/rest/Sound; + public static synthetic fun fromFile$default (Ldev/kord/rest/Sound$Companion;Lkotlinx/io/files/Path;Lkotlinx/io/files/FileSystem;ILjava/lang/Object;)Ldev/kord/rest/Sound; + public final fun fromSource (Lkotlinx/io/Source;Ldev/kord/rest/Sound$Format;)Ldev/kord/rest/Sound; + public final fun fromUrl (Lio/ktor/client/HttpClient;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public final fun raw ([BLdev/kord/rest/Sound$Format;)Ldev/kord/rest/Sound; +} + +public abstract class dev/kord/rest/Sound$Format { + public static final field Companion Ldev/kord/rest/Sound$Format$Companion; + public synthetic fun (Lio/ktor/http/ContentType;Ljava/util/List;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Lio/ktor/http/ContentType;[Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun getExtension ()Ljava/lang/String; + public final fun getExtensions ()Ljava/util/List; + public final fun getMimeType ()Lio/ktor/http/ContentType; +} + +public final class dev/kord/rest/Sound$Format$Companion { + public final fun fromContentType (Lio/ktor/http/ContentType;)Ldev/kord/rest/Sound$Format; + public final fun fromContentType (Ljava/lang/String;)Ldev/kord/rest/Sound$Format; + public final fun fromExtension (Ljava/lang/String;)Ldev/kord/rest/Sound$Format; + public final fun getValues ()Ljava/util/Set; + public final fun isSupported (Ljava/lang/String;)Z +} + +public final class dev/kord/rest/Sound$Format$MP3 : dev/kord/rest/Sound$Format { + public static final field INSTANCE Ldev/kord/rest/Sound$Format$MP3; + public fun equals (Ljava/lang/Object;)Z + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class dev/kord/rest/Sound$Format$OGG : dev/kord/rest/Sound$Format { + public static final field INSTANCE Ldev/kord/rest/Sound$Format$OGG; + public fun equals (Ljava/lang/Object;)Z + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + public abstract interface class dev/kord/rest/builder/AuditBuilder { public abstract fun getReason ()Ljava/lang/String; public abstract fun setReason (Ljava/lang/String;)V @@ -1414,6 +1461,38 @@ public final class dev/kord/rest/builder/guild/ScheduledEventCreateBuilder : dev public synthetic fun toRequest ()Ljava/lang/Object; } +public final class dev/kord/rest/builder/guild/SoundboardSoundCreateBuilder : dev/kord/rest/builder/AuditRequestBuilder { + public fun (Ljava/lang/String;Ldev/kord/rest/Sound;)V + public final fun getEmojiId ()Ldev/kord/common/entity/Snowflake; + public final fun getEmojiName ()Ljava/lang/String; + public final fun getName ()Ljava/lang/String; + public fun getReason ()Ljava/lang/String; + public final fun getSound ()Ldev/kord/rest/Sound; + public final fun getVolume ()Ljava/lang/Double; + public final fun setEmojiId (Ldev/kord/common/entity/Snowflake;)V + public final fun setEmojiName (Ljava/lang/String;)V + public fun setReason (Ljava/lang/String;)V + public final fun setVolume (Ljava/lang/Double;)V + public fun toRequest ()Ldev/kord/rest/json/request/CreateSoundboardSoundRequest; + public synthetic fun toRequest ()Ljava/lang/Object; +} + +public final class dev/kord/rest/builder/guild/SoundboardSoundModifyBuilder : dev/kord/rest/builder/AuditRequestBuilder { + public fun ()V + public final fun getEmojiId ()Ldev/kord/common/entity/Snowflake; + public final fun getEmojiName ()Ljava/lang/String; + public final fun getName ()Ljava/lang/String; + public fun getReason ()Ljava/lang/String; + public final fun getVolume ()Ljava/lang/Double; + public final fun setEmojiId (Ldev/kord/common/entity/Snowflake;)V + public final fun setEmojiName (Ljava/lang/String;)V + public final fun setName (Ljava/lang/String;)V + public fun setReason (Ljava/lang/String;)V + public final fun setVolume (Ljava/lang/Double;)V + public fun toRequest ()Ldev/kord/rest/json/request/UpdateSoundboardSoundRequest; + public synthetic fun toRequest ()Ljava/lang/Object; +} + public final class dev/kord/rest/builder/guild/StickerModifyBuilder : dev/kord/rest/builder/RequestBuilder { public fun ()V public final fun getDescription ()Ljava/lang/String; @@ -2630,6 +2709,7 @@ public final class dev/kord/rest/json/JsonErrorCode : java/lang/Enum { public static final field CannotSendMessageInForumChannel Ldev/kord/rest/json/JsonErrorCode; public static final field CannotSendMessagesInNonTextChannel Ldev/kord/rest/json/JsonErrorCode; public static final field CannotSendMessagesToUser Ldev/kord/rest/json/JsonErrorCode; + public static final field CannotSendVoiceEffect Ldev/kord/rest/json/JsonErrorCode; public static final field CannotSendVoiceMessagesInThisChannel Ldev/kord/rest/json/JsonErrorCode; public static final field CannotUpdateFinishedEvent Ldev/kord/rest/json/JsonErrorCode; public static final field CannotUpdateOnboarding Ldev/kord/rest/json/JsonErrorCode; @@ -2657,6 +2737,10 @@ public final class dev/kord/rest/json/JsonErrorCode : java/lang/Enum { public static final field InvalidActivityAction Ldev/kord/rest/json/JsonErrorCode; public static final field InvalidAuthToken Ldev/kord/rest/json/JsonErrorCode; public static final field InvalidFile Ldev/kord/rest/json/JsonErrorCode; + public static final field InvalidFileDuration Ldev/kord/rest/json/JsonErrorCode; + public static final field InvalidFileExceedsMaximumLength Ldev/kord/rest/json/JsonErrorCode; + public static final field InvalidFileProvided Ldev/kord/rest/json/JsonErrorCode; + public static final field InvalidFileType Ldev/kord/rest/json/JsonErrorCode; public static final field InvalidFormBody Ldev/kord/rest/json/JsonErrorCode; public static final field InvalidGuild Ldev/kord/rest/json/JsonErrorCode; public static final field InvalidJsonForLottieFile Ldev/kord/rest/json/JsonErrorCode; @@ -2702,6 +2786,7 @@ public final class dev/kord/rest/json/JsonErrorCode : java/lang/Enum { public static final field MaxRecipients Ldev/kord/rest/json/JsonErrorCode; public static final field MaxServerCategories Ldev/kord/rest/json/JsonErrorCode; public static final field MaxServerMembers Ldev/kord/rest/json/JsonErrorCode; + public static final field MaxSoundboardSounds Ldev/kord/rest/json/JsonErrorCode; public static final field MaxStickerAnimationDuration Ldev/kord/rest/json/JsonErrorCode; public static final field MaxStickerFrameCount Ldev/kord/rest/json/JsonErrorCode; public static final field MaxStickerFrameRate Ldev/kord/rest/json/JsonErrorCode; @@ -2756,6 +2841,7 @@ public final class dev/kord/rest/json/JsonErrorCode : java/lang/Enum { public static final field UnknownApplication Ldev/kord/rest/json/JsonErrorCode; public static final field UnknownApplicationCommand Ldev/kord/rest/json/JsonErrorCode; public static final field UnknownApplicationCommandPermissions Ldev/kord/rest/json/JsonErrorCode; + public static final field UnknownAsset Ldev/kord/rest/json/JsonErrorCode; public static final field UnknownBan Ldev/kord/rest/json/JsonErrorCode; public static final field UnknownBranch Ldev/kord/rest/json/JsonErrorCode; public static final field UnknownBuild Ldev/kord/rest/json/JsonErrorCode; @@ -2783,6 +2869,7 @@ public final class dev/kord/rest/json/JsonErrorCode : java/lang/Enum { public static final field UnknownRole Ldev/kord/rest/json/JsonErrorCode; public static final field UnknownSKU Ldev/kord/rest/json/JsonErrorCode; public static final field UnknownSession Ldev/kord/rest/json/JsonErrorCode; + public static final field UnknownSound Ldev/kord/rest/json/JsonErrorCode; public static final field UnknownStageInstance Ldev/kord/rest/json/JsonErrorCode; public static final field UnknownSticker Ldev/kord/rest/json/JsonErrorCode; public static final field UnknownStoreDirectoryLayout Ldev/kord/rest/json/JsonErrorCode; @@ -3310,6 +3397,42 @@ public final class dev/kord/rest/json/request/ChannelPositionSwapRequest$Compani public final fun serializer ()Lkotlinx/serialization/KSerializer; } +public final class dev/kord/rest/json/request/CreateSoundboardSoundRequest { + public static final field Companion Ldev/kord/rest/json/request/CreateSoundboardSoundRequest$Companion; + public fun (Ljava/lang/String;Ljava/lang/String;Ldev/kord/common/entity/optional/OptionalDouble;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/optional/Optional;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ldev/kord/common/entity/optional/OptionalDouble;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/optional/Optional;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ldev/kord/common/entity/optional/OptionalDouble; + public final fun component4 ()Ldev/kord/common/entity/optional/OptionalSnowflake; + public final fun component5 ()Ldev/kord/common/entity/optional/Optional; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ldev/kord/common/entity/optional/OptionalDouble;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/optional/Optional;)Ldev/kord/rest/json/request/CreateSoundboardSoundRequest; + public static synthetic fun copy$default (Ldev/kord/rest/json/request/CreateSoundboardSoundRequest;Ljava/lang/String;Ljava/lang/String;Ldev/kord/common/entity/optional/OptionalDouble;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/optional/Optional;ILjava/lang/Object;)Ldev/kord/rest/json/request/CreateSoundboardSoundRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getEmojiId ()Ldev/kord/common/entity/optional/OptionalSnowflake; + public final fun getEmojiName ()Ldev/kord/common/entity/optional/Optional; + public final fun getName ()Ljava/lang/String; + public final fun getSound ()Ljava/lang/String; + public final fun getVolume ()Ldev/kord/common/entity/optional/OptionalDouble; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public synthetic class dev/kord/rest/json/request/CreateSoundboardSoundRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Ldev/kord/rest/json/request/CreateSoundboardSoundRequest$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/kord/rest/json/request/CreateSoundboardSoundRequest; + 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/CreateSoundboardSoundRequest;)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/CreateSoundboardSoundRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class dev/kord/rest/json/request/CurrentUserModifyRequest { public static final field Companion Ldev/kord/rest/json/request/CurrentUserModifyRequest$Companion; public fun ()V @@ -5283,6 +5406,36 @@ 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/SendSoundboardSoundRequest { + public static final field Companion Ldev/kord/rest/json/request/SendSoundboardSoundRequest$Companion; + public fun (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/optional/OptionalSnowflake;)V + public synthetic fun (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/optional/OptionalSnowflake;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ldev/kord/common/entity/Snowflake; + public final fun component2 ()Ldev/kord/common/entity/optional/OptionalSnowflake; + public final fun copy (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/optional/OptionalSnowflake;)Ldev/kord/rest/json/request/SendSoundboardSoundRequest; + public static synthetic fun copy$default (Ldev/kord/rest/json/request/SendSoundboardSoundRequest;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/optional/OptionalSnowflake;ILjava/lang/Object;)Ldev/kord/rest/json/request/SendSoundboardSoundRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getSoundId ()Ldev/kord/common/entity/Snowflake; + public final fun getSourceGuildId ()Ldev/kord/common/entity/optional/OptionalSnowflake; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public synthetic class dev/kord/rest/json/request/SendSoundboardSoundRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Ldev/kord/rest/json/request/SendSoundboardSoundRequest$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/kord/rest/json/request/SendSoundboardSoundRequest; + 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/SendSoundboardSoundRequest;)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/SendSoundboardSoundRequest$Companion { + 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 @@ -5438,6 +5591,41 @@ public final class dev/kord/rest/json/request/TestEntitlementCreateRequest$Compa public final fun serializer ()Lkotlinx/serialization/KSerializer; } +public final class dev/kord/rest/json/request/UpdateSoundboardSoundRequest { + public static final field Companion Ldev/kord/rest/json/request/UpdateSoundboardSoundRequest$Companion; + public fun ()V + public fun (Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalDouble;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/optional/Optional;)V + public synthetic fun (Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalDouble;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/optional/Optional;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ldev/kord/common/entity/optional/Optional; + public final fun component2 ()Ldev/kord/common/entity/optional/OptionalDouble; + public final fun component3 ()Ldev/kord/common/entity/optional/OptionalSnowflake; + public final fun component4 ()Ldev/kord/common/entity/optional/Optional; + public final fun copy (Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalDouble;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/optional/Optional;)Ldev/kord/rest/json/request/UpdateSoundboardSoundRequest; + public static synthetic fun copy$default (Ldev/kord/rest/json/request/UpdateSoundboardSoundRequest;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalDouble;Ldev/kord/common/entity/optional/OptionalSnowflake;Ldev/kord/common/entity/optional/Optional;ILjava/lang/Object;)Ldev/kord/rest/json/request/UpdateSoundboardSoundRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getEmojiId ()Ldev/kord/common/entity/optional/OptionalSnowflake; + public final fun getEmojiName ()Ldev/kord/common/entity/optional/Optional; + public final fun getName ()Ldev/kord/common/entity/optional/Optional; + public final fun getVolume ()Ldev/kord/common/entity/optional/OptionalDouble; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public synthetic class dev/kord/rest/json/request/UpdateSoundboardSoundRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Ldev/kord/rest/json/request/UpdateSoundboardSoundRequest$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/kord/rest/json/request/UpdateSoundboardSoundRequest; + 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/UpdateSoundboardSoundRequest;)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/UpdateSoundboardSoundRequest$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 @@ -5921,6 +6109,33 @@ public final class dev/kord/rest/json/response/GuildMFALevelModifyResponse$Compa public final fun serializer ()Lkotlinx/serialization/KSerializer; } +public final class dev/kord/rest/json/response/GuildSoundboardSoundsResponse { + public static final field Companion Ldev/kord/rest/json/response/GuildSoundboardSoundsResponse$Companion; + public fun (Ljava/util/List;)V + public final fun component1 ()Ljava/util/List; + public final fun copy (Ljava/util/List;)Ldev/kord/rest/json/response/GuildSoundboardSoundsResponse; + public static synthetic fun copy$default (Ldev/kord/rest/json/response/GuildSoundboardSoundsResponse;Ljava/util/List;ILjava/lang/Object;)Ldev/kord/rest/json/response/GuildSoundboardSoundsResponse; + public fun equals (Ljava/lang/Object;)Z + public final fun getItems ()Ljava/util/List; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public synthetic class dev/kord/rest/json/response/GuildSoundboardSoundsResponse$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Ldev/kord/rest/json/response/GuildSoundboardSoundsResponse$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/kord/rest/json/response/GuildSoundboardSoundsResponse; + 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/response/GuildSoundboardSoundsResponse;)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/response/GuildSoundboardSoundsResponse$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class dev/kord/rest/json/response/ListThreadsResponse { public static final field Companion Ldev/kord/rest/json/response/ListThreadsResponse$Companion; public fun (Ljava/util/List;Ljava/util/List;)V @@ -6628,6 +6843,10 @@ public final class dev/kord/rest/route/Route$DeleteAllReactionsForEmoji : dev/ko public static final field INSTANCE Ldev/kord/rest/route/Route$DeleteAllReactionsForEmoji; } +public final class dev/kord/rest/route/Route$DeleteGuildsSoundboardSound : dev/kord/rest/route/Route { + public static final field INSTANCE Ldev/kord/rest/route/Route$DeleteGuildsSoundboardSound; +} + public final class dev/kord/rest/route/Route$DeleteWebhookMessage : dev/kord/rest/route/Route { public static final field INSTANCE Ldev/kord/rest/route/Route$DeleteWebhookMessage; } @@ -6696,6 +6915,18 @@ public final class dev/kord/rest/route/Route$GatewayGet : dev/kord/rest/route/Ro public static final field INSTANCE Ldev/kord/rest/route/Route$GatewayGet; } +public final class dev/kord/rest/route/Route$GetGuildsSoundboardSound : dev/kord/rest/route/Route { + public static final field INSTANCE Ldev/kord/rest/route/Route$GetGuildsSoundboardSound; +} + +public final class dev/kord/rest/route/Route$GetGuildsSoundboardSounds : dev/kord/rest/route/Route { + public static final field INSTANCE Ldev/kord/rest/route/Route$GetGuildsSoundboardSounds; +} + +public final class dev/kord/rest/route/Route$GetSoundboardDefaultSounds : dev/kord/rest/route/Route { + public static final field INSTANCE Ldev/kord/rest/route/Route$GetSoundboardDefaultSounds; +} + public final class dev/kord/rest/route/Route$GetWebhookMessage : dev/kord/rest/route/Route { public static final field INSTANCE Ldev/kord/rest/route/Route$GetWebhookMessage; } @@ -7132,6 +7363,10 @@ public final class dev/kord/rest/route/Route$OwnReactionDelete : dev/kord/rest/r public static final field INSTANCE Ldev/kord/rest/route/Route$OwnReactionDelete; } +public final class dev/kord/rest/route/Route$PatchGuildsSoundboardSound : dev/kord/rest/route/Route { + public static final field INSTANCE Ldev/kord/rest/route/Route$PatchGuildsSoundboardSound; +} + public final class dev/kord/rest/route/Route$PinDelete : dev/kord/rest/route/Route { public static final field INSTANCE Ldev/kord/rest/route/Route$PinDelete; } @@ -7144,6 +7379,10 @@ public final class dev/kord/rest/route/Route$PinsGet : dev/kord/rest/route/Route public static final field INSTANCE Ldev/kord/rest/route/Route$PinsGet; } +public final class dev/kord/rest/route/Route$PostGuildsSoundboardSounds : dev/kord/rest/route/Route { + public static final field INSTANCE Ldev/kord/rest/route/Route$PostGuildsSoundboardSounds; +} + public final class dev/kord/rest/route/Route$PrivateArchivedThreadsGet : dev/kord/rest/route/Route { public static final field INSTANCE Ldev/kord/rest/route/Route$PrivateArchivedThreadsGet; } @@ -7184,6 +7423,10 @@ 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$SendSoundboardSound : dev/kord/rest/route/Route { + public static final field INSTANCE Ldev/kord/rest/route/Route$SendSoundboardSound; +} + 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; } @@ -7200,6 +7443,10 @@ public final class dev/kord/rest/route/Route$SkusList : dev/kord/rest/route/Rout public static final field INSTANCE Ldev/kord/rest/route/Route$SkusList; } +public final class dev/kord/rest/route/Route$SoundId : dev/kord/rest/route/Route$Key { + public static final field INSTANCE Ldev/kord/rest/route/Route$SoundId; +} + 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; } @@ -7420,6 +7667,8 @@ public final class dev/kord/rest/service/ChannelService : dev/kord/rest/service/ public static synthetic fun putChannel$default (Ldev/kord/rest/service/ChannelService;Ldev/kord/common/entity/Snowflake;Ldev/kord/rest/json/request/ChannelModifyPutRequest;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public final fun removeFromGroup (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public final fun removeUserFromThread (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public final fun sendSoundboardSound (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendSoundboardSound$default (Ldev/kord/rest/service/ChannelService;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public final fun startForumThread (Ldev/kord/common/entity/Snowflake;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun startForumThread$default (Ldev/kord/rest/service/ChannelService;Ldev/kord/common/entity/Snowflake;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public final fun startThread (Ldev/kord/common/entity/Snowflake;Ldev/kord/rest/json/request/MultipartStartThreadRequest;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; @@ -7481,6 +7730,8 @@ public final class dev/kord/rest/service/GuildService : dev/kord/rest/service/Re public final fun createGuildIntegration (Ldev/kord/common/entity/Snowflake;Ldev/kord/rest/json/request/GuildIntegrationCreateRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public final fun createGuildRole (Ldev/kord/common/entity/Snowflake;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun createGuildRole$default (Ldev/kord/rest/service/GuildService;Ldev/kord/common/entity/Snowflake;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public final fun createGuildSoundboardSound (Ldev/kord/common/entity/Snowflake;Ldev/kord/rest/json/request/CreateSoundboardSoundRequest;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun createGuildSoundboardSound$default (Ldev/kord/rest/service/GuildService;Ldev/kord/common/entity/Snowflake;Ldev/kord/rest/json/request/CreateSoundboardSoundRequest;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public final fun createScheduledEvent (Ldev/kord/common/entity/Snowflake;Ldev/kord/rest/json/request/GuildScheduledEventCreateRequest;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun createScheduledEvent$default (Ldev/kord/rest/service/GuildService;Ldev/kord/common/entity/Snowflake;Ldev/kord/rest/json/request/GuildScheduledEventCreateRequest;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public final fun deleteGuild (Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; @@ -7492,6 +7743,8 @@ public final class dev/kord/rest/service/GuildService : dev/kord/rest/service/Re public static synthetic fun deleteGuildMember$default (Ldev/kord/rest/service/GuildService;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public final fun deleteGuildRole (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun deleteGuildRole$default (Ldev/kord/rest/service/GuildService;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public final fun deleteGuildSoundboardSound (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun deleteGuildSoundboardSound$default (Ldev/kord/rest/service/GuildService;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public final fun deleteRoleFromGuildMember (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun deleteRoleFromGuildMember$default (Ldev/kord/rest/service/GuildService;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public final fun deleteScheduledEvent (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; @@ -7513,6 +7766,7 @@ public final class dev/kord/rest/service/GuildService : dev/kord/rest/service/Re public final fun getGuildPruneCount (Ldev/kord/common/entity/Snowflake;ILkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun getGuildPruneCount$default (Ldev/kord/rest/service/GuildService;Ldev/kord/common/entity/Snowflake;ILkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public final fun getGuildRoles (Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public final fun getGuildSoundboardSound (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public final fun getGuildVoiceRegions (Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public final fun getGuildWelcomeScreen (Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public final fun getGuildWidget (Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; @@ -7525,6 +7779,7 @@ public final class dev/kord/rest/service/GuildService : dev/kord/rest/service/Re public static synthetic fun getScheduledEventUsersBefore$default (Ldev/kord/rest/service/GuildService;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ljava/lang/Boolean;Ljava/lang/Integer;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public final fun getVanityInvite (Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public final fun listActiveThreads (Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public final fun listGuildSoundboardSounds (Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public final fun listScheduledEvents (Ldev/kord/common/entity/Snowflake;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun listScheduledEvents$default (Ldev/kord/rest/service/GuildService;Ldev/kord/common/entity/Snowflake;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public final fun modifyCurrentUserNickname (Ldev/kord/common/entity/Snowflake;Ldev/kord/rest/json/request/CurrentUserNicknameModifyRequest;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; @@ -7541,6 +7796,8 @@ public final class dev/kord/rest/service/GuildService : dev/kord/rest/service/Re public static synthetic fun modifyGuildOnboarding$default (Ldev/kord/rest/service/GuildService;Ldev/kord/common/entity/Snowflake;Ldev/kord/rest/json/request/GuildOnboardingModifyRequest;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public final fun modifyGuildRole (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public final fun modifyGuildRolePosition (Ldev/kord/common/entity/Snowflake;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public final fun modifyGuildSoundboardSound (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/rest/json/request/UpdateSoundboardSoundRequest;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun modifyGuildSoundboardSound$default (Ldev/kord/rest/service/GuildService;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/rest/json/request/UpdateSoundboardSoundRequest;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public final fun modifyGuildWelcomeScreen (Ldev/kord/common/entity/Snowflake;Ldev/kord/rest/json/request/GuildWelcomeScreenModifyRequest;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun modifyGuildWelcomeScreen$default (Ldev/kord/rest/service/GuildService;Ldev/kord/common/entity/Snowflake;Ldev/kord/rest/json/request/GuildWelcomeScreenModifyRequest;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public final fun modifyGuildWidget (Ldev/kord/common/entity/Snowflake;Ldev/kord/rest/json/request/GuildWidgetModifyRequest;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; @@ -7555,6 +7812,8 @@ public final class dev/kord/rest/service/GuildService : dev/kord/rest/service/Re public final class dev/kord/rest/service/GuildServiceKt { public static final fun createCategory (Ldev/kord/rest/service/GuildService;Ldev/kord/common/entity/Snowflake;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static final fun createForumChannel (Ldev/kord/rest/service/GuildService;Ldev/kord/common/entity/Snowflake;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun createGuildSoundboardSound (Ldev/kord/rest/service/GuildService;Ldev/kord/common/entity/Snowflake;Ljava/lang/String;Ldev/kord/rest/Sound;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun createGuildSoundboardSound$default (Ldev/kord/rest/service/GuildService;Ldev/kord/common/entity/Snowflake;Ljava/lang/String;Ldev/kord/rest/Sound;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun createMediaChannel (Ldev/kord/rest/service/GuildService;Ldev/kord/common/entity/Snowflake;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static final fun createNewsChannel (Ldev/kord/rest/service/GuildService;Ldev/kord/common/entity/Snowflake;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static final fun createScheduledEvent (Ldev/kord/rest/service/GuildService;Ldev/kord/common/entity/Snowflake;Ljava/lang/String;Ldev/kord/common/entity/GuildScheduledEventPrivacyLevel;Lkotlinx/datetime/Instant;Ldev/kord/common/entity/ScheduledEntityType;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; @@ -7563,6 +7822,8 @@ public final class dev/kord/rest/service/GuildServiceKt { public static final fun createTextChannel (Ldev/kord/rest/service/GuildService;Ldev/kord/common/entity/Snowflake;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static final fun createVoiceChannel (Ldev/kord/rest/service/GuildService;Ldev/kord/common/entity/Snowflake;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static final fun modifyCurrentVoiceState (Ldev/kord/rest/service/GuildService;Ldev/kord/common/entity/Snowflake;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun modifyGuildSoundboardSound (Ldev/kord/rest/service/GuildService;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun modifyGuildSoundboardSound$default (Ldev/kord/rest/service/GuildService;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun modifyGuildWelcomeScreen (Ldev/kord/rest/service/GuildService;Ldev/kord/common/entity/Snowflake;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static final fun modifyScheduledEvent (Ldev/kord/rest/service/GuildService;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static final fun modifyVoiceState (Ldev/kord/rest/service/GuildService;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; @@ -7661,6 +7922,7 @@ public final class dev/kord/rest/service/RestClient : dev/kord/rest/service/Rest 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 getSoundboard ()Ldev/kord/rest/service/SoundboardService; 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; @@ -7687,6 +7949,11 @@ public final class dev/kord/rest/service/SkuService : dev/kord/rest/service/Rest public final fun listSkus (Ldev/kord/common/entity/Snowflake;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; } +public final class dev/kord/rest/service/SoundboardService : dev/kord/rest/service/RestService { + public fun (Ldev/kord/rest/request/RequestHandler;)V + public final fun getDefaultSounds (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; diff --git a/rest/api/rest.klib.api b/rest/api/rest.klib.api index 1af2cb5b897..a938865515e 100644 --- a/rest/api/rest.klib.api +++ b/rest/api/rest.klib.api @@ -35,6 +35,7 @@ final enum class dev.kord.rest.json/JsonErrorCode : kotlin/Enum { // dev.kord.rest.builder.guild/SoundboardSoundCreateBuilder|null[0] + constructor (kotlin/String, dev.kord.rest/Sound) // dev.kord.rest.builder.guild/SoundboardSoundCreateBuilder.|(kotlin.String;dev.kord.rest.Sound){}[0] + + final val name // dev.kord.rest.builder.guild/SoundboardSoundCreateBuilder.name|{}name[0] + final fun (): kotlin/String // dev.kord.rest.builder.guild/SoundboardSoundCreateBuilder.name.|(){}[0] + final val sound // dev.kord.rest.builder.guild/SoundboardSoundCreateBuilder.sound|{}sound[0] + final fun (): dev.kord.rest/Sound // dev.kord.rest.builder.guild/SoundboardSoundCreateBuilder.sound.|(){}[0] + + final var emojiId // dev.kord.rest.builder.guild/SoundboardSoundCreateBuilder.emojiId|{}emojiId[0] + final fun (): dev.kord.common.entity/Snowflake? // dev.kord.rest.builder.guild/SoundboardSoundCreateBuilder.emojiId.|(){}[0] + final fun (dev.kord.common.entity/Snowflake?) // dev.kord.rest.builder.guild/SoundboardSoundCreateBuilder.emojiId.|(dev.kord.common.entity.Snowflake?){}[0] + final var emojiName // dev.kord.rest.builder.guild/SoundboardSoundCreateBuilder.emojiName|{}emojiName[0] + final fun (): kotlin/String? // dev.kord.rest.builder.guild/SoundboardSoundCreateBuilder.emojiName.|(){}[0] + final fun (kotlin/String?) // dev.kord.rest.builder.guild/SoundboardSoundCreateBuilder.emojiName.|(kotlin.String?){}[0] + final var reason // dev.kord.rest.builder.guild/SoundboardSoundCreateBuilder.reason|{}reason[0] + final fun (): kotlin/String? // dev.kord.rest.builder.guild/SoundboardSoundCreateBuilder.reason.|(){}[0] + final fun (kotlin/String?) // dev.kord.rest.builder.guild/SoundboardSoundCreateBuilder.reason.|(kotlin.String?){}[0] + final var volume // dev.kord.rest.builder.guild/SoundboardSoundCreateBuilder.volume|{}volume[0] + final fun (): kotlin/Double? // dev.kord.rest.builder.guild/SoundboardSoundCreateBuilder.volume.|(){}[0] + final fun (kotlin/Double?) // dev.kord.rest.builder.guild/SoundboardSoundCreateBuilder.volume.|(kotlin.Double?){}[0] + + final fun toRequest(): dev.kord.rest.json.request/CreateSoundboardSoundRequest // dev.kord.rest.builder.guild/SoundboardSoundCreateBuilder.toRequest|toRequest(){}[0] +} + +final class dev.kord.rest.builder.guild/SoundboardSoundModifyBuilder : dev.kord.rest.builder/AuditRequestBuilder { // dev.kord.rest.builder.guild/SoundboardSoundModifyBuilder|null[0] + constructor () // dev.kord.rest.builder.guild/SoundboardSoundModifyBuilder.|(){}[0] + + final var emojiId // dev.kord.rest.builder.guild/SoundboardSoundModifyBuilder.emojiId|{}emojiId[0] + final fun (): dev.kord.common.entity/Snowflake? // dev.kord.rest.builder.guild/SoundboardSoundModifyBuilder.emojiId.|(){}[0] + final fun (dev.kord.common.entity/Snowflake?) // dev.kord.rest.builder.guild/SoundboardSoundModifyBuilder.emojiId.|(dev.kord.common.entity.Snowflake?){}[0] + final var emojiName // dev.kord.rest.builder.guild/SoundboardSoundModifyBuilder.emojiName|{}emojiName[0] + final fun (): kotlin/String? // dev.kord.rest.builder.guild/SoundboardSoundModifyBuilder.emojiName.|(){}[0] + final fun (kotlin/String?) // dev.kord.rest.builder.guild/SoundboardSoundModifyBuilder.emojiName.|(kotlin.String?){}[0] + final var name // dev.kord.rest.builder.guild/SoundboardSoundModifyBuilder.name|{}name[0] + final fun (): kotlin/String? // dev.kord.rest.builder.guild/SoundboardSoundModifyBuilder.name.|(){}[0] + final fun (kotlin/String?) // dev.kord.rest.builder.guild/SoundboardSoundModifyBuilder.name.|(kotlin.String?){}[0] + final var reason // dev.kord.rest.builder.guild/SoundboardSoundModifyBuilder.reason|{}reason[0] + final fun (): kotlin/String? // dev.kord.rest.builder.guild/SoundboardSoundModifyBuilder.reason.|(){}[0] + final fun (kotlin/String?) // dev.kord.rest.builder.guild/SoundboardSoundModifyBuilder.reason.|(kotlin.String?){}[0] + final var volume // dev.kord.rest.builder.guild/SoundboardSoundModifyBuilder.volume|{}volume[0] + final fun (): kotlin/Double? // dev.kord.rest.builder.guild/SoundboardSoundModifyBuilder.volume.|(){}[0] + final fun (kotlin/Double?) // dev.kord.rest.builder.guild/SoundboardSoundModifyBuilder.volume.|(kotlin.Double?){}[0] + + final fun toRequest(): dev.kord.rest.json.request/UpdateSoundboardSoundRequest // dev.kord.rest.builder.guild/SoundboardSoundModifyBuilder.toRequest|toRequest(){}[0] +} + final class dev.kord.rest.builder.guild/StickerModifyBuilder : dev.kord.rest.builder/RequestBuilder { // dev.kord.rest.builder.guild/StickerModifyBuilder|null[0] constructor () // dev.kord.rest.builder.guild/StickerModifyBuilder.|(){}[0] @@ -3619,6 +3673,46 @@ final class dev.kord.rest.json.request/ChannelPositionSwapRequest { // dev.kord. } } +final class dev.kord.rest.json.request/CreateSoundboardSoundRequest { // dev.kord.rest.json.request/CreateSoundboardSoundRequest|null[0] + constructor (kotlin/String, kotlin/String, dev.kord.common.entity.optional/OptionalDouble? = ..., dev.kord.common.entity.optional/OptionalSnowflake? = ..., dev.kord.common.entity.optional/Optional = ...) // dev.kord.rest.json.request/CreateSoundboardSoundRequest.|(kotlin.String;kotlin.String;dev.kord.common.entity.optional.OptionalDouble?;dev.kord.common.entity.optional.OptionalSnowflake?;dev.kord.common.entity.optional.Optional){}[0] + + final val emojiId // dev.kord.rest.json.request/CreateSoundboardSoundRequest.emojiId|{}emojiId[0] + final fun (): dev.kord.common.entity.optional/OptionalSnowflake? // dev.kord.rest.json.request/CreateSoundboardSoundRequest.emojiId.|(){}[0] + final val emojiName // dev.kord.rest.json.request/CreateSoundboardSoundRequest.emojiName|{}emojiName[0] + final fun (): dev.kord.common.entity.optional/Optional // dev.kord.rest.json.request/CreateSoundboardSoundRequest.emojiName.|(){}[0] + final val name // dev.kord.rest.json.request/CreateSoundboardSoundRequest.name|{}name[0] + final fun (): kotlin/String // dev.kord.rest.json.request/CreateSoundboardSoundRequest.name.|(){}[0] + final val sound // dev.kord.rest.json.request/CreateSoundboardSoundRequest.sound|{}sound[0] + final fun (): kotlin/String // dev.kord.rest.json.request/CreateSoundboardSoundRequest.sound.|(){}[0] + final val volume // dev.kord.rest.json.request/CreateSoundboardSoundRequest.volume|{}volume[0] + final fun (): dev.kord.common.entity.optional/OptionalDouble? // dev.kord.rest.json.request/CreateSoundboardSoundRequest.volume.|(){}[0] + + final fun component1(): kotlin/String // dev.kord.rest.json.request/CreateSoundboardSoundRequest.component1|component1(){}[0] + final fun component2(): kotlin/String // dev.kord.rest.json.request/CreateSoundboardSoundRequest.component2|component2(){}[0] + final fun component3(): dev.kord.common.entity.optional/OptionalDouble? // dev.kord.rest.json.request/CreateSoundboardSoundRequest.component3|component3(){}[0] + final fun component4(): dev.kord.common.entity.optional/OptionalSnowflake? // dev.kord.rest.json.request/CreateSoundboardSoundRequest.component4|component4(){}[0] + final fun component5(): dev.kord.common.entity.optional/Optional // dev.kord.rest.json.request/CreateSoundboardSoundRequest.component5|component5(){}[0] + final fun copy(kotlin/String = ..., kotlin/String = ..., dev.kord.common.entity.optional/OptionalDouble? = ..., dev.kord.common.entity.optional/OptionalSnowflake? = ..., dev.kord.common.entity.optional/Optional = ...): dev.kord.rest.json.request/CreateSoundboardSoundRequest // dev.kord.rest.json.request/CreateSoundboardSoundRequest.copy|copy(kotlin.String;kotlin.String;dev.kord.common.entity.optional.OptionalDouble?;dev.kord.common.entity.optional.OptionalSnowflake?;dev.kord.common.entity.optional.Optional){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // dev.kord.rest.json.request/CreateSoundboardSoundRequest.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // dev.kord.rest.json.request/CreateSoundboardSoundRequest.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // dev.kord.rest.json.request/CreateSoundboardSoundRequest.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // dev.kord.rest.json.request/CreateSoundboardSoundRequest.$serializer|null[0] + final val descriptor // dev.kord.rest.json.request/CreateSoundboardSoundRequest.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // dev.kord.rest.json.request/CreateSoundboardSoundRequest.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // dev.kord.rest.json.request/CreateSoundboardSoundRequest.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): dev.kord.rest.json.request/CreateSoundboardSoundRequest // dev.kord.rest.json.request/CreateSoundboardSoundRequest.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, dev.kord.rest.json.request/CreateSoundboardSoundRequest) // dev.kord.rest.json.request/CreateSoundboardSoundRequest.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;dev.kord.rest.json.request.CreateSoundboardSoundRequest){}[0] + } + + final object Companion { // dev.kord.rest.json.request/CreateSoundboardSoundRequest.Companion|null[0] + final val $childSerializers // dev.kord.rest.json.request/CreateSoundboardSoundRequest.Companion.$childSerializers|{}$childSerializers[0] + + final fun serializer(): kotlinx.serialization/KSerializer // dev.kord.rest.json.request/CreateSoundboardSoundRequest.Companion.serializer|serializer(){}[0] + } +} + final class dev.kord.rest.json.request/CurrentUserModifyRequest { // dev.kord.rest.json.request/CurrentUserModifyRequest|null[0] constructor (dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/Optional = ...) // dev.kord.rest.json.request/CurrentUserModifyRequest.|(dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.Optional){}[0] @@ -5777,6 +5871,35 @@ final class dev.kord.rest.json.request/ScheduledEventModifyRequest { // dev.kord } } +final class dev.kord.rest.json.request/SendSoundboardSoundRequest { // dev.kord.rest.json.request/SendSoundboardSoundRequest|null[0] + constructor (dev.kord.common.entity/Snowflake, dev.kord.common.entity.optional/OptionalSnowflake = ...) // dev.kord.rest.json.request/SendSoundboardSoundRequest.|(dev.kord.common.entity.Snowflake;dev.kord.common.entity.optional.OptionalSnowflake){}[0] + + final val soundId // dev.kord.rest.json.request/SendSoundboardSoundRequest.soundId|{}soundId[0] + final fun (): dev.kord.common.entity/Snowflake // dev.kord.rest.json.request/SendSoundboardSoundRequest.soundId.|(){}[0] + final val sourceGuildId // dev.kord.rest.json.request/SendSoundboardSoundRequest.sourceGuildId|{}sourceGuildId[0] + final fun (): dev.kord.common.entity.optional/OptionalSnowflake // dev.kord.rest.json.request/SendSoundboardSoundRequest.sourceGuildId.|(){}[0] + + final fun component1(): dev.kord.common.entity/Snowflake // dev.kord.rest.json.request/SendSoundboardSoundRequest.component1|component1(){}[0] + final fun component2(): dev.kord.common.entity.optional/OptionalSnowflake // dev.kord.rest.json.request/SendSoundboardSoundRequest.component2|component2(){}[0] + final fun copy(dev.kord.common.entity/Snowflake = ..., dev.kord.common.entity.optional/OptionalSnowflake = ...): dev.kord.rest.json.request/SendSoundboardSoundRequest // dev.kord.rest.json.request/SendSoundboardSoundRequest.copy|copy(dev.kord.common.entity.Snowflake;dev.kord.common.entity.optional.OptionalSnowflake){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // dev.kord.rest.json.request/SendSoundboardSoundRequest.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // dev.kord.rest.json.request/SendSoundboardSoundRequest.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // dev.kord.rest.json.request/SendSoundboardSoundRequest.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // dev.kord.rest.json.request/SendSoundboardSoundRequest.$serializer|null[0] + final val descriptor // dev.kord.rest.json.request/SendSoundboardSoundRequest.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // dev.kord.rest.json.request/SendSoundboardSoundRequest.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // dev.kord.rest.json.request/SendSoundboardSoundRequest.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): dev.kord.rest.json.request/SendSoundboardSoundRequest // dev.kord.rest.json.request/SendSoundboardSoundRequest.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, dev.kord.rest.json.request/SendSoundboardSoundRequest) // dev.kord.rest.json.request/SendSoundboardSoundRequest.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;dev.kord.rest.json.request.SendSoundboardSoundRequest){}[0] + } + + final object Companion { // dev.kord.rest.json.request/SendSoundboardSoundRequest.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // dev.kord.rest.json.request/SendSoundboardSoundRequest.Companion.serializer|serializer(){}[0] + } +} + 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] @@ -5945,6 +6068,43 @@ final class dev.kord.rest.json.request/TestEntitlementCreateRequest { // dev.kor } } +final class dev.kord.rest.json.request/UpdateSoundboardSoundRequest { // dev.kord.rest.json.request/UpdateSoundboardSoundRequest|null[0] + constructor (dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/OptionalDouble? = ..., dev.kord.common.entity.optional/OptionalSnowflake? = ..., dev.kord.common.entity.optional/Optional = ...) // dev.kord.rest.json.request/UpdateSoundboardSoundRequest.|(dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.OptionalDouble?;dev.kord.common.entity.optional.OptionalSnowflake?;dev.kord.common.entity.optional.Optional){}[0] + + final val emojiId // dev.kord.rest.json.request/UpdateSoundboardSoundRequest.emojiId|{}emojiId[0] + final fun (): dev.kord.common.entity.optional/OptionalSnowflake? // dev.kord.rest.json.request/UpdateSoundboardSoundRequest.emojiId.|(){}[0] + final val emojiName // dev.kord.rest.json.request/UpdateSoundboardSoundRequest.emojiName|{}emojiName[0] + final fun (): dev.kord.common.entity.optional/Optional // dev.kord.rest.json.request/UpdateSoundboardSoundRequest.emojiName.|(){}[0] + final val name // dev.kord.rest.json.request/UpdateSoundboardSoundRequest.name|{}name[0] + final fun (): dev.kord.common.entity.optional/Optional // dev.kord.rest.json.request/UpdateSoundboardSoundRequest.name.|(){}[0] + final val volume // dev.kord.rest.json.request/UpdateSoundboardSoundRequest.volume|{}volume[0] + final fun (): dev.kord.common.entity.optional/OptionalDouble? // dev.kord.rest.json.request/UpdateSoundboardSoundRequest.volume.|(){}[0] + + final fun component1(): dev.kord.common.entity.optional/Optional // dev.kord.rest.json.request/UpdateSoundboardSoundRequest.component1|component1(){}[0] + final fun component2(): dev.kord.common.entity.optional/OptionalDouble? // dev.kord.rest.json.request/UpdateSoundboardSoundRequest.component2|component2(){}[0] + final fun component3(): dev.kord.common.entity.optional/OptionalSnowflake? // dev.kord.rest.json.request/UpdateSoundboardSoundRequest.component3|component3(){}[0] + final fun component4(): dev.kord.common.entity.optional/Optional // dev.kord.rest.json.request/UpdateSoundboardSoundRequest.component4|component4(){}[0] + final fun copy(dev.kord.common.entity.optional/Optional = ..., dev.kord.common.entity.optional/OptionalDouble? = ..., dev.kord.common.entity.optional/OptionalSnowflake? = ..., dev.kord.common.entity.optional/Optional = ...): dev.kord.rest.json.request/UpdateSoundboardSoundRequest // dev.kord.rest.json.request/UpdateSoundboardSoundRequest.copy|copy(dev.kord.common.entity.optional.Optional;dev.kord.common.entity.optional.OptionalDouble?;dev.kord.common.entity.optional.OptionalSnowflake?;dev.kord.common.entity.optional.Optional){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // dev.kord.rest.json.request/UpdateSoundboardSoundRequest.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // dev.kord.rest.json.request/UpdateSoundboardSoundRequest.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // dev.kord.rest.json.request/UpdateSoundboardSoundRequest.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // dev.kord.rest.json.request/UpdateSoundboardSoundRequest.$serializer|null[0] + final val descriptor // dev.kord.rest.json.request/UpdateSoundboardSoundRequest.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // dev.kord.rest.json.request/UpdateSoundboardSoundRequest.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // dev.kord.rest.json.request/UpdateSoundboardSoundRequest.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): dev.kord.rest.json.request/UpdateSoundboardSoundRequest // dev.kord.rest.json.request/UpdateSoundboardSoundRequest.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, dev.kord.rest.json.request/UpdateSoundboardSoundRequest) // dev.kord.rest.json.request/UpdateSoundboardSoundRequest.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;dev.kord.rest.json.request.UpdateSoundboardSoundRequest){}[0] + } + + final object Companion { // dev.kord.rest.json.request/UpdateSoundboardSoundRequest.Companion|null[0] + final val $childSerializers // dev.kord.rest.json.request/UpdateSoundboardSoundRequest.Companion.$childSerializers|{}$childSerializers[0] + + final fun serializer(): kotlinx.serialization/KSerializer // dev.kord.rest.json.request/UpdateSoundboardSoundRequest.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] @@ -6447,6 +6607,34 @@ final class dev.kord.rest.json.response/GuildMFALevelModifyResponse { // dev.kor } } +final class dev.kord.rest.json.response/GuildSoundboardSoundsResponse { // dev.kord.rest.json.response/GuildSoundboardSoundsResponse|null[0] + constructor (kotlin.collections/List) // dev.kord.rest.json.response/GuildSoundboardSoundsResponse.|(kotlin.collections.List){}[0] + + final val items // dev.kord.rest.json.response/GuildSoundboardSoundsResponse.items|{}items[0] + final fun (): kotlin.collections/List // dev.kord.rest.json.response/GuildSoundboardSoundsResponse.items.|(){}[0] + + final fun component1(): kotlin.collections/List // dev.kord.rest.json.response/GuildSoundboardSoundsResponse.component1|component1(){}[0] + final fun copy(kotlin.collections/List = ...): dev.kord.rest.json.response/GuildSoundboardSoundsResponse // dev.kord.rest.json.response/GuildSoundboardSoundsResponse.copy|copy(kotlin.collections.List){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // dev.kord.rest.json.response/GuildSoundboardSoundsResponse.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // dev.kord.rest.json.response/GuildSoundboardSoundsResponse.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // dev.kord.rest.json.response/GuildSoundboardSoundsResponse.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // dev.kord.rest.json.response/GuildSoundboardSoundsResponse.$serializer|null[0] + final val descriptor // dev.kord.rest.json.response/GuildSoundboardSoundsResponse.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // dev.kord.rest.json.response/GuildSoundboardSoundsResponse.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // dev.kord.rest.json.response/GuildSoundboardSoundsResponse.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): dev.kord.rest.json.response/GuildSoundboardSoundsResponse // dev.kord.rest.json.response/GuildSoundboardSoundsResponse.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, dev.kord.rest.json.response/GuildSoundboardSoundsResponse) // dev.kord.rest.json.response/GuildSoundboardSoundsResponse.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;dev.kord.rest.json.response.GuildSoundboardSoundsResponse){}[0] + } + + final object Companion { // dev.kord.rest.json.response/GuildSoundboardSoundsResponse.Companion|null[0] + final val $childSerializers // dev.kord.rest.json.response/GuildSoundboardSoundsResponse.Companion.$childSerializers|{}$childSerializers[0] + + final fun serializer(): kotlinx.serialization/KSerializer // dev.kord.rest.json.response/GuildSoundboardSoundsResponse.Companion.serializer|serializer(){}[0] + } +} + final class dev.kord.rest.json.response/ListThreadsResponse { // dev.kord.rest.json.response/ListThreadsResponse|null[0] constructor (kotlin.collections/List, kotlin.collections/List) // dev.kord.rest.json.response/ListThreadsResponse.|(kotlin.collections.List;kotlin.collections.List){}[0] @@ -6772,6 +6960,7 @@ final class dev.kord.rest.service/ChannelService : dev.kord.rest.service/RestSer final suspend fun putChannel(dev.kord.common.entity/Snowflake, dev.kord.rest.json.request/ChannelModifyPutRequest, kotlin/String? = ...): dev.kord.common.entity/DiscordChannel // dev.kord.rest.service/ChannelService.putChannel|putChannel(dev.kord.common.entity.Snowflake;dev.kord.rest.json.request.ChannelModifyPutRequest;kotlin.String?){}[0] final suspend fun removeFromGroup(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake) // dev.kord.rest.service/ChannelService.removeFromGroup|removeFromGroup(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake){}[0] final suspend fun removeUserFromThread(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake) // dev.kord.rest.service/ChannelService.removeUserFromThread|removeUserFromThread(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake){}[0] + final suspend fun sendSoundboardSound(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake? = ...) // dev.kord.rest.service/ChannelService.sendSoundboardSound|sendSoundboardSound(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake?){}[0] final suspend fun startForumThread(dev.kord.common.entity/Snowflake, kotlin/String, kotlin/Function1 = ...): dev.kord.common.entity/DiscordChannel // dev.kord.rest.service/ChannelService.startForumThread|startForumThread(dev.kord.common.entity.Snowflake;kotlin.String;kotlin.Function1){}[0] final suspend fun startThread(dev.kord.common.entity/Snowflake, dev.kord.rest.json.request/MultipartStartThreadRequest, kotlin/String? = ...): dev.kord.common.entity/DiscordChannel // dev.kord.rest.service/ChannelService.startThread|startThread(dev.kord.common.entity.Snowflake;dev.kord.rest.json.request.MultipartStartThreadRequest;kotlin.String?){}[0] final suspend fun startThread(dev.kord.common.entity/Snowflake, dev.kord.rest.json.request/StartThreadRequest, kotlin/String? = ...): dev.kord.common.entity/DiscordChannel // dev.kord.rest.service/ChannelService.startThread|startThread(dev.kord.common.entity.Snowflake;dev.kord.rest.json.request.StartThreadRequest;kotlin.String?){}[0] @@ -6812,12 +7001,14 @@ final class dev.kord.rest.service/GuildService : dev.kord.rest.service/RestServi final suspend fun beginGuildPrune(dev.kord.common.entity/Snowflake, kotlin/Int = ..., kotlin/Boolean = ..., kotlin/String? = ...): dev.kord.rest.json.response/PruneResponse // dev.kord.rest.service/GuildService.beginGuildPrune|beginGuildPrune(dev.kord.common.entity.Snowflake;kotlin.Int;kotlin.Boolean;kotlin.String?){}[0] final suspend fun createGuildChannel(dev.kord.common.entity/Snowflake, dev.kord.rest.json.request/GuildChannelCreateRequest, kotlin/String? = ...): dev.kord.common.entity/DiscordChannel // dev.kord.rest.service/GuildService.createGuildChannel|createGuildChannel(dev.kord.common.entity.Snowflake;dev.kord.rest.json.request.GuildChannelCreateRequest;kotlin.String?){}[0] final suspend fun createGuildIntegration(dev.kord.common.entity/Snowflake, dev.kord.rest.json.request/GuildIntegrationCreateRequest) // dev.kord.rest.service/GuildService.createGuildIntegration|createGuildIntegration(dev.kord.common.entity.Snowflake;dev.kord.rest.json.request.GuildIntegrationCreateRequest){}[0] + final suspend fun createGuildSoundboardSound(dev.kord.common.entity/Snowflake, dev.kord.rest.json.request/CreateSoundboardSoundRequest, kotlin/String? = ...): dev.kord.common.entity/DiscordSoundboardSound // dev.kord.rest.service/GuildService.createGuildSoundboardSound|createGuildSoundboardSound(dev.kord.common.entity.Snowflake;dev.kord.rest.json.request.CreateSoundboardSoundRequest;kotlin.String?){}[0] final suspend fun createScheduledEvent(dev.kord.common.entity/Snowflake, dev.kord.rest.json.request/GuildScheduledEventCreateRequest, kotlin/String? = ...): dev.kord.common.entity/DiscordGuildScheduledEvent // dev.kord.rest.service/GuildService.createScheduledEvent|createScheduledEvent(dev.kord.common.entity.Snowflake;dev.kord.rest.json.request.GuildScheduledEventCreateRequest;kotlin.String?){}[0] final suspend fun deleteGuild(dev.kord.common.entity/Snowflake) // dev.kord.rest.service/GuildService.deleteGuild|deleteGuild(dev.kord.common.entity.Snowflake){}[0] final suspend fun deleteGuildBan(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake, kotlin/String? = ...) // dev.kord.rest.service/GuildService.deleteGuildBan|deleteGuildBan(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;kotlin.String?){}[0] final suspend fun deleteGuildIntegration(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake, kotlin/String? = ...) // dev.kord.rest.service/GuildService.deleteGuildIntegration|deleteGuildIntegration(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;kotlin.String?){}[0] final suspend fun deleteGuildMember(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake, kotlin/String? = ...) // dev.kord.rest.service/GuildService.deleteGuildMember|deleteGuildMember(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;kotlin.String?){}[0] final suspend fun deleteGuildRole(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake, kotlin/String? = ...) // dev.kord.rest.service/GuildService.deleteGuildRole|deleteGuildRole(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;kotlin.String?){}[0] + final suspend fun deleteGuildSoundboardSound(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake, kotlin/String? = ...) // dev.kord.rest.service/GuildService.deleteGuildSoundboardSound|deleteGuildSoundboardSound(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;kotlin.String?){}[0] final suspend fun deleteRoleFromGuildMember(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake, kotlin/String? = ...) // dev.kord.rest.service/GuildService.deleteRoleFromGuildMember|deleteRoleFromGuildMember(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;kotlin.String?){}[0] final suspend fun deleteScheduledEvent(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake) // dev.kord.rest.service/GuildService.deleteScheduledEvent|deleteScheduledEvent(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake){}[0] final suspend fun getGuild(dev.kord.common.entity/Snowflake, kotlin/Boolean = ...): dev.kord.common.entity/DiscordGuild // dev.kord.rest.service/GuildService.getGuild|getGuild(dev.kord.common.entity.Snowflake;kotlin.Boolean){}[0] @@ -6833,6 +7024,7 @@ final class dev.kord.rest.service/GuildService : dev.kord.rest.service/RestServi final suspend fun getGuildPreview(dev.kord.common.entity/Snowflake): dev.kord.common.entity/DiscordGuildPreview // dev.kord.rest.service/GuildService.getGuildPreview|getGuildPreview(dev.kord.common.entity.Snowflake){}[0] final suspend fun getGuildPruneCount(dev.kord.common.entity/Snowflake, kotlin/Int = ...): dev.kord.rest.json.response/GetPruneResponse // dev.kord.rest.service/GuildService.getGuildPruneCount|getGuildPruneCount(dev.kord.common.entity.Snowflake;kotlin.Int){}[0] final suspend fun getGuildRoles(dev.kord.common.entity/Snowflake): kotlin.collections/List // dev.kord.rest.service/GuildService.getGuildRoles|getGuildRoles(dev.kord.common.entity.Snowflake){}[0] + final suspend fun getGuildSoundboardSound(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake): dev.kord.common.entity/DiscordSoundboardSound // dev.kord.rest.service/GuildService.getGuildSoundboardSound|getGuildSoundboardSound(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake){}[0] final suspend fun getGuildVoiceRegions(dev.kord.common.entity/Snowflake): kotlin.collections/List // dev.kord.rest.service/GuildService.getGuildVoiceRegions|getGuildVoiceRegions(dev.kord.common.entity.Snowflake){}[0] final suspend fun getGuildWelcomeScreen(dev.kord.common.entity/Snowflake): dev.kord.common.entity/DiscordWelcomeScreen // dev.kord.rest.service/GuildService.getGuildWelcomeScreen|getGuildWelcomeScreen(dev.kord.common.entity.Snowflake){}[0] final suspend fun getGuildWidget(dev.kord.common.entity/Snowflake): dev.kord.common.entity/DiscordGuildWidget // dev.kord.rest.service/GuildService.getGuildWidget|getGuildWidget(dev.kord.common.entity.Snowflake){}[0] @@ -6842,11 +7034,13 @@ final class dev.kord.rest.service/GuildService : dev.kord.rest.service/RestServi final suspend fun getScheduledEventUsersBefore(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake, kotlin/Boolean? = ..., kotlin/Int? = ...): kotlin.collections/List // dev.kord.rest.service/GuildService.getScheduledEventUsersBefore|getScheduledEventUsersBefore(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;kotlin.Boolean?;kotlin.Int?){}[0] final suspend fun getVanityInvite(dev.kord.common.entity/Snowflake): dev.kord.common.entity/DiscordPartialInvite // dev.kord.rest.service/GuildService.getVanityInvite|getVanityInvite(dev.kord.common.entity.Snowflake){}[0] final suspend fun listActiveThreads(dev.kord.common.entity/Snowflake): dev.kord.rest.json.response/ListThreadsResponse // dev.kord.rest.service/GuildService.listActiveThreads|listActiveThreads(dev.kord.common.entity.Snowflake){}[0] + final suspend fun listGuildSoundboardSounds(dev.kord.common.entity/Snowflake): dev.kord.rest.json.response/GuildSoundboardSoundsResponse // dev.kord.rest.service/GuildService.listGuildSoundboardSounds|listGuildSoundboardSounds(dev.kord.common.entity.Snowflake){}[0] final suspend fun listScheduledEvents(dev.kord.common.entity/Snowflake, kotlin/Boolean? = ...): kotlin.collections/List // dev.kord.rest.service/GuildService.listScheduledEvents|listScheduledEvents(dev.kord.common.entity.Snowflake;kotlin.Boolean?){}[0] final suspend fun modifyCurrentUserNickname(dev.kord.common.entity/Snowflake, dev.kord.rest.json.request/CurrentUserNicknameModifyRequest, kotlin/String? = ...): dev.kord.rest.json.response/CurrentUserNicknameModifyResponse // dev.kord.rest.service/GuildService.modifyCurrentUserNickname|modifyCurrentUserNickname(dev.kord.common.entity.Snowflake;dev.kord.rest.json.request.CurrentUserNicknameModifyRequest;kotlin.String?){}[0] final suspend fun modifyCurrentVoiceState(dev.kord.common.entity/Snowflake, dev.kord.rest.json.request/CurrentVoiceStateModifyRequest) // dev.kord.rest.service/GuildService.modifyCurrentVoiceState|modifyCurrentVoiceState(dev.kord.common.entity.Snowflake;dev.kord.rest.json.request.CurrentVoiceStateModifyRequest){}[0] final suspend fun modifyGuildMFALevel(dev.kord.common.entity/Snowflake, dev.kord.common.entity/MFALevel, kotlin/String? = ...): dev.kord.rest.json.response/GuildMFALevelModifyResponse // dev.kord.rest.service/GuildService.modifyGuildMFALevel|modifyGuildMFALevel(dev.kord.common.entity.Snowflake;dev.kord.common.entity.MFALevel;kotlin.String?){}[0] final suspend fun modifyGuildOnboarding(dev.kord.common.entity/Snowflake, dev.kord.rest.json.request/GuildOnboardingModifyRequest, kotlin/String? = ...): dev.kord.common.entity/DiscordGuildOnboarding // dev.kord.rest.service/GuildService.modifyGuildOnboarding|modifyGuildOnboarding(dev.kord.common.entity.Snowflake;dev.kord.rest.json.request.GuildOnboardingModifyRequest;kotlin.String?){}[0] + final suspend fun modifyGuildSoundboardSound(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake, dev.kord.rest.json.request/UpdateSoundboardSoundRequest, kotlin/String? = ...): dev.kord.common.entity/DiscordSoundboardSound // dev.kord.rest.service/GuildService.modifyGuildSoundboardSound|modifyGuildSoundboardSound(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;dev.kord.rest.json.request.UpdateSoundboardSoundRequest;kotlin.String?){}[0] final suspend fun modifyGuildWelcomeScreen(dev.kord.common.entity/Snowflake, dev.kord.rest.json.request/GuildWelcomeScreenModifyRequest, kotlin/String? = ...): dev.kord.common.entity/DiscordWelcomeScreen // dev.kord.rest.service/GuildService.modifyGuildWelcomeScreen|modifyGuildWelcomeScreen(dev.kord.common.entity.Snowflake;dev.kord.rest.json.request.GuildWelcomeScreenModifyRequest;kotlin.String?){}[0] final suspend fun modifyGuildWidget(dev.kord.common.entity/Snowflake, dev.kord.rest.json.request/GuildWidgetModifyRequest, kotlin/String? = ...): dev.kord.common.entity/DiscordGuildWidget // dev.kord.rest.service/GuildService.modifyGuildWidget|modifyGuildWidget(dev.kord.common.entity.Snowflake;dev.kord.rest.json.request.GuildWidgetModifyRequest;kotlin.String?){}[0] final suspend fun modifyScheduledEvent(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake, dev.kord.rest.json.request/ScheduledEventModifyRequest, kotlin/String? = ...): dev.kord.common.entity/DiscordGuildScheduledEvent // dev.kord.rest.service/GuildService.modifyScheduledEvent|modifyScheduledEvent(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;dev.kord.rest.json.request.ScheduledEventModifyRequest;kotlin.String?){}[0] @@ -6954,6 +7148,8 @@ final class dev.kord.rest.service/RestClient : dev.kord.rest.service/RestService 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 soundboard // dev.kord.rest.service/RestClient.soundboard|{}soundboard[0] + final fun (): dev.kord.rest.service/SoundboardService // dev.kord.rest.service/RestClient.soundboard.|(){}[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] @@ -6978,6 +7174,12 @@ final class dev.kord.rest.service/SkuService : dev.kord.rest.service/RestService 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/SoundboardService : dev.kord.rest.service/RestService { // dev.kord.rest.service/SoundboardService|null[0] + constructor (dev.kord.rest.request/RequestHandler) // dev.kord.rest.service/SoundboardService.|(dev.kord.rest.request.RequestHandler){}[0] + + final suspend fun getDefaultSounds(): kotlin.collections/List // dev.kord.rest.service/SoundboardService.getDefaultSounds|getDefaultSounds(){}[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] @@ -7137,6 +7339,53 @@ final class dev.kord.rest/NamedFile { // dev.kord.rest/NamedFile|null[0] final fun component3(): kotlin/String // dev.kord.rest/NamedFile.component3|component3(){}[0] } +final class dev.kord.rest/Sound { // dev.kord.rest/Sound|null[0] + final val data // dev.kord.rest/Sound.data|{}data[0] + final fun (): kotlin/ByteArray // dev.kord.rest/Sound.data.|(){}[0] + final val dataUri // dev.kord.rest/Sound.dataUri|{}dataUri[0] + final fun (): kotlin/String // dev.kord.rest/Sound.dataUri.|(){}[0] + final val format // dev.kord.rest/Sound.format|{}format[0] + final fun (): dev.kord.rest/Sound.Format // dev.kord.rest/Sound.format.|(){}[0] + + sealed class Format { // dev.kord.rest/Sound.Format|null[0] + final val extension // dev.kord.rest/Sound.Format.extension|{}extension[0] + final fun (): kotlin/String // dev.kord.rest/Sound.Format.extension.|(){}[0] + final val extensions // dev.kord.rest/Sound.Format.extensions|{}extensions[0] + final fun (): kotlin.collections/List // dev.kord.rest/Sound.Format.extensions.|(){}[0] + final val mimeType // dev.kord.rest/Sound.Format.mimeType|{}mimeType[0] + final fun (): io.ktor.http/ContentType // dev.kord.rest/Sound.Format.mimeType.|(){}[0] + + final object Companion { // dev.kord.rest/Sound.Format.Companion|null[0] + final val values // dev.kord.rest/Sound.Format.Companion.values|{}values[0] + final fun (): kotlin.collections/Set // dev.kord.rest/Sound.Format.Companion.values.|(){}[0] + + final fun fromContentType(io.ktor.http/ContentType): dev.kord.rest/Sound.Format // dev.kord.rest/Sound.Format.Companion.fromContentType|fromContentType(io.ktor.http.ContentType){}[0] + final fun fromContentType(kotlin/String): dev.kord.rest/Sound.Format // dev.kord.rest/Sound.Format.Companion.fromContentType|fromContentType(kotlin.String){}[0] + final fun fromExtension(kotlin/String): dev.kord.rest/Sound.Format // dev.kord.rest/Sound.Format.Companion.fromExtension|fromExtension(kotlin.String){}[0] + final fun isSupported(kotlin/String): kotlin/Boolean // dev.kord.rest/Sound.Format.Companion.isSupported|isSupported(kotlin.String){}[0] + } + + final object MP3 : dev.kord.rest/Sound.Format { // dev.kord.rest/Sound.Format.MP3|null[0] + final fun equals(kotlin/Any?): kotlin/Boolean // dev.kord.rest/Sound.Format.MP3.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // dev.kord.rest/Sound.Format.MP3.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // dev.kord.rest/Sound.Format.MP3.toString|toString(){}[0] + } + + final object OGG : dev.kord.rest/Sound.Format { // dev.kord.rest/Sound.Format.OGG|null[0] + final fun equals(kotlin/Any?): kotlin/Boolean // dev.kord.rest/Sound.Format.OGG.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // dev.kord.rest/Sound.Format.OGG.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // dev.kord.rest/Sound.Format.OGG.toString|toString(){}[0] + } + } + + final object Companion { // dev.kord.rest/Sound.Companion|null[0] + final fun fromFile(kotlinx.io.files/Path, kotlinx.io.files/FileSystem = ...): dev.kord.rest/Sound // dev.kord.rest/Sound.Companion.fromFile|fromFile(kotlinx.io.files.Path;kotlinx.io.files.FileSystem){}[0] + final fun fromSource(kotlinx.io/Source, dev.kord.rest/Sound.Format): dev.kord.rest/Sound // dev.kord.rest/Sound.Companion.fromSource|fromSource(kotlinx.io.Source;dev.kord.rest.Sound.Format){}[0] + final fun raw(kotlin/ByteArray, dev.kord.rest/Sound.Format): dev.kord.rest/Sound // dev.kord.rest/Sound.Companion.raw|raw(kotlin.ByteArray;dev.kord.rest.Sound.Format){}[0] + final suspend fun fromUrl(io.ktor.client/HttpClient, kotlin/String): dev.kord.rest/Sound // dev.kord.rest/Sound.Companion.fromUrl|fromUrl(io.ktor.client.HttpClient;kotlin.String){}[0] + } +} + final value class dev.kord.rest.ratelimit/BucketKey { // dev.kord.rest.ratelimit/BucketKey|null[0] constructor (kotlin/String) // dev.kord.rest.ratelimit/BucketKey.|(kotlin.String){}[0] @@ -7300,6 +7549,8 @@ sealed class <#A: kotlin/Any?> dev.kord.rest.route/Route { // dev.kord.rest.rout final object DeleteAllReactionsForEmoji : dev.kord.rest.route/Route // dev.kord.rest.route/Route.DeleteAllReactionsForEmoji|null[0] + final object DeleteGuildsSoundboardSound : dev.kord.rest.route/Route // dev.kord.rest.route/Route.DeleteGuildsSoundboardSound|null[0] + final object DeleteWebhookMessage : dev.kord.rest.route/Route // dev.kord.rest.route/Route.DeleteWebhookMessage|null[0] final object EditMessagePatch : dev.kord.rest.route/Route // dev.kord.rest.route/Route.EditMessagePatch|null[0] @@ -7334,6 +7585,12 @@ sealed class <#A: kotlin/Any?> dev.kord.rest.route/Route { // dev.kord.rest.rout final object GatewayGet : dev.kord.rest.route/Route // dev.kord.rest.route/Route.GatewayGet|null[0] + final object GetGuildsSoundboardSound : dev.kord.rest.route/Route // dev.kord.rest.route/Route.GetGuildsSoundboardSound|null[0] + + final object GetGuildsSoundboardSounds : dev.kord.rest.route/Route // dev.kord.rest.route/Route.GetGuildsSoundboardSounds|null[0] + + final object GetSoundboardDefaultSounds : dev.kord.rest.route/Route> // dev.kord.rest.route/Route.GetSoundboardDefaultSounds|null[0] + final object GetWebhookMessage : dev.kord.rest.route/Route // dev.kord.rest.route/Route.GetWebhookMessage|null[0] final object GlobalApplicationCommandCreate : dev.kord.rest.route/Route // dev.kord.rest.route/Route.GlobalApplicationCommandCreate|null[0] @@ -7548,12 +7805,16 @@ sealed class <#A: kotlin/Any?> dev.kord.rest.route/Route { // dev.kord.rest.rout final object OwnReactionDelete : dev.kord.rest.route/Route // dev.kord.rest.route/Route.OwnReactionDelete|null[0] + final object PatchGuildsSoundboardSound : dev.kord.rest.route/Route // dev.kord.rest.route/Route.PatchGuildsSoundboardSound|null[0] + final object PinDelete : dev.kord.rest.route/Route // dev.kord.rest.route/Route.PinDelete|null[0] final object PinPut : dev.kord.rest.route/Route // dev.kord.rest.route/Route.PinPut|null[0] final object PinsGet : dev.kord.rest.route/Route> // dev.kord.rest.route/Route.PinsGet|null[0] + final object PostGuildsSoundboardSounds : dev.kord.rest.route/Route // dev.kord.rest.route/Route.PostGuildsSoundboardSounds|null[0] + final object PrivateArchivedThreadsGet : dev.kord.rest.route/Route // dev.kord.rest.route/Route.PrivateArchivedThreadsGet|null[0] final object PrivateThreadsGet : dev.kord.rest.route/Route // dev.kord.rest.route/Route.PrivateThreadsGet|null[0] @@ -7574,6 +7835,8 @@ 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 SendSoundboardSound : dev.kord.rest.route/Route // dev.kord.rest.route/Route.SendSoundboardSound|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] @@ -7582,6 +7845,8 @@ sealed class <#A: kotlin/Any?> dev.kord.rest.route/Route { // dev.kord.rest.rout final object SkusList : dev.kord.rest.route/Route> // dev.kord.rest.route/Route.SkusList|null[0] + final object SoundId : dev.kord.rest.route/Route.Key // dev.kord.rest.route/Route.SoundId|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] @@ -8124,6 +8389,7 @@ final suspend inline fun (dev.kord.rest.service/ChannelService).dev.kord.rest.se final suspend inline fun (dev.kord.rest.service/ChannelService).dev.kord.rest.service/patchVoiceChannel(dev.kord.common.entity/Snowflake, kotlin/Function1): dev.kord.common.entity/DiscordChannel // dev.kord.rest.service/patchVoiceChannel|patchVoiceChannel@dev.kord.rest.service.ChannelService(dev.kord.common.entity.Snowflake;kotlin.Function1){}[0] final suspend inline fun (dev.kord.rest.service/GuildService).dev.kord.rest.service/createCategory(dev.kord.common.entity/Snowflake, kotlin/String, kotlin/Function1): dev.kord.common.entity/DiscordChannel // dev.kord.rest.service/createCategory|createCategory@dev.kord.rest.service.GuildService(dev.kord.common.entity.Snowflake;kotlin.String;kotlin.Function1){}[0] final suspend inline fun (dev.kord.rest.service/GuildService).dev.kord.rest.service/createForumChannel(dev.kord.common.entity/Snowflake, kotlin/String, kotlin/Function1): dev.kord.common.entity/DiscordChannel // dev.kord.rest.service/createForumChannel|createForumChannel@dev.kord.rest.service.GuildService(dev.kord.common.entity.Snowflake;kotlin.String;kotlin.Function1){}[0] +final suspend inline fun (dev.kord.rest.service/GuildService).dev.kord.rest.service/createGuildSoundboardSound(dev.kord.common.entity/Snowflake, kotlin/String, dev.kord.rest/Sound, kotlin/Function1 = ...): dev.kord.common.entity/DiscordSoundboardSound // dev.kord.rest.service/createGuildSoundboardSound|createGuildSoundboardSound@dev.kord.rest.service.GuildService(dev.kord.common.entity.Snowflake;kotlin.String;dev.kord.rest.Sound;kotlin.Function1){}[0] final suspend inline fun (dev.kord.rest.service/GuildService).dev.kord.rest.service/createMediaChannel(dev.kord.common.entity/Snowflake, kotlin/String, kotlin/Function1): dev.kord.common.entity/DiscordChannel // dev.kord.rest.service/createMediaChannel|createMediaChannel@dev.kord.rest.service.GuildService(dev.kord.common.entity.Snowflake;kotlin.String;kotlin.Function1){}[0] final suspend inline fun (dev.kord.rest.service/GuildService).dev.kord.rest.service/createNewsChannel(dev.kord.common.entity/Snowflake, kotlin/String, kotlin/Function1): dev.kord.common.entity/DiscordChannel // dev.kord.rest.service/createNewsChannel|createNewsChannel@dev.kord.rest.service.GuildService(dev.kord.common.entity.Snowflake;kotlin.String;kotlin.Function1){}[0] final suspend inline fun (dev.kord.rest.service/GuildService).dev.kord.rest.service/createScheduledEvent(dev.kord.common.entity/Snowflake, kotlin/String, dev.kord.common.entity/GuildScheduledEventPrivacyLevel, kotlinx.datetime/Instant, dev.kord.common.entity/ScheduledEntityType, kotlin/Function1 = ...): dev.kord.common.entity/DiscordGuildScheduledEvent // dev.kord.rest.service/createScheduledEvent|createScheduledEvent@dev.kord.rest.service.GuildService(dev.kord.common.entity.Snowflake;kotlin.String;dev.kord.common.entity.GuildScheduledEventPrivacyLevel;kotlinx.datetime.Instant;dev.kord.common.entity.ScheduledEntityType;kotlin.Function1){}[0] @@ -8131,6 +8397,7 @@ final suspend inline fun (dev.kord.rest.service/GuildService).dev.kord.rest.serv final suspend inline fun (dev.kord.rest.service/GuildService).dev.kord.rest.service/createTextChannel(dev.kord.common.entity/Snowflake, kotlin/String, kotlin/Function1): dev.kord.common.entity/DiscordChannel // dev.kord.rest.service/createTextChannel|createTextChannel@dev.kord.rest.service.GuildService(dev.kord.common.entity.Snowflake;kotlin.String;kotlin.Function1){}[0] final suspend inline fun (dev.kord.rest.service/GuildService).dev.kord.rest.service/createVoiceChannel(dev.kord.common.entity/Snowflake, kotlin/String, kotlin/Function1): dev.kord.common.entity/DiscordChannel // dev.kord.rest.service/createVoiceChannel|createVoiceChannel@dev.kord.rest.service.GuildService(dev.kord.common.entity.Snowflake;kotlin.String;kotlin.Function1){}[0] final suspend inline fun (dev.kord.rest.service/GuildService).dev.kord.rest.service/modifyCurrentVoiceState(dev.kord.common.entity/Snowflake, kotlin/Function1) // dev.kord.rest.service/modifyCurrentVoiceState|modifyCurrentVoiceState@dev.kord.rest.service.GuildService(dev.kord.common.entity.Snowflake;kotlin.Function1){}[0] +final suspend inline fun (dev.kord.rest.service/GuildService).dev.kord.rest.service/modifyGuildSoundboardSound(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake, kotlin/Function1 = ...): dev.kord.common.entity/DiscordSoundboardSound // dev.kord.rest.service/modifyGuildSoundboardSound|modifyGuildSoundboardSound@dev.kord.rest.service.GuildService(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;kotlin.Function1){}[0] final suspend inline fun (dev.kord.rest.service/GuildService).dev.kord.rest.service/modifyGuildWelcomeScreen(dev.kord.common.entity/Snowflake, kotlin/Function1): dev.kord.common.entity/DiscordWelcomeScreen // dev.kord.rest.service/modifyGuildWelcomeScreen|modifyGuildWelcomeScreen@dev.kord.rest.service.GuildService(dev.kord.common.entity.Snowflake;kotlin.Function1){}[0] final suspend inline fun (dev.kord.rest.service/GuildService).dev.kord.rest.service/modifyScheduledEvent(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake, kotlin/Function1): dev.kord.common.entity/DiscordGuildScheduledEvent // dev.kord.rest.service/modifyScheduledEvent|modifyScheduledEvent@dev.kord.rest.service.GuildService(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;kotlin.Function1){}[0] final suspend inline fun (dev.kord.rest.service/GuildService).dev.kord.rest.service/modifyVoiceState(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake, kotlin/Function1) // dev.kord.rest.service/modifyVoiceState|modifyVoiceState@dev.kord.rest.service.GuildService(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;kotlin.Function1){}[0] diff --git a/rest/src/commonMain/kotlin/Sound.kt b/rest/src/commonMain/kotlin/Sound.kt new file mode 100644 index 00000000000..f2ce8df0c4f --- /dev/null +++ b/rest/src/commonMain/kotlin/Sound.kt @@ -0,0 +1,134 @@ +package dev.kord.rest + +import io.ktor.client.* +import io.ktor.client.call.* +import io.ktor.client.request.* +import io.ktor.http.* +import io.ktor.util.* +import kotlinx.io.Source +import kotlinx.io.buffered +import kotlinx.io.files.FileSystem +import kotlinx.io.files.Path +import kotlinx.io.files.SystemFileSystem +import kotlinx.io.readByteArray + +/** + * Representation of a Discord sound. + * + * @property data the binary data of the sound + * @property format the [Format] of the sound + * + * @see Image + */ +public class Sound private constructor(public val data: ByteArray, public val format: Format) { + + /** + * The [data uri](https://en.wikipedia.org/wiki/Data_URI_scheme) representation of this sound, which is used + * by Discord. + */ + public val dataUri: String get() = "data:${format.mimeType};base64,${data.encodeBase64()}" + + public companion object { + /** + * Creates a new [Sound] by reading the [path]. + * + * @param fileSystem the [FileSystem] to read [path] from + */ + public fun fromFile(path: Path, fileSystem: FileSystem = SystemFileSystem): Sound = + fileSystem.source(path).buffered() + .use { fromSource(it, Format.fromExtension(path.name.substringAfterLast('.'))) } + + /** + * Creates a new [Sound] by reading [source] in [format]. + * + * **This does not close [source]** + */ + public fun fromSource(source: Source, format: Format): Sound = raw(source.readByteArray(), format) + + /** + * Creates a new [Sound] from [data] in [format]. + */ + public fun raw(data: ByteArray, format: Format): Sound = Sound(data, format) + + /** + * Creates a new sound by fetching [url] using [client]. + */ + public suspend fun fromUrl(client: HttpClient, url: String): Sound { + val call = client.get(url) + val contentType = call.contentType() + ?: error("expected 'Content-Type' header in image request") + + val bytes = call.body() + + return Sound(bytes, Format.fromContentType(contentType)) + } + } + + /** + * Possible formats for [Sound]. + * + * @property mimeType the [mime type][ContentType] of the format + * @property extensions a list of possible file extensions + */ + public sealed class Format(public val mimeType: ContentType, public val extensions: List) { + protected constructor(mimeType: ContentType, vararg extensions: String) : this(mimeType, extensions.toList()) + + /** + * The default extension. + */ + public val extension: String get() = extensions.first() + + /** + * [MP3](https://en.wikipedia.org/wiki/MP3). + */ + public data object MP3 : Format(ContentType.Audio.MPEG, "mp3", "bit") + + /** + * [Ogg](https://en.wikipedia.org/wiki/Ogg). + */ + public data object OGG : Format(ContentType.Audio.OGG, "ogg", "ogv", "oga", "ogx", "ogm", "spx", "opus") + + public companion object { + /** + * All formats. + */ + public val values: Set + get() = setOf(MP3, OGG) + + /** + * Checks whether a file with [fileName] is supported. + */ + public fun isSupported(fileName: String): Boolean { + return values.any { + it.extensions.any { extension -> fileName.endsWith(extension, true) } + } + } + + /** + * Finds the corresponding [Format] for [extension]. + * + * @throws IllegalArgumentException if the file extension is unsupported + */ + public fun fromExtension(extension: String): Format = values.firstOrNull { extension in it.extensions } + ?: throw IllegalArgumentException("Unsupported file extension: $extension") + + /** + * Finds the corresponding [Format] for [type]. + * + * @throws IllegalArgumentException if the specified type is unsupported + */ + public fun fromContentType(type: String): Format = fromContentType(ContentType.parse(type)) + + /** + * Finds the corresponding [Format] for [type]. + * + * @throws IllegalArgumentException if the specified type is unsupported + */ + public fun fromContentType(type: ContentType): Format = when (type) { + ContentType.Audio.MPEG -> MP3 + ContentType.Audio.OGG -> OGG + else -> throw IllegalArgumentException("Unsupported type: $type") + } + } + } +} diff --git a/rest/src/commonMain/kotlin/builder/guild/SoundboardSoundCreateBuilder.kt b/rest/src/commonMain/kotlin/builder/guild/SoundboardSoundCreateBuilder.kt new file mode 100644 index 00000000000..568f54460be --- /dev/null +++ b/rest/src/commonMain/kotlin/builder/guild/SoundboardSoundCreateBuilder.kt @@ -0,0 +1,43 @@ +package dev.kord.rest.builder.guild + +import dev.kord.common.entity.Snowflake +import dev.kord.common.entity.optional.Optional +import dev.kord.common.entity.optional.OptionalDouble +import dev.kord.common.entity.optional.OptionalSnowflake +import dev.kord.common.entity.optional.delegate.delegate +import dev.kord.rest.Sound +import dev.kord.rest.builder.AuditRequestBuilder +import dev.kord.rest.json.request.CreateSoundboardSoundRequest + +/** + * Builder for [CreateSoundboardSoundRequest]. + * + * @property name the name of the sound + * @property sound the [sound data][Sound] + * @property volume the volume of the soundboard sound, from 0 to 1, defaults to 1 + * @property emojiId the id of the custom emoji for the soundboard sound + * @property emojiName the unicode character of a standard emoji for the soundboard sound + */ +public class SoundboardSoundCreateBuilder( + public val name: String, + public val sound: Sound +) : AuditRequestBuilder { + override var reason: String? = null + + private var _volume: OptionalDouble = OptionalDouble.Missing + public var volume: Double? by ::_volume.delegate() + + private var _emojiId: OptionalSnowflake = OptionalSnowflake.Missing + public var emojiId: Snowflake? by ::_emojiId.delegate() + + private var _emojiName: Optional = Optional.Missing() + public var emojiName: String? by ::_emojiName.delegate() + + override fun toRequest(): CreateSoundboardSoundRequest = CreateSoundboardSoundRequest( + name, + sound.dataUri, + _volume, + _emojiId, + _emojiName + ) +} diff --git a/rest/src/commonMain/kotlin/builder/guild/SoundboardSoundModifyBuilder.kt b/rest/src/commonMain/kotlin/builder/guild/SoundboardSoundModifyBuilder.kt new file mode 100644 index 00000000000..46678d12a59 --- /dev/null +++ b/rest/src/commonMain/kotlin/builder/guild/SoundboardSoundModifyBuilder.kt @@ -0,0 +1,40 @@ +package dev.kord.rest.builder.guild + +import dev.kord.common.entity.Snowflake +import dev.kord.common.entity.optional.Optional +import dev.kord.common.entity.optional.OptionalDouble +import dev.kord.common.entity.optional.OptionalSnowflake +import dev.kord.common.entity.optional.delegate.delegate +import dev.kord.rest.builder.AuditRequestBuilder +import dev.kord.rest.json.request.UpdateSoundboardSoundRequest + +/** + * Builder for [UpdateSoundboardSoundRequest]. + * + * @property name the name of the sound + * @property volume the volume of the soundboard sound, from 0 to 1, defaults to 1 + * @property emojiId the id of the custom emoji for the soundboard sound + * @property emojiName the unicode character of a standard emoji for the soundboard sound + */ +public class SoundboardSoundModifyBuilder : AuditRequestBuilder { + override var reason: String? = null + + private var _name: Optional = Optional.Missing() + public var name: String? by ::_name.delegate() + + private var _volume: OptionalDouble = OptionalDouble.Missing + public var volume: Double? by ::_volume.delegate() + + private var _emojiId: OptionalSnowflake = OptionalSnowflake.Missing + public var emojiId: Snowflake? by ::_emojiId.delegate() + + private var _emojiName: Optional = Optional.Missing() + public var emojiName: String? by ::_emojiName.delegate() + + override fun toRequest(): UpdateSoundboardSoundRequest = UpdateSoundboardSoundRequest( + _name, + _volume, + _emojiId, + _emojiName + ) +} \ No newline at end of file diff --git a/rest/src/commonMain/kotlin/json/JsonErrorCode.kt b/rest/src/commonMain/kotlin/json/JsonErrorCode.kt index ae6112f59bb..32af9cad995 100644 --- a/rest/src/commonMain/kotlin/json/JsonErrorCode.kt +++ b/rest/src/commonMain/kotlin/json/JsonErrorCode.kt @@ -73,6 +73,9 @@ public enum class JsonErrorCode(public val code: Int) { /** Unknown session. */ UnknownSession(10020), + /** Unknown asset */ + UnknownAsset(10021), + /** Unknown ban. */ UnknownBan(10026), @@ -148,6 +151,9 @@ public enum class JsonErrorCode(public val code: Int) { /** Unknown Tag. */ UnknownTag(10087), + /** Unknown sound */ + UnknownSound(10097), + /** Bots cannot use this endpoint. */ NonBotEndpoint(20001), @@ -259,6 +265,9 @@ public enum class JsonErrorCode(public val code: Int) { /** Maximum number of guild widget settings updates has been reached. Try again later. */ MaxGuildWidgetSettingsUpdates(30042), + /** Maximum number of soundboard sounds reached */ + MaxSoundboardSounds(30045), + /** Maximum number of edits to messages older than 1 hour reached. Try again later. */ MaxOldMessageEdits(30046), @@ -509,6 +518,19 @@ public enum class JsonErrorCode(public val code: Int) { /** The request body contains invalid JSON. */ InvalidJsonInRequestBody(50109), + /** + * The provided file is invalid. + * + * Not to be confused with [InvalidFile] + */ + InvalidFileProvided(50110), + + /** The provided file type is invalid. */ + InvalidFileType(50123), + + /** The provided file duration exceeds maximum of 5.2 seconds. */ + InvalidFileExceedsMaximumLength(50124), + /** Owner cannot be pending member. */ OwnerCannotBePendingMember(50131), @@ -542,12 +564,18 @@ public enum class JsonErrorCode(public val code: Int) { /** Cannot delete guild subscription integration. */ CannotDeleteGuildSubscriptionIntegration(50163), + /** Cannot send voice effect when user is server muted, deafened or suppressed */ + CannotSendVoiceEffect(50167), + /** You cannot send voice messages in this channel. */ CannotSendVoiceMessagesInThisChannel(50173), /** The user account must first be verified. */ UserAccountMustBeVerified(50178), + /** The provided file does not have a valid duration */ + InvalidFileDuration(50192), + /** You do not have permission to send this sticker. */ StickerPermissionLack(50600), diff --git a/rest/src/commonMain/kotlin/json/request/Soundboard.kt b/rest/src/commonMain/kotlin/json/request/Soundboard.kt new file mode 100644 index 00000000000..4adfdfdee5f --- /dev/null +++ b/rest/src/commonMain/kotlin/json/request/Soundboard.kt @@ -0,0 +1,60 @@ +package dev.kord.rest.json.request + +import dev.kord.common.entity.Snowflake +import dev.kord.common.entity.optional.Optional +import dev.kord.common.entity.optional.OptionalDouble +import dev.kord.common.entity.optional.OptionalSnowflake +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +/** + * Request to play a soundboard sound. + * + * @property soundId the id of the soundboard sound to play + * @property sourceGuildId the id of the guild the soundboard sound is from, required to play sounds from different servers + */ +@Serializable +public data class SendSoundboardSoundRequest( + @SerialName("sound_id") + val soundId: Snowflake, + @SerialName("source_guild_id") + val sourceGuildId: OptionalSnowflake = OptionalSnowflake.Missing, +) + +/** + * Representation of a [Soundboard Sound](https://discord.com/developers/docs/resources/soundboard#soundboard-sound-object-soundboard-sound-structure). + * + * @property name name of the soundboard sound (2-32 characters) + * @property sound the mp3 or ogg sound data, base64 encoded + * @property volume the volume of the soundboard sound, from `0.0` to `1.0`, defaults to `1.0` + * @property emojiId the id of this sound's custom emoji (if set) + * @property emojiName the unicode character of this sound's standard emoji (if set) + */ +@Serializable +public data class CreateSoundboardSoundRequest( + val name: String, + val sound: String, + val volume: OptionalDouble? = OptionalDouble.Missing, + @SerialName("emoji_id") + val emojiId: OptionalSnowflake? = OptionalSnowflake.Missing, + @SerialName("emoji_name") + val emojiName: Optional = Optional.Missing(), +) + +/** + * Representation of a [Soundboard Sound](https://discord.com/developers/docs/resources/soundboard#soundboard-sound-object-soundboard-sound-structure). + * + * @property name name of the soundboard sound (2-32 characters) + * @property volume the volume of the soundboard sound, from `0.0` to `1.0`, defaults to `1.0` + * @property emojiId the id of this sound's custom emoji (if set) + * @property emojiName the unicode character of this sound's standard emoji (if set) + */ +@Serializable +public data class UpdateSoundboardSoundRequest( + val name: Optional = Optional.Missing(), + val volume: OptionalDouble? = OptionalDouble.Missing, + @SerialName("emoji_id") + val emojiId: OptionalSnowflake? = OptionalSnowflake.Missing, + @SerialName("emoji_name") + val emojiName: Optional = Optional.Missing(), +) \ No newline at end of file diff --git a/rest/src/commonMain/kotlin/json/response/Soundboard.kt b/rest/src/commonMain/kotlin/json/response/Soundboard.kt new file mode 100644 index 00000000000..7bf5129d068 --- /dev/null +++ b/rest/src/commonMain/kotlin/json/response/Soundboard.kt @@ -0,0 +1,7 @@ +package dev.kord.rest.json.response + +import dev.kord.common.entity.DiscordSoundboardSound +import kotlinx.serialization.Serializable + +@Serializable +public data class GuildSoundboardSoundsResponse(val items: List) \ No newline at end of file diff --git a/rest/src/commonMain/kotlin/route/Route.kt b/rest/src/commonMain/kotlin/route/Route.kt index d36346b19bd..87d6abc1caa 100644 --- a/rest/src/commonMain/kotlin/route/Route.kt +++ b/rest/src/commonMain/kotlin/route/Route.kt @@ -85,6 +85,7 @@ public sealed class Route( public object ScheduledEventId : Key("{event.id}", true) public object StickerId : Key("{sticker.id}") public object AutoModerationRuleId : Key("{auto_moderation_rule.id}") + public object SoundId : Key("{sound.id}") protected constructor( @@ -1118,4 +1119,52 @@ public sealed class Route( "/guilds/$GuildId/stickers/$StickerId", DiscordMessageSticker.serializer() ) + + public object SendSoundboardSound : Route( + HttpMethod.Post, + "/channels/$ChannelId/send-soundboard-sound", + NoStrategy, + ) + + public object GetSoundboardDefaultSounds : + Route>( + HttpMethod.Get, + "/soundboard-default-sounds", + ListSerializer(DiscordSoundboardSound.serializer()) + ) + + public object GetGuildsSoundboardSounds : + Route( + HttpMethod.Get, + "/guilds/$GuildId/soundboard-sounds", + GuildSoundboardSoundsResponse.serializer() + ) + + public object GetGuildsSoundboardSound : + Route( + HttpMethod.Post, + "/guilds/$GuildId/soundboard-sounds/$GuildId", + DiscordSoundboardSound.serializer() + ) + + public object PostGuildsSoundboardSounds : + Route( + HttpMethod.Post, + "/guilds/$GuildId/soundboard-sounds", + DiscordSoundboardSound.serializer() + ) + + public object PatchGuildsSoundboardSound : + Route( + HttpMethod.Patch, + "/guilds/$GuildId/soundboard-sounds/$GuildId", + DiscordSoundboardSound.serializer() + ) + + public object DeleteGuildsSoundboardSound : + Route( + HttpMethod.Delete, + "/guilds/$GuildId/soundboard-sounds/$GuildId", + NoStrategy + ) } diff --git a/rest/src/commonMain/kotlin/service/ChannelService.kt b/rest/src/commonMain/kotlin/service/ChannelService.kt index 14dfab1289f..607e1ae5e11 100644 --- a/rest/src/commonMain/kotlin/service/ChannelService.kt +++ b/rest/src/commonMain/kotlin/service/ChannelService.kt @@ -1,6 +1,7 @@ package dev.kord.rest.service import dev.kord.common.entity.* +import dev.kord.common.entity.optional.missingIfNull import dev.kord.rest.builder.channel.* import dev.kord.rest.builder.channel.thread.StartForumThreadBuilder import dev.kord.rest.builder.channel.thread.StartThreadBuilder @@ -414,6 +415,21 @@ public class ChannelService(requestHandler: RequestHandler) : RestService(reques ): ListThreadsResponse = call(Route.JoinedPrivateArchivedThreadsGet) { listThreadsConfig(channelId, request.before, request.limit) } + + /** + * Plays the specified [sound][soundId] in [channel][channelId]. + * + * @param sourceGuildId the id the sound is from + */ + public suspend fun sendSoundboardSound( + soundId: Snowflake, + channelId: Snowflake, + sourceGuildId: Snowflake? = null + ): Unit = call(Route.SendSoundboardSound) { + keys[Route.ChannelId] = channelId + + body(SendSoundboardSoundRequest.serializer(), SendSoundboardSoundRequest(soundId, sourceGuildId.missingIfNull)) + } } private fun RequestBuilder.listThreadsConfig(channelId: Snowflake, before: Any?, limit: Int?) { diff --git a/rest/src/commonMain/kotlin/service/GuildService.kt b/rest/src/commonMain/kotlin/service/GuildService.kt index d0b130b4001..213215a52bf 100644 --- a/rest/src/commonMain/kotlin/service/GuildService.kt +++ b/rest/src/commonMain/kotlin/service/GuildService.kt @@ -2,6 +2,7 @@ package dev.kord.rest.service import dev.kord.common.annotation.KordExperimental import dev.kord.common.entity.* +import dev.kord.rest.Sound import dev.kord.rest.builder.ban.BanCreateBuilder import dev.kord.rest.builder.channel.* import dev.kord.rest.builder.guild.* @@ -543,6 +544,68 @@ public class GuildService(requestHandler: RequestHandler) : RestService(requestH withMember, limit, ) + + /** + * Returns the [sounds][GuildSoundboardSoundsResponse] of [guild][guildId]. + */ + public suspend fun listGuildSoundboardSounds(guildId: Snowflake): GuildSoundboardSoundsResponse = + call(Route.GetGuildsSoundboardSounds) { + keys[Route.GuildId] = guildId + } + + /** + * Returns the [sound][soundId] on [guild][guildId]. + * + * @see DiscordSoundboardSound + */ + public suspend fun getGuildSoundboardSound(guildId: Snowflake, soundId: Snowflake): DiscordSoundboardSound = + call(Route.GetGuildsSoundboardSound) { + keys[Route.GuildId] = guildId + keys[Route.SoundId] = soundId + } + + /** + * Creates a new [sound][request] on [guild][guildId]. + * + * @param reason the audit log reason for this change + */ + public suspend fun createGuildSoundboardSound(guildId: Snowflake, request: CreateSoundboardSoundRequest, reason: String? = null): DiscordSoundboardSound = + call(Route.GetGuildsSoundboardSound) { + keys[Route.GuildId] = guildId + auditLogReason(reason) + body(CreateSoundboardSoundRequest.serializer(), request) + } + + /** + * Modifies [sound][soundId] on [guild][guildId]. + * + * @param request the data to change + * @param reason the audit log reason for this change + */ + public suspend fun modifyGuildSoundboardSound(guildId: Snowflake, soundId: Snowflake, request: UpdateSoundboardSoundRequest, reason: String? = null): DiscordSoundboardSound = + call(Route.GetGuildsSoundboardSound) { + keys[Route.GuildId] = guildId + keys[Route.SoundId] = soundId + auditLogReason(reason) + + body(UpdateSoundboardSoundRequest.serializer(), request) + } + + /** + * Deletes [sound][soundId] on [guild][guildId]. + * + * @param reason the audit log reason for this change + */ + public suspend fun deleteGuildSoundboardSound( + guildId: Snowflake, + soundId: Snowflake, + reason: String? = null + ): Unit = + call(Route.DeleteGuildsSoundboardSound) { + keys[Route.GuildId] = guildId + keys[Route.SoundId] = soundId + auditLogReason(reason) + } } public suspend inline fun GuildService.modifyGuildWelcomeScreen( @@ -679,3 +742,44 @@ public suspend inline fun GuildService.modifyScheduledEvent( return modifyScheduledEvent(guildId, eventId, appliedBuilder.toRequest(), appliedBuilder.reason) } + +/** + * Creates a new sound on [guild][guildId]. + * + * @param name the name of the sound + * @param sound the [audio data][Sound] of the sound + * @param builder additional data for the sound + */ +public suspend inline fun GuildService.createGuildSoundboardSound( + guildId: Snowflake, + name: String, + sound: Sound, + builder: SoundboardSoundCreateBuilder.() -> Unit = {} +): DiscordSoundboardSound { + contract { + callsInPlace(builder, InvocationKind.EXACTLY_ONCE) + } + + val appliedBuilder = SoundboardSoundCreateBuilder(name, sound).apply(builder) + + return createGuildSoundboardSound(guildId, appliedBuilder.toRequest(), appliedBuilder.reason) +} + +/** + * Updates [sound][soundId] on [guild][guildId]. + * + * @param builder the data to update + */ +public suspend inline fun GuildService.modifyGuildSoundboardSound( + guildId: Snowflake, + soundId: Snowflake, + builder: SoundboardSoundModifyBuilder.() -> Unit = {} +): DiscordSoundboardSound { + contract { + callsInPlace(builder, InvocationKind.EXACTLY_ONCE) + } + + val appliedBuilder = SoundboardSoundModifyBuilder().apply(builder) + + return modifyGuildSoundboardSound(guildId, soundId, appliedBuilder.toRequest(), appliedBuilder.reason) +} diff --git a/rest/src/commonMain/kotlin/service/RestClient.kt b/rest/src/commonMain/kotlin/service/RestClient.kt index be958edee6a..6a8b6bd3b32 100644 --- a/rest/src/commonMain/kotlin/service/RestClient.kt +++ b/rest/src/commonMain/kotlin/service/RestClient.kt @@ -35,6 +35,7 @@ public class RestClient(requestHandler: RequestHandler) : RestService(requestHan public val user: UserService = UserService(requestHandler) public val voice: VoiceService = VoiceService(requestHandler) public val webhook: WebhookService = WebhookService(requestHandler) + public val soundboard: SoundboardService = SoundboardService(requestHandler) /** * Sends a request to the given [route]. This function exposes a direct call to the Discord api and allows diff --git a/rest/src/commonMain/kotlin/service/SoundboardService.kt b/rest/src/commonMain/kotlin/service/SoundboardService.kt new file mode 100644 index 00000000000..3f26fcad3f9 --- /dev/null +++ b/rest/src/commonMain/kotlin/service/SoundboardService.kt @@ -0,0 +1,16 @@ +package dev.kord.rest.service + +import dev.kord.common.entity.DiscordSoundboardSound +import dev.kord.rest.request.RequestHandler +import dev.kord.rest.route.Route + +/** + * Service for soundboard endpoints. + */ +public class SoundboardService(requestHandler: RequestHandler) : RestService(requestHandler) { + + /** + * Retrieves the default [soundboard sounds][DiscordSoundboardSound], which can be used by all users. + */ + public suspend fun getDefaultSounds(): List = call(Route.GetSoundboardDefaultSounds) +}