@@ -151,7 +151,7 @@ data class DiscordGuild(
151
151
@SerialName(" approximate_presence_count" )
152
152
val approximatePresenceCount : OptionalInt = OptionalInt .Missing ,
153
153
154
- )
154
+ )
155
155
156
156
/* *
157
157
* A partial representation of a [Discord Guild structure](https://discord.com/developers/docs/resources/guild#guild-object
@@ -223,26 +223,39 @@ sealed class GuildFeature(val value: String) {
223
223
/* * Guild has enabled the welcome screen */
224
224
object WelcomeScreenEnabled : GuildFeature(" WELCOME_SCREEN_ENABLED" )
225
225
226
+ /* *
227
+ * Guild has enabled [Membership Screening](#DOCS_RESOURCES_GUILD/membership-screening-object)
228
+ */
229
+ object MemberVerificationGateEnabled : GuildFeature(" MEMBER_VERIFICATION_GATE_ENABLED " )
230
+
231
+ /* *
232
+ * Guild can be previewed before joining via Membership Screening or the directory
233
+ */
234
+ object PreviewEnabled : GuildFeature(" PREVIEW_ENABLED" )
235
+
226
236
internal object Serializer : KSerializer<GuildFeature> {
227
237
override val descriptor: SerialDescriptor
228
238
get() = PrimitiveSerialDescriptor (" feature" , PrimitiveKind .STRING )
229
239
230
- override fun deserialize (decoder : Decoder ): GuildFeature = when (val value = decoder.decodeString()) {
231
- " INVITE_SPLASH" -> InviteSplash
232
- " VIP_REGIONS" -> VIPRegions
233
- " VANITY_URL" -> VanityUrl
234
- " VERIFIED" -> Verified
235
- " PARTNERED" -> Partnered
236
- " COMMUNITY" -> Community
237
- " COMMERCE" -> Commerce
238
- " NEWS" -> News
239
- " DISCOVERABLE" -> Discoverable
240
- " FEATURABLE" -> Featurable
241
- " ANIMATED_ICON" -> AnimatedIcon
242
- " BANNER" -> Banner
243
- " WELCOME_SCREEN_ENABLED" -> WelcomeScreenEnabled
244
- else -> Unknown (value)
245
- }
240
+ override fun deserialize (decoder : Decoder ): GuildFeature =
241
+ when (val value = decoder.decodeString()) {
242
+ " INVITE_SPLASH" -> InviteSplash
243
+ " VIP_REGIONS" -> VIPRegions
244
+ " VANITY_URL" -> VanityUrl
245
+ " VERIFIED" -> Verified
246
+ " PARTNERED" -> Partnered
247
+ " COMMUNITY" -> Community
248
+ " COMMERCE" -> Commerce
249
+ " NEWS" -> News
250
+ " DISCOVERABLE" -> Discoverable
251
+ " FEATURABLE" -> Featurable
252
+ " ANIMATED_ICON" -> AnimatedIcon
253
+ " BANNER" -> Banner
254
+ " WELCOME_SCREEN_ENABLED" -> WelcomeScreenEnabled
255
+ " MEMBER_VERIFICATION_GATE_ENABLED" -> MemberVerificationGateEnabled
256
+ " PREVIEW_ENABLED" -> PreviewEnabled
257
+ else -> Unknown (value)
258
+ }
246
259
247
260
override fun serialize (encoder : Encoder , value : GuildFeature ) {
248
261
encoder.encodeString(value.value)
@@ -409,13 +422,14 @@ sealed class PremiumTier(val value: Int) {
409
422
override val descriptor: SerialDescriptor
410
423
get() = PrimitiveSerialDescriptor (" Kord.PremiumTier" , PrimitiveKind .INT )
411
424
412
- override fun deserialize (decoder : Decoder ): PremiumTier = when (val value = decoder.decodeInt()) {
413
- 0 -> None
414
- 1 -> One
415
- 2 -> Two
416
- 3 -> Three
417
- else -> Unknown (value)
418
- }
425
+ override fun deserialize (decoder : Decoder ): PremiumTier =
426
+ when (val value = decoder.decodeInt()) {
427
+ 0 -> None
428
+ 1 -> One
429
+ 2 -> Two
430
+ 3 -> Three
431
+ else -> Unknown (value)
432
+ }
419
433
420
434
override fun serialize (encoder : Encoder , value : PremiumTier ) {
421
435
encoder.encodeInt(value.value)
@@ -460,12 +474,13 @@ sealed class ExplicitContentFilter(val value: Int) {
460
474
override val descriptor: SerialDescriptor
461
475
get() = PrimitiveSerialDescriptor (" explicit_content_filter" , PrimitiveKind .INT )
462
476
463
- override fun deserialize (decoder : Decoder ): ExplicitContentFilter = when (val value = decoder.decodeInt()) {
464
- 0 -> Disabled
465
- 1 -> MembersWithoutRoles
466
- 2 -> AllMembers
467
- else -> Unknown (value)
468
- }
477
+ override fun deserialize (decoder : Decoder ): ExplicitContentFilter =
478
+ when (val value = decoder.decodeInt()) {
479
+ 0 -> Disabled
480
+ 1 -> MembersWithoutRoles
481
+ 2 -> AllMembers
482
+ else -> Unknown (value)
483
+ }
469
484
470
485
override fun serialize (encoder : Encoder , value : ExplicitContentFilter ) {
471
486
encoder.encodeInt(value.value)
@@ -485,11 +500,12 @@ sealed class MFALevel(val value: Int) {
485
500
override val descriptor: SerialDescriptor
486
501
get() = PrimitiveSerialDescriptor (" Kord.MFALevel" , PrimitiveKind .INT )
487
502
488
- override fun deserialize (decoder : Decoder ): MFALevel = when (val value = decoder.decodeInt()) {
489
- 0 -> None
490
- 1 -> Elevated
491
- else -> Unknown (value)
492
- }
503
+ override fun deserialize (decoder : Decoder ): MFALevel =
504
+ when (val value = decoder.decodeInt()) {
505
+ 0 -> None
506
+ 1 -> Elevated
507
+ else -> Unknown (value)
508
+ }
493
509
494
510
override fun serialize (encoder : Encoder , value : MFALevel ) {
495
511
encoder.encodeInt(value.value)
@@ -525,14 +541,15 @@ sealed class VerificationLevel(val value: Int) {
525
541
override val descriptor: SerialDescriptor
526
542
get() = PrimitiveSerialDescriptor (" Kord.VerificationLevel" , PrimitiveKind .INT )
527
543
528
- override fun deserialize (decoder : Decoder ): VerificationLevel = when (val value = decoder.decodeInt()) {
529
- 0 -> None
530
- 1 -> Low
531
- 2 -> Medium
532
- 3 -> High
533
- 4 -> VeryHigh
534
- else -> Unknown (value)
535
- }
544
+ override fun deserialize (decoder : Decoder ): VerificationLevel =
545
+ when (val value = decoder.decodeInt()) {
546
+ 0 -> None
547
+ 1 -> Low
548
+ 2 -> Medium
549
+ 3 -> High
550
+ 4 -> VeryHigh
551
+ else -> Unknown (value)
552
+ }
536
553
537
554
override fun serialize (encoder : Encoder , value : VerificationLevel ) {
538
555
encoder.encodeInt(value.value)
@@ -557,4 +574,28 @@ data class DiscordWelcomeScreen(
557
574
val description : String? ,
558
575
@SerialName(" welcome_channels" )
559
576
val welcomeChannels : List <DiscordWelcomeScreenChannel >
560
- )
577
+ )
578
+
579
+ @Serializable
580
+ data class DiscordMembershipScreening (
581
+ val version : String ,
582
+ @SerialName(" form_fields" )
583
+ val formFields : List <FormField >,
584
+ val description : Optional <String > = Optional .Missing ()
585
+ ) {
586
+
587
+ @Serializable
588
+ data class FormField (
589
+ @SerialName(" field_type" )
590
+ val type : Type ,
591
+ val label : String ,
592
+ val values : Optional <List <String >> = Optional .Missing (),
593
+ val required : Boolean
594
+ ) {
595
+ @Serializable
596
+ enum class Type {
597
+ @SerialName(" TERMS" )
598
+ Terms
599
+ }
600
+ }
601
+ }
0 commit comments