Skip to content

Commit f54fdab

Browse files
Add guild onboarding (#805)
To get the GuildOnboarding object for a Guild just call guild.getOnboarding(). see discord/discord-api-docs#5915 --------- Co-authored-by: Lukellmann <lukellmann@gmail.com>
1 parent 2937cbb commit f54fdab

File tree

12 files changed

+655
-8
lines changed

12 files changed

+655
-8
lines changed

common/api/common.api

Lines changed: 141 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3835,6 +3835,41 @@ public final class dev/kord/common/entity/DiscordGuildMember$Companion {
38353835
public final fun serializer ()Lkotlinx/serialization/KSerializer;
38363836
}
38373837

3838+
public final class dev/kord/common/entity/DiscordGuildOnboarding {
3839+
public static final field Companion Ldev/kord/common/entity/DiscordGuildOnboarding$Companion;
3840+
public synthetic fun <init> (ILdev/kord/common/entity/Snowflake;Ljava/util/List;Ljava/util/List;ZLkotlinx/serialization/internal/SerializationConstructorMarker;)V
3841+
public fun <init> (Ldev/kord/common/entity/Snowflake;Ljava/util/List;Ljava/util/List;Z)V
3842+
public final fun component1 ()Ldev/kord/common/entity/Snowflake;
3843+
public final fun component2 ()Ljava/util/List;
3844+
public final fun component3 ()Ljava/util/List;
3845+
public final fun component4 ()Z
3846+
public final fun copy (Ldev/kord/common/entity/Snowflake;Ljava/util/List;Ljava/util/List;Z)Ldev/kord/common/entity/DiscordGuildOnboarding;
3847+
public static synthetic fun copy$default (Ldev/kord/common/entity/DiscordGuildOnboarding;Ldev/kord/common/entity/Snowflake;Ljava/util/List;Ljava/util/List;ZILjava/lang/Object;)Ldev/kord/common/entity/DiscordGuildOnboarding;
3848+
public fun equals (Ljava/lang/Object;)Z
3849+
public final fun getDefaultChannelIds ()Ljava/util/List;
3850+
public final fun getEnabled ()Z
3851+
public final fun getGuildId ()Ldev/kord/common/entity/Snowflake;
3852+
public final fun getPrompts ()Ljava/util/List;
3853+
public fun hashCode ()I
3854+
public fun toString ()Ljava/lang/String;
3855+
public static final fun write$Self (Ldev/kord/common/entity/DiscordGuildOnboarding;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V
3856+
}
3857+
3858+
public final class dev/kord/common/entity/DiscordGuildOnboarding$$serializer : kotlinx/serialization/internal/GeneratedSerializer {
3859+
public static final field INSTANCE Ldev/kord/common/entity/DiscordGuildOnboarding$$serializer;
3860+
public fun childSerializers ()[Lkotlinx/serialization/KSerializer;
3861+
public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/kord/common/entity/DiscordGuildOnboarding;
3862+
public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object;
3863+
public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor;
3864+
public fun serialize (Lkotlinx/serialization/encoding/Encoder;Ldev/kord/common/entity/DiscordGuildOnboarding;)V
3865+
public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V
3866+
public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer;
3867+
}
3868+
3869+
public final class dev/kord/common/entity/DiscordGuildOnboarding$Companion {
3870+
public final fun serializer ()Lkotlinx/serialization/KSerializer;
3871+
}
3872+
38383873
public final class dev/kord/common/entity/DiscordGuildPreview {
38393874
public static final field Companion Ldev/kord/common/entity/DiscordGuildPreview$Companion;
38403875
public synthetic fun <init> (ILdev/kord/common/entity/Snowflake;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/util/List;IILjava/lang/String;Ljava/util/List;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V
@@ -4672,6 +4707,86 @@ public final class dev/kord/common/entity/DiscordNull$Companion {
46724707
public final fun serializer ()Lkotlinx/serialization/KSerializer;
46734708
}
46744709

4710+
public final class dev/kord/common/entity/DiscordOnboardingPrompt {
4711+
public static final field Companion Ldev/kord/common/entity/DiscordOnboardingPrompt$Companion;
4712+
public synthetic fun <init> (ILdev/kord/common/entity/Snowflake;Ldev/kord/common/entity/OnboardingPromptType;Ljava/util/List;Ljava/lang/String;ZZZLkotlinx/serialization/internal/SerializationConstructorMarker;)V
4713+
public fun <init> (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/OnboardingPromptType;Ljava/util/List;Ljava/lang/String;ZZZ)V
4714+
public final fun component1 ()Ldev/kord/common/entity/Snowflake;
4715+
public final fun component2 ()Ldev/kord/common/entity/OnboardingPromptType;
4716+
public final fun component3 ()Ljava/util/List;
4717+
public final fun component4 ()Ljava/lang/String;
4718+
public final fun component5 ()Z
4719+
public final fun component6 ()Z
4720+
public final fun component7 ()Z
4721+
public final fun copy (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/OnboardingPromptType;Ljava/util/List;Ljava/lang/String;ZZZ)Ldev/kord/common/entity/DiscordOnboardingPrompt;
4722+
public static synthetic fun copy$default (Ldev/kord/common/entity/DiscordOnboardingPrompt;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/OnboardingPromptType;Ljava/util/List;Ljava/lang/String;ZZZILjava/lang/Object;)Ldev/kord/common/entity/DiscordOnboardingPrompt;
4723+
public fun equals (Ljava/lang/Object;)Z
4724+
public final fun getId ()Ldev/kord/common/entity/Snowflake;
4725+
public final fun getInOnboarding ()Z
4726+
public final fun getOptions ()Ljava/util/List;
4727+
public final fun getRequired ()Z
4728+
public final fun getSingleSelect ()Z
4729+
public final fun getTitle ()Ljava/lang/String;
4730+
public final fun getType ()Ldev/kord/common/entity/OnboardingPromptType;
4731+
public fun hashCode ()I
4732+
public fun toString ()Ljava/lang/String;
4733+
public static final fun write$Self (Ldev/kord/common/entity/DiscordOnboardingPrompt;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V
4734+
}
4735+
4736+
public final class dev/kord/common/entity/DiscordOnboardingPrompt$$serializer : kotlinx/serialization/internal/GeneratedSerializer {
4737+
public static final field INSTANCE Ldev/kord/common/entity/DiscordOnboardingPrompt$$serializer;
4738+
public fun childSerializers ()[Lkotlinx/serialization/KSerializer;
4739+
public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/kord/common/entity/DiscordOnboardingPrompt;
4740+
public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object;
4741+
public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor;
4742+
public fun serialize (Lkotlinx/serialization/encoding/Encoder;Ldev/kord/common/entity/DiscordOnboardingPrompt;)V
4743+
public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V
4744+
public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer;
4745+
}
4746+
4747+
public final class dev/kord/common/entity/DiscordOnboardingPrompt$Companion {
4748+
public final fun serializer ()Lkotlinx/serialization/KSerializer;
4749+
}
4750+
4751+
public final class dev/kord/common/entity/DiscordOnboardingPromptOption {
4752+
public static final field Companion Ldev/kord/common/entity/DiscordOnboardingPromptOption$Companion;
4753+
public synthetic fun <init> (ILdev/kord/common/entity/Snowflake;Ljava/util/List;Ljava/util/List;Ldev/kord/common/entity/DiscordEmoji;Ljava/lang/String;Ljava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V
4754+
public fun <init> (Ldev/kord/common/entity/Snowflake;Ljava/util/List;Ljava/util/List;Ldev/kord/common/entity/DiscordEmoji;Ljava/lang/String;Ljava/lang/String;)V
4755+
public final fun component1 ()Ldev/kord/common/entity/Snowflake;
4756+
public final fun component2 ()Ljava/util/List;
4757+
public final fun component3 ()Ljava/util/List;
4758+
public final fun component4 ()Ldev/kord/common/entity/DiscordEmoji;
4759+
public final fun component5 ()Ljava/lang/String;
4760+
public final fun component6 ()Ljava/lang/String;
4761+
public final fun copy (Ldev/kord/common/entity/Snowflake;Ljava/util/List;Ljava/util/List;Ldev/kord/common/entity/DiscordEmoji;Ljava/lang/String;Ljava/lang/String;)Ldev/kord/common/entity/DiscordOnboardingPromptOption;
4762+
public static synthetic fun copy$default (Ldev/kord/common/entity/DiscordOnboardingPromptOption;Ldev/kord/common/entity/Snowflake;Ljava/util/List;Ljava/util/List;Ldev/kord/common/entity/DiscordEmoji;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Ldev/kord/common/entity/DiscordOnboardingPromptOption;
4763+
public fun equals (Ljava/lang/Object;)Z
4764+
public final fun getChannelIds ()Ljava/util/List;
4765+
public final fun getDescription ()Ljava/lang/String;
4766+
public final fun getEmoji ()Ldev/kord/common/entity/DiscordEmoji;
4767+
public final fun getId ()Ldev/kord/common/entity/Snowflake;
4768+
public final fun getRoleIds ()Ljava/util/List;
4769+
public final fun getTitle ()Ljava/lang/String;
4770+
public fun hashCode ()I
4771+
public fun toString ()Ljava/lang/String;
4772+
public static final fun write$Self (Ldev/kord/common/entity/DiscordOnboardingPromptOption;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V
4773+
}
4774+
4775+
public final class dev/kord/common/entity/DiscordOnboardingPromptOption$$serializer : kotlinx/serialization/internal/GeneratedSerializer {
4776+
public static final field INSTANCE Ldev/kord/common/entity/DiscordOnboardingPromptOption$$serializer;
4777+
public fun childSerializers ()[Lkotlinx/serialization/KSerializer;
4778+
public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/kord/common/entity/DiscordOnboardingPromptOption;
4779+
public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object;
4780+
public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor;
4781+
public fun serialize (Lkotlinx/serialization/encoding/Encoder;Ldev/kord/common/entity/DiscordOnboardingPromptOption;)V
4782+
public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V
4783+
public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer;
4784+
}
4785+
4786+
public final class dev/kord/common/entity/DiscordOnboardingPromptOption$Companion {
4787+
public final fun serializer ()Lkotlinx/serialization/KSerializer;
4788+
}
4789+
46754790
public final class dev/kord/common/entity/DiscordOptionallyMemberUser {
46764791
public static final field Companion Ldev/kord/common/entity/DiscordOptionallyMemberUser$Companion;
46774792
public synthetic fun <init> (ILdev/kord/common/entity/Snowflake;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V
@@ -7393,6 +7508,32 @@ public final class dev/kord/common/entity/NsfwLevel$Unknown : dev/kord/common/en
73937508
public fun <init> (I)V
73947509
}
73957510

7511+
public abstract class dev/kord/common/entity/OnboardingPromptType {
7512+
public static final field Companion Ldev/kord/common/entity/OnboardingPromptType$Companion;
7513+
public synthetic fun <init> (ILkotlin/jvm/internal/DefaultConstructorMarker;)V
7514+
public final fun equals (Ljava/lang/Object;)Z
7515+
public final fun getValue ()I
7516+
public final fun hashCode ()I
7517+
public final fun toString ()Ljava/lang/String;
7518+
}
7519+
7520+
public final class dev/kord/common/entity/OnboardingPromptType$Companion {
7521+
public final fun getEntries ()Ljava/util/List;
7522+
public final fun serializer ()Lkotlinx/serialization/KSerializer;
7523+
}
7524+
7525+
public final class dev/kord/common/entity/OnboardingPromptType$Dropdown : dev/kord/common/entity/OnboardingPromptType {
7526+
public static final field INSTANCE Ldev/kord/common/entity/OnboardingPromptType$Dropdown;
7527+
}
7528+
7529+
public final class dev/kord/common/entity/OnboardingPromptType$MultipleChoice : dev/kord/common/entity/OnboardingPromptType {
7530+
public static final field INSTANCE Ldev/kord/common/entity/OnboardingPromptType$MultipleChoice;
7531+
}
7532+
7533+
public final class dev/kord/common/entity/OnboardingPromptType$Unknown : dev/kord/common/entity/OnboardingPromptType {
7534+
public fun <init> (I)V
7535+
}
7536+
73967537
public abstract class dev/kord/common/entity/Option {
73977538
public static final field Companion Ldev/kord/common/entity/Option$Companion;
73987539
public abstract fun getName ()Ljava/lang/String;
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
// THIS FILE IS AUTO-GENERATED BY KordEnumProcessor.kt, DO NOT EDIT!
2+
@file:Suppress(names = arrayOf("RedundantVisibilityModifier", "IncorrectFormatting",
3+
"ReplaceArrayOfWithLiteral", "SpellCheckingInspection", "GrazieInspection"))
4+
5+
package dev.kord.common.entity
6+
7+
import kotlin.Any
8+
import kotlin.Boolean
9+
import kotlin.Int
10+
import kotlin.LazyThreadSafetyMode.PUBLICATION
11+
import kotlin.String
12+
import kotlin.Suppress
13+
import kotlin.collections.List
14+
import kotlinx.serialization.KSerializer
15+
import kotlinx.serialization.Serializable
16+
import kotlinx.serialization.descriptors.PrimitiveKind
17+
import kotlinx.serialization.descriptors.PrimitiveSerialDescriptor
18+
import kotlinx.serialization.descriptors.SerialDescriptor
19+
import kotlinx.serialization.encoding.Decoder
20+
import kotlinx.serialization.encoding.Encoder
21+
22+
/**
23+
* See [OnboardingPromptType]s in the
24+
* [Discord Developer Documentation](https://discord.com/developers/docs/resources/guild#guild-onboarding-object-prompt-types).
25+
*/
26+
@Serializable(with = OnboardingPromptType.Serializer::class)
27+
public sealed class OnboardingPromptType(
28+
/**
29+
* The raw value used by Discord.
30+
*/
31+
public val `value`: Int,
32+
) {
33+
public final override fun equals(other: Any?): Boolean = this === other ||
34+
(other is OnboardingPromptType && this.value == other.value)
35+
36+
public final override fun hashCode(): Int = value.hashCode()
37+
38+
public final override fun toString(): String =
39+
"OnboardingPromptType.${this::class.simpleName}(value=$value)"
40+
41+
/**
42+
* An unknown [OnboardingPromptType].
43+
*
44+
* This is used as a fallback for [OnboardingPromptType]s that haven't been added to Kord yet.
45+
*/
46+
public class Unknown(
47+
`value`: Int,
48+
) : OnboardingPromptType(value)
49+
50+
public object MultipleChoice : OnboardingPromptType(0)
51+
52+
public object Dropdown : OnboardingPromptType(1)
53+
54+
internal object Serializer : KSerializer<OnboardingPromptType> {
55+
public override val descriptor: SerialDescriptor =
56+
PrimitiveSerialDescriptor("dev.kord.common.entity.OnboardingPromptType",
57+
PrimitiveKind.INT)
58+
59+
public override fun serialize(encoder: Encoder, `value`: OnboardingPromptType) =
60+
encoder.encodeInt(value.value)
61+
62+
public override fun deserialize(decoder: Decoder) = when (val value = decoder.decodeInt()) {
63+
0 -> MultipleChoice
64+
1 -> Dropdown
65+
else -> Unknown(value)
66+
}
67+
}
68+
69+
public companion object {
70+
/**
71+
* A [List] of all known [OnboardingPromptType]s.
72+
*/
73+
public val entries: List<OnboardingPromptType> by lazy(mode = PUBLICATION) {
74+
listOf(
75+
MultipleChoice,
76+
Dropdown,
77+
)
78+
}
79+
80+
}
81+
}
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
@file:GenerateKordEnum(
2+
name = "OnboardingPromptType", valueType = INT,
3+
docUrl = "https://discord.com/developers/docs/resources/guild#guild-onboarding-object-prompt-types",
4+
entries = [
5+
Entry("MultipleChoice", intValue = 0),
6+
Entry("Dropdown", intValue = 1),
7+
],
8+
)
9+
10+
package dev.kord.common.entity
11+
12+
import dev.kord.ksp.GenerateKordEnum
13+
import dev.kord.ksp.GenerateKordEnum.Entry
14+
import dev.kord.ksp.GenerateKordEnum.ValueType.INT
15+
import kotlinx.serialization.SerialName
16+
import kotlinx.serialization.Serializable
17+
18+
@Serializable
19+
public data class DiscordGuildOnboarding(
20+
@SerialName("guild_id") val guildId: Snowflake,
21+
val prompts: List<DiscordOnboardingPrompt>,
22+
@SerialName("default_channel_ids") val defaultChannelIds: List<Snowflake>,
23+
val enabled: Boolean,
24+
)
25+
26+
@Serializable
27+
public data class DiscordOnboardingPrompt(
28+
val id: Snowflake,
29+
val type: OnboardingPromptType,
30+
val options: List<DiscordOnboardingPromptOption>,
31+
val title: String,
32+
@SerialName("single_select") val singleSelect: Boolean,
33+
val required: Boolean,
34+
@SerialName("in_onboarding") val inOnboarding: Boolean,
35+
)
36+
37+
@Serializable
38+
public data class DiscordOnboardingPromptOption(
39+
val id: Snowflake,
40+
@SerialName("channel_ids") val channelIds: List<Snowflake>,
41+
@SerialName("role_ids") val roleIds: List<Snowflake>,
42+
val emoji: DiscordEmoji,
43+
val title: String,
44+
val description: String?,
45+
)

0 commit comments

Comments
 (0)