Skip to content

Commit

Permalink
Change joined_at field to optional due to guest invites existing now
Browse files Browse the repository at this point in the history
  • Loading branch information
NoComment1105 committed Jul 5, 2024
1 parent a770ecf commit bf3f1ff
Show file tree
Hide file tree
Showing 8 changed files with 63 additions and 62 deletions.
48 changes: 24 additions & 24 deletions common/api/common.api

Large diffs are not rendered by default.

32 changes: 16 additions & 16 deletions common/api/common.klib.api

Large diffs are not rendered by default.

8 changes: 4 additions & 4 deletions common/src/commonMain/kotlin/entity/Member.kt
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ public data class DiscordGuildMember(
val nick: Optional<String?> = Optional.Missing(),
val roles: List<Snowflake>,
@SerialName("joined_at")
val joinedAt: Instant,
val joinedAt: Optional<Instant> = Optional.Missing(),
@SerialName("premium_since")
val premiumSince: Optional<Instant?> = Optional.Missing(),
val deaf: OptionalBoolean = OptionalBoolean.Missing,
Expand All @@ -46,7 +46,7 @@ public data class DiscordInteractionGuildMember(
val nick: Optional<String?> = Optional.Missing(),
val roles: List<Snowflake>,
@SerialName("joined_at")
val joinedAt: Instant,
val joinedAt: Optional<Instant> = Optional.Missing(),
@SerialName("premium_since")
val premiumSince: Optional<Instant?> = Optional.Missing(),
val permissions: Permissions,
Expand All @@ -64,7 +64,7 @@ public data class DiscordAddedGuildMember(
val nick: Optional<String?> = Optional.Missing(),
val roles: List<Snowflake>,
@SerialName("joined_at")
val joinedAt: Instant,
val joinedAt: Optional<Instant> = Optional.Missing(),
@SerialName("premium_since")
val premiumSince: Optional<Instant?> = Optional.Missing(),
val deaf: Boolean,
Expand Down Expand Up @@ -93,7 +93,7 @@ public data class DiscordUpdatedGuildMember(
val user: DiscordUser,
val nick: Optional<String?> = Optional.Missing(),
@SerialName("joined_at")
val joinedAt: Instant,
val joinedAt: Optional<Instant> = Optional.Missing(),
@SerialName("premium_since")
val premiumSince: Optional<Instant?> = Optional.Missing(),
val flags: GuildMemberFlags,
Expand Down
12 changes: 6 additions & 6 deletions core/api/core.api
Original file line number Diff line number Diff line change
Expand Up @@ -4159,27 +4159,27 @@ public final class dev/kord/core/cache/data/InviteWithMetadataData$Companion {

public final class dev/kord/core/cache/data/MemberData {
public static final field Companion Ldev/kord/core/cache/data/MemberData$Companion;
public fun <init> (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/optional/Optional;Ljava/util/List;Lkotlinx/datetime/Instant;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/GuildMemberFlags;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;)V
public synthetic fun <init> (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/optional/Optional;Ljava/util/List;Lkotlinx/datetime/Instant;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/GuildMemberFlags;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public fun <init> (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/optional/Optional;Ljava/util/List;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/GuildMemberFlags;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;)V
public synthetic fun <init> (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/optional/Optional;Ljava/util/List;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/GuildMemberFlags;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public final fun component1 ()Ldev/kord/common/entity/Snowflake;
public final fun component10 ()Ldev/kord/common/entity/optional/Optional;
public final fun component11 ()Ldev/kord/common/entity/optional/Optional;
public final fun component2 ()Ldev/kord/common/entity/Snowflake;
public final fun component3 ()Ldev/kord/common/entity/optional/Optional;
public final fun component4 ()Ljava/util/List;
public final fun component5 ()Lkotlinx/datetime/Instant;
public final fun component5 ()Ldev/kord/common/entity/optional/Optional;
public final fun component6 ()Ldev/kord/common/entity/optional/Optional;
public final fun component7 ()Ldev/kord/common/entity/GuildMemberFlags;
public final fun component8 ()Ldev/kord/common/entity/optional/Optional;
public final fun component9 ()Ldev/kord/common/entity/optional/OptionalBoolean;
public final fun copy (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/optional/Optional;Ljava/util/List;Lkotlinx/datetime/Instant;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/GuildMemberFlags;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/core/cache/data/MemberData;
public static synthetic fun copy$default (Ldev/kord/core/cache/data/MemberData;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/optional/Optional;Ljava/util/List;Lkotlinx/datetime/Instant;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/GuildMemberFlags;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;ILjava/lang/Object;)Ldev/kord/core/cache/data/MemberData;
public final fun copy (Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/optional/Optional;Ljava/util/List;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/GuildMemberFlags;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/core/cache/data/MemberData;
public static synthetic fun copy$default (Ldev/kord/core/cache/data/MemberData;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/Snowflake;Ldev/kord/common/entity/optional/Optional;Ljava/util/List;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/GuildMemberFlags;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;ILjava/lang/Object;)Ldev/kord/core/cache/data/MemberData;
public fun equals (Ljava/lang/Object;)Z
public final fun getAvatar ()Ldev/kord/common/entity/optional/Optional;
public final fun getCommunicationDisabledUntil ()Ldev/kord/common/entity/optional/Optional;
public final fun getFlags ()Ldev/kord/common/entity/GuildMemberFlags;
public final fun getGuildId ()Ldev/kord/common/entity/Snowflake;
public final fun getJoinedAt ()Lkotlinx/datetime/Instant;
public final fun getJoinedAt ()Ldev/kord/common/entity/optional/Optional;
public final fun getNick ()Ldev/kord/common/entity/optional/Optional;
public final fun getPending ()Ldev/kord/common/entity/optional/OptionalBoolean;
public final fun getPermissions ()Ldev/kord/common/entity/optional/Optional;
Expand Down
10 changes: 5 additions & 5 deletions core/api/core.klib.api
Original file line number Diff line number Diff line change
Expand Up @@ -3895,7 +3895,7 @@ final class dev.kord.core.cache.data/InviteWithMetadataData : dev.kord.core.cach
}

final class dev.kord.core.cache.data/MemberData { // dev.kord.core.cache.data/MemberData|null[0]
constructor <init>(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake, dev.kord.common.entity.optional/Optional<kotlin/String?> = ..., kotlin.collections/List<dev.kord.common.entity/Snowflake>, kotlinx.datetime/Instant, dev.kord.common.entity.optional/Optional<kotlinx.datetime/Instant?> = ..., dev.kord.common.entity/GuildMemberFlags, dev.kord.common.entity.optional/Optional<dev.kord.common.entity/Permissions> = ..., dev.kord.common.entity.optional/OptionalBoolean = ..., dev.kord.common.entity.optional/Optional<kotlin/String?> = ..., dev.kord.common.entity.optional/Optional<kotlinx.datetime/Instant?> = ...) // dev.kord.core.cache.data/MemberData.<init>|<init>(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;dev.kord.common.entity.optional.Optional<kotlin.String?>;kotlin.collections.List<dev.kord.common.entity.Snowflake>;kotlinx.datetime.Instant;dev.kord.common.entity.optional.Optional<kotlinx.datetime.Instant?>;dev.kord.common.entity.GuildMemberFlags;dev.kord.common.entity.optional.Optional<dev.kord.common.entity.Permissions>;dev.kord.common.entity.optional.OptionalBoolean;dev.kord.common.entity.optional.Optional<kotlin.String?>;dev.kord.common.entity.optional.Optional<kotlinx.datetime.Instant?>){}[0]
constructor <init>(dev.kord.common.entity/Snowflake, dev.kord.common.entity/Snowflake, dev.kord.common.entity.optional/Optional<kotlin/String?> = ..., kotlin.collections/List<dev.kord.common.entity/Snowflake>, dev.kord.common.entity.optional/Optional<kotlinx.datetime/Instant> = ..., dev.kord.common.entity.optional/Optional<kotlinx.datetime/Instant?> = ..., dev.kord.common.entity/GuildMemberFlags, dev.kord.common.entity.optional/Optional<dev.kord.common.entity/Permissions> = ..., dev.kord.common.entity.optional/OptionalBoolean = ..., dev.kord.common.entity.optional/Optional<kotlin/String?> = ..., dev.kord.common.entity.optional/Optional<kotlinx.datetime/Instant?> = ...) // dev.kord.core.cache.data/MemberData.<init>|<init>(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;dev.kord.common.entity.optional.Optional<kotlin.String?>;kotlin.collections.List<dev.kord.common.entity.Snowflake>;dev.kord.common.entity.optional.Optional<kotlinx.datetime.Instant>;dev.kord.common.entity.optional.Optional<kotlinx.datetime.Instant?>;dev.kord.common.entity.GuildMemberFlags;dev.kord.common.entity.optional.Optional<dev.kord.common.entity.Permissions>;dev.kord.common.entity.optional.OptionalBoolean;dev.kord.common.entity.optional.Optional<kotlin.String?>;dev.kord.common.entity.optional.Optional<kotlinx.datetime.Instant?>){}[0]

final val avatar // dev.kord.core.cache.data/MemberData.avatar|{}avatar[0]
final fun <get-avatar>(): dev.kord.common.entity.optional/Optional<kotlin/String?> // dev.kord.core.cache.data/MemberData.avatar.<get-avatar>|<get-avatar>(){}[0]
Expand All @@ -3906,7 +3906,7 @@ final class dev.kord.core.cache.data/MemberData { // dev.kord.core.cache.data/Me
final val guildId // dev.kord.core.cache.data/MemberData.guildId|{}guildId[0]
final fun <get-guildId>(): dev.kord.common.entity/Snowflake // dev.kord.core.cache.data/MemberData.guildId.<get-guildId>|<get-guildId>(){}[0]
final val joinedAt // dev.kord.core.cache.data/MemberData.joinedAt|{}joinedAt[0]
final fun <get-joinedAt>(): kotlinx.datetime/Instant // dev.kord.core.cache.data/MemberData.joinedAt.<get-joinedAt>|<get-joinedAt>(){}[0]
final fun <get-joinedAt>(): dev.kord.common.entity.optional/Optional<kotlinx.datetime/Instant> // dev.kord.core.cache.data/MemberData.joinedAt.<get-joinedAt>|<get-joinedAt>(){}[0]
final val nick // dev.kord.core.cache.data/MemberData.nick|{}nick[0]
final fun <get-nick>(): dev.kord.common.entity.optional/Optional<kotlin/String?> // dev.kord.core.cache.data/MemberData.nick.<get-nick>|<get-nick>(){}[0]
final val pending // dev.kord.core.cache.data/MemberData.pending|{}pending[0]
Expand All @@ -3926,12 +3926,12 @@ final class dev.kord.core.cache.data/MemberData { // dev.kord.core.cache.data/Me
final fun component2(): dev.kord.common.entity/Snowflake // dev.kord.core.cache.data/MemberData.component2|component2(){}[0]
final fun component3(): dev.kord.common.entity.optional/Optional<kotlin/String?> // dev.kord.core.cache.data/MemberData.component3|component3(){}[0]
final fun component4(): kotlin.collections/List<dev.kord.common.entity/Snowflake> // dev.kord.core.cache.data/MemberData.component4|component4(){}[0]
final fun component5(): kotlinx.datetime/Instant // dev.kord.core.cache.data/MemberData.component5|component5(){}[0]
final fun component5(): dev.kord.common.entity.optional/Optional<kotlinx.datetime/Instant> // dev.kord.core.cache.data/MemberData.component5|component5(){}[0]
final fun component6(): dev.kord.common.entity.optional/Optional<kotlinx.datetime/Instant?> // dev.kord.core.cache.data/MemberData.component6|component6(){}[0]
final fun component7(): dev.kord.common.entity/GuildMemberFlags // dev.kord.core.cache.data/MemberData.component7|component7(){}[0]
final fun component8(): dev.kord.common.entity.optional/Optional<dev.kord.common.entity/Permissions> // dev.kord.core.cache.data/MemberData.component8|component8(){}[0]
final fun component9(): dev.kord.common.entity.optional/OptionalBoolean // dev.kord.core.cache.data/MemberData.component9|component9(){}[0]
final fun copy(dev.kord.common.entity/Snowflake = ..., dev.kord.common.entity/Snowflake = ..., dev.kord.common.entity.optional/Optional<kotlin/String?> = ..., kotlin.collections/List<dev.kord.common.entity/Snowflake> = ..., kotlinx.datetime/Instant = ..., dev.kord.common.entity.optional/Optional<kotlinx.datetime/Instant?> = ..., dev.kord.common.entity/GuildMemberFlags = ..., dev.kord.common.entity.optional/Optional<dev.kord.common.entity/Permissions> = ..., dev.kord.common.entity.optional/OptionalBoolean = ..., dev.kord.common.entity.optional/Optional<kotlin/String?> = ..., dev.kord.common.entity.optional/Optional<kotlinx.datetime/Instant?> = ...): dev.kord.core.cache.data/MemberData // dev.kord.core.cache.data/MemberData.copy|copy(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;dev.kord.common.entity.optional.Optional<kotlin.String?>;kotlin.collections.List<dev.kord.common.entity.Snowflake>;kotlinx.datetime.Instant;dev.kord.common.entity.optional.Optional<kotlinx.datetime.Instant?>;dev.kord.common.entity.GuildMemberFlags;dev.kord.common.entity.optional.Optional<dev.kord.common.entity.Permissions>;dev.kord.common.entity.optional.OptionalBoolean;dev.kord.common.entity.optional.Optional<kotlin.String?>;dev.kord.common.entity.optional.Optional<kotlinx.datetime.Instant?>){}[0]
final fun copy(dev.kord.common.entity/Snowflake = ..., dev.kord.common.entity/Snowflake = ..., dev.kord.common.entity.optional/Optional<kotlin/String?> = ..., kotlin.collections/List<dev.kord.common.entity/Snowflake> = ..., dev.kord.common.entity.optional/Optional<kotlinx.datetime/Instant> = ..., dev.kord.common.entity.optional/Optional<kotlinx.datetime/Instant?> = ..., dev.kord.common.entity/GuildMemberFlags = ..., dev.kord.common.entity.optional/Optional<dev.kord.common.entity/Permissions> = ..., dev.kord.common.entity.optional/OptionalBoolean = ..., dev.kord.common.entity.optional/Optional<kotlin/String?> = ..., dev.kord.common.entity.optional/Optional<kotlinx.datetime/Instant?> = ...): dev.kord.core.cache.data/MemberData // dev.kord.core.cache.data/MemberData.copy|copy(dev.kord.common.entity.Snowflake;dev.kord.common.entity.Snowflake;dev.kord.common.entity.optional.Optional<kotlin.String?>;kotlin.collections.List<dev.kord.common.entity.Snowflake>;dev.kord.common.entity.optional.Optional<kotlinx.datetime.Instant>;dev.kord.common.entity.optional.Optional<kotlinx.datetime.Instant?>;dev.kord.common.entity.GuildMemberFlags;dev.kord.common.entity.optional.Optional<dev.kord.common.entity.Permissions>;dev.kord.common.entity.optional.OptionalBoolean;dev.kord.common.entity.optional.Optional<kotlin.String?>;dev.kord.common.entity.optional.Optional<kotlinx.datetime.Instant?>){}[0]
final fun equals(kotlin/Any?): kotlin/Boolean // dev.kord.core.cache.data/MemberData.equals|equals(kotlin.Any?){}[0]
final fun hashCode(): kotlin/Int // dev.kord.core.cache.data/MemberData.hashCode|hashCode(){}[0]
final fun toString(): kotlin/String // dev.kord.core.cache.data/MemberData.toString|toString(){}[0]
Expand Down Expand Up @@ -7825,7 +7825,7 @@ final class dev.kord.core.entity/Member : dev.kord.core.behavior/MemberBehavior,
final val isPending // dev.kord.core.entity/Member.isPending|{}isPending[0]
final fun <get-isPending>(): kotlin/Boolean // dev.kord.core.entity/Member.isPending.<get-isPending>|<get-isPending>(){}[0]
final val joinedAt // dev.kord.core.entity/Member.joinedAt|{}joinedAt[0]
final fun <get-joinedAt>(): kotlinx.datetime/Instant // dev.kord.core.entity/Member.joinedAt.<get-joinedAt>|<get-joinedAt>(){}[0]
final fun <get-joinedAt>(): kotlinx.datetime/Instant? // dev.kord.core.entity/Member.joinedAt.<get-joinedAt>|<get-joinedAt>(){}[0]
final val memberAvatar // dev.kord.core.entity/Member.memberAvatar|{}memberAvatar[0]
final fun <get-memberAvatar>(): dev.kord.core.entity/Asset? // dev.kord.core.entity/Member.memberAvatar.<get-memberAvatar>|<get-memberAvatar>(){}[0]
final val memberAvatarHash // dev.kord.core.entity/Member.memberAvatarHash|{}memberAvatarHash[0]
Expand Down
2 changes: 1 addition & 1 deletion core/src/commonMain/kotlin/cache/data/MemberData.kt
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ public data class MemberData(
val guildId: Snowflake,
val nick: Optional<String?> = Optional.Missing(),
val roles: List<Snowflake>,
val joinedAt: Instant,
val joinedAt: Optional<Instant> = Optional.Missing(),
val premiumSince: Optional<Instant?> = Optional.Missing(),
val flags: GuildMemberFlags,
val permissions: Optional<Permissions> = Optional.Missing(),
Expand Down
2 changes: 1 addition & 1 deletion core/src/commonMain/kotlin/entity/Member.kt
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ public class Member(
/**
* When the user joined this [guild].
*/
public val joinedAt: Instant get() = memberData.joinedAt
public val joinedAt: Instant? get() = memberData.joinedAt.value

/**
* The guild-specific nickname of the user, if present.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package dev.kord.gateway.json

import dev.kord.common.entity.*
import dev.kord.common.entity.optional.optional
import dev.kord.gateway.*
import kotlinx.datetime.Clock
import kotlinx.datetime.Instant
Expand Down Expand Up @@ -117,13 +118,13 @@ class DispatchEventDeserializationTest {
)
private val guildRoleJson = """{"guild_id":"0","role":{"id":"0","name":"role","color":0,"hoist":false,""" +
""""position":0,"permissions":"0","managed":false,"mentionable":false,"flags":0}}"""
private val instant = Clock.System.now()
private val instant = Clock.System.now().optional()
private val guildScheduledEvent = DiscordGuildScheduledEvent(
id = Snowflake.min,
guildId = Snowflake.min,
channelId = null,
name = "event",
scheduledStartTime = instant,
scheduledStartTime = instant.value,
scheduledEndTime = null,
privacyLevel = GuildScheduledEventPrivacyLevel.GuildOnly,
status = GuildScheduledEventStatus.Active,
Expand Down Expand Up @@ -306,7 +307,7 @@ class DispatchEventDeserializationTest {
fun test_ThreadMemberUpdate_deserialization() = testDispatchEventDeserialization(
eventName = "THREAD_MEMBER_UPDATE",
eventConstructor = ::ThreadMemberUpdate,
data = DiscordThreadMember(joinTimestamp = instant, flags = 0),
data = DiscordThreadMember(joinTimestamp = instant.value, flags = 0),
json = """{"join_timestamp":"$instant","flags":0}""",
)

Expand Down Expand Up @@ -560,7 +561,7 @@ class DispatchEventDeserializationTest {
data = DiscordCreatedInvite(
channelId = Snowflake.min,
code = "code",
createdAt = instant,
createdAt = instant.value,
maxAge = 100.hours,
maxUses = 42,
temporary = false,
Expand All @@ -587,7 +588,7 @@ class DispatchEventDeserializationTest {
channelId = Snowflake.min,
author = user,
content = "hi",
timestamp = instant,
timestamp = instant.value,
editedTimestamp = null,
tts = false,
mentionEveryone = false,
Expand Down

0 comments on commit bf3f1ff

Please sign in to comment.