From 16596db995ad7daf5e284e0aa1b1e3decb9204f4 Mon Sep 17 00:00:00 2001 From: MrPowerGamerBR Date: Wed, 14 Sep 2022 22:28:34 -0300 Subject: [PATCH 1/7] Fix default avatar URL not working --- core/src/main/kotlin/entity/Icon.kt | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/core/src/main/kotlin/entity/Icon.kt b/core/src/main/kotlin/entity/Icon.kt index 422acc206e45..70cb14a57c31 100644 --- a/core/src/main/kotlin/entity/Icon.kt +++ b/core/src/main/kotlin/entity/Icon.kt @@ -7,15 +7,13 @@ import dev.kord.rest.Image import dev.kord.rest.route.CdnUrl import dev.kord.rest.route.DiscordCdn -public sealed class Icon(public val animated: Boolean, public val cdnUrl: CdnUrl, override val kord: Kord) : +public sealed class Icon( + public val format: Image.Format, + public val cdnUrl: CdnUrl, + override val kord: Kord +) : KordObject { - public val format: Image.Format - get() = when { - animated -> Image.Format.GIF - else -> Image.Format.WEBP - } - public val url: String get() = cdnUrl.toUrl { this.format = this@Icon.format @@ -40,22 +38,22 @@ public sealed class Icon(public val animated: Boolean, public val cdnUrl: CdnUrl }) override fun toString(): String { - return "Icon(type=${javaClass.name},animated=$animated,cdnUrl=$cdnUrl,kord=$kord)" + return "Icon(type=${javaClass.name},format=$format,cdnUrl=$cdnUrl,kord=$kord)" } public class EmojiIcon(animated: Boolean, emojiId: Snowflake, kord: Kord) : - Icon(animated, DiscordCdn.emoji(emojiId), kord) + Icon(if (animated) Image.Format.GIF else Image.Format.WEBP, DiscordCdn.emoji(emojiId), kord) public class DefaultUserAvatar(discriminator: Int, kord: Kord) : - Icon(false, DiscordCdn.defaultAvatar(discriminator), kord) + Icon(Image.Format.PNG /* Discord Default Avatars only support PNG */, DiscordCdn.defaultAvatar(discriminator), kord) public class UserAvatar(userId: Snowflake, avatarHash: String, kord: Kord) : - Icon(avatarHash.startsWith("a_"), DiscordCdn.userAvatar(userId, avatarHash), kord) + Icon(if (avatarHash.startsWith("a_")) Image.Format.GIF else Image.Format.WEBP, DiscordCdn.userAvatar(userId, avatarHash), kord) public class MemberAvatar(guildId: Snowflake, userId: Snowflake, avatarHash: String, kord: Kord) : - Icon(avatarHash.startsWith("a_"), DiscordCdn.memberAvatar(guildId, userId, avatarHash), kord) + Icon(if (avatarHash.startsWith("a_")) Image.Format.GIF else Image.Format.WEBP, DiscordCdn.memberAvatar(guildId, userId, avatarHash), kord) public class RoleIcon(roleId: Snowflake, iconHash: String, kord: Kord) : - Icon(iconHash.startsWith("a_"), DiscordCdn.roleIcon(roleId, iconHash), kord) + Icon(if (iconHash.startsWith("a_")) Image.Format.GIF else Image.Format.WEBP, DiscordCdn.roleIcon(roleId, iconHash), kord) } From 06fa2c04871dfee10ed782067ea97ec287698a3c Mon Sep 17 00:00:00 2001 From: MrPowerGamerBR Date: Wed, 14 Sep 2022 22:36:22 -0300 Subject: [PATCH 2/7] Update API dump --- core/api/core.api | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/core/api/core.api b/core/api/core.api index 9585ae1b2a79..b2f3a48946db 100644 --- a/core/api/core.api +++ b/core/api/core.api @@ -6401,8 +6401,7 @@ public final class dev/kord/core/entity/GuildWidget : dev/kord/core/KordObject, } public abstract class dev/kord/core/entity/Icon : dev/kord/core/KordObject { - public synthetic fun (ZLdev/kord/rest/route/CdnUrl;Ldev/kord/core/Kord;Lkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun getAnimated ()Z + public synthetic fun (Ldev/kord/rest/Image$Format;Ldev/kord/rest/route/CdnUrl;Ldev/kord/core/Kord;Lkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun getCdnUrl ()Ldev/kord/rest/route/CdnUrl; public final fun getFormat ()Ldev/kord/rest/Image$Format; public final fun getImage (Ldev/kord/rest/Image$Format;Ldev/kord/rest/Image$Size;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; From 877d9cf55cabd0d4823eaa0acc57e21d81f21f4e Mon Sep 17 00:00:00 2001 From: MrPowerGamerBR Date: Thu, 15 Sep 2022 12:14:24 -0300 Subject: [PATCH 3/7] Fix formatting --- core/src/main/kotlin/entity/Icon.kt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/core/src/main/kotlin/entity/Icon.kt b/core/src/main/kotlin/entity/Icon.kt index 70cb14a57c31..96b8443e14c4 100644 --- a/core/src/main/kotlin/entity/Icon.kt +++ b/core/src/main/kotlin/entity/Icon.kt @@ -11,8 +11,7 @@ public sealed class Icon( public val format: Image.Format, public val cdnUrl: CdnUrl, override val kord: Kord -) : - KordObject { +) : KordObject { public val url: String get() = cdnUrl.toUrl { From 45b061ccd23c73542b359b3c13adbe372632e381 Mon Sep 17 00:00:00 2001 From: MrPowerGamerBR Date: Thu, 15 Sep 2022 12:15:08 -0300 Subject: [PATCH 4/7] Readd animated property --- core/api/core.api | 1 + core/src/main/kotlin/entity/Icon.kt | 2 ++ 2 files changed, 3 insertions(+) diff --git a/core/api/core.api b/core/api/core.api index b2f3a48946db..60fc520269a5 100644 --- a/core/api/core.api +++ b/core/api/core.api @@ -6402,6 +6402,7 @@ public final class dev/kord/core/entity/GuildWidget : dev/kord/core/KordObject, public abstract class dev/kord/core/entity/Icon : dev/kord/core/KordObject { public synthetic fun (Ldev/kord/rest/Image$Format;Ldev/kord/rest/route/CdnUrl;Ldev/kord/core/Kord;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun getAnimated ()Z public final fun getCdnUrl ()Ldev/kord/rest/route/CdnUrl; public final fun getFormat ()Ldev/kord/rest/Image$Format; public final fun getImage (Ldev/kord/rest/Image$Format;Ldev/kord/rest/Image$Size;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; diff --git a/core/src/main/kotlin/entity/Icon.kt b/core/src/main/kotlin/entity/Icon.kt index 96b8443e14c4..70d3a69111b0 100644 --- a/core/src/main/kotlin/entity/Icon.kt +++ b/core/src/main/kotlin/entity/Icon.kt @@ -12,6 +12,8 @@ public sealed class Icon( public val cdnUrl: CdnUrl, override val kord: Kord ) : KordObject { + public val animated: Boolean + get() = format == Image.Format.GIF public val url: String get() = cdnUrl.toUrl { From 278a58b47fc49b4b27ee736897ac0d251c1af8c0 Mon Sep 17 00:00:00 2001 From: MrPowerGamerBR Date: Thu, 15 Sep 2022 12:20:42 -0300 Subject: [PATCH 5/7] Readd animated property to the constructor itself --- core/src/main/kotlin/entity/Icon.kt | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/core/src/main/kotlin/entity/Icon.kt b/core/src/main/kotlin/entity/Icon.kt index 70d3a69111b0..8c6e320c889d 100644 --- a/core/src/main/kotlin/entity/Icon.kt +++ b/core/src/main/kotlin/entity/Icon.kt @@ -9,12 +9,10 @@ import dev.kord.rest.route.DiscordCdn public sealed class Icon( public val format: Image.Format, + public val animated: Boolean, public val cdnUrl: CdnUrl, override val kord: Kord ) : KordObject { - public val animated: Boolean - get() = format == Image.Format.GIF - public val url: String get() = cdnUrl.toUrl { this.format = this@Icon.format @@ -43,18 +41,18 @@ public sealed class Icon( } public class EmojiIcon(animated: Boolean, emojiId: Snowflake, kord: Kord) : - Icon(if (animated) Image.Format.GIF else Image.Format.WEBP, DiscordCdn.emoji(emojiId), kord) + Icon(if (animated) Image.Format.GIF else Image.Format.WEBP, animated, DiscordCdn.emoji(emojiId), kord) public class DefaultUserAvatar(discriminator: Int, kord: Kord) : - Icon(Image.Format.PNG /* Discord Default Avatars only support PNG */, DiscordCdn.defaultAvatar(discriminator), kord) + Icon(Image.Format.PNG /* Discord Default Avatars only support PNG */, false, DiscordCdn.defaultAvatar(discriminator), kord) public class UserAvatar(userId: Snowflake, avatarHash: String, kord: Kord) : - Icon(if (avatarHash.startsWith("a_")) Image.Format.GIF else Image.Format.WEBP, DiscordCdn.userAvatar(userId, avatarHash), kord) + Icon(if (avatarHash.startsWith("a_")) Image.Format.GIF else Image.Format.WEBP, avatarHash.startsWith("a_"), DiscordCdn.userAvatar(userId, avatarHash), kord) public class MemberAvatar(guildId: Snowflake, userId: Snowflake, avatarHash: String, kord: Kord) : - Icon(if (avatarHash.startsWith("a_")) Image.Format.GIF else Image.Format.WEBP, DiscordCdn.memberAvatar(guildId, userId, avatarHash), kord) + Icon(if (avatarHash.startsWith("a_")) Image.Format.GIF else Image.Format.WEBP, avatarHash.startsWith("a_"), DiscordCdn.memberAvatar(guildId, userId, avatarHash), kord) public class RoleIcon(roleId: Snowflake, iconHash: String, kord: Kord) : - Icon(if (iconHash.startsWith("a_")) Image.Format.GIF else Image.Format.WEBP, DiscordCdn.roleIcon(roleId, iconHash), kord) + Icon(if (iconHash.startsWith("a_")) Image.Format.GIF else Image.Format.WEBP, iconHash.startsWith("a_"), DiscordCdn.roleIcon(roleId, iconHash), kord) } From 1a449237d10d31615cd8724ce2ba06197b895e68 Mon Sep 17 00:00:00 2001 From: MrPowerGamerBR Date: Thu, 15 Sep 2022 12:22:23 -0300 Subject: [PATCH 6/7] Update API dump --- core/api/core.api | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/api/core.api b/core/api/core.api index 60fc520269a5..670bd59a6992 100644 --- a/core/api/core.api +++ b/core/api/core.api @@ -6401,7 +6401,7 @@ public final class dev/kord/core/entity/GuildWidget : dev/kord/core/KordObject, } public abstract class dev/kord/core/entity/Icon : dev/kord/core/KordObject { - public synthetic fun (Ldev/kord/rest/Image$Format;Ldev/kord/rest/route/CdnUrl;Ldev/kord/core/Kord;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ldev/kord/rest/Image$Format;ZLdev/kord/rest/route/CdnUrl;Ldev/kord/core/Kord;Lkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun getAnimated ()Z public final fun getCdnUrl ()Ldev/kord/rest/route/CdnUrl; public final fun getFormat ()Ldev/kord/rest/Image$Format; From 4957885ae424e5f76a12afb896fad09b02a3ed93 Mon Sep 17 00:00:00 2001 From: MrPowerGamerBR Date: Thu, 15 Sep 2022 12:24:04 -0300 Subject: [PATCH 7/7] Readd animated property on the toString() function --- core/src/main/kotlin/entity/Icon.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/kotlin/entity/Icon.kt b/core/src/main/kotlin/entity/Icon.kt index 8c6e320c889d..cfc623174ed1 100644 --- a/core/src/main/kotlin/entity/Icon.kt +++ b/core/src/main/kotlin/entity/Icon.kt @@ -37,7 +37,7 @@ public sealed class Icon( }) override fun toString(): String { - return "Icon(type=${javaClass.name},format=$format,cdnUrl=$cdnUrl,kord=$kord)" + return "Icon(type=${javaClass.name},format=$format,animated=$animated,cdnUrl=$cdnUrl,kord=$kord)" } public class EmojiIcon(animated: Boolean, emojiId: Snowflake, kord: Kord) :