From 30ae2d85a23bfb2bf9bc194923f7ad67d0b33509 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Sun, 19 Mar 2023 16:20:46 +0100 Subject: [PATCH 001/105] Provide Support for GraalVM native images - Provide GraalVM example - Auto-generate reflect-config.json for @Serializable types --- .../META-INF/native-image/reflect-config.json | 1 + .../META-INF/native-image/reflect-config.json | 1 + graal-example/build.gradle.kts | 25 +++++++ .../src/main/kotlin/dev/kord/core/Main.kt | 24 +++++++ .../META-INF/native-image/reflect-config.json | 17 +++++ ksp-processors/build.gradle.kts | 1 + .../main/kotlin/graal/KordGraalProcessor.kt | 69 +++++++++++++++++++ .../src/main/kotlin/graal/ReflectConfig.kt | 42 +++++++++++ ...ols.ksp.processing.SymbolProcessorProvider | 1 + settings.gradle.kts | 1 + 10 files changed, 182 insertions(+) create mode 100644 common/build/generated/ksp/main/resources/META-INF/native-image/reflect-config.json create mode 100644 common/build/generated/ksp/test/resources/META-INF/native-image/reflect-config.json create mode 100644 graal-example/build.gradle.kts create mode 100644 graal-example/src/main/kotlin/dev/kord/core/Main.kt create mode 100644 graal-example/src/main/resources/META-INF/native-image/reflect-config.json create mode 100644 ksp-processors/src/main/kotlin/graal/KordGraalProcessor.kt create mode 100644 ksp-processors/src/main/kotlin/graal/ReflectConfig.kt diff --git a/common/build/generated/ksp/main/resources/META-INF/native-image/reflect-config.json b/common/build/generated/ksp/main/resources/META-INF/native-image/reflect-config.json new file mode 100644 index 000000000000..7b73f8c658a3 --- /dev/null +++ b/common/build/generated/ksp/main/resources/META-INF/native-image/reflect-config.json @@ -0,0 +1 @@ +[{"name":"dev.kord.common.Color","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.Color$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.DiscordBitSet","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.DiscordBitSet$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.Locale","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.Locale$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordAuditLog","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordAuditLog$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordAuditLogEntry","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordAuditLogEntry$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.AuditLogEntryOptionalInfo","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.AuditLogEntryOptionalInfo$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.AuditLogChange","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.AuditLogChange$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.AuditLogChangeKey","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.AuditLogChangeKey$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordAutoModerationRule","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordAutoModerationRule$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordAutoModerationRuleTriggerMetadata","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordAutoModerationRuleTriggerMetadata$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordAutoModerationAction","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordAutoModerationAction$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordAutoModerationActionMetadata","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordAutoModerationActionMetadata$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordPinsUpdateData","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordPinsUpdateData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordTyping","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordTyping$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordBotActivity","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordBotActivity$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordActivity","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordActivity$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.ActivityFlags","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.ActivityFlags$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordActivityTimestamps","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordActivityTimestamps$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordActivityEmoji","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordActivityEmoji$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordActivityParty","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordActivityParty$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordActivityPartySize","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordActivityPartySize$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordActivityAssets","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordActivityAssets$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordActivitySecrets","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordActivitySecrets$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.ActivityType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.ActivityType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordApplication","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordApplication$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordPartialApplication","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordPartialApplication$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.ApplicationFlags","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.ApplicationFlags$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.InstallParams","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.InstallParams$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordChannel","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordChannel$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.Overwrite","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.Overwrite$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordThreadMetadata","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordThreadMetadata$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.ArchiveDuration","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.ArchiveDuration$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordComponent","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordComponent$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordChatComponent","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordChatComponent$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordTextInputComponent","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordTextInputComponent$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordConnection","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordConnection$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordEmoji","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordEmoji$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordUpdatedEmojis","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordUpdatedEmojis$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordPartialEmoji","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordPartialEmoji$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordUnavailableGuild","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordUnavailableGuild$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordGuild","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordGuild$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordPartialGuild","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordPartialGuild$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.SystemChannelFlags","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.SystemChannelFlags$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordGuildBan","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordGuildBan$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordGuildIntegrations","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordGuildIntegrations$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordGuildIntegrationsDeleted","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordGuildIntegrationsDeleted$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordIntegrationAccount","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordIntegrationAccount$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordVoiceServerUpdateData","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordVoiceServerUpdateData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordWebhooksUpdateData","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordWebhooksUpdateData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordVoiceState","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordVoiceState$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordVoiceRegion","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordVoiceRegion$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordWelcomeScreenChannel","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordWelcomeScreenChannel$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordWelcomeScreen","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordWelcomeScreen$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordGuildPreview","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordGuildPreview$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordGuildScheduledEvent","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordGuildScheduledEvent$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.GuildScheduledEventEntityMetadata","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.GuildScheduledEventEntityMetadata$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordGuildWidget","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordGuildWidget$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordIntegration","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordIntegration$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordPartialIntegration","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordPartialIntegration$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.IntegrationApplication","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.IntegrationApplication$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordIntegrationsAccount","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordIntegrationsAccount$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordInvite","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordInvite$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordInviteWithMetadata","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordInviteWithMetadata$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordPartialInvite","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordPartialInvite$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordMessage","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordMessage$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordMessageSticker","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordMessageSticker$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordStickerPack","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordStickerPack$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordStickerItem","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordStickerItem$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordPartialMessage","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordPartialMessage$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordMessageReference","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordMessageReference$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordMentionedChannel","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordMentionedChannel$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.MessageFlags","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.MessageFlags$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordAttachment","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordAttachment$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordEmbed","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordEmbed$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordEmbed.Footer","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordEmbed.Footer$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordEmbed.Image","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordEmbed.Image$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordEmbed.Thumbnail","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordEmbed.Thumbnail$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordEmbed.Video","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordEmbed.Video$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordEmbed.Provider","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordEmbed.Provider$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordEmbed.Author","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordEmbed.Author$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordEmbed.Field","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordEmbed.Field$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.Reaction","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.Reaction$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.MessageActivity","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.MessageActivity$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.MessageApplication","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.MessageApplication$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DeletedMessage","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DeletedMessage$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.BulkDeleteData","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.BulkDeleteData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.MessageReactionAddData","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.MessageReactionAddData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.MessageReactionRemoveData","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.MessageReactionRemoveData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.AllRemovedMessageReactions","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.AllRemovedMessageReactions$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.AllowedMentions","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.AllowedMentions$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordMessageInteraction","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordMessageInteraction$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.RoleSubscription","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.RoleSubscription$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordNull","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordNull$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordRole","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordRole$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordRoleTags","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordRoleTags$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordPartialRole","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordPartialRole$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordAuditLogRoleChange","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordAuditLogRoleChange$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordGuildRole","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordGuildRole$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordDeletedGuildRole","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordDeletedGuildRole$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordSelectOption","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordSelectOption$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordShard","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordShard$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordStageInstance","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordStageInstance$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordTemplate","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordTemplate$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordUser","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordUser$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordOptionallyMemberUser","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordOptionallyMemberUser$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.UserFlags","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.UserFlags$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordWebhook","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordWebhook$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordApplicationCommand","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordApplicationCommand$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.ApplicationCommandOption","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.ApplicationCommandOption$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.Choice","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.Choice$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.ResolvedObjects","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.ResolvedObjects$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordInteraction","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordInteraction$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.InteractionCallbackData","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.InteractionCallbackData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.Option","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.Option$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.SubCommand","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.SubCommand$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.CommandArgument","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.CommandArgument$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordGuildApplicationCommandPermissions","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordGuildApplicationCommandPermissions$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordGuildApplicationCommandPermission","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordGuildApplicationCommandPermission$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordGuildApplicationCommandPermission.Type","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordGuildApplicationCommandPermission.Type$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordAutoComplete","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordAutoComplete$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordModal","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordModal$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordGuildMember","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordGuildMember$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordInteractionGuildMember","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordInteractionGuildMember$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordAddedGuildMember","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordAddedGuildMember$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordRemovedGuildMember","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordRemovedGuildMember$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordUpdatedGuildMember","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordUpdatedGuildMember$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordThreadMember","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordThreadMember$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.GuildMemberFlags","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.GuildMemberFlags$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.GuildMemberFlag","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.GuildMemberFlag$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.Permissions","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.Permissions$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordPresenceUpdate","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordPresenceUpdate$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordPresenceUser","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordPresenceUser$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordClientStatus","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordClientStatus$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.Snowflake","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.Snowflake$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordTeam","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordTeam$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordTeamMember","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordTeamMember$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.optional.Optional","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.optional.Optional$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.optional.OptionalBoolean","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.optional.OptionalBoolean$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.optional.OptionalInt","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.optional.OptionalInt$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.optional.OptionalLong","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.optional.OptionalLong$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.optional.OptionalSnowflake","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.optional.OptionalSnowflake$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.AllowedMentionType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.AllowedMentionType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.ApplicationCommandOptionType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.ApplicationCommandOptionType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.ApplicationCommandPermissionType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.ApplicationCommandPermissionType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.ApplicationCommandType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.ApplicationCommandType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.AuditLogEvent","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.AuditLogEvent$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.AutoModerationActionType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.AutoModerationActionType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.AutoModerationRuleEventType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.AutoModerationRuleEventType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.AutoModerationRuleKeywordPresetType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.AutoModerationRuleKeywordPresetType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.AutoModerationRuleTriggerType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.AutoModerationRuleTriggerType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.ButtonStyle","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.ButtonStyle$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.ChannelType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.ChannelType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.ComponentType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.ComponentType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DefaultMessageNotificationLevel","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DefaultMessageNotificationLevel$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordConnectionVisibility","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordConnectionVisibility$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.EmbedType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.EmbedType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.ExplicitContentFilter","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.ExplicitContentFilter$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.GuildFeature","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.GuildFeature$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.GuildScheduledEventPrivacyLevel","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.GuildScheduledEventPrivacyLevel$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.GuildScheduledEventStatus","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.GuildScheduledEventStatus$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.IntegrationExpireBehavior","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.IntegrationExpireBehavior$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.InteractionResponseType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.InteractionResponseType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.InteractionType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.InteractionType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.InviteTargetType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.InviteTargetType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.MessageActivityType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.MessageActivityType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.MessageStickerType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.MessageStickerType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.MessageType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.MessageType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.MFALevel","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.MFALevel$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.NsfwLevel","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.NsfwLevel$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.OverwriteType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.OverwriteType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.PremiumTier","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.PremiumTier$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.PresenceStatus","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.PresenceStatus$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.ScheduledEntityType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.ScheduledEntityType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.StageInstancePrivacyLevel","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.StageInstancePrivacyLevel$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.TeamMembershipState","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.TeamMembershipState$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.TextInputStyle","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.TextInputStyle$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.UserPremium","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.UserPremium$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.VerificationLevel","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.VerificationLevel$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.VideoQualityMode","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.VideoQualityMode$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.WebhookType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.WebhookType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]}] \ No newline at end of file diff --git a/common/build/generated/ksp/test/resources/META-INF/native-image/reflect-config.json b/common/build/generated/ksp/test/resources/META-INF/native-image/reflect-config.json new file mode 100644 index 000000000000..95ab65be361d --- /dev/null +++ b/common/build/generated/ksp/test/resources/META-INF/native-image/reflect-config.json @@ -0,0 +1 @@ +[{"name":"dev.kord.common.entity.optional.OptionalBooleanTest.EmptyOptionalEntity","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.optional.OptionalBooleanTest.EmptyOptionalEntity$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.optional.OptionalBooleanTest.NullOptionalEntity","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.optional.OptionalBooleanTest.NullOptionalEntity$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.optional.OptionalBooleanTest.ValueOptionalEntity","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.optional.OptionalBooleanTest.ValueOptionalEntity$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.optional.OptionalIntTest.EmptyOptionalEntity","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.optional.OptionalIntTest.EmptyOptionalEntity$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.optional.OptionalIntTest.NullOptionalEntity","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.optional.OptionalIntTest.NullOptionalEntity$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.optional.OptionalIntTest.ValueOptionalEntity","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.optional.OptionalIntTest.ValueOptionalEntity$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.optional.OptionalLongTest.EmptyOptionalEntity","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.optional.OptionalLongTest.EmptyOptionalEntity$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.optional.OptionalLongTest.NullOptionalEntity","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.optional.OptionalLongTest.NullOptionalEntity$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.optional.OptionalLongTest.ValueOptionalEntity","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.optional.OptionalLongTest.ValueOptionalEntity$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.optional.OptionalSnowflakeTest.EmptyOptionalEntity","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.optional.OptionalSnowflakeTest.EmptyOptionalEntity$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.optional.OptionalSnowflakeTest.NullOptionalEntity","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.optional.OptionalSnowflakeTest.NullOptionalEntity$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.optional.OptionalSnowflakeTest.ValueOptionalEntity","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.optional.OptionalSnowflakeTest.ValueOptionalEntity$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.optional.OptionalTest.NullOptionalEntity","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.optional.OptionalTest.NullOptionalEntity$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.optional.OptionalTest.EmptyOptionalEntity","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.optional.OptionalTest.EmptyOptionalEntity$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.optional.OptionalTest.UnexpectedEmptyOptionalEntity","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.optional.OptionalTest.UnexpectedEmptyOptionalEntity$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.optional.OptionalTest.UnexpectedNullOptionalEntity","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.optional.OptionalTest.UnexpectedNullOptionalEntity$Companion","methods":[{"name":"serializer","parameterTypes":[]}]}] \ No newline at end of file diff --git a/graal-example/build.gradle.kts b/graal-example/build.gradle.kts new file mode 100644 index 000000000000..cff3c0891872 --- /dev/null +++ b/graal-example/build.gradle.kts @@ -0,0 +1,25 @@ +plugins { + `kord-internal-module` + application + id("org.graalvm.buildtools.native") version "0.9.20" +} + +dependencies { + implementation(projects.core) + implementation(libs.slf4j.simple) +} + +application { + mainClass.set("dev.kord.core.MainKt") +} + +graalvmNative { + binaries { + named("main") { + javaLauncher.set(javaToolchains.launcherFor { + languageVersion.set(JavaLanguageVersion.of(19)) + vendor.set(JvmVendorSpec.matching("GraalVM Community")) + }) + } + } +} diff --git a/graal-example/src/main/kotlin/dev/kord/core/Main.kt b/graal-example/src/main/kotlin/dev/kord/core/Main.kt new file mode 100644 index 000000000000..d0c804808baf --- /dev/null +++ b/graal-example/src/main/kotlin/dev/kord/core/Main.kt @@ -0,0 +1,24 @@ +package dev.kord.core + +import dev.kord.common.entity.AutoModerationRuleEventType +import dev.kord.core.event.message.MessageCreateEvent +import dev.kord.gateway.Intent +import dev.kord.gateway.PrivilegedIntent +import kotlinx.serialization.serializer + +suspend fun main(args: Array) { + println(serializer()) + val kord = Kord(args.firstOrNull() ?: error("token required")) + + kord.on { + if (message.author?.isBot == true) return@on + if (message.content == "!ping") message.channel.createMessage("pong") + } + + kord.login { + presence { playing("!ping to pong") } + + @OptIn(PrivilegedIntent::class) + intents += Intent.MessageContent + } +} diff --git a/graal-example/src/main/resources/META-INF/native-image/reflect-config.json b/graal-example/src/main/resources/META-INF/native-image/reflect-config.json new file mode 100644 index 000000000000..01c05e9d3fde --- /dev/null +++ b/graal-example/src/main/resources/META-INF/native-image/reflect-config.json @@ -0,0 +1,17 @@ +[ + { + "name": "kotlin.internal.jdk8.JDK8PlatformImplementations", + "allPublicMethods": true, + "allDeclaredFields": true, + "allDeclaredMethods": true, + "allDeclaredConstructors": true + }, + { + "name": "io.ktor.network.selector.InterestSuspensionsMap", + "allDeclaredFields": true + }, + { + "name": "io.ktor.utils.io.pool.DefaultPool", + "allDeclaredFields": true + } +] diff --git a/ksp-processors/build.gradle.kts b/ksp-processors/build.gradle.kts index a450e7e5b48e..f5c9059edbbe 100644 --- a/ksp-processors/build.gradle.kts +++ b/ksp-processors/build.gradle.kts @@ -1,5 +1,6 @@ plugins { `kord-internal-module` + org.jetbrains.kotlin.plugin.serialization } dependencies { diff --git a/ksp-processors/src/main/kotlin/graal/KordGraalProcessor.kt b/ksp-processors/src/main/kotlin/graal/KordGraalProcessor.kt new file mode 100644 index 000000000000..64526affb837 --- /dev/null +++ b/ksp-processors/src/main/kotlin/graal/KordGraalProcessor.kt @@ -0,0 +1,69 @@ +package dev.kord.ksp.graal + +import com.google.devtools.ksp.processing.* +import com.google.devtools.ksp.symbol.KSAnnotated +import com.google.devtools.ksp.symbol.KSClassDeclaration +import dev.kord.ksp.getSymbolsWithAnnotation +import kotlinx.serialization.Serializable + +class KordGraalProcessorProvider : SymbolProcessorProvider { + override fun create(environment: SymbolProcessorEnvironment): SymbolProcessor { + return KordGraalProcessor( + environment.codeGenerator, environment.logger + ) + } +} + +private val entries = mutableListOf() + +private class KordGraalProcessor(private val codeGenerator: CodeGenerator, private val logger: KSPLogger) : + SymbolProcessor { + override fun finish() { + flushEntries() + logger.info("KordGraalProcessor received finish signal") + } + + override fun onError() { + logger.info("KordGraalProcessor received error signal") + } + + override fun process(resolver: Resolver): List { + logger.info("KordGraalProcessor got called, resolving annotations...") + + entries += resolver + .getSymbolsWithAnnotation() + .filterIsInstance() + .flatMap(::processClass) + .toList() + + logger.info("KordEnumProcessor finished processing annotations") + + return emptyList() // we never have to defer any symbols + } + + private fun flushEntries() { + if (entries.isNotEmpty()) { + val config = ReflectConfig(entries) + val file = codeGenerator + .createNewFile(Dependencies.ALL_FILES, "META-INF.native-image", "reflect-config", "json") + file.bufferedWriter().use { it.write(config.encode()) } + } + } + + private fun processClass(clazz: KSClassDeclaration): List { + val qualifiedName = clazz.qualifiedName?.asString() ?: run { + logger.warn("Invalid Serializable element received", clazz) + return emptyList() + } + val companionField = ReflectConfigEntry( + name = qualifiedName, + fields = listOf(ReflectConfigEntry.Field("Companion")) + ) + val companionObject = ReflectConfigEntry( + name = "$qualifiedName\$Companion", + methods = listOf(ReflectConfigEntry.Method("serializer")) + ) + + return listOf(companionField, companionObject) + } +} diff --git a/ksp-processors/src/main/kotlin/graal/ReflectConfig.kt b/ksp-processors/src/main/kotlin/graal/ReflectConfig.kt new file mode 100644 index 000000000000..5dc4ef5bafeb --- /dev/null +++ b/ksp-processors/src/main/kotlin/graal/ReflectConfig.kt @@ -0,0 +1,42 @@ +package dev.kord.ksp.graal + +import kotlinx.serialization.Serializable +import kotlinx.serialization.encodeToString +import kotlinx.serialization.json.Json + +private val json = Json { + encodeDefaults = false +} + +fun ReflectConfig.encode() = json.encodeToString(this) + + +// Reference: https://www.graalvm.org/22.0/reference-manual/native-image/Reflection/#manual-configuration +@Serializable +@JvmInline +value class ReflectConfig(val entries: List) : List by entries + +@Serializable +data class ReflectConfigEntry( + val name: String, + val queryAllDeclaredConstructors: Boolean = false, + val queryAllPublicConstructors: Boolean = false, + val queryAllDeclaredMethods: Boolean = false, + val queryAllPublicMethods: Boolean = false, + val allDeclaredClasses: Boolean = false, + val allPublicClasses: Boolean = false, + val fields: List = emptyList(), + val methods: List = emptyList(), + val queriedMethods: List = emptyList() +) { + @Serializable + data class Field(val name: String) + + @Serializable + data class QueriedMethod(val name: String) + + @Serializable + data class Method(val name: String, val parameterTypes: List) { + constructor(name: String) : this(name, emptyList()) + } +} diff --git a/ksp-processors/src/main/resources/META-INF/services/com.google.devtools.ksp.processing.SymbolProcessorProvider b/ksp-processors/src/main/resources/META-INF/services/com.google.devtools.ksp.processing.SymbolProcessorProvider index 29c136e0b63e..30dfc2af28a6 100644 --- a/ksp-processors/src/main/resources/META-INF/services/com.google.devtools.ksp.processing.SymbolProcessorProvider +++ b/ksp-processors/src/main/resources/META-INF/services/com.google.devtools.ksp.processing.SymbolProcessorProvider @@ -1 +1,2 @@ dev.kord.ksp.kordenum.KordEnumProcessorProvider +dev.kord.ksp.graal.KordGraalProcessorProvider diff --git a/settings.gradle.kts b/settings.gradle.kts index 4a02889a492c..be90cb09863f 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -13,6 +13,7 @@ include( "ksp-processors", "rest", "voice", + "graal-example" ) enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS") From 8920cfefece2029f57c35c0a54beb24de293db46 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Sun, 19 Mar 2023 16:24:05 +0100 Subject: [PATCH 002/105] Also generate reflect-config.json for other modules --- .gitignore | 1 + common/build.gradle.kts | 1 - core/build.gradle.kts | 2 ++ .../main/resources/META-INF/native-image/reflect-config.json | 1 + gateway/build.gradle.kts | 1 + .../main/resources/META-INF/native-image/reflect-config.json | 1 + .../main/resources/META-INF/native-image/reflect-config.json | 1 + 7 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 core/build/generated/ksp/main/resources/META-INF/native-image/reflect-config.json create mode 100644 gateway/build/generated/ksp/main/resources/META-INF/native-image/reflect-config.json create mode 100644 voice/build/generated/ksp/main/resources/META-INF/native-image/reflect-config.json diff --git a/.gitignore b/.gitignore index e46f4d6a2cc7..913898289b67 100644 --- a/.gitignore +++ b/.gitignore @@ -5,5 +5,6 @@ out/ **/build/* !**/build/generated/ +**/build/generated/**/test # re-exclude BuildConfigGenerated.kt common/build/generated/source/buildConfig/main/main/dev/kord/common/BuildConfigGenerated.kt diff --git a/common/build.gradle.kts b/common/build.gradle.kts index 270b4b897d91..28a3cb61ee87 100644 --- a/common/build.gradle.kts +++ b/common/build.gradle.kts @@ -13,7 +13,6 @@ dependencies { api(libs.kotlin.logging) compileOnly(projects.kspAnnotations) - ksp(projects.kspProcessors) testImplementation(libs.bundles.test.implementation) testRuntimeOnly(libs.bundles.test.runtime) diff --git a/core/build.gradle.kts b/core/build.gradle.kts index acddb513a9aa..e65161ba483c 100644 --- a/core/build.gradle.kts +++ b/core/build.gradle.kts @@ -24,6 +24,8 @@ dependencies { api(libs.kord.cache.api) api(libs.kord.cache.map) + ksp(projects.kspProcessors) + samplesImplementation(libs.slf4j.simple) testImplementation(libs.bundles.test.implementation) diff --git a/core/build/generated/ksp/main/resources/META-INF/native-image/reflect-config.json b/core/build/generated/ksp/main/resources/META-INF/native-image/reflect-config.json new file mode 100644 index 000000000000..3ab2b6f0aa30 --- /dev/null +++ b/core/build/generated/ksp/main/resources/META-INF/native-image/reflect-config.json @@ -0,0 +1 @@ +[{"name":"dev.kord.core.cache.data.ActivityData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ActivityData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ApplicationCommandData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ApplicationCommandData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ApplicationCommandOptionData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ApplicationCommandOptionData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ApplicationCommandGroupData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ApplicationCommandGroupData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ApplicationCommandSubcommandData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ApplicationCommandSubcommandData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ApplicationCommandParameterData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ApplicationCommandParameterData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ApplicationCommandOptionChoiceData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ApplicationCommandOptionChoiceData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ApplicationData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ApplicationData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.PartialApplicationData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.PartialApplicationData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.AttachmentData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.AttachmentData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.AutoModerationRuleData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.AutoModerationRuleData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.AutoModerationRuleTriggerMetadataData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.AutoModerationRuleTriggerMetadataData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.AutoModerationActionData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.AutoModerationActionData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.AutoModerationActionMetadataData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.AutoModerationActionMetadataData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.BanData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.BanData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ChannelData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ChannelData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ThreadMetadataData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ThreadMetadataData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ClientStatusData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ClientStatusData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ComponentData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ComponentData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ChatComponentData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ChatComponentData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.TextInputComponentData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.TextInputComponentData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.EmbedData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.EmbedData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.EmbedFooterData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.EmbedFooterData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.EmbedImageData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.EmbedImageData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.EmbedThumbnailData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.EmbedThumbnailData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.EmbedVideoData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.EmbedVideoData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.EmbedProviderData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.EmbedProviderData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.EmbedAuthorData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.EmbedAuthorData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.EmbedFieldData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.EmbedFieldData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.EmojiData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.EmojiData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.GuildData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.GuildData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.GuildPreviewData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.GuildPreviewData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.GuildScheduledEventData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.GuildScheduledEventData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.GuildWidgetData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.GuildWidgetData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.IntegrationData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.IntegrationData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.IntegrationsAccountData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.IntegrationsAccountData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.InteractionData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.InteractionData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ResolvedObjectsData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ResolvedObjectsData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ApplicationInteractionData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ApplicationInteractionData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.OptionData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.OptionData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.InviteCreateData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.InviteCreateData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.InviteData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.InviteData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.InviteWithMetadataData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.InviteWithMetadataData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.InviteDeleteData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.InviteDeleteData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.MemberData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.MemberData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.MembersChunkData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.MembersChunkData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.MessageData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.MessageData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.MessageInteractionData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.MessageInteractionData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.MessageReferenceData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.MessageReferenceData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.PartialGuildData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.PartialGuildData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.PermissionOverwriteData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.PermissionOverwriteData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.PresenceData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.PresenceData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ReactionData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ReactionData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.RemovedReactionData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.RemovedReactionData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ReactionRemoveEmojiData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ReactionRemoveEmojiData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.RegionData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.RegionData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.RoleData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.RoleData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.RoleTagsData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.RoleTagsData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.SelectOptionData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.SelectOptionData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.StageInstanceData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.StageInstanceData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.StickerData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.StickerData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.StickerItemData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.StickerItemData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.TeamData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.TeamData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.TeamMemberData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.TeamMemberData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.TemplateData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.TemplateData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ThreadMemberData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ThreadMemberData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.UserData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.UserData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.VoiceStateData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.VoiceStateData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.WebhookData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.WebhookData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.WelcomeScreenData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.WelcomeScreenData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.WelcomeScreenChannelData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.WelcomeScreenChannelData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.event.automoderation.data.AutoModerationActionExecutionEventData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.event.automoderation.data.AutoModerationActionExecutionEventData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.event.channel.data.ChannelPinsUpdateEventData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.event.channel.data.ChannelPinsUpdateEventData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.event.channel.data.TypingStartEventData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.event.channel.data.TypingStartEventData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]}] \ No newline at end of file diff --git a/gateway/build.gradle.kts b/gateway/build.gradle.kts index b38ed983bec7..a070a3a47b4d 100644 --- a/gateway/build.gradle.kts +++ b/gateway/build.gradle.kts @@ -10,6 +10,7 @@ dependencies { api(libs.bundles.ktor.client.serialization) api(libs.ktor.client.websockets) api(libs.ktor.client.cio) + ksp(projects.kspProcessors) testImplementation(libs.bundles.test.implementation) testRuntimeOnly(libs.bundles.test.runtime) diff --git a/gateway/build/generated/ksp/main/resources/META-INF/native-image/reflect-config.json b/gateway/build/generated/ksp/main/resources/META-INF/native-image/reflect-config.json new file mode 100644 index 000000000000..f5200695e158 --- /dev/null +++ b/gateway/build/generated/ksp/main/resources/META-INF/native-image/reflect-config.json @@ -0,0 +1 @@ +[{"name":"dev.kord.gateway.Identify","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.Identify$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.IdentifyProperties","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.IdentifyProperties$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.GuildMembersChunkData","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.GuildMembersChunkData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.DiscordPresence","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.DiscordPresence$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.Resume","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.Resume$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.RequestGuildMembers","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.RequestGuildMembers$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.UpdateVoiceStatus","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.UpdateVoiceStatus$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.UpdateStatus","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.UpdateStatus$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.Hello","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.Hello$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.ReadyData","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.ReadyData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.Heartbeat","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.Heartbeat$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.Resumed","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.Resumed$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.InvalidSession","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.InvalidSession$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.DiscordAutoModerationActionExecution","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.DiscordAutoModerationActionExecution$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.DiscordDeletedInvite","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.DiscordDeletedInvite$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.DiscordCreatedInvite","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.DiscordCreatedInvite$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.DiscordRemovedEmoji","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.DiscordRemovedEmoji$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.DiscordRemovedReactionEmoji","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.DiscordRemovedReactionEmoji$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.GuildScheduledEventUserMetadata","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.GuildScheduledEventUserMetadata$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.DiscordThreadListSync","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.DiscordThreadListSync$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.DiscordThreadMembersUpdate","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.DiscordThreadMembersUpdate$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.Intents","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.Intents$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.OpCode","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.OpCode$Companion","methods":[{"name":"serializer","parameterTypes":[]}]}] \ No newline at end of file diff --git a/voice/build/generated/ksp/main/resources/META-INF/native-image/reflect-config.json b/voice/build/generated/ksp/main/resources/META-INF/native-image/reflect-config.json new file mode 100644 index 000000000000..10cba4848beb --- /dev/null +++ b/voice/build/generated/ksp/main/resources/META-INF/native-image/reflect-config.json @@ -0,0 +1 @@ +[{"name":"dev.kord.voice.SpeakingFlags","fields":[{"name":"Companion"}]},{"name":"dev.kord.voice.SpeakingFlags$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.voice.gateway.Identify","fields":[{"name":"Companion"}]},{"name":"dev.kord.voice.gateway.Identify$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.voice.gateway.Heartbeat","fields":[{"name":"Companion"}]},{"name":"dev.kord.voice.gateway.Heartbeat$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.voice.gateway.SendSpeaking","fields":[{"name":"Companion"}]},{"name":"dev.kord.voice.gateway.SendSpeaking$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.voice.gateway.SelectProtocol","fields":[{"name":"Companion"}]},{"name":"dev.kord.voice.gateway.SelectProtocol$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.voice.gateway.SelectProtocol.Data","fields":[{"name":"Companion"}]},{"name":"dev.kord.voice.gateway.SelectProtocol.Data$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.voice.gateway.Resume","fields":[{"name":"Companion"}]},{"name":"dev.kord.voice.gateway.Resume$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.voice.gateway.Ready","fields":[{"name":"Companion"}]},{"name":"dev.kord.voice.gateway.Ready$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.voice.gateway.Hello","fields":[{"name":"Companion"}]},{"name":"dev.kord.voice.gateway.Hello$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.voice.gateway.HeartbeatAck","fields":[{"name":"Companion"}]},{"name":"dev.kord.voice.gateway.HeartbeatAck$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.voice.gateway.SessionDescription","fields":[{"name":"Companion"}]},{"name":"dev.kord.voice.gateway.SessionDescription$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.voice.gateway.Speaking","fields":[{"name":"Companion"}]},{"name":"dev.kord.voice.gateway.Speaking$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.voice.gateway.Resumed","fields":[{"name":"Companion"}]},{"name":"dev.kord.voice.gateway.Resumed$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.voice.EncryptionMode","fields":[{"name":"Companion"}]},{"name":"dev.kord.voice.EncryptionMode$Companion","methods":[{"name":"serializer","parameterTypes":[]}]}] \ No newline at end of file From 22cd84d82e539ef57b06d29baaf35dd156995ef6 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Sun, 19 Mar 2023 16:31:00 +0100 Subject: [PATCH 003/105] [ci skip] Cleanup - Remove debug code - Move Graal Gradle Plugin to libs.versions.toml --- graal-example/build.gradle.kts | 3 ++- graal-example/src/main/kotlin/dev/kord/core/Main.kt | 3 --- gradle/libs.versions.toml | 2 ++ 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/graal-example/build.gradle.kts b/graal-example/build.gradle.kts index cff3c0891872..43b6a626fa59 100644 --- a/graal-example/build.gradle.kts +++ b/graal-example/build.gradle.kts @@ -1,7 +1,8 @@ +@Suppress("DSL_SCOPE_VIOLATION") plugins { `kord-internal-module` application - id("org.graalvm.buildtools.native") version "0.9.20" + alias(libs.plugins.graal) } dependencies { diff --git a/graal-example/src/main/kotlin/dev/kord/core/Main.kt b/graal-example/src/main/kotlin/dev/kord/core/Main.kt index d0c804808baf..84454f9b636a 100644 --- a/graal-example/src/main/kotlin/dev/kord/core/Main.kt +++ b/graal-example/src/main/kotlin/dev/kord/core/Main.kt @@ -1,13 +1,10 @@ package dev.kord.core -import dev.kord.common.entity.AutoModerationRuleEventType import dev.kord.core.event.message.MessageCreateEvent import dev.kord.gateway.Intent import dev.kord.gateway.PrivilegedIntent -import kotlinx.serialization.serializer suspend fun main(args: Array) { - println(serializer()) val kord = Kord(args.firstOrNull() ?: error("token required")) kord.on { diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 26a2cede550c..08cf3784ea52 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -23,6 +23,7 @@ dokka = "1.8.10" # https://github.com/Kotlin/dokka kotlinx-atomicfu = "0.20.0" # https://github.com/Kotlin/kotlinx-atomicfu binary-compatibility-validator = "0.13.0" # https://github.com/Kotlin/binary-compatibility-validator buildconfig = "3.1.0" # https://github.com/gmazzo/gradle-buildconfig-plugin +graal = "0.9.20" # https://central.sonatype.com/artifact/org.graalvm.buildtools.native/org.graalvm.buildtools.native.gradle.plugin/0.9.20 [libraries] @@ -91,3 +92,4 @@ pluginsForBuildSrc = [ [plugins] buildconfig = { id = "com.github.gmazzo.buildconfig", version.ref = "buildconfig" } +graal = { id = "org.graalvm.buildtools.native", version.ref = "graal" } From a5e099e8d49e73115b70e6a7f7c9d38e70958c93 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Sun, 19 Mar 2023 16:31:50 +0100 Subject: [PATCH 004/105] Add kspProcessor to common again --- common/build.gradle.kts | 1 + 1 file changed, 1 insertion(+) diff --git a/common/build.gradle.kts b/common/build.gradle.kts index 28a3cb61ee87..270b4b897d91 100644 --- a/common/build.gradle.kts +++ b/common/build.gradle.kts @@ -13,6 +13,7 @@ dependencies { api(libs.kotlin.logging) compileOnly(projects.kspAnnotations) + ksp(projects.kspProcessors) testImplementation(libs.bundles.test.implementation) testRuntimeOnly(libs.bundles.test.runtime) From 8acc1e085c1fc41445b7d0c9f56c84e21f7e1f0e Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Sun, 19 Mar 2023 16:34:54 +0100 Subject: [PATCH 005/105] [ci skip] Remove common/test reflect-config.json --- .../ksp/test/resources/META-INF/native-image/reflect-config.json | 1 - gradlew | 0 2 files changed, 1 deletion(-) delete mode 100644 common/build/generated/ksp/test/resources/META-INF/native-image/reflect-config.json mode change 100755 => 100644 gradlew diff --git a/common/build/generated/ksp/test/resources/META-INF/native-image/reflect-config.json b/common/build/generated/ksp/test/resources/META-INF/native-image/reflect-config.json deleted file mode 100644 index 95ab65be361d..000000000000 --- a/common/build/generated/ksp/test/resources/META-INF/native-image/reflect-config.json +++ /dev/null @@ -1 +0,0 @@ -[{"name":"dev.kord.common.entity.optional.OptionalBooleanTest.EmptyOptionalEntity","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.optional.OptionalBooleanTest.EmptyOptionalEntity$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.optional.OptionalBooleanTest.NullOptionalEntity","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.optional.OptionalBooleanTest.NullOptionalEntity$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.optional.OptionalBooleanTest.ValueOptionalEntity","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.optional.OptionalBooleanTest.ValueOptionalEntity$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.optional.OptionalIntTest.EmptyOptionalEntity","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.optional.OptionalIntTest.EmptyOptionalEntity$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.optional.OptionalIntTest.NullOptionalEntity","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.optional.OptionalIntTest.NullOptionalEntity$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.optional.OptionalIntTest.ValueOptionalEntity","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.optional.OptionalIntTest.ValueOptionalEntity$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.optional.OptionalLongTest.EmptyOptionalEntity","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.optional.OptionalLongTest.EmptyOptionalEntity$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.optional.OptionalLongTest.NullOptionalEntity","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.optional.OptionalLongTest.NullOptionalEntity$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.optional.OptionalLongTest.ValueOptionalEntity","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.optional.OptionalLongTest.ValueOptionalEntity$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.optional.OptionalSnowflakeTest.EmptyOptionalEntity","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.optional.OptionalSnowflakeTest.EmptyOptionalEntity$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.optional.OptionalSnowflakeTest.NullOptionalEntity","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.optional.OptionalSnowflakeTest.NullOptionalEntity$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.optional.OptionalSnowflakeTest.ValueOptionalEntity","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.optional.OptionalSnowflakeTest.ValueOptionalEntity$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.optional.OptionalTest.NullOptionalEntity","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.optional.OptionalTest.NullOptionalEntity$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.optional.OptionalTest.EmptyOptionalEntity","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.optional.OptionalTest.EmptyOptionalEntity$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.optional.OptionalTest.UnexpectedEmptyOptionalEntity","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.optional.OptionalTest.UnexpectedEmptyOptionalEntity$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.optional.OptionalTest.UnexpectedNullOptionalEntity","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.optional.OptionalTest.UnexpectedNullOptionalEntity$Companion","methods":[{"name":"serializer","parameterTypes":[]}]}] \ No newline at end of file diff --git a/gradlew b/gradlew old mode 100755 new mode 100644 From 94a81052c2599d5c3bb81c588ad75eb6f3cfd18b Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Sun, 19 Mar 2023 20:56:47 +0100 Subject: [PATCH 006/105] FIx generation for Serializable types with uncommon names --- .../META-INF/native-image/reflect-config.json | 2 +- .../META-INF/native-image/reflect-config.json | 2 +- .../src/main/kotlin/dev/kord/core/Main.kt | 4 ++- ksp-processors/src/main/kotlin/KSPUtils.kt | 11 +++++++ .../main/kotlin/graal/KordGraalProcessor.kt | 33 +++++++++++++++---- .../META-INF/native-image/reflect-config.json | 2 +- 6 files changed, 43 insertions(+), 11 deletions(-) diff --git a/common/build/generated/ksp/main/resources/META-INF/native-image/reflect-config.json b/common/build/generated/ksp/main/resources/META-INF/native-image/reflect-config.json index 7b73f8c658a3..790c0697f3f0 100644 --- a/common/build/generated/ksp/main/resources/META-INF/native-image/reflect-config.json +++ b/common/build/generated/ksp/main/resources/META-INF/native-image/reflect-config.json @@ -1 +1 @@ -[{"name":"dev.kord.common.Color","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.Color$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.DiscordBitSet","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.DiscordBitSet$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.Locale","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.Locale$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordAuditLog","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordAuditLog$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordAuditLogEntry","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordAuditLogEntry$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.AuditLogEntryOptionalInfo","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.AuditLogEntryOptionalInfo$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.AuditLogChange","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.AuditLogChange$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.AuditLogChangeKey","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.AuditLogChangeKey$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordAutoModerationRule","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordAutoModerationRule$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordAutoModerationRuleTriggerMetadata","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordAutoModerationRuleTriggerMetadata$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordAutoModerationAction","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordAutoModerationAction$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordAutoModerationActionMetadata","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordAutoModerationActionMetadata$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordPinsUpdateData","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordPinsUpdateData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordTyping","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordTyping$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordBotActivity","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordBotActivity$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordActivity","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordActivity$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.ActivityFlags","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.ActivityFlags$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordActivityTimestamps","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordActivityTimestamps$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordActivityEmoji","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordActivityEmoji$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordActivityParty","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordActivityParty$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordActivityPartySize","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordActivityPartySize$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordActivityAssets","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordActivityAssets$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordActivitySecrets","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordActivitySecrets$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.ActivityType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.ActivityType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordApplication","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordApplication$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordPartialApplication","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordPartialApplication$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.ApplicationFlags","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.ApplicationFlags$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.InstallParams","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.InstallParams$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordChannel","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordChannel$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.Overwrite","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.Overwrite$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordThreadMetadata","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordThreadMetadata$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.ArchiveDuration","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.ArchiveDuration$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordComponent","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordComponent$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordChatComponent","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordChatComponent$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordTextInputComponent","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordTextInputComponent$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordConnection","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordConnection$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordEmoji","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordEmoji$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordUpdatedEmojis","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordUpdatedEmojis$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordPartialEmoji","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordPartialEmoji$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordUnavailableGuild","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordUnavailableGuild$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordGuild","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordGuild$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordPartialGuild","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordPartialGuild$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.SystemChannelFlags","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.SystemChannelFlags$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordGuildBan","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordGuildBan$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordGuildIntegrations","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordGuildIntegrations$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordGuildIntegrationsDeleted","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordGuildIntegrationsDeleted$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordIntegrationAccount","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordIntegrationAccount$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordVoiceServerUpdateData","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordVoiceServerUpdateData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordWebhooksUpdateData","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordWebhooksUpdateData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordVoiceState","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordVoiceState$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordVoiceRegion","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordVoiceRegion$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordWelcomeScreenChannel","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordWelcomeScreenChannel$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordWelcomeScreen","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordWelcomeScreen$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordGuildPreview","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordGuildPreview$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordGuildScheduledEvent","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordGuildScheduledEvent$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.GuildScheduledEventEntityMetadata","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.GuildScheduledEventEntityMetadata$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordGuildWidget","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordGuildWidget$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordIntegration","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordIntegration$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordPartialIntegration","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordPartialIntegration$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.IntegrationApplication","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.IntegrationApplication$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordIntegrationsAccount","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordIntegrationsAccount$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordInvite","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordInvite$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordInviteWithMetadata","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordInviteWithMetadata$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordPartialInvite","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordPartialInvite$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordMessage","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordMessage$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordMessageSticker","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordMessageSticker$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordStickerPack","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordStickerPack$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordStickerItem","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordStickerItem$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordPartialMessage","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordPartialMessage$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordMessageReference","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordMessageReference$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordMentionedChannel","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordMentionedChannel$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.MessageFlags","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.MessageFlags$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordAttachment","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordAttachment$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordEmbed","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordEmbed$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordEmbed.Footer","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordEmbed.Footer$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordEmbed.Image","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordEmbed.Image$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordEmbed.Thumbnail","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordEmbed.Thumbnail$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordEmbed.Video","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordEmbed.Video$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordEmbed.Provider","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordEmbed.Provider$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordEmbed.Author","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordEmbed.Author$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordEmbed.Field","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordEmbed.Field$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.Reaction","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.Reaction$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.MessageActivity","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.MessageActivity$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.MessageApplication","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.MessageApplication$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DeletedMessage","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DeletedMessage$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.BulkDeleteData","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.BulkDeleteData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.MessageReactionAddData","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.MessageReactionAddData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.MessageReactionRemoveData","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.MessageReactionRemoveData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.AllRemovedMessageReactions","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.AllRemovedMessageReactions$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.AllowedMentions","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.AllowedMentions$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordMessageInteraction","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordMessageInteraction$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.RoleSubscription","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.RoleSubscription$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordNull","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordNull$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordRole","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordRole$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordRoleTags","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordRoleTags$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordPartialRole","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordPartialRole$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordAuditLogRoleChange","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordAuditLogRoleChange$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordGuildRole","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordGuildRole$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordDeletedGuildRole","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordDeletedGuildRole$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordSelectOption","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordSelectOption$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordShard","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordShard$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordStageInstance","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordStageInstance$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordTemplate","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordTemplate$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordUser","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordUser$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordOptionallyMemberUser","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordOptionallyMemberUser$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.UserFlags","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.UserFlags$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordWebhook","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordWebhook$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordApplicationCommand","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordApplicationCommand$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.ApplicationCommandOption","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.ApplicationCommandOption$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.Choice","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.Choice$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.ResolvedObjects","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.ResolvedObjects$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordInteraction","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordInteraction$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.InteractionCallbackData","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.InteractionCallbackData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.Option","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.Option$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.SubCommand","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.SubCommand$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.CommandArgument","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.CommandArgument$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordGuildApplicationCommandPermissions","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordGuildApplicationCommandPermissions$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordGuildApplicationCommandPermission","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordGuildApplicationCommandPermission$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordGuildApplicationCommandPermission.Type","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordGuildApplicationCommandPermission.Type$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordAutoComplete","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordAutoComplete$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordModal","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordModal$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordGuildMember","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordGuildMember$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordInteractionGuildMember","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordInteractionGuildMember$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordAddedGuildMember","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordAddedGuildMember$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordRemovedGuildMember","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordRemovedGuildMember$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordUpdatedGuildMember","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordUpdatedGuildMember$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordThreadMember","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordThreadMember$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.GuildMemberFlags","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.GuildMemberFlags$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.GuildMemberFlag","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.GuildMemberFlag$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.Permissions","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.Permissions$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordPresenceUpdate","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordPresenceUpdate$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordPresenceUser","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordPresenceUser$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordClientStatus","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordClientStatus$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.Snowflake","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.Snowflake$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordTeam","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordTeam$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordTeamMember","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordTeamMember$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.optional.Optional","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.optional.Optional$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.optional.OptionalBoolean","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.optional.OptionalBoolean$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.optional.OptionalInt","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.optional.OptionalInt$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.optional.OptionalLong","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.optional.OptionalLong$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.optional.OptionalSnowflake","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.optional.OptionalSnowflake$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.AllowedMentionType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.AllowedMentionType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.ApplicationCommandOptionType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.ApplicationCommandOptionType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.ApplicationCommandPermissionType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.ApplicationCommandPermissionType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.ApplicationCommandType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.ApplicationCommandType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.AuditLogEvent","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.AuditLogEvent$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.AutoModerationActionType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.AutoModerationActionType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.AutoModerationRuleEventType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.AutoModerationRuleEventType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.AutoModerationRuleKeywordPresetType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.AutoModerationRuleKeywordPresetType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.AutoModerationRuleTriggerType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.AutoModerationRuleTriggerType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.ButtonStyle","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.ButtonStyle$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.ChannelType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.ChannelType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.ComponentType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.ComponentType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DefaultMessageNotificationLevel","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DefaultMessageNotificationLevel$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordConnectionVisibility","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordConnectionVisibility$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.EmbedType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.EmbedType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.ExplicitContentFilter","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.ExplicitContentFilter$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.GuildFeature","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.GuildFeature$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.GuildScheduledEventPrivacyLevel","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.GuildScheduledEventPrivacyLevel$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.GuildScheduledEventStatus","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.GuildScheduledEventStatus$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.IntegrationExpireBehavior","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.IntegrationExpireBehavior$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.InteractionResponseType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.InteractionResponseType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.InteractionType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.InteractionType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.InviteTargetType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.InviteTargetType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.MessageActivityType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.MessageActivityType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.MessageStickerType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.MessageStickerType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.MessageType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.MessageType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.MFALevel","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.MFALevel$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.NsfwLevel","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.NsfwLevel$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.OverwriteType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.OverwriteType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.PremiumTier","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.PremiumTier$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.PresenceStatus","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.PresenceStatus$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.ScheduledEntityType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.ScheduledEntityType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.StageInstancePrivacyLevel","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.StageInstancePrivacyLevel$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.TeamMembershipState","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.TeamMembershipState$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.TextInputStyle","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.TextInputStyle$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.UserPremium","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.UserPremium$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.VerificationLevel","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.VerificationLevel$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.VideoQualityMode","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.VideoQualityMode$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.WebhookType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.WebhookType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]}] \ No newline at end of file +[{"name":"dev.kord.common.Color","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.Color$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.DiscordBitSet","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.DiscordBitSet$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.Locale","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.Locale$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordAuditLog","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordAuditLog$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordAuditLogEntry","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordAuditLogEntry$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.AuditLogEntryOptionalInfo","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.AuditLogEntryOptionalInfo$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.AuditLogChange","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.AuditLogChange$Companion","methods":[{"name":"serializer","parameterTypes":["kotlinx.serialization.KSerializer"]}]},{"name":"dev.kord.common.entity.AuditLogChangeKey","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.AuditLogChangeKey$Companion","methods":[{"name":"serializer","parameterTypes":["kotlinx.serialization.KSerializer"]}]},{"name":"dev.kord.common.entity.DiscordAutoModerationRule","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordAutoModerationRule$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordAutoModerationRuleTriggerMetadata","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordAutoModerationRuleTriggerMetadata$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordAutoModerationAction","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordAutoModerationAction$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordAutoModerationActionMetadata","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordAutoModerationActionMetadata$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordPinsUpdateData","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordPinsUpdateData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordTyping","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordTyping$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordBotActivity","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordBotActivity$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordActivity","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordActivity$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.ActivityFlags","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.ActivityFlags$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordActivityTimestamps","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordActivityTimestamps$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordActivityEmoji","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordActivityEmoji$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordActivityParty","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordActivityParty$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordActivityPartySize","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordActivityPartySize$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordActivityAssets","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordActivityAssets$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordActivitySecrets","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordActivitySecrets$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.ActivityType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.ActivityType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordApplication","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordApplication$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordPartialApplication","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordPartialApplication$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.ApplicationFlags","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.ApplicationFlags$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.InstallParams","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.InstallParams$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordChannel","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordChannel$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.Overwrite","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.Overwrite$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordThreadMetadata","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordThreadMetadata$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.ArchiveDuration","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.ArchiveDuration$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordComponent","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordComponent$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordChatComponent","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordChatComponent$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordTextInputComponent","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordTextInputComponent$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordConnection","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordConnection$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordEmoji","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordEmoji$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordUpdatedEmojis","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordUpdatedEmojis$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordPartialEmoji","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordPartialEmoji$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordUnavailableGuild","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordUnavailableGuild$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordGuild","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordGuild$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordPartialGuild","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordPartialGuild$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.SystemChannelFlags","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.SystemChannelFlags$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordGuildBan","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordGuildBan$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordGuildIntegrations","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordGuildIntegrations$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordGuildIntegrationsDeleted","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordGuildIntegrationsDeleted$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordIntegrationAccount","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordIntegrationAccount$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordVoiceServerUpdateData","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordVoiceServerUpdateData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordWebhooksUpdateData","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordWebhooksUpdateData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordVoiceState","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordVoiceState$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordVoiceRegion","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordVoiceRegion$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordWelcomeScreenChannel","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordWelcomeScreenChannel$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordWelcomeScreen","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordWelcomeScreen$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordGuildPreview","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordGuildPreview$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordGuildScheduledEvent","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordGuildScheduledEvent$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.GuildScheduledEventEntityMetadata","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.GuildScheduledEventEntityMetadata$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordGuildWidget","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordGuildWidget$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordIntegration","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordIntegration$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordPartialIntegration","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordPartialIntegration$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.IntegrationApplication","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.IntegrationApplication$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordIntegrationsAccount","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordIntegrationsAccount$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordInvite","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordInvite$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordInviteWithMetadata","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordInviteWithMetadata$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordPartialInvite","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordPartialInvite$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordMessage","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordMessage$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordMessageSticker","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordMessageSticker$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordStickerPack","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordStickerPack$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordStickerItem","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordStickerItem$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordPartialMessage","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordPartialMessage$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordMessageReference","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordMessageReference$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordMentionedChannel","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordMentionedChannel$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.MessageFlags","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.MessageFlags$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordAttachment","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordAttachment$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordEmbed","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordEmbed$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordEmbed$Footer","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordEmbed$Footer$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordEmbed$Image","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordEmbed$Image$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordEmbed$Thumbnail","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordEmbed$Thumbnail$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordEmbed$Video","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordEmbed$Video$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordEmbed$Provider","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordEmbed$Provider$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordEmbed$Author","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordEmbed$Author$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordEmbed$Field","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordEmbed$Field$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.Reaction","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.Reaction$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.MessageActivity","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.MessageActivity$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.MessageApplication","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.MessageApplication$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DeletedMessage","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DeletedMessage$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.BulkDeleteData","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.BulkDeleteData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.MessageReactionAddData","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.MessageReactionAddData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.MessageReactionRemoveData","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.MessageReactionRemoveData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.AllRemovedMessageReactions","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.AllRemovedMessageReactions$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.AllowedMentions","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.AllowedMentions$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordMessageInteraction","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordMessageInteraction$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.RoleSubscription","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.RoleSubscription$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordNull","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordNull$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordRole","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordRole$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordRoleTags","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordRoleTags$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordPartialRole","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordPartialRole$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordAuditLogRoleChange","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordAuditLogRoleChange$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordGuildRole","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordGuildRole$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordDeletedGuildRole","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordDeletedGuildRole$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordSelectOption","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordSelectOption$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordShard","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordShard$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordStageInstance","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordStageInstance$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordTemplate","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordTemplate$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordUser","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordUser$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordOptionallyMemberUser","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordOptionallyMemberUser$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.UserFlags","fields":[{"name":"UserFlagsSerializer"}]},{"name":"dev.kord.common.entity.UserFlags$UserFlagsSerializer","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordWebhook","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordWebhook$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordApplicationCommand","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordApplicationCommand$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.ApplicationCommandOption","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.ApplicationCommandOption$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.Choice","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.Choice$Companion","methods":[{"name":"serializer","parameterTypes":["kotlinx.serialization.KSerializer"]}]},{"name":"dev.kord.common.entity.ResolvedObjects","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.ResolvedObjects$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordInteraction","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordInteraction$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.InteractionCallbackData","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.InteractionCallbackData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.Option","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.Option$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.SubCommand","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.SubCommand$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.CommandArgument","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.CommandArgument$Companion","methods":[{"name":"serializer","parameterTypes":["kotlinx.serialization.KSerializer"]}]},{"name":"dev.kord.common.entity.DiscordGuildApplicationCommandPermissions","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordGuildApplicationCommandPermissions$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordGuildApplicationCommandPermission","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordGuildApplicationCommandPermission$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordGuildApplicationCommandPermission$Type","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordGuildApplicationCommandPermission$Type$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordAutoComplete","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordAutoComplete$Companion","methods":[{"name":"serializer","parameterTypes":["kotlinx.serialization.KSerializer"]}]},{"name":"dev.kord.common.entity.DiscordModal","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordModal$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordGuildMember","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordGuildMember$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordInteractionGuildMember","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordInteractionGuildMember$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordAddedGuildMember","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordAddedGuildMember$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordRemovedGuildMember","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordRemovedGuildMember$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordUpdatedGuildMember","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordUpdatedGuildMember$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordThreadMember","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordThreadMember$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.GuildMemberFlags","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.GuildMemberFlags$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.GuildMemberFlag","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.GuildMemberFlag$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.Permissions","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.Permissions$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordPresenceUpdate","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordPresenceUpdate$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordPresenceUser","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordPresenceUser$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordClientStatus","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordClientStatus$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.Snowflake","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.Snowflake$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordTeam","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordTeam$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordTeamMember","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordTeamMember$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.optional.Optional","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.optional.Optional$Companion","methods":[{"name":"serializer","parameterTypes":["kotlinx.serialization.KSerializer"]}]},{"name":"dev.kord.common.entity.optional.OptionalBoolean","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.optional.OptionalBoolean$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.optional.OptionalInt","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.optional.OptionalInt$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.optional.OptionalLong","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.optional.OptionalLong$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.optional.OptionalSnowflake","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.optional.OptionalSnowflake$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.AllowedMentionType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.AllowedMentionType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.ApplicationCommandOptionType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.ApplicationCommandOptionType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.ApplicationCommandPermissionType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.ApplicationCommandPermissionType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.ApplicationCommandType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.ApplicationCommandType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.AuditLogEvent","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.AuditLogEvent$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.AutoModerationActionType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.AutoModerationActionType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.AutoModerationRuleEventType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.AutoModerationRuleEventType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.AutoModerationRuleKeywordPresetType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.AutoModerationRuleKeywordPresetType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.AutoModerationRuleTriggerType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.AutoModerationRuleTriggerType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.ButtonStyle","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.ButtonStyle$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.ChannelType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.ChannelType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.ComponentType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.ComponentType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DefaultMessageNotificationLevel","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DefaultMessageNotificationLevel$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordConnectionVisibility","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordConnectionVisibility$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.EmbedType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.EmbedType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.ExplicitContentFilter","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.ExplicitContentFilter$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.GuildFeature","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.GuildFeature$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.GuildScheduledEventPrivacyLevel","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.GuildScheduledEventPrivacyLevel$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.GuildScheduledEventStatus","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.GuildScheduledEventStatus$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.IntegrationExpireBehavior","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.IntegrationExpireBehavior$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.InteractionResponseType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.InteractionResponseType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.InteractionType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.InteractionType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.InviteTargetType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.InviteTargetType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.MessageActivityType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.MessageActivityType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.MessageStickerType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.MessageStickerType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.MessageType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.MessageType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.MFALevel","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.MFALevel$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.NsfwLevel","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.NsfwLevel$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.OverwriteType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.OverwriteType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.PremiumTier","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.PremiumTier$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.PresenceStatus","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.PresenceStatus$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.ScheduledEntityType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.ScheduledEntityType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.StageInstancePrivacyLevel","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.StageInstancePrivacyLevel$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.TeamMembershipState","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.TeamMembershipState$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.TextInputStyle","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.TextInputStyle$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.UserPremium","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.UserPremium$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.VerificationLevel","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.VerificationLevel$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.VideoQualityMode","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.VideoQualityMode$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.WebhookType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.WebhookType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]}] \ No newline at end of file diff --git a/gateway/build/generated/ksp/main/resources/META-INF/native-image/reflect-config.json b/gateway/build/generated/ksp/main/resources/META-INF/native-image/reflect-config.json index f5200695e158..57ebb71a9924 100644 --- a/gateway/build/generated/ksp/main/resources/META-INF/native-image/reflect-config.json +++ b/gateway/build/generated/ksp/main/resources/META-INF/native-image/reflect-config.json @@ -1 +1 @@ -[{"name":"dev.kord.gateway.Identify","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.Identify$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.IdentifyProperties","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.IdentifyProperties$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.GuildMembersChunkData","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.GuildMembersChunkData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.DiscordPresence","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.DiscordPresence$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.Resume","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.Resume$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.RequestGuildMembers","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.RequestGuildMembers$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.UpdateVoiceStatus","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.UpdateVoiceStatus$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.UpdateStatus","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.UpdateStatus$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.Hello","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.Hello$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.ReadyData","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.ReadyData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.Heartbeat","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.Heartbeat$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.Resumed","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.Resumed$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.InvalidSession","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.InvalidSession$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.DiscordAutoModerationActionExecution","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.DiscordAutoModerationActionExecution$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.DiscordDeletedInvite","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.DiscordDeletedInvite$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.DiscordCreatedInvite","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.DiscordCreatedInvite$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.DiscordRemovedEmoji","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.DiscordRemovedEmoji$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.DiscordRemovedReactionEmoji","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.DiscordRemovedReactionEmoji$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.GuildScheduledEventUserMetadata","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.GuildScheduledEventUserMetadata$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.DiscordThreadListSync","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.DiscordThreadListSync$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.DiscordThreadMembersUpdate","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.DiscordThreadMembersUpdate$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.Intents","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.Intents$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.OpCode","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.OpCode$Companion","methods":[{"name":"serializer","parameterTypes":[]}]}] \ No newline at end of file +[{"name":"dev.kord.gateway.Identify","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.Identify$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.IdentifyProperties","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.IdentifyProperties$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.GuildMembersChunkData","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.GuildMembersChunkData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.DiscordPresence","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.DiscordPresence$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.Resume","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.Resume$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.RequestGuildMembers","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.RequestGuildMembers$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.UpdateVoiceStatus","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.UpdateVoiceStatus$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.UpdateStatus","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.UpdateStatus$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.Hello","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.Hello$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.ReadyData","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.ReadyData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.Heartbeat","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.Heartbeat$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.Resumed","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.Resumed$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.InvalidSession","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.InvalidSession$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.DiscordAutoModerationActionExecution","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.DiscordAutoModerationActionExecution$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.DiscordDeletedInvite","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.DiscordDeletedInvite$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.DiscordCreatedInvite","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.DiscordCreatedInvite$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.DiscordRemovedEmoji","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.DiscordRemovedEmoji$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.DiscordRemovedReactionEmoji","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.DiscordRemovedReactionEmoji$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.GuildScheduledEventUserMetadata","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.GuildScheduledEventUserMetadata$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.DiscordThreadListSync","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.DiscordThreadListSync$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.DiscordThreadMembersUpdate","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.DiscordThreadMembersUpdate$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.Intents","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.Intents$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.OpCode","fields":[{"name":"OpCodeSerializer"}]},{"name":"dev.kord.gateway.OpCode$OpCodeSerializer","methods":[{"name":"serializer","parameterTypes":[]}]}] \ No newline at end of file diff --git a/graal-example/src/main/kotlin/dev/kord/core/Main.kt b/graal-example/src/main/kotlin/dev/kord/core/Main.kt index 84454f9b636a..0684c8d532a1 100644 --- a/graal-example/src/main/kotlin/dev/kord/core/Main.kt +++ b/graal-example/src/main/kotlin/dev/kord/core/Main.kt @@ -5,7 +5,9 @@ import dev.kord.gateway.Intent import dev.kord.gateway.PrivilegedIntent suspend fun main(args: Array) { - val kord = Kord(args.firstOrNull() ?: error("token required")) + val kord = Kord(args.firstOrNull() ?: error("token required")) { + enableShutdownHook = true + } kord.on { if (message.author?.isBot == true) return@on diff --git a/ksp-processors/src/main/kotlin/KSPUtils.kt b/ksp-processors/src/main/kotlin/KSPUtils.kt index be0176599880..9bdfc448f4bc 100644 --- a/ksp-processors/src/main/kotlin/KSPUtils.kt +++ b/ksp-processors/src/main/kotlin/KSPUtils.kt @@ -2,6 +2,7 @@ package dev.kord.ksp import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.KSAnnotation +import com.google.devtools.ksp.symbol.KSClassDeclaration import kotlin.reflect.KProperty1 internal inline fun Resolver.getSymbolsWithAnnotation(inDepth: Boolean = false) = @@ -18,3 +19,13 @@ internal class AnnotationArguments private constructor(private val map: Map { - val qualifiedName = clazz.qualifiedName?.asString() ?: run { - logger.warn("Invalid Serializable element received", clazz) - return emptyList() - } + val name = clazz.findCompanionObjectName() + + val qualifiedName = clazz.binaryName val companionField = ReflectConfigEntry( name = qualifiedName, - fields = listOf(ReflectConfigEntry.Field("Companion")) + fields = listOf(ReflectConfigEntry.Field(name)) ) val companionObject = ReflectConfigEntry( - name = "$qualifiedName\$Companion", - methods = listOf(ReflectConfigEntry.Method("serializer")) + name = "$qualifiedName\$$name", + methods = listOf( + ReflectConfigEntry.Method( + "serializer", + generateTypeParameters(clazz.typeParameters.count()).also { + logger.info("Class ${clazz.qualifiedName?.asString()} has ${it.size} type parameters") + } + ) + ) ) return listOf(companionField, companionObject) } + + private fun KSClassDeclaration.findCompanionObjectName(): String { + val companionObject = declarations.firstOrNull { + (it as? KSClassDeclaration)?.isCompanionObject == true + } + + return companionObject?.qualifiedName?.getShortName() ?: "Companion" + } + + private fun generateTypeParameters(n: Int): List = List(n) { KSerializer::class.qualifiedName!! } + } diff --git a/voice/build/generated/ksp/main/resources/META-INF/native-image/reflect-config.json b/voice/build/generated/ksp/main/resources/META-INF/native-image/reflect-config.json index 10cba4848beb..c5be56faca4d 100644 --- a/voice/build/generated/ksp/main/resources/META-INF/native-image/reflect-config.json +++ b/voice/build/generated/ksp/main/resources/META-INF/native-image/reflect-config.json @@ -1 +1 @@ -[{"name":"dev.kord.voice.SpeakingFlags","fields":[{"name":"Companion"}]},{"name":"dev.kord.voice.SpeakingFlags$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.voice.gateway.Identify","fields":[{"name":"Companion"}]},{"name":"dev.kord.voice.gateway.Identify$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.voice.gateway.Heartbeat","fields":[{"name":"Companion"}]},{"name":"dev.kord.voice.gateway.Heartbeat$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.voice.gateway.SendSpeaking","fields":[{"name":"Companion"}]},{"name":"dev.kord.voice.gateway.SendSpeaking$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.voice.gateway.SelectProtocol","fields":[{"name":"Companion"}]},{"name":"dev.kord.voice.gateway.SelectProtocol$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.voice.gateway.SelectProtocol.Data","fields":[{"name":"Companion"}]},{"name":"dev.kord.voice.gateway.SelectProtocol.Data$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.voice.gateway.Resume","fields":[{"name":"Companion"}]},{"name":"dev.kord.voice.gateway.Resume$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.voice.gateway.Ready","fields":[{"name":"Companion"}]},{"name":"dev.kord.voice.gateway.Ready$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.voice.gateway.Hello","fields":[{"name":"Companion"}]},{"name":"dev.kord.voice.gateway.Hello$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.voice.gateway.HeartbeatAck","fields":[{"name":"Companion"}]},{"name":"dev.kord.voice.gateway.HeartbeatAck$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.voice.gateway.SessionDescription","fields":[{"name":"Companion"}]},{"name":"dev.kord.voice.gateway.SessionDescription$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.voice.gateway.Speaking","fields":[{"name":"Companion"}]},{"name":"dev.kord.voice.gateway.Speaking$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.voice.gateway.Resumed","fields":[{"name":"Companion"}]},{"name":"dev.kord.voice.gateway.Resumed$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.voice.EncryptionMode","fields":[{"name":"Companion"}]},{"name":"dev.kord.voice.EncryptionMode$Companion","methods":[{"name":"serializer","parameterTypes":[]}]}] \ No newline at end of file +[{"name":"dev.kord.voice.SpeakingFlags","fields":[{"name":"Companion"}]},{"name":"dev.kord.voice.SpeakingFlags$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.voice.gateway.Identify","fields":[{"name":"Companion"}]},{"name":"dev.kord.voice.gateway.Identify$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.voice.gateway.Heartbeat","fields":[{"name":"Companion"}]},{"name":"dev.kord.voice.gateway.Heartbeat$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.voice.gateway.SendSpeaking","fields":[{"name":"Companion"}]},{"name":"dev.kord.voice.gateway.SendSpeaking$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.voice.gateway.SelectProtocol","fields":[{"name":"Companion"}]},{"name":"dev.kord.voice.gateway.SelectProtocol$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.voice.gateway.SelectProtocol$Data","fields":[{"name":"Companion"}]},{"name":"dev.kord.voice.gateway.SelectProtocol$Data$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.voice.gateway.Resume","fields":[{"name":"Companion"}]},{"name":"dev.kord.voice.gateway.Resume$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.voice.gateway.Ready","fields":[{"name":"Companion"}]},{"name":"dev.kord.voice.gateway.Ready$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.voice.gateway.Hello","fields":[{"name":"Companion"}]},{"name":"dev.kord.voice.gateway.Hello$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.voice.gateway.HeartbeatAck","fields":[{"name":"Companion"}]},{"name":"dev.kord.voice.gateway.HeartbeatAck$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.voice.gateway.SessionDescription","fields":[{"name":"Companion"}]},{"name":"dev.kord.voice.gateway.SessionDescription$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.voice.gateway.Speaking","fields":[{"name":"Companion"}]},{"name":"dev.kord.voice.gateway.Speaking$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.voice.gateway.Resumed","fields":[{"name":"Companion"}]},{"name":"dev.kord.voice.gateway.Resumed$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.voice.EncryptionMode","fields":[{"name":"Companion"}]},{"name":"dev.kord.voice.EncryptionMode$Companion","methods":[{"name":"serializer","parameterTypes":[]}]}] \ No newline at end of file From 9b5e1ced150471aaaa0ecdac1acb9dc5bc92dd75 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Sun, 19 Mar 2023 22:19:53 +0100 Subject: [PATCH 007/105] Make cache data classes visible via reflection --- core/build.gradle.kts | 1 + .../META-INF/native-image/reflect-config.json | 2 +- .../GuildApplicationCommandPermissionsData.kt | 3 ++- core/src/main/kotlin/cache/data/StickerData.kt | 6 ++++-- .../src/main/kotlin/dev/kord/core/Main.kt | 16 +--------------- ksp-annotations/src/main/kotlin/GraalVisible.kt | 10 ++++++++++ .../src/main/kotlin/graal/KordGraalProcessor.kt | 8 +++++++- 7 files changed, 26 insertions(+), 20 deletions(-) create mode 100644 ksp-annotations/src/main/kotlin/GraalVisible.kt diff --git a/core/build.gradle.kts b/core/build.gradle.kts index e65161ba483c..44ce9d428116 100644 --- a/core/build.gradle.kts +++ b/core/build.gradle.kts @@ -24,6 +24,7 @@ dependencies { api(libs.kord.cache.api) api(libs.kord.cache.map) + compileOnly(projects.kspAnnotations) ksp(projects.kspProcessors) samplesImplementation(libs.slf4j.simple) diff --git a/core/build/generated/ksp/main/resources/META-INF/native-image/reflect-config.json b/core/build/generated/ksp/main/resources/META-INF/native-image/reflect-config.json index 3ab2b6f0aa30..c4b0e748dc15 100644 --- a/core/build/generated/ksp/main/resources/META-INF/native-image/reflect-config.json +++ b/core/build/generated/ksp/main/resources/META-INF/native-image/reflect-config.json @@ -1 +1 @@ -[{"name":"dev.kord.core.cache.data.ActivityData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ActivityData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ApplicationCommandData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ApplicationCommandData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ApplicationCommandOptionData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ApplicationCommandOptionData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ApplicationCommandGroupData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ApplicationCommandGroupData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ApplicationCommandSubcommandData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ApplicationCommandSubcommandData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ApplicationCommandParameterData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ApplicationCommandParameterData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ApplicationCommandOptionChoiceData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ApplicationCommandOptionChoiceData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ApplicationData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ApplicationData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.PartialApplicationData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.PartialApplicationData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.AttachmentData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.AttachmentData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.AutoModerationRuleData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.AutoModerationRuleData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.AutoModerationRuleTriggerMetadataData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.AutoModerationRuleTriggerMetadataData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.AutoModerationActionData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.AutoModerationActionData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.AutoModerationActionMetadataData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.AutoModerationActionMetadataData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.BanData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.BanData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ChannelData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ChannelData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ThreadMetadataData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ThreadMetadataData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ClientStatusData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ClientStatusData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ComponentData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ComponentData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ChatComponentData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ChatComponentData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.TextInputComponentData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.TextInputComponentData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.EmbedData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.EmbedData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.EmbedFooterData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.EmbedFooterData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.EmbedImageData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.EmbedImageData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.EmbedThumbnailData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.EmbedThumbnailData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.EmbedVideoData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.EmbedVideoData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.EmbedProviderData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.EmbedProviderData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.EmbedAuthorData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.EmbedAuthorData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.EmbedFieldData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.EmbedFieldData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.EmojiData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.EmojiData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.GuildData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.GuildData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.GuildPreviewData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.GuildPreviewData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.GuildScheduledEventData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.GuildScheduledEventData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.GuildWidgetData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.GuildWidgetData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.IntegrationData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.IntegrationData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.IntegrationsAccountData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.IntegrationsAccountData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.InteractionData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.InteractionData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ResolvedObjectsData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ResolvedObjectsData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ApplicationInteractionData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ApplicationInteractionData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.OptionData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.OptionData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.InviteCreateData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.InviteCreateData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.InviteData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.InviteData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.InviteWithMetadataData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.InviteWithMetadataData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.InviteDeleteData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.InviteDeleteData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.MemberData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.MemberData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.MembersChunkData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.MembersChunkData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.MessageData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.MessageData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.MessageInteractionData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.MessageInteractionData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.MessageReferenceData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.MessageReferenceData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.PartialGuildData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.PartialGuildData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.PermissionOverwriteData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.PermissionOverwriteData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.PresenceData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.PresenceData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ReactionData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ReactionData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.RemovedReactionData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.RemovedReactionData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ReactionRemoveEmojiData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ReactionRemoveEmojiData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.RegionData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.RegionData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.RoleData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.RoleData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.RoleTagsData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.RoleTagsData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.SelectOptionData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.SelectOptionData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.StageInstanceData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.StageInstanceData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.StickerData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.StickerData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.StickerItemData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.StickerItemData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.TeamData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.TeamData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.TeamMemberData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.TeamMemberData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.TemplateData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.TemplateData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ThreadMemberData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ThreadMemberData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.UserData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.UserData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.VoiceStateData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.VoiceStateData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.WebhookData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.WebhookData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.WelcomeScreenData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.WelcomeScreenData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.WelcomeScreenChannelData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.WelcomeScreenChannelData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.event.automoderation.data.AutoModerationActionExecutionEventData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.event.automoderation.data.AutoModerationActionExecutionEventData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.event.channel.data.ChannelPinsUpdateEventData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.event.channel.data.ChannelPinsUpdateEventData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.event.channel.data.TypingStartEventData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.event.channel.data.TypingStartEventData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]}] \ No newline at end of file +[{"name":"dev.kord.core.cache.data.ActivityData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ActivityData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ApplicationCommandData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ApplicationCommandData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ApplicationCommandOptionData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ApplicationCommandOptionData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ApplicationCommandGroupData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ApplicationCommandGroupData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ApplicationCommandSubcommandData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ApplicationCommandSubcommandData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ApplicationCommandParameterData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ApplicationCommandParameterData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ApplicationCommandOptionChoiceData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ApplicationCommandOptionChoiceData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ApplicationData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ApplicationData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.PartialApplicationData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.PartialApplicationData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.AttachmentData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.AttachmentData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.AutoModerationRuleData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.AutoModerationRuleData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.AutoModerationRuleTriggerMetadataData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.AutoModerationRuleTriggerMetadataData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.AutoModerationActionData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.AutoModerationActionData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.AutoModerationActionMetadataData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.AutoModerationActionMetadataData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.BanData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.BanData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ChannelData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ChannelData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ThreadMetadataData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ThreadMetadataData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ClientStatusData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ClientStatusData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ComponentData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ComponentData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ChatComponentData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ChatComponentData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.TextInputComponentData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.TextInputComponentData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.EmbedData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.EmbedData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.EmbedFooterData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.EmbedFooterData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.EmbedImageData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.EmbedImageData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.EmbedThumbnailData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.EmbedThumbnailData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.EmbedVideoData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.EmbedVideoData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.EmbedProviderData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.EmbedProviderData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.EmbedAuthorData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.EmbedAuthorData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.EmbedFieldData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.EmbedFieldData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.EmojiData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.EmojiData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.GuildData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.GuildData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.GuildPreviewData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.GuildPreviewData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.GuildScheduledEventData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.GuildScheduledEventData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.GuildWidgetData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.GuildWidgetData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.IntegrationData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.IntegrationData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.IntegrationsAccountData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.IntegrationsAccountData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.InteractionData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.InteractionData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ResolvedObjectsData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ResolvedObjectsData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ApplicationInteractionData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ApplicationInteractionData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.OptionData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.OptionData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.InviteCreateData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.InviteCreateData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.InviteData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.InviteData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.InviteWithMetadataData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.InviteWithMetadataData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.InviteDeleteData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.InviteDeleteData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.MemberData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.MemberData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.MembersChunkData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.MembersChunkData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.MessageData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.MessageData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.MessageInteractionData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.MessageInteractionData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.MessageReferenceData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.MessageReferenceData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.PartialGuildData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.PartialGuildData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.PermissionOverwriteData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.PermissionOverwriteData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.PresenceData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.PresenceData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ReactionData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ReactionData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.RemovedReactionData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.RemovedReactionData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ReactionRemoveEmojiData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ReactionRemoveEmojiData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.RegionData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.RegionData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.RoleData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.RoleData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.RoleTagsData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.RoleTagsData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.SelectOptionData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.SelectOptionData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.StageInstanceData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.StageInstanceData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.StickerData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.StickerData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.StickerItemData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.StickerItemData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.TeamData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.TeamData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.TeamMemberData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.TeamMemberData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.TemplateData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.TemplateData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ThreadMemberData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ThreadMemberData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.UserData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.UserData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.VoiceStateData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.VoiceStateData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.WebhookData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.WebhookData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.WelcomeScreenData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.WelcomeScreenData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.WelcomeScreenChannelData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.WelcomeScreenChannelData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.event.automoderation.data.AutoModerationActionExecutionEventData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.event.automoderation.data.AutoModerationActionExecutionEventData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.event.channel.data.ChannelPinsUpdateEventData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.event.channel.data.ChannelPinsUpdateEventData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.event.channel.data.TypingStartEventData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.event.channel.data.TypingStartEventData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.GuildApplicationCommandPermissionsData"},{"name":"dev.kord.core.cache.data.StickerPackData"}] \ No newline at end of file diff --git a/core/src/main/kotlin/cache/data/GuildApplicationCommandPermissionsData.kt b/core/src/main/kotlin/cache/data/GuildApplicationCommandPermissionsData.kt index ce5496efb3cb..4c5ab4dbf62b 100644 --- a/core/src/main/kotlin/cache/data/GuildApplicationCommandPermissionsData.kt +++ b/core/src/main/kotlin/cache/data/GuildApplicationCommandPermissionsData.kt @@ -2,10 +2,11 @@ package dev.kord.core.cache.data import dev.kord.cache.api.data.DataDescription import dev.kord.cache.api.data.description -import dev.kord.common.annotation.KordPreview import dev.kord.common.entity.DiscordGuildApplicationCommandPermissions import dev.kord.common.entity.Snowflake +import dev.kord.ksp.GraalVisible +@GraalVisible public data class GuildApplicationCommandPermissionsData( val id: Snowflake, val applicationId: Snowflake, diff --git a/core/src/main/kotlin/cache/data/StickerData.kt b/core/src/main/kotlin/cache/data/StickerData.kt index a1882a87ca7c..bf9a4ad614ac 100644 --- a/core/src/main/kotlin/cache/data/StickerData.kt +++ b/core/src/main/kotlin/cache/data/StickerData.kt @@ -4,9 +4,11 @@ import dev.kord.cache.api.data.DataDescription import dev.kord.cache.api.data.description import dev.kord.common.entity.* import dev.kord.common.entity.optional.* +import dev.kord.ksp.GraalVisible import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable +@GraalVisible @Serializable public data class StickerData( val id: Snowflake, @@ -49,7 +51,7 @@ public data class StickerItemData( } } - +@GraalVisible public data class StickerPackData( val id: Snowflake, val stickers: List, @@ -67,4 +69,4 @@ public data class StickerPackData( StickerPackData(id, stickers.map { StickerData.from(it) }, name, skuId, coverStickerId, description, bannerAssetId) } } -} \ No newline at end of file +} diff --git a/graal-example/src/main/kotlin/dev/kord/core/Main.kt b/graal-example/src/main/kotlin/dev/kord/core/Main.kt index 0684c8d532a1..d8d6c85c59b9 100644 --- a/graal-example/src/main/kotlin/dev/kord/core/Main.kt +++ b/graal-example/src/main/kotlin/dev/kord/core/Main.kt @@ -1,23 +1,9 @@ package dev.kord.core -import dev.kord.core.event.message.MessageCreateEvent -import dev.kord.gateway.Intent -import dev.kord.gateway.PrivilegedIntent - suspend fun main(args: Array) { val kord = Kord(args.firstOrNull() ?: error("token required")) { enableShutdownHook = true } - kord.on { - if (message.author?.isBot == true) return@on - if (message.content == "!ping") message.channel.createMessage("pong") - } - - kord.login { - presence { playing("!ping to pong") } - - @OptIn(PrivilegedIntent::class) - intents += Intent.MessageContent - } + kord.login() } diff --git a/ksp-annotations/src/main/kotlin/GraalVisible.kt b/ksp-annotations/src/main/kotlin/GraalVisible.kt new file mode 100644 index 000000000000..0ae49570d845 --- /dev/null +++ b/ksp-annotations/src/main/kotlin/GraalVisible.kt @@ -0,0 +1,10 @@ +package dev.kord.ksp + +/** + * Marks this class as visible via Reflection in Graal. + * + * **This is only needed for types not annotated with [Serializable]** + */ +@Retention(AnnotationRetention.SOURCE) +@Target(AnnotationTarget.CLASS) +annotation class GraalVisible diff --git a/ksp-processors/src/main/kotlin/graal/KordGraalProcessor.kt b/ksp-processors/src/main/kotlin/graal/KordGraalProcessor.kt index d9f74c680c68..acea9235568b 100644 --- a/ksp-processors/src/main/kotlin/graal/KordGraalProcessor.kt +++ b/ksp-processors/src/main/kotlin/graal/KordGraalProcessor.kt @@ -3,6 +3,7 @@ package dev.kord.ksp.graal import com.google.devtools.ksp.processing.* import com.google.devtools.ksp.symbol.KSAnnotated import com.google.devtools.ksp.symbol.KSClassDeclaration +import dev.kord.ksp.GraalVisible import dev.kord.ksp.binaryName import dev.kord.ksp.getSymbolsWithAnnotation import kotlinx.serialization.KSerializer @@ -38,6 +39,11 @@ private class KordGraalProcessor(private val codeGenerator: CodeGenerator, priva .flatMap(::processClass) .toList() + entries += resolver + .getSymbolsWithAnnotation() + .filterIsInstance() + .map { ReflectConfigEntry(name = it.binaryName) } + logger.info("KordEnumProcessor finished processing annotations") return emptyList() // we never have to defer any symbols @@ -45,7 +51,7 @@ private class KordGraalProcessor(private val codeGenerator: CodeGenerator, priva private fun flushEntries() { if (entries.isNotEmpty()) { - val config = ReflectConfig(entries) + val config = ReflectConfig(entries.distinctBy(ReflectConfigEntry::name)) val file = codeGenerator .createNewFile(Dependencies.ALL_FILES, "META-INF.native-image", "reflect-config", "json") file.bufferedWriter().use { it.write(config.encode()) } From 5489305994246a8d6e73f4ff37a076cf28302345 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Sun, 19 Mar 2023 22:21:40 +0100 Subject: [PATCH 008/105] Make gradlew executable --- gradlew | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 gradlew diff --git a/gradlew b/gradlew old mode 100644 new mode 100755 From 5ba9eb90c9a122c53966e919c27be89ef949c586 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Mon, 20 Mar 2023 00:10:27 +0100 Subject: [PATCH 009/105] Initial steps for running tests --- buildSrc/build.gradle.kts | 1 + .../kotlin/kord-internal-module.gradle.kts | 1 + .../src/main/kotlin/kord-module.gradle.kts | 16 +++++++- common/src/test/kotlin/ColorTests.kt | 2 + graal-example/build.gradle.kts | 14 +------ .../META-INF/native-image/reflect-config.json | 20 ++++++++++ .../native-image/resource-config.json | 7 ++++ graal/test-reflect-config.json | 40 +++++++++++++++++++ .../test/kotlin/request/MessageRequests.kt | 2 +- 9 files changed, 88 insertions(+), 15 deletions(-) create mode 100644 graal-example/src/main/resources/META-INF/native-image/resource-config.json create mode 100644 graal/test-reflect-config.json diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index 71fc53572c32..764a19e24ddf 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -8,4 +8,5 @@ repositories { dependencies { implementation(libs.bundles.pluginsForBuildSrc) + implementation("org.graalvm.buildtools.native:org.graalvm.buildtools.native.gradle.plugin:0.9.20") } diff --git a/buildSrc/src/main/kotlin/kord-internal-module.gradle.kts b/buildSrc/src/main/kotlin/kord-internal-module.gradle.kts index b61a5411875d..2a463b0b5021 100644 --- a/buildSrc/src/main/kotlin/kord-internal-module.gradle.kts +++ b/buildSrc/src/main/kotlin/kord-internal-module.gradle.kts @@ -2,6 +2,7 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { org.jetbrains.kotlin.jvm + } repositories { diff --git a/buildSrc/src/main/kotlin/kord-module.gradle.kts b/buildSrc/src/main/kotlin/kord-module.gradle.kts index 7e28e3a3fc2f..a33fb72e05f3 100644 --- a/buildSrc/src/main/kotlin/kord-module.gradle.kts +++ b/buildSrc/src/main/kotlin/kord-module.gradle.kts @@ -1,4 +1,3 @@ -import com.google.devtools.ksp.gradle.KspTask import org.jetbrains.dokka.gradle.AbstractDokkaLeafTask import org.jetbrains.kotlin.gradle.tasks.KotlinCompile import java.net.URL @@ -11,6 +10,7 @@ plugins { org.jetbrains.kotlinx.`binary-compatibility-validator` com.google.devtools.ksp `maven-publish` + org.graalvm.buildtools.native } repositories { @@ -130,6 +130,18 @@ publishing { publications.withType().configureEach { from(components["java"]) artifact(tasks.kotlinSourcesJar) - artifact(dokkaJar) + } +} + +graalvmNative { + binaries { + named("test") { + buildArgs( + """-H:IncludeResources=".*/.*json"""", + """-H:IncludeResources=".*/.*png"""", + """-H:IncludeResources=".*/.*kotlin_builtins"""", + "-H:ReflectionConfigurationFiles=${rootProject.file("graal/test-reflect-config.json").absolutePath}", + ) + } } } diff --git a/common/src/test/kotlin/ColorTests.kt b/common/src/test/kotlin/ColorTests.kt index bff3b9261913..e7b2437072ea 100644 --- a/common/src/test/kotlin/ColorTests.kt +++ b/common/src/test/kotlin/ColorTests.kt @@ -1,5 +1,6 @@ import dev.kord.common.Color import dev.kord.common.kColor +import org.junit.jupiter.api.Disabled import org.junit.jupiter.api.Test import org.junit.jupiter.api.assertThrows import kotlin.test.assertEquals @@ -24,6 +25,7 @@ class ColorTests { assertEquals(0xFFFFFF, white.rgb) } + @Disabled @Test fun `java to kColor conversion`() { val color = java.awt.Color.decode("#DBD0B4").kColor diff --git a/graal-example/build.gradle.kts b/graal-example/build.gradle.kts index 43b6a626fa59..ea87a601e629 100644 --- a/graal-example/build.gradle.kts +++ b/graal-example/build.gradle.kts @@ -2,25 +2,15 @@ plugins { `kord-internal-module` application - alias(libs.plugins.graal) + org.graalvm.buildtools.native } dependencies { implementation(projects.core) implementation(libs.slf4j.simple) + implementation(kotlin("reflect")) } application { mainClass.set("dev.kord.core.MainKt") } - -graalvmNative { - binaries { - named("main") { - javaLauncher.set(javaToolchains.launcherFor { - languageVersion.set(JavaLanguageVersion.of(19)) - vendor.set(JvmVendorSpec.matching("GraalVM Community")) - }) - } - } -} diff --git a/graal-example/src/main/resources/META-INF/native-image/reflect-config.json b/graal-example/src/main/resources/META-INF/native-image/reflect-config.json index 01c05e9d3fde..26e6c4fa4748 100644 --- a/graal-example/src/main/resources/META-INF/native-image/reflect-config.json +++ b/graal-example/src/main/resources/META-INF/native-image/reflect-config.json @@ -13,5 +13,25 @@ { "name": "io.ktor.utils.io.pool.DefaultPool", "allDeclaredFields": true + }, + { + "name": "kotlin.reflect.jvm.internal.ReflectionFactoryImpl", + "allDeclaredConstructors":true + }, + { + "name": "kotlin.KotlinVersion", + "allPublicMethods": true, + "allDeclaredFields":true, + "allDeclaredMethods":true, + "allDeclaredConstructors":true + }, + { + "name": "kotlin.KotlinVersion[]" + }, + { + "name": "kotlin.KotlinVersion$Companion" + }, + { + "name": "kotlin.KotlinVersion$Companion[]" } ] diff --git a/graal-example/src/main/resources/META-INF/native-image/resource-config.json b/graal-example/src/main/resources/META-INF/native-image/resource-config.json new file mode 100644 index 000000000000..c353a2db9b97 --- /dev/null +++ b/graal-example/src/main/resources/META-INF/native-image/resource-config.json @@ -0,0 +1,7 @@ +{ + "resources":[ + {"pattern":"META-INF/.*.kotlin_module$"}, + {"pattern":"META-INF/services/.*"}, + {"pattern":".*.kotlin_builtins"} + ] +} diff --git a/graal/test-reflect-config.json b/graal/test-reflect-config.json new file mode 100644 index 000000000000..59a0fb759995 --- /dev/null +++ b/graal/test-reflect-config.json @@ -0,0 +1,40 @@ +[ + { + "name": "kotlin.internal.jdk8.JDK8PlatformImplementations", + "allPublicMethods": true, + "allDeclaredFields": true, + "allDeclaredMethods": true, + "allDeclaredConstructors": true + }, + { + "name": "io.ktor.network.selector.InterestSuspensionsMap", + "allDeclaredFields": true + }, + { + "name": "io.ktor.utils.io.pool.DefaultPool", + "allDeclaredFields": true + }, + { + "name": "kotlin.reflect.jvm.internal.ReflectionFactoryImpl", + "allDeclaredConstructors":true + }, + { + "name": "kotlin.KotlinVersion", + "allPublicMethods": true, + "allDeclaredFields":true, + "allDeclaredMethods":true, + "allDeclaredConstructors":true + }, + { + "name": "kotlin.KotlinVersion[]" + }, + { + "name": "kotlin.KotlinVersion$Companion" + }, + { + "name": "kotlin.KotlinVersion$Companion[]" + }, + { + "name": "io.mockk.impl.JvmMockKGateway" + } +] diff --git a/rest/src/test/kotlin/request/MessageRequests.kt b/rest/src/test/kotlin/request/MessageRequests.kt index 29ae89a92145..3cc1a4331979 100644 --- a/rest/src/test/kotlin/request/MessageRequests.kt +++ b/rest/src/test/kotlin/request/MessageRequests.kt @@ -56,7 +56,7 @@ class MessageRequests { val channelService = ChannelService(KtorRequestHandler(client = HttpClient(mockEngine), token = "")) - val fileChannel = ClassLoader.getSystemResource("images/kord.png").toURI().toPath().readChannel() + val fileChannel = ClassLoader.getSystemResourceAsStream("images/kord.png")!!.toByteReadChannel() with(fileChannel) { assert(!isClosedForWrite) From 7dd91e0b54d9636a3a8b16a1084378d04dbe08d6 Mon Sep 17 00:00:00 2001 From: Lukellmann Date: Mon, 20 Mar 2023 01:29:31 +0100 Subject: [PATCH 010/105] Better name and error messages for binaryName --- ksp-processors/src/main/kotlin/KSPUtils.kt | 26 +++++++++++++------ .../main/kotlin/graal/KordGraalProcessor.kt | 6 ++--- settings.gradle.kts | 2 +- 3 files changed, 22 insertions(+), 12 deletions(-) diff --git a/ksp-processors/src/main/kotlin/KSPUtils.kt b/ksp-processors/src/main/kotlin/KSPUtils.kt index 9bdfc448f4bc..176a014c0d80 100644 --- a/ksp-processors/src/main/kotlin/KSPUtils.kt +++ b/ksp-processors/src/main/kotlin/KSPUtils.kt @@ -3,6 +3,8 @@ package dev.kord.ksp import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.KSAnnotation import com.google.devtools.ksp.symbol.KSClassDeclaration +import com.google.devtools.ksp.symbol.KSFunctionDeclaration +import com.google.devtools.ksp.symbol.KSPropertyDeclaration import kotlin.reflect.KProperty1 internal inline fun Resolver.getSymbolsWithAnnotation(inDepth: Boolean = false) = @@ -20,12 +22,20 @@ internal class AnnotationArguments private constructor(private val map: Map canonical name / fully qualified name (same for top-level) + null -> this.qualifiedName!!.asString() + + // this is a member class-like declaration -> binary name of immediately enclosing declaration + $ + simple name + is KSClassDeclaration -> parent.jvmBinaryName + '$' + this.simpleName.asString() + + is KSFunctionDeclaration, is KSPropertyDeclaration -> error( + "jvmBinaryName isn't implemented for local/anonymous class-like declarations but $this seems to be one" + ) + else -> error("$this has an unexpected parentDeclaration: $parent") } diff --git a/ksp-processors/src/main/kotlin/graal/KordGraalProcessor.kt b/ksp-processors/src/main/kotlin/graal/KordGraalProcessor.kt index acea9235568b..fb423d5106c0 100644 --- a/ksp-processors/src/main/kotlin/graal/KordGraalProcessor.kt +++ b/ksp-processors/src/main/kotlin/graal/KordGraalProcessor.kt @@ -4,8 +4,8 @@ import com.google.devtools.ksp.processing.* import com.google.devtools.ksp.symbol.KSAnnotated import com.google.devtools.ksp.symbol.KSClassDeclaration import dev.kord.ksp.GraalVisible -import dev.kord.ksp.binaryName import dev.kord.ksp.getSymbolsWithAnnotation +import dev.kord.ksp.jvmBinaryName import kotlinx.serialization.KSerializer import kotlinx.serialization.Serializable @@ -42,7 +42,7 @@ private class KordGraalProcessor(private val codeGenerator: CodeGenerator, priva entries += resolver .getSymbolsWithAnnotation() .filterIsInstance() - .map { ReflectConfigEntry(name = it.binaryName) } + .map { ReflectConfigEntry(name = it.jvmBinaryName) } logger.info("KordEnumProcessor finished processing annotations") @@ -61,7 +61,7 @@ private class KordGraalProcessor(private val codeGenerator: CodeGenerator, priva private fun processClass(clazz: KSClassDeclaration): List { val name = clazz.findCompanionObjectName() - val qualifiedName = clazz.binaryName + val qualifiedName = clazz.jvmBinaryName val companionField = ReflectConfigEntry( name = qualifiedName, fields = listOf(ReflectConfigEntry.Field(name)) diff --git a/settings.gradle.kts b/settings.gradle.kts index be90cb09863f..28e5fada269b 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -9,11 +9,11 @@ include( "common", "core", "gateway", + "graal-example", "ksp-annotations", "ksp-processors", "rest", "voice", - "graal-example" ) enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS") From 0d7113ccf0b84fc1e10743f0ff8a11bc44c91313 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Mon, 20 Mar 2023 11:44:08 +0100 Subject: [PATCH 011/105] Update ksp-processors/src/main/kotlin/graal/ReflectConfig.kt Co-authored-by: Lukellmann <47486203+Lukellmann@users.noreply.github.com> --- ksp-processors/src/main/kotlin/graal/ReflectConfig.kt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/ksp-processors/src/main/kotlin/graal/ReflectConfig.kt b/ksp-processors/src/main/kotlin/graal/ReflectConfig.kt index 5dc4ef5bafeb..9cdafa2eb797 100644 --- a/ksp-processors/src/main/kotlin/graal/ReflectConfig.kt +++ b/ksp-processors/src/main/kotlin/graal/ReflectConfig.kt @@ -36,7 +36,8 @@ data class ReflectConfigEntry( data class QueriedMethod(val name: String) @Serializable - data class Method(val name: String, val parameterTypes: List) { - constructor(name: String) : this(name, emptyList()) - } + data class Method( + val name: String, + @EncodeDefault val parameterTypes: List = emptyList(), + ) } From b73a3a12e53452b7c0bd7ce8c91bf4284c3d46c0 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Mon, 20 Mar 2023 11:46:03 +0100 Subject: [PATCH 012/105] Update gradle/libs.versions.toml Co-authored-by: Lukellmann <47486203+Lukellmann@users.noreply.github.com> --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 08cf3784ea52..80d2109b7d3c 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -23,7 +23,7 @@ dokka = "1.8.10" # https://github.com/Kotlin/dokka kotlinx-atomicfu = "0.20.0" # https://github.com/Kotlin/kotlinx-atomicfu binary-compatibility-validator = "0.13.0" # https://github.com/Kotlin/binary-compatibility-validator buildconfig = "3.1.0" # https://github.com/gmazzo/gradle-buildconfig-plugin -graal = "0.9.20" # https://central.sonatype.com/artifact/org.graalvm.buildtools.native/org.graalvm.buildtools.native.gradle.plugin/0.9.20 +graal = "0.9.20" # https://github.com/graalvm/native-build-tools [libraries] From 63e1069ad6a4d7859adc0618a194d1ea87a52874 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Mon, 20 Mar 2023 11:51:33 +0100 Subject: [PATCH 013/105] Improve ReflectConfig - Use Method type for methods and queriedMethod - Add Condition - Add Import for @EncodeDefault --- .../src/main/kotlin/graal/ReflectConfig.kt | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/ksp-processors/src/main/kotlin/graal/ReflectConfig.kt b/ksp-processors/src/main/kotlin/graal/ReflectConfig.kt index 9cdafa2eb797..17c3de91c609 100644 --- a/ksp-processors/src/main/kotlin/graal/ReflectConfig.kt +++ b/ksp-processors/src/main/kotlin/graal/ReflectConfig.kt @@ -1,5 +1,9 @@ +@file:OptIn(ExperimentalSerializationApi::class) + package dev.kord.ksp.graal +import kotlinx.serialization.EncodeDefault +import kotlinx.serialization.ExperimentalSerializationApi import kotlinx.serialization.Serializable import kotlinx.serialization.encodeToString import kotlinx.serialization.json.Json @@ -11,7 +15,7 @@ private val json = Json { fun ReflectConfig.encode() = json.encodeToString(this) -// Reference: https://www.graalvm.org/22.0/reference-manual/native-image/Reflection/#manual-configuration +// Reference: https://www.graalvm.org/latest/reference-manual/native-image/metadata/#specifying-reflection-metadata-in-json @Serializable @JvmInline value class ReflectConfig(val entries: List) : List by entries @@ -19,6 +23,7 @@ value class ReflectConfig(val entries: List) : List = emptyList(), val methods: List = emptyList(), - val queriedMethods: List = emptyList() + val queriedMethods: List = emptyList() ) { @Serializable data class Field(val name: String) - @Serializable - data class QueriedMethod(val name: String) - @Serializable data class Method( val name: String, @EncodeDefault val parameterTypes: List = emptyList(), ) + + @Serializable + data class Condition(val typeReachable: String) } From ffc4d5cf81ec8834157d3c1add5d099cf4c38d87 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Mon, 20 Mar 2023 11:54:38 +0100 Subject: [PATCH 014/105] Cleanup gradle files --- buildSrc/build.gradle.kts | 1 - buildSrc/src/main/kotlin/kord-internal-module.gradle.kts | 1 - buildSrc/src/main/kotlin/kord-module.gradle.kts | 1 + gradle/libs.versions.toml | 4 ++-- 4 files changed, 3 insertions(+), 4 deletions(-) diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index 764a19e24ddf..71fc53572c32 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -8,5 +8,4 @@ repositories { dependencies { implementation(libs.bundles.pluginsForBuildSrc) - implementation("org.graalvm.buildtools.native:org.graalvm.buildtools.native.gradle.plugin:0.9.20") } diff --git a/buildSrc/src/main/kotlin/kord-internal-module.gradle.kts b/buildSrc/src/main/kotlin/kord-internal-module.gradle.kts index 2a463b0b5021..b61a5411875d 100644 --- a/buildSrc/src/main/kotlin/kord-internal-module.gradle.kts +++ b/buildSrc/src/main/kotlin/kord-internal-module.gradle.kts @@ -2,7 +2,6 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { org.jetbrains.kotlin.jvm - } repositories { diff --git a/buildSrc/src/main/kotlin/kord-module.gradle.kts b/buildSrc/src/main/kotlin/kord-module.gradle.kts index a33fb72e05f3..7dae62e4c384 100644 --- a/buildSrc/src/main/kotlin/kord-module.gradle.kts +++ b/buildSrc/src/main/kotlin/kord-module.gradle.kts @@ -130,6 +130,7 @@ publishing { publications.withType().configureEach { from(components["java"]) artifact(tasks.kotlinSourcesJar) + artifact(dokkaJar) } } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 80d2109b7d3c..65cb89618d39 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -70,7 +70,7 @@ dokka-plugin = { module = "org.jetbrains.dokka:dokka-gradle-plugin", version.ref atomicfu-plugin = { module = "org.jetbrains.kotlinx:atomicfu-gradle-plugin", version.ref = "kotlinx-atomicfu" } binary-compatibility-validator-plugin = { module = "org.jetbrains.kotlinx:binary-compatibility-validator", version.ref = "binary-compatibility-validator" } ksp-plugin = { module = "com.google.devtools.ksp:symbol-processing-gradle-plugin", version.ref = "ksp" } - +graal-plugin = { module = "org.graalvm.buildtools.native:org.graalvm.buildtools.native.gradle.plugin", version.ref = "graal" } [bundles] @@ -86,10 +86,10 @@ pluginsForBuildSrc = [ "atomicfu-plugin", "binary-compatibility-validator-plugin", "ksp-plugin", + "graal-plugin" ] [plugins] buildconfig = { id = "com.github.gmazzo.buildconfig", version.ref = "buildconfig" } -graal = { id = "org.graalvm.buildtools.native", version.ref = "graal" } From 08afaf14a53f4bad0c6aa5f28d51cb948c072f2b Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Mon, 20 Mar 2023 12:08:57 +0100 Subject: [PATCH 015/105] Enable color test again --- common/src/test/kotlin/ColorTests.kt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/common/src/test/kotlin/ColorTests.kt b/common/src/test/kotlin/ColorTests.kt index e7b2437072ea..a8526ecdcf29 100644 --- a/common/src/test/kotlin/ColorTests.kt +++ b/common/src/test/kotlin/ColorTests.kt @@ -25,9 +25,12 @@ class ColorTests { assertEquals(0xFFFFFF, white.rgb) } - @Disabled @Test fun `java to kColor conversion`() { + // Currently java.awt.Color doesn't work on Graal native images + // See: https://github.com/oracle/graal/issues/3084 + if(!System.getProperty("org.graalvm.nativeimage.imagecode").isNullOrBlank()) return + val color = java.awt.Color.decode("#DBD0B4").kColor assertEquals(219, color.red) From 2e464eafa26b755828d463bbb8bc1ce713d6d552 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Mon, 20 Mar 2023 12:09:13 +0100 Subject: [PATCH 016/105] Cleanup reflect-config.json --- graal/test-reflect-config.json | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/graal/test-reflect-config.json b/graal/test-reflect-config.json index 59a0fb759995..df810f129732 100644 --- a/graal/test-reflect-config.json +++ b/graal/test-reflect-config.json @@ -16,14 +16,14 @@ }, { "name": "kotlin.reflect.jvm.internal.ReflectionFactoryImpl", - "allDeclaredConstructors":true + "allDeclaredConstructors": true }, { "name": "kotlin.KotlinVersion", "allPublicMethods": true, - "allDeclaredFields":true, - "allDeclaredMethods":true, - "allDeclaredConstructors":true + "allDeclaredFields": true, + "allDeclaredMethods": true, + "allDeclaredConstructors": true }, { "name": "kotlin.KotlinVersion[]" @@ -33,8 +33,5 @@ }, { "name": "kotlin.KotlinVersion$Companion[]" - }, - { - "name": "io.mockk.impl.JvmMockKGateway" } ] From f8c6e014c7940a8d8fdff15718e8f0d9d0b930c6 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Mon, 20 Mar 2023 12:12:38 +0100 Subject: [PATCH 017/105] Remove @GraalVisible from StickerData --- core/src/main/kotlin/cache/data/StickerData.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/core/src/main/kotlin/cache/data/StickerData.kt b/core/src/main/kotlin/cache/data/StickerData.kt index bf9a4ad614ac..51b4d045a885 100644 --- a/core/src/main/kotlin/cache/data/StickerData.kt +++ b/core/src/main/kotlin/cache/data/StickerData.kt @@ -8,7 +8,6 @@ import dev.kord.ksp.GraalVisible import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable -@GraalVisible @Serializable public data class StickerData( val id: Snowflake, From da19d34ee49797e53aad5041c9984dee54c6e75f Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Mon, 20 Mar 2023 12:22:23 +0100 Subject: [PATCH 018/105] Use new loaction for reflect-config.json --- buildSrc/src/main/kotlin/kord-module.gradle.kts | 4 ++++ .../kord/kord-common}/reflect-config.json | 0 .../{ => dev/kord/kord-core}/reflect-config.json | 0 .../kord/kord-gateway}/reflect-config.json | 0 .../src/main/kotlin/graal/KordGraalProcessor.kt | 15 ++++++++++++--- .../{ => dev/kord/kord-voice}/reflect-config.json | 0 6 files changed, 16 insertions(+), 3 deletions(-) rename common/build/generated/ksp/main/resources/META-INF/native-image/{ => dev/kord/kord-common}/reflect-config.json (100%) rename core/build/generated/ksp/main/resources/META-INF/native-image/{ => dev/kord/kord-core}/reflect-config.json (100%) rename gateway/build/generated/ksp/main/resources/META-INF/native-image/{ => dev/kord/kord-gateway}/reflect-config.json (100%) rename voice/build/generated/ksp/main/resources/META-INF/native-image/{ => dev/kord/kord-voice}/reflect-config.json (100%) diff --git a/buildSrc/src/main/kotlin/kord-module.gradle.kts b/buildSrc/src/main/kotlin/kord-module.gradle.kts index 7dae62e4c384..28616909da24 100644 --- a/buildSrc/src/main/kotlin/kord-module.gradle.kts +++ b/buildSrc/src/main/kotlin/kord-module.gradle.kts @@ -119,6 +119,10 @@ tasks { } } +ksp { + arg("project", project.name) +} + val dokkaJar by tasks.registering(Jar::class) { group = JavaBasePlugin.DOCUMENTATION_GROUP description = "Assembles Kotlin docs with Dokka" diff --git a/common/build/generated/ksp/main/resources/META-INF/native-image/reflect-config.json b/common/build/generated/ksp/main/resources/META-INF/native-image/dev/kord/kord-common/reflect-config.json similarity index 100% rename from common/build/generated/ksp/main/resources/META-INF/native-image/reflect-config.json rename to common/build/generated/ksp/main/resources/META-INF/native-image/dev/kord/kord-common/reflect-config.json diff --git a/core/build/generated/ksp/main/resources/META-INF/native-image/reflect-config.json b/core/build/generated/ksp/main/resources/META-INF/native-image/dev/kord/kord-core/reflect-config.json similarity index 100% rename from core/build/generated/ksp/main/resources/META-INF/native-image/reflect-config.json rename to core/build/generated/ksp/main/resources/META-INF/native-image/dev/kord/kord-core/reflect-config.json diff --git a/gateway/build/generated/ksp/main/resources/META-INF/native-image/reflect-config.json b/gateway/build/generated/ksp/main/resources/META-INF/native-image/dev/kord/kord-gateway/reflect-config.json similarity index 100% rename from gateway/build/generated/ksp/main/resources/META-INF/native-image/reflect-config.json rename to gateway/build/generated/ksp/main/resources/META-INF/native-image/dev/kord/kord-gateway/reflect-config.json diff --git a/ksp-processors/src/main/kotlin/graal/KordGraalProcessor.kt b/ksp-processors/src/main/kotlin/graal/KordGraalProcessor.kt index fb423d5106c0..a3b7198d1151 100644 --- a/ksp-processors/src/main/kotlin/graal/KordGraalProcessor.kt +++ b/ksp-processors/src/main/kotlin/graal/KordGraalProcessor.kt @@ -12,14 +12,18 @@ import kotlinx.serialization.Serializable class KordGraalProcessorProvider : SymbolProcessorProvider { override fun create(environment: SymbolProcessorEnvironment): SymbolProcessor { return KordGraalProcessor( - environment.codeGenerator, environment.logger + environment.codeGenerator, environment.logger, environment.options["project"]!! ) } } private val entries = mutableListOf() -private class KordGraalProcessor(private val codeGenerator: CodeGenerator, private val logger: KSPLogger) : +private class KordGraalProcessor( + private val codeGenerator: CodeGenerator, + private val logger: KSPLogger, + private val project: String +) : SymbolProcessor { override fun finish() { flushEntries() @@ -53,7 +57,12 @@ private class KordGraalProcessor(private val codeGenerator: CodeGenerator, priva if (entries.isNotEmpty()) { val config = ReflectConfig(entries.distinctBy(ReflectConfigEntry::name)) val file = codeGenerator - .createNewFile(Dependencies.ALL_FILES, "META-INF.native-image", "reflect-config", "json") + .createNewFile( + Dependencies.ALL_FILES, + "META-INF.native-image/dev.kord/kord-${project}", + "reflect-config", + "json" + ) file.bufferedWriter().use { it.write(config.encode()) } } } diff --git a/voice/build/generated/ksp/main/resources/META-INF/native-image/reflect-config.json b/voice/build/generated/ksp/main/resources/META-INF/native-image/dev/kord/kord-voice/reflect-config.json similarity index 100% rename from voice/build/generated/ksp/main/resources/META-INF/native-image/reflect-config.json rename to voice/build/generated/ksp/main/resources/META-INF/native-image/dev/kord/kord-voice/reflect-config.json From 2f7d9850a2620bdddcb816a2234ecdbf9207595d Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Mon, 20 Mar 2023 13:04:18 +0100 Subject: [PATCH 019/105] Pretty-print reflect-config.json --- .../dev/kord/kord-common/reflect-config.json | 3249 ++++++++++++++++- .../dev/kord/kord-core/reflect-config.json | 1341 ++++++- .../dev/kord/kord-gateway/reflect-config.json | 417 ++- graal/test-reflect-config.json | 7 + .../src/main/kotlin/graal/ReflectConfig.kt | 1 + .../dev/kord/kord-voice/reflect-config.json | 255 +- 6 files changed, 5266 insertions(+), 4 deletions(-) diff --git a/common/build/generated/ksp/main/resources/META-INF/native-image/dev/kord/kord-common/reflect-config.json b/common/build/generated/ksp/main/resources/META-INF/native-image/dev/kord/kord-common/reflect-config.json index 790c0697f3f0..fb36ed810929 100644 --- a/common/build/generated/ksp/main/resources/META-INF/native-image/dev/kord/kord-common/reflect-config.json +++ b/common/build/generated/ksp/main/resources/META-INF/native-image/dev/kord/kord-common/reflect-config.json @@ -1 +1,3248 @@ -[{"name":"dev.kord.common.Color","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.Color$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.DiscordBitSet","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.DiscordBitSet$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.Locale","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.Locale$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordAuditLog","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordAuditLog$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordAuditLogEntry","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordAuditLogEntry$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.AuditLogEntryOptionalInfo","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.AuditLogEntryOptionalInfo$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.AuditLogChange","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.AuditLogChange$Companion","methods":[{"name":"serializer","parameterTypes":["kotlinx.serialization.KSerializer"]}]},{"name":"dev.kord.common.entity.AuditLogChangeKey","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.AuditLogChangeKey$Companion","methods":[{"name":"serializer","parameterTypes":["kotlinx.serialization.KSerializer"]}]},{"name":"dev.kord.common.entity.DiscordAutoModerationRule","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordAutoModerationRule$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordAutoModerationRuleTriggerMetadata","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordAutoModerationRuleTriggerMetadata$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordAutoModerationAction","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordAutoModerationAction$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordAutoModerationActionMetadata","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordAutoModerationActionMetadata$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordPinsUpdateData","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordPinsUpdateData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordTyping","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordTyping$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordBotActivity","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordBotActivity$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordActivity","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordActivity$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.ActivityFlags","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.ActivityFlags$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordActivityTimestamps","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordActivityTimestamps$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordActivityEmoji","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordActivityEmoji$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordActivityParty","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordActivityParty$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordActivityPartySize","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordActivityPartySize$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordActivityAssets","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordActivityAssets$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordActivitySecrets","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordActivitySecrets$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.ActivityType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.ActivityType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordApplication","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordApplication$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordPartialApplication","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordPartialApplication$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.ApplicationFlags","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.ApplicationFlags$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.InstallParams","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.InstallParams$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordChannel","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordChannel$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.Overwrite","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.Overwrite$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordThreadMetadata","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordThreadMetadata$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.ArchiveDuration","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.ArchiveDuration$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordComponent","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordComponent$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordChatComponent","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordChatComponent$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordTextInputComponent","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordTextInputComponent$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordConnection","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordConnection$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordEmoji","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordEmoji$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordUpdatedEmojis","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordUpdatedEmojis$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordPartialEmoji","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordPartialEmoji$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordUnavailableGuild","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordUnavailableGuild$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordGuild","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordGuild$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordPartialGuild","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordPartialGuild$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.SystemChannelFlags","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.SystemChannelFlags$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordGuildBan","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordGuildBan$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordGuildIntegrations","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordGuildIntegrations$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordGuildIntegrationsDeleted","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordGuildIntegrationsDeleted$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordIntegrationAccount","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordIntegrationAccount$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordVoiceServerUpdateData","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordVoiceServerUpdateData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordWebhooksUpdateData","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordWebhooksUpdateData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordVoiceState","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordVoiceState$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordVoiceRegion","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordVoiceRegion$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordWelcomeScreenChannel","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordWelcomeScreenChannel$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordWelcomeScreen","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordWelcomeScreen$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordGuildPreview","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordGuildPreview$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordGuildScheduledEvent","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordGuildScheduledEvent$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.GuildScheduledEventEntityMetadata","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.GuildScheduledEventEntityMetadata$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordGuildWidget","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordGuildWidget$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordIntegration","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordIntegration$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordPartialIntegration","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordPartialIntegration$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.IntegrationApplication","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.IntegrationApplication$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordIntegrationsAccount","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordIntegrationsAccount$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordInvite","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordInvite$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordInviteWithMetadata","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordInviteWithMetadata$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordPartialInvite","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordPartialInvite$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordMessage","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordMessage$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordMessageSticker","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordMessageSticker$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordStickerPack","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordStickerPack$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordStickerItem","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordStickerItem$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordPartialMessage","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordPartialMessage$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordMessageReference","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordMessageReference$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordMentionedChannel","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordMentionedChannel$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.MessageFlags","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.MessageFlags$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordAttachment","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordAttachment$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordEmbed","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordEmbed$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordEmbed$Footer","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordEmbed$Footer$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordEmbed$Image","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordEmbed$Image$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordEmbed$Thumbnail","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordEmbed$Thumbnail$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordEmbed$Video","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordEmbed$Video$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordEmbed$Provider","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordEmbed$Provider$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordEmbed$Author","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordEmbed$Author$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordEmbed$Field","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordEmbed$Field$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.Reaction","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.Reaction$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.MessageActivity","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.MessageActivity$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.MessageApplication","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.MessageApplication$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DeletedMessage","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DeletedMessage$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.BulkDeleteData","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.BulkDeleteData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.MessageReactionAddData","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.MessageReactionAddData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.MessageReactionRemoveData","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.MessageReactionRemoveData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.AllRemovedMessageReactions","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.AllRemovedMessageReactions$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.AllowedMentions","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.AllowedMentions$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordMessageInteraction","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordMessageInteraction$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.RoleSubscription","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.RoleSubscription$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordNull","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordNull$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordRole","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordRole$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordRoleTags","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordRoleTags$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordPartialRole","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordPartialRole$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordAuditLogRoleChange","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordAuditLogRoleChange$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordGuildRole","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordGuildRole$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordDeletedGuildRole","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordDeletedGuildRole$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordSelectOption","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordSelectOption$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordShard","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordShard$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordStageInstance","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordStageInstance$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordTemplate","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordTemplate$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordUser","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordUser$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordOptionallyMemberUser","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordOptionallyMemberUser$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.UserFlags","fields":[{"name":"UserFlagsSerializer"}]},{"name":"dev.kord.common.entity.UserFlags$UserFlagsSerializer","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordWebhook","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordWebhook$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordApplicationCommand","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordApplicationCommand$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.ApplicationCommandOption","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.ApplicationCommandOption$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.Choice","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.Choice$Companion","methods":[{"name":"serializer","parameterTypes":["kotlinx.serialization.KSerializer"]}]},{"name":"dev.kord.common.entity.ResolvedObjects","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.ResolvedObjects$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordInteraction","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordInteraction$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.InteractionCallbackData","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.InteractionCallbackData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.Option","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.Option$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.SubCommand","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.SubCommand$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.CommandArgument","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.CommandArgument$Companion","methods":[{"name":"serializer","parameterTypes":["kotlinx.serialization.KSerializer"]}]},{"name":"dev.kord.common.entity.DiscordGuildApplicationCommandPermissions","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordGuildApplicationCommandPermissions$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordGuildApplicationCommandPermission","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordGuildApplicationCommandPermission$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordGuildApplicationCommandPermission$Type","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordGuildApplicationCommandPermission$Type$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordAutoComplete","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordAutoComplete$Companion","methods":[{"name":"serializer","parameterTypes":["kotlinx.serialization.KSerializer"]}]},{"name":"dev.kord.common.entity.DiscordModal","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordModal$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordGuildMember","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordGuildMember$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordInteractionGuildMember","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordInteractionGuildMember$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordAddedGuildMember","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordAddedGuildMember$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordRemovedGuildMember","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordRemovedGuildMember$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordUpdatedGuildMember","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordUpdatedGuildMember$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordThreadMember","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordThreadMember$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.GuildMemberFlags","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.GuildMemberFlags$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.GuildMemberFlag","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.GuildMemberFlag$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.Permissions","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.Permissions$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordPresenceUpdate","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordPresenceUpdate$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordPresenceUser","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordPresenceUser$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordClientStatus","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordClientStatus$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.Snowflake","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.Snowflake$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordTeam","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordTeam$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordTeamMember","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordTeamMember$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.optional.Optional","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.optional.Optional$Companion","methods":[{"name":"serializer","parameterTypes":["kotlinx.serialization.KSerializer"]}]},{"name":"dev.kord.common.entity.optional.OptionalBoolean","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.optional.OptionalBoolean$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.optional.OptionalInt","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.optional.OptionalInt$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.optional.OptionalLong","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.optional.OptionalLong$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.optional.OptionalSnowflake","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.optional.OptionalSnowflake$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.AllowedMentionType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.AllowedMentionType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.ApplicationCommandOptionType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.ApplicationCommandOptionType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.ApplicationCommandPermissionType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.ApplicationCommandPermissionType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.ApplicationCommandType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.ApplicationCommandType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.AuditLogEvent","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.AuditLogEvent$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.AutoModerationActionType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.AutoModerationActionType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.AutoModerationRuleEventType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.AutoModerationRuleEventType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.AutoModerationRuleKeywordPresetType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.AutoModerationRuleKeywordPresetType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.AutoModerationRuleTriggerType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.AutoModerationRuleTriggerType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.ButtonStyle","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.ButtonStyle$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.ChannelType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.ChannelType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.ComponentType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.ComponentType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DefaultMessageNotificationLevel","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DefaultMessageNotificationLevel$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.DiscordConnectionVisibility","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.DiscordConnectionVisibility$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.EmbedType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.EmbedType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.ExplicitContentFilter","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.ExplicitContentFilter$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.GuildFeature","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.GuildFeature$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.GuildScheduledEventPrivacyLevel","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.GuildScheduledEventPrivacyLevel$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.GuildScheduledEventStatus","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.GuildScheduledEventStatus$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.IntegrationExpireBehavior","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.IntegrationExpireBehavior$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.InteractionResponseType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.InteractionResponseType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.InteractionType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.InteractionType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.InviteTargetType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.InviteTargetType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.MessageActivityType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.MessageActivityType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.MessageStickerType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.MessageStickerType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.MessageType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.MessageType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.MFALevel","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.MFALevel$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.NsfwLevel","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.NsfwLevel$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.OverwriteType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.OverwriteType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.PremiumTier","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.PremiumTier$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.PresenceStatus","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.PresenceStatus$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.ScheduledEntityType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.ScheduledEntityType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.StageInstancePrivacyLevel","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.StageInstancePrivacyLevel$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.TeamMembershipState","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.TeamMembershipState$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.TextInputStyle","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.TextInputStyle$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.UserPremium","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.UserPremium$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.VerificationLevel","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.VerificationLevel$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.VideoQualityMode","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.VideoQualityMode$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.common.entity.WebhookType","fields":[{"name":"Companion"}]},{"name":"dev.kord.common.entity.WebhookType$Companion","methods":[{"name":"serializer","parameterTypes":[]}]}] \ No newline at end of file +[ + { + "name": "dev.kord.common.Color", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.Color$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.DiscordBitSet", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.DiscordBitSet$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.Locale", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.Locale$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAuditLog", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAuditLog$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAuditLogEntry", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAuditLogEntry$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.AuditLogEntryOptionalInfo", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.AuditLogEntryOptionalInfo$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.AuditLogChange", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.AuditLogChange$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + "kotlinx.serialization.KSerializer" + ] + } + ] + }, + { + "name": "dev.kord.common.entity.AuditLogChangeKey", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.AuditLogChangeKey$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + "kotlinx.serialization.KSerializer" + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAutoModerationRule", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAutoModerationRule$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAutoModerationRuleTriggerMetadata", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAutoModerationRuleTriggerMetadata$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAutoModerationAction", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAutoModerationAction$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAutoModerationActionMetadata", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAutoModerationActionMetadata$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPinsUpdateData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPinsUpdateData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordTyping", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordTyping$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordBotActivity", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordBotActivity$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordActivity", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordActivity$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.ActivityFlags", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.ActivityFlags$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordActivityTimestamps", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordActivityTimestamps$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordActivityEmoji", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordActivityEmoji$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordActivityParty", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordActivityParty$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordActivityPartySize", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordActivityPartySize$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordActivityAssets", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordActivityAssets$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordActivitySecrets", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordActivitySecrets$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.ActivityType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.ActivityType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordApplication", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordApplication$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPartialApplication", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPartialApplication$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.ApplicationFlags", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.ApplicationFlags$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.InstallParams", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.InstallParams$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordChannel", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordChannel$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.Overwrite", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.Overwrite$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordThreadMetadata", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordThreadMetadata$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.ArchiveDuration", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.ArchiveDuration$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordComponent", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordComponent$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordChatComponent", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordChatComponent$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordTextInputComponent", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordTextInputComponent$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordConnection", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordConnection$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordEmoji", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordEmoji$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordUpdatedEmojis", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordUpdatedEmojis$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPartialEmoji", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPartialEmoji$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordUnavailableGuild", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordUnavailableGuild$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuild", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuild$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPartialGuild", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPartialGuild$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.SystemChannelFlags", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.SystemChannelFlags$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildBan", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildBan$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildIntegrations", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildIntegrations$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildIntegrationsDeleted", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildIntegrationsDeleted$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordIntegrationAccount", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordIntegrationAccount$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordVoiceServerUpdateData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordVoiceServerUpdateData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordWebhooksUpdateData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordWebhooksUpdateData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordVoiceState", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordVoiceState$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordVoiceRegion", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordVoiceRegion$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordWelcomeScreenChannel", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordWelcomeScreenChannel$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordWelcomeScreen", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordWelcomeScreen$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildPreview", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildPreview$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildScheduledEvent", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildScheduledEvent$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.GuildScheduledEventEntityMetadata", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.GuildScheduledEventEntityMetadata$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildWidget", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildWidget$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordIntegration", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordIntegration$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPartialIntegration", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPartialIntegration$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.IntegrationApplication", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.IntegrationApplication$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordIntegrationsAccount", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordIntegrationsAccount$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordInvite", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordInvite$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordInviteWithMetadata", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordInviteWithMetadata$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPartialInvite", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPartialInvite$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordMessage", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordMessage$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordMessageSticker", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordMessageSticker$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordStickerPack", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordStickerPack$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordStickerItem", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordStickerItem$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPartialMessage", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPartialMessage$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordMessageReference", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordMessageReference$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordMentionedChannel", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordMentionedChannel$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.MessageFlags", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.MessageFlags$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAttachment", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAttachment$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordEmbed", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordEmbed$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordEmbed$Footer", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordEmbed$Footer$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordEmbed$Image", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordEmbed$Image$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordEmbed$Thumbnail", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordEmbed$Thumbnail$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordEmbed$Video", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordEmbed$Video$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordEmbed$Provider", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordEmbed$Provider$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordEmbed$Author", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordEmbed$Author$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordEmbed$Field", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordEmbed$Field$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.Reaction", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.Reaction$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.MessageActivity", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.MessageActivity$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.MessageApplication", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.MessageApplication$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DeletedMessage", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DeletedMessage$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.BulkDeleteData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.BulkDeleteData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.MessageReactionAddData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.MessageReactionAddData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.MessageReactionRemoveData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.MessageReactionRemoveData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.AllRemovedMessageReactions", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.AllRemovedMessageReactions$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.AllowedMentions", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.AllowedMentions$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordMessageInteraction", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordMessageInteraction$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.RoleSubscription", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.RoleSubscription$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordNull", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordNull$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordRole", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordRole$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordRoleTags", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordRoleTags$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPartialRole", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPartialRole$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAuditLogRoleChange", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAuditLogRoleChange$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildRole", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildRole$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordDeletedGuildRole", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordDeletedGuildRole$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordSelectOption", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordSelectOption$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordShard", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordShard$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordStageInstance", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordStageInstance$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordTemplate", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordTemplate$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordUser", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordUser$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordOptionallyMemberUser", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordOptionallyMemberUser$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.UserFlags", + "fields": [ + { + "name": "UserFlagsSerializer" + } + ] + }, + { + "name": "dev.kord.common.entity.UserFlags$UserFlagsSerializer", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordWebhook", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordWebhook$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordApplicationCommand", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordApplicationCommand$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.ApplicationCommandOption", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.ApplicationCommandOption$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.Choice", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.Choice$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + "kotlinx.serialization.KSerializer" + ] + } + ] + }, + { + "name": "dev.kord.common.entity.ResolvedObjects", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.ResolvedObjects$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordInteraction", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordInteraction$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.InteractionCallbackData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.InteractionCallbackData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.Option", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.Option$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.SubCommand", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.SubCommand$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.CommandArgument", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.CommandArgument$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + "kotlinx.serialization.KSerializer" + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildApplicationCommandPermissions", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildApplicationCommandPermissions$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildApplicationCommandPermission", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildApplicationCommandPermission$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildApplicationCommandPermission$Type", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildApplicationCommandPermission$Type$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAutoComplete", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAutoComplete$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + "kotlinx.serialization.KSerializer" + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordModal", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordModal$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildMember", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildMember$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordInteractionGuildMember", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordInteractionGuildMember$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAddedGuildMember", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAddedGuildMember$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordRemovedGuildMember", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordRemovedGuildMember$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordUpdatedGuildMember", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordUpdatedGuildMember$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordThreadMember", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordThreadMember$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.GuildMemberFlags", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.GuildMemberFlags$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.GuildMemberFlag", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.GuildMemberFlag$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.Permissions", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.Permissions$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPresenceUpdate", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPresenceUpdate$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPresenceUser", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPresenceUser$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordClientStatus", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordClientStatus$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.Snowflake", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.Snowflake$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordTeam", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordTeam$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordTeamMember", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordTeamMember$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.optional.Optional", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.optional.Optional$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + "kotlinx.serialization.KSerializer" + ] + } + ] + }, + { + "name": "dev.kord.common.entity.optional.OptionalBoolean", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.optional.OptionalBoolean$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.optional.OptionalInt", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.optional.OptionalInt$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.optional.OptionalLong", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.optional.OptionalLong$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.optional.OptionalSnowflake", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.optional.OptionalSnowflake$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.AllowedMentionType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.AllowedMentionType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.ApplicationCommandOptionType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.ApplicationCommandOptionType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.ApplicationCommandPermissionType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.ApplicationCommandPermissionType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.ApplicationCommandType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.ApplicationCommandType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.AuditLogEvent", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.AuditLogEvent$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.AutoModerationActionType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.AutoModerationActionType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.AutoModerationRuleEventType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.AutoModerationRuleEventType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.AutoModerationRuleKeywordPresetType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.AutoModerationRuleKeywordPresetType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.AutoModerationRuleTriggerType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.AutoModerationRuleTriggerType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.ButtonStyle", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.ButtonStyle$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.ChannelType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.ChannelType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.ComponentType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.ComponentType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DefaultMessageNotificationLevel", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DefaultMessageNotificationLevel$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordConnectionVisibility", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordConnectionVisibility$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.EmbedType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.EmbedType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.ExplicitContentFilter", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.ExplicitContentFilter$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.GuildFeature", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.GuildFeature$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.GuildScheduledEventPrivacyLevel", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.GuildScheduledEventPrivacyLevel$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.GuildScheduledEventStatus", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.GuildScheduledEventStatus$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.IntegrationExpireBehavior", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.IntegrationExpireBehavior$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.InteractionResponseType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.InteractionResponseType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.InteractionType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.InteractionType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.InviteTargetType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.InviteTargetType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.MessageActivityType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.MessageActivityType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.MessageStickerType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.MessageStickerType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.MessageType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.MessageType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.MFALevel", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.MFALevel$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.NsfwLevel", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.NsfwLevel$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.OverwriteType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.OverwriteType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.PremiumTier", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.PremiumTier$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.PresenceStatus", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.PresenceStatus$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.ScheduledEntityType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.ScheduledEntityType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.StageInstancePrivacyLevel", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.StageInstancePrivacyLevel$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.TeamMembershipState", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.TeamMembershipState$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.TextInputStyle", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.TextInputStyle$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.UserPremium", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.UserPremium$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.VerificationLevel", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.VerificationLevel$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.VideoQualityMode", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.VideoQualityMode$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.WebhookType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.WebhookType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + } +] \ No newline at end of file diff --git a/core/build/generated/ksp/main/resources/META-INF/native-image/dev/kord/kord-core/reflect-config.json b/core/build/generated/ksp/main/resources/META-INF/native-image/dev/kord/kord-core/reflect-config.json index c4b0e748dc15..3e84d74d71c1 100644 --- a/core/build/generated/ksp/main/resources/META-INF/native-image/dev/kord/kord-core/reflect-config.json +++ b/core/build/generated/ksp/main/resources/META-INF/native-image/dev/kord/kord-core/reflect-config.json @@ -1 +1,1340 @@ -[{"name":"dev.kord.core.cache.data.ActivityData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ActivityData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ApplicationCommandData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ApplicationCommandData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ApplicationCommandOptionData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ApplicationCommandOptionData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ApplicationCommandGroupData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ApplicationCommandGroupData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ApplicationCommandSubcommandData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ApplicationCommandSubcommandData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ApplicationCommandParameterData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ApplicationCommandParameterData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ApplicationCommandOptionChoiceData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ApplicationCommandOptionChoiceData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ApplicationData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ApplicationData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.PartialApplicationData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.PartialApplicationData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.AttachmentData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.AttachmentData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.AutoModerationRuleData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.AutoModerationRuleData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.AutoModerationRuleTriggerMetadataData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.AutoModerationRuleTriggerMetadataData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.AutoModerationActionData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.AutoModerationActionData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.AutoModerationActionMetadataData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.AutoModerationActionMetadataData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.BanData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.BanData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ChannelData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ChannelData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ThreadMetadataData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ThreadMetadataData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ClientStatusData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ClientStatusData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ComponentData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ComponentData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ChatComponentData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ChatComponentData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.TextInputComponentData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.TextInputComponentData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.EmbedData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.EmbedData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.EmbedFooterData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.EmbedFooterData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.EmbedImageData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.EmbedImageData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.EmbedThumbnailData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.EmbedThumbnailData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.EmbedVideoData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.EmbedVideoData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.EmbedProviderData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.EmbedProviderData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.EmbedAuthorData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.EmbedAuthorData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.EmbedFieldData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.EmbedFieldData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.EmojiData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.EmojiData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.GuildData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.GuildData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.GuildPreviewData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.GuildPreviewData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.GuildScheduledEventData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.GuildScheduledEventData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.GuildWidgetData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.GuildWidgetData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.IntegrationData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.IntegrationData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.IntegrationsAccountData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.IntegrationsAccountData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.InteractionData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.InteractionData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ResolvedObjectsData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ResolvedObjectsData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ApplicationInteractionData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ApplicationInteractionData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.OptionData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.OptionData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.InviteCreateData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.InviteCreateData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.InviteData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.InviteData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.InviteWithMetadataData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.InviteWithMetadataData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.InviteDeleteData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.InviteDeleteData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.MemberData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.MemberData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.MembersChunkData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.MembersChunkData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.MessageData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.MessageData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.MessageInteractionData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.MessageInteractionData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.MessageReferenceData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.MessageReferenceData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.PartialGuildData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.PartialGuildData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.PermissionOverwriteData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.PermissionOverwriteData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.PresenceData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.PresenceData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ReactionData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ReactionData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.RemovedReactionData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.RemovedReactionData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ReactionRemoveEmojiData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ReactionRemoveEmojiData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.RegionData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.RegionData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.RoleData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.RoleData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.RoleTagsData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.RoleTagsData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.SelectOptionData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.SelectOptionData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.StageInstanceData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.StageInstanceData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.StickerData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.StickerData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.StickerItemData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.StickerItemData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.TeamData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.TeamData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.TeamMemberData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.TeamMemberData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.TemplateData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.TemplateData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.ThreadMemberData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.ThreadMemberData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.UserData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.UserData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.VoiceStateData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.VoiceStateData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.WebhookData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.WebhookData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.WelcomeScreenData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.WelcomeScreenData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.WelcomeScreenChannelData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.cache.data.WelcomeScreenChannelData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.event.automoderation.data.AutoModerationActionExecutionEventData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.event.automoderation.data.AutoModerationActionExecutionEventData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.event.channel.data.ChannelPinsUpdateEventData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.event.channel.data.ChannelPinsUpdateEventData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.event.channel.data.TypingStartEventData","fields":[{"name":"Companion"}]},{"name":"dev.kord.core.event.channel.data.TypingStartEventData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.core.cache.data.GuildApplicationCommandPermissionsData"},{"name":"dev.kord.core.cache.data.StickerPackData"}] \ No newline at end of file +[ + { + "name": "dev.kord.core.cache.data.ActivityData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.ActivityData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.ApplicationCommandData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.ApplicationCommandData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.ApplicationCommandOptionData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.ApplicationCommandOptionData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.ApplicationCommandGroupData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.ApplicationCommandGroupData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.ApplicationCommandSubcommandData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.ApplicationCommandSubcommandData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.ApplicationCommandParameterData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.ApplicationCommandParameterData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.ApplicationCommandOptionChoiceData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.ApplicationCommandOptionChoiceData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.ApplicationData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.ApplicationData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.PartialApplicationData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.PartialApplicationData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.AttachmentData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.AttachmentData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.AutoModerationRuleData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.AutoModerationRuleData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.AutoModerationRuleTriggerMetadataData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.AutoModerationRuleTriggerMetadataData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.AutoModerationActionData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.AutoModerationActionData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.AutoModerationActionMetadataData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.AutoModerationActionMetadataData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.BanData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.BanData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.ChannelData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.ChannelData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.ThreadMetadataData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.ThreadMetadataData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.ClientStatusData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.ClientStatusData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.ComponentData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.ComponentData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.ChatComponentData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.ChatComponentData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.TextInputComponentData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.TextInputComponentData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.EmbedData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.EmbedData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.EmbedFooterData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.EmbedFooterData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.EmbedImageData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.EmbedImageData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.EmbedThumbnailData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.EmbedThumbnailData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.EmbedVideoData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.EmbedVideoData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.EmbedProviderData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.EmbedProviderData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.EmbedAuthorData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.EmbedAuthorData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.EmbedFieldData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.EmbedFieldData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.EmojiData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.EmojiData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.GuildData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.GuildData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.GuildPreviewData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.GuildPreviewData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.GuildScheduledEventData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.GuildScheduledEventData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.GuildWidgetData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.GuildWidgetData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.IntegrationData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.IntegrationData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.IntegrationsAccountData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.IntegrationsAccountData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.InteractionData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.InteractionData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.ResolvedObjectsData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.ResolvedObjectsData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.ApplicationInteractionData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.ApplicationInteractionData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.OptionData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.OptionData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.InviteCreateData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.InviteCreateData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.InviteData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.InviteData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.InviteWithMetadataData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.InviteWithMetadataData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.InviteDeleteData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.InviteDeleteData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.MemberData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.MemberData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.MembersChunkData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.MembersChunkData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.MessageData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.MessageData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.MessageInteractionData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.MessageInteractionData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.MessageReferenceData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.MessageReferenceData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.PartialGuildData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.PartialGuildData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.PermissionOverwriteData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.PermissionOverwriteData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.PresenceData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.PresenceData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.ReactionData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.ReactionData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.RemovedReactionData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.RemovedReactionData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.ReactionRemoveEmojiData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.ReactionRemoveEmojiData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.RegionData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.RegionData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.RoleData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.RoleData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.RoleTagsData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.RoleTagsData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.SelectOptionData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.SelectOptionData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.StageInstanceData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.StageInstanceData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.StickerData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.StickerData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.StickerItemData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.StickerItemData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.TeamData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.TeamData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.TeamMemberData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.TeamMemberData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.TemplateData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.TemplateData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.ThreadMemberData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.ThreadMemberData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.UserData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.UserData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.VoiceStateData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.VoiceStateData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.WebhookData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.WebhookData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.WelcomeScreenData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.WelcomeScreenData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.WelcomeScreenChannelData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.WelcomeScreenChannelData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.event.automoderation.data.AutoModerationActionExecutionEventData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.event.automoderation.data.AutoModerationActionExecutionEventData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.event.channel.data.ChannelPinsUpdateEventData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.event.channel.data.ChannelPinsUpdateEventData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.event.channel.data.TypingStartEventData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.event.channel.data.TypingStartEventData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.GuildApplicationCommandPermissionsData" + }, + { + "name": "dev.kord.core.cache.data.StickerPackData" + } +] \ No newline at end of file diff --git a/gateway/build/generated/ksp/main/resources/META-INF/native-image/dev/kord/kord-gateway/reflect-config.json b/gateway/build/generated/ksp/main/resources/META-INF/native-image/dev/kord/kord-gateway/reflect-config.json index 57ebb71a9924..4d703312ecb1 100644 --- a/gateway/build/generated/ksp/main/resources/META-INF/native-image/dev/kord/kord-gateway/reflect-config.json +++ b/gateway/build/generated/ksp/main/resources/META-INF/native-image/dev/kord/kord-gateway/reflect-config.json @@ -1 +1,416 @@ -[{"name":"dev.kord.gateway.Identify","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.Identify$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.IdentifyProperties","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.IdentifyProperties$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.GuildMembersChunkData","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.GuildMembersChunkData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.DiscordPresence","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.DiscordPresence$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.Resume","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.Resume$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.RequestGuildMembers","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.RequestGuildMembers$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.UpdateVoiceStatus","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.UpdateVoiceStatus$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.UpdateStatus","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.UpdateStatus$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.Hello","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.Hello$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.ReadyData","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.ReadyData$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.Heartbeat","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.Heartbeat$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.Resumed","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.Resumed$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.InvalidSession","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.InvalidSession$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.DiscordAutoModerationActionExecution","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.DiscordAutoModerationActionExecution$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.DiscordDeletedInvite","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.DiscordDeletedInvite$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.DiscordCreatedInvite","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.DiscordCreatedInvite$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.DiscordRemovedEmoji","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.DiscordRemovedEmoji$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.DiscordRemovedReactionEmoji","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.DiscordRemovedReactionEmoji$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.GuildScheduledEventUserMetadata","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.GuildScheduledEventUserMetadata$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.DiscordThreadListSync","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.DiscordThreadListSync$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.DiscordThreadMembersUpdate","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.DiscordThreadMembersUpdate$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.Intents","fields":[{"name":"Companion"}]},{"name":"dev.kord.gateway.Intents$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.gateway.OpCode","fields":[{"name":"OpCodeSerializer"}]},{"name":"dev.kord.gateway.OpCode$OpCodeSerializer","methods":[{"name":"serializer","parameterTypes":[]}]}] \ No newline at end of file +[ + { + "name": "dev.kord.gateway.Identify", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.Identify$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.IdentifyProperties", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.IdentifyProperties$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.GuildMembersChunkData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.GuildMembersChunkData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.DiscordPresence", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.DiscordPresence$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.Resume", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.Resume$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.RequestGuildMembers", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.RequestGuildMembers$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.UpdateVoiceStatus", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.UpdateVoiceStatus$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.UpdateStatus", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.UpdateStatus$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.Hello", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.Hello$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.ReadyData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.ReadyData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.Heartbeat", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.Heartbeat$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.Resumed", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.Resumed$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.InvalidSession", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.InvalidSession$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.DiscordAutoModerationActionExecution", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.DiscordAutoModerationActionExecution$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.DiscordDeletedInvite", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.DiscordDeletedInvite$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.DiscordCreatedInvite", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.DiscordCreatedInvite$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.DiscordRemovedEmoji", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.DiscordRemovedEmoji$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.DiscordRemovedReactionEmoji", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.DiscordRemovedReactionEmoji$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.GuildScheduledEventUserMetadata", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.GuildScheduledEventUserMetadata$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.DiscordThreadListSync", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.DiscordThreadListSync$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.DiscordThreadMembersUpdate", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.DiscordThreadMembersUpdate$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.Intents", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.Intents$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.OpCode", + "fields": [ + { + "name": "OpCodeSerializer" + } + ] + }, + { + "name": "dev.kord.gateway.OpCode$OpCodeSerializer", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + } +] \ No newline at end of file diff --git a/graal/test-reflect-config.json b/graal/test-reflect-config.json index df810f129732..f15a911b956b 100644 --- a/graal/test-reflect-config.json +++ b/graal/test-reflect-config.json @@ -33,5 +33,12 @@ }, { "name": "kotlin.KotlinVersion$Companion[]" + }, + { + "name": "io.mockk.impl.JvmMockKGateway", + "allPublicMethods": true, + "allDeclaredFields": true, + "allDeclaredMethods": true, + "allDeclaredConstructors": true } ] diff --git a/ksp-processors/src/main/kotlin/graal/ReflectConfig.kt b/ksp-processors/src/main/kotlin/graal/ReflectConfig.kt index 17c3de91c609..4cd2dec31d7b 100644 --- a/ksp-processors/src/main/kotlin/graal/ReflectConfig.kt +++ b/ksp-processors/src/main/kotlin/graal/ReflectConfig.kt @@ -10,6 +10,7 @@ import kotlinx.serialization.json.Json private val json = Json { encodeDefaults = false + prettyPrint = true } fun ReflectConfig.encode() = json.encodeToString(this) diff --git a/voice/build/generated/ksp/main/resources/META-INF/native-image/dev/kord/kord-voice/reflect-config.json b/voice/build/generated/ksp/main/resources/META-INF/native-image/dev/kord/kord-voice/reflect-config.json index c5be56faca4d..5a470e5b9768 100644 --- a/voice/build/generated/ksp/main/resources/META-INF/native-image/dev/kord/kord-voice/reflect-config.json +++ b/voice/build/generated/ksp/main/resources/META-INF/native-image/dev/kord/kord-voice/reflect-config.json @@ -1 +1,254 @@ -[{"name":"dev.kord.voice.SpeakingFlags","fields":[{"name":"Companion"}]},{"name":"dev.kord.voice.SpeakingFlags$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.voice.gateway.Identify","fields":[{"name":"Companion"}]},{"name":"dev.kord.voice.gateway.Identify$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.voice.gateway.Heartbeat","fields":[{"name":"Companion"}]},{"name":"dev.kord.voice.gateway.Heartbeat$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.voice.gateway.SendSpeaking","fields":[{"name":"Companion"}]},{"name":"dev.kord.voice.gateway.SendSpeaking$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.voice.gateway.SelectProtocol","fields":[{"name":"Companion"}]},{"name":"dev.kord.voice.gateway.SelectProtocol$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.voice.gateway.SelectProtocol$Data","fields":[{"name":"Companion"}]},{"name":"dev.kord.voice.gateway.SelectProtocol$Data$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.voice.gateway.Resume","fields":[{"name":"Companion"}]},{"name":"dev.kord.voice.gateway.Resume$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.voice.gateway.Ready","fields":[{"name":"Companion"}]},{"name":"dev.kord.voice.gateway.Ready$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.voice.gateway.Hello","fields":[{"name":"Companion"}]},{"name":"dev.kord.voice.gateway.Hello$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.voice.gateway.HeartbeatAck","fields":[{"name":"Companion"}]},{"name":"dev.kord.voice.gateway.HeartbeatAck$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.voice.gateway.SessionDescription","fields":[{"name":"Companion"}]},{"name":"dev.kord.voice.gateway.SessionDescription$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.voice.gateway.Speaking","fields":[{"name":"Companion"}]},{"name":"dev.kord.voice.gateway.Speaking$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.voice.gateway.Resumed","fields":[{"name":"Companion"}]},{"name":"dev.kord.voice.gateway.Resumed$Companion","methods":[{"name":"serializer","parameterTypes":[]}]},{"name":"dev.kord.voice.EncryptionMode","fields":[{"name":"Companion"}]},{"name":"dev.kord.voice.EncryptionMode$Companion","methods":[{"name":"serializer","parameterTypes":[]}]}] \ No newline at end of file +[ + { + "name": "dev.kord.voice.SpeakingFlags", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.voice.SpeakingFlags$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.voice.gateway.Identify", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.voice.gateway.Identify$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.voice.gateway.Heartbeat", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.voice.gateway.Heartbeat$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.voice.gateway.SendSpeaking", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.voice.gateway.SendSpeaking$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.voice.gateway.SelectProtocol", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.voice.gateway.SelectProtocol$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.voice.gateway.SelectProtocol$Data", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.voice.gateway.SelectProtocol$Data$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.voice.gateway.Resume", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.voice.gateway.Resume$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.voice.gateway.Ready", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.voice.gateway.Ready$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.voice.gateway.Hello", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.voice.gateway.Hello$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.voice.gateway.HeartbeatAck", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.voice.gateway.HeartbeatAck$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.voice.gateway.SessionDescription", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.voice.gateway.SessionDescription$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.voice.gateway.Speaking", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.voice.gateway.Speaking$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.voice.gateway.Resumed", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.voice.gateway.Resumed$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.voice.EncryptionMode", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.voice.EncryptionMode$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + } +] \ No newline at end of file From 808842484a487fcff52ac59ef1af347ada5f542e Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Mon, 20 Mar 2023 14:15:22 +0100 Subject: [PATCH 020/105] Move reflect-config.json to correct location --- .../dev.kord}/kord-common/reflect-config.json | 0 .../dev.kord}/kord-core/reflect-config.json | 0 .../dev.kord}/kord-gateway/reflect-config.json | 0 ksp-processors/src/main/kotlin/graal/KordGraalProcessor.kt | 5 ++--- .../dev.kord}/kord-voice/reflect-config.json | 0 5 files changed, 2 insertions(+), 3 deletions(-) rename common/build/generated/ksp/main/resources/{META-INF/native-image/dev/kord => META-INF.native-image/dev.kord}/kord-common/reflect-config.json (100%) rename core/build/generated/ksp/main/resources/{META-INF/native-image/dev/kord => META-INF.native-image/dev.kord}/kord-core/reflect-config.json (100%) rename gateway/build/generated/ksp/main/resources/{META-INF/native-image/dev/kord => META-INF.native-image/dev.kord}/kord-gateway/reflect-config.json (100%) rename voice/build/generated/ksp/main/resources/{META-INF/native-image/dev/kord => META-INF.native-image/dev.kord}/kord-voice/reflect-config.json (100%) diff --git a/common/build/generated/ksp/main/resources/META-INF/native-image/dev/kord/kord-common/reflect-config.json b/common/build/generated/ksp/main/resources/META-INF.native-image/dev.kord/kord-common/reflect-config.json similarity index 100% rename from common/build/generated/ksp/main/resources/META-INF/native-image/dev/kord/kord-common/reflect-config.json rename to common/build/generated/ksp/main/resources/META-INF.native-image/dev.kord/kord-common/reflect-config.json diff --git a/core/build/generated/ksp/main/resources/META-INF/native-image/dev/kord/kord-core/reflect-config.json b/core/build/generated/ksp/main/resources/META-INF.native-image/dev.kord/kord-core/reflect-config.json similarity index 100% rename from core/build/generated/ksp/main/resources/META-INF/native-image/dev/kord/kord-core/reflect-config.json rename to core/build/generated/ksp/main/resources/META-INF.native-image/dev.kord/kord-core/reflect-config.json diff --git a/gateway/build/generated/ksp/main/resources/META-INF/native-image/dev/kord/kord-gateway/reflect-config.json b/gateway/build/generated/ksp/main/resources/META-INF.native-image/dev.kord/kord-gateway/reflect-config.json similarity index 100% rename from gateway/build/generated/ksp/main/resources/META-INF/native-image/dev/kord/kord-gateway/reflect-config.json rename to gateway/build/generated/ksp/main/resources/META-INF.native-image/dev.kord/kord-gateway/reflect-config.json diff --git a/ksp-processors/src/main/kotlin/graal/KordGraalProcessor.kt b/ksp-processors/src/main/kotlin/graal/KordGraalProcessor.kt index a3b7198d1151..3dbdd3edc903 100644 --- a/ksp-processors/src/main/kotlin/graal/KordGraalProcessor.kt +++ b/ksp-processors/src/main/kotlin/graal/KordGraalProcessor.kt @@ -57,10 +57,9 @@ private class KordGraalProcessor( if (entries.isNotEmpty()) { val config = ReflectConfig(entries.distinctBy(ReflectConfigEntry::name)) val file = codeGenerator - .createNewFile( + .createNewFileByPath( Dependencies.ALL_FILES, - "META-INF.native-image/dev.kord/kord-${project}", - "reflect-config", + "META-INF.native-image/dev.kord/kord-${project}/reflect-config", "json" ) file.bufferedWriter().use { it.write(config.encode()) } diff --git a/voice/build/generated/ksp/main/resources/META-INF/native-image/dev/kord/kord-voice/reflect-config.json b/voice/build/generated/ksp/main/resources/META-INF.native-image/dev.kord/kord-voice/reflect-config.json similarity index 100% rename from voice/build/generated/ksp/main/resources/META-INF/native-image/dev/kord/kord-voice/reflect-config.json rename to voice/build/generated/ksp/main/resources/META-INF.native-image/dev.kord/kord-voice/reflect-config.json From 923d18f4cec2218346dd0a250849569221a26afe Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Mon, 20 Mar 2023 14:16:25 +0100 Subject: [PATCH 021/105] Disable incompatible tests on Graal --- common/src/test/kotlin/ColorTests.kt | 9 +++++---- core/src/test/kotlin/equality/EntityEqualityTest.kt | 3 +++ core/src/test/kotlin/interaction/CommandTypesTest.kt | 10 +++++++--- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/common/src/test/kotlin/ColorTests.kt b/common/src/test/kotlin/ColorTests.kt index a8526ecdcf29..14e60883fcc9 100644 --- a/common/src/test/kotlin/ColorTests.kt +++ b/common/src/test/kotlin/ColorTests.kt @@ -1,8 +1,8 @@ import dev.kord.common.Color import dev.kord.common.kColor -import org.junit.jupiter.api.Disabled import org.junit.jupiter.api.Test import org.junit.jupiter.api.assertThrows +import org.junit.jupiter.api.condition.DisabledIfSystemProperty import kotlin.test.assertEquals class ColorTests { @@ -25,11 +25,12 @@ class ColorTests { assertEquals(0xFFFFFF, white.rgb) } + // Currently java.awt.Color doesn't work on Graal native images + // See: https://github.com/oracle/graal/issues/3084 + @DisabledIfSystemProperty(named = "org.graalvm.nativeimage.imagecode", matches = ".+") @Test fun `java to kColor conversion`() { - // Currently java.awt.Color doesn't work on Graal native images - // See: https://github.com/oracle/graal/issues/3084 - if(!System.getProperty("org.graalvm.nativeimage.imagecode").isNullOrBlank()) return + if(!System.getProperty("").isNullOrBlank()) return val color = java.awt.Color.decode("#DBD0B4").kColor diff --git a/core/src/test/kotlin/equality/EntityEqualityTest.kt b/core/src/test/kotlin/equality/EntityEqualityTest.kt index 64d8ab36faf3..5c4975a498b4 100644 --- a/core/src/test/kotlin/equality/EntityEqualityTest.kt +++ b/core/src/test/kotlin/equality/EntityEqualityTest.kt @@ -2,6 +2,7 @@ package equality import dev.kord.common.entity.Snowflake import dev.kord.core.entity.KordEntity +import org.junit.jupiter.api.condition.DisabledIfSystemProperty import kotlin.random.Random import kotlin.random.nextULong import kotlin.test.Test @@ -14,6 +15,8 @@ val ids = generateSequence { fun randomId() = Snowflake(ids.next()) +// Mockk currently doesn't work on Graal +@DisabledIfSystemProperty(named = "org.graalvm.nativeimage.imagecode", matches = ".+") interface EntityEqualityTest { fun newEntity(id: Snowflake): T diff --git a/core/src/test/kotlin/interaction/CommandTypesTest.kt b/core/src/test/kotlin/interaction/CommandTypesTest.kt index e69dd9af391f..3b92fcb7c410 100644 --- a/core/src/test/kotlin/interaction/CommandTypesTest.kt +++ b/core/src/test/kotlin/interaction/CommandTypesTest.kt @@ -1,16 +1,20 @@ package interaction -import dev.kord.common.annotation.KordPreview import dev.kord.common.entity.ApplicationCommandOptionType import dev.kord.common.entity.InteractionCallbackData import dev.kord.core.cache.data.ApplicationInteractionData -import dev.kord.core.entity.interaction.* +import dev.kord.core.entity.interaction.GroupCommand +import dev.kord.core.entity.interaction.InteractionCommand +import dev.kord.core.entity.interaction.RootCommand +import dev.kord.core.entity.interaction.SubCommand import kotlinx.serialization.json.* import mockKord import org.junit.jupiter.api.Test +import org.junit.jupiter.api.condition.DisabledIfSystemProperty import kotlin.test.assertEquals +@DisabledIfSystemProperty(named = "org.graalvm.nativeimage.imagecode", matches = ".+") class CommandsTypeTests { val arg = buildJsonObject { put("type", ApplicationCommandOptionType.Integer.type) @@ -84,4 +88,4 @@ class CommandsTypeTests { assertEquals("group", command.groupName) assertEquals("subCommand", command.name) } -} \ No newline at end of file +} From e1660ee7833efb8c0b9540231f8876ae3e882160 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Mon, 20 Mar 2023 14:34:15 +0100 Subject: [PATCH 022/105] Fix failing test --- common/src/test/kotlin/ColorTests.kt | 2 -- 1 file changed, 2 deletions(-) diff --git a/common/src/test/kotlin/ColorTests.kt b/common/src/test/kotlin/ColorTests.kt index 14e60883fcc9..3271ec572e5f 100644 --- a/common/src/test/kotlin/ColorTests.kt +++ b/common/src/test/kotlin/ColorTests.kt @@ -30,8 +30,6 @@ class ColorTests { @DisabledIfSystemProperty(named = "org.graalvm.nativeimage.imagecode", matches = ".+") @Test fun `java to kColor conversion`() { - if(!System.getProperty("").isNullOrBlank()) return - val color = java.awt.Color.decode("#DBD0B4").kColor assertEquals(219, color.red) From 246fa0ab11112e02c8e034aaf7f4dead495c0634 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Mon, 20 Mar 2023 14:34:41 +0100 Subject: [PATCH 023/105] Add CI for GraalVM --- .github/workflows/native-ci.yml | 38 +++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 .github/workflows/native-ci.yml diff --git a/.github/workflows/native-ci.yml b/.github/workflows/native-ci.yml new file mode 100644 index 000000000000..e4f87138f1c2 --- /dev/null +++ b/.github/workflows/native-ci.yml @@ -0,0 +1,38 @@ +name: GraalVM Native Image CI + +on: + push: + pull_request: + +jobs: + build: + name: Build Kord + runs-on: ubuntu-latest + env: + KORD_TEST_TOKEN: ${{ secrets.KORD_TEST_TOKEN }} + ACTIONS_ALLOW_UNSECURE_COMMANDS: true + strategy: + matrix: + os: [ubuntu-latest, macos-latest, windows-latest] + gu-binary: [gu, gu.cmd] + exclude: + - os: ubuntu-latest + gu-binary: gu.cmd + - os: macos-latest + gu-binary: gu.cmd + - os: windows-latest + gu-binary: gu + steps: + - uses: actions/checkout@v3 + - uses: DeLaGuardo/setup-graalvm@5.0 + with: + graalvm: '21.0.0.2' + java: 'java8' + arch: 'amd64' + - name: Install native-image component + run: | + ${{ matrix.gu-binary }} install native-image + - name: Build with Gradle + uses: gradle/gradle-build-action@v2 + with: + arguments: nativeTest From e96092654b4aec08f8e5eed43514f1f830c74ab3 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Mon, 20 Mar 2023 14:39:33 +0100 Subject: [PATCH 024/105] Use official action --- .github/workflows/native-ci.yml | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/.github/workflows/native-ci.yml b/.github/workflows/native-ci.yml index e4f87138f1c2..4860bf9c0391 100644 --- a/.github/workflows/native-ci.yml +++ b/.github/workflows/native-ci.yml @@ -24,14 +24,12 @@ jobs: gu-binary: gu steps: - uses: actions/checkout@v3 - - uses: DeLaGuardo/setup-graalvm@5.0 + - uses: graalvm/setup-graalvm@v1 with: - graalvm: '21.0.0.2' - java: 'java8' - arch: 'amd64' - - name: Install native-image component - run: | - ${{ matrix.gu-binary }} install native-image + version: 'latest' + java-version: '17' + components: 'native-image' + github-token: ${{ secrets.GITHUB_TOKEN }} - name: Build with Gradle uses: gradle/gradle-build-action@v2 with: From 9399ae43533ee11a181ac37a8c5221005dfd4672 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Mon, 20 Mar 2023 14:40:57 +0100 Subject: [PATCH 025/105] [CI skip] Remove no longer needed matrix --- .github/workflows/native-ci.yml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/.github/workflows/native-ci.yml b/.github/workflows/native-ci.yml index 4860bf9c0391..3cd3f1eff7bb 100644 --- a/.github/workflows/native-ci.yml +++ b/.github/workflows/native-ci.yml @@ -14,14 +14,6 @@ jobs: strategy: matrix: os: [ubuntu-latest, macos-latest, windows-latest] - gu-binary: [gu, gu.cmd] - exclude: - - os: ubuntu-latest - gu-binary: gu.cmd - - os: macos-latest - gu-binary: gu.cmd - - os: windows-latest - gu-binary: gu steps: - uses: actions/checkout@v3 - uses: graalvm/setup-graalvm@v1 From 8323bccd18e849e7672b2be24b946cd233b6521f Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Mon, 20 Mar 2023 16:26:19 +0100 Subject: [PATCH 026/105] Fix wrong location of reflect-config.json --- .../src/main/kotlin/kord-module.gradle.kts | 3 + .../dev.kord/kord-common/reflect-config.json | 0 .../dev.kord/kord-core/reflect-config.json | 0 .../dev.kord/kord-gateway/reflect-config.json | 0 .../META-INF/native-image/reflect-config.json | 7 + graal/test-reflect-config.json | 7 - .../main/kotlin/graal/KordGraalProcessor.kt | 2 +- .../kotlin/dev/kord/voice/EncryptionMode.kt | 85 ------ .../dev.kord/kord-voice/reflect-config.json | 254 ------------------ 9 files changed, 11 insertions(+), 347 deletions(-) rename common/build/generated/ksp/main/resources/{META-INF.native-image => META-INF/native-image}/dev.kord/kord-common/reflect-config.json (100%) rename core/build/generated/ksp/main/resources/{META-INF.native-image => META-INF/native-image}/dev.kord/kord-core/reflect-config.json (100%) rename gateway/build/generated/ksp/main/resources/{META-INF.native-image => META-INF/native-image}/dev.kord/kord-gateway/reflect-config.json (100%) delete mode 100644 voice/build/generated/ksp/main/kotlin/dev/kord/voice/EncryptionMode.kt delete mode 100644 voice/build/generated/ksp/main/resources/META-INF.native-image/dev.kord/kord-voice/reflect-config.json diff --git a/buildSrc/src/main/kotlin/kord-module.gradle.kts b/buildSrc/src/main/kotlin/kord-module.gradle.kts index 28616909da24..5dfb7faf7ba1 100644 --- a/buildSrc/src/main/kotlin/kord-module.gradle.kts +++ b/buildSrc/src/main/kotlin/kord-module.gradle.kts @@ -145,6 +145,9 @@ graalvmNative { """-H:IncludeResources=".*/.*json"""", """-H:IncludeResources=".*/.*png"""", """-H:IncludeResources=".*/.*kotlin_builtins"""", + """-H:IncludeResources="META-INF/services/.*"""", + "--allow-incomplete-classpath", + "--report-unsupported-elements-at-runtime", "-H:ReflectionConfigurationFiles=${rootProject.file("graal/test-reflect-config.json").absolutePath}", ) } diff --git a/common/build/generated/ksp/main/resources/META-INF.native-image/dev.kord/kord-common/reflect-config.json b/common/build/generated/ksp/main/resources/META-INF/native-image/dev.kord/kord-common/reflect-config.json similarity index 100% rename from common/build/generated/ksp/main/resources/META-INF.native-image/dev.kord/kord-common/reflect-config.json rename to common/build/generated/ksp/main/resources/META-INF/native-image/dev.kord/kord-common/reflect-config.json diff --git a/core/build/generated/ksp/main/resources/META-INF.native-image/dev.kord/kord-core/reflect-config.json b/core/build/generated/ksp/main/resources/META-INF/native-image/dev.kord/kord-core/reflect-config.json similarity index 100% rename from core/build/generated/ksp/main/resources/META-INF.native-image/dev.kord/kord-core/reflect-config.json rename to core/build/generated/ksp/main/resources/META-INF/native-image/dev.kord/kord-core/reflect-config.json diff --git a/gateway/build/generated/ksp/main/resources/META-INF.native-image/dev.kord/kord-gateway/reflect-config.json b/gateway/build/generated/ksp/main/resources/META-INF/native-image/dev.kord/kord-gateway/reflect-config.json similarity index 100% rename from gateway/build/generated/ksp/main/resources/META-INF.native-image/dev.kord/kord-gateway/reflect-config.json rename to gateway/build/generated/ksp/main/resources/META-INF/native-image/dev.kord/kord-gateway/reflect-config.json diff --git a/graal-example/src/main/resources/META-INF/native-image/reflect-config.json b/graal-example/src/main/resources/META-INF/native-image/reflect-config.json index 26e6c4fa4748..944df0829e03 100644 --- a/graal-example/src/main/resources/META-INF/native-image/reflect-config.json +++ b/graal-example/src/main/resources/META-INF/native-image/reflect-config.json @@ -33,5 +33,12 @@ }, { "name": "kotlin.KotlinVersion$Companion[]" + }, + { + "name": "org.slf4j.impl.StaticLoggerBinder", + "allPublicMethods": true, + "allDeclaredFields": true, + "allDeclaredMethods": true, + "allDeclaredConstructors": true } ] diff --git a/graal/test-reflect-config.json b/graal/test-reflect-config.json index f15a911b956b..df810f129732 100644 --- a/graal/test-reflect-config.json +++ b/graal/test-reflect-config.json @@ -33,12 +33,5 @@ }, { "name": "kotlin.KotlinVersion$Companion[]" - }, - { - "name": "io.mockk.impl.JvmMockKGateway", - "allPublicMethods": true, - "allDeclaredFields": true, - "allDeclaredMethods": true, - "allDeclaredConstructors": true } ] diff --git a/ksp-processors/src/main/kotlin/graal/KordGraalProcessor.kt b/ksp-processors/src/main/kotlin/graal/KordGraalProcessor.kt index 3dbdd3edc903..88c23f7c0eb3 100644 --- a/ksp-processors/src/main/kotlin/graal/KordGraalProcessor.kt +++ b/ksp-processors/src/main/kotlin/graal/KordGraalProcessor.kt @@ -59,7 +59,7 @@ private class KordGraalProcessor( val file = codeGenerator .createNewFileByPath( Dependencies.ALL_FILES, - "META-INF.native-image/dev.kord/kord-${project}/reflect-config", + "META-INF/native-image/dev.kord/kord-${project}/reflect-config", "json" ) file.bufferedWriter().use { it.write(config.encode()) } diff --git a/voice/build/generated/ksp/main/kotlin/dev/kord/voice/EncryptionMode.kt b/voice/build/generated/ksp/main/kotlin/dev/kord/voice/EncryptionMode.kt deleted file mode 100644 index c977d45f5d20..000000000000 --- a/voice/build/generated/ksp/main/kotlin/dev/kord/voice/EncryptionMode.kt +++ /dev/null @@ -1,85 +0,0 @@ -// THIS FILE IS AUTO-GENERATED BY KordEnumProcessor.kt, DO NOT EDIT! -@file:Suppress(names = arrayOf("RedundantVisibilityModifier", "IncorrectFormatting", - "ReplaceArrayOfWithLiteral", "SpellCheckingInspection", "GrazieInspection")) - -package dev.kord.voice - -import kotlin.Any -import kotlin.Boolean -import kotlin.Int -import kotlin.LazyThreadSafetyMode.PUBLICATION -import kotlin.String -import kotlin.Suppress -import kotlin.collections.List -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 [EncryptionMode]s in the - * [Discord Developer Documentation](https://discord.com/developers/docs/topics/voice-connections#establishing-a-voice-udp-connection-encryption-modes). - */ -@Serializable(with = EncryptionMode.Serializer::class) -public sealed class EncryptionMode( - /** - * The raw value used by Discord. - */ - public val `value`: String, -) { - public final override fun equals(other: Any?): Boolean = this === other || - (other is EncryptionMode && this.value == other.value) - - public final override fun hashCode(): Int = value.hashCode() - - public final override fun toString(): String = - "EncryptionMode.${this::class.simpleName}(value=$value)" - - /** - * An unknown [EncryptionMode]. - * - * This is used as a fallback for [EncryptionMode]s that haven't been added to Kord yet. - */ - public class Unknown( - `value`: String, - ) : EncryptionMode(value) - - public object XSalsa20Poly1305 : EncryptionMode("xsalsa20_poly1305") - - public object XSalsa20Poly1305Suffix : EncryptionMode("xsalsa20_poly1305_suffix") - - public object XSalsa20Poly1305Lite : EncryptionMode("xsalsa20_poly1305_lite") - - internal object Serializer : KSerializer { - public override val descriptor: SerialDescriptor = - PrimitiveSerialDescriptor("dev.kord.voice.EncryptionMode", PrimitiveKind.STRING) - - public override fun serialize(encoder: Encoder, `value`: EncryptionMode) = - encoder.encodeString(value.value) - - public override fun deserialize(decoder: Decoder) = - when (val value = decoder.decodeString()) { - "xsalsa20_poly1305" -> XSalsa20Poly1305 - "xsalsa20_poly1305_suffix" -> XSalsa20Poly1305Suffix - "xsalsa20_poly1305_lite" -> XSalsa20Poly1305Lite - else -> Unknown(value) - } - } - - public companion object { - /** - * A [List] of all known [EncryptionMode]s. - */ - public val entries: List by lazy(mode = PUBLICATION) { - listOf( - XSalsa20Poly1305, - XSalsa20Poly1305Suffix, - XSalsa20Poly1305Lite, - ) - } - - } -} diff --git a/voice/build/generated/ksp/main/resources/META-INF.native-image/dev.kord/kord-voice/reflect-config.json b/voice/build/generated/ksp/main/resources/META-INF.native-image/dev.kord/kord-voice/reflect-config.json deleted file mode 100644 index 5a470e5b9768..000000000000 --- a/voice/build/generated/ksp/main/resources/META-INF.native-image/dev.kord/kord-voice/reflect-config.json +++ /dev/null @@ -1,254 +0,0 @@ -[ - { - "name": "dev.kord.voice.SpeakingFlags", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.voice.SpeakingFlags$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.voice.gateway.Identify", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.voice.gateway.Identify$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.voice.gateway.Heartbeat", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.voice.gateway.Heartbeat$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.voice.gateway.SendSpeaking", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.voice.gateway.SendSpeaking$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.voice.gateway.SelectProtocol", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.voice.gateway.SelectProtocol$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.voice.gateway.SelectProtocol$Data", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.voice.gateway.SelectProtocol$Data$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.voice.gateway.Resume", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.voice.gateway.Resume$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.voice.gateway.Ready", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.voice.gateway.Ready$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.voice.gateway.Hello", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.voice.gateway.Hello$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.voice.gateway.HeartbeatAck", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.voice.gateway.HeartbeatAck$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.voice.gateway.SessionDescription", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.voice.gateway.SessionDescription$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.voice.gateway.Speaking", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.voice.gateway.Speaking$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.voice.gateway.Resumed", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.voice.gateway.Resumed$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.voice.EncryptionMode", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.voice.EncryptionMode$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - } -] \ No newline at end of file From d6635a59393d283374f0c3816d326515234b728c Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Mon, 20 Mar 2023 16:27:02 +0100 Subject: [PATCH 027/105] Bump kotlin-logging and slf4j-simple --- gradle/libs.versions.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 65cb89618d39..99e6f4b42985 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -6,7 +6,7 @@ ktor = "2.2.4" # https://github.com/ktorio/ktor kotlinx-coroutines = "1.6.4" # https://github.com/Kotlin/kotlinx.coroutines kotlinx-serialization = "1.5.0" # https://github.com/Kotlin/kotlinx.serialization kotlinx-datetime = "0.4.0" # https://github.com/Kotlin/kotlinx-datetime -kotlin-logging = "2.1.23" # https://github.com/MicroUtils/kotlin-logging +kotlin-logging = "3.0.5" # https://github.com/MicroUtils/kotlin-logging kord-cache = { strictly = "[0.3.0, 0.4.0[", prefer = "latest.release" } # code generation @@ -16,7 +16,7 @@ kotlinpoet = "1.12.0" # https://github.com/square/kotlinpoet # tests junit5 = "5.9.2" # https://github.com/junit-team/junit5 mockk = "1.13.4" # https://github.com/mockk/mockk -slf4j = "1.7.36" # https://www.slf4j.org +slf4j = "2.0.7" # https://www.slf4j.org # plugins dokka = "1.8.10" # https://github.com/Kotlin/dokka From 133dcf9993b74fced531de29a41b55a021675bfd Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Mon, 20 Mar 2023 16:28:28 +0100 Subject: [PATCH 028/105] Add missing generated files --- .../kotlin/dev/kord/voice/EncryptionMode.kt | 85 ++++++ .../dev.kord/kord-voice/reflect-config.json | 254 ++++++++++++++++++ 2 files changed, 339 insertions(+) create mode 100644 voice/build/generated/ksp/main/kotlin/dev/kord/voice/EncryptionMode.kt create mode 100644 voice/build/generated/ksp/main/resources/META-INF/native-image/dev.kord/kord-voice/reflect-config.json diff --git a/voice/build/generated/ksp/main/kotlin/dev/kord/voice/EncryptionMode.kt b/voice/build/generated/ksp/main/kotlin/dev/kord/voice/EncryptionMode.kt new file mode 100644 index 000000000000..c977d45f5d20 --- /dev/null +++ b/voice/build/generated/ksp/main/kotlin/dev/kord/voice/EncryptionMode.kt @@ -0,0 +1,85 @@ +// THIS FILE IS AUTO-GENERATED BY KordEnumProcessor.kt, DO NOT EDIT! +@file:Suppress(names = arrayOf("RedundantVisibilityModifier", "IncorrectFormatting", + "ReplaceArrayOfWithLiteral", "SpellCheckingInspection", "GrazieInspection")) + +package dev.kord.voice + +import kotlin.Any +import kotlin.Boolean +import kotlin.Int +import kotlin.LazyThreadSafetyMode.PUBLICATION +import kotlin.String +import kotlin.Suppress +import kotlin.collections.List +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 [EncryptionMode]s in the + * [Discord Developer Documentation](https://discord.com/developers/docs/topics/voice-connections#establishing-a-voice-udp-connection-encryption-modes). + */ +@Serializable(with = EncryptionMode.Serializer::class) +public sealed class EncryptionMode( + /** + * The raw value used by Discord. + */ + public val `value`: String, +) { + public final override fun equals(other: Any?): Boolean = this === other || + (other is EncryptionMode && this.value == other.value) + + public final override fun hashCode(): Int = value.hashCode() + + public final override fun toString(): String = + "EncryptionMode.${this::class.simpleName}(value=$value)" + + /** + * An unknown [EncryptionMode]. + * + * This is used as a fallback for [EncryptionMode]s that haven't been added to Kord yet. + */ + public class Unknown( + `value`: String, + ) : EncryptionMode(value) + + public object XSalsa20Poly1305 : EncryptionMode("xsalsa20_poly1305") + + public object XSalsa20Poly1305Suffix : EncryptionMode("xsalsa20_poly1305_suffix") + + public object XSalsa20Poly1305Lite : EncryptionMode("xsalsa20_poly1305_lite") + + internal object Serializer : KSerializer { + public override val descriptor: SerialDescriptor = + PrimitiveSerialDescriptor("dev.kord.voice.EncryptionMode", PrimitiveKind.STRING) + + public override fun serialize(encoder: Encoder, `value`: EncryptionMode) = + encoder.encodeString(value.value) + + public override fun deserialize(decoder: Decoder) = + when (val value = decoder.decodeString()) { + "xsalsa20_poly1305" -> XSalsa20Poly1305 + "xsalsa20_poly1305_suffix" -> XSalsa20Poly1305Suffix + "xsalsa20_poly1305_lite" -> XSalsa20Poly1305Lite + else -> Unknown(value) + } + } + + public companion object { + /** + * A [List] of all known [EncryptionMode]s. + */ + public val entries: List by lazy(mode = PUBLICATION) { + listOf( + XSalsa20Poly1305, + XSalsa20Poly1305Suffix, + XSalsa20Poly1305Lite, + ) + } + + } +} diff --git a/voice/build/generated/ksp/main/resources/META-INF/native-image/dev.kord/kord-voice/reflect-config.json b/voice/build/generated/ksp/main/resources/META-INF/native-image/dev.kord/kord-voice/reflect-config.json new file mode 100644 index 000000000000..5a470e5b9768 --- /dev/null +++ b/voice/build/generated/ksp/main/resources/META-INF/native-image/dev.kord/kord-voice/reflect-config.json @@ -0,0 +1,254 @@ +[ + { + "name": "dev.kord.voice.SpeakingFlags", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.voice.SpeakingFlags$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.voice.gateway.Identify", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.voice.gateway.Identify$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.voice.gateway.Heartbeat", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.voice.gateway.Heartbeat$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.voice.gateway.SendSpeaking", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.voice.gateway.SendSpeaking$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.voice.gateway.SelectProtocol", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.voice.gateway.SelectProtocol$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.voice.gateway.SelectProtocol$Data", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.voice.gateway.SelectProtocol$Data$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.voice.gateway.Resume", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.voice.gateway.Resume$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.voice.gateway.Ready", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.voice.gateway.Ready$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.voice.gateway.Hello", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.voice.gateway.Hello$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.voice.gateway.HeartbeatAck", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.voice.gateway.HeartbeatAck$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.voice.gateway.SessionDescription", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.voice.gateway.SessionDescription$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.voice.gateway.Speaking", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.voice.gateway.Speaking$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.voice.gateway.Resumed", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.voice.gateway.Resumed$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.voice.EncryptionMode", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.voice.EncryptionMode$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + } +] \ No newline at end of file From b1495d35720b7e74b3c981f9850c2700df897c93 Mon Sep 17 00:00:00 2001 From: Lukellmann Date: Mon, 20 Mar 2023 16:47:05 +0100 Subject: [PATCH 029/105] please work --- common/src/test/kotlin/json/VoiceStateTest.kt | 5 +---- core/src/test/kotlin/rest/RestTest.kt | 9 ++++----- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/common/src/test/kotlin/json/VoiceStateTest.kt b/common/src/test/kotlin/json/VoiceStateTest.kt index 0aa78e4062b8..4f91fe449458 100644 --- a/common/src/test/kotlin/json/VoiceStateTest.kt +++ b/common/src/test/kotlin/json/VoiceStateTest.kt @@ -5,10 +5,7 @@ import kotlinx.datetime.Instant import kotlinx.serialization.json.Json import org.junit.jupiter.api.Test -private fun file(name: String): String { - val loader = ChannelTest::class.java.classLoader - return loader.getResource("json/voice/$name.json")!!.readText() -} +private fun file(name: String) = ClassLoader.getSystemResource("json/voice/$name.json")!!.readText() class VoiceStateTest { diff --git a/core/src/test/kotlin/rest/RestTest.kt b/core/src/test/kotlin/rest/RestTest.kt index 1bda36fce985..277891a6b2cb 100644 --- a/core/src/test/kotlin/rest/RestTest.kt +++ b/core/src/test/kotlin/rest/RestTest.kt @@ -22,7 +22,6 @@ import kotlinx.coroutines.flow.toList import kotlinx.coroutines.runBlocking import org.junit.jupiter.api.* import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable -import kotlin.io.path.toPath import kotlin.test.assertEquals import kotlin.test.assertTrue @@ -156,7 +155,7 @@ class RestServiceTest { addFile( "test.txt", - ChannelProvider { ClassLoader.getSystemResource("images/kord.png").toURI().toPath().readChannel() } + ChannelProvider { ClassLoader.getSystemResourceAsStream("images/kord.png")!!.toByteReadChannel() } ) } @@ -385,7 +384,7 @@ class RestServiceTest { addFile( "test.txt", - ChannelProvider { ClassLoader.getSystemResource("images/kord.png").toURI().toPath().readChannel() } + ChannelProvider { ClassLoader.getSystemResourceAsStream("images/kord.png")!!.toByteReadChannel() } ) } @@ -400,7 +399,7 @@ class RestServiceTest { val message = channel.createMessage { addFile( "test.txt", - ChannelProvider { ClassLoader.getSystemResource("images/kord.png").toURI().toPath().readChannel() } + ChannelProvider { ClassLoader.getSystemResourceAsStream("images/kord.png")!!.toByteReadChannel() } ) } @@ -416,7 +415,7 @@ class RestServiceTest { addFile( "test.txt", - ChannelProvider { ClassLoader.getSystemResource("images/kord.png").toURI().toPath().readChannel() } + ChannelProvider { ClassLoader.getSystemResourceAsStream("images/kord.png")!!.toByteReadChannel() } ) } From 39746f1e8d8702f671319652c926c59f67293823 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Mon, 20 Mar 2023 17:06:19 +0100 Subject: [PATCH 030/105] Maybe fix native tests --- buildSrc/src/main/kotlin/kord-module.gradle.kts | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/buildSrc/src/main/kotlin/kord-module.gradle.kts b/buildSrc/src/main/kotlin/kord-module.gradle.kts index 5dfb7faf7ba1..a8389363e7d6 100644 --- a/buildSrc/src/main/kotlin/kord-module.gradle.kts +++ b/buildSrc/src/main/kotlin/kord-module.gradle.kts @@ -142,12 +142,10 @@ graalvmNative { binaries { named("test") { buildArgs( - """-H:IncludeResources=".*/.*json"""", - """-H:IncludeResources=".*/.*png"""", - """-H:IncludeResources=".*/.*kotlin_builtins"""", + """-H:IncludeResources=".*json"""", + """-H:IncludeResources=".*png"""", + """-H:IncludeResources=".*kotlin_builtins"""", """-H:IncludeResources="META-INF/services/.*"""", - "--allow-incomplete-classpath", - "--report-unsupported-elements-at-runtime", "-H:ReflectionConfigurationFiles=${rootProject.file("graal/test-reflect-config.json").absolutePath}", ) } From 19c843bb7541ac14fea05f6b3333d3273277baae Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Mon, 20 Mar 2023 18:54:46 +0100 Subject: [PATCH 031/105] Fix native tests --- buildSrc/src/main/kotlin/kord-module.gradle.kts | 7 ++----- graal/test-resourc-config.json | 10 ++++++++++ 2 files changed, 12 insertions(+), 5 deletions(-) create mode 100644 graal/test-resourc-config.json diff --git a/buildSrc/src/main/kotlin/kord-module.gradle.kts b/buildSrc/src/main/kotlin/kord-module.gradle.kts index a8389363e7d6..e274b6103a99 100644 --- a/buildSrc/src/main/kotlin/kord-module.gradle.kts +++ b/buildSrc/src/main/kotlin/kord-module.gradle.kts @@ -142,11 +142,8 @@ graalvmNative { binaries { named("test") { buildArgs( - """-H:IncludeResources=".*json"""", - """-H:IncludeResources=".*png"""", - """-H:IncludeResources=".*kotlin_builtins"""", - """-H:IncludeResources="META-INF/services/.*"""", - "-H:ReflectionConfigurationFiles=${rootProject.file("graal/test-reflect-config.json").absolutePath}", + "-H:ResourceConfigurationFiles=${rootProject.file("graal/test-resource-config.json").absolutePath}", + "-H:ReflectionConfigurationFiles=${rootProject.file("graal/test-reflect-config.json").absolutePath}" ) } } diff --git a/graal/test-resourc-config.json b/graal/test-resourc-config.json new file mode 100644 index 000000000000..d714cb9a7b06 --- /dev/null +++ b/graal/test-resourc-config.json @@ -0,0 +1,10 @@ +{ + "resources": { + "includes": [ + {"pattern": ".*json"}, + {"pattern": ".*png"}, + {"pattern": ".*kotlin_builtins"}, + {"pattern": "META-INF/services/.*"} + ] + } +} From 18cf51470ac071be8462b28e58a807773c9b0371 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Mon, 20 Mar 2023 18:58:40 +0100 Subject: [PATCH 032/105] Fix typo in file name --- graal/{test-resourc-config.json => test-resource-config.json} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename graal/{test-resourc-config.json => test-resource-config.json} (100%) diff --git a/graal/test-resourc-config.json b/graal/test-resource-config.json similarity index 100% rename from graal/test-resourc-config.json rename to graal/test-resource-config.json From 6b010e6a656d8e83579d7ac9213a7f51166bf2f7 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Mon, 20 Mar 2023 19:22:10 +0100 Subject: [PATCH 033/105] Fix wrongly configured matrix --- .github/workflows/native-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/native-ci.yml b/.github/workflows/native-ci.yml index 3cd3f1eff7bb..bdf63426167f 100644 --- a/.github/workflows/native-ci.yml +++ b/.github/workflows/native-ci.yml @@ -7,7 +7,7 @@ on: jobs: build: name: Build Kord - runs-on: ubuntu-latest + runs-on: ${{ matrix.os }} env: KORD_TEST_TOKEN: ${{ secrets.KORD_TEST_TOKEN }} ACTIONS_ALLOW_UNSECURE_COMMANDS: true From 965d823ee42677f7260b30b71fbad202010133e0 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Mon, 20 Mar 2023 20:05:39 +0100 Subject: [PATCH 034/105] Setup windows compiler toolchain --- .github/workflows/native-ci.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/native-ci.yml b/.github/workflows/native-ci.yml index bdf63426167f..1014838cda31 100644 --- a/.github/workflows/native-ci.yml +++ b/.github/workflows/native-ci.yml @@ -22,6 +22,9 @@ jobs: java-version: '17' components: 'native-image' github-token: ${{ secrets.GITHUB_TOKEN }} + - name: Add msbuild to PATH + if: ${{ matrix.os == windows-latest }} + uses: microsoft/setup-msbuild@v1.1 - name: Build with Gradle uses: gradle/gradle-build-action@v2 with: From 4b82516cf3e080277eab96c7a716c40f338f252b Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Mon, 20 Mar 2023 20:08:18 +0100 Subject: [PATCH 035/105] Fix ci file --- .github/workflows/native-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/native-ci.yml b/.github/workflows/native-ci.yml index 1014838cda31..b642f8d83dc9 100644 --- a/.github/workflows/native-ci.yml +++ b/.github/workflows/native-ci.yml @@ -23,7 +23,7 @@ jobs: components: 'native-image' github-token: ${{ secrets.GITHUB_TOKEN }} - name: Add msbuild to PATH - if: ${{ matrix.os == windows-latest }} + if: ${{ matrix.os == 'windows-latest' }} uses: microsoft/setup-msbuild@v1.1 - name: Build with Gradle uses: gradle/gradle-build-action@v2 From 20d7c31ef6745ca004a71f10478c4980836b0698 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Mon, 20 Mar 2023 23:05:33 +0100 Subject: [PATCH 036/105] Trigger ci build From 3e029f2c4338609c4bf4974702c2a7bd43347790 Mon Sep 17 00:00:00 2001 From: Lukellmann Date: Tue, 21 Mar 2023 02:25:24 +0100 Subject: [PATCH 037/105] Use DSL instead of resource-config.json --- .../src/main/kotlin/kord-module.gradle.kts | 23 +++++++++++-------- common/src/test/kotlin/json/VoiceStateTest.kt | 5 +++- .../reflect-config.json | 0 graal/test-resource-config.json | 10 -------- gradle/libs.versions.toml | 7 +++--- 5 files changed, 21 insertions(+), 24 deletions(-) rename graal/test-reflect-config.json => graal-test-config/reflect-config.json (100%) delete mode 100644 graal/test-resource-config.json diff --git a/buildSrc/src/main/kotlin/kord-module.gradle.kts b/buildSrc/src/main/kotlin/kord-module.gradle.kts index e274b6103a99..77c012260e5c 100644 --- a/buildSrc/src/main/kotlin/kord-module.gradle.kts +++ b/buildSrc/src/main/kotlin/kord-module.gradle.kts @@ -31,6 +31,10 @@ kotlin { } } +ksp { + arg("project", project.name) +} + // https://github.com/Kotlin/kotlinx-atomicfu/issues/210 atomicfu { val libs = extensions.getByType().named("libs") @@ -119,10 +123,6 @@ tasks { } } -ksp { - arg("project", project.name) -} - val dokkaJar by tasks.registering(Jar::class) { group = JavaBasePlugin.DOCUMENTATION_GROUP description = "Assembles Kotlin docs with Dokka" @@ -139,12 +139,15 @@ publishing { } graalvmNative { - binaries { - named("test") { - buildArgs( - "-H:ResourceConfigurationFiles=${rootProject.file("graal/test-resource-config.json").absolutePath}", - "-H:ReflectionConfigurationFiles=${rootProject.file("graal/test-reflect-config.json").absolutePath}" - ) + binaries.named("test") { + configurationFileDirectories.from(rootProject.file("graal-test-config")) + resources { + autodetection { + enabled.set(true) + restrictToProjectDependencies.set(false) + } + // language=regexp + includedPatterns.addAll(""".*\.json""", """.*\.png""") } } } diff --git a/common/src/test/kotlin/json/VoiceStateTest.kt b/common/src/test/kotlin/json/VoiceStateTest.kt index 4f91fe449458..0aa78e4062b8 100644 --- a/common/src/test/kotlin/json/VoiceStateTest.kt +++ b/common/src/test/kotlin/json/VoiceStateTest.kt @@ -5,7 +5,10 @@ import kotlinx.datetime.Instant import kotlinx.serialization.json.Json import org.junit.jupiter.api.Test -private fun file(name: String) = ClassLoader.getSystemResource("json/voice/$name.json")!!.readText() +private fun file(name: String): String { + val loader = ChannelTest::class.java.classLoader + return loader.getResource("json/voice/$name.json")!!.readText() +} class VoiceStateTest { diff --git a/graal/test-reflect-config.json b/graal-test-config/reflect-config.json similarity index 100% rename from graal/test-reflect-config.json rename to graal-test-config/reflect-config.json diff --git a/graal/test-resource-config.json b/graal/test-resource-config.json deleted file mode 100644 index d714cb9a7b06..000000000000 --- a/graal/test-resource-config.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "resources": { - "includes": [ - {"pattern": ".*json"}, - {"pattern": ".*png"}, - {"pattern": ".*kotlin_builtins"}, - {"pattern": "META-INF/services/.*"} - ] - } -} diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 99e6f4b42985..54b859aa5fcc 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -23,7 +23,7 @@ dokka = "1.8.10" # https://github.com/Kotlin/dokka kotlinx-atomicfu = "0.20.0" # https://github.com/Kotlin/kotlinx-atomicfu binary-compatibility-validator = "0.13.0" # https://github.com/Kotlin/binary-compatibility-validator buildconfig = "3.1.0" # https://github.com/gmazzo/gradle-buildconfig-plugin -graal = "0.9.20" # https://github.com/graalvm/native-build-tools +graalvm-native-build-tools = "0.9.20" # https://github.com/graalvm/native-build-tools [libraries] @@ -70,7 +70,8 @@ dokka-plugin = { module = "org.jetbrains.dokka:dokka-gradle-plugin", version.ref atomicfu-plugin = { module = "org.jetbrains.kotlinx:atomicfu-gradle-plugin", version.ref = "kotlinx-atomicfu" } binary-compatibility-validator-plugin = { module = "org.jetbrains.kotlinx:binary-compatibility-validator", version.ref = "binary-compatibility-validator" } ksp-plugin = { module = "com.google.devtools.ksp:symbol-processing-gradle-plugin", version.ref = "ksp" } -graal-plugin = { module = "org.graalvm.buildtools.native:org.graalvm.buildtools.native.gradle.plugin", version.ref = "graal" } +graalvm-native-build-tools-plugin = { module = "org.graalvm.buildtools:native-gradle-plugin", version.ref = "graalvm-native-build-tools" } + [bundles] @@ -86,7 +87,7 @@ pluginsForBuildSrc = [ "atomicfu-plugin", "binary-compatibility-validator-plugin", "ksp-plugin", - "graal-plugin" + "graalvm-native-build-tools-plugin" ] From ec0130fb7c3944817beebd289ccbeac86d847b96 Mon Sep 17 00:00:00 2001 From: Lukellmann Date: Tue, 21 Mar 2023 03:16:28 +0100 Subject: [PATCH 038/105] More compact reflect-config.json --- graal-test-config/reflect-config.json | 36 ++++++++------------------- 1 file changed, 11 insertions(+), 25 deletions(-) diff --git a/graal-test-config/reflect-config.json b/graal-test-config/reflect-config.json index df810f129732..a362a7cc8605 100644 --- a/graal-test-config/reflect-config.json +++ b/graal-test-config/reflect-config.json @@ -1,10 +1,12 @@ [ { "name": "kotlin.internal.jdk8.JDK8PlatformImplementations", - "allPublicMethods": true, - "allDeclaredFields": true, - "allDeclaredMethods": true, - "allDeclaredConstructors": true + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] }, { "name": "io.ktor.network.selector.InterestSuspensionsMap", @@ -12,26 +14,10 @@ }, { "name": "io.ktor.utils.io.pool.DefaultPool", - "allDeclaredFields": true - }, - { - "name": "kotlin.reflect.jvm.internal.ReflectionFactoryImpl", - "allDeclaredConstructors": true - }, - { - "name": "kotlin.KotlinVersion", - "allPublicMethods": true, - "allDeclaredFields": true, - "allDeclaredMethods": true, - "allDeclaredConstructors": true - }, - { - "name": "kotlin.KotlinVersion[]" - }, - { - "name": "kotlin.KotlinVersion$Companion" - }, - { - "name": "kotlin.KotlinVersion$Companion[]" + "fields": [ + { + "name": "top" + } + ] } ] From 745d108a42d12d03066e06486e84df52298e216d Mon Sep 17 00:00:00 2001 From: Lukellmann Date: Tue, 21 Mar 2023 03:18:59 +0100 Subject: [PATCH 039/105] Rename KordGraalProcessor to GraalProcessor --- .../{KordGraalProcessor.kt => GraalProcessor.kt} | 14 +++++++------- ...devtools.ksp.processing.SymbolProcessorProvider | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) rename ksp-processors/src/main/kotlin/graal/{KordGraalProcessor.kt => GraalProcessor.kt} (88%) diff --git a/ksp-processors/src/main/kotlin/graal/KordGraalProcessor.kt b/ksp-processors/src/main/kotlin/graal/GraalProcessor.kt similarity index 88% rename from ksp-processors/src/main/kotlin/graal/KordGraalProcessor.kt rename to ksp-processors/src/main/kotlin/graal/GraalProcessor.kt index 88c23f7c0eb3..481cb824ead5 100644 --- a/ksp-processors/src/main/kotlin/graal/KordGraalProcessor.kt +++ b/ksp-processors/src/main/kotlin/graal/GraalProcessor.kt @@ -9,9 +9,9 @@ import dev.kord.ksp.jvmBinaryName import kotlinx.serialization.KSerializer import kotlinx.serialization.Serializable -class KordGraalProcessorProvider : SymbolProcessorProvider { +class GraalProcessorProvider : SymbolProcessorProvider { override fun create(environment: SymbolProcessorEnvironment): SymbolProcessor { - return KordGraalProcessor( + return GraalProcessor( environment.codeGenerator, environment.logger, environment.options["project"]!! ) } @@ -19,7 +19,7 @@ class KordGraalProcessorProvider : SymbolProcessorProvider { private val entries = mutableListOf() -private class KordGraalProcessor( +private class GraalProcessor( private val codeGenerator: CodeGenerator, private val logger: KSPLogger, private val project: String @@ -27,15 +27,15 @@ private class KordGraalProcessor( SymbolProcessor { override fun finish() { flushEntries() - logger.info("KordGraalProcessor received finish signal") + logger.info("GraalProcessor received finish signal") } override fun onError() { - logger.info("KordGraalProcessor received error signal") + logger.info("GraalProcessor received error signal") } override fun process(resolver: Resolver): List { - logger.info("KordGraalProcessor got called, resolving annotations...") + logger.info("GraalProcessor got called, resolving annotations...") entries += resolver .getSymbolsWithAnnotation() @@ -48,7 +48,7 @@ private class KordGraalProcessor( .filterIsInstance() .map { ReflectConfigEntry(name = it.jvmBinaryName) } - logger.info("KordEnumProcessor finished processing annotations") + logger.info("GraalProcessor finished processing annotations") return emptyList() // we never have to defer any symbols } diff --git a/ksp-processors/src/main/resources/META-INF/services/com.google.devtools.ksp.processing.SymbolProcessorProvider b/ksp-processors/src/main/resources/META-INF/services/com.google.devtools.ksp.processing.SymbolProcessorProvider index 30dfc2af28a6..ab6cbc499a18 100644 --- a/ksp-processors/src/main/resources/META-INF/services/com.google.devtools.ksp.processing.SymbolProcessorProvider +++ b/ksp-processors/src/main/resources/META-INF/services/com.google.devtools.ksp.processing.SymbolProcessorProvider @@ -1,2 +1,2 @@ dev.kord.ksp.kordenum.KordEnumProcessorProvider -dev.kord.ksp.graal.KordGraalProcessorProvider +dev.kord.ksp.graal.GraalProcessorProvider From 3b57e304402114cd3bb756c898321d24f3b325f2 Mon Sep 17 00:00:00 2001 From: Lukellmann Date: Tue, 21 Mar 2023 03:21:04 +0100 Subject: [PATCH 040/105] Make prettyPrintIndent smaller --- .../dev.kord/kord-common/reflect-config.json | 6492 ++++++++--------- .../dev.kord/kord-core/reflect-config.json | 2676 +++---- .../dev.kord/kord-gateway/reflect-config.json | 828 +-- .../src/main/kotlin/graal/ReflectConfig.kt | 3 +- .../dev.kord/kord-voice/reflect-config.json | 504 +- 5 files changed, 5252 insertions(+), 5251 deletions(-) diff --git a/common/build/generated/ksp/main/resources/META-INF/native-image/dev.kord/kord-common/reflect-config.json b/common/build/generated/ksp/main/resources/META-INF/native-image/dev.kord/kord-common/reflect-config.json index fb36ed810929..c502d4df4727 100644 --- a/common/build/generated/ksp/main/resources/META-INF/native-image/dev.kord/kord-common/reflect-config.json +++ b/common/build/generated/ksp/main/resources/META-INF/native-image/dev.kord/kord-common/reflect-config.json @@ -1,3248 +1,3248 @@ [ - { - "name": "dev.kord.common.Color", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.Color$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.DiscordBitSet", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.DiscordBitSet$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.Locale", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.Locale$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordAuditLog", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordAuditLog$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordAuditLogEntry", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordAuditLogEntry$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.AuditLogEntryOptionalInfo", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.AuditLogEntryOptionalInfo$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.AuditLogChange", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.AuditLogChange$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - "kotlinx.serialization.KSerializer" - ] - } - ] - }, - { - "name": "dev.kord.common.entity.AuditLogChangeKey", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.AuditLogChangeKey$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - "kotlinx.serialization.KSerializer" - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordAutoModerationRule", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordAutoModerationRule$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordAutoModerationRuleTriggerMetadata", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordAutoModerationRuleTriggerMetadata$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordAutoModerationAction", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordAutoModerationAction$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordAutoModerationActionMetadata", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordAutoModerationActionMetadata$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordPinsUpdateData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordPinsUpdateData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordTyping", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordTyping$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordBotActivity", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordBotActivity$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordActivity", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordActivity$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.ActivityFlags", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.ActivityFlags$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordActivityTimestamps", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordActivityTimestamps$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordActivityEmoji", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordActivityEmoji$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordActivityParty", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordActivityParty$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordActivityPartySize", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordActivityPartySize$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordActivityAssets", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordActivityAssets$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordActivitySecrets", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordActivitySecrets$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.ActivityType", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.ActivityType$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordApplication", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordApplication$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordPartialApplication", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordPartialApplication$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.ApplicationFlags", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.ApplicationFlags$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.InstallParams", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.InstallParams$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordChannel", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordChannel$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.Overwrite", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.Overwrite$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordThreadMetadata", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordThreadMetadata$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.ArchiveDuration", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.ArchiveDuration$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordComponent", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordComponent$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordChatComponent", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordChatComponent$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordTextInputComponent", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordTextInputComponent$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordConnection", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordConnection$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordEmoji", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordEmoji$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordUpdatedEmojis", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordUpdatedEmojis$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordPartialEmoji", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordPartialEmoji$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordUnavailableGuild", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordUnavailableGuild$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordGuild", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordGuild$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordPartialGuild", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordPartialGuild$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.SystemChannelFlags", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.SystemChannelFlags$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordGuildBan", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordGuildBan$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordGuildIntegrations", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordGuildIntegrations$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordGuildIntegrationsDeleted", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordGuildIntegrationsDeleted$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordIntegrationAccount", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordIntegrationAccount$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordVoiceServerUpdateData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordVoiceServerUpdateData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordWebhooksUpdateData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordWebhooksUpdateData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordVoiceState", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordVoiceState$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordVoiceRegion", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordVoiceRegion$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordWelcomeScreenChannel", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordWelcomeScreenChannel$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordWelcomeScreen", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordWelcomeScreen$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordGuildPreview", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordGuildPreview$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordGuildScheduledEvent", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordGuildScheduledEvent$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.GuildScheduledEventEntityMetadata", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.GuildScheduledEventEntityMetadata$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordGuildWidget", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordGuildWidget$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordIntegration", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordIntegration$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordPartialIntegration", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordPartialIntegration$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.IntegrationApplication", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.IntegrationApplication$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordIntegrationsAccount", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordIntegrationsAccount$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordInvite", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordInvite$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordInviteWithMetadata", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordInviteWithMetadata$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordPartialInvite", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordPartialInvite$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordMessage", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordMessage$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordMessageSticker", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordMessageSticker$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordStickerPack", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordStickerPack$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordStickerItem", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordStickerItem$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordPartialMessage", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordPartialMessage$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordMessageReference", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordMessageReference$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordMentionedChannel", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordMentionedChannel$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.MessageFlags", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.MessageFlags$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordAttachment", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordAttachment$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordEmbed", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordEmbed$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordEmbed$Footer", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordEmbed$Footer$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordEmbed$Image", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordEmbed$Image$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordEmbed$Thumbnail", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordEmbed$Thumbnail$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordEmbed$Video", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordEmbed$Video$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordEmbed$Provider", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordEmbed$Provider$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordEmbed$Author", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordEmbed$Author$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordEmbed$Field", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordEmbed$Field$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.Reaction", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.Reaction$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.MessageActivity", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.MessageActivity$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.MessageApplication", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.MessageApplication$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DeletedMessage", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DeletedMessage$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.BulkDeleteData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.BulkDeleteData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.MessageReactionAddData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.MessageReactionAddData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.MessageReactionRemoveData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.MessageReactionRemoveData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.AllRemovedMessageReactions", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.AllRemovedMessageReactions$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.AllowedMentions", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.AllowedMentions$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordMessageInteraction", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordMessageInteraction$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.RoleSubscription", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.RoleSubscription$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordNull", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordNull$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordRole", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordRole$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordRoleTags", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordRoleTags$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordPartialRole", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordPartialRole$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordAuditLogRoleChange", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordAuditLogRoleChange$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordGuildRole", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordGuildRole$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordDeletedGuildRole", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordDeletedGuildRole$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordSelectOption", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordSelectOption$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordShard", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordShard$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordStageInstance", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordStageInstance$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordTemplate", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordTemplate$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordUser", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordUser$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordOptionallyMemberUser", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordOptionallyMemberUser$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.UserFlags", - "fields": [ - { - "name": "UserFlagsSerializer" - } - ] - }, - { - "name": "dev.kord.common.entity.UserFlags$UserFlagsSerializer", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordWebhook", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordWebhook$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordApplicationCommand", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordApplicationCommand$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.ApplicationCommandOption", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.ApplicationCommandOption$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.Choice", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.Choice$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - "kotlinx.serialization.KSerializer" - ] - } - ] - }, - { - "name": "dev.kord.common.entity.ResolvedObjects", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.ResolvedObjects$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordInteraction", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordInteraction$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.InteractionCallbackData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.InteractionCallbackData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.Option", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.Option$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.SubCommand", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.SubCommand$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.CommandArgument", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.CommandArgument$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - "kotlinx.serialization.KSerializer" - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordGuildApplicationCommandPermissions", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordGuildApplicationCommandPermissions$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordGuildApplicationCommandPermission", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordGuildApplicationCommandPermission$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordGuildApplicationCommandPermission$Type", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordGuildApplicationCommandPermission$Type$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordAutoComplete", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordAutoComplete$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - "kotlinx.serialization.KSerializer" - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordModal", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordModal$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordGuildMember", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordGuildMember$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordInteractionGuildMember", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordInteractionGuildMember$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordAddedGuildMember", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordAddedGuildMember$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordRemovedGuildMember", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordRemovedGuildMember$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordUpdatedGuildMember", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordUpdatedGuildMember$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordThreadMember", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordThreadMember$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.GuildMemberFlags", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.GuildMemberFlags$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.GuildMemberFlag", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.GuildMemberFlag$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.Permissions", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.Permissions$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordPresenceUpdate", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordPresenceUpdate$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordPresenceUser", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordPresenceUser$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordClientStatus", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordClientStatus$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.Snowflake", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.Snowflake$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordTeam", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordTeam$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordTeamMember", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordTeamMember$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.optional.Optional", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.optional.Optional$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - "kotlinx.serialization.KSerializer" - ] - } - ] - }, - { - "name": "dev.kord.common.entity.optional.OptionalBoolean", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.optional.OptionalBoolean$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.optional.OptionalInt", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.optional.OptionalInt$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.optional.OptionalLong", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.optional.OptionalLong$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.optional.OptionalSnowflake", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.optional.OptionalSnowflake$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.AllowedMentionType", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.AllowedMentionType$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.ApplicationCommandOptionType", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.ApplicationCommandOptionType$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.ApplicationCommandPermissionType", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.ApplicationCommandPermissionType$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.ApplicationCommandType", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.ApplicationCommandType$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.AuditLogEvent", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.AuditLogEvent$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.AutoModerationActionType", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.AutoModerationActionType$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.AutoModerationRuleEventType", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.AutoModerationRuleEventType$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.AutoModerationRuleKeywordPresetType", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.AutoModerationRuleKeywordPresetType$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.AutoModerationRuleTriggerType", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.AutoModerationRuleTriggerType$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.ButtonStyle", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.ButtonStyle$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.ChannelType", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.ChannelType$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.ComponentType", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.ComponentType$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DefaultMessageNotificationLevel", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DefaultMessageNotificationLevel$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordConnectionVisibility", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.DiscordConnectionVisibility$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.EmbedType", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.EmbedType$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.ExplicitContentFilter", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.ExplicitContentFilter$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.GuildFeature", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.GuildFeature$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.GuildScheduledEventPrivacyLevel", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.GuildScheduledEventPrivacyLevel$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.GuildScheduledEventStatus", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.GuildScheduledEventStatus$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.IntegrationExpireBehavior", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.IntegrationExpireBehavior$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.InteractionResponseType", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.InteractionResponseType$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.InteractionType", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.InteractionType$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.InviteTargetType", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.InviteTargetType$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.MessageActivityType", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.MessageActivityType$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.MessageStickerType", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.MessageStickerType$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.MessageType", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.MessageType$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.MFALevel", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.MFALevel$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.NsfwLevel", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.NsfwLevel$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.OverwriteType", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.OverwriteType$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.PremiumTier", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.PremiumTier$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.PresenceStatus", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.PresenceStatus$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.ScheduledEntityType", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.ScheduledEntityType$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.StageInstancePrivacyLevel", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.StageInstancePrivacyLevel$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.TeamMembershipState", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.TeamMembershipState$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.TextInputStyle", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.TextInputStyle$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.UserPremium", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.UserPremium$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.VerificationLevel", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.VerificationLevel$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.VideoQualityMode", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.VideoQualityMode$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.common.entity.WebhookType", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.common.entity.WebhookType$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - } + { + "name": "dev.kord.common.Color", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.Color$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.DiscordBitSet", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.DiscordBitSet$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.Locale", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.Locale$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAuditLog", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAuditLog$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAuditLogEntry", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAuditLogEntry$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.AuditLogEntryOptionalInfo", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.AuditLogEntryOptionalInfo$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.AuditLogChange", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.AuditLogChange$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + "kotlinx.serialization.KSerializer" + ] + } + ] + }, + { + "name": "dev.kord.common.entity.AuditLogChangeKey", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.AuditLogChangeKey$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + "kotlinx.serialization.KSerializer" + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAutoModerationRule", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAutoModerationRule$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAutoModerationRuleTriggerMetadata", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAutoModerationRuleTriggerMetadata$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAutoModerationAction", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAutoModerationAction$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAutoModerationActionMetadata", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAutoModerationActionMetadata$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPinsUpdateData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPinsUpdateData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordTyping", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordTyping$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordBotActivity", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordBotActivity$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordActivity", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordActivity$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.ActivityFlags", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.ActivityFlags$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordActivityTimestamps", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordActivityTimestamps$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordActivityEmoji", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordActivityEmoji$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordActivityParty", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordActivityParty$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordActivityPartySize", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordActivityPartySize$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordActivityAssets", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordActivityAssets$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordActivitySecrets", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordActivitySecrets$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.ActivityType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.ActivityType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordApplication", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordApplication$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPartialApplication", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPartialApplication$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.ApplicationFlags", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.ApplicationFlags$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.InstallParams", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.InstallParams$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordChannel", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordChannel$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.Overwrite", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.Overwrite$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordThreadMetadata", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordThreadMetadata$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.ArchiveDuration", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.ArchiveDuration$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordComponent", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordComponent$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordChatComponent", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordChatComponent$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordTextInputComponent", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordTextInputComponent$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordConnection", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordConnection$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordEmoji", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordEmoji$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordUpdatedEmojis", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordUpdatedEmojis$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPartialEmoji", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPartialEmoji$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordUnavailableGuild", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordUnavailableGuild$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuild", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuild$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPartialGuild", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPartialGuild$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.SystemChannelFlags", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.SystemChannelFlags$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildBan", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildBan$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildIntegrations", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildIntegrations$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildIntegrationsDeleted", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildIntegrationsDeleted$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordIntegrationAccount", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordIntegrationAccount$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordVoiceServerUpdateData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordVoiceServerUpdateData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordWebhooksUpdateData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordWebhooksUpdateData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordVoiceState", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordVoiceState$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordVoiceRegion", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordVoiceRegion$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordWelcomeScreenChannel", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordWelcomeScreenChannel$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordWelcomeScreen", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordWelcomeScreen$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildPreview", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildPreview$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildScheduledEvent", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildScheduledEvent$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.GuildScheduledEventEntityMetadata", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.GuildScheduledEventEntityMetadata$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildWidget", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildWidget$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordIntegration", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordIntegration$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPartialIntegration", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPartialIntegration$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.IntegrationApplication", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.IntegrationApplication$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordIntegrationsAccount", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordIntegrationsAccount$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordInvite", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordInvite$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordInviteWithMetadata", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordInviteWithMetadata$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPartialInvite", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPartialInvite$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordMessage", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordMessage$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordMessageSticker", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordMessageSticker$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordStickerPack", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordStickerPack$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordStickerItem", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordStickerItem$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPartialMessage", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPartialMessage$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordMessageReference", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordMessageReference$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordMentionedChannel", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordMentionedChannel$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.MessageFlags", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.MessageFlags$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAttachment", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAttachment$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordEmbed", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordEmbed$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordEmbed$Footer", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordEmbed$Footer$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordEmbed$Image", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordEmbed$Image$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordEmbed$Thumbnail", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordEmbed$Thumbnail$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordEmbed$Video", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordEmbed$Video$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordEmbed$Provider", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordEmbed$Provider$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordEmbed$Author", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordEmbed$Author$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordEmbed$Field", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordEmbed$Field$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.Reaction", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.Reaction$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.MessageActivity", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.MessageActivity$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.MessageApplication", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.MessageApplication$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DeletedMessage", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DeletedMessage$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.BulkDeleteData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.BulkDeleteData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.MessageReactionAddData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.MessageReactionAddData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.MessageReactionRemoveData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.MessageReactionRemoveData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.AllRemovedMessageReactions", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.AllRemovedMessageReactions$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.AllowedMentions", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.AllowedMentions$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordMessageInteraction", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordMessageInteraction$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.RoleSubscription", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.RoleSubscription$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordNull", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordNull$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordRole", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordRole$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordRoleTags", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordRoleTags$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPartialRole", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPartialRole$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAuditLogRoleChange", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAuditLogRoleChange$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildRole", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildRole$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordDeletedGuildRole", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordDeletedGuildRole$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordSelectOption", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordSelectOption$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordShard", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordShard$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordStageInstance", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordStageInstance$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordTemplate", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordTemplate$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordUser", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordUser$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordOptionallyMemberUser", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordOptionallyMemberUser$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.UserFlags", + "fields": [ + { + "name": "UserFlagsSerializer" + } + ] + }, + { + "name": "dev.kord.common.entity.UserFlags$UserFlagsSerializer", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordWebhook", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordWebhook$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordApplicationCommand", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordApplicationCommand$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.ApplicationCommandOption", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.ApplicationCommandOption$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.Choice", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.Choice$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + "kotlinx.serialization.KSerializer" + ] + } + ] + }, + { + "name": "dev.kord.common.entity.ResolvedObjects", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.ResolvedObjects$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordInteraction", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordInteraction$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.InteractionCallbackData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.InteractionCallbackData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.Option", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.Option$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.SubCommand", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.SubCommand$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.CommandArgument", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.CommandArgument$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + "kotlinx.serialization.KSerializer" + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildApplicationCommandPermissions", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildApplicationCommandPermissions$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildApplicationCommandPermission", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildApplicationCommandPermission$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildApplicationCommandPermission$Type", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildApplicationCommandPermission$Type$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAutoComplete", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAutoComplete$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + "kotlinx.serialization.KSerializer" + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordModal", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordModal$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildMember", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildMember$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordInteractionGuildMember", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordInteractionGuildMember$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAddedGuildMember", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAddedGuildMember$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordRemovedGuildMember", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordRemovedGuildMember$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordUpdatedGuildMember", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordUpdatedGuildMember$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordThreadMember", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordThreadMember$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.GuildMemberFlags", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.GuildMemberFlags$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.GuildMemberFlag", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.GuildMemberFlag$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.Permissions", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.Permissions$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPresenceUpdate", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPresenceUpdate$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPresenceUser", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPresenceUser$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordClientStatus", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordClientStatus$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.Snowflake", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.Snowflake$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordTeam", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordTeam$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordTeamMember", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordTeamMember$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.optional.Optional", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.optional.Optional$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + "kotlinx.serialization.KSerializer" + ] + } + ] + }, + { + "name": "dev.kord.common.entity.optional.OptionalBoolean", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.optional.OptionalBoolean$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.optional.OptionalInt", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.optional.OptionalInt$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.optional.OptionalLong", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.optional.OptionalLong$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.optional.OptionalSnowflake", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.optional.OptionalSnowflake$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.AllowedMentionType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.AllowedMentionType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.ApplicationCommandOptionType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.ApplicationCommandOptionType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.ApplicationCommandPermissionType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.ApplicationCommandPermissionType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.ApplicationCommandType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.ApplicationCommandType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.AuditLogEvent", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.AuditLogEvent$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.AutoModerationActionType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.AutoModerationActionType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.AutoModerationRuleEventType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.AutoModerationRuleEventType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.AutoModerationRuleKeywordPresetType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.AutoModerationRuleKeywordPresetType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.AutoModerationRuleTriggerType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.AutoModerationRuleTriggerType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.ButtonStyle", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.ButtonStyle$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.ChannelType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.ChannelType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.ComponentType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.ComponentType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DefaultMessageNotificationLevel", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DefaultMessageNotificationLevel$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordConnectionVisibility", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordConnectionVisibility$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.EmbedType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.EmbedType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.ExplicitContentFilter", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.ExplicitContentFilter$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.GuildFeature", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.GuildFeature$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.GuildScheduledEventPrivacyLevel", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.GuildScheduledEventPrivacyLevel$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.GuildScheduledEventStatus", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.GuildScheduledEventStatus$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.IntegrationExpireBehavior", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.IntegrationExpireBehavior$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.InteractionResponseType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.InteractionResponseType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.InteractionType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.InteractionType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.InviteTargetType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.InviteTargetType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.MessageActivityType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.MessageActivityType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.MessageStickerType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.MessageStickerType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.MessageType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.MessageType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.MFALevel", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.MFALevel$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.NsfwLevel", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.NsfwLevel$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.OverwriteType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.OverwriteType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.PremiumTier", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.PremiumTier$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.PresenceStatus", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.PresenceStatus$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.ScheduledEntityType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.ScheduledEntityType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.StageInstancePrivacyLevel", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.StageInstancePrivacyLevel$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.TeamMembershipState", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.TeamMembershipState$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.TextInputStyle", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.TextInputStyle$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.UserPremium", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.UserPremium$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.VerificationLevel", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.VerificationLevel$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.VideoQualityMode", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.VideoQualityMode$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.WebhookType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.WebhookType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + } ] \ No newline at end of file diff --git a/core/build/generated/ksp/main/resources/META-INF/native-image/dev.kord/kord-core/reflect-config.json b/core/build/generated/ksp/main/resources/META-INF/native-image/dev.kord/kord-core/reflect-config.json index 3e84d74d71c1..83b705091d17 100644 --- a/core/build/generated/ksp/main/resources/META-INF/native-image/dev.kord/kord-core/reflect-config.json +++ b/core/build/generated/ksp/main/resources/META-INF/native-image/dev.kord/kord-core/reflect-config.json @@ -1,1340 +1,1340 @@ [ - { - "name": "dev.kord.core.cache.data.ActivityData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.ActivityData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.ApplicationCommandData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.ApplicationCommandData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.ApplicationCommandOptionData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.ApplicationCommandOptionData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.ApplicationCommandGroupData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.ApplicationCommandGroupData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.ApplicationCommandSubcommandData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.ApplicationCommandSubcommandData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.ApplicationCommandParameterData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.ApplicationCommandParameterData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.ApplicationCommandOptionChoiceData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.ApplicationCommandOptionChoiceData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.ApplicationData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.ApplicationData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.PartialApplicationData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.PartialApplicationData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.AttachmentData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.AttachmentData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.AutoModerationRuleData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.AutoModerationRuleData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.AutoModerationRuleTriggerMetadataData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.AutoModerationRuleTriggerMetadataData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.AutoModerationActionData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.AutoModerationActionData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.AutoModerationActionMetadataData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.AutoModerationActionMetadataData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.BanData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.BanData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.ChannelData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.ChannelData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.ThreadMetadataData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.ThreadMetadataData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.ClientStatusData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.ClientStatusData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.ComponentData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.ComponentData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.ChatComponentData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.ChatComponentData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.TextInputComponentData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.TextInputComponentData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.EmbedData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.EmbedData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.EmbedFooterData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.EmbedFooterData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.EmbedImageData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.EmbedImageData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.EmbedThumbnailData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.EmbedThumbnailData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.EmbedVideoData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.EmbedVideoData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.EmbedProviderData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.EmbedProviderData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.EmbedAuthorData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.EmbedAuthorData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.EmbedFieldData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.EmbedFieldData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.EmojiData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.EmojiData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.GuildData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.GuildData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.GuildPreviewData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.GuildPreviewData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.GuildScheduledEventData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.GuildScheduledEventData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.GuildWidgetData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.GuildWidgetData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.IntegrationData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.IntegrationData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.IntegrationsAccountData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.IntegrationsAccountData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.InteractionData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.InteractionData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.ResolvedObjectsData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.ResolvedObjectsData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.ApplicationInteractionData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.ApplicationInteractionData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.OptionData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.OptionData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.InviteCreateData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.InviteCreateData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.InviteData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.InviteData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.InviteWithMetadataData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.InviteWithMetadataData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.InviteDeleteData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.InviteDeleteData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.MemberData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.MemberData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.MembersChunkData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.MembersChunkData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.MessageData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.MessageData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.MessageInteractionData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.MessageInteractionData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.MessageReferenceData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.MessageReferenceData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.PartialGuildData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.PartialGuildData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.PermissionOverwriteData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.PermissionOverwriteData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.PresenceData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.PresenceData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.ReactionData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.ReactionData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.RemovedReactionData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.RemovedReactionData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.ReactionRemoveEmojiData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.ReactionRemoveEmojiData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.RegionData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.RegionData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.RoleData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.RoleData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.RoleTagsData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.RoleTagsData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.SelectOptionData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.SelectOptionData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.StageInstanceData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.StageInstanceData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.StickerData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.StickerData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.StickerItemData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.StickerItemData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.TeamData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.TeamData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.TeamMemberData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.TeamMemberData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.TemplateData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.TemplateData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.ThreadMemberData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.ThreadMemberData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.UserData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.UserData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.VoiceStateData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.VoiceStateData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.WebhookData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.WebhookData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.WelcomeScreenData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.WelcomeScreenData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.WelcomeScreenChannelData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.WelcomeScreenChannelData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.event.automoderation.data.AutoModerationActionExecutionEventData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.event.automoderation.data.AutoModerationActionExecutionEventData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.event.channel.data.ChannelPinsUpdateEventData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.event.channel.data.ChannelPinsUpdateEventData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.event.channel.data.TypingStartEventData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.event.channel.data.TypingStartEventData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.GuildApplicationCommandPermissionsData" - }, - { - "name": "dev.kord.core.cache.data.StickerPackData" - } + { + "name": "dev.kord.core.cache.data.ActivityData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.ActivityData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.ApplicationCommandData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.ApplicationCommandData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.ApplicationCommandOptionData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.ApplicationCommandOptionData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.ApplicationCommandGroupData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.ApplicationCommandGroupData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.ApplicationCommandSubcommandData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.ApplicationCommandSubcommandData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.ApplicationCommandParameterData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.ApplicationCommandParameterData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.ApplicationCommandOptionChoiceData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.ApplicationCommandOptionChoiceData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.ApplicationData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.ApplicationData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.PartialApplicationData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.PartialApplicationData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.AttachmentData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.AttachmentData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.AutoModerationRuleData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.AutoModerationRuleData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.AutoModerationRuleTriggerMetadataData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.AutoModerationRuleTriggerMetadataData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.AutoModerationActionData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.AutoModerationActionData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.AutoModerationActionMetadataData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.AutoModerationActionMetadataData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.BanData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.BanData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.ChannelData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.ChannelData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.ThreadMetadataData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.ThreadMetadataData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.ClientStatusData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.ClientStatusData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.ComponentData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.ComponentData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.ChatComponentData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.ChatComponentData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.TextInputComponentData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.TextInputComponentData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.EmbedData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.EmbedData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.EmbedFooterData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.EmbedFooterData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.EmbedImageData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.EmbedImageData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.EmbedThumbnailData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.EmbedThumbnailData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.EmbedVideoData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.EmbedVideoData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.EmbedProviderData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.EmbedProviderData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.EmbedAuthorData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.EmbedAuthorData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.EmbedFieldData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.EmbedFieldData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.EmojiData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.EmojiData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.GuildData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.GuildData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.GuildPreviewData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.GuildPreviewData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.GuildScheduledEventData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.GuildScheduledEventData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.GuildWidgetData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.GuildWidgetData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.IntegrationData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.IntegrationData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.IntegrationsAccountData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.IntegrationsAccountData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.InteractionData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.InteractionData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.ResolvedObjectsData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.ResolvedObjectsData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.ApplicationInteractionData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.ApplicationInteractionData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.OptionData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.OptionData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.InviteCreateData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.InviteCreateData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.InviteData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.InviteData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.InviteWithMetadataData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.InviteWithMetadataData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.InviteDeleteData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.InviteDeleteData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.MemberData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.MemberData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.MembersChunkData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.MembersChunkData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.MessageData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.MessageData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.MessageInteractionData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.MessageInteractionData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.MessageReferenceData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.MessageReferenceData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.PartialGuildData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.PartialGuildData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.PermissionOverwriteData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.PermissionOverwriteData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.PresenceData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.PresenceData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.ReactionData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.ReactionData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.RemovedReactionData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.RemovedReactionData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.ReactionRemoveEmojiData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.ReactionRemoveEmojiData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.RegionData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.RegionData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.RoleData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.RoleData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.RoleTagsData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.RoleTagsData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.SelectOptionData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.SelectOptionData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.StageInstanceData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.StageInstanceData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.StickerData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.StickerData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.StickerItemData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.StickerItemData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.TeamData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.TeamData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.TeamMemberData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.TeamMemberData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.TemplateData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.TemplateData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.ThreadMemberData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.ThreadMemberData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.UserData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.UserData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.VoiceStateData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.VoiceStateData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.WebhookData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.WebhookData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.WelcomeScreenData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.WelcomeScreenData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.WelcomeScreenChannelData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.WelcomeScreenChannelData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.event.automoderation.data.AutoModerationActionExecutionEventData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.event.automoderation.data.AutoModerationActionExecutionEventData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.event.channel.data.ChannelPinsUpdateEventData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.event.channel.data.ChannelPinsUpdateEventData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.event.channel.data.TypingStartEventData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.event.channel.data.TypingStartEventData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.GuildApplicationCommandPermissionsData" + }, + { + "name": "dev.kord.core.cache.data.StickerPackData" + } ] \ No newline at end of file diff --git a/gateway/build/generated/ksp/main/resources/META-INF/native-image/dev.kord/kord-gateway/reflect-config.json b/gateway/build/generated/ksp/main/resources/META-INF/native-image/dev.kord/kord-gateway/reflect-config.json index 4d703312ecb1..fc9407d2e5db 100644 --- a/gateway/build/generated/ksp/main/resources/META-INF/native-image/dev.kord/kord-gateway/reflect-config.json +++ b/gateway/build/generated/ksp/main/resources/META-INF/native-image/dev.kord/kord-gateway/reflect-config.json @@ -1,416 +1,416 @@ [ - { - "name": "dev.kord.gateway.Identify", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.gateway.Identify$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.gateway.IdentifyProperties", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.gateway.IdentifyProperties$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.gateway.GuildMembersChunkData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.gateway.GuildMembersChunkData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.gateway.DiscordPresence", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.gateway.DiscordPresence$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.gateway.Resume", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.gateway.Resume$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.gateway.RequestGuildMembers", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.gateway.RequestGuildMembers$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.gateway.UpdateVoiceStatus", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.gateway.UpdateVoiceStatus$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.gateway.UpdateStatus", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.gateway.UpdateStatus$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.gateway.Hello", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.gateway.Hello$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.gateway.ReadyData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.gateway.ReadyData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.gateway.Heartbeat", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.gateway.Heartbeat$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.gateway.Resumed", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.gateway.Resumed$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.gateway.InvalidSession", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.gateway.InvalidSession$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.gateway.DiscordAutoModerationActionExecution", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.gateway.DiscordAutoModerationActionExecution$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.gateway.DiscordDeletedInvite", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.gateway.DiscordDeletedInvite$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.gateway.DiscordCreatedInvite", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.gateway.DiscordCreatedInvite$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.gateway.DiscordRemovedEmoji", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.gateway.DiscordRemovedEmoji$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.gateway.DiscordRemovedReactionEmoji", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.gateway.DiscordRemovedReactionEmoji$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.gateway.GuildScheduledEventUserMetadata", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.gateway.GuildScheduledEventUserMetadata$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.gateway.DiscordThreadListSync", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.gateway.DiscordThreadListSync$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.gateway.DiscordThreadMembersUpdate", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.gateway.DiscordThreadMembersUpdate$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.gateway.Intents", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.gateway.Intents$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.gateway.OpCode", - "fields": [ - { - "name": "OpCodeSerializer" - } - ] - }, - { - "name": "dev.kord.gateway.OpCode$OpCodeSerializer", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - } + { + "name": "dev.kord.gateway.Identify", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.Identify$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.IdentifyProperties", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.IdentifyProperties$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.GuildMembersChunkData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.GuildMembersChunkData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.DiscordPresence", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.DiscordPresence$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.Resume", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.Resume$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.RequestGuildMembers", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.RequestGuildMembers$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.UpdateVoiceStatus", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.UpdateVoiceStatus$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.UpdateStatus", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.UpdateStatus$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.Hello", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.Hello$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.ReadyData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.ReadyData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.Heartbeat", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.Heartbeat$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.Resumed", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.Resumed$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.InvalidSession", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.InvalidSession$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.DiscordAutoModerationActionExecution", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.DiscordAutoModerationActionExecution$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.DiscordDeletedInvite", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.DiscordDeletedInvite$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.DiscordCreatedInvite", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.DiscordCreatedInvite$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.DiscordRemovedEmoji", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.DiscordRemovedEmoji$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.DiscordRemovedReactionEmoji", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.DiscordRemovedReactionEmoji$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.GuildScheduledEventUserMetadata", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.GuildScheduledEventUserMetadata$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.DiscordThreadListSync", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.DiscordThreadListSync$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.DiscordThreadMembersUpdate", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.DiscordThreadMembersUpdate$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.Intents", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.Intents$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.OpCode", + "fields": [ + { + "name": "OpCodeSerializer" + } + ] + }, + { + "name": "dev.kord.gateway.OpCode$OpCodeSerializer", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + } ] \ No newline at end of file diff --git a/ksp-processors/src/main/kotlin/graal/ReflectConfig.kt b/ksp-processors/src/main/kotlin/graal/ReflectConfig.kt index 4cd2dec31d7b..56bf5eeb9127 100644 --- a/ksp-processors/src/main/kotlin/graal/ReflectConfig.kt +++ b/ksp-processors/src/main/kotlin/graal/ReflectConfig.kt @@ -11,6 +11,7 @@ import kotlinx.serialization.json.Json private val json = Json { encodeDefaults = false prettyPrint = true + prettyPrintIndent = " " } fun ReflectConfig.encode() = json.encodeToString(this) @@ -33,7 +34,7 @@ data class ReflectConfigEntry( val allPublicClasses: Boolean = false, val fields: List = emptyList(), val methods: List = emptyList(), - val queriedMethods: List = emptyList() + val queriedMethods: List = emptyList(), ) { @Serializable data class Field(val name: String) diff --git a/voice/build/generated/ksp/main/resources/META-INF/native-image/dev.kord/kord-voice/reflect-config.json b/voice/build/generated/ksp/main/resources/META-INF/native-image/dev.kord/kord-voice/reflect-config.json index 5a470e5b9768..fa607a00b8e7 100644 --- a/voice/build/generated/ksp/main/resources/META-INF/native-image/dev.kord/kord-voice/reflect-config.json +++ b/voice/build/generated/ksp/main/resources/META-INF/native-image/dev.kord/kord-voice/reflect-config.json @@ -1,254 +1,254 @@ [ - { - "name": "dev.kord.voice.SpeakingFlags", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.voice.SpeakingFlags$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.voice.gateway.Identify", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.voice.gateway.Identify$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.voice.gateway.Heartbeat", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.voice.gateway.Heartbeat$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.voice.gateway.SendSpeaking", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.voice.gateway.SendSpeaking$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.voice.gateway.SelectProtocol", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.voice.gateway.SelectProtocol$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.voice.gateway.SelectProtocol$Data", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.voice.gateway.SelectProtocol$Data$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.voice.gateway.Resume", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.voice.gateway.Resume$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.voice.gateway.Ready", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.voice.gateway.Ready$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.voice.gateway.Hello", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.voice.gateway.Hello$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.voice.gateway.HeartbeatAck", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.voice.gateway.HeartbeatAck$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.voice.gateway.SessionDescription", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.voice.gateway.SessionDescription$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.voice.gateway.Speaking", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.voice.gateway.Speaking$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.voice.gateway.Resumed", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.voice.gateway.Resumed$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.voice.EncryptionMode", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.voice.EncryptionMode$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - } + { + "name": "dev.kord.voice.SpeakingFlags", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.voice.SpeakingFlags$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.voice.gateway.Identify", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.voice.gateway.Identify$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.voice.gateway.Heartbeat", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.voice.gateway.Heartbeat$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.voice.gateway.SendSpeaking", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.voice.gateway.SendSpeaking$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.voice.gateway.SelectProtocol", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.voice.gateway.SelectProtocol$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.voice.gateway.SelectProtocol$Data", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.voice.gateway.SelectProtocol$Data$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.voice.gateway.Resume", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.voice.gateway.Resume$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.voice.gateway.Ready", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.voice.gateway.Ready$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.voice.gateway.Hello", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.voice.gateway.Hello$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.voice.gateway.HeartbeatAck", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.voice.gateway.HeartbeatAck$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.voice.gateway.SessionDescription", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.voice.gateway.SessionDescription$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.voice.gateway.Speaking", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.voice.gateway.Speaking$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.voice.gateway.Resumed", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.voice.gateway.Resumed$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.voice.EncryptionMode", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.voice.EncryptionMode$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + } ] \ No newline at end of file From ac8e4a6693547f66e95b1826b59a29bf6a295eaa Mon Sep 17 00:00:00 2001 From: Lukellmann Date: Tue, 21 Mar 2023 03:24:26 +0100 Subject: [PATCH 041/105] Update GraalVisible KDoc --- ksp-annotations/src/main/kotlin/GraalVisible.kt | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/ksp-annotations/src/main/kotlin/GraalVisible.kt b/ksp-annotations/src/main/kotlin/GraalVisible.kt index 0ae49570d845..bd2647a3828e 100644 --- a/ksp-annotations/src/main/kotlin/GraalVisible.kt +++ b/ksp-annotations/src/main/kotlin/GraalVisible.kt @@ -1,10 +1,13 @@ package dev.kord.ksp +import kotlin.annotation.AnnotationRetention.SOURCE +import kotlin.annotation.AnnotationTarget.CLASS + /** - * Marks this class as visible via Reflection in Graal. + * Marks this class as visible via Reflection in GraalVM Native Image. * - * **This is only needed for types not annotated with [Serializable]** + * **This is only needed for types not annotated with `@kotlinx.serialization.Serializable`.** */ -@Retention(AnnotationRetention.SOURCE) -@Target(AnnotationTarget.CLASS) +@Retention(SOURCE) +@Target(CLASS) annotation class GraalVisible From aea95860602d0cd3187e1f19a9920ce4789f0118 Mon Sep 17 00:00:00 2001 From: Lukellmann Date: Tue, 21 Mar 2023 03:48:56 +0100 Subject: [PATCH 042/105] Update ReflectConfigEntry --- .../src/main/kotlin/graal/GraalProcessor.kt | 3 +- .../src/main/kotlin/graal/ReflectConfig.kt | 43 ++++++++++--------- 2 files changed, 24 insertions(+), 22 deletions(-) diff --git a/ksp-processors/src/main/kotlin/graal/GraalProcessor.kt b/ksp-processors/src/main/kotlin/graal/GraalProcessor.kt index 481cb824ead5..ad33b26ea9dc 100644 --- a/ksp-processors/src/main/kotlin/graal/GraalProcessor.kt +++ b/ksp-processors/src/main/kotlin/graal/GraalProcessor.kt @@ -55,14 +55,13 @@ private class GraalProcessor( private fun flushEntries() { if (entries.isNotEmpty()) { - val config = ReflectConfig(entries.distinctBy(ReflectConfigEntry::name)) val file = codeGenerator .createNewFileByPath( Dependencies.ALL_FILES, "META-INF/native-image/dev.kord/kord-${project}/reflect-config", "json" ) - file.bufferedWriter().use { it.write(config.encode()) } + file.bufferedWriter().use { it.write(entries.encodeToJson()) } } } diff --git a/ksp-processors/src/main/kotlin/graal/ReflectConfig.kt b/ksp-processors/src/main/kotlin/graal/ReflectConfig.kt index 56bf5eeb9127..405a888b17bf 100644 --- a/ksp-processors/src/main/kotlin/graal/ReflectConfig.kt +++ b/ksp-processors/src/main/kotlin/graal/ReflectConfig.kt @@ -3,6 +3,7 @@ package dev.kord.ksp.graal import kotlinx.serialization.EncodeDefault +import kotlinx.serialization.EncodeDefault.Mode.ALWAYS import kotlinx.serialization.ExperimentalSerializationApi import kotlinx.serialization.Serializable import kotlinx.serialization.encodeToString @@ -14,37 +15,39 @@ private val json = Json { prettyPrintIndent = " " } -fun ReflectConfig.encode() = json.encodeToString(this) +fun List.encodeToJson() = json.encodeToString(this) -// Reference: https://www.graalvm.org/latest/reference-manual/native-image/metadata/#specifying-reflection-metadata-in-json -@Serializable -@JvmInline -value class ReflectConfig(val entries: List) : List by entries - +/** + * An entry of a + * [`reflect-config.json`](https://www.graalvm.org/latest/reference-manual/native-image/metadata/#specifying-reflection-metadata-in-json) + * file. + */ @Serializable data class ReflectConfigEntry( - val name: String, val condition: Condition? = null, - val queryAllDeclaredConstructors: Boolean = false, - val queryAllPublicConstructors: Boolean = false, - val queryAllDeclaredMethods: Boolean = false, - val queryAllPublicMethods: Boolean = false, - val allDeclaredClasses: Boolean = false, - val allPublicClasses: Boolean = false, - val fields: List = emptyList(), + val name: String, val methods: List = emptyList(), val queriedMethods: List = emptyList(), + val fields: List = emptyList(), + val allDeclaredMethods: Boolean = false, + val allDeclaredFields: Boolean = false, + val allDeclaredConstructors: Boolean = false, + val allPublicMethods: Boolean = false, + val allPublicFields: Boolean = false, + val allPublicConstructors: Boolean = false, + val queryAllDeclaredMethods: Boolean = false, + val queryAllDeclaredConstructors: Boolean = false, + val queryAllPublicMethods: Boolean = false, + val queryAllPublicConstructors: Boolean = false, + val unsafeAllocated: Boolean = false, ) { @Serializable - data class Field(val name: String) + data class Condition(val typeReachable: String) @Serializable - data class Method( - val name: String, - @EncodeDefault val parameterTypes: List = emptyList(), - ) + data class Method(val name: String, @EncodeDefault(ALWAYS) val parameterTypes: List = emptyList()) @Serializable - data class Condition(val typeReachable: String) + data class Field(val name: String) } From bcb99dcf89ba99435af631531dc1b088d80cc3c7 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Tue, 21 Mar 2023 08:37:55 +0100 Subject: [PATCH 043/105] Check if CI build passes if we skip online tests --- .github/workflows/native-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/native-ci.yml b/.github/workflows/native-ci.yml index b642f8d83dc9..76fbc3d5e13a 100644 --- a/.github/workflows/native-ci.yml +++ b/.github/workflows/native-ci.yml @@ -9,7 +9,7 @@ jobs: name: Build Kord runs-on: ${{ matrix.os }} env: - KORD_TEST_TOKEN: ${{ secrets.KORD_TEST_TOKEN }} + #KORD_TEST_TOKEN: ${{ secrets.KORD_TEST_TOKEN }} ACTIONS_ALLOW_UNSECURE_COMMANDS: true strategy: matrix: From b71c0b23dfe58a0ef029e1242c84c2050ca04441 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Tue, 21 Mar 2023 09:01:06 +0100 Subject: [PATCH 044/105] Run Gradle with -i --- .github/workflows/native-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/native-ci.yml b/.github/workflows/native-ci.yml index 76fbc3d5e13a..f52ef0a6ea04 100644 --- a/.github/workflows/native-ci.yml +++ b/.github/workflows/native-ci.yml @@ -28,4 +28,4 @@ jobs: - name: Build with Gradle uses: gradle/gradle-build-action@v2 with: - arguments: nativeTest + arguments: nativeTest -i --stacktrace From 74dd138aa6cf59905e8e95ef05d65ec13d3f6de4 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Tue, 21 Mar 2023 12:06:56 +0100 Subject: [PATCH 045/105] Only use ubuntu for CI --- .github/workflows/native-ci.yml | 4 +- .../dev.kord/kord-common/reflect-config.json | 152 +++++++++--------- 2 files changed, 78 insertions(+), 78 deletions(-) diff --git a/.github/workflows/native-ci.yml b/.github/workflows/native-ci.yml index f52ef0a6ea04..7b308fe50f43 100644 --- a/.github/workflows/native-ci.yml +++ b/.github/workflows/native-ci.yml @@ -9,11 +9,11 @@ jobs: name: Build Kord runs-on: ${{ matrix.os }} env: - #KORD_TEST_TOKEN: ${{ secrets.KORD_TEST_TOKEN }} + KORD_TEST_TOKEN: ${{ secrets.KORD_TEST_TOKEN }} ACTIONS_ALLOW_UNSECURE_COMMANDS: true strategy: matrix: - os: [ubuntu-latest, macos-latest, windows-latest] + os: [ubuntu-latest] steps: - uses: actions/checkout@v3 - uses: graalvm/setup-graalvm@v1 diff --git a/common/build/generated/ksp/main/resources/META-INF/native-image/dev.kord/kord-common/reflect-config.json b/common/build/generated/ksp/main/resources/META-INF/native-image/dev.kord/kord-common/reflect-config.json index c502d4df4727..0c44639652b8 100644 --- a/common/build/generated/ksp/main/resources/META-INF/native-image/dev.kord/kord-common/reflect-config.json +++ b/common/build/generated/ksp/main/resources/META-INF/native-image/dev.kord/kord-common/reflect-config.json @@ -2544,7 +2544,7 @@ ] }, { - "name": "dev.kord.common.entity.AllowedMentionType", + "name": "dev.kord.common.entity.ScheduledEntityType", "fields": [ { "name": "Companion" @@ -2552,7 +2552,7 @@ ] }, { - "name": "dev.kord.common.entity.AllowedMentionType$Companion", + "name": "dev.kord.common.entity.ScheduledEntityType$Companion", "methods": [ { "name": "serializer", @@ -2562,7 +2562,7 @@ ] }, { - "name": "dev.kord.common.entity.ApplicationCommandOptionType", + "name": "dev.kord.common.entity.ExplicitContentFilter", "fields": [ { "name": "Companion" @@ -2570,7 +2570,7 @@ ] }, { - "name": "dev.kord.common.entity.ApplicationCommandOptionType$Companion", + "name": "dev.kord.common.entity.ExplicitContentFilter$Companion", "methods": [ { "name": "serializer", @@ -2580,7 +2580,7 @@ ] }, { - "name": "dev.kord.common.entity.ApplicationCommandPermissionType", + "name": "dev.kord.common.entity.DiscordConnectionVisibility", "fields": [ { "name": "Companion" @@ -2588,7 +2588,7 @@ ] }, { - "name": "dev.kord.common.entity.ApplicationCommandPermissionType$Companion", + "name": "dev.kord.common.entity.DiscordConnectionVisibility$Companion", "methods": [ { "name": "serializer", @@ -2598,7 +2598,7 @@ ] }, { - "name": "dev.kord.common.entity.ApplicationCommandType", + "name": "dev.kord.common.entity.AutoModerationActionType", "fields": [ { "name": "Companion" @@ -2606,7 +2606,7 @@ ] }, { - "name": "dev.kord.common.entity.ApplicationCommandType$Companion", + "name": "dev.kord.common.entity.AutoModerationActionType$Companion", "methods": [ { "name": "serializer", @@ -2616,7 +2616,7 @@ ] }, { - "name": "dev.kord.common.entity.AuditLogEvent", + "name": "dev.kord.common.entity.UserPremium", "fields": [ { "name": "Companion" @@ -2624,7 +2624,7 @@ ] }, { - "name": "dev.kord.common.entity.AuditLogEvent$Companion", + "name": "dev.kord.common.entity.UserPremium$Companion", "methods": [ { "name": "serializer", @@ -2634,7 +2634,7 @@ ] }, { - "name": "dev.kord.common.entity.AutoModerationActionType", + "name": "dev.kord.common.entity.TextInputStyle", "fields": [ { "name": "Companion" @@ -2642,7 +2642,7 @@ ] }, { - "name": "dev.kord.common.entity.AutoModerationActionType$Companion", + "name": "dev.kord.common.entity.TextInputStyle$Companion", "methods": [ { "name": "serializer", @@ -2652,7 +2652,7 @@ ] }, { - "name": "dev.kord.common.entity.AutoModerationRuleEventType", + "name": "dev.kord.common.entity.WebhookType", "fields": [ { "name": "Companion" @@ -2660,7 +2660,7 @@ ] }, { - "name": "dev.kord.common.entity.AutoModerationRuleEventType$Companion", + "name": "dev.kord.common.entity.WebhookType$Companion", "methods": [ { "name": "serializer", @@ -2670,7 +2670,7 @@ ] }, { - "name": "dev.kord.common.entity.AutoModerationRuleKeywordPresetType", + "name": "dev.kord.common.entity.AllowedMentionType", "fields": [ { "name": "Companion" @@ -2678,7 +2678,7 @@ ] }, { - "name": "dev.kord.common.entity.AutoModerationRuleKeywordPresetType$Companion", + "name": "dev.kord.common.entity.AllowedMentionType$Companion", "methods": [ { "name": "serializer", @@ -2688,7 +2688,7 @@ ] }, { - "name": "dev.kord.common.entity.AutoModerationRuleTriggerType", + "name": "dev.kord.common.entity.DefaultMessageNotificationLevel", "fields": [ { "name": "Companion" @@ -2696,7 +2696,7 @@ ] }, { - "name": "dev.kord.common.entity.AutoModerationRuleTriggerType$Companion", + "name": "dev.kord.common.entity.DefaultMessageNotificationLevel$Companion", "methods": [ { "name": "serializer", @@ -2706,7 +2706,7 @@ ] }, { - "name": "dev.kord.common.entity.ButtonStyle", + "name": "dev.kord.common.entity.StageInstancePrivacyLevel", "fields": [ { "name": "Companion" @@ -2714,7 +2714,7 @@ ] }, { - "name": "dev.kord.common.entity.ButtonStyle$Companion", + "name": "dev.kord.common.entity.StageInstancePrivacyLevel$Companion", "methods": [ { "name": "serializer", @@ -2724,7 +2724,7 @@ ] }, { - "name": "dev.kord.common.entity.ChannelType", + "name": "dev.kord.common.entity.GuildScheduledEventStatus", "fields": [ { "name": "Companion" @@ -2732,7 +2732,7 @@ ] }, { - "name": "dev.kord.common.entity.ChannelType$Companion", + "name": "dev.kord.common.entity.GuildScheduledEventStatus$Companion", "methods": [ { "name": "serializer", @@ -2742,7 +2742,7 @@ ] }, { - "name": "dev.kord.common.entity.ComponentType", + "name": "dev.kord.common.entity.MessageActivityType", "fields": [ { "name": "Companion" @@ -2750,7 +2750,7 @@ ] }, { - "name": "dev.kord.common.entity.ComponentType$Companion", + "name": "dev.kord.common.entity.MessageActivityType$Companion", "methods": [ { "name": "serializer", @@ -2760,7 +2760,7 @@ ] }, { - "name": "dev.kord.common.entity.DefaultMessageNotificationLevel", + "name": "dev.kord.common.entity.PremiumTier", "fields": [ { "name": "Companion" @@ -2768,7 +2768,7 @@ ] }, { - "name": "dev.kord.common.entity.DefaultMessageNotificationLevel$Companion", + "name": "dev.kord.common.entity.PremiumTier$Companion", "methods": [ { "name": "serializer", @@ -2778,7 +2778,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordConnectionVisibility", + "name": "dev.kord.common.entity.GuildFeature", "fields": [ { "name": "Companion" @@ -2786,7 +2786,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordConnectionVisibility$Companion", + "name": "dev.kord.common.entity.GuildFeature$Companion", "methods": [ { "name": "serializer", @@ -2796,7 +2796,7 @@ ] }, { - "name": "dev.kord.common.entity.EmbedType", + "name": "dev.kord.common.entity.ApplicationCommandType", "fields": [ { "name": "Companion" @@ -2804,7 +2804,7 @@ ] }, { - "name": "dev.kord.common.entity.EmbedType$Companion", + "name": "dev.kord.common.entity.ApplicationCommandType$Companion", "methods": [ { "name": "serializer", @@ -2814,7 +2814,7 @@ ] }, { - "name": "dev.kord.common.entity.ExplicitContentFilter", + "name": "dev.kord.common.entity.PresenceStatus", "fields": [ { "name": "Companion" @@ -2822,7 +2822,7 @@ ] }, { - "name": "dev.kord.common.entity.ExplicitContentFilter$Companion", + "name": "dev.kord.common.entity.PresenceStatus$Companion", "methods": [ { "name": "serializer", @@ -2832,7 +2832,7 @@ ] }, { - "name": "dev.kord.common.entity.GuildFeature", + "name": "dev.kord.common.entity.InteractionType", "fields": [ { "name": "Companion" @@ -2840,7 +2840,7 @@ ] }, { - "name": "dev.kord.common.entity.GuildFeature$Companion", + "name": "dev.kord.common.entity.InteractionType$Companion", "methods": [ { "name": "serializer", @@ -2850,7 +2850,7 @@ ] }, { - "name": "dev.kord.common.entity.GuildScheduledEventPrivacyLevel", + "name": "dev.kord.common.entity.ComponentType", "fields": [ { "name": "Companion" @@ -2858,7 +2858,7 @@ ] }, { - "name": "dev.kord.common.entity.GuildScheduledEventPrivacyLevel$Companion", + "name": "dev.kord.common.entity.ComponentType$Companion", "methods": [ { "name": "serializer", @@ -2868,7 +2868,7 @@ ] }, { - "name": "dev.kord.common.entity.GuildScheduledEventStatus", + "name": "dev.kord.common.entity.ButtonStyle", "fields": [ { "name": "Companion" @@ -2876,7 +2876,7 @@ ] }, { - "name": "dev.kord.common.entity.GuildScheduledEventStatus$Companion", + "name": "dev.kord.common.entity.ButtonStyle$Companion", "methods": [ { "name": "serializer", @@ -2886,7 +2886,7 @@ ] }, { - "name": "dev.kord.common.entity.IntegrationExpireBehavior", + "name": "dev.kord.common.entity.InviteTargetType", "fields": [ { "name": "Companion" @@ -2894,7 +2894,7 @@ ] }, { - "name": "dev.kord.common.entity.IntegrationExpireBehavior$Companion", + "name": "dev.kord.common.entity.InviteTargetType$Companion", "methods": [ { "name": "serializer", @@ -2922,7 +2922,7 @@ ] }, { - "name": "dev.kord.common.entity.InteractionType", + "name": "dev.kord.common.entity.IntegrationExpireBehavior", "fields": [ { "name": "Companion" @@ -2930,7 +2930,7 @@ ] }, { - "name": "dev.kord.common.entity.InteractionType$Companion", + "name": "dev.kord.common.entity.IntegrationExpireBehavior$Companion", "methods": [ { "name": "serializer", @@ -2940,7 +2940,7 @@ ] }, { - "name": "dev.kord.common.entity.InviteTargetType", + "name": "dev.kord.common.entity.AutoModerationRuleTriggerType", "fields": [ { "name": "Companion" @@ -2948,7 +2948,7 @@ ] }, { - "name": "dev.kord.common.entity.InviteTargetType$Companion", + "name": "dev.kord.common.entity.AutoModerationRuleTriggerType$Companion", "methods": [ { "name": "serializer", @@ -2958,7 +2958,7 @@ ] }, { - "name": "dev.kord.common.entity.MessageActivityType", + "name": "dev.kord.common.entity.MessageStickerType", "fields": [ { "name": "Companion" @@ -2966,7 +2966,7 @@ ] }, { - "name": "dev.kord.common.entity.MessageActivityType$Companion", + "name": "dev.kord.common.entity.MessageStickerType$Companion", "methods": [ { "name": "serializer", @@ -2976,7 +2976,7 @@ ] }, { - "name": "dev.kord.common.entity.MessageStickerType", + "name": "dev.kord.common.entity.VerificationLevel", "fields": [ { "name": "Companion" @@ -2984,7 +2984,7 @@ ] }, { - "name": "dev.kord.common.entity.MessageStickerType$Companion", + "name": "dev.kord.common.entity.VerificationLevel$Companion", "methods": [ { "name": "serializer", @@ -2994,7 +2994,7 @@ ] }, { - "name": "dev.kord.common.entity.MessageType", + "name": "dev.kord.common.entity.OverwriteType", "fields": [ { "name": "Companion" @@ -3002,7 +3002,7 @@ ] }, { - "name": "dev.kord.common.entity.MessageType$Companion", + "name": "dev.kord.common.entity.OverwriteType$Companion", "methods": [ { "name": "serializer", @@ -3012,7 +3012,7 @@ ] }, { - "name": "dev.kord.common.entity.MFALevel", + "name": "dev.kord.common.entity.MessageType", "fields": [ { "name": "Companion" @@ -3020,7 +3020,7 @@ ] }, { - "name": "dev.kord.common.entity.MFALevel$Companion", + "name": "dev.kord.common.entity.MessageType$Companion", "methods": [ { "name": "serializer", @@ -3030,7 +3030,7 @@ ] }, { - "name": "dev.kord.common.entity.NsfwLevel", + "name": "dev.kord.common.entity.EmbedType", "fields": [ { "name": "Companion" @@ -3038,7 +3038,7 @@ ] }, { - "name": "dev.kord.common.entity.NsfwLevel$Companion", + "name": "dev.kord.common.entity.EmbedType$Companion", "methods": [ { "name": "serializer", @@ -3048,7 +3048,7 @@ ] }, { - "name": "dev.kord.common.entity.OverwriteType", + "name": "dev.kord.common.entity.MFALevel", "fields": [ { "name": "Companion" @@ -3056,7 +3056,7 @@ ] }, { - "name": "dev.kord.common.entity.OverwriteType$Companion", + "name": "dev.kord.common.entity.MFALevel$Companion", "methods": [ { "name": "serializer", @@ -3066,7 +3066,7 @@ ] }, { - "name": "dev.kord.common.entity.PremiumTier", + "name": "dev.kord.common.entity.ChannelType", "fields": [ { "name": "Companion" @@ -3074,7 +3074,7 @@ ] }, { - "name": "dev.kord.common.entity.PremiumTier$Companion", + "name": "dev.kord.common.entity.ChannelType$Companion", "methods": [ { "name": "serializer", @@ -3084,7 +3084,7 @@ ] }, { - "name": "dev.kord.common.entity.PresenceStatus", + "name": "dev.kord.common.entity.AutoModerationRuleEventType", "fields": [ { "name": "Companion" @@ -3092,7 +3092,7 @@ ] }, { - "name": "dev.kord.common.entity.PresenceStatus$Companion", + "name": "dev.kord.common.entity.AutoModerationRuleEventType$Companion", "methods": [ { "name": "serializer", @@ -3102,7 +3102,7 @@ ] }, { - "name": "dev.kord.common.entity.ScheduledEntityType", + "name": "dev.kord.common.entity.AutoModerationRuleKeywordPresetType", "fields": [ { "name": "Companion" @@ -3110,7 +3110,7 @@ ] }, { - "name": "dev.kord.common.entity.ScheduledEntityType$Companion", + "name": "dev.kord.common.entity.AutoModerationRuleKeywordPresetType$Companion", "methods": [ { "name": "serializer", @@ -3120,7 +3120,7 @@ ] }, { - "name": "dev.kord.common.entity.StageInstancePrivacyLevel", + "name": "dev.kord.common.entity.TeamMembershipState", "fields": [ { "name": "Companion" @@ -3128,7 +3128,7 @@ ] }, { - "name": "dev.kord.common.entity.StageInstancePrivacyLevel$Companion", + "name": "dev.kord.common.entity.TeamMembershipState$Companion", "methods": [ { "name": "serializer", @@ -3138,7 +3138,7 @@ ] }, { - "name": "dev.kord.common.entity.TeamMembershipState", + "name": "dev.kord.common.entity.ApplicationCommandOptionType", "fields": [ { "name": "Companion" @@ -3146,7 +3146,7 @@ ] }, { - "name": "dev.kord.common.entity.TeamMembershipState$Companion", + "name": "dev.kord.common.entity.ApplicationCommandOptionType$Companion", "methods": [ { "name": "serializer", @@ -3156,7 +3156,7 @@ ] }, { - "name": "dev.kord.common.entity.TextInputStyle", + "name": "dev.kord.common.entity.VideoQualityMode", "fields": [ { "name": "Companion" @@ -3164,7 +3164,7 @@ ] }, { - "name": "dev.kord.common.entity.TextInputStyle$Companion", + "name": "dev.kord.common.entity.VideoQualityMode$Companion", "methods": [ { "name": "serializer", @@ -3174,7 +3174,7 @@ ] }, { - "name": "dev.kord.common.entity.UserPremium", + "name": "dev.kord.common.entity.ApplicationCommandPermissionType", "fields": [ { "name": "Companion" @@ -3182,7 +3182,7 @@ ] }, { - "name": "dev.kord.common.entity.UserPremium$Companion", + "name": "dev.kord.common.entity.ApplicationCommandPermissionType$Companion", "methods": [ { "name": "serializer", @@ -3192,7 +3192,7 @@ ] }, { - "name": "dev.kord.common.entity.VerificationLevel", + "name": "dev.kord.common.entity.AuditLogEvent", "fields": [ { "name": "Companion" @@ -3200,7 +3200,7 @@ ] }, { - "name": "dev.kord.common.entity.VerificationLevel$Companion", + "name": "dev.kord.common.entity.AuditLogEvent$Companion", "methods": [ { "name": "serializer", @@ -3210,7 +3210,7 @@ ] }, { - "name": "dev.kord.common.entity.VideoQualityMode", + "name": "dev.kord.common.entity.NsfwLevel", "fields": [ { "name": "Companion" @@ -3218,7 +3218,7 @@ ] }, { - "name": "dev.kord.common.entity.VideoQualityMode$Companion", + "name": "dev.kord.common.entity.NsfwLevel$Companion", "methods": [ { "name": "serializer", @@ -3228,7 +3228,7 @@ ] }, { - "name": "dev.kord.common.entity.WebhookType", + "name": "dev.kord.common.entity.GuildScheduledEventPrivacyLevel", "fields": [ { "name": "Companion" @@ -3236,7 +3236,7 @@ ] }, { - "name": "dev.kord.common.entity.WebhookType$Companion", + "name": "dev.kord.common.entity.GuildScheduledEventPrivacyLevel$Companion", "methods": [ { "name": "serializer", From 0c49c5dea5fc81d9c08582a87d8480abe2570904 Mon Sep 17 00:00:00 2001 From: Lukellmann Date: Tue, 21 Mar 2023 12:32:23 +0100 Subject: [PATCH 046/105] Improve logging and move entries into GraalProcessor --- .../src/main/kotlin/graal/GraalProcessor.kt | 24 +++++++++++++------ 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/ksp-processors/src/main/kotlin/graal/GraalProcessor.kt b/ksp-processors/src/main/kotlin/graal/GraalProcessor.kt index ad33b26ea9dc..c0c1032b9cee 100644 --- a/ksp-processors/src/main/kotlin/graal/GraalProcessor.kt +++ b/ksp-processors/src/main/kotlin/graal/GraalProcessor.kt @@ -17,21 +17,26 @@ class GraalProcessorProvider : SymbolProcessorProvider { } } -private val entries = mutableListOf() - private class GraalProcessor( private val codeGenerator: CodeGenerator, private val logger: KSPLogger, - private val project: String -) : - SymbolProcessor { + private val project: String, +) : SymbolProcessor { + + private var flushedEntries = false + private val entries = mutableListOf() + override fun finish() { - flushEntries() logger.info("GraalProcessor received finish signal") + flushEntries() } override fun onError() { - logger.info("GraalProcessor received error signal") + if (flushedEntries) { + logger.info("GraalProcessor received error signal after ${entries.size} entries were flushed") + } else { + logger.warn("GraalProcessor received error signal while having ${entries.size} unflushed entries") + } } override fun process(resolver: Resolver): List { @@ -45,6 +50,7 @@ private class GraalProcessor( entries += resolver .getSymbolsWithAnnotation() + .onEach { if (it !is KSClassDeclaration) logger.warn("found annotation on wrong symbol", symbol = it) } .filterIsInstance() .map { ReflectConfigEntry(name = it.jvmBinaryName) } @@ -54,7 +60,10 @@ private class GraalProcessor( } private fun flushEntries() { + check(!flushedEntries) { "already flushed entries" } + flushedEntries = true if (entries.isNotEmpty()) { + logger.info("flushing entries for project $project...") val file = codeGenerator .createNewFileByPath( Dependencies.ALL_FILES, @@ -62,6 +71,7 @@ private class GraalProcessor( "json" ) file.bufferedWriter().use { it.write(entries.encodeToJson()) } + logger.info("finished flushing entries for project $project...") } } From cf9af3df3f27f8e01a5a957fbb0efd762b94c49f Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Tue, 21 Mar 2023 12:35:51 +0100 Subject: [PATCH 047/105] Use only macos --- .github/workflows/native-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/native-ci.yml b/.github/workflows/native-ci.yml index 7b308fe50f43..1fa4c6a66825 100644 --- a/.github/workflows/native-ci.yml +++ b/.github/workflows/native-ci.yml @@ -13,7 +13,7 @@ jobs: ACTIONS_ALLOW_UNSECURE_COMMANDS: true strategy: matrix: - os: [ubuntu-latest] + os: [macos-latest] steps: - uses: actions/checkout@v3 - uses: graalvm/setup-graalvm@v1 From e67685aeaf0078cc1d92b3557fceba3e8ed5c248 Mon Sep 17 00:00:00 2001 From: Lukellmann Date: Tue, 21 Mar 2023 13:20:07 +0100 Subject: [PATCH 048/105] Use GraalVM Native Image terminology consistently --- ...ive-ci.yml => graalvm-native-image-ci.yml} | 8 ++--- .../src/main/kotlin/kord-module.gradle.kts | 2 +- common/src/test/kotlin/ColorTests.kt | 2 +- .../GuildApplicationCommandPermissionsData.kt | 4 +-- .../src/main/kotlin/cache/data/StickerData.kt | 4 +-- .../kotlin/equality/EntityEqualityTest.kt | 2 +- .../build.gradle.kts | 0 .../src/main/kotlin/dev/kord/core/Main.kt | 0 .../META-INF/native-image/reflect-config.json | 0 .../native-image/resource-config.json | 0 .../reflect-config.json | 0 ...lableForReflectionOnGraalVMNativeImage.kt} | 4 +-- .../GraalVMNativeImageProcessor.kt} | 35 +++++++++++-------- .../{graal => graalvm}/ReflectConfig.kt | 3 +- .../main/kotlin/kordenum/KordEnumProcessor.kt | 5 +-- ...ols.ksp.processing.SymbolProcessorProvider | 2 +- settings.gradle.kts | 2 +- 17 files changed, 39 insertions(+), 34 deletions(-) rename .github/workflows/{native-ci.yml => graalvm-native-image-ci.yml} (84%) rename {graal-example => graalvm-native-image-example}/build.gradle.kts (100%) rename {graal-example => graalvm-native-image-example}/src/main/kotlin/dev/kord/core/Main.kt (100%) rename {graal-example => graalvm-native-image-example}/src/main/resources/META-INF/native-image/reflect-config.json (100%) rename {graal-example => graalvm-native-image-example}/src/main/resources/META-INF/native-image/resource-config.json (100%) rename {graal-test-config => graalvm-native-image-test-config}/reflect-config.json (100%) rename ksp-annotations/src/main/kotlin/{GraalVisible.kt => AvailableForReflectionOnGraalVMNativeImage.kt} (66%) rename ksp-processors/src/main/kotlin/{graal/GraalProcessor.kt => graalvm/GraalVMNativeImageProcessor.kt} (70%) rename ksp-processors/src/main/kotlin/{graal => graalvm}/ReflectConfig.kt (98%) diff --git a/.github/workflows/native-ci.yml b/.github/workflows/graalvm-native-image-ci.yml similarity index 84% rename from .github/workflows/native-ci.yml rename to .github/workflows/graalvm-native-image-ci.yml index 1fa4c6a66825..79c599229088 100644 --- a/.github/workflows/native-ci.yml +++ b/.github/workflows/graalvm-native-image-ci.yml @@ -13,14 +13,14 @@ jobs: ACTIONS_ALLOW_UNSECURE_COMMANDS: true strategy: matrix: - os: [macos-latest] + os: [ macos-latest ] steps: - uses: actions/checkout@v3 - uses: graalvm/setup-graalvm@v1 with: - version: 'latest' - java-version: '17' - components: 'native-image' + version: latest + java-version: 17 + components: native-image github-token: ${{ secrets.GITHUB_TOKEN }} - name: Add msbuild to PATH if: ${{ matrix.os == 'windows-latest' }} diff --git a/buildSrc/src/main/kotlin/kord-module.gradle.kts b/buildSrc/src/main/kotlin/kord-module.gradle.kts index 77c012260e5c..c82450fec7ab 100644 --- a/buildSrc/src/main/kotlin/kord-module.gradle.kts +++ b/buildSrc/src/main/kotlin/kord-module.gradle.kts @@ -140,7 +140,7 @@ publishing { graalvmNative { binaries.named("test") { - configurationFileDirectories.from(rootProject.file("graal-test-config")) + configurationFileDirectories.from(rootProject.file("graalvm-native-image-test-config")) resources { autodetection { enabled.set(true) diff --git a/common/src/test/kotlin/ColorTests.kt b/common/src/test/kotlin/ColorTests.kt index 3271ec572e5f..4cb0cd7d4380 100644 --- a/common/src/test/kotlin/ColorTests.kt +++ b/common/src/test/kotlin/ColorTests.kt @@ -25,7 +25,7 @@ class ColorTests { assertEquals(0xFFFFFF, white.rgb) } - // Currently java.awt.Color doesn't work on Graal native images + // Currently java.awt.Color doesn't work on GraalVM Native Image // See: https://github.com/oracle/graal/issues/3084 @DisabledIfSystemProperty(named = "org.graalvm.nativeimage.imagecode", matches = ".+") @Test diff --git a/core/src/main/kotlin/cache/data/GuildApplicationCommandPermissionsData.kt b/core/src/main/kotlin/cache/data/GuildApplicationCommandPermissionsData.kt index 4c5ab4dbf62b..2a87aa914ac2 100644 --- a/core/src/main/kotlin/cache/data/GuildApplicationCommandPermissionsData.kt +++ b/core/src/main/kotlin/cache/data/GuildApplicationCommandPermissionsData.kt @@ -4,9 +4,9 @@ import dev.kord.cache.api.data.DataDescription import dev.kord.cache.api.data.description import dev.kord.common.entity.DiscordGuildApplicationCommandPermissions import dev.kord.common.entity.Snowflake -import dev.kord.ksp.GraalVisible +import dev.kord.ksp.AvailableForReflectionOnGraalVMNativeImage -@GraalVisible +@AvailableForReflectionOnGraalVMNativeImage public data class GuildApplicationCommandPermissionsData( val id: Snowflake, val applicationId: Snowflake, diff --git a/core/src/main/kotlin/cache/data/StickerData.kt b/core/src/main/kotlin/cache/data/StickerData.kt index 51b4d045a885..2ac1ad8adb14 100644 --- a/core/src/main/kotlin/cache/data/StickerData.kt +++ b/core/src/main/kotlin/cache/data/StickerData.kt @@ -4,7 +4,7 @@ import dev.kord.cache.api.data.DataDescription import dev.kord.cache.api.data.description import dev.kord.common.entity.* import dev.kord.common.entity.optional.* -import dev.kord.ksp.GraalVisible +import dev.kord.ksp.AvailableForReflectionOnGraalVMNativeImage import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable @@ -50,7 +50,7 @@ public data class StickerItemData( } } -@GraalVisible +@AvailableForReflectionOnGraalVMNativeImage public data class StickerPackData( val id: Snowflake, val stickers: List, diff --git a/core/src/test/kotlin/equality/EntityEqualityTest.kt b/core/src/test/kotlin/equality/EntityEqualityTest.kt index 5c4975a498b4..8a5f629c07aa 100644 --- a/core/src/test/kotlin/equality/EntityEqualityTest.kt +++ b/core/src/test/kotlin/equality/EntityEqualityTest.kt @@ -15,7 +15,7 @@ val ids = generateSequence { fun randomId() = Snowflake(ids.next()) -// Mockk currently doesn't work on Graal +// MockK currently doesn't work on GraalVM Native Image @DisabledIfSystemProperty(named = "org.graalvm.nativeimage.imagecode", matches = ".+") interface EntityEqualityTest { diff --git a/graal-example/build.gradle.kts b/graalvm-native-image-example/build.gradle.kts similarity index 100% rename from graal-example/build.gradle.kts rename to graalvm-native-image-example/build.gradle.kts diff --git a/graal-example/src/main/kotlin/dev/kord/core/Main.kt b/graalvm-native-image-example/src/main/kotlin/dev/kord/core/Main.kt similarity index 100% rename from graal-example/src/main/kotlin/dev/kord/core/Main.kt rename to graalvm-native-image-example/src/main/kotlin/dev/kord/core/Main.kt diff --git a/graal-example/src/main/resources/META-INF/native-image/reflect-config.json b/graalvm-native-image-example/src/main/resources/META-INF/native-image/reflect-config.json similarity index 100% rename from graal-example/src/main/resources/META-INF/native-image/reflect-config.json rename to graalvm-native-image-example/src/main/resources/META-INF/native-image/reflect-config.json diff --git a/graal-example/src/main/resources/META-INF/native-image/resource-config.json b/graalvm-native-image-example/src/main/resources/META-INF/native-image/resource-config.json similarity index 100% rename from graal-example/src/main/resources/META-INF/native-image/resource-config.json rename to graalvm-native-image-example/src/main/resources/META-INF/native-image/resource-config.json diff --git a/graal-test-config/reflect-config.json b/graalvm-native-image-test-config/reflect-config.json similarity index 100% rename from graal-test-config/reflect-config.json rename to graalvm-native-image-test-config/reflect-config.json diff --git a/ksp-annotations/src/main/kotlin/GraalVisible.kt b/ksp-annotations/src/main/kotlin/AvailableForReflectionOnGraalVMNativeImage.kt similarity index 66% rename from ksp-annotations/src/main/kotlin/GraalVisible.kt rename to ksp-annotations/src/main/kotlin/AvailableForReflectionOnGraalVMNativeImage.kt index bd2647a3828e..fc16b82f19ea 100644 --- a/ksp-annotations/src/main/kotlin/GraalVisible.kt +++ b/ksp-annotations/src/main/kotlin/AvailableForReflectionOnGraalVMNativeImage.kt @@ -4,10 +4,10 @@ import kotlin.annotation.AnnotationRetention.SOURCE import kotlin.annotation.AnnotationTarget.CLASS /** - * Marks this class as visible via Reflection in GraalVM Native Image. + * Marks this class as available for reflection on GraalVM Native Image. * * **This is only needed for types not annotated with `@kotlinx.serialization.Serializable`.** */ @Retention(SOURCE) @Target(CLASS) -annotation class GraalVisible +annotation class AvailableForReflectionOnGraalVMNativeImage diff --git a/ksp-processors/src/main/kotlin/graal/GraalProcessor.kt b/ksp-processors/src/main/kotlin/graalvm/GraalVMNativeImageProcessor.kt similarity index 70% rename from ksp-processors/src/main/kotlin/graal/GraalProcessor.kt rename to ksp-processors/src/main/kotlin/graalvm/GraalVMNativeImageProcessor.kt index c0c1032b9cee..80f37ae746e1 100644 --- a/ksp-processors/src/main/kotlin/graal/GraalProcessor.kt +++ b/ksp-processors/src/main/kotlin/graalvm/GraalVMNativeImageProcessor.kt @@ -1,23 +1,27 @@ -package dev.kord.ksp.graal +package dev.kord.ksp.graalvm import com.google.devtools.ksp.processing.* import com.google.devtools.ksp.symbol.KSAnnotated import com.google.devtools.ksp.symbol.KSClassDeclaration -import dev.kord.ksp.GraalVisible +import dev.kord.ksp.AvailableForReflectionOnGraalVMNativeImage import dev.kord.ksp.getSymbolsWithAnnotation import dev.kord.ksp.jvmBinaryName import kotlinx.serialization.KSerializer import kotlinx.serialization.Serializable -class GraalProcessorProvider : SymbolProcessorProvider { - override fun create(environment: SymbolProcessorEnvironment): SymbolProcessor { - return GraalProcessor( - environment.codeGenerator, environment.logger, environment.options["project"]!! - ) - } +/** [SymbolProcessorProvider] for [GraalVMNativeImageProcessor]. */ +class GraalVMNativeImageProcessorProvider : SymbolProcessorProvider { + override fun create(environment: SymbolProcessorEnvironment): SymbolProcessor = + GraalVMNativeImageProcessor(environment.codeGenerator, environment.logger, environment.options["project"]!!) } -private class GraalProcessor( +/** + * [SymbolProcessor] that reads [Serializable] and [AvailableForReflectionOnGraalVMNativeImage] annotations and + * generates [`reflect-config.json`](https://www.graalvm.org/latest/reference-manual/native-image/metadata/#reflection) + * files for building native executables with + * [GraalVM Native Image](https://www.graalvm.org/latest/reference-manual/native-image/). + */ +private class GraalVMNativeImageProcessor( private val codeGenerator: CodeGenerator, private val logger: KSPLogger, private val project: String, @@ -27,20 +31,21 @@ private class GraalProcessor( private val entries = mutableListOf() override fun finish() { - logger.info("GraalProcessor received finish signal") + logger.info("GraalVMNativeImageProcessor received finish signal") flushEntries() } override fun onError() { + val count = entries.size if (flushedEntries) { - logger.info("GraalProcessor received error signal after ${entries.size} entries were flushed") + logger.info("GraalVMNativeImageProcessor received error signal after $count entries were flushed") } else { - logger.warn("GraalProcessor received error signal while having ${entries.size} unflushed entries") + logger.warn("GraalVMNativeImageProcessor received error signal while having $count unflushed entries") } } override fun process(resolver: Resolver): List { - logger.info("GraalProcessor got called, resolving annotations...") + logger.info("GraalVMNativeImageProcessor got called, resolving annotations...") entries += resolver .getSymbolsWithAnnotation() @@ -49,12 +54,12 @@ private class GraalProcessor( .toList() entries += resolver - .getSymbolsWithAnnotation() + .getSymbolsWithAnnotation() .onEach { if (it !is KSClassDeclaration) logger.warn("found annotation on wrong symbol", symbol = it) } .filterIsInstance() .map { ReflectConfigEntry(name = it.jvmBinaryName) } - logger.info("GraalProcessor finished processing annotations") + logger.info("GraalVMNativeImageProcessor finished processing annotations") return emptyList() // we never have to defer any symbols } diff --git a/ksp-processors/src/main/kotlin/graal/ReflectConfig.kt b/ksp-processors/src/main/kotlin/graalvm/ReflectConfig.kt similarity index 98% rename from ksp-processors/src/main/kotlin/graal/ReflectConfig.kt rename to ksp-processors/src/main/kotlin/graalvm/ReflectConfig.kt index 405a888b17bf..98a0e9cff91d 100644 --- a/ksp-processors/src/main/kotlin/graal/ReflectConfig.kt +++ b/ksp-processors/src/main/kotlin/graalvm/ReflectConfig.kt @@ -1,6 +1,6 @@ @file:OptIn(ExperimentalSerializationApi::class) -package dev.kord.ksp.graal +package dev.kord.ksp.graalvm import kotlinx.serialization.EncodeDefault import kotlinx.serialization.EncodeDefault.Mode.ALWAYS @@ -17,7 +17,6 @@ private val json = Json { fun List.encodeToJson() = json.encodeToString(this) - /** * An entry of a * [`reflect-config.json`](https://www.graalvm.org/latest/reference-manual/native-image/metadata/#specifying-reflection-metadata-in-json) diff --git a/ksp-processors/src/main/kotlin/kordenum/KordEnumProcessor.kt b/ksp-processors/src/main/kotlin/kordenum/KordEnumProcessor.kt index a5c5f4a8489a..e22360e8226a 100644 --- a/ksp-processors/src/main/kotlin/kordenum/KordEnumProcessor.kt +++ b/ksp-processors/src/main/kotlin/kordenum/KordEnumProcessor.kt @@ -10,12 +10,13 @@ import dev.kord.ksp.isOfType /** [SymbolProcessorProvider] for [KordEnumProcessor]. */ class KordEnumProcessorProvider : SymbolProcessorProvider { - override fun create(environment: SymbolProcessorEnvironment) = + override fun create(environment: SymbolProcessorEnvironment): SymbolProcessor = KordEnumProcessor(environment.codeGenerator, environment.logger) } /** [SymbolProcessor] for [GenerateKordEnum] annotation. */ -class KordEnumProcessor(private val codeGenerator: CodeGenerator, private val logger: KSPLogger) : SymbolProcessor { +private class KordEnumProcessor(private val codeGenerator: CodeGenerator, private val logger: KSPLogger) : + SymbolProcessor { override fun finish() { logger.info("KordEnumProcessor received finish signal") diff --git a/ksp-processors/src/main/resources/META-INF/services/com.google.devtools.ksp.processing.SymbolProcessorProvider b/ksp-processors/src/main/resources/META-INF/services/com.google.devtools.ksp.processing.SymbolProcessorProvider index ab6cbc499a18..b7051d63b0bf 100644 --- a/ksp-processors/src/main/resources/META-INF/services/com.google.devtools.ksp.processing.SymbolProcessorProvider +++ b/ksp-processors/src/main/resources/META-INF/services/com.google.devtools.ksp.processing.SymbolProcessorProvider @@ -1,2 +1,2 @@ dev.kord.ksp.kordenum.KordEnumProcessorProvider -dev.kord.ksp.graal.GraalProcessorProvider +dev.kord.ksp.graalvm.GraalVMNativeImageProcessorProvider diff --git a/settings.gradle.kts b/settings.gradle.kts index 28e5fada269b..2f94477b3fbd 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -9,7 +9,7 @@ include( "common", "core", "gateway", - "graal-example", + "graalvm-native-image-example", "ksp-annotations", "ksp-processors", "rest", From 92d66336bfd907f0766288b11830d452e19b05f7 Mon Sep 17 00:00:00 2001 From: Lukellmann Date: Tue, 21 Mar 2023 13:30:08 +0100 Subject: [PATCH 049/105] Proper KSP Dependencies --- .../graalvm/GraalVMNativeImageProcessor.kt | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/ksp-processors/src/main/kotlin/graalvm/GraalVMNativeImageProcessor.kt b/ksp-processors/src/main/kotlin/graalvm/GraalVMNativeImageProcessor.kt index 80f37ae746e1..63e2aacb93f5 100644 --- a/ksp-processors/src/main/kotlin/graalvm/GraalVMNativeImageProcessor.kt +++ b/ksp-processors/src/main/kotlin/graalvm/GraalVMNativeImageProcessor.kt @@ -3,6 +3,7 @@ package dev.kord.ksp.graalvm import com.google.devtools.ksp.processing.* import com.google.devtools.ksp.symbol.KSAnnotated import com.google.devtools.ksp.symbol.KSClassDeclaration +import com.google.devtools.ksp.symbol.KSFile import dev.kord.ksp.AvailableForReflectionOnGraalVMNativeImage import dev.kord.ksp.getSymbolsWithAnnotation import dev.kord.ksp.jvmBinaryName @@ -29,6 +30,7 @@ private class GraalVMNativeImageProcessor( private var flushedEntries = false private val entries = mutableListOf() + private val sources = mutableListOf() override fun finish() { logger.info("GraalVMNativeImageProcessor received finish signal") @@ -50,6 +52,7 @@ private class GraalVMNativeImageProcessor( entries += resolver .getSymbolsWithAnnotation() .filterIsInstance() + .onEach { it.containingFile?.let(sources::add) } .flatMap(::processClass) .toList() @@ -57,6 +60,7 @@ private class GraalVMNativeImageProcessor( .getSymbolsWithAnnotation() .onEach { if (it !is KSClassDeclaration) logger.warn("found annotation on wrong symbol", symbol = it) } .filterIsInstance() + .onEach { it.containingFile?.let(sources::add) } .map { ReflectConfigEntry(name = it.jvmBinaryName) } logger.info("GraalVMNativeImageProcessor finished processing annotations") @@ -69,12 +73,12 @@ private class GraalVMNativeImageProcessor( flushedEntries = true if (entries.isNotEmpty()) { logger.info("flushing entries for project $project...") - val file = codeGenerator - .createNewFileByPath( - Dependencies.ALL_FILES, - "META-INF/native-image/dev.kord/kord-${project}/reflect-config", - "json" - ) + // this output is aggregating, see https://kotlinlang.org/docs/ksp-incremental.html#aggregating-vs-isolating + val file = codeGenerator.createNewFileByPath( + Dependencies(aggregating = true, *sources.toTypedArray()), + path = "META-INF/native-image/dev.kord/kord-${project}/reflect-config", + extensionName = "json", + ) file.bufferedWriter().use { it.write(entries.encodeToJson()) } logger.info("finished flushing entries for project $project...") } From d4511bdbd9da6c75f289375d21ecab1bb57cad5e Mon Sep 17 00:00:00 2001 From: Lukellmann Date: Tue, 21 Mar 2023 14:02:36 +0100 Subject: [PATCH 050/105] Move companionObject to KSPUtils.kt --- ksp-processors/src/main/kotlin/KSPUtils.kt | 3 ++ .../graalvm/GraalVMNativeImageProcessor.kt | 42 +++++++------------ 2 files changed, 19 insertions(+), 26 deletions(-) diff --git a/ksp-processors/src/main/kotlin/KSPUtils.kt b/ksp-processors/src/main/kotlin/KSPUtils.kt index 176a014c0d80..de2334a5c0ea 100644 --- a/ksp-processors/src/main/kotlin/KSPUtils.kt +++ b/ksp-processors/src/main/kotlin/KSPUtils.kt @@ -39,3 +39,6 @@ internal val KSClassDeclaration.jvmBinaryName: String ) else -> error("$this has an unexpected parentDeclaration: $parent") } + +internal val KSClassDeclaration.companionObject + get() = declarations.filterIsInstance().firstOrNull { it.isCompanionObject } diff --git a/ksp-processors/src/main/kotlin/graalvm/GraalVMNativeImageProcessor.kt b/ksp-processors/src/main/kotlin/graalvm/GraalVMNativeImageProcessor.kt index 63e2aacb93f5..7e64e2b9972d 100644 --- a/ksp-processors/src/main/kotlin/graalvm/GraalVMNativeImageProcessor.kt +++ b/ksp-processors/src/main/kotlin/graalvm/GraalVMNativeImageProcessor.kt @@ -5,7 +5,10 @@ import com.google.devtools.ksp.symbol.KSAnnotated import com.google.devtools.ksp.symbol.KSClassDeclaration import com.google.devtools.ksp.symbol.KSFile import dev.kord.ksp.AvailableForReflectionOnGraalVMNativeImage +import dev.kord.ksp.companionObject import dev.kord.ksp.getSymbolsWithAnnotation +import dev.kord.ksp.graalvm.ReflectConfigEntry.Field +import dev.kord.ksp.graalvm.ReflectConfigEntry.Method import dev.kord.ksp.jvmBinaryName import kotlinx.serialization.KSerializer import kotlinx.serialization.Serializable @@ -53,8 +56,7 @@ private class GraalVMNativeImageProcessor( .getSymbolsWithAnnotation() .filterIsInstance() .onEach { it.containingFile?.let(sources::add) } - .flatMap(::processClass) - .toList() + .flatMap(::entriesForSerializableClass) entries += resolver .getSymbolsWithAnnotation() @@ -84,37 +86,25 @@ private class GraalVMNativeImageProcessor( } } - private fun processClass(clazz: KSClassDeclaration): List { - val name = clazz.findCompanionObjectName() + private fun entriesForSerializableClass(clazz: KSClassDeclaration): List { + val binaryName = clazz.jvmBinaryName + // companion object with default "Companion" name is generated by serialization plugin if not declared + val companionObjectSimpleName = clazz.companionObject?.simpleName?.asString() ?: "Companion" - val qualifiedName = clazz.jvmBinaryName val companionField = ReflectConfigEntry( - name = qualifiedName, - fields = listOf(ReflectConfigEntry.Field(name)) + name = binaryName, + fields = listOf(Field(name = companionObjectSimpleName)), ) val companionObject = ReflectConfigEntry( - name = "$qualifiedName\$$name", + name = "$binaryName$$companionObjectSimpleName", methods = listOf( - ReflectConfigEntry.Method( - "serializer", - generateTypeParameters(clazz.typeParameters.count()).also { - logger.info("Class ${clazz.qualifiedName?.asString()} has ${it.size} type parameters") - } - ) - ) + Method( + name = "serializer", + parameterTypes = clazz.typeParameters.map { KSerializer::class.qualifiedName!! }, + ), + ), ) return listOf(companionField, companionObject) } - - private fun KSClassDeclaration.findCompanionObjectName(): String { - val companionObject = declarations.firstOrNull { - (it as? KSClassDeclaration)?.isCompanionObject == true - } - - return companionObject?.qualifiedName?.getShortName() ?: "Companion" - } - - private fun generateTypeParameters(n: Int): List = List(n) { KSerializer::class.qualifiedName!! } - } From 314a71a95f958e64cf89c38ad82960687b810b0d Mon Sep 17 00:00:00 2001 From: Lukellmann Date: Tue, 21 Mar 2023 14:06:58 +0100 Subject: [PATCH 051/105] Deterministic order for reflect-config.json bufferedWriter() was replaced by writer() because we write the whole JSON at once --- .../dev.kord/kord-common/reflect-config.json | 736 +++++++++--------- .../dev.kord/kord-core/reflect-config.json | 228 +++--- .../dev.kord/kord-gateway/reflect-config.json | 88 +-- .../graalvm/GraalVMNativeImageProcessor.kt | 4 +- .../src/main/kotlin/graalvm/ReflectConfig.kt | 2 +- .../dev.kord/kord-voice/reflect-config.json | 52 +- 6 files changed, 556 insertions(+), 554 deletions(-) diff --git a/common/build/generated/ksp/main/resources/META-INF/native-image/dev.kord/kord-common/reflect-config.json b/common/build/generated/ksp/main/resources/META-INF/native-image/dev.kord/kord-common/reflect-config.json index 0c44639652b8..fc8d78227212 100644 --- a/common/build/generated/ksp/main/resources/META-INF/native-image/dev.kord/kord-common/reflect-config.json +++ b/common/build/generated/ksp/main/resources/META-INF/native-image/dev.kord/kord-common/reflect-config.json @@ -54,7 +54,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordAuditLog", + "name": "dev.kord.common.entity.ActivityFlags", "fields": [ { "name": "Companion" @@ -62,7 +62,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordAuditLog$Companion", + "name": "dev.kord.common.entity.ActivityFlags$Companion", "methods": [ { "name": "serializer", @@ -72,7 +72,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordAuditLogEntry", + "name": "dev.kord.common.entity.ActivityType", "fields": [ { "name": "Companion" @@ -80,7 +80,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordAuditLogEntry$Companion", + "name": "dev.kord.common.entity.ActivityType$Companion", "methods": [ { "name": "serializer", @@ -90,7 +90,7 @@ ] }, { - "name": "dev.kord.common.entity.AuditLogEntryOptionalInfo", + "name": "dev.kord.common.entity.AllRemovedMessageReactions", "fields": [ { "name": "Companion" @@ -98,7 +98,7 @@ ] }, { - "name": "dev.kord.common.entity.AuditLogEntryOptionalInfo$Companion", + "name": "dev.kord.common.entity.AllRemovedMessageReactions$Companion", "methods": [ { "name": "serializer", @@ -108,7 +108,7 @@ ] }, { - "name": "dev.kord.common.entity.AuditLogChange", + "name": "dev.kord.common.entity.AllowedMentionType", "fields": [ { "name": "Companion" @@ -116,18 +116,17 @@ ] }, { - "name": "dev.kord.common.entity.AuditLogChange$Companion", + "name": "dev.kord.common.entity.AllowedMentionType$Companion", "methods": [ { "name": "serializer", "parameterTypes": [ - "kotlinx.serialization.KSerializer" ] } ] }, { - "name": "dev.kord.common.entity.AuditLogChangeKey", + "name": "dev.kord.common.entity.AllowedMentions", "fields": [ { "name": "Companion" @@ -135,18 +134,17 @@ ] }, { - "name": "dev.kord.common.entity.AuditLogChangeKey$Companion", + "name": "dev.kord.common.entity.AllowedMentions$Companion", "methods": [ { "name": "serializer", "parameterTypes": [ - "kotlinx.serialization.KSerializer" ] } ] }, { - "name": "dev.kord.common.entity.DiscordAutoModerationRule", + "name": "dev.kord.common.entity.ApplicationCommandOption", "fields": [ { "name": "Companion" @@ -154,7 +152,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordAutoModerationRule$Companion", + "name": "dev.kord.common.entity.ApplicationCommandOption$Companion", "methods": [ { "name": "serializer", @@ -164,7 +162,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordAutoModerationRuleTriggerMetadata", + "name": "dev.kord.common.entity.ApplicationCommandOptionType", "fields": [ { "name": "Companion" @@ -172,7 +170,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordAutoModerationRuleTriggerMetadata$Companion", + "name": "dev.kord.common.entity.ApplicationCommandOptionType$Companion", "methods": [ { "name": "serializer", @@ -182,7 +180,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordAutoModerationAction", + "name": "dev.kord.common.entity.ApplicationCommandPermissionType", "fields": [ { "name": "Companion" @@ -190,7 +188,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordAutoModerationAction$Companion", + "name": "dev.kord.common.entity.ApplicationCommandPermissionType$Companion", "methods": [ { "name": "serializer", @@ -200,7 +198,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordAutoModerationActionMetadata", + "name": "dev.kord.common.entity.ApplicationCommandType", "fields": [ { "name": "Companion" @@ -208,7 +206,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordAutoModerationActionMetadata$Companion", + "name": "dev.kord.common.entity.ApplicationCommandType$Companion", "methods": [ { "name": "serializer", @@ -218,7 +216,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordPinsUpdateData", + "name": "dev.kord.common.entity.ApplicationFlags", "fields": [ { "name": "Companion" @@ -226,7 +224,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordPinsUpdateData$Companion", + "name": "dev.kord.common.entity.ApplicationFlags$Companion", "methods": [ { "name": "serializer", @@ -236,7 +234,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordTyping", + "name": "dev.kord.common.entity.ArchiveDuration", "fields": [ { "name": "Companion" @@ -244,7 +242,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordTyping$Companion", + "name": "dev.kord.common.entity.ArchiveDuration$Companion", "methods": [ { "name": "serializer", @@ -254,7 +252,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordBotActivity", + "name": "dev.kord.common.entity.AuditLogChange", "fields": [ { "name": "Companion" @@ -262,17 +260,18 @@ ] }, { - "name": "dev.kord.common.entity.DiscordBotActivity$Companion", + "name": "dev.kord.common.entity.AuditLogChange$Companion", "methods": [ { "name": "serializer", "parameterTypes": [ + "kotlinx.serialization.KSerializer" ] } ] }, { - "name": "dev.kord.common.entity.DiscordActivity", + "name": "dev.kord.common.entity.AuditLogChangeKey", "fields": [ { "name": "Companion" @@ -280,17 +279,18 @@ ] }, { - "name": "dev.kord.common.entity.DiscordActivity$Companion", + "name": "dev.kord.common.entity.AuditLogChangeKey$Companion", "methods": [ { "name": "serializer", "parameterTypes": [ + "kotlinx.serialization.KSerializer" ] } ] }, { - "name": "dev.kord.common.entity.ActivityFlags", + "name": "dev.kord.common.entity.AuditLogEntryOptionalInfo", "fields": [ { "name": "Companion" @@ -298,7 +298,7 @@ ] }, { - "name": "dev.kord.common.entity.ActivityFlags$Companion", + "name": "dev.kord.common.entity.AuditLogEntryOptionalInfo$Companion", "methods": [ { "name": "serializer", @@ -308,7 +308,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordActivityTimestamps", + "name": "dev.kord.common.entity.AuditLogEvent", "fields": [ { "name": "Companion" @@ -316,7 +316,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordActivityTimestamps$Companion", + "name": "dev.kord.common.entity.AuditLogEvent$Companion", "methods": [ { "name": "serializer", @@ -326,7 +326,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordActivityEmoji", + "name": "dev.kord.common.entity.AutoModerationActionType", "fields": [ { "name": "Companion" @@ -334,7 +334,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordActivityEmoji$Companion", + "name": "dev.kord.common.entity.AutoModerationActionType$Companion", "methods": [ { "name": "serializer", @@ -344,7 +344,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordActivityParty", + "name": "dev.kord.common.entity.AutoModerationRuleEventType", "fields": [ { "name": "Companion" @@ -352,7 +352,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordActivityParty$Companion", + "name": "dev.kord.common.entity.AutoModerationRuleEventType$Companion", "methods": [ { "name": "serializer", @@ -362,7 +362,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordActivityPartySize", + "name": "dev.kord.common.entity.AutoModerationRuleKeywordPresetType", "fields": [ { "name": "Companion" @@ -370,7 +370,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordActivityPartySize$Companion", + "name": "dev.kord.common.entity.AutoModerationRuleKeywordPresetType$Companion", "methods": [ { "name": "serializer", @@ -380,7 +380,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordActivityAssets", + "name": "dev.kord.common.entity.AutoModerationRuleTriggerType", "fields": [ { "name": "Companion" @@ -388,7 +388,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordActivityAssets$Companion", + "name": "dev.kord.common.entity.AutoModerationRuleTriggerType$Companion", "methods": [ { "name": "serializer", @@ -398,7 +398,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordActivitySecrets", + "name": "dev.kord.common.entity.BulkDeleteData", "fields": [ { "name": "Companion" @@ -406,7 +406,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordActivitySecrets$Companion", + "name": "dev.kord.common.entity.BulkDeleteData$Companion", "methods": [ { "name": "serializer", @@ -416,7 +416,7 @@ ] }, { - "name": "dev.kord.common.entity.ActivityType", + "name": "dev.kord.common.entity.ButtonStyle", "fields": [ { "name": "Companion" @@ -424,7 +424,7 @@ ] }, { - "name": "dev.kord.common.entity.ActivityType$Companion", + "name": "dev.kord.common.entity.ButtonStyle$Companion", "methods": [ { "name": "serializer", @@ -434,7 +434,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordApplication", + "name": "dev.kord.common.entity.ChannelType", "fields": [ { "name": "Companion" @@ -442,7 +442,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordApplication$Companion", + "name": "dev.kord.common.entity.ChannelType$Companion", "methods": [ { "name": "serializer", @@ -452,7 +452,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordPartialApplication", + "name": "dev.kord.common.entity.Choice", "fields": [ { "name": "Companion" @@ -460,17 +460,18 @@ ] }, { - "name": "dev.kord.common.entity.DiscordPartialApplication$Companion", + "name": "dev.kord.common.entity.Choice$Companion", "methods": [ { "name": "serializer", "parameterTypes": [ + "kotlinx.serialization.KSerializer" ] } ] }, { - "name": "dev.kord.common.entity.ApplicationFlags", + "name": "dev.kord.common.entity.CommandArgument", "fields": [ { "name": "Companion" @@ -478,17 +479,18 @@ ] }, { - "name": "dev.kord.common.entity.ApplicationFlags$Companion", + "name": "dev.kord.common.entity.CommandArgument$Companion", "methods": [ { "name": "serializer", "parameterTypes": [ + "kotlinx.serialization.KSerializer" ] } ] }, { - "name": "dev.kord.common.entity.InstallParams", + "name": "dev.kord.common.entity.ComponentType", "fields": [ { "name": "Companion" @@ -496,7 +498,7 @@ ] }, { - "name": "dev.kord.common.entity.InstallParams$Companion", + "name": "dev.kord.common.entity.ComponentType$Companion", "methods": [ { "name": "serializer", @@ -506,7 +508,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordChannel", + "name": "dev.kord.common.entity.DefaultMessageNotificationLevel", "fields": [ { "name": "Companion" @@ -514,7 +516,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordChannel$Companion", + "name": "dev.kord.common.entity.DefaultMessageNotificationLevel$Companion", "methods": [ { "name": "serializer", @@ -524,7 +526,7 @@ ] }, { - "name": "dev.kord.common.entity.Overwrite", + "name": "dev.kord.common.entity.DeletedMessage", "fields": [ { "name": "Companion" @@ -532,7 +534,7 @@ ] }, { - "name": "dev.kord.common.entity.Overwrite$Companion", + "name": "dev.kord.common.entity.DeletedMessage$Companion", "methods": [ { "name": "serializer", @@ -542,7 +544,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordThreadMetadata", + "name": "dev.kord.common.entity.DiscordActivity", "fields": [ { "name": "Companion" @@ -550,7 +552,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordThreadMetadata$Companion", + "name": "dev.kord.common.entity.DiscordActivity$Companion", "methods": [ { "name": "serializer", @@ -560,7 +562,7 @@ ] }, { - "name": "dev.kord.common.entity.ArchiveDuration", + "name": "dev.kord.common.entity.DiscordActivityAssets", "fields": [ { "name": "Companion" @@ -568,7 +570,7 @@ ] }, { - "name": "dev.kord.common.entity.ArchiveDuration$Companion", + "name": "dev.kord.common.entity.DiscordActivityAssets$Companion", "methods": [ { "name": "serializer", @@ -578,7 +580,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordComponent", + "name": "dev.kord.common.entity.DiscordActivityEmoji", "fields": [ { "name": "Companion" @@ -586,7 +588,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordComponent$Companion", + "name": "dev.kord.common.entity.DiscordActivityEmoji$Companion", "methods": [ { "name": "serializer", @@ -596,7 +598,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordChatComponent", + "name": "dev.kord.common.entity.DiscordActivityParty", "fields": [ { "name": "Companion" @@ -604,7 +606,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordChatComponent$Companion", + "name": "dev.kord.common.entity.DiscordActivityParty$Companion", "methods": [ { "name": "serializer", @@ -614,7 +616,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordTextInputComponent", + "name": "dev.kord.common.entity.DiscordActivityPartySize", "fields": [ { "name": "Companion" @@ -622,7 +624,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordTextInputComponent$Companion", + "name": "dev.kord.common.entity.DiscordActivityPartySize$Companion", "methods": [ { "name": "serializer", @@ -632,7 +634,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordConnection", + "name": "dev.kord.common.entity.DiscordActivitySecrets", "fields": [ { "name": "Companion" @@ -640,7 +642,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordConnection$Companion", + "name": "dev.kord.common.entity.DiscordActivitySecrets$Companion", "methods": [ { "name": "serializer", @@ -650,7 +652,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordEmoji", + "name": "dev.kord.common.entity.DiscordActivityTimestamps", "fields": [ { "name": "Companion" @@ -658,7 +660,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordEmoji$Companion", + "name": "dev.kord.common.entity.DiscordActivityTimestamps$Companion", "methods": [ { "name": "serializer", @@ -668,7 +670,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordUpdatedEmojis", + "name": "dev.kord.common.entity.DiscordAddedGuildMember", "fields": [ { "name": "Companion" @@ -676,7 +678,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordUpdatedEmojis$Companion", + "name": "dev.kord.common.entity.DiscordAddedGuildMember$Companion", "methods": [ { "name": "serializer", @@ -686,7 +688,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordPartialEmoji", + "name": "dev.kord.common.entity.DiscordApplication", "fields": [ { "name": "Companion" @@ -694,7 +696,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordPartialEmoji$Companion", + "name": "dev.kord.common.entity.DiscordApplication$Companion", "methods": [ { "name": "serializer", @@ -704,7 +706,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordUnavailableGuild", + "name": "dev.kord.common.entity.DiscordApplicationCommand", "fields": [ { "name": "Companion" @@ -712,7 +714,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordUnavailableGuild$Companion", + "name": "dev.kord.common.entity.DiscordApplicationCommand$Companion", "methods": [ { "name": "serializer", @@ -722,7 +724,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordGuild", + "name": "dev.kord.common.entity.DiscordAttachment", "fields": [ { "name": "Companion" @@ -730,7 +732,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordGuild$Companion", + "name": "dev.kord.common.entity.DiscordAttachment$Companion", "methods": [ { "name": "serializer", @@ -740,7 +742,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordPartialGuild", + "name": "dev.kord.common.entity.DiscordAuditLog", "fields": [ { "name": "Companion" @@ -748,7 +750,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordPartialGuild$Companion", + "name": "dev.kord.common.entity.DiscordAuditLog$Companion", "methods": [ { "name": "serializer", @@ -758,7 +760,7 @@ ] }, { - "name": "dev.kord.common.entity.SystemChannelFlags", + "name": "dev.kord.common.entity.DiscordAuditLogEntry", "fields": [ { "name": "Companion" @@ -766,7 +768,7 @@ ] }, { - "name": "dev.kord.common.entity.SystemChannelFlags$Companion", + "name": "dev.kord.common.entity.DiscordAuditLogEntry$Companion", "methods": [ { "name": "serializer", @@ -776,7 +778,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordGuildBan", + "name": "dev.kord.common.entity.DiscordAuditLogRoleChange", "fields": [ { "name": "Companion" @@ -784,7 +786,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordGuildBan$Companion", + "name": "dev.kord.common.entity.DiscordAuditLogRoleChange$Companion", "methods": [ { "name": "serializer", @@ -794,7 +796,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordGuildIntegrations", + "name": "dev.kord.common.entity.DiscordAutoComplete", "fields": [ { "name": "Companion" @@ -802,17 +804,18 @@ ] }, { - "name": "dev.kord.common.entity.DiscordGuildIntegrations$Companion", + "name": "dev.kord.common.entity.DiscordAutoComplete$Companion", "methods": [ { "name": "serializer", "parameterTypes": [ + "kotlinx.serialization.KSerializer" ] } ] }, { - "name": "dev.kord.common.entity.DiscordGuildIntegrationsDeleted", + "name": "dev.kord.common.entity.DiscordAutoModerationAction", "fields": [ { "name": "Companion" @@ -820,7 +823,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordGuildIntegrationsDeleted$Companion", + "name": "dev.kord.common.entity.DiscordAutoModerationAction$Companion", "methods": [ { "name": "serializer", @@ -830,7 +833,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordIntegrationAccount", + "name": "dev.kord.common.entity.DiscordAutoModerationActionMetadata", "fields": [ { "name": "Companion" @@ -838,7 +841,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordIntegrationAccount$Companion", + "name": "dev.kord.common.entity.DiscordAutoModerationActionMetadata$Companion", "methods": [ { "name": "serializer", @@ -848,7 +851,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordVoiceServerUpdateData", + "name": "dev.kord.common.entity.DiscordAutoModerationRule", "fields": [ { "name": "Companion" @@ -856,7 +859,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordVoiceServerUpdateData$Companion", + "name": "dev.kord.common.entity.DiscordAutoModerationRule$Companion", "methods": [ { "name": "serializer", @@ -866,7 +869,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordWebhooksUpdateData", + "name": "dev.kord.common.entity.DiscordAutoModerationRuleTriggerMetadata", "fields": [ { "name": "Companion" @@ -874,7 +877,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordWebhooksUpdateData$Companion", + "name": "dev.kord.common.entity.DiscordAutoModerationRuleTriggerMetadata$Companion", "methods": [ { "name": "serializer", @@ -884,7 +887,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordVoiceState", + "name": "dev.kord.common.entity.DiscordBotActivity", "fields": [ { "name": "Companion" @@ -892,7 +895,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordVoiceState$Companion", + "name": "dev.kord.common.entity.DiscordBotActivity$Companion", "methods": [ { "name": "serializer", @@ -902,7 +905,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordVoiceRegion", + "name": "dev.kord.common.entity.DiscordChannel", "fields": [ { "name": "Companion" @@ -910,7 +913,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordVoiceRegion$Companion", + "name": "dev.kord.common.entity.DiscordChannel$Companion", "methods": [ { "name": "serializer", @@ -920,7 +923,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordWelcomeScreenChannel", + "name": "dev.kord.common.entity.DiscordChatComponent", "fields": [ { "name": "Companion" @@ -928,7 +931,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordWelcomeScreenChannel$Companion", + "name": "dev.kord.common.entity.DiscordChatComponent$Companion", "methods": [ { "name": "serializer", @@ -938,7 +941,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordWelcomeScreen", + "name": "dev.kord.common.entity.DiscordClientStatus", "fields": [ { "name": "Companion" @@ -946,7 +949,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordWelcomeScreen$Companion", + "name": "dev.kord.common.entity.DiscordClientStatus$Companion", "methods": [ { "name": "serializer", @@ -956,7 +959,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordGuildPreview", + "name": "dev.kord.common.entity.DiscordComponent", "fields": [ { "name": "Companion" @@ -964,7 +967,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordGuildPreview$Companion", + "name": "dev.kord.common.entity.DiscordComponent$Companion", "methods": [ { "name": "serializer", @@ -974,7 +977,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordGuildScheduledEvent", + "name": "dev.kord.common.entity.DiscordConnection", "fields": [ { "name": "Companion" @@ -982,7 +985,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordGuildScheduledEvent$Companion", + "name": "dev.kord.common.entity.DiscordConnection$Companion", "methods": [ { "name": "serializer", @@ -992,7 +995,7 @@ ] }, { - "name": "dev.kord.common.entity.GuildScheduledEventEntityMetadata", + "name": "dev.kord.common.entity.DiscordConnectionVisibility", "fields": [ { "name": "Companion" @@ -1000,7 +1003,7 @@ ] }, { - "name": "dev.kord.common.entity.GuildScheduledEventEntityMetadata$Companion", + "name": "dev.kord.common.entity.DiscordConnectionVisibility$Companion", "methods": [ { "name": "serializer", @@ -1010,7 +1013,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordGuildWidget", + "name": "dev.kord.common.entity.DiscordDeletedGuildRole", "fields": [ { "name": "Companion" @@ -1018,7 +1021,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordGuildWidget$Companion", + "name": "dev.kord.common.entity.DiscordDeletedGuildRole$Companion", "methods": [ { "name": "serializer", @@ -1028,7 +1031,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordIntegration", + "name": "dev.kord.common.entity.DiscordEmbed", "fields": [ { "name": "Companion" @@ -1036,25 +1039,25 @@ ] }, { - "name": "dev.kord.common.entity.DiscordIntegration$Companion", - "methods": [ + "name": "dev.kord.common.entity.DiscordEmbed$Author", + "fields": [ { - "name": "serializer", - "parameterTypes": [ - ] + "name": "Companion" } ] }, { - "name": "dev.kord.common.entity.DiscordPartialIntegration", - "fields": [ + "name": "dev.kord.common.entity.DiscordEmbed$Author$Companion", + "methods": [ { - "name": "Companion" + "name": "serializer", + "parameterTypes": [ + ] } ] }, { - "name": "dev.kord.common.entity.DiscordPartialIntegration$Companion", + "name": "dev.kord.common.entity.DiscordEmbed$Companion", "methods": [ { "name": "serializer", @@ -1064,7 +1067,7 @@ ] }, { - "name": "dev.kord.common.entity.IntegrationApplication", + "name": "dev.kord.common.entity.DiscordEmbed$Field", "fields": [ { "name": "Companion" @@ -1072,7 +1075,7 @@ ] }, { - "name": "dev.kord.common.entity.IntegrationApplication$Companion", + "name": "dev.kord.common.entity.DiscordEmbed$Field$Companion", "methods": [ { "name": "serializer", @@ -1082,7 +1085,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordIntegrationsAccount", + "name": "dev.kord.common.entity.DiscordEmbed$Footer", "fields": [ { "name": "Companion" @@ -1090,7 +1093,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordIntegrationsAccount$Companion", + "name": "dev.kord.common.entity.DiscordEmbed$Footer$Companion", "methods": [ { "name": "serializer", @@ -1100,7 +1103,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordInvite", + "name": "dev.kord.common.entity.DiscordEmbed$Image", "fields": [ { "name": "Companion" @@ -1108,7 +1111,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordInvite$Companion", + "name": "dev.kord.common.entity.DiscordEmbed$Image$Companion", "methods": [ { "name": "serializer", @@ -1118,7 +1121,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordInviteWithMetadata", + "name": "dev.kord.common.entity.DiscordEmbed$Provider", "fields": [ { "name": "Companion" @@ -1126,7 +1129,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordInviteWithMetadata$Companion", + "name": "dev.kord.common.entity.DiscordEmbed$Provider$Companion", "methods": [ { "name": "serializer", @@ -1136,7 +1139,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordPartialInvite", + "name": "dev.kord.common.entity.DiscordEmbed$Thumbnail", "fields": [ { "name": "Companion" @@ -1144,7 +1147,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordPartialInvite$Companion", + "name": "dev.kord.common.entity.DiscordEmbed$Thumbnail$Companion", "methods": [ { "name": "serializer", @@ -1154,7 +1157,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordMessage", + "name": "dev.kord.common.entity.DiscordEmbed$Video", "fields": [ { "name": "Companion" @@ -1162,7 +1165,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordMessage$Companion", + "name": "dev.kord.common.entity.DiscordEmbed$Video$Companion", "methods": [ { "name": "serializer", @@ -1172,7 +1175,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordMessageSticker", + "name": "dev.kord.common.entity.DiscordEmoji", "fields": [ { "name": "Companion" @@ -1180,7 +1183,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordMessageSticker$Companion", + "name": "dev.kord.common.entity.DiscordEmoji$Companion", "methods": [ { "name": "serializer", @@ -1190,7 +1193,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordStickerPack", + "name": "dev.kord.common.entity.DiscordGuild", "fields": [ { "name": "Companion" @@ -1198,7 +1201,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordStickerPack$Companion", + "name": "dev.kord.common.entity.DiscordGuild$Companion", "methods": [ { "name": "serializer", @@ -1208,7 +1211,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordStickerItem", + "name": "dev.kord.common.entity.DiscordGuildApplicationCommandPermission", "fields": [ { "name": "Companion" @@ -1216,7 +1219,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordStickerItem$Companion", + "name": "dev.kord.common.entity.DiscordGuildApplicationCommandPermission$Companion", "methods": [ { "name": "serializer", @@ -1226,7 +1229,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordPartialMessage", + "name": "dev.kord.common.entity.DiscordGuildApplicationCommandPermission$Type", "fields": [ { "name": "Companion" @@ -1234,7 +1237,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordPartialMessage$Companion", + "name": "dev.kord.common.entity.DiscordGuildApplicationCommandPermission$Type$Companion", "methods": [ { "name": "serializer", @@ -1244,7 +1247,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordMessageReference", + "name": "dev.kord.common.entity.DiscordGuildApplicationCommandPermissions", "fields": [ { "name": "Companion" @@ -1252,7 +1255,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordMessageReference$Companion", + "name": "dev.kord.common.entity.DiscordGuildApplicationCommandPermissions$Companion", "methods": [ { "name": "serializer", @@ -1262,7 +1265,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordMentionedChannel", + "name": "dev.kord.common.entity.DiscordGuildBan", "fields": [ { "name": "Companion" @@ -1270,7 +1273,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordMentionedChannel$Companion", + "name": "dev.kord.common.entity.DiscordGuildBan$Companion", "methods": [ { "name": "serializer", @@ -1280,7 +1283,7 @@ ] }, { - "name": "dev.kord.common.entity.MessageFlags", + "name": "dev.kord.common.entity.DiscordGuildIntegrations", "fields": [ { "name": "Companion" @@ -1288,7 +1291,7 @@ ] }, { - "name": "dev.kord.common.entity.MessageFlags$Companion", + "name": "dev.kord.common.entity.DiscordGuildIntegrations$Companion", "methods": [ { "name": "serializer", @@ -1298,7 +1301,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordAttachment", + "name": "dev.kord.common.entity.DiscordGuildIntegrationsDeleted", "fields": [ { "name": "Companion" @@ -1306,7 +1309,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordAttachment$Companion", + "name": "dev.kord.common.entity.DiscordGuildIntegrationsDeleted$Companion", "methods": [ { "name": "serializer", @@ -1316,7 +1319,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordEmbed", + "name": "dev.kord.common.entity.DiscordGuildMember", "fields": [ { "name": "Companion" @@ -1324,7 +1327,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordEmbed$Companion", + "name": "dev.kord.common.entity.DiscordGuildMember$Companion", "methods": [ { "name": "serializer", @@ -1334,7 +1337,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordEmbed$Footer", + "name": "dev.kord.common.entity.DiscordGuildPreview", "fields": [ { "name": "Companion" @@ -1342,7 +1345,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordEmbed$Footer$Companion", + "name": "dev.kord.common.entity.DiscordGuildPreview$Companion", "methods": [ { "name": "serializer", @@ -1352,7 +1355,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordEmbed$Image", + "name": "dev.kord.common.entity.DiscordGuildRole", "fields": [ { "name": "Companion" @@ -1360,7 +1363,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordEmbed$Image$Companion", + "name": "dev.kord.common.entity.DiscordGuildRole$Companion", "methods": [ { "name": "serializer", @@ -1370,7 +1373,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordEmbed$Thumbnail", + "name": "dev.kord.common.entity.DiscordGuildScheduledEvent", "fields": [ { "name": "Companion" @@ -1378,7 +1381,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordEmbed$Thumbnail$Companion", + "name": "dev.kord.common.entity.DiscordGuildScheduledEvent$Companion", "methods": [ { "name": "serializer", @@ -1388,7 +1391,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordEmbed$Video", + "name": "dev.kord.common.entity.DiscordGuildWidget", "fields": [ { "name": "Companion" @@ -1396,7 +1399,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordEmbed$Video$Companion", + "name": "dev.kord.common.entity.DiscordGuildWidget$Companion", "methods": [ { "name": "serializer", @@ -1406,7 +1409,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordEmbed$Provider", + "name": "dev.kord.common.entity.DiscordIntegration", "fields": [ { "name": "Companion" @@ -1414,7 +1417,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordEmbed$Provider$Companion", + "name": "dev.kord.common.entity.DiscordIntegration$Companion", "methods": [ { "name": "serializer", @@ -1424,7 +1427,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordEmbed$Author", + "name": "dev.kord.common.entity.DiscordIntegrationAccount", "fields": [ { "name": "Companion" @@ -1432,7 +1435,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordEmbed$Author$Companion", + "name": "dev.kord.common.entity.DiscordIntegrationAccount$Companion", "methods": [ { "name": "serializer", @@ -1442,7 +1445,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordEmbed$Field", + "name": "dev.kord.common.entity.DiscordIntegrationsAccount", "fields": [ { "name": "Companion" @@ -1450,7 +1453,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordEmbed$Field$Companion", + "name": "dev.kord.common.entity.DiscordIntegrationsAccount$Companion", "methods": [ { "name": "serializer", @@ -1460,7 +1463,7 @@ ] }, { - "name": "dev.kord.common.entity.Reaction", + "name": "dev.kord.common.entity.DiscordInteraction", "fields": [ { "name": "Companion" @@ -1468,7 +1471,7 @@ ] }, { - "name": "dev.kord.common.entity.Reaction$Companion", + "name": "dev.kord.common.entity.DiscordInteraction$Companion", "methods": [ { "name": "serializer", @@ -1478,7 +1481,7 @@ ] }, { - "name": "dev.kord.common.entity.MessageActivity", + "name": "dev.kord.common.entity.DiscordInteractionGuildMember", "fields": [ { "name": "Companion" @@ -1486,7 +1489,7 @@ ] }, { - "name": "dev.kord.common.entity.MessageActivity$Companion", + "name": "dev.kord.common.entity.DiscordInteractionGuildMember$Companion", "methods": [ { "name": "serializer", @@ -1496,7 +1499,7 @@ ] }, { - "name": "dev.kord.common.entity.MessageApplication", + "name": "dev.kord.common.entity.DiscordInvite", "fields": [ { "name": "Companion" @@ -1504,7 +1507,7 @@ ] }, { - "name": "dev.kord.common.entity.MessageApplication$Companion", + "name": "dev.kord.common.entity.DiscordInvite$Companion", "methods": [ { "name": "serializer", @@ -1514,7 +1517,7 @@ ] }, { - "name": "dev.kord.common.entity.DeletedMessage", + "name": "dev.kord.common.entity.DiscordInviteWithMetadata", "fields": [ { "name": "Companion" @@ -1522,7 +1525,7 @@ ] }, { - "name": "dev.kord.common.entity.DeletedMessage$Companion", + "name": "dev.kord.common.entity.DiscordInviteWithMetadata$Companion", "methods": [ { "name": "serializer", @@ -1532,7 +1535,7 @@ ] }, { - "name": "dev.kord.common.entity.BulkDeleteData", + "name": "dev.kord.common.entity.DiscordMentionedChannel", "fields": [ { "name": "Companion" @@ -1540,7 +1543,7 @@ ] }, { - "name": "dev.kord.common.entity.BulkDeleteData$Companion", + "name": "dev.kord.common.entity.DiscordMentionedChannel$Companion", "methods": [ { "name": "serializer", @@ -1550,7 +1553,7 @@ ] }, { - "name": "dev.kord.common.entity.MessageReactionAddData", + "name": "dev.kord.common.entity.DiscordMessage", "fields": [ { "name": "Companion" @@ -1558,7 +1561,7 @@ ] }, { - "name": "dev.kord.common.entity.MessageReactionAddData$Companion", + "name": "dev.kord.common.entity.DiscordMessage$Companion", "methods": [ { "name": "serializer", @@ -1568,7 +1571,7 @@ ] }, { - "name": "dev.kord.common.entity.MessageReactionRemoveData", + "name": "dev.kord.common.entity.DiscordMessageInteraction", "fields": [ { "name": "Companion" @@ -1576,7 +1579,7 @@ ] }, { - "name": "dev.kord.common.entity.MessageReactionRemoveData$Companion", + "name": "dev.kord.common.entity.DiscordMessageInteraction$Companion", "methods": [ { "name": "serializer", @@ -1586,7 +1589,7 @@ ] }, { - "name": "dev.kord.common.entity.AllRemovedMessageReactions", + "name": "dev.kord.common.entity.DiscordMessageReference", "fields": [ { "name": "Companion" @@ -1594,7 +1597,7 @@ ] }, { - "name": "dev.kord.common.entity.AllRemovedMessageReactions$Companion", + "name": "dev.kord.common.entity.DiscordMessageReference$Companion", "methods": [ { "name": "serializer", @@ -1604,7 +1607,7 @@ ] }, { - "name": "dev.kord.common.entity.AllowedMentions", + "name": "dev.kord.common.entity.DiscordMessageSticker", "fields": [ { "name": "Companion" @@ -1612,7 +1615,7 @@ ] }, { - "name": "dev.kord.common.entity.AllowedMentions$Companion", + "name": "dev.kord.common.entity.DiscordMessageSticker$Companion", "methods": [ { "name": "serializer", @@ -1622,7 +1625,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordMessageInteraction", + "name": "dev.kord.common.entity.DiscordModal", "fields": [ { "name": "Companion" @@ -1630,7 +1633,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordMessageInteraction$Companion", + "name": "dev.kord.common.entity.DiscordModal$Companion", "methods": [ { "name": "serializer", @@ -1640,7 +1643,7 @@ ] }, { - "name": "dev.kord.common.entity.RoleSubscription", + "name": "dev.kord.common.entity.DiscordNull", "fields": [ { "name": "Companion" @@ -1648,7 +1651,7 @@ ] }, { - "name": "dev.kord.common.entity.RoleSubscription$Companion", + "name": "dev.kord.common.entity.DiscordNull$Companion", "methods": [ { "name": "serializer", @@ -1658,7 +1661,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordNull", + "name": "dev.kord.common.entity.DiscordOptionallyMemberUser", "fields": [ { "name": "Companion" @@ -1666,7 +1669,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordNull$Companion", + "name": "dev.kord.common.entity.DiscordOptionallyMemberUser$Companion", "methods": [ { "name": "serializer", @@ -1676,7 +1679,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordRole", + "name": "dev.kord.common.entity.DiscordPartialApplication", "fields": [ { "name": "Companion" @@ -1684,7 +1687,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordRole$Companion", + "name": "dev.kord.common.entity.DiscordPartialApplication$Companion", "methods": [ { "name": "serializer", @@ -1694,7 +1697,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordRoleTags", + "name": "dev.kord.common.entity.DiscordPartialEmoji", "fields": [ { "name": "Companion" @@ -1702,7 +1705,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordRoleTags$Companion", + "name": "dev.kord.common.entity.DiscordPartialEmoji$Companion", "methods": [ { "name": "serializer", @@ -1712,7 +1715,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordPartialRole", + "name": "dev.kord.common.entity.DiscordPartialGuild", "fields": [ { "name": "Companion" @@ -1720,7 +1723,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordPartialRole$Companion", + "name": "dev.kord.common.entity.DiscordPartialGuild$Companion", "methods": [ { "name": "serializer", @@ -1730,7 +1733,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordAuditLogRoleChange", + "name": "dev.kord.common.entity.DiscordPartialIntegration", "fields": [ { "name": "Companion" @@ -1738,7 +1741,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordAuditLogRoleChange$Companion", + "name": "dev.kord.common.entity.DiscordPartialIntegration$Companion", "methods": [ { "name": "serializer", @@ -1748,7 +1751,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordGuildRole", + "name": "dev.kord.common.entity.DiscordPartialInvite", "fields": [ { "name": "Companion" @@ -1756,7 +1759,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordGuildRole$Companion", + "name": "dev.kord.common.entity.DiscordPartialInvite$Companion", "methods": [ { "name": "serializer", @@ -1766,7 +1769,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordDeletedGuildRole", + "name": "dev.kord.common.entity.DiscordPartialMessage", "fields": [ { "name": "Companion" @@ -1774,7 +1777,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordDeletedGuildRole$Companion", + "name": "dev.kord.common.entity.DiscordPartialMessage$Companion", "methods": [ { "name": "serializer", @@ -1784,7 +1787,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordSelectOption", + "name": "dev.kord.common.entity.DiscordPartialRole", "fields": [ { "name": "Companion" @@ -1792,7 +1795,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordSelectOption$Companion", + "name": "dev.kord.common.entity.DiscordPartialRole$Companion", "methods": [ { "name": "serializer", @@ -1802,7 +1805,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordShard", + "name": "dev.kord.common.entity.DiscordPinsUpdateData", "fields": [ { "name": "Companion" @@ -1810,7 +1813,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordShard$Companion", + "name": "dev.kord.common.entity.DiscordPinsUpdateData$Companion", "methods": [ { "name": "serializer", @@ -1820,7 +1823,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordStageInstance", + "name": "dev.kord.common.entity.DiscordPresenceUpdate", "fields": [ { "name": "Companion" @@ -1828,7 +1831,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordStageInstance$Companion", + "name": "dev.kord.common.entity.DiscordPresenceUpdate$Companion", "methods": [ { "name": "serializer", @@ -1838,7 +1841,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordTemplate", + "name": "dev.kord.common.entity.DiscordPresenceUser", "fields": [ { "name": "Companion" @@ -1846,7 +1849,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordTemplate$Companion", + "name": "dev.kord.common.entity.DiscordPresenceUser$Companion", "methods": [ { "name": "serializer", @@ -1856,7 +1859,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordUser", + "name": "dev.kord.common.entity.DiscordRemovedGuildMember", "fields": [ { "name": "Companion" @@ -1864,7 +1867,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordUser$Companion", + "name": "dev.kord.common.entity.DiscordRemovedGuildMember$Companion", "methods": [ { "name": "serializer", @@ -1874,7 +1877,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordOptionallyMemberUser", + "name": "dev.kord.common.entity.DiscordRole", "fields": [ { "name": "Companion" @@ -1882,7 +1885,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordOptionallyMemberUser$Companion", + "name": "dev.kord.common.entity.DiscordRole$Companion", "methods": [ { "name": "serializer", @@ -1892,15 +1895,15 @@ ] }, { - "name": "dev.kord.common.entity.UserFlags", + "name": "dev.kord.common.entity.DiscordRoleTags", "fields": [ { - "name": "UserFlagsSerializer" + "name": "Companion" } ] }, { - "name": "dev.kord.common.entity.UserFlags$UserFlagsSerializer", + "name": "dev.kord.common.entity.DiscordRoleTags$Companion", "methods": [ { "name": "serializer", @@ -1910,7 +1913,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordWebhook", + "name": "dev.kord.common.entity.DiscordSelectOption", "fields": [ { "name": "Companion" @@ -1918,7 +1921,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordWebhook$Companion", + "name": "dev.kord.common.entity.DiscordSelectOption$Companion", "methods": [ { "name": "serializer", @@ -1928,7 +1931,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordApplicationCommand", + "name": "dev.kord.common.entity.DiscordShard", "fields": [ { "name": "Companion" @@ -1936,7 +1939,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordApplicationCommand$Companion", + "name": "dev.kord.common.entity.DiscordShard$Companion", "methods": [ { "name": "serializer", @@ -1946,7 +1949,7 @@ ] }, { - "name": "dev.kord.common.entity.ApplicationCommandOption", + "name": "dev.kord.common.entity.DiscordStageInstance", "fields": [ { "name": "Companion" @@ -1954,7 +1957,7 @@ ] }, { - "name": "dev.kord.common.entity.ApplicationCommandOption$Companion", + "name": "dev.kord.common.entity.DiscordStageInstance$Companion", "methods": [ { "name": "serializer", @@ -1964,7 +1967,7 @@ ] }, { - "name": "dev.kord.common.entity.Choice", + "name": "dev.kord.common.entity.DiscordStickerItem", "fields": [ { "name": "Companion" @@ -1972,18 +1975,17 @@ ] }, { - "name": "dev.kord.common.entity.Choice$Companion", + "name": "dev.kord.common.entity.DiscordStickerItem$Companion", "methods": [ { "name": "serializer", "parameterTypes": [ - "kotlinx.serialization.KSerializer" ] } ] }, { - "name": "dev.kord.common.entity.ResolvedObjects", + "name": "dev.kord.common.entity.DiscordStickerPack", "fields": [ { "name": "Companion" @@ -1991,7 +1993,7 @@ ] }, { - "name": "dev.kord.common.entity.ResolvedObjects$Companion", + "name": "dev.kord.common.entity.DiscordStickerPack$Companion", "methods": [ { "name": "serializer", @@ -2001,7 +2003,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordInteraction", + "name": "dev.kord.common.entity.DiscordTeam", "fields": [ { "name": "Companion" @@ -2009,7 +2011,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordInteraction$Companion", + "name": "dev.kord.common.entity.DiscordTeam$Companion", "methods": [ { "name": "serializer", @@ -2019,7 +2021,7 @@ ] }, { - "name": "dev.kord.common.entity.InteractionCallbackData", + "name": "dev.kord.common.entity.DiscordTeamMember", "fields": [ { "name": "Companion" @@ -2027,7 +2029,7 @@ ] }, { - "name": "dev.kord.common.entity.InteractionCallbackData$Companion", + "name": "dev.kord.common.entity.DiscordTeamMember$Companion", "methods": [ { "name": "serializer", @@ -2037,7 +2039,7 @@ ] }, { - "name": "dev.kord.common.entity.Option", + "name": "dev.kord.common.entity.DiscordTemplate", "fields": [ { "name": "Companion" @@ -2045,7 +2047,7 @@ ] }, { - "name": "dev.kord.common.entity.Option$Companion", + "name": "dev.kord.common.entity.DiscordTemplate$Companion", "methods": [ { "name": "serializer", @@ -2055,7 +2057,7 @@ ] }, { - "name": "dev.kord.common.entity.SubCommand", + "name": "dev.kord.common.entity.DiscordTextInputComponent", "fields": [ { "name": "Companion" @@ -2063,7 +2065,7 @@ ] }, { - "name": "dev.kord.common.entity.SubCommand$Companion", + "name": "dev.kord.common.entity.DiscordTextInputComponent$Companion", "methods": [ { "name": "serializer", @@ -2073,7 +2075,7 @@ ] }, { - "name": "dev.kord.common.entity.CommandArgument", + "name": "dev.kord.common.entity.DiscordThreadMember", "fields": [ { "name": "Companion" @@ -2081,18 +2083,17 @@ ] }, { - "name": "dev.kord.common.entity.CommandArgument$Companion", + "name": "dev.kord.common.entity.DiscordThreadMember$Companion", "methods": [ { "name": "serializer", "parameterTypes": [ - "kotlinx.serialization.KSerializer" ] } ] }, { - "name": "dev.kord.common.entity.DiscordGuildApplicationCommandPermissions", + "name": "dev.kord.common.entity.DiscordThreadMetadata", "fields": [ { "name": "Companion" @@ -2100,7 +2101,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordGuildApplicationCommandPermissions$Companion", + "name": "dev.kord.common.entity.DiscordThreadMetadata$Companion", "methods": [ { "name": "serializer", @@ -2110,7 +2111,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordGuildApplicationCommandPermission", + "name": "dev.kord.common.entity.DiscordTyping", "fields": [ { "name": "Companion" @@ -2118,7 +2119,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordGuildApplicationCommandPermission$Companion", + "name": "dev.kord.common.entity.DiscordTyping$Companion", "methods": [ { "name": "serializer", @@ -2128,7 +2129,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordGuildApplicationCommandPermission$Type", + "name": "dev.kord.common.entity.DiscordUnavailableGuild", "fields": [ { "name": "Companion" @@ -2136,7 +2137,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordGuildApplicationCommandPermission$Type$Companion", + "name": "dev.kord.common.entity.DiscordUnavailableGuild$Companion", "methods": [ { "name": "serializer", @@ -2146,7 +2147,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordAutoComplete", + "name": "dev.kord.common.entity.DiscordUpdatedEmojis", "fields": [ { "name": "Companion" @@ -2154,18 +2155,17 @@ ] }, { - "name": "dev.kord.common.entity.DiscordAutoComplete$Companion", + "name": "dev.kord.common.entity.DiscordUpdatedEmojis$Companion", "methods": [ { "name": "serializer", "parameterTypes": [ - "kotlinx.serialization.KSerializer" ] } ] }, { - "name": "dev.kord.common.entity.DiscordModal", + "name": "dev.kord.common.entity.DiscordUpdatedGuildMember", "fields": [ { "name": "Companion" @@ -2173,7 +2173,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordModal$Companion", + "name": "dev.kord.common.entity.DiscordUpdatedGuildMember$Companion", "methods": [ { "name": "serializer", @@ -2183,7 +2183,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordGuildMember", + "name": "dev.kord.common.entity.DiscordUser", "fields": [ { "name": "Companion" @@ -2191,7 +2191,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordGuildMember$Companion", + "name": "dev.kord.common.entity.DiscordUser$Companion", "methods": [ { "name": "serializer", @@ -2201,7 +2201,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordInteractionGuildMember", + "name": "dev.kord.common.entity.DiscordVoiceRegion", "fields": [ { "name": "Companion" @@ -2209,7 +2209,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordInteractionGuildMember$Companion", + "name": "dev.kord.common.entity.DiscordVoiceRegion$Companion", "methods": [ { "name": "serializer", @@ -2219,7 +2219,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordAddedGuildMember", + "name": "dev.kord.common.entity.DiscordVoiceServerUpdateData", "fields": [ { "name": "Companion" @@ -2227,7 +2227,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordAddedGuildMember$Companion", + "name": "dev.kord.common.entity.DiscordVoiceServerUpdateData$Companion", "methods": [ { "name": "serializer", @@ -2237,7 +2237,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordRemovedGuildMember", + "name": "dev.kord.common.entity.DiscordVoiceState", "fields": [ { "name": "Companion" @@ -2245,7 +2245,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordRemovedGuildMember$Companion", + "name": "dev.kord.common.entity.DiscordVoiceState$Companion", "methods": [ { "name": "serializer", @@ -2255,7 +2255,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordUpdatedGuildMember", + "name": "dev.kord.common.entity.DiscordWebhook", "fields": [ { "name": "Companion" @@ -2263,7 +2263,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordUpdatedGuildMember$Companion", + "name": "dev.kord.common.entity.DiscordWebhook$Companion", "methods": [ { "name": "serializer", @@ -2273,7 +2273,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordThreadMember", + "name": "dev.kord.common.entity.DiscordWebhooksUpdateData", "fields": [ { "name": "Companion" @@ -2281,7 +2281,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordThreadMember$Companion", + "name": "dev.kord.common.entity.DiscordWebhooksUpdateData$Companion", "methods": [ { "name": "serializer", @@ -2291,7 +2291,7 @@ ] }, { - "name": "dev.kord.common.entity.GuildMemberFlags", + "name": "dev.kord.common.entity.DiscordWelcomeScreen", "fields": [ { "name": "Companion" @@ -2299,7 +2299,7 @@ ] }, { - "name": "dev.kord.common.entity.GuildMemberFlags$Companion", + "name": "dev.kord.common.entity.DiscordWelcomeScreen$Companion", "methods": [ { "name": "serializer", @@ -2309,7 +2309,7 @@ ] }, { - "name": "dev.kord.common.entity.GuildMemberFlag", + "name": "dev.kord.common.entity.DiscordWelcomeScreenChannel", "fields": [ { "name": "Companion" @@ -2317,7 +2317,7 @@ ] }, { - "name": "dev.kord.common.entity.GuildMemberFlag$Companion", + "name": "dev.kord.common.entity.DiscordWelcomeScreenChannel$Companion", "methods": [ { "name": "serializer", @@ -2327,7 +2327,7 @@ ] }, { - "name": "dev.kord.common.entity.Permissions", + "name": "dev.kord.common.entity.EmbedType", "fields": [ { "name": "Companion" @@ -2335,7 +2335,7 @@ ] }, { - "name": "dev.kord.common.entity.Permissions$Companion", + "name": "dev.kord.common.entity.EmbedType$Companion", "methods": [ { "name": "serializer", @@ -2345,7 +2345,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordPresenceUpdate", + "name": "dev.kord.common.entity.ExplicitContentFilter", "fields": [ { "name": "Companion" @@ -2353,7 +2353,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordPresenceUpdate$Companion", + "name": "dev.kord.common.entity.ExplicitContentFilter$Companion", "methods": [ { "name": "serializer", @@ -2363,7 +2363,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordPresenceUser", + "name": "dev.kord.common.entity.GuildFeature", "fields": [ { "name": "Companion" @@ -2371,7 +2371,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordPresenceUser$Companion", + "name": "dev.kord.common.entity.GuildFeature$Companion", "methods": [ { "name": "serializer", @@ -2381,7 +2381,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordClientStatus", + "name": "dev.kord.common.entity.GuildMemberFlag", "fields": [ { "name": "Companion" @@ -2389,7 +2389,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordClientStatus$Companion", + "name": "dev.kord.common.entity.GuildMemberFlag$Companion", "methods": [ { "name": "serializer", @@ -2399,7 +2399,7 @@ ] }, { - "name": "dev.kord.common.entity.Snowflake", + "name": "dev.kord.common.entity.GuildMemberFlags", "fields": [ { "name": "Companion" @@ -2407,7 +2407,7 @@ ] }, { - "name": "dev.kord.common.entity.Snowflake$Companion", + "name": "dev.kord.common.entity.GuildMemberFlags$Companion", "methods": [ { "name": "serializer", @@ -2417,7 +2417,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordTeam", + "name": "dev.kord.common.entity.GuildScheduledEventEntityMetadata", "fields": [ { "name": "Companion" @@ -2425,7 +2425,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordTeam$Companion", + "name": "dev.kord.common.entity.GuildScheduledEventEntityMetadata$Companion", "methods": [ { "name": "serializer", @@ -2435,7 +2435,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordTeamMember", + "name": "dev.kord.common.entity.GuildScheduledEventPrivacyLevel", "fields": [ { "name": "Companion" @@ -2443,7 +2443,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordTeamMember$Companion", + "name": "dev.kord.common.entity.GuildScheduledEventPrivacyLevel$Companion", "methods": [ { "name": "serializer", @@ -2453,7 +2453,7 @@ ] }, { - "name": "dev.kord.common.entity.optional.Optional", + "name": "dev.kord.common.entity.GuildScheduledEventStatus", "fields": [ { "name": "Companion" @@ -2461,18 +2461,17 @@ ] }, { - "name": "dev.kord.common.entity.optional.Optional$Companion", + "name": "dev.kord.common.entity.GuildScheduledEventStatus$Companion", "methods": [ { "name": "serializer", "parameterTypes": [ - "kotlinx.serialization.KSerializer" ] } ] }, { - "name": "dev.kord.common.entity.optional.OptionalBoolean", + "name": "dev.kord.common.entity.InstallParams", "fields": [ { "name": "Companion" @@ -2480,7 +2479,7 @@ ] }, { - "name": "dev.kord.common.entity.optional.OptionalBoolean$Companion", + "name": "dev.kord.common.entity.InstallParams$Companion", "methods": [ { "name": "serializer", @@ -2490,7 +2489,7 @@ ] }, { - "name": "dev.kord.common.entity.optional.OptionalInt", + "name": "dev.kord.common.entity.IntegrationApplication", "fields": [ { "name": "Companion" @@ -2498,7 +2497,7 @@ ] }, { - "name": "dev.kord.common.entity.optional.OptionalInt$Companion", + "name": "dev.kord.common.entity.IntegrationApplication$Companion", "methods": [ { "name": "serializer", @@ -2508,7 +2507,7 @@ ] }, { - "name": "dev.kord.common.entity.optional.OptionalLong", + "name": "dev.kord.common.entity.IntegrationExpireBehavior", "fields": [ { "name": "Companion" @@ -2516,7 +2515,7 @@ ] }, { - "name": "dev.kord.common.entity.optional.OptionalLong$Companion", + "name": "dev.kord.common.entity.IntegrationExpireBehavior$Companion", "methods": [ { "name": "serializer", @@ -2526,7 +2525,7 @@ ] }, { - "name": "dev.kord.common.entity.optional.OptionalSnowflake", + "name": "dev.kord.common.entity.InteractionCallbackData", "fields": [ { "name": "Companion" @@ -2534,7 +2533,7 @@ ] }, { - "name": "dev.kord.common.entity.optional.OptionalSnowflake$Companion", + "name": "dev.kord.common.entity.InteractionCallbackData$Companion", "methods": [ { "name": "serializer", @@ -2544,7 +2543,7 @@ ] }, { - "name": "dev.kord.common.entity.ScheduledEntityType", + "name": "dev.kord.common.entity.InteractionResponseType", "fields": [ { "name": "Companion" @@ -2552,7 +2551,7 @@ ] }, { - "name": "dev.kord.common.entity.ScheduledEntityType$Companion", + "name": "dev.kord.common.entity.InteractionResponseType$Companion", "methods": [ { "name": "serializer", @@ -2562,7 +2561,7 @@ ] }, { - "name": "dev.kord.common.entity.ExplicitContentFilter", + "name": "dev.kord.common.entity.InteractionType", "fields": [ { "name": "Companion" @@ -2570,7 +2569,7 @@ ] }, { - "name": "dev.kord.common.entity.ExplicitContentFilter$Companion", + "name": "dev.kord.common.entity.InteractionType$Companion", "methods": [ { "name": "serializer", @@ -2580,7 +2579,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordConnectionVisibility", + "name": "dev.kord.common.entity.InviteTargetType", "fields": [ { "name": "Companion" @@ -2588,7 +2587,7 @@ ] }, { - "name": "dev.kord.common.entity.DiscordConnectionVisibility$Companion", + "name": "dev.kord.common.entity.InviteTargetType$Companion", "methods": [ { "name": "serializer", @@ -2598,7 +2597,7 @@ ] }, { - "name": "dev.kord.common.entity.AutoModerationActionType", + "name": "dev.kord.common.entity.MFALevel", "fields": [ { "name": "Companion" @@ -2606,7 +2605,7 @@ ] }, { - "name": "dev.kord.common.entity.AutoModerationActionType$Companion", + "name": "dev.kord.common.entity.MFALevel$Companion", "methods": [ { "name": "serializer", @@ -2616,7 +2615,7 @@ ] }, { - "name": "dev.kord.common.entity.UserPremium", + "name": "dev.kord.common.entity.MessageActivity", "fields": [ { "name": "Companion" @@ -2624,7 +2623,7 @@ ] }, { - "name": "dev.kord.common.entity.UserPremium$Companion", + "name": "dev.kord.common.entity.MessageActivity$Companion", "methods": [ { "name": "serializer", @@ -2634,7 +2633,7 @@ ] }, { - "name": "dev.kord.common.entity.TextInputStyle", + "name": "dev.kord.common.entity.MessageActivityType", "fields": [ { "name": "Companion" @@ -2642,7 +2641,7 @@ ] }, { - "name": "dev.kord.common.entity.TextInputStyle$Companion", + "name": "dev.kord.common.entity.MessageActivityType$Companion", "methods": [ { "name": "serializer", @@ -2652,7 +2651,7 @@ ] }, { - "name": "dev.kord.common.entity.WebhookType", + "name": "dev.kord.common.entity.MessageApplication", "fields": [ { "name": "Companion" @@ -2660,7 +2659,7 @@ ] }, { - "name": "dev.kord.common.entity.WebhookType$Companion", + "name": "dev.kord.common.entity.MessageApplication$Companion", "methods": [ { "name": "serializer", @@ -2670,7 +2669,7 @@ ] }, { - "name": "dev.kord.common.entity.AllowedMentionType", + "name": "dev.kord.common.entity.MessageFlags", "fields": [ { "name": "Companion" @@ -2678,7 +2677,7 @@ ] }, { - "name": "dev.kord.common.entity.AllowedMentionType$Companion", + "name": "dev.kord.common.entity.MessageFlags$Companion", "methods": [ { "name": "serializer", @@ -2688,7 +2687,7 @@ ] }, { - "name": "dev.kord.common.entity.DefaultMessageNotificationLevel", + "name": "dev.kord.common.entity.MessageReactionAddData", "fields": [ { "name": "Companion" @@ -2696,7 +2695,7 @@ ] }, { - "name": "dev.kord.common.entity.DefaultMessageNotificationLevel$Companion", + "name": "dev.kord.common.entity.MessageReactionAddData$Companion", "methods": [ { "name": "serializer", @@ -2706,7 +2705,7 @@ ] }, { - "name": "dev.kord.common.entity.StageInstancePrivacyLevel", + "name": "dev.kord.common.entity.MessageReactionRemoveData", "fields": [ { "name": "Companion" @@ -2714,7 +2713,7 @@ ] }, { - "name": "dev.kord.common.entity.StageInstancePrivacyLevel$Companion", + "name": "dev.kord.common.entity.MessageReactionRemoveData$Companion", "methods": [ { "name": "serializer", @@ -2724,7 +2723,7 @@ ] }, { - "name": "dev.kord.common.entity.GuildScheduledEventStatus", + "name": "dev.kord.common.entity.MessageStickerType", "fields": [ { "name": "Companion" @@ -2732,7 +2731,7 @@ ] }, { - "name": "dev.kord.common.entity.GuildScheduledEventStatus$Companion", + "name": "dev.kord.common.entity.MessageStickerType$Companion", "methods": [ { "name": "serializer", @@ -2742,7 +2741,7 @@ ] }, { - "name": "dev.kord.common.entity.MessageActivityType", + "name": "dev.kord.common.entity.MessageType", "fields": [ { "name": "Companion" @@ -2750,7 +2749,7 @@ ] }, { - "name": "dev.kord.common.entity.MessageActivityType$Companion", + "name": "dev.kord.common.entity.MessageType$Companion", "methods": [ { "name": "serializer", @@ -2760,7 +2759,7 @@ ] }, { - "name": "dev.kord.common.entity.PremiumTier", + "name": "dev.kord.common.entity.NsfwLevel", "fields": [ { "name": "Companion" @@ -2768,7 +2767,7 @@ ] }, { - "name": "dev.kord.common.entity.PremiumTier$Companion", + "name": "dev.kord.common.entity.NsfwLevel$Companion", "methods": [ { "name": "serializer", @@ -2778,7 +2777,7 @@ ] }, { - "name": "dev.kord.common.entity.GuildFeature", + "name": "dev.kord.common.entity.Option", "fields": [ { "name": "Companion" @@ -2786,7 +2785,7 @@ ] }, { - "name": "dev.kord.common.entity.GuildFeature$Companion", + "name": "dev.kord.common.entity.Option$Companion", "methods": [ { "name": "serializer", @@ -2796,7 +2795,7 @@ ] }, { - "name": "dev.kord.common.entity.ApplicationCommandType", + "name": "dev.kord.common.entity.Overwrite", "fields": [ { "name": "Companion" @@ -2804,7 +2803,7 @@ ] }, { - "name": "dev.kord.common.entity.ApplicationCommandType$Companion", + "name": "dev.kord.common.entity.Overwrite$Companion", "methods": [ { "name": "serializer", @@ -2814,7 +2813,7 @@ ] }, { - "name": "dev.kord.common.entity.PresenceStatus", + "name": "dev.kord.common.entity.OverwriteType", "fields": [ { "name": "Companion" @@ -2822,7 +2821,7 @@ ] }, { - "name": "dev.kord.common.entity.PresenceStatus$Companion", + "name": "dev.kord.common.entity.OverwriteType$Companion", "methods": [ { "name": "serializer", @@ -2832,7 +2831,7 @@ ] }, { - "name": "dev.kord.common.entity.InteractionType", + "name": "dev.kord.common.entity.Permissions", "fields": [ { "name": "Companion" @@ -2840,7 +2839,7 @@ ] }, { - "name": "dev.kord.common.entity.InteractionType$Companion", + "name": "dev.kord.common.entity.Permissions$Companion", "methods": [ { "name": "serializer", @@ -2850,7 +2849,7 @@ ] }, { - "name": "dev.kord.common.entity.ComponentType", + "name": "dev.kord.common.entity.PremiumTier", "fields": [ { "name": "Companion" @@ -2858,7 +2857,7 @@ ] }, { - "name": "dev.kord.common.entity.ComponentType$Companion", + "name": "dev.kord.common.entity.PremiumTier$Companion", "methods": [ { "name": "serializer", @@ -2868,7 +2867,7 @@ ] }, { - "name": "dev.kord.common.entity.ButtonStyle", + "name": "dev.kord.common.entity.PresenceStatus", "fields": [ { "name": "Companion" @@ -2876,7 +2875,7 @@ ] }, { - "name": "dev.kord.common.entity.ButtonStyle$Companion", + "name": "dev.kord.common.entity.PresenceStatus$Companion", "methods": [ { "name": "serializer", @@ -2886,7 +2885,7 @@ ] }, { - "name": "dev.kord.common.entity.InviteTargetType", + "name": "dev.kord.common.entity.Reaction", "fields": [ { "name": "Companion" @@ -2894,7 +2893,7 @@ ] }, { - "name": "dev.kord.common.entity.InviteTargetType$Companion", + "name": "dev.kord.common.entity.Reaction$Companion", "methods": [ { "name": "serializer", @@ -2904,7 +2903,7 @@ ] }, { - "name": "dev.kord.common.entity.InteractionResponseType", + "name": "dev.kord.common.entity.ResolvedObjects", "fields": [ { "name": "Companion" @@ -2912,7 +2911,7 @@ ] }, { - "name": "dev.kord.common.entity.InteractionResponseType$Companion", + "name": "dev.kord.common.entity.ResolvedObjects$Companion", "methods": [ { "name": "serializer", @@ -2922,7 +2921,7 @@ ] }, { - "name": "dev.kord.common.entity.IntegrationExpireBehavior", + "name": "dev.kord.common.entity.RoleSubscription", "fields": [ { "name": "Companion" @@ -2930,7 +2929,7 @@ ] }, { - "name": "dev.kord.common.entity.IntegrationExpireBehavior$Companion", + "name": "dev.kord.common.entity.RoleSubscription$Companion", "methods": [ { "name": "serializer", @@ -2940,7 +2939,7 @@ ] }, { - "name": "dev.kord.common.entity.AutoModerationRuleTriggerType", + "name": "dev.kord.common.entity.ScheduledEntityType", "fields": [ { "name": "Companion" @@ -2948,7 +2947,7 @@ ] }, { - "name": "dev.kord.common.entity.AutoModerationRuleTriggerType$Companion", + "name": "dev.kord.common.entity.ScheduledEntityType$Companion", "methods": [ { "name": "serializer", @@ -2958,7 +2957,7 @@ ] }, { - "name": "dev.kord.common.entity.MessageStickerType", + "name": "dev.kord.common.entity.Snowflake", "fields": [ { "name": "Companion" @@ -2966,7 +2965,7 @@ ] }, { - "name": "dev.kord.common.entity.MessageStickerType$Companion", + "name": "dev.kord.common.entity.Snowflake$Companion", "methods": [ { "name": "serializer", @@ -2976,7 +2975,7 @@ ] }, { - "name": "dev.kord.common.entity.VerificationLevel", + "name": "dev.kord.common.entity.StageInstancePrivacyLevel", "fields": [ { "name": "Companion" @@ -2984,7 +2983,7 @@ ] }, { - "name": "dev.kord.common.entity.VerificationLevel$Companion", + "name": "dev.kord.common.entity.StageInstancePrivacyLevel$Companion", "methods": [ { "name": "serializer", @@ -2994,7 +2993,7 @@ ] }, { - "name": "dev.kord.common.entity.OverwriteType", + "name": "dev.kord.common.entity.SubCommand", "fields": [ { "name": "Companion" @@ -3002,7 +3001,7 @@ ] }, { - "name": "dev.kord.common.entity.OverwriteType$Companion", + "name": "dev.kord.common.entity.SubCommand$Companion", "methods": [ { "name": "serializer", @@ -3012,7 +3011,7 @@ ] }, { - "name": "dev.kord.common.entity.MessageType", + "name": "dev.kord.common.entity.SystemChannelFlags", "fields": [ { "name": "Companion" @@ -3020,7 +3019,7 @@ ] }, { - "name": "dev.kord.common.entity.MessageType$Companion", + "name": "dev.kord.common.entity.SystemChannelFlags$Companion", "methods": [ { "name": "serializer", @@ -3030,7 +3029,7 @@ ] }, { - "name": "dev.kord.common.entity.EmbedType", + "name": "dev.kord.common.entity.TeamMembershipState", "fields": [ { "name": "Companion" @@ -3038,7 +3037,7 @@ ] }, { - "name": "dev.kord.common.entity.EmbedType$Companion", + "name": "dev.kord.common.entity.TeamMembershipState$Companion", "methods": [ { "name": "serializer", @@ -3048,7 +3047,7 @@ ] }, { - "name": "dev.kord.common.entity.MFALevel", + "name": "dev.kord.common.entity.TextInputStyle", "fields": [ { "name": "Companion" @@ -3056,7 +3055,7 @@ ] }, { - "name": "dev.kord.common.entity.MFALevel$Companion", + "name": "dev.kord.common.entity.TextInputStyle$Companion", "methods": [ { "name": "serializer", @@ -3066,15 +3065,15 @@ ] }, { - "name": "dev.kord.common.entity.ChannelType", + "name": "dev.kord.common.entity.UserFlags", "fields": [ { - "name": "Companion" + "name": "UserFlagsSerializer" } ] }, { - "name": "dev.kord.common.entity.ChannelType$Companion", + "name": "dev.kord.common.entity.UserFlags$UserFlagsSerializer", "methods": [ { "name": "serializer", @@ -3084,7 +3083,7 @@ ] }, { - "name": "dev.kord.common.entity.AutoModerationRuleEventType", + "name": "dev.kord.common.entity.UserPremium", "fields": [ { "name": "Companion" @@ -3092,7 +3091,7 @@ ] }, { - "name": "dev.kord.common.entity.AutoModerationRuleEventType$Companion", + "name": "dev.kord.common.entity.UserPremium$Companion", "methods": [ { "name": "serializer", @@ -3102,7 +3101,7 @@ ] }, { - "name": "dev.kord.common.entity.AutoModerationRuleKeywordPresetType", + "name": "dev.kord.common.entity.VerificationLevel", "fields": [ { "name": "Companion" @@ -3110,7 +3109,7 @@ ] }, { - "name": "dev.kord.common.entity.AutoModerationRuleKeywordPresetType$Companion", + "name": "dev.kord.common.entity.VerificationLevel$Companion", "methods": [ { "name": "serializer", @@ -3120,7 +3119,7 @@ ] }, { - "name": "dev.kord.common.entity.TeamMembershipState", + "name": "dev.kord.common.entity.VideoQualityMode", "fields": [ { "name": "Companion" @@ -3128,7 +3127,7 @@ ] }, { - "name": "dev.kord.common.entity.TeamMembershipState$Companion", + "name": "dev.kord.common.entity.VideoQualityMode$Companion", "methods": [ { "name": "serializer", @@ -3138,7 +3137,7 @@ ] }, { - "name": "dev.kord.common.entity.ApplicationCommandOptionType", + "name": "dev.kord.common.entity.WebhookType", "fields": [ { "name": "Companion" @@ -3146,7 +3145,7 @@ ] }, { - "name": "dev.kord.common.entity.ApplicationCommandOptionType$Companion", + "name": "dev.kord.common.entity.WebhookType$Companion", "methods": [ { "name": "serializer", @@ -3156,7 +3155,7 @@ ] }, { - "name": "dev.kord.common.entity.VideoQualityMode", + "name": "dev.kord.common.entity.optional.Optional", "fields": [ { "name": "Companion" @@ -3164,17 +3163,18 @@ ] }, { - "name": "dev.kord.common.entity.VideoQualityMode$Companion", + "name": "dev.kord.common.entity.optional.Optional$Companion", "methods": [ { "name": "serializer", "parameterTypes": [ + "kotlinx.serialization.KSerializer" ] } ] }, { - "name": "dev.kord.common.entity.ApplicationCommandPermissionType", + "name": "dev.kord.common.entity.optional.OptionalBoolean", "fields": [ { "name": "Companion" @@ -3182,7 +3182,7 @@ ] }, { - "name": "dev.kord.common.entity.ApplicationCommandPermissionType$Companion", + "name": "dev.kord.common.entity.optional.OptionalBoolean$Companion", "methods": [ { "name": "serializer", @@ -3192,7 +3192,7 @@ ] }, { - "name": "dev.kord.common.entity.AuditLogEvent", + "name": "dev.kord.common.entity.optional.OptionalInt", "fields": [ { "name": "Companion" @@ -3200,7 +3200,7 @@ ] }, { - "name": "dev.kord.common.entity.AuditLogEvent$Companion", + "name": "dev.kord.common.entity.optional.OptionalInt$Companion", "methods": [ { "name": "serializer", @@ -3210,7 +3210,7 @@ ] }, { - "name": "dev.kord.common.entity.NsfwLevel", + "name": "dev.kord.common.entity.optional.OptionalLong", "fields": [ { "name": "Companion" @@ -3218,7 +3218,7 @@ ] }, { - "name": "dev.kord.common.entity.NsfwLevel$Companion", + "name": "dev.kord.common.entity.optional.OptionalLong$Companion", "methods": [ { "name": "serializer", @@ -3228,7 +3228,7 @@ ] }, { - "name": "dev.kord.common.entity.GuildScheduledEventPrivacyLevel", + "name": "dev.kord.common.entity.optional.OptionalSnowflake", "fields": [ { "name": "Companion" @@ -3236,7 +3236,7 @@ ] }, { - "name": "dev.kord.common.entity.GuildScheduledEventPrivacyLevel$Companion", + "name": "dev.kord.common.entity.optional.OptionalSnowflake$Companion", "methods": [ { "name": "serializer", diff --git a/core/build/generated/ksp/main/resources/META-INF/native-image/dev.kord/kord-core/reflect-config.json b/core/build/generated/ksp/main/resources/META-INF/native-image/dev.kord/kord-core/reflect-config.json index 83b705091d17..3430844b78fc 100644 --- a/core/build/generated/ksp/main/resources/META-INF/native-image/dev.kord/kord-core/reflect-config.json +++ b/core/build/generated/ksp/main/resources/META-INF/native-image/dev.kord/kord-core/reflect-config.json @@ -36,7 +36,7 @@ ] }, { - "name": "dev.kord.core.cache.data.ApplicationCommandOptionData", + "name": "dev.kord.core.cache.data.ApplicationCommandGroupData", "fields": [ { "name": "Companion" @@ -44,7 +44,7 @@ ] }, { - "name": "dev.kord.core.cache.data.ApplicationCommandOptionData$Companion", + "name": "dev.kord.core.cache.data.ApplicationCommandGroupData$Companion", "methods": [ { "name": "serializer", @@ -54,7 +54,7 @@ ] }, { - "name": "dev.kord.core.cache.data.ApplicationCommandGroupData", + "name": "dev.kord.core.cache.data.ApplicationCommandOptionChoiceData", "fields": [ { "name": "Companion" @@ -62,7 +62,7 @@ ] }, { - "name": "dev.kord.core.cache.data.ApplicationCommandGroupData$Companion", + "name": "dev.kord.core.cache.data.ApplicationCommandOptionChoiceData$Companion", "methods": [ { "name": "serializer", @@ -72,7 +72,7 @@ ] }, { - "name": "dev.kord.core.cache.data.ApplicationCommandSubcommandData", + "name": "dev.kord.core.cache.data.ApplicationCommandOptionData", "fields": [ { "name": "Companion" @@ -80,7 +80,7 @@ ] }, { - "name": "dev.kord.core.cache.data.ApplicationCommandSubcommandData$Companion", + "name": "dev.kord.core.cache.data.ApplicationCommandOptionData$Companion", "methods": [ { "name": "serializer", @@ -108,7 +108,7 @@ ] }, { - "name": "dev.kord.core.cache.data.ApplicationCommandOptionChoiceData", + "name": "dev.kord.core.cache.data.ApplicationCommandSubcommandData", "fields": [ { "name": "Companion" @@ -116,7 +116,7 @@ ] }, { - "name": "dev.kord.core.cache.data.ApplicationCommandOptionChoiceData$Companion", + "name": "dev.kord.core.cache.data.ApplicationCommandSubcommandData$Companion", "methods": [ { "name": "serializer", @@ -144,7 +144,7 @@ ] }, { - "name": "dev.kord.core.cache.data.PartialApplicationData", + "name": "dev.kord.core.cache.data.ApplicationInteractionData", "fields": [ { "name": "Companion" @@ -152,7 +152,7 @@ ] }, { - "name": "dev.kord.core.cache.data.PartialApplicationData$Companion", + "name": "dev.kord.core.cache.data.ApplicationInteractionData$Companion", "methods": [ { "name": "serializer", @@ -180,7 +180,7 @@ ] }, { - "name": "dev.kord.core.cache.data.AutoModerationRuleData", + "name": "dev.kord.core.cache.data.AutoModerationActionData", "fields": [ { "name": "Companion" @@ -188,7 +188,7 @@ ] }, { - "name": "dev.kord.core.cache.data.AutoModerationRuleData$Companion", + "name": "dev.kord.core.cache.data.AutoModerationActionData$Companion", "methods": [ { "name": "serializer", @@ -198,7 +198,7 @@ ] }, { - "name": "dev.kord.core.cache.data.AutoModerationRuleTriggerMetadataData", + "name": "dev.kord.core.cache.data.AutoModerationActionMetadataData", "fields": [ { "name": "Companion" @@ -206,7 +206,7 @@ ] }, { - "name": "dev.kord.core.cache.data.AutoModerationRuleTriggerMetadataData$Companion", + "name": "dev.kord.core.cache.data.AutoModerationActionMetadataData$Companion", "methods": [ { "name": "serializer", @@ -216,7 +216,7 @@ ] }, { - "name": "dev.kord.core.cache.data.AutoModerationActionData", + "name": "dev.kord.core.cache.data.AutoModerationRuleData", "fields": [ { "name": "Companion" @@ -224,7 +224,7 @@ ] }, { - "name": "dev.kord.core.cache.data.AutoModerationActionData$Companion", + "name": "dev.kord.core.cache.data.AutoModerationRuleData$Companion", "methods": [ { "name": "serializer", @@ -234,7 +234,7 @@ ] }, { - "name": "dev.kord.core.cache.data.AutoModerationActionMetadataData", + "name": "dev.kord.core.cache.data.AutoModerationRuleTriggerMetadataData", "fields": [ { "name": "Companion" @@ -242,7 +242,7 @@ ] }, { - "name": "dev.kord.core.cache.data.AutoModerationActionMetadataData$Companion", + "name": "dev.kord.core.cache.data.AutoModerationRuleTriggerMetadataData$Companion", "methods": [ { "name": "serializer", @@ -288,7 +288,7 @@ ] }, { - "name": "dev.kord.core.cache.data.ThreadMetadataData", + "name": "dev.kord.core.cache.data.ChatComponentData", "fields": [ { "name": "Companion" @@ -296,7 +296,7 @@ ] }, { - "name": "dev.kord.core.cache.data.ThreadMetadataData$Companion", + "name": "dev.kord.core.cache.data.ChatComponentData$Companion", "methods": [ { "name": "serializer", @@ -342,7 +342,7 @@ ] }, { - "name": "dev.kord.core.cache.data.ChatComponentData", + "name": "dev.kord.core.cache.data.EmbedAuthorData", "fields": [ { "name": "Companion" @@ -350,7 +350,7 @@ ] }, { - "name": "dev.kord.core.cache.data.ChatComponentData$Companion", + "name": "dev.kord.core.cache.data.EmbedAuthorData$Companion", "methods": [ { "name": "serializer", @@ -360,7 +360,7 @@ ] }, { - "name": "dev.kord.core.cache.data.TextInputComponentData", + "name": "dev.kord.core.cache.data.EmbedData", "fields": [ { "name": "Companion" @@ -368,7 +368,7 @@ ] }, { - "name": "dev.kord.core.cache.data.TextInputComponentData$Companion", + "name": "dev.kord.core.cache.data.EmbedData$Companion", "methods": [ { "name": "serializer", @@ -378,7 +378,7 @@ ] }, { - "name": "dev.kord.core.cache.data.EmbedData", + "name": "dev.kord.core.cache.data.EmbedFieldData", "fields": [ { "name": "Companion" @@ -386,7 +386,7 @@ ] }, { - "name": "dev.kord.core.cache.data.EmbedData$Companion", + "name": "dev.kord.core.cache.data.EmbedFieldData$Companion", "methods": [ { "name": "serializer", @@ -431,42 +431,6 @@ } ] }, - { - "name": "dev.kord.core.cache.data.EmbedThumbnailData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.EmbedThumbnailData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, - { - "name": "dev.kord.core.cache.data.EmbedVideoData", - "fields": [ - { - "name": "Companion" - } - ] - }, - { - "name": "dev.kord.core.cache.data.EmbedVideoData$Companion", - "methods": [ - { - "name": "serializer", - "parameterTypes": [ - ] - } - ] - }, { "name": "dev.kord.core.cache.data.EmbedProviderData", "fields": [ @@ -486,7 +450,7 @@ ] }, { - "name": "dev.kord.core.cache.data.EmbedAuthorData", + "name": "dev.kord.core.cache.data.EmbedThumbnailData", "fields": [ { "name": "Companion" @@ -494,7 +458,7 @@ ] }, { - "name": "dev.kord.core.cache.data.EmbedAuthorData$Companion", + "name": "dev.kord.core.cache.data.EmbedThumbnailData$Companion", "methods": [ { "name": "serializer", @@ -504,7 +468,7 @@ ] }, { - "name": "dev.kord.core.cache.data.EmbedFieldData", + "name": "dev.kord.core.cache.data.EmbedVideoData", "fields": [ { "name": "Companion" @@ -512,7 +476,7 @@ ] }, { - "name": "dev.kord.core.cache.data.EmbedFieldData$Companion", + "name": "dev.kord.core.cache.data.EmbedVideoData$Companion", "methods": [ { "name": "serializer", @@ -539,6 +503,9 @@ } ] }, + { + "name": "dev.kord.core.cache.data.GuildApplicationCommandPermissionsData" + }, { "name": "dev.kord.core.cache.data.GuildData", "fields": [ @@ -666,7 +633,7 @@ ] }, { - "name": "dev.kord.core.cache.data.ResolvedObjectsData", + "name": "dev.kord.core.cache.data.InviteCreateData", "fields": [ { "name": "Companion" @@ -674,7 +641,7 @@ ] }, { - "name": "dev.kord.core.cache.data.ResolvedObjectsData$Companion", + "name": "dev.kord.core.cache.data.InviteCreateData$Companion", "methods": [ { "name": "serializer", @@ -684,7 +651,7 @@ ] }, { - "name": "dev.kord.core.cache.data.ApplicationInteractionData", + "name": "dev.kord.core.cache.data.InviteData", "fields": [ { "name": "Companion" @@ -692,7 +659,7 @@ ] }, { - "name": "dev.kord.core.cache.data.ApplicationInteractionData$Companion", + "name": "dev.kord.core.cache.data.InviteData$Companion", "methods": [ { "name": "serializer", @@ -702,7 +669,7 @@ ] }, { - "name": "dev.kord.core.cache.data.OptionData", + "name": "dev.kord.core.cache.data.InviteDeleteData", "fields": [ { "name": "Companion" @@ -710,7 +677,7 @@ ] }, { - "name": "dev.kord.core.cache.data.OptionData$Companion", + "name": "dev.kord.core.cache.data.InviteDeleteData$Companion", "methods": [ { "name": "serializer", @@ -720,7 +687,7 @@ ] }, { - "name": "dev.kord.core.cache.data.InviteCreateData", + "name": "dev.kord.core.cache.data.InviteWithMetadataData", "fields": [ { "name": "Companion" @@ -728,7 +695,7 @@ ] }, { - "name": "dev.kord.core.cache.data.InviteCreateData$Companion", + "name": "dev.kord.core.cache.data.InviteWithMetadataData$Companion", "methods": [ { "name": "serializer", @@ -738,7 +705,7 @@ ] }, { - "name": "dev.kord.core.cache.data.InviteData", + "name": "dev.kord.core.cache.data.MemberData", "fields": [ { "name": "Companion" @@ -746,7 +713,7 @@ ] }, { - "name": "dev.kord.core.cache.data.InviteData$Companion", + "name": "dev.kord.core.cache.data.MemberData$Companion", "methods": [ { "name": "serializer", @@ -756,7 +723,7 @@ ] }, { - "name": "dev.kord.core.cache.data.InviteWithMetadataData", + "name": "dev.kord.core.cache.data.MembersChunkData", "fields": [ { "name": "Companion" @@ -764,7 +731,7 @@ ] }, { - "name": "dev.kord.core.cache.data.InviteWithMetadataData$Companion", + "name": "dev.kord.core.cache.data.MembersChunkData$Companion", "methods": [ { "name": "serializer", @@ -774,7 +741,7 @@ ] }, { - "name": "dev.kord.core.cache.data.InviteDeleteData", + "name": "dev.kord.core.cache.data.MessageData", "fields": [ { "name": "Companion" @@ -782,7 +749,7 @@ ] }, { - "name": "dev.kord.core.cache.data.InviteDeleteData$Companion", + "name": "dev.kord.core.cache.data.MessageData$Companion", "methods": [ { "name": "serializer", @@ -792,7 +759,7 @@ ] }, { - "name": "dev.kord.core.cache.data.MemberData", + "name": "dev.kord.core.cache.data.MessageInteractionData", "fields": [ { "name": "Companion" @@ -800,7 +767,7 @@ ] }, { - "name": "dev.kord.core.cache.data.MemberData$Companion", + "name": "dev.kord.core.cache.data.MessageInteractionData$Companion", "methods": [ { "name": "serializer", @@ -810,7 +777,7 @@ ] }, { - "name": "dev.kord.core.cache.data.MembersChunkData", + "name": "dev.kord.core.cache.data.MessageReferenceData", "fields": [ { "name": "Companion" @@ -818,7 +785,7 @@ ] }, { - "name": "dev.kord.core.cache.data.MembersChunkData$Companion", + "name": "dev.kord.core.cache.data.MessageReferenceData$Companion", "methods": [ { "name": "serializer", @@ -828,7 +795,7 @@ ] }, { - "name": "dev.kord.core.cache.data.MessageData", + "name": "dev.kord.core.cache.data.OptionData", "fields": [ { "name": "Companion" @@ -836,7 +803,7 @@ ] }, { - "name": "dev.kord.core.cache.data.MessageData$Companion", + "name": "dev.kord.core.cache.data.OptionData$Companion", "methods": [ { "name": "serializer", @@ -846,7 +813,7 @@ ] }, { - "name": "dev.kord.core.cache.data.MessageInteractionData", + "name": "dev.kord.core.cache.data.PartialApplicationData", "fields": [ { "name": "Companion" @@ -854,7 +821,7 @@ ] }, { - "name": "dev.kord.core.cache.data.MessageInteractionData$Companion", + "name": "dev.kord.core.cache.data.PartialApplicationData$Companion", "methods": [ { "name": "serializer", @@ -864,7 +831,7 @@ ] }, { - "name": "dev.kord.core.cache.data.MessageReferenceData", + "name": "dev.kord.core.cache.data.PartialGuildData", "fields": [ { "name": "Companion" @@ -872,7 +839,7 @@ ] }, { - "name": "dev.kord.core.cache.data.MessageReferenceData$Companion", + "name": "dev.kord.core.cache.data.PartialGuildData$Companion", "methods": [ { "name": "serializer", @@ -882,7 +849,7 @@ ] }, { - "name": "dev.kord.core.cache.data.PartialGuildData", + "name": "dev.kord.core.cache.data.PermissionOverwriteData", "fields": [ { "name": "Companion" @@ -890,7 +857,7 @@ ] }, { - "name": "dev.kord.core.cache.data.PartialGuildData$Companion", + "name": "dev.kord.core.cache.data.PermissionOverwriteData$Companion", "methods": [ { "name": "serializer", @@ -900,7 +867,7 @@ ] }, { - "name": "dev.kord.core.cache.data.PermissionOverwriteData", + "name": "dev.kord.core.cache.data.PresenceData", "fields": [ { "name": "Companion" @@ -908,7 +875,7 @@ ] }, { - "name": "dev.kord.core.cache.data.PermissionOverwriteData$Companion", + "name": "dev.kord.core.cache.data.PresenceData$Companion", "methods": [ { "name": "serializer", @@ -918,7 +885,7 @@ ] }, { - "name": "dev.kord.core.cache.data.PresenceData", + "name": "dev.kord.core.cache.data.ReactionData", "fields": [ { "name": "Companion" @@ -926,7 +893,7 @@ ] }, { - "name": "dev.kord.core.cache.data.PresenceData$Companion", + "name": "dev.kord.core.cache.data.ReactionData$Companion", "methods": [ { "name": "serializer", @@ -936,7 +903,7 @@ ] }, { - "name": "dev.kord.core.cache.data.ReactionData", + "name": "dev.kord.core.cache.data.ReactionRemoveEmojiData", "fields": [ { "name": "Companion" @@ -944,7 +911,7 @@ ] }, { - "name": "dev.kord.core.cache.data.ReactionData$Companion", + "name": "dev.kord.core.cache.data.ReactionRemoveEmojiData$Companion", "methods": [ { "name": "serializer", @@ -954,7 +921,7 @@ ] }, { - "name": "dev.kord.core.cache.data.RemovedReactionData", + "name": "dev.kord.core.cache.data.RegionData", "fields": [ { "name": "Companion" @@ -962,7 +929,7 @@ ] }, { - "name": "dev.kord.core.cache.data.RemovedReactionData$Companion", + "name": "dev.kord.core.cache.data.RegionData$Companion", "methods": [ { "name": "serializer", @@ -972,7 +939,7 @@ ] }, { - "name": "dev.kord.core.cache.data.ReactionRemoveEmojiData", + "name": "dev.kord.core.cache.data.RemovedReactionData", "fields": [ { "name": "Companion" @@ -980,7 +947,7 @@ ] }, { - "name": "dev.kord.core.cache.data.ReactionRemoveEmojiData$Companion", + "name": "dev.kord.core.cache.data.RemovedReactionData$Companion", "methods": [ { "name": "serializer", @@ -990,7 +957,7 @@ ] }, { - "name": "dev.kord.core.cache.data.RegionData", + "name": "dev.kord.core.cache.data.ResolvedObjectsData", "fields": [ { "name": "Companion" @@ -998,7 +965,7 @@ ] }, { - "name": "dev.kord.core.cache.data.RegionData$Companion", + "name": "dev.kord.core.cache.data.ResolvedObjectsData$Companion", "methods": [ { "name": "serializer", @@ -1115,6 +1082,9 @@ } ] }, + { + "name": "dev.kord.core.cache.data.StickerPackData" + }, { "name": "dev.kord.core.cache.data.TeamData", "fields": [ @@ -1169,6 +1139,24 @@ } ] }, + { + "name": "dev.kord.core.cache.data.TextInputComponentData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.TextInputComponentData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, { "name": "dev.kord.core.cache.data.ThreadMemberData", "fields": [ @@ -1187,6 +1175,24 @@ } ] }, + { + "name": "dev.kord.core.cache.data.ThreadMetadataData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.ThreadMetadataData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, { "name": "dev.kord.core.cache.data.UserData", "fields": [ @@ -1242,7 +1248,7 @@ ] }, { - "name": "dev.kord.core.cache.data.WelcomeScreenData", + "name": "dev.kord.core.cache.data.WelcomeScreenChannelData", "fields": [ { "name": "Companion" @@ -1250,7 +1256,7 @@ ] }, { - "name": "dev.kord.core.cache.data.WelcomeScreenData$Companion", + "name": "dev.kord.core.cache.data.WelcomeScreenChannelData$Companion", "methods": [ { "name": "serializer", @@ -1260,7 +1266,7 @@ ] }, { - "name": "dev.kord.core.cache.data.WelcomeScreenChannelData", + "name": "dev.kord.core.cache.data.WelcomeScreenData", "fields": [ { "name": "Companion" @@ -1268,7 +1274,7 @@ ] }, { - "name": "dev.kord.core.cache.data.WelcomeScreenChannelData$Companion", + "name": "dev.kord.core.cache.data.WelcomeScreenData$Companion", "methods": [ { "name": "serializer", @@ -1330,11 +1336,5 @@ ] } ] - }, - { - "name": "dev.kord.core.cache.data.GuildApplicationCommandPermissionsData" - }, - { - "name": "dev.kord.core.cache.data.StickerPackData" } ] \ No newline at end of file diff --git a/gateway/build/generated/ksp/main/resources/META-INF/native-image/dev.kord/kord-gateway/reflect-config.json b/gateway/build/generated/ksp/main/resources/META-INF/native-image/dev.kord/kord-gateway/reflect-config.json index fc9407d2e5db..e0e8b3998425 100644 --- a/gateway/build/generated/ksp/main/resources/META-INF/native-image/dev.kord/kord-gateway/reflect-config.json +++ b/gateway/build/generated/ksp/main/resources/META-INF/native-image/dev.kord/kord-gateway/reflect-config.json @@ -1,6 +1,6 @@ [ { - "name": "dev.kord.gateway.Identify", + "name": "dev.kord.gateway.DiscordAutoModerationActionExecution", "fields": [ { "name": "Companion" @@ -8,7 +8,7 @@ ] }, { - "name": "dev.kord.gateway.Identify$Companion", + "name": "dev.kord.gateway.DiscordAutoModerationActionExecution$Companion", "methods": [ { "name": "serializer", @@ -18,7 +18,7 @@ ] }, { - "name": "dev.kord.gateway.IdentifyProperties", + "name": "dev.kord.gateway.DiscordCreatedInvite", "fields": [ { "name": "Companion" @@ -26,7 +26,7 @@ ] }, { - "name": "dev.kord.gateway.IdentifyProperties$Companion", + "name": "dev.kord.gateway.DiscordCreatedInvite$Companion", "methods": [ { "name": "serializer", @@ -36,7 +36,7 @@ ] }, { - "name": "dev.kord.gateway.GuildMembersChunkData", + "name": "dev.kord.gateway.DiscordDeletedInvite", "fields": [ { "name": "Companion" @@ -44,7 +44,7 @@ ] }, { - "name": "dev.kord.gateway.GuildMembersChunkData$Companion", + "name": "dev.kord.gateway.DiscordDeletedInvite$Companion", "methods": [ { "name": "serializer", @@ -72,7 +72,7 @@ ] }, { - "name": "dev.kord.gateway.Resume", + "name": "dev.kord.gateway.DiscordRemovedEmoji", "fields": [ { "name": "Companion" @@ -80,7 +80,7 @@ ] }, { - "name": "dev.kord.gateway.Resume$Companion", + "name": "dev.kord.gateway.DiscordRemovedEmoji$Companion", "methods": [ { "name": "serializer", @@ -90,7 +90,7 @@ ] }, { - "name": "dev.kord.gateway.RequestGuildMembers", + "name": "dev.kord.gateway.DiscordRemovedReactionEmoji", "fields": [ { "name": "Companion" @@ -98,7 +98,7 @@ ] }, { - "name": "dev.kord.gateway.RequestGuildMembers$Companion", + "name": "dev.kord.gateway.DiscordRemovedReactionEmoji$Companion", "methods": [ { "name": "serializer", @@ -108,7 +108,7 @@ ] }, { - "name": "dev.kord.gateway.UpdateVoiceStatus", + "name": "dev.kord.gateway.DiscordThreadListSync", "fields": [ { "name": "Companion" @@ -116,7 +116,7 @@ ] }, { - "name": "dev.kord.gateway.UpdateVoiceStatus$Companion", + "name": "dev.kord.gateway.DiscordThreadListSync$Companion", "methods": [ { "name": "serializer", @@ -126,7 +126,7 @@ ] }, { - "name": "dev.kord.gateway.UpdateStatus", + "name": "dev.kord.gateway.DiscordThreadMembersUpdate", "fields": [ { "name": "Companion" @@ -134,7 +134,7 @@ ] }, { - "name": "dev.kord.gateway.UpdateStatus$Companion", + "name": "dev.kord.gateway.DiscordThreadMembersUpdate$Companion", "methods": [ { "name": "serializer", @@ -144,7 +144,7 @@ ] }, { - "name": "dev.kord.gateway.Hello", + "name": "dev.kord.gateway.GuildMembersChunkData", "fields": [ { "name": "Companion" @@ -152,7 +152,7 @@ ] }, { - "name": "dev.kord.gateway.Hello$Companion", + "name": "dev.kord.gateway.GuildMembersChunkData$Companion", "methods": [ { "name": "serializer", @@ -162,7 +162,7 @@ ] }, { - "name": "dev.kord.gateway.ReadyData", + "name": "dev.kord.gateway.GuildScheduledEventUserMetadata", "fields": [ { "name": "Companion" @@ -170,7 +170,7 @@ ] }, { - "name": "dev.kord.gateway.ReadyData$Companion", + "name": "dev.kord.gateway.GuildScheduledEventUserMetadata$Companion", "methods": [ { "name": "serializer", @@ -198,7 +198,7 @@ ] }, { - "name": "dev.kord.gateway.Resumed", + "name": "dev.kord.gateway.Hello", "fields": [ { "name": "Companion" @@ -206,7 +206,7 @@ ] }, { - "name": "dev.kord.gateway.Resumed$Companion", + "name": "dev.kord.gateway.Hello$Companion", "methods": [ { "name": "serializer", @@ -216,7 +216,7 @@ ] }, { - "name": "dev.kord.gateway.InvalidSession", + "name": "dev.kord.gateway.Identify", "fields": [ { "name": "Companion" @@ -224,7 +224,7 @@ ] }, { - "name": "dev.kord.gateway.InvalidSession$Companion", + "name": "dev.kord.gateway.Identify$Companion", "methods": [ { "name": "serializer", @@ -234,7 +234,7 @@ ] }, { - "name": "dev.kord.gateway.DiscordAutoModerationActionExecution", + "name": "dev.kord.gateway.IdentifyProperties", "fields": [ { "name": "Companion" @@ -242,7 +242,7 @@ ] }, { - "name": "dev.kord.gateway.DiscordAutoModerationActionExecution$Companion", + "name": "dev.kord.gateway.IdentifyProperties$Companion", "methods": [ { "name": "serializer", @@ -252,7 +252,7 @@ ] }, { - "name": "dev.kord.gateway.DiscordDeletedInvite", + "name": "dev.kord.gateway.Intents", "fields": [ { "name": "Companion" @@ -260,7 +260,7 @@ ] }, { - "name": "dev.kord.gateway.DiscordDeletedInvite$Companion", + "name": "dev.kord.gateway.Intents$Companion", "methods": [ { "name": "serializer", @@ -270,7 +270,7 @@ ] }, { - "name": "dev.kord.gateway.DiscordCreatedInvite", + "name": "dev.kord.gateway.InvalidSession", "fields": [ { "name": "Companion" @@ -278,7 +278,7 @@ ] }, { - "name": "dev.kord.gateway.DiscordCreatedInvite$Companion", + "name": "dev.kord.gateway.InvalidSession$Companion", "methods": [ { "name": "serializer", @@ -288,15 +288,15 @@ ] }, { - "name": "dev.kord.gateway.DiscordRemovedEmoji", + "name": "dev.kord.gateway.OpCode", "fields": [ { - "name": "Companion" + "name": "OpCodeSerializer" } ] }, { - "name": "dev.kord.gateway.DiscordRemovedEmoji$Companion", + "name": "dev.kord.gateway.OpCode$OpCodeSerializer", "methods": [ { "name": "serializer", @@ -306,7 +306,7 @@ ] }, { - "name": "dev.kord.gateway.DiscordRemovedReactionEmoji", + "name": "dev.kord.gateway.ReadyData", "fields": [ { "name": "Companion" @@ -314,7 +314,7 @@ ] }, { - "name": "dev.kord.gateway.DiscordRemovedReactionEmoji$Companion", + "name": "dev.kord.gateway.ReadyData$Companion", "methods": [ { "name": "serializer", @@ -324,7 +324,7 @@ ] }, { - "name": "dev.kord.gateway.GuildScheduledEventUserMetadata", + "name": "dev.kord.gateway.RequestGuildMembers", "fields": [ { "name": "Companion" @@ -332,7 +332,7 @@ ] }, { - "name": "dev.kord.gateway.GuildScheduledEventUserMetadata$Companion", + "name": "dev.kord.gateway.RequestGuildMembers$Companion", "methods": [ { "name": "serializer", @@ -342,7 +342,7 @@ ] }, { - "name": "dev.kord.gateway.DiscordThreadListSync", + "name": "dev.kord.gateway.Resume", "fields": [ { "name": "Companion" @@ -350,7 +350,7 @@ ] }, { - "name": "dev.kord.gateway.DiscordThreadListSync$Companion", + "name": "dev.kord.gateway.Resume$Companion", "methods": [ { "name": "serializer", @@ -360,7 +360,7 @@ ] }, { - "name": "dev.kord.gateway.DiscordThreadMembersUpdate", + "name": "dev.kord.gateway.Resumed", "fields": [ { "name": "Companion" @@ -368,7 +368,7 @@ ] }, { - "name": "dev.kord.gateway.DiscordThreadMembersUpdate$Companion", + "name": "dev.kord.gateway.Resumed$Companion", "methods": [ { "name": "serializer", @@ -378,7 +378,7 @@ ] }, { - "name": "dev.kord.gateway.Intents", + "name": "dev.kord.gateway.UpdateStatus", "fields": [ { "name": "Companion" @@ -386,7 +386,7 @@ ] }, { - "name": "dev.kord.gateway.Intents$Companion", + "name": "dev.kord.gateway.UpdateStatus$Companion", "methods": [ { "name": "serializer", @@ -396,15 +396,15 @@ ] }, { - "name": "dev.kord.gateway.OpCode", + "name": "dev.kord.gateway.UpdateVoiceStatus", "fields": [ { - "name": "OpCodeSerializer" + "name": "Companion" } ] }, { - "name": "dev.kord.gateway.OpCode$OpCodeSerializer", + "name": "dev.kord.gateway.UpdateVoiceStatus$Companion", "methods": [ { "name": "serializer", diff --git a/ksp-processors/src/main/kotlin/graalvm/GraalVMNativeImageProcessor.kt b/ksp-processors/src/main/kotlin/graalvm/GraalVMNativeImageProcessor.kt index 7e64e2b9972d..98ca1b492f68 100644 --- a/ksp-processors/src/main/kotlin/graalvm/GraalVMNativeImageProcessor.kt +++ b/ksp-processors/src/main/kotlin/graalvm/GraalVMNativeImageProcessor.kt @@ -75,13 +75,15 @@ private class GraalVMNativeImageProcessor( flushedEntries = true if (entries.isNotEmpty()) { logger.info("flushing entries for project $project...") + // sort by name to have a deterministic order + val reflectConfigJson = entries.sortedBy { it.name }.encodeToReflectConfigJson() // this output is aggregating, see https://kotlinlang.org/docs/ksp-incremental.html#aggregating-vs-isolating val file = codeGenerator.createNewFileByPath( Dependencies(aggregating = true, *sources.toTypedArray()), path = "META-INF/native-image/dev.kord/kord-${project}/reflect-config", extensionName = "json", ) - file.bufferedWriter().use { it.write(entries.encodeToJson()) } + file.writer().use { it.write(reflectConfigJson) } logger.info("finished flushing entries for project $project...") } } diff --git a/ksp-processors/src/main/kotlin/graalvm/ReflectConfig.kt b/ksp-processors/src/main/kotlin/graalvm/ReflectConfig.kt index 98a0e9cff91d..f91414d7b1c3 100644 --- a/ksp-processors/src/main/kotlin/graalvm/ReflectConfig.kt +++ b/ksp-processors/src/main/kotlin/graalvm/ReflectConfig.kt @@ -15,7 +15,7 @@ private val json = Json { prettyPrintIndent = " " } -fun List.encodeToJson() = json.encodeToString(this) +fun List.encodeToReflectConfigJson() = json.encodeToString(this) /** * An entry of a diff --git a/voice/build/generated/ksp/main/resources/META-INF/native-image/dev.kord/kord-voice/reflect-config.json b/voice/build/generated/ksp/main/resources/META-INF/native-image/dev.kord/kord-voice/reflect-config.json index fa607a00b8e7..363390dc8643 100644 --- a/voice/build/generated/ksp/main/resources/META-INF/native-image/dev.kord/kord-voice/reflect-config.json +++ b/voice/build/generated/ksp/main/resources/META-INF/native-image/dev.kord/kord-voice/reflect-config.json @@ -1,6 +1,6 @@ [ { - "name": "dev.kord.voice.SpeakingFlags", + "name": "dev.kord.voice.EncryptionMode", "fields": [ { "name": "Companion" @@ -8,7 +8,7 @@ ] }, { - "name": "dev.kord.voice.SpeakingFlags$Companion", + "name": "dev.kord.voice.EncryptionMode$Companion", "methods": [ { "name": "serializer", @@ -18,7 +18,7 @@ ] }, { - "name": "dev.kord.voice.gateway.Identify", + "name": "dev.kord.voice.SpeakingFlags", "fields": [ { "name": "Companion" @@ -26,7 +26,7 @@ ] }, { - "name": "dev.kord.voice.gateway.Identify$Companion", + "name": "dev.kord.voice.SpeakingFlags$Companion", "methods": [ { "name": "serializer", @@ -54,7 +54,7 @@ ] }, { - "name": "dev.kord.voice.gateway.SendSpeaking", + "name": "dev.kord.voice.gateway.HeartbeatAck", "fields": [ { "name": "Companion" @@ -62,7 +62,7 @@ ] }, { - "name": "dev.kord.voice.gateway.SendSpeaking$Companion", + "name": "dev.kord.voice.gateway.HeartbeatAck$Companion", "methods": [ { "name": "serializer", @@ -72,7 +72,7 @@ ] }, { - "name": "dev.kord.voice.gateway.SelectProtocol", + "name": "dev.kord.voice.gateway.Hello", "fields": [ { "name": "Companion" @@ -80,7 +80,7 @@ ] }, { - "name": "dev.kord.voice.gateway.SelectProtocol$Companion", + "name": "dev.kord.voice.gateway.Hello$Companion", "methods": [ { "name": "serializer", @@ -90,7 +90,7 @@ ] }, { - "name": "dev.kord.voice.gateway.SelectProtocol$Data", + "name": "dev.kord.voice.gateway.Identify", "fields": [ { "name": "Companion" @@ -98,7 +98,7 @@ ] }, { - "name": "dev.kord.voice.gateway.SelectProtocol$Data$Companion", + "name": "dev.kord.voice.gateway.Identify$Companion", "methods": [ { "name": "serializer", @@ -108,7 +108,7 @@ ] }, { - "name": "dev.kord.voice.gateway.Resume", + "name": "dev.kord.voice.gateway.Ready", "fields": [ { "name": "Companion" @@ -116,7 +116,7 @@ ] }, { - "name": "dev.kord.voice.gateway.Resume$Companion", + "name": "dev.kord.voice.gateway.Ready$Companion", "methods": [ { "name": "serializer", @@ -126,7 +126,7 @@ ] }, { - "name": "dev.kord.voice.gateway.Ready", + "name": "dev.kord.voice.gateway.Resume", "fields": [ { "name": "Companion" @@ -134,7 +134,7 @@ ] }, { - "name": "dev.kord.voice.gateway.Ready$Companion", + "name": "dev.kord.voice.gateway.Resume$Companion", "methods": [ { "name": "serializer", @@ -144,7 +144,7 @@ ] }, { - "name": "dev.kord.voice.gateway.Hello", + "name": "dev.kord.voice.gateway.Resumed", "fields": [ { "name": "Companion" @@ -152,7 +152,7 @@ ] }, { - "name": "dev.kord.voice.gateway.Hello$Companion", + "name": "dev.kord.voice.gateway.Resumed$Companion", "methods": [ { "name": "serializer", @@ -162,7 +162,7 @@ ] }, { - "name": "dev.kord.voice.gateway.HeartbeatAck", + "name": "dev.kord.voice.gateway.SelectProtocol", "fields": [ { "name": "Companion" @@ -170,7 +170,7 @@ ] }, { - "name": "dev.kord.voice.gateway.HeartbeatAck$Companion", + "name": "dev.kord.voice.gateway.SelectProtocol$Companion", "methods": [ { "name": "serializer", @@ -180,7 +180,7 @@ ] }, { - "name": "dev.kord.voice.gateway.SessionDescription", + "name": "dev.kord.voice.gateway.SelectProtocol$Data", "fields": [ { "name": "Companion" @@ -188,7 +188,7 @@ ] }, { - "name": "dev.kord.voice.gateway.SessionDescription$Companion", + "name": "dev.kord.voice.gateway.SelectProtocol$Data$Companion", "methods": [ { "name": "serializer", @@ -198,7 +198,7 @@ ] }, { - "name": "dev.kord.voice.gateway.Speaking", + "name": "dev.kord.voice.gateway.SendSpeaking", "fields": [ { "name": "Companion" @@ -206,7 +206,7 @@ ] }, { - "name": "dev.kord.voice.gateway.Speaking$Companion", + "name": "dev.kord.voice.gateway.SendSpeaking$Companion", "methods": [ { "name": "serializer", @@ -216,7 +216,7 @@ ] }, { - "name": "dev.kord.voice.gateway.Resumed", + "name": "dev.kord.voice.gateway.SessionDescription", "fields": [ { "name": "Companion" @@ -224,7 +224,7 @@ ] }, { - "name": "dev.kord.voice.gateway.Resumed$Companion", + "name": "dev.kord.voice.gateway.SessionDescription$Companion", "methods": [ { "name": "serializer", @@ -234,7 +234,7 @@ ] }, { - "name": "dev.kord.voice.EncryptionMode", + "name": "dev.kord.voice.gateway.Speaking", "fields": [ { "name": "Companion" @@ -242,7 +242,7 @@ ] }, { - "name": "dev.kord.voice.EncryptionMode$Companion", + "name": "dev.kord.voice.gateway.Speaking$Companion", "methods": [ { "name": "serializer", From dec01014638e9fcdcda07676964b5025602bfcd8 Mon Sep 17 00:00:00 2001 From: Lukellmann Date: Tue, 21 Mar 2023 14:07:21 +0100 Subject: [PATCH 052/105] Clean graalvm-native-image-ci.yml --- .github/workflows/graalvm-native-image-ci.yml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/.github/workflows/graalvm-native-image-ci.yml b/.github/workflows/graalvm-native-image-ci.yml index 79c599229088..093ce5dad78f 100644 --- a/.github/workflows/graalvm-native-image-ci.yml +++ b/.github/workflows/graalvm-native-image-ci.yml @@ -5,12 +5,11 @@ on: pull_request: jobs: - build: - name: Build Kord + test-on-graalvm-native-image: + name: Test Kord on GraalVM Native Image runs-on: ${{ matrix.os }} env: KORD_TEST_TOKEN: ${{ secrets.KORD_TEST_TOKEN }} - ACTIONS_ALLOW_UNSECURE_COMMANDS: true strategy: matrix: os: [ macos-latest ] @@ -24,8 +23,8 @@ jobs: github-token: ${{ secrets.GITHUB_TOKEN }} - name: Add msbuild to PATH if: ${{ matrix.os == 'windows-latest' }} - uses: microsoft/setup-msbuild@v1.1 - - name: Build with Gradle + uses: microsoft/setup-msbuild@v1 + - name: Test with Gradle uses: gradle/gradle-build-action@v2 with: - arguments: nativeTest -i --stacktrace + arguments: --stacktrace --info nativeTest From 3f3568c8945dd4406ed82747e9aaedcac1493708 Mon Sep 17 00:00:00 2001 From: Lukellmann Date: Tue, 21 Mar 2023 15:09:09 +0100 Subject: [PATCH 053/105] Run again on ubuntu --- .github/workflows/graalvm-native-image-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/graalvm-native-image-ci.yml b/.github/workflows/graalvm-native-image-ci.yml index 093ce5dad78f..19035d96912c 100644 --- a/.github/workflows/graalvm-native-image-ci.yml +++ b/.github/workflows/graalvm-native-image-ci.yml @@ -12,7 +12,7 @@ jobs: KORD_TEST_TOKEN: ${{ secrets.KORD_TEST_TOKEN }} strategy: matrix: - os: [ macos-latest ] + os: [ ubuntu-latest, macos-latest ] steps: - uses: actions/checkout@v3 - uses: graalvm/setup-graalvm@v1 From 0773937efe4c3c0914016cab45f47aa6adab8dca Mon Sep 17 00:00:00 2001 From: Lukellmann Date: Tue, 21 Mar 2023 21:01:49 +0100 Subject: [PATCH 054/105] Regenerate reflect-config.json files --- .../dev.kord/kord-common/reflect-config.json | 90 +++++++++++++++++++ 1 file changed, 90 insertions(+) diff --git a/common/build/generated/ksp/main/resources/META-INF/native-image/dev.kord/kord-common/reflect-config.json b/common/build/generated/ksp/main/resources/META-INF/native-image/dev.kord/kord-common/reflect-config.json index fc8d78227212..b2920467d9b8 100644 --- a/common/build/generated/ksp/main/resources/META-INF/native-image/dev.kord/kord-common/reflect-config.json +++ b/common/build/generated/ksp/main/resources/META-INF/native-image/dev.kord/kord-common/reflect-config.json @@ -433,6 +433,24 @@ } ] }, + { + "name": "dev.kord.common.entity.ChannelFlags", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.ChannelFlags$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, { "name": "dev.kord.common.entity.ChannelType", "fields": [ @@ -1012,6 +1030,24 @@ } ] }, + { + "name": "dev.kord.common.entity.DiscordDefaultReaction", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordDefaultReaction$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, { "name": "dev.kord.common.entity.DiscordDeletedGuildRole", "fields": [ @@ -1192,6 +1228,24 @@ } ] }, + { + "name": "dev.kord.common.entity.DiscordForumTag", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordForumTag$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, { "name": "dev.kord.common.entity.DiscordGuild", "fields": [ @@ -2362,6 +2416,24 @@ } ] }, + { + "name": "dev.kord.common.entity.ForumLayoutType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.ForumLayoutType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, { "name": "dev.kord.common.entity.GuildFeature", "fields": [ @@ -2974,6 +3046,24 @@ } ] }, + { + "name": "dev.kord.common.entity.SortOrderType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.SortOrderType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, { "name": "dev.kord.common.entity.StageInstancePrivacyLevel", "fields": [ From 310b9794e934e53694126d11e850a7982db1e3a4 Mon Sep 17 00:00:00 2001 From: Lukellmann Date: Tue, 21 Mar 2023 21:08:01 +0100 Subject: [PATCH 055/105] Remove import --- rest/src/test/kotlin/request/MessageRequests.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/rest/src/test/kotlin/request/MessageRequests.kt b/rest/src/test/kotlin/request/MessageRequests.kt index 3cc1a4331979..42435d01c78f 100644 --- a/rest/src/test/kotlin/request/MessageRequests.kt +++ b/rest/src/test/kotlin/request/MessageRequests.kt @@ -15,7 +15,6 @@ import kotlinx.datetime.Clock import kotlinx.serialization.encodeToString import kotlinx.serialization.json.Json import org.junit.jupiter.api.Test -import kotlin.io.path.toPath private val mockId = Snowflake(42) private const val fileName = "linus.png" From 1022f529b6b8adbc5597ea41cf093ec2474b6af3 Mon Sep 17 00:00:00 2001 From: Lukellmann Date: Tue, 21 Mar 2023 22:37:25 +0100 Subject: [PATCH 056/105] Try to run builds sequentially see https://cbrgm.net/post/2022-01-12-github-actions-environments/ --- .github/workflows/graalvm-native-image-ci.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/graalvm-native-image-ci.yml b/.github/workflows/graalvm-native-image-ci.yml index 19035d96912c..1e498e5a3467 100644 --- a/.github/workflows/graalvm-native-image-ci.yml +++ b/.github/workflows/graalvm-native-image-ci.yml @@ -1,8 +1,6 @@ name: GraalVM Native Image CI -on: - push: - pull_request: +on: [ push ] jobs: test-on-graalvm-native-image: @@ -12,7 +10,9 @@ jobs: KORD_TEST_TOKEN: ${{ secrets.KORD_TEST_TOKEN }} strategy: matrix: - os: [ ubuntu-latest, macos-latest ] + os: [ ubuntu-latest, macos-latest, windows-latest ] + fail-fast: true + max-parallel: 1 steps: - uses: actions/checkout@v3 - uses: graalvm/setup-graalvm@v1 From 10b2dcc8a598d23dfb64543af5704959fef115d8 Mon Sep 17 00:00:00 2001 From: Lukellmann Date: Tue, 21 Mar 2023 23:08:38 +0100 Subject: [PATCH 057/105] Also setup JDK --- .github/workflows/graalvm-native-image-ci.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/graalvm-native-image-ci.yml b/.github/workflows/graalvm-native-image-ci.yml index 1e498e5a3467..95eb73283640 100644 --- a/.github/workflows/graalvm-native-image-ci.yml +++ b/.github/workflows/graalvm-native-image-ci.yml @@ -15,12 +15,17 @@ jobs: max-parallel: 1 steps: - uses: actions/checkout@v3 + - uses: actions/setup-java@v3 + with: + distribution: temurin + java-version: 8 - uses: graalvm/setup-graalvm@v1 with: version: latest java-version: 17 components: native-image github-token: ${{ secrets.GITHUB_TOKEN }} + set-java-home: false - name: Add msbuild to PATH if: ${{ matrix.os == 'windows-latest' }} uses: microsoft/setup-msbuild@v1 From ca80c77e180a0ccfe6036bb20298986701f07ffa Mon Sep 17 00:00:00 2001 From: Lukellmann Date: Tue, 21 Mar 2023 23:13:49 +0100 Subject: [PATCH 058/105] Revert "Also setup JDK" This reverts commit 10b2dcc8a598d23dfb64543af5704959fef115d8. --- .github/workflows/graalvm-native-image-ci.yml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.github/workflows/graalvm-native-image-ci.yml b/.github/workflows/graalvm-native-image-ci.yml index 95eb73283640..1e498e5a3467 100644 --- a/.github/workflows/graalvm-native-image-ci.yml +++ b/.github/workflows/graalvm-native-image-ci.yml @@ -15,17 +15,12 @@ jobs: max-parallel: 1 steps: - uses: actions/checkout@v3 - - uses: actions/setup-java@v3 - with: - distribution: temurin - java-version: 8 - uses: graalvm/setup-graalvm@v1 with: version: latest java-version: 17 components: native-image github-token: ${{ secrets.GITHUB_TOKEN }} - set-java-home: false - name: Add msbuild to PATH if: ${{ matrix.os == 'windows-latest' }} uses: microsoft/setup-msbuild@v1 From ca4d99c1a7db75a99321a7dcb0ee74899b8e5bd7 Mon Sep 17 00:00:00 2001 From: Lukellmann Date: Tue, 21 Mar 2023 23:37:15 +0100 Subject: [PATCH 059/105] Exclude :voice:nativeTest The action is stuck after logging "> Task :voice:nativeTest SKIPPED" --- .github/workflows/graalvm-native-image-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/graalvm-native-image-ci.yml b/.github/workflows/graalvm-native-image-ci.yml index 1e498e5a3467..b16e29355a8f 100644 --- a/.github/workflows/graalvm-native-image-ci.yml +++ b/.github/workflows/graalvm-native-image-ci.yml @@ -27,4 +27,4 @@ jobs: - name: Test with Gradle uses: gradle/gradle-build-action@v2 with: - arguments: --stacktrace --info nativeTest + arguments: --stacktrace --info nativeTest --exclude-task :voice:nativeTest From 0d12b94399c05cbcad23a78892f8f4d816d9d263 Mon Sep 17 00:00:00 2001 From: Lukellmann Date: Wed, 22 Mar 2023 00:09:45 +0100 Subject: [PATCH 060/105] Debug logs --- .github/workflows/graalvm-native-image-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/graalvm-native-image-ci.yml b/.github/workflows/graalvm-native-image-ci.yml index b16e29355a8f..e20119632e95 100644 --- a/.github/workflows/graalvm-native-image-ci.yml +++ b/.github/workflows/graalvm-native-image-ci.yml @@ -27,4 +27,4 @@ jobs: - name: Test with Gradle uses: gradle/gradle-build-action@v2 with: - arguments: --stacktrace --info nativeTest --exclude-task :voice:nativeTest + arguments: --stacktrace --debug nativeTest From 5470e71cc17760c36b24dc90c99786d2326e0c57 Mon Sep 17 00:00:00 2001 From: Lukellmann Date: Wed, 22 Mar 2023 00:40:45 +0100 Subject: [PATCH 061/105] Build without daemon The debug logs don't stop to log daemon related locking while build is stuck. --- .github/workflows/graalvm-native-image-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/graalvm-native-image-ci.yml b/.github/workflows/graalvm-native-image-ci.yml index e20119632e95..ea5285a50908 100644 --- a/.github/workflows/graalvm-native-image-ci.yml +++ b/.github/workflows/graalvm-native-image-ci.yml @@ -27,4 +27,4 @@ jobs: - name: Test with Gradle uses: gradle/gradle-build-action@v2 with: - arguments: --stacktrace --debug nativeTest + arguments: --stacktrace --debug --no-daemon nativeTest From 1634c24a0e236c719bb2d5dbb5aeb59e994cc516 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Wed, 22 Mar 2023 09:11:32 +0100 Subject: [PATCH 062/105] Explicitly specify GraalVM version and bump to Java 19 For some reason on my MacBook using the previous config it defaults to Java 8 which is unsupported by GraalVM --- .github/workflows/graalvm-native-image-ci.yml | 2 +- buildSrc/src/main/kotlin/kord-module.gradle.kts | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/workflows/graalvm-native-image-ci.yml b/.github/workflows/graalvm-native-image-ci.yml index ea5285a50908..0d13cd31139d 100644 --- a/.github/workflows/graalvm-native-image-ci.yml +++ b/.github/workflows/graalvm-native-image-ci.yml @@ -18,7 +18,7 @@ jobs: - uses: graalvm/setup-graalvm@v1 with: version: latest - java-version: 17 + java-version: 19 components: native-image github-token: ${{ secrets.GITHUB_TOKEN }} - name: Add msbuild to PATH diff --git a/buildSrc/src/main/kotlin/kord-module.gradle.kts b/buildSrc/src/main/kotlin/kord-module.gradle.kts index c82450fec7ab..2e3a445b0b39 100644 --- a/buildSrc/src/main/kotlin/kord-module.gradle.kts +++ b/buildSrc/src/main/kotlin/kord-module.gradle.kts @@ -139,6 +139,13 @@ publishing { } graalvmNative { + binaries.all { + javaLauncher.set(javaToolchains.launcherFor { + languageVersion.set(JavaLanguageVersion.of(19)) + vendor.set(JvmVendorSpec.GRAAL_VM) + }) + } + binaries.named("test") { configurationFileDirectories.from(rootProject.file("graalvm-native-image-test-config")) resources { From 94e2c7409d91c29227e9124d21271ddf45c93556 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Wed, 22 Mar 2023 09:39:53 +0100 Subject: [PATCH 063/105] Fox test reflect-config.json For some raeson specifying the constructor doesn't work, but it's the only constructor anyway so we can use "allDeclaredConstructors" --- graalvm-native-image-test-config/reflect-config.json | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/graalvm-native-image-test-config/reflect-config.json b/graalvm-native-image-test-config/reflect-config.json index a362a7cc8605..0b0f3fbb67da 100644 --- a/graalvm-native-image-test-config/reflect-config.json +++ b/graalvm-native-image-test-config/reflect-config.json @@ -1,12 +1,7 @@ [ { "name": "kotlin.internal.jdk8.JDK8PlatformImplementations", - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] + "allDeclaredConstructors": true }, { "name": "io.ktor.network.selector.InterestSuspensionsMap", From be5ae9e088a1e19fb1756747e82299e76bb5ce55 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Wed, 22 Mar 2023 18:17:00 +0100 Subject: [PATCH 064/105] Do not run native tests in parallel --- .github/workflows/graalvm-native-image-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/graalvm-native-image-ci.yml b/.github/workflows/graalvm-native-image-ci.yml index 0d13cd31139d..aeffb02410e1 100644 --- a/.github/workflows/graalvm-native-image-ci.yml +++ b/.github/workflows/graalvm-native-image-ci.yml @@ -27,4 +27,4 @@ jobs: - name: Test with Gradle uses: gradle/gradle-build-action@v2 with: - arguments: --stacktrace --debug --no-daemon nativeTest + arguments: --stacktrace --debug --no-parralel nativeTest From 586f1c345fe49d20dd50cd21aeeef00b92e967c3 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Wed, 22 Mar 2023 18:24:44 +0100 Subject: [PATCH 065/105] Fix typo --- .github/workflows/graalvm-native-image-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/graalvm-native-image-ci.yml b/.github/workflows/graalvm-native-image-ci.yml index aeffb02410e1..29117c8a0ba1 100644 --- a/.github/workflows/graalvm-native-image-ci.yml +++ b/.github/workflows/graalvm-native-image-ci.yml @@ -27,4 +27,4 @@ jobs: - name: Test with Gradle uses: gradle/gradle-build-action@v2 with: - arguments: --stacktrace --debug --no-parralel nativeTest + arguments: --stacktrace --debug --no-parallel nativeTest From f8df5fa1ab60c0e702e272b60929318b4c44e9e3 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Wed, 22 Mar 2023 21:57:10 +0100 Subject: [PATCH 066/105] [skip ci] Use @DisabledInNativeImage instead of system property --- common/src/test/kotlin/ColorTests.kt | 4 ++-- core/src/test/kotlin/equality/EntityEqualityTest.kt | 4 ++-- core/src/test/kotlin/interaction/CommandTypesTest.kt | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/common/src/test/kotlin/ColorTests.kt b/common/src/test/kotlin/ColorTests.kt index 4cb0cd7d4380..f973a450b4c1 100644 --- a/common/src/test/kotlin/ColorTests.kt +++ b/common/src/test/kotlin/ColorTests.kt @@ -2,7 +2,7 @@ import dev.kord.common.Color import dev.kord.common.kColor import org.junit.jupiter.api.Test import org.junit.jupiter.api.assertThrows -import org.junit.jupiter.api.condition.DisabledIfSystemProperty +import org.junit.jupiter.api.condition.DisabledInNativeImage import kotlin.test.assertEquals class ColorTests { @@ -27,7 +27,7 @@ class ColorTests { // Currently java.awt.Color doesn't work on GraalVM Native Image // See: https://github.com/oracle/graal/issues/3084 - @DisabledIfSystemProperty(named = "org.graalvm.nativeimage.imagecode", matches = ".+") + @DisabledInNativeImage @Test fun `java to kColor conversion`() { val color = java.awt.Color.decode("#DBD0B4").kColor diff --git a/core/src/test/kotlin/equality/EntityEqualityTest.kt b/core/src/test/kotlin/equality/EntityEqualityTest.kt index 8a5f629c07aa..5d566bec8b2c 100644 --- a/core/src/test/kotlin/equality/EntityEqualityTest.kt +++ b/core/src/test/kotlin/equality/EntityEqualityTest.kt @@ -2,7 +2,7 @@ package equality import dev.kord.common.entity.Snowflake import dev.kord.core.entity.KordEntity -import org.junit.jupiter.api.condition.DisabledIfSystemProperty +import org.junit.jupiter.api.condition.DisabledInNativeImage import kotlin.random.Random import kotlin.random.nextULong import kotlin.test.Test @@ -16,7 +16,7 @@ val ids = generateSequence { fun randomId() = Snowflake(ids.next()) // MockK currently doesn't work on GraalVM Native Image -@DisabledIfSystemProperty(named = "org.graalvm.nativeimage.imagecode", matches = ".+") +@DisabledInNativeImage interface EntityEqualityTest { fun newEntity(id: Snowflake): T diff --git a/core/src/test/kotlin/interaction/CommandTypesTest.kt b/core/src/test/kotlin/interaction/CommandTypesTest.kt index 3b92fcb7c410..fff00aa97035 100644 --- a/core/src/test/kotlin/interaction/CommandTypesTest.kt +++ b/core/src/test/kotlin/interaction/CommandTypesTest.kt @@ -10,11 +10,11 @@ import dev.kord.core.entity.interaction.SubCommand import kotlinx.serialization.json.* import mockKord import org.junit.jupiter.api.Test -import org.junit.jupiter.api.condition.DisabledIfSystemProperty +import org.junit.jupiter.api.condition.DisabledInNativeImage import kotlin.test.assertEquals -@DisabledIfSystemProperty(named = "org.graalvm.nativeimage.imagecode", matches = ".+") +@DisabledInNativeImage class CommandsTypeTests { val arg = buildJsonObject { put("type", ApplicationCommandOptionType.Integer.type) From 21ace0d40a6abeae1fa0be32b94ad1819346f305 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Wed, 22 Mar 2023 21:58:19 +0100 Subject: [PATCH 067/105] Disable Windows for now --- .github/workflows/graalvm-native-image-ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/graalvm-native-image-ci.yml b/.github/workflows/graalvm-native-image-ci.yml index 29117c8a0ba1..b28bc64b5297 100644 --- a/.github/workflows/graalvm-native-image-ci.yml +++ b/.github/workflows/graalvm-native-image-ci.yml @@ -10,7 +10,8 @@ jobs: KORD_TEST_TOKEN: ${{ secrets.KORD_TEST_TOKEN }} strategy: matrix: - os: [ ubuntu-latest, macos-latest, windows-latest ] + # TODO: Add Windows after figuring out build error + os: [ ubuntu-latest, macos-latest ] fail-fast: true max-parallel: 1 steps: From 8b284086f35d9f44e510ee72842bf0f4abfd3a2a Mon Sep 17 00:00:00 2001 From: Lukellmann Date: Wed, 22 Mar 2023 23:18:53 +0100 Subject: [PATCH 068/105] Run matrix in parallel again and use info logging --- .github/workflows/graalvm-native-image-ci.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/graalvm-native-image-ci.yml b/.github/workflows/graalvm-native-image-ci.yml index b28bc64b5297..b4f0f5caf9ad 100644 --- a/.github/workflows/graalvm-native-image-ci.yml +++ b/.github/workflows/graalvm-native-image-ci.yml @@ -12,8 +12,6 @@ jobs: matrix: # TODO: Add Windows after figuring out build error os: [ ubuntu-latest, macos-latest ] - fail-fast: true - max-parallel: 1 steps: - uses: actions/checkout@v3 - uses: graalvm/setup-graalvm@v1 @@ -28,4 +26,4 @@ jobs: - name: Test with Gradle uses: gradle/gradle-build-action@v2 with: - arguments: --stacktrace --debug --no-parallel nativeTest + arguments: --stacktrace --info --no-parallel nativeTest From 9364240335455cf89e29735d9979d999c7ec4b95 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Wed, 22 Mar 2023 23:30:27 +0100 Subject: [PATCH 069/105] Let's switch to bleeding edge Gradle --- .github/workflows/graalvm-native-image-ci.yml | 11 +++++++---- gradle/wrapper/gradle-wrapper.properties | 1 - 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/.github/workflows/graalvm-native-image-ci.yml b/.github/workflows/graalvm-native-image-ci.yml index b4f0f5caf9ad..cdcec9870e00 100644 --- a/.github/workflows/graalvm-native-image-ci.yml +++ b/.github/workflows/graalvm-native-image-ci.yml @@ -1,17 +1,19 @@ name: GraalVM Native Image CI -on: [ push ] +on: + push: jobs: test-on-graalvm-native-image: + if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != 'kordlib/kord' name: Test Kord on GraalVM Native Image runs-on: ${{ matrix.os }} env: KORD_TEST_TOKEN: ${{ secrets.KORD_TEST_TOKEN }} strategy: matrix: - # TODO: Add Windows after figuring out build error - os: [ ubuntu-latest, macos-latest ] + os: [ ubuntu-latest, macos-latest, windows-latest ] + fail-fast: true steps: - uses: actions/checkout@v3 - uses: graalvm/setup-graalvm@v1 @@ -26,4 +28,5 @@ jobs: - name: Test with Gradle uses: gradle/gradle-build-action@v2 with: - arguments: --stacktrace --info --no-parallel nativeTest + # When running tests in parallel the core:nativeTest task gets stuck and the build never completes + arguments: -i --stacktrace --no-parallel nativeTest diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 19acfb4ef2f6..bdc9a83b1e65 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionSha256Sum=ff7bf6a86f09b9b2c40bb8f48b25fc19cf2b2664fd1d220cd7ab833ec758d0d7 distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.2-bin.zip networkTimeout=10000 zipStoreBase=GRADLE_USER_HOME From 9d6893b2ce4cee95b3b1608b83ef096fae765e38 Mon Sep 17 00:00:00 2001 From: Lukellmann Date: Wed, 22 Mar 2023 23:37:04 +0100 Subject: [PATCH 070/105] Fix workflow file --- .github/workflows/graalvm-native-image-ci.yml | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/.github/workflows/graalvm-native-image-ci.yml b/.github/workflows/graalvm-native-image-ci.yml index cdcec9870e00..f148611de8c0 100644 --- a/.github/workflows/graalvm-native-image-ci.yml +++ b/.github/workflows/graalvm-native-image-ci.yml @@ -1,7 +1,6 @@ name: GraalVM Native Image CI -on: - push: +on: [ push, pull_request ] jobs: test-on-graalvm-native-image: @@ -13,7 +12,6 @@ jobs: strategy: matrix: os: [ ubuntu-latest, macos-latest, windows-latest ] - fail-fast: true steps: - uses: actions/checkout@v3 - uses: graalvm/setup-graalvm@v1 @@ -28,5 +26,5 @@ jobs: - name: Test with Gradle uses: gradle/gradle-build-action@v2 with: - # When running tests in parallel the core:nativeTest task gets stuck and the build never completes - arguments: -i --stacktrace --no-parallel nativeTest + # When running tests in parallel the :core:nativeTest task gets stuck and the build never completes + arguments: --stacktrace --info --no-parallel nativeTest From 3251062b96d07e6006ebf566a1f4a7b94bc6d6b2 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Wed, 22 Mar 2023 23:44:56 +0100 Subject: [PATCH 071/105] Let's switch to bleeding edge Gradle for real --- gradle/wrapper/gradle-wrapper.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index bdc9a83b1e65..9510bfef25e8 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-20230321232752+0000-bin.zip networkTimeout=10000 zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists From 37b2debb3afd2af715a2d47213906fb04ceb77a7 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Wed, 22 Mar 2023 23:47:15 +0100 Subject: [PATCH 072/105] Specify proper download URL --- gradle/wrapper/gradle-wrapper.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 9510bfef25e8..78103afcb96d 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-20230321232752+0000-bin.zip +distributionUrl=https\://services.gradle.org/distributions-snapshots//gradle-8.2-20230321232752+0000-bin.zip networkTimeout=10000 zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists From 31870efdd07b43df1800dffeffe6f7d6fe100288 Mon Sep 17 00:00:00 2001 From: "michael.rittmeister@gmail.com" Date: Thu, 23 Mar 2023 08:10:18 +0000 Subject: [PATCH 073/105] TeamCity change in 'Kord' project: Versioned settings configuration updated --- .teamcity/pom.xml | 104 +++++++++++++++++++++++++++++++++++++++++ .teamcity/settings.kts | 102 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 206 insertions(+) create mode 100644 .teamcity/pom.xml create mode 100644 .teamcity/settings.kts diff --git a/.teamcity/pom.xml b/.teamcity/pom.xml new file mode 100644 index 000000000000..d698657a6f35 --- /dev/null +++ b/.teamcity/pom.xml @@ -0,0 +1,104 @@ + + + 4.0.0 + Kord Config DSL Script + Kord + Kord_dsl + 1.0-SNAPSHOT + + + org.jetbrains.teamcity + configs-dsl-kotlin-parent + 1.0-SNAPSHOT + + + + + jetbrains-all + https://download.jetbrains.com/teamcity-repository + + true + + + + teamcity-server + https://kord.teamcity.com/app/dsl-plugins-repository + + true + + + + + + + JetBrains + https://download.jetbrains.com/teamcity-repository + + + + + ${basedir} + + + kotlin-maven-plugin + org.jetbrains.kotlin + ${kotlin.version} + + + + + compile + process-sources + + compile + + + + test-compile + process-test-sources + + test-compile + + + + + + org.jetbrains.teamcity + teamcity-configs-maven-plugin + ${teamcity.dsl.version} + + kotlin + target/generated-configs + + + + + + + + org.jetbrains.teamcity + configs-dsl-kotlin-latest + ${teamcity.dsl.version} + compile + + + org.jetbrains.teamcity + configs-dsl-kotlin-plugins-latest + 1.0-SNAPSHOT + pom + compile + + + org.jetbrains.kotlin + kotlin-stdlib-jdk8 + ${kotlin.version} + compile + + + org.jetbrains.kotlin + kotlin-script-runtime + ${kotlin.version} + compile + + + \ No newline at end of file diff --git a/.teamcity/settings.kts b/.teamcity/settings.kts new file mode 100644 index 000000000000..5ad481ee4c02 --- /dev/null +++ b/.teamcity/settings.kts @@ -0,0 +1,102 @@ +import jetbrains.buildServer.configs.kotlin.* +import jetbrains.buildServer.configs.kotlin.buildFeatures.commitStatusPublisher +import jetbrains.buildServer.configs.kotlin.buildFeatures.perfmon +import jetbrains.buildServer.configs.kotlin.buildSteps.GradleBuildStep +import jetbrains.buildServer.configs.kotlin.buildSteps.gradle +import jetbrains.buildServer.configs.kotlin.projectFeatures.githubIssues +import jetbrains.buildServer.configs.kotlin.triggers.vcs +import jetbrains.buildServer.configs.kotlin.vcs.GitVcsRoot + +/* +The settings script is an entry point for defining a TeamCity +project hierarchy. The script should contain a single call to the +project() function with a Project instance or an init function as +an argument. + +VcsRoots, BuildTypes, Templates, and subprojects can be +registered inside the project using the vcsRoot(), buildType(), +template(), and subProject() methods respectively. + +To debug settings scripts in command-line, run the + + mvnDebug org.jetbrains.teamcity:teamcity-configs-maven-plugin:generate + +command and attach your debugger to the port 8000. + +To debug in IntelliJ Idea, open the 'Maven Projects' tool window (View +-> Tool Windows -> Maven Projects), find the generate task node +(Plugins -> teamcity-configs -> teamcity-configs:generate), the +'Debug' option is available in the context menu for the task. +*/ + +version = "2022.10" + +project { + + vcsRoot(HttpsGithubComKordlibKordRefsHeads08x) + + buildType(Build) + + features { + githubIssues { + id = "PROJECT_EXT_2" + displayName = "GitHub" + repositoryURL = "https://github.com/kordlib/kord" + authType = accessToken { + accessToken = "credentialsJSON:8a0ab174-fa52-45d4-950a-05a3c36d0e63" + } + } + } +} + +object Build : BuildType({ + name = "Run Native Tests on Linux" + + vcs { + root(DslContext.settingsRoot) + } + + steps { + gradle { + tasks = "nativeTest" + dockerImage = "ghcr.io/graalvm/native-image:ol9-java17-22.3.1" + dockerImagePlatform = GradleBuildStep.ImagePlatform.Linux + } + } + + triggers { + vcs { + } + } + + features { + perfmon { + } + commitStatusPublisher { + vcsRootExtId = "${DslContext.settingsRoot.id}" + publisher = github { + githubUrl = "https://api.github.com" + authType = personalToken { + token = "credentialsJSON:6c4cf2b5-741b-420a-bd80-587c4746b827" + } + } + param("github_oauth_user", "DRSchlaubi") + } + } + + requirements { + matches("teamcity.agent.jvm.os.family", "Linux") + } +}) + +object HttpsGithubComKordlibKordRefsHeads08x : GitVcsRoot({ + name = "https://github.com/kordlib/kord#refs/heads/0.8.x" + url = "https://github.com/kordlib/kord" + branch = "refs/heads/0.8.x" + branchSpec = "refs/heads/*" + authMethod = password { + userName = "DRSchlaubi" + password = "credentialsJSON:6c4cf2b5-741b-420a-bd80-587c4746b827" + } + param("oauthProviderId", "tc-cloud-github-connection") +}) From 9c5c0e90e833bffbb0ae2e860f31f74df6d11050 Mon Sep 17 00:00:00 2001 From: "michael.rittmeister@gmail.com" Date: Thu, 23 Mar 2023 08:19:43 +0000 Subject: [PATCH 074/105] TeamCity change in 'Kord' project: runners of 'Run Native Tests on Linux' build configuration were updated --- .teamcity/settings.kts | 1 - 1 file changed, 1 deletion(-) diff --git a/.teamcity/settings.kts b/.teamcity/settings.kts index 5ad481ee4c02..c80116af2eb3 100644 --- a/.teamcity/settings.kts +++ b/.teamcity/settings.kts @@ -59,7 +59,6 @@ object Build : BuildType({ steps { gradle { tasks = "nativeTest" - dockerImage = "ghcr.io/graalvm/native-image:ol9-java17-22.3.1" dockerImagePlatform = GradleBuildStep.ImagePlatform.Linux } } From c84a5f18a5fdaf669a9bb3da2510bfad5e6939d7 Mon Sep 17 00:00:00 2001 From: "michael.rittmeister@gmail.com" Date: Thu, 23 Mar 2023 08:41:06 +0000 Subject: [PATCH 075/105] TeamCity change in 'Kord' project: runners of 'Run Native Tests on Linux' build configuration were updated --- .teamcity/settings.kts | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/.teamcity/settings.kts b/.teamcity/settings.kts index c80116af2eb3..20ad6411eb2b 100644 --- a/.teamcity/settings.kts +++ b/.teamcity/settings.kts @@ -1,8 +1,8 @@ import jetbrains.buildServer.configs.kotlin.* import jetbrains.buildServer.configs.kotlin.buildFeatures.commitStatusPublisher import jetbrains.buildServer.configs.kotlin.buildFeatures.perfmon -import jetbrains.buildServer.configs.kotlin.buildSteps.GradleBuildStep -import jetbrains.buildServer.configs.kotlin.buildSteps.gradle +import jetbrains.buildServer.configs.kotlin.buildSteps.ScriptBuildStep +import jetbrains.buildServer.configs.kotlin.buildSteps.script import jetbrains.buildServer.configs.kotlin.projectFeatures.githubIssues import jetbrains.buildServer.configs.kotlin.triggers.vcs import jetbrains.buildServer.configs.kotlin.vcs.GitVcsRoot @@ -57,9 +57,14 @@ object Build : BuildType({ } steps { - gradle { - tasks = "nativeTest" - dockerImagePlatform = GradleBuildStep.ImagePlatform.Linux + script { + name = "Build" + scriptContent = """ + microdnf install findutils + ./gradlew nativeTest + """.trimIndent() + dockerImage = "ghcr.io/graalvm/native-image:22.3.1" + dockerImagePlatform = ScriptBuildStep.ImagePlatform.Linux } } From b3908915b2a36df2fd616bdf6734676055b2269a Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Thu, 23 Mar 2023 09:41:07 +0100 Subject: [PATCH 076/105] Use JDK 17 Graal --- buildSrc/src/main/kotlin/kord-module.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/src/main/kotlin/kord-module.gradle.kts b/buildSrc/src/main/kotlin/kord-module.gradle.kts index 2e3a445b0b39..3bc11e6b4f0d 100644 --- a/buildSrc/src/main/kotlin/kord-module.gradle.kts +++ b/buildSrc/src/main/kotlin/kord-module.gradle.kts @@ -141,7 +141,7 @@ publishing { graalvmNative { binaries.all { javaLauncher.set(javaToolchains.launcherFor { - languageVersion.set(JavaLanguageVersion.of(19)) + languageVersion.set(JavaLanguageVersion.of(17)) vendor.set(JvmVendorSpec.GRAAL_VM) }) } From 8aa0142e7cf8ee486b5f3970c752e03b8c136972 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Thu, 23 Mar 2023 10:21:14 +0100 Subject: [PATCH 077/105] Use Gradle to auto-provision GraalVm JDK 17 --- .teamcity/settings.kts | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/.teamcity/settings.kts b/.teamcity/settings.kts index 20ad6411eb2b..2cf4527d1cc5 100644 --- a/.teamcity/settings.kts +++ b/.teamcity/settings.kts @@ -1,11 +1,13 @@ -import jetbrains.buildServer.configs.kotlin.* +import jetbrains.buildServer.configs.kotlin.BuildType +import jetbrains.buildServer.configs.kotlin.DslContext import jetbrains.buildServer.configs.kotlin.buildFeatures.commitStatusPublisher import jetbrains.buildServer.configs.kotlin.buildFeatures.perfmon -import jetbrains.buildServer.configs.kotlin.buildSteps.ScriptBuildStep -import jetbrains.buildServer.configs.kotlin.buildSteps.script +import jetbrains.buildServer.configs.kotlin.buildSteps.gradle +import jetbrains.buildServer.configs.kotlin.project import jetbrains.buildServer.configs.kotlin.projectFeatures.githubIssues import jetbrains.buildServer.configs.kotlin.triggers.vcs import jetbrains.buildServer.configs.kotlin.vcs.GitVcsRoot +import jetbrains.buildServer.configs.kotlin.version /* The settings script is an entry point for defining a TeamCity @@ -57,14 +59,9 @@ object Build : BuildType({ } steps { - script { - name = "Build" - scriptContent = """ - microdnf install findutils - ./gradlew nativeTest - """.trimIndent() - dockerImage = "ghcr.io/graalvm/native-image:22.3.1" - dockerImagePlatform = ScriptBuildStep.ImagePlatform.Linux + gradle { + name = "build" + tasks = "nativeTest" } } From 397edc33f5a5e256adcb8528bc9f6015854a6ed0 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Thu, 23 Mar 2023 10:31:43 +0100 Subject: [PATCH 078/105] Run Gradle with --stacktrace --- .teamcity/settings.kts | 1 + 1 file changed, 1 insertion(+) diff --git a/.teamcity/settings.kts b/.teamcity/settings.kts index 2cf4527d1cc5..e3ce16ad2830 100644 --- a/.teamcity/settings.kts +++ b/.teamcity/settings.kts @@ -62,6 +62,7 @@ object Build : BuildType({ gradle { name = "build" tasks = "nativeTest" + gradleParams = "--stacktrace" } } From dde30c8a4a593a961cd0ab96231b76ce68966f09 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Thu, 23 Mar 2023 10:52:24 +0100 Subject: [PATCH 079/105] Enable debug logs --- .teamcity/settings.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.teamcity/settings.kts b/.teamcity/settings.kts index e3ce16ad2830..857418fde11a 100644 --- a/.teamcity/settings.kts +++ b/.teamcity/settings.kts @@ -62,7 +62,7 @@ object Build : BuildType({ gradle { name = "build" tasks = "nativeTest" - gradleParams = "--stacktrace" + gradleParams = "--stacktrace -d" } } From 04f73d38a350cc7b75dbbdb26cd346f3e32e356b Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Thu, 23 Mar 2023 11:05:54 +0100 Subject: [PATCH 080/105] Remove Graal CI --- .github/workflows/graalvm-native-image-ci.yml | 30 ------------------- 1 file changed, 30 deletions(-) delete mode 100644 .github/workflows/graalvm-native-image-ci.yml diff --git a/.github/workflows/graalvm-native-image-ci.yml b/.github/workflows/graalvm-native-image-ci.yml deleted file mode 100644 index f148611de8c0..000000000000 --- a/.github/workflows/graalvm-native-image-ci.yml +++ /dev/null @@ -1,30 +0,0 @@ -name: GraalVM Native Image CI - -on: [ push, pull_request ] - -jobs: - test-on-graalvm-native-image: - if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != 'kordlib/kord' - name: Test Kord on GraalVM Native Image - runs-on: ${{ matrix.os }} - env: - KORD_TEST_TOKEN: ${{ secrets.KORD_TEST_TOKEN }} - strategy: - matrix: - os: [ ubuntu-latest, macos-latest, windows-latest ] - steps: - - uses: actions/checkout@v3 - - uses: graalvm/setup-graalvm@v1 - with: - version: latest - java-version: 19 - components: native-image - github-token: ${{ secrets.GITHUB_TOKEN }} - - name: Add msbuild to PATH - if: ${{ matrix.os == 'windows-latest' }} - uses: microsoft/setup-msbuild@v1 - - name: Test with Gradle - uses: gradle/gradle-build-action@v2 - with: - # When running tests in parallel the :core:nativeTest task gets stuck and the build never completes - arguments: --stacktrace --info --no-parallel nativeTest From b3d92dd400053cc0af3a65f9269d883cbb0cd3c1 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Thu, 23 Mar 2023 13:11:32 +0100 Subject: [PATCH 081/105] Initial migration to TeamCity CI --- .gitignore | 1 + .teamcity/DebuggableGradle.kt | 27 ++++++++++ .teamcity/DocsCI.kt | 1 + .teamcity/GitHub.kt | 38 +++++++++++++ .teamcity/README.md | 26 +++++++++ .teamcity/Shared.kt | 19 +++++++ .teamcity/TeamCityExtensions.kt | 7 +++ .teamcity/ValidationCI.kt | 11 ++++ .teamcity/settings.kts | 96 ++------------------------------- 9 files changed, 133 insertions(+), 93 deletions(-) create mode 100644 .teamcity/DebuggableGradle.kt create mode 100644 .teamcity/DocsCI.kt create mode 100644 .teamcity/GitHub.kt create mode 100644 .teamcity/README.md create mode 100644 .teamcity/Shared.kt create mode 100644 .teamcity/TeamCityExtensions.kt create mode 100644 .teamcity/ValidationCI.kt diff --git a/.gitignore b/.gitignore index 913898289b67..5dd86e79f9f9 100644 --- a/.gitignore +++ b/.gitignore @@ -6,5 +6,6 @@ out/ **/build/* !**/build/generated/ **/build/generated/**/test +.teamcity/target/ # re-exclude BuildConfigGenerated.kt common/build/generated/source/buildConfig/main/main/dev/kord/common/BuildConfigGenerated.kt diff --git a/.teamcity/DebuggableGradle.kt b/.teamcity/DebuggableGradle.kt new file mode 100644 index 000000000000..34a03f584122 --- /dev/null +++ b/.teamcity/DebuggableGradle.kt @@ -0,0 +1,27 @@ +import jetbrains.buildServer.configs.kotlin.BuildSteps +import jetbrains.buildServer.configs.kotlin.buildSteps.GradleBuildStep +import jetbrains.buildServer.configs.kotlin.buildSteps.gradle + +const val debugParamName = "debug" + +/** + * Adds a new [Gradle build step][GradleBuildStep] that supports the debug parameter. + */ +fun BuildSteps.debuggableGradle(name: String, configure: GradleBuildStep.() -> Unit) { + gradle { + this.name = "$name (Debug)" + conditions { + equals(debugParamName, true.toString()) + } + configure() + gradleParams = (gradleParams?.plus(' ') ?: "") + "-d" + } + + gradle { + this.name = name + conditions { + equals(debugParamName, false.toString()) + } + configure() + } +} diff --git a/.teamcity/DocsCI.kt b/.teamcity/DocsCI.kt new file mode 100644 index 000000000000..8b137891791f --- /dev/null +++ b/.teamcity/DocsCI.kt @@ -0,0 +1 @@ + diff --git a/.teamcity/GitHub.kt b/.teamcity/GitHub.kt new file mode 100644 index 000000000000..f5f5b42a469e --- /dev/null +++ b/.teamcity/GitHub.kt @@ -0,0 +1,38 @@ +import jetbrains.buildServer.configs.kotlin.BuildFeatures +import jetbrains.buildServer.configs.kotlin.DslContext +import jetbrains.buildServer.configs.kotlin.ProjectFeatures +import jetbrains.buildServer.configs.kotlin.buildFeatures.commitStatusPublisher +import jetbrains.buildServer.configs.kotlin.projectFeatures.githubIssues +import jetbrains.buildServer.configs.kotlin.vcs.GitVcsRoot + +object GitHub : GitVcsRoot({ + name = "https://github.com/kordlib/kord#refs/heads/0.8.x" + url = "https://github.com/kordlib/kord" + branch = "refs/heads/0.8.x" + branchSpec = "refs/heads/*" + authMethod = password { + userName = "DRSchlaubi" + password = "credentialsJSON:6c4cf2b5-741b-420a-bd80-587c4746b827" + } + param("oauthProviderId", "tc-cloud-github-connection") +}) + +fun BuildFeatures.installGitHubPublisher() = commitStatusPublisher { + vcsRootExtId = "${DslContext.settingsRoot.id}" + publisher = github { + githubUrl = "https://api.github.com" + authType = personalToken { + token = "credentialsJSON:6c4cf2b5-741b-420a-bd80-587c4746b827" + } + } + param("github_oauth_user", "DRSchlaubi") +} + +fun ProjectFeatures.installGitHubIssueTracker() = githubIssues { + id = "PROJECT_EXT_2" + displayName = "GitHub" + repositoryURL = "https://github.com/kordlib/kord" + authType = accessToken { + accessToken = "credentialsJSON:8a0ab174-fa52-45d4-950a-05a3c36d0e63" + } +} diff --git a/.teamcity/README.md b/.teamcity/README.md new file mode 100644 index 000000000000..8498a0be4ef9 --- /dev/null +++ b/.teamcity/README.md @@ -0,0 +1,26 @@ +# .teamcity + +This folder houses the [TeamCity](https://jetbrains.com/teamcity) configurations for the Kord build process + +# Documentation + +Documentation can be found [here](https://www.jetbrains.com/help/teamcity/kotlin-dsl.html) ([KDoc](https://kord.teamcity.com/app/dsl-documentation/index.html)) + +# Importing in IntelliJ +File -> Project Structure -> Modules -> Add -> Import -> +Select [pom.xml](pom.xml) -> Select Maven + +# Validating + +To Validate the config format run the following Maven goal + +``` +mvn org.jetbrains.teamcity:teamcity-configs-maven-plugin:generate +``` + +# Builds + +| Name | Description | Definition | +|------------|------------------------------------------|------------------------------------| +| Validation | Runs checks (Test, binary compatibility) | [ValidationCI.kt](ValidationCI.kt) | + diff --git a/.teamcity/Shared.kt b/.teamcity/Shared.kt new file mode 100644 index 000000000000..61ea3e00da4d --- /dev/null +++ b/.teamcity/Shared.kt @@ -0,0 +1,19 @@ +import jetbrains.buildServer.configs.kotlin.* + +@Suppress("FunctionName") +fun KordBuild(name: String, configure: BuildType.() -> Unit) = object : BuildType({ + this.name = name + configure() + + vcs { + root(DslContext.settingsRoot) + } + + params { + checkbox(debugParamName, false.toString(), "Debug Mode", "Run build with debug logging enabled") + } + + features { + installGitHubPublisher() + } +}) {} diff --git a/.teamcity/TeamCityExtensions.kt b/.teamcity/TeamCityExtensions.kt new file mode 100644 index 000000000000..0743ed20f16d --- /dev/null +++ b/.teamcity/TeamCityExtensions.kt @@ -0,0 +1,7 @@ +import jetbrains.buildServer.configs.kotlin.Triggers +import jetbrains.buildServer.configs.kotlin.triggers.vcs + +/** + * Short-hand for only VCS triggers. + */ +fun Triggers.vcs() = vcs { } diff --git a/.teamcity/ValidationCI.kt b/.teamcity/ValidationCI.kt new file mode 100644 index 000000000000..f690aaae4385 --- /dev/null +++ b/.teamcity/ValidationCI.kt @@ -0,0 +1,11 @@ +val ValidationCI = KordBuild("Validate Code") { + triggers { + vcs() + } + + steps { + debuggableGradle("Run checks") { + tasks = "check" + } + } +} diff --git a/.teamcity/settings.kts b/.teamcity/settings.kts index 857418fde11a..6972eb1cfc94 100644 --- a/.teamcity/settings.kts +++ b/.teamcity/settings.kts @@ -1,104 +1,14 @@ -import jetbrains.buildServer.configs.kotlin.BuildType -import jetbrains.buildServer.configs.kotlin.DslContext -import jetbrains.buildServer.configs.kotlin.buildFeatures.commitStatusPublisher -import jetbrains.buildServer.configs.kotlin.buildFeatures.perfmon -import jetbrains.buildServer.configs.kotlin.buildSteps.gradle import jetbrains.buildServer.configs.kotlin.project -import jetbrains.buildServer.configs.kotlin.projectFeatures.githubIssues -import jetbrains.buildServer.configs.kotlin.triggers.vcs -import jetbrains.buildServer.configs.kotlin.vcs.GitVcsRoot import jetbrains.buildServer.configs.kotlin.version -/* -The settings script is an entry point for defining a TeamCity -project hierarchy. The script should contain a single call to the -project() function with a Project instance or an init function as -an argument. - -VcsRoots, BuildTypes, Templates, and subprojects can be -registered inside the project using the vcsRoot(), buildType(), -template(), and subProject() methods respectively. - -To debug settings scripts in command-line, run the - - mvnDebug org.jetbrains.teamcity:teamcity-configs-maven-plugin:generate - -command and attach your debugger to the port 8000. - -To debug in IntelliJ Idea, open the 'Maven Projects' tool window (View --> Tool Windows -> Maven Projects), find the generate task node -(Plugins -> teamcity-configs -> teamcity-configs:generate), the -'Debug' option is available in the context menu for the task. -*/ - version = "2022.10" project { + vcsRoot(GitHub) - vcsRoot(HttpsGithubComKordlibKordRefsHeads08x) - - buildType(Build) + buildType(ValidationCI) features { - githubIssues { - id = "PROJECT_EXT_2" - displayName = "GitHub" - repositoryURL = "https://github.com/kordlib/kord" - authType = accessToken { - accessToken = "credentialsJSON:8a0ab174-fa52-45d4-950a-05a3c36d0e63" - } - } + installGitHubIssueTracker() } } - -object Build : BuildType({ - name = "Run Native Tests on Linux" - - vcs { - root(DslContext.settingsRoot) - } - - steps { - gradle { - name = "build" - tasks = "nativeTest" - gradleParams = "--stacktrace -d" - } - } - - triggers { - vcs { - } - } - - features { - perfmon { - } - commitStatusPublisher { - vcsRootExtId = "${DslContext.settingsRoot.id}" - publisher = github { - githubUrl = "https://api.github.com" - authType = personalToken { - token = "credentialsJSON:6c4cf2b5-741b-420a-bd80-587c4746b827" - } - } - param("github_oauth_user", "DRSchlaubi") - } - } - - requirements { - matches("teamcity.agent.jvm.os.family", "Linux") - } -}) - -object HttpsGithubComKordlibKordRefsHeads08x : GitVcsRoot({ - name = "https://github.com/kordlib/kord#refs/heads/0.8.x" - url = "https://github.com/kordlib/kord" - branch = "refs/heads/0.8.x" - branchSpec = "refs/heads/*" - authMethod = password { - userName = "DRSchlaubi" - password = "credentialsJSON:6c4cf2b5-741b-420a-bd80-587c4746b827" - } - param("oauthProviderId", "tc-cloud-github-connection") -}) From 4998050cd6265585614e7b3e1e2c86e9153349e3 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Thu, 23 Mar 2023 13:16:31 +0100 Subject: [PATCH 082/105] Add mandatory ID --- .teamcity/DebuggableGradle.kt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.teamcity/DebuggableGradle.kt b/.teamcity/DebuggableGradle.kt index 34a03f584122..980859a20f85 100644 --- a/.teamcity/DebuggableGradle.kt +++ b/.teamcity/DebuggableGradle.kt @@ -10,6 +10,7 @@ const val debugParamName = "debug" fun BuildSteps.debuggableGradle(name: String, configure: GradleBuildStep.() -> Unit) { gradle { this.name = "$name (Debug)" + id = name conditions { equals(debugParamName, true.toString()) } @@ -19,6 +20,7 @@ fun BuildSteps.debuggableGradle(name: String, configure: GradleBuildStep.() -> U gradle { this.name = name + id="${name}_debug" conditions { equals(debugParamName, false.toString()) } From 1b5cd635e82a34ab1aaf4544acd209d3b5d94927 Mon Sep 17 00:00:00 2001 From: "michael.rittmeister@gmail.com" Date: Thu, 23 Mar 2023 12:20:53 +0000 Subject: [PATCH 083/105] TeamCity change in 'Kord' project: 'Run Native Tests on Linux' build configuration was removed --- .teamcity/patches/buildTypes/Build.kts | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 .teamcity/patches/buildTypes/Build.kts diff --git a/.teamcity/patches/buildTypes/Build.kts b/.teamcity/patches/buildTypes/Build.kts new file mode 100644 index 000000000000..9faccf098666 --- /dev/null +++ b/.teamcity/patches/buildTypes/Build.kts @@ -0,0 +1,12 @@ +package patches.buildTypes + +import jetbrains.buildServer.configs.kotlin.* +import jetbrains.buildServer.configs.kotlin.ui.* + +/* +This patch script was generated by TeamCity on settings change in UI. +To apply the patch, remove the buildType with id = 'Build' +from your code, and delete the patch script. +*/ +deleteBuildType(RelativeId("Build")) + From bdb1d89c00e642e296d5d1ae42023996c37e7dc2 Mon Sep 17 00:00:00 2001 From: "michael.rittmeister@gmail.com" Date: Thu, 23 Mar 2023 12:21:25 +0000 Subject: [PATCH 084/105] TeamCity change in 'Kord' project: 'Validation' build configuration was created --- .teamcity/patches/buildTypes/Validation.kts | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 .teamcity/patches/buildTypes/Validation.kts diff --git a/.teamcity/patches/buildTypes/Validation.kts b/.teamcity/patches/buildTypes/Validation.kts new file mode 100644 index 000000000000..d35ead56ffc2 --- /dev/null +++ b/.teamcity/patches/buildTypes/Validation.kts @@ -0,0 +1,16 @@ +package patches.buildTypes + +import jetbrains.buildServer.configs.kotlin.* +import jetbrains.buildServer.configs.kotlin.BuildType +import jetbrains.buildServer.configs.kotlin.ui.* + +/* +This patch script was generated by TeamCity on settings change in UI. +To apply the patch, create a buildType with id = 'Validation' +in the root project, and delete the patch script. +*/ +create(DslContext.projectId, BuildType({ + id("Validation") + name = "Validation" +})) + From 921b4fff8b9f61c1e3db6073e7676d625b933305 Mon Sep 17 00:00:00 2001 From: "michael.rittmeister@gmail.com" Date: Thu, 23 Mar 2023 12:21:51 +0000 Subject: [PATCH 085/105] TeamCity change in 'Kord' project: VCS roots of 'Validation' build configuration were updated --- .teamcity/patches/buildTypes/Validation.kts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.teamcity/patches/buildTypes/Validation.kts b/.teamcity/patches/buildTypes/Validation.kts index d35ead56ffc2..b39994bc70b0 100644 --- a/.teamcity/patches/buildTypes/Validation.kts +++ b/.teamcity/patches/buildTypes/Validation.kts @@ -12,5 +12,9 @@ in the root project, and delete the patch script. create(DslContext.projectId, BuildType({ id("Validation") name = "Validation" + + vcs { + root(DslContext.settingsRoot) + } })) From 2da76e265152d29ec54cf633d5b67b0da0665bc9 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Thu, 23 Mar 2023 13:21:56 +0100 Subject: [PATCH 086/105] Add mandatory ID --- .teamcity/DebuggableGradle.kt | 2 -- .teamcity/ValidationCI.kt | 3 +++ 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.teamcity/DebuggableGradle.kt b/.teamcity/DebuggableGradle.kt index 980859a20f85..34a03f584122 100644 --- a/.teamcity/DebuggableGradle.kt +++ b/.teamcity/DebuggableGradle.kt @@ -10,7 +10,6 @@ const val debugParamName = "debug" fun BuildSteps.debuggableGradle(name: String, configure: GradleBuildStep.() -> Unit) { gradle { this.name = "$name (Debug)" - id = name conditions { equals(debugParamName, true.toString()) } @@ -20,7 +19,6 @@ fun BuildSteps.debuggableGradle(name: String, configure: GradleBuildStep.() -> U gradle { this.name = name - id="${name}_debug" conditions { equals(debugParamName, false.toString()) } diff --git a/.teamcity/ValidationCI.kt b/.teamcity/ValidationCI.kt index f690aaae4385..8263a4417a4e 100644 --- a/.teamcity/ValidationCI.kt +++ b/.teamcity/ValidationCI.kt @@ -1,4 +1,7 @@ +import jetbrains.buildServer.configs.kotlin.RelativeId + val ValidationCI = KordBuild("Validate Code") { + id = RelativeId("Kord_Validation") triggers { vcs() } From e4ef8b6a0a886e3a6daf7e0625794e7d873079e9 Mon Sep 17 00:00:00 2001 From: "michael.rittmeister@gmail.com" Date: Thu, 23 Mar 2023 12:22:53 +0000 Subject: [PATCH 087/105] TeamCity change in 'Kord' project: 'https://github.com/kordlib/kord#refs/heads/0.8.x' VCS root was removed --- .../HttpsGithubComKordlibKordRefsHeads08x.kts | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 .teamcity/patches/vcsRoots/HttpsGithubComKordlibKordRefsHeads08x.kts diff --git a/.teamcity/patches/vcsRoots/HttpsGithubComKordlibKordRefsHeads08x.kts b/.teamcity/patches/vcsRoots/HttpsGithubComKordlibKordRefsHeads08x.kts new file mode 100644 index 000000000000..a8953dfd71e0 --- /dev/null +++ b/.teamcity/patches/vcsRoots/HttpsGithubComKordlibKordRefsHeads08x.kts @@ -0,0 +1,12 @@ +package patches.vcsRoots + +import jetbrains.buildServer.configs.kotlin.* +import jetbrains.buildServer.configs.kotlin.ui.* + +/* +This patch script was generated by TeamCity on settings change in UI. +To apply the patch, remove the vcsRoot with id = 'HttpsGithubComKordlibKordRefsHeads08x' +from your code, and delete the patch script. +*/ +deleteVcsRoot(RelativeId("HttpsGithubComKordlibKordRefsHeads08x")) + From a70f57c2d6ff498c9366b715cc77291157c20de0 Mon Sep 17 00:00:00 2001 From: "michael.rittmeister@gmail.com" Date: Thu, 23 Mar 2023 12:24:03 +0000 Subject: [PATCH 088/105] TeamCity change in 'Kord' project: 'Validation' build configuration was removed --- .teamcity/patches/buildTypes/Validation.kts | 20 -------------------- 1 file changed, 20 deletions(-) delete mode 100644 .teamcity/patches/buildTypes/Validation.kts diff --git a/.teamcity/patches/buildTypes/Validation.kts b/.teamcity/patches/buildTypes/Validation.kts deleted file mode 100644 index b39994bc70b0..000000000000 --- a/.teamcity/patches/buildTypes/Validation.kts +++ /dev/null @@ -1,20 +0,0 @@ -package patches.buildTypes - -import jetbrains.buildServer.configs.kotlin.* -import jetbrains.buildServer.configs.kotlin.BuildType -import jetbrains.buildServer.configs.kotlin.ui.* - -/* -This patch script was generated by TeamCity on settings change in UI. -To apply the patch, create a buildType with id = 'Validation' -in the root project, and delete the patch script. -*/ -create(DslContext.projectId, BuildType({ - id("Validation") - name = "Validation" - - vcs { - root(DslContext.settingsRoot) - } -})) - From 0918ae0884d742c489b51514d03098536e01b0ee Mon Sep 17 00:00:00 2001 From: "michael.rittmeister@gmail.com" Date: Thu, 23 Mar 2023 12:28:29 +0000 Subject: [PATCH 089/105] TeamCity change in 'Kord' project: commit current project settings --- .teamcity/patches/projects/_Self.kts | 29 ++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 .teamcity/patches/projects/_Self.kts diff --git a/.teamcity/patches/projects/_Self.kts b/.teamcity/patches/projects/_Self.kts new file mode 100644 index 000000000000..47894e4a35d1 --- /dev/null +++ b/.teamcity/patches/projects/_Self.kts @@ -0,0 +1,29 @@ +package patches.projects + +import jetbrains.buildServer.configs.kotlin.* +import jetbrains.buildServer.configs.kotlin.Project +import jetbrains.buildServer.configs.kotlin.projectFeatures.GitHubIssueTracker +import jetbrains.buildServer.configs.kotlin.projectFeatures.githubIssues +import jetbrains.buildServer.configs.kotlin.ui.* + +/* +This patch script was generated by TeamCity on settings change in UI. +To apply the patch, change the root project +accordingly, and delete the patch script. +*/ +changeProject(DslContext.projectId) { + features { + val feature1 = find { + githubIssues { + id = "PROJECT_EXT_2" + displayName = "GitHub" + repositoryURL = "https://github.com/kordlib/kord" + authType = accessToken { + accessToken = "credentialsJSON:8a0ab174-fa52-45d4-950a-05a3c36d0e63" + } + } + } + feature1.apply { + } + } +} From b077b1672caffa1f380d6acc8afe13ebb6b5ae68 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Thu, 23 Mar 2023 13:29:09 +0100 Subject: [PATCH 090/105] Fix CI --- .teamcity/ValidationCI.kt | 2 +- .teamcity/patches/buildTypes/Build.kts | 12 ------------ .../HttpsGithubComKordlibKordRefsHeads08x.kts | 12 ------------ 3 files changed, 1 insertion(+), 25 deletions(-) delete mode 100644 .teamcity/patches/buildTypes/Build.kts delete mode 100644 .teamcity/patches/vcsRoots/HttpsGithubComKordlibKordRefsHeads08x.kts diff --git a/.teamcity/ValidationCI.kt b/.teamcity/ValidationCI.kt index 8263a4417a4e..900ae54153fe 100644 --- a/.teamcity/ValidationCI.kt +++ b/.teamcity/ValidationCI.kt @@ -1,7 +1,7 @@ import jetbrains.buildServer.configs.kotlin.RelativeId val ValidationCI = KordBuild("Validate Code") { - id = RelativeId("Kord_Validation") + id = RelativeId("Validation") triggers { vcs() } diff --git a/.teamcity/patches/buildTypes/Build.kts b/.teamcity/patches/buildTypes/Build.kts deleted file mode 100644 index 9faccf098666..000000000000 --- a/.teamcity/patches/buildTypes/Build.kts +++ /dev/null @@ -1,12 +0,0 @@ -package patches.buildTypes - -import jetbrains.buildServer.configs.kotlin.* -import jetbrains.buildServer.configs.kotlin.ui.* - -/* -This patch script was generated by TeamCity on settings change in UI. -To apply the patch, remove the buildType with id = 'Build' -from your code, and delete the patch script. -*/ -deleteBuildType(RelativeId("Build")) - diff --git a/.teamcity/patches/vcsRoots/HttpsGithubComKordlibKordRefsHeads08x.kts b/.teamcity/patches/vcsRoots/HttpsGithubComKordlibKordRefsHeads08x.kts deleted file mode 100644 index a8953dfd71e0..000000000000 --- a/.teamcity/patches/vcsRoots/HttpsGithubComKordlibKordRefsHeads08x.kts +++ /dev/null @@ -1,12 +0,0 @@ -package patches.vcsRoots - -import jetbrains.buildServer.configs.kotlin.* -import jetbrains.buildServer.configs.kotlin.ui.* - -/* -This patch script was generated by TeamCity on settings change in UI. -To apply the patch, remove the vcsRoot with id = 'HttpsGithubComKordlibKordRefsHeads08x' -from your code, and delete the patch script. -*/ -deleteVcsRoot(RelativeId("HttpsGithubComKordlibKordRefsHeads08x")) - From cc0deee931cdcf3e79f5dc5277de849e41593177 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Thu, 23 Mar 2023 13:35:14 +0100 Subject: [PATCH 091/105] Remove TeamCity patches --- .teamcity/patches/projects/_Self.kts | 29 ---------------------------- 1 file changed, 29 deletions(-) delete mode 100644 .teamcity/patches/projects/_Self.kts diff --git a/.teamcity/patches/projects/_Self.kts b/.teamcity/patches/projects/_Self.kts deleted file mode 100644 index 47894e4a35d1..000000000000 --- a/.teamcity/patches/projects/_Self.kts +++ /dev/null @@ -1,29 +0,0 @@ -package patches.projects - -import jetbrains.buildServer.configs.kotlin.* -import jetbrains.buildServer.configs.kotlin.Project -import jetbrains.buildServer.configs.kotlin.projectFeatures.GitHubIssueTracker -import jetbrains.buildServer.configs.kotlin.projectFeatures.githubIssues -import jetbrains.buildServer.configs.kotlin.ui.* - -/* -This patch script was generated by TeamCity on settings change in UI. -To apply the patch, change the root project -accordingly, and delete the patch script. -*/ -changeProject(DslContext.projectId) { - features { - val feature1 = find { - githubIssues { - id = "PROJECT_EXT_2" - displayName = "GitHub" - repositoryURL = "https://github.com/kordlib/kord" - authType = accessToken { - accessToken = "credentialsJSON:8a0ab174-fa52-45d4-950a-05a3c36d0e63" - } - } - } - feature1.apply { - } - } -} From fa570a23a6c0075e8da6a00e3d1f18316f1e6645 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Thu, 23 Mar 2023 14:17:18 +0100 Subject: [PATCH 092/105] Fail if test count changes significantly --- .teamcity/ValidationCI.kt | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/.teamcity/ValidationCI.kt b/.teamcity/ValidationCI.kt index 900ae54153fe..7a297311362e 100644 --- a/.teamcity/ValidationCI.kt +++ b/.teamcity/ValidationCI.kt @@ -1,4 +1,7 @@ +import jetbrains.buildServer.configs.kotlin.FailureConditions import jetbrains.buildServer.configs.kotlin.RelativeId +import jetbrains.buildServer.configs.kotlin.failureConditions.BuildFailureOnMetric +import jetbrains.buildServer.configs.kotlin.failureConditions.failOnMetricChange val ValidationCI = KordBuild("Validate Code") { id = RelativeId("Validation") @@ -11,4 +14,21 @@ val ValidationCI = KordBuild("Validate Code") { tasks = "check" } } + + failureConditions { + failOnSignificantDecreaseOf(BuildFailureOnMetric.MetricType.TEST_COUNT) + failOnSignificantDecreaseOf(BuildFailureOnMetric.MetricType.TEST_IGNORED_COUNT) + } +} + +private fun FailureConditions.failOnSignificantDecreaseOf(metricType: BuildFailureOnMetric.MetricType) { + failOnMetricChange { + metric = metricType + threshold = 20 + units = BuildFailureOnMetric.MetricUnit.PERCENTS + comparison = BuildFailureOnMetric.MetricComparison.LESS + compareTo = build { + buildRule = lastSuccessful() + } + } } From f9b2bae3c826163f45722476067b75427591e067 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Thu, 23 Mar 2023 16:40:33 +0100 Subject: [PATCH 093/105] Run Validation CI on pull requests as well --- .teamcity/GitHub.kt | 9 ++++++++- .teamcity/ValidationCI.kt | 4 ++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/.teamcity/GitHub.kt b/.teamcity/GitHub.kt index f5f5b42a469e..edc698645cea 100644 --- a/.teamcity/GitHub.kt +++ b/.teamcity/GitHub.kt @@ -2,6 +2,7 @@ import jetbrains.buildServer.configs.kotlin.BuildFeatures import jetbrains.buildServer.configs.kotlin.DslContext import jetbrains.buildServer.configs.kotlin.ProjectFeatures import jetbrains.buildServer.configs.kotlin.buildFeatures.commitStatusPublisher +import jetbrains.buildServer.configs.kotlin.buildFeatures.pullRequests import jetbrains.buildServer.configs.kotlin.projectFeatures.githubIssues import jetbrains.buildServer.configs.kotlin.vcs.GitVcsRoot @@ -27,7 +28,13 @@ fun BuildFeatures.installGitHubPublisher() = commitStatusPublisher { } param("github_oauth_user", "DRSchlaubi") } - +fun BuildFeatures.installGitHubPullRequest() = pullRequests { + github { + authType = token { + token = "credentialsJSON:8a0ab174-fa52-45d4-950a-05a3c36d0e63" + } + } +} fun ProjectFeatures.installGitHubIssueTracker() = githubIssues { id = "PROJECT_EXT_2" displayName = "GitHub" diff --git a/.teamcity/ValidationCI.kt b/.teamcity/ValidationCI.kt index 7a297311362e..36e829ed10bf 100644 --- a/.teamcity/ValidationCI.kt +++ b/.teamcity/ValidationCI.kt @@ -19,6 +19,10 @@ val ValidationCI = KordBuild("Validate Code") { failOnSignificantDecreaseOf(BuildFailureOnMetric.MetricType.TEST_COUNT) failOnSignificantDecreaseOf(BuildFailureOnMetric.MetricType.TEST_IGNORED_COUNT) } + + features { + installGitHubPullRequest() + } } private fun FailureConditions.failOnSignificantDecreaseOf(metricType: BuildFailureOnMetric.MetricType) { From a500f506591d89fe82c294045daf1adddd0b6d7d Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Thu, 23 Mar 2023 16:47:28 +0100 Subject: [PATCH 094/105] Fix Pull request configuration --- .teamcity/GitHub.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.teamcity/GitHub.kt b/.teamcity/GitHub.kt index edc698645cea..3ad4d59bf108 100644 --- a/.teamcity/GitHub.kt +++ b/.teamcity/GitHub.kt @@ -29,7 +29,7 @@ fun BuildFeatures.installGitHubPublisher() = commitStatusPublisher { param("github_oauth_user", "DRSchlaubi") } fun BuildFeatures.installGitHubPullRequest() = pullRequests { - github { + provider = github { authType = token { token = "credentialsJSON:8a0ab174-fa52-45d4-950a-05a3c36d0e63" } From ae339e11c6a88f67f65e83e09f6069c1ef647189 Mon Sep 17 00:00:00 2001 From: "michael.rittmeister@gmail.com" Date: Thu, 23 Mar 2023 15:48:02 +0000 Subject: [PATCH 095/105] TeamCity change in 'Kord' project: Versioned settings configuration updated --- .teamcity/patches/projects/_Self.kts | 29 ++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 .teamcity/patches/projects/_Self.kts diff --git a/.teamcity/patches/projects/_Self.kts b/.teamcity/patches/projects/_Self.kts new file mode 100644 index 000000000000..47894e4a35d1 --- /dev/null +++ b/.teamcity/patches/projects/_Self.kts @@ -0,0 +1,29 @@ +package patches.projects + +import jetbrains.buildServer.configs.kotlin.* +import jetbrains.buildServer.configs.kotlin.Project +import jetbrains.buildServer.configs.kotlin.projectFeatures.GitHubIssueTracker +import jetbrains.buildServer.configs.kotlin.projectFeatures.githubIssues +import jetbrains.buildServer.configs.kotlin.ui.* + +/* +This patch script was generated by TeamCity on settings change in UI. +To apply the patch, change the root project +accordingly, and delete the patch script. +*/ +changeProject(DslContext.projectId) { + features { + val feature1 = find { + githubIssues { + id = "PROJECT_EXT_2" + displayName = "GitHub" + repositoryURL = "https://github.com/kordlib/kord" + authType = accessToken { + accessToken = "credentialsJSON:8a0ab174-fa52-45d4-950a-05a3c36d0e63" + } + } + } + feature1.apply { + } + } +} From 5889bfe4b4c94224d9f9a40aa3d58f27d781e321 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Thu, 23 Mar 2023 21:43:22 +0100 Subject: [PATCH 096/105] Add GITHU_BRANCH environment variable - Remove no longer needed patch --- .teamcity/GitHub.kt | 2 ++ .teamcity/Shared.kt | 2 ++ .teamcity/patches/projects/_Self.kts | 29 ---------------------------- 3 files changed, 4 insertions(+), 29 deletions(-) delete mode 100644 .teamcity/patches/projects/_Self.kts diff --git a/.teamcity/GitHub.kt b/.teamcity/GitHub.kt index 3ad4d59bf108..38e771c64674 100644 --- a/.teamcity/GitHub.kt +++ b/.teamcity/GitHub.kt @@ -28,6 +28,7 @@ fun BuildFeatures.installGitHubPublisher() = commitStatusPublisher { } param("github_oauth_user", "DRSchlaubi") } + fun BuildFeatures.installGitHubPullRequest() = pullRequests { provider = github { authType = token { @@ -35,6 +36,7 @@ fun BuildFeatures.installGitHubPullRequest() = pullRequests { } } } + fun ProjectFeatures.installGitHubIssueTracker() = githubIssues { id = "PROJECT_EXT_2" displayName = "GitHub" diff --git a/.teamcity/Shared.kt b/.teamcity/Shared.kt index 61ea3e00da4d..3a9686d1ffd2 100644 --- a/.teamcity/Shared.kt +++ b/.teamcity/Shared.kt @@ -11,6 +11,8 @@ fun KordBuild(name: String, configure: BuildType.() -> Unit) = object : BuildTyp params { checkbox(debugParamName, false.toString(), "Debug Mode", "Run build with debug logging enabled") + + param("env.GITHUB_BRANCH", "%teamcity.build.branch%") } features { diff --git a/.teamcity/patches/projects/_Self.kts b/.teamcity/patches/projects/_Self.kts deleted file mode 100644 index 47894e4a35d1..000000000000 --- a/.teamcity/patches/projects/_Self.kts +++ /dev/null @@ -1,29 +0,0 @@ -package patches.projects - -import jetbrains.buildServer.configs.kotlin.* -import jetbrains.buildServer.configs.kotlin.Project -import jetbrains.buildServer.configs.kotlin.projectFeatures.GitHubIssueTracker -import jetbrains.buildServer.configs.kotlin.projectFeatures.githubIssues -import jetbrains.buildServer.configs.kotlin.ui.* - -/* -This patch script was generated by TeamCity on settings change in UI. -To apply the patch, change the root project -accordingly, and delete the patch script. -*/ -changeProject(DslContext.projectId) { - features { - val feature1 = find { - githubIssues { - id = "PROJECT_EXT_2" - displayName = "GitHub" - repositoryURL = "https://github.com/kordlib/kord" - authType = accessToken { - accessToken = "credentialsJSON:8a0ab174-fa52-45d4-950a-05a3c36d0e63" - } - } - } - feature1.apply { - } - } -} From 22d688da21f95ea56145716f34d04a7183a7e28f Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Fri, 24 Mar 2023 08:26:57 +0100 Subject: [PATCH 097/105] Convert more CI - Add GraalVM CI skeleton - Add DocsCI - Update CLI command in README.md --- .github/workflows/docs-ci.yml | 43 ------------------------------- .teamcity/DocsCI.kt | 17 ++++++++++++ .teamcity/GraalVMNativeImageCI.kt | 9 +++++++ .teamcity/OSMatrix.kt | 32 +++++++++++++++++++++++ .teamcity/README.md | 17 +++++++----- .teamcity/TeamCityExtensions.kt | 9 +++++++ .teamcity/settings.kts | 3 +++ build.gradle.kts | 18 +++++++++++++ gradle/libs.versions.toml | 2 ++ 9 files changed, 100 insertions(+), 50 deletions(-) delete mode 100644 .github/workflows/docs-ci.yml create mode 100644 .teamcity/GraalVMNativeImageCI.kt create mode 100644 .teamcity/OSMatrix.kt diff --git a/.github/workflows/docs-ci.yml b/.github/workflows/docs-ci.yml deleted file mode 100644 index 79f1a5205e77..000000000000 --- a/.github/workflows/docs-ci.yml +++ /dev/null @@ -1,43 +0,0 @@ -# This workflow will build and deploy docs to GitHub Pages whenever something is pushed to 0.8.x - -name: Docs - -on: - push: - branches: - - 0.8.x - -permissions: - contents: write - -# Allow one concurrent deployment -concurrency: - group: pages - cancel-in-progress: true - -jobs: - docs: - name: Build and deploy docs - runs-on: ubuntu-latest - env: - GITHUB_TAG_NAME: ${{ github.event.release.tag_name }} - GITHUB_BRANCH_NAME: ${{ github.ref }} - steps: - - uses: actions/checkout@v3 - - name: Set up JDK - uses: actions/setup-java@v3 - with: - distribution: temurin - java-version: 8 - - name: Build docs with Gradle - uses: gradle/gradle-build-action@v2 - with: - arguments: --stacktrace --info dokkaHtmlMultiModule - - name: Deploy docs to GitHub Pages - uses: JamesIves/github-pages-deploy-action@v4 - with: - folder: build/dokka/htmlMultiModule - branch: gh-pages - git-config-name: GitHub Actions - git-config-email: actions@github.com - commit-message: Update docs diff --git a/.teamcity/DocsCI.kt b/.teamcity/DocsCI.kt index 8b137891791f..fa905ecc4f71 100644 --- a/.teamcity/DocsCI.kt +++ b/.teamcity/DocsCI.kt @@ -1 +1,18 @@ +import jetbrains.buildServer.configs.kotlin.RelativeId +import jetbrains.buildServer.configs.kotlin.triggers.vcs +val DocsCI = KordBuild("Deploy documentation") { + id = RelativeId("Deploy_docs") + + triggers { + vcs { + branchFilter = "+:0.8.x" + } + } + + steps { + debuggableGradle("Deploy documentation") { + tasks = "gitPublishPush" + } + } +} diff --git a/.teamcity/GraalVMNativeImageCI.kt b/.teamcity/GraalVMNativeImageCI.kt new file mode 100644 index 000000000000..8498e4eaff46 --- /dev/null +++ b/.teamcity/GraalVMNativeImageCI.kt @@ -0,0 +1,9 @@ +import jetbrains.buildServer.configs.kotlin.RelativeId + +val GraalVMNativeImageCI = MultiOSKordBuild("Run GraalVM Native image Tests", RelativeId("Run_Native_Image_tests")) { + steps { + debuggableGradle("Run Native Image Tests") { + tasks = "nativeTest" + } + } +} diff --git a/.teamcity/OSMatrix.kt b/.teamcity/OSMatrix.kt new file mode 100644 index 000000000000..0885d355b0cc --- /dev/null +++ b/.teamcity/OSMatrix.kt @@ -0,0 +1,32 @@ +import jetbrains.buildServer.configs.kotlin.AbsoluteId +import jetbrains.buildServer.configs.kotlin.BuildType +import jetbrains.buildServer.configs.kotlin.Id + +/** + * Creates a matrix for [operatingSystems] and runs the build everywhere. + * + * @param name a base name for all [types][BuildType] + * (Is converted to `$name ($operatingSystem)` + * @param id a base [Id] for all [types][BuildType] + * (Is converted to `$name_$operatingSystem) + * @param operatingSystems [List] of operating systems + * @param configure configuration for all types + */ +@Suppress("FunctionName") +fun MultiOSKordBuild( + name: String, + id: Id, + operatingSystems: List = listOf("Linux", "Windows", "Mac OS"), + configure: BuildType.() -> Unit +): List { + return operatingSystems.map { operatingSystem -> + KordBuild("$name ($operatingSystem)") { + this.id = AbsoluteId("${id.value}_${operatingSystem.replace(' ', '_').lowercase()}") + requirements { + matches("teamcity.agent.jvm.os.family", "Linux") + } + + configure() + } + } +} diff --git a/.teamcity/README.md b/.teamcity/README.md index 8498a0be4ef9..e82d45fd46b0 100644 --- a/.teamcity/README.md +++ b/.teamcity/README.md @@ -4,9 +4,11 @@ This folder houses the [TeamCity](https://jetbrains.com/teamcity) configurations # Documentation -Documentation can be found [here](https://www.jetbrains.com/help/teamcity/kotlin-dsl.html) ([KDoc](https://kord.teamcity.com/app/dsl-documentation/index.html)) +Documentation can be +found [here](https://www.jetbrains.com/help/teamcity/kotlin-dsl.html) ([KDoc](https://kord.teamcity.com/app/dsl-documentation/index.html)) # Importing in IntelliJ + File -> Project Structure -> Modules -> Add -> Import -> Select [pom.xml](pom.xml) -> Select Maven @@ -14,13 +16,14 @@ Select [pom.xml](pom.xml) -> Select Maven To Validate the config format run the following Maven goal -``` -mvn org.jetbrains.teamcity:teamcity-configs-maven-plugin:generate +```shell +mvnDebug org.jetbrains.teamcity:teamcity-configs-maven-plugin:generate ``` # Builds -| Name | Description | Definition | -|------------|------------------------------------------|------------------------------------| -| Validation | Runs checks (Test, binary compatibility) | [ValidationCI.kt](ValidationCI.kt) | - +| Name | Description | Definition | +|--------------------|------------------------------------------|----------------------------------------------------| +| Validation | Runs checks (Test, binary compatibility) | [ValidationCI.kt](ValidationCI.kt) | +| Docs | Deploys documentation to GitHub Pages | [DocsCI.kt](DocsCI.kt) | +| GraalVM Validation | Runs GraalVM Native image Tests | [GraalVMNativeImageCI.kt](GraalVMNativeImageCI.kt) | diff --git a/.teamcity/TeamCityExtensions.kt b/.teamcity/TeamCityExtensions.kt index 0743ed20f16d..98429705e25c 100644 --- a/.teamcity/TeamCityExtensions.kt +++ b/.teamcity/TeamCityExtensions.kt @@ -1,3 +1,5 @@ +import jetbrains.buildServer.configs.kotlin.BuildType +import jetbrains.buildServer.configs.kotlin.Project import jetbrains.buildServer.configs.kotlin.Triggers import jetbrains.buildServer.configs.kotlin.triggers.vcs @@ -5,3 +7,10 @@ import jetbrains.buildServer.configs.kotlin.triggers.vcs * Short-hand for only VCS triggers. */ fun Triggers.vcs() = vcs { } + +/** + * Adds all [types] to this [Project]. + * + * @see MultiOSKordBuild + */ +fun Project.buildType(types: Iterable) = types.forEach(::buildType) diff --git a/.teamcity/settings.kts b/.teamcity/settings.kts index 6972eb1cfc94..cedd3234459b 100644 --- a/.teamcity/settings.kts +++ b/.teamcity/settings.kts @@ -7,6 +7,9 @@ project { vcsRoot(GitHub) buildType(ValidationCI) + buildType(DocsCI) + // TODO: Await Response from JetBrains to resolve toolchain issues + //buildType(GraalVMNativeImageCI) features { installGitHubIssueTracker() diff --git a/build.gradle.kts b/build.gradle.kts index a1cd46774e82..5a63e49099e1 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,5 +1,6 @@ plugins { org.jetbrains.dokka // for dokkaHtmlMultiModule task + alias(libs.plugins.git.publish) } repositories { @@ -8,3 +9,20 @@ repositories { group = Library.group version = Library.version + +tasks { + gitPublishPush { + dependsOn(dokkaHtmlMultimodule) + } +} + +gitPublish { + repoUri.set("https://github.com/DRSchlaubi/lavakord.git") + branch.set("gh-pages") + + contents { + from(file("docs")) + } + + commitMessage.set("Update Docs") +} diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 62f5a5d679cc..d49f7daba161 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -24,6 +24,7 @@ kotlinx-atomicfu = "0.20.0" # https://github.com/Kotlin/kotlinx-atomicfu binary-compatibility-validator = "0.13.0" # https://github.com/Kotlin/binary-compatibility-validator buildconfig = "3.1.0" # https://github.com/gmazzo/gradle-buildconfig-plugin graalvm-native-build-tools = "0.9.20" # https://github.com/graalvm/native-build-tools +git-publish = "4.1.1" # https://github.com/ajoberstar/gradle-git-publish [libraries] @@ -94,3 +95,4 @@ pluginsForBuildSrc = [ [plugins] buildconfig = { id = "com.github.gmazzo.buildconfig", version.ref = "buildconfig" } +git-publish = { id = "org.ajoberstar.git-publish", version.ref = "git-publish" } From 3967334ae4d1459e0b5eb821da2243bf988cd228 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Fri, 24 Mar 2023 08:42:31 +0100 Subject: [PATCH 098/105] Convert Maven deployment to TeamCity --- .github/workflows/deployment-ci.yml | 69 ----------------------------- .teamcity/README.md | 10 ++--- .teamcity/ValidationCI.kt | 17 +++++++ 3 files changed, 22 insertions(+), 74 deletions(-) delete mode 100644 .github/workflows/deployment-ci.yml diff --git a/.github/workflows/deployment-ci.yml b/.github/workflows/deployment-ci.yml deleted file mode 100644 index 387731fe16b3..000000000000 --- a/.github/workflows/deployment-ci.yml +++ /dev/null @@ -1,69 +0,0 @@ -# This workflow will build a package using Gradle and then publish it to maven - -name: Kotlin CI - -on: - push: - branches: - - '**' # We want to run this on all branch pushes - tags-ignore: - - '**' # We don't want this to run on tags pushes - pull_request: - release: - types: [ published ] - -jobs: - build: - name: Build Kord - runs-on: ubuntu-latest - if: | - !contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.pull_request.title, '[ci skip]') - && !(github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == 'kordlib/kord') - env: - KORD_TEST_TOKEN: ${{ secrets.KORD_TEST_TOKEN }} - steps: - - uses: actions/checkout@v3 - - name: Set up JDK - uses: actions/setup-java@v3 - with: - distribution: temurin - java-version: 8 - - name: Set SHORT_SHA environment variable to short commit hash - run: echo "SHORT_SHA=$(git rev-parse --short ${{ github.sha }})" >> $GITHUB_ENV - - name: Build with Gradle - uses: gradle/gradle-build-action@v2 - with: - arguments: --stacktrace --info build - release: - name: Publish artifacts - runs-on: ubuntu-latest - needs: build - if: | - !contains(github.event.head_commit.message, '[publish skip]') && github.event_name != 'pull_request' && github.ref != 'refs/heads/master' - env: - KORD_TEST_TOKEN: ${{ secrets.KORD_TEST_TOKEN }} - NEXUS_USER: ${{ secrets.NEXUS_USER }} - NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }} - ORG_GRADLE_PROJECT_signingKey: ${{ secrets.signingKey }} - ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.signingPassword }} - GITHUB_TAG_NAME: ${{ github.event.release.tag_name }} - GITHUB_BRANCH_NAME: ${{ github.ref }} - steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - name: Set up JDK - uses: actions/setup-java@v3 - with: - distribution: temurin - java-version: 8 - - name: Set SHORT_SHA environment variable to short commit hash - run: echo "SHORT_SHA=$(git rev-parse --short ${{ github.sha }})" >> $GITHUB_ENV - - name: Build with Gradle - uses: gradle/gradle-build-action@v2 - with: - arguments: --stacktrace --info build - - name: Publish with Gradle - uses: gradle/gradle-build-action@v2 - with: - arguments: -x test publish diff --git a/.teamcity/README.md b/.teamcity/README.md index e82d45fd46b0..422dd8c6b972 100644 --- a/.teamcity/README.md +++ b/.teamcity/README.md @@ -22,8 +22,8 @@ mvnDebug org.jetbrains.teamcity:teamcity-configs-maven-plugin:generate # Builds -| Name | Description | Definition | -|--------------------|------------------------------------------|----------------------------------------------------| -| Validation | Runs checks (Test, binary compatibility) | [ValidationCI.kt](ValidationCI.kt) | -| Docs | Deploys documentation to GitHub Pages | [DocsCI.kt](DocsCI.kt) | -| GraalVM Validation | Runs GraalVM Native image Tests | [GraalVMNativeImageCI.kt](GraalVMNativeImageCI.kt) | +| Name | Description | Definition | +|--------------------|----------------------------------------------------------------------|----------------------------------------------------| +| Validation | Runs checks (Test, binary compatibility) and publish Maven artifacts | [ValidationCI.kt](ValidationCI.kt) | +| Docs | Deploys documentation to GitHub Pages | [DocsCI.kt](DocsCI.kt) | +| GraalVM Validation | Runs GraalVM Native image Tests | [GraalVMNativeImageCI.kt](GraalVMNativeImageCI.kt) | diff --git a/.teamcity/ValidationCI.kt b/.teamcity/ValidationCI.kt index 36e829ed10bf..19a6dc23ff1a 100644 --- a/.teamcity/ValidationCI.kt +++ b/.teamcity/ValidationCI.kt @@ -13,6 +13,23 @@ val ValidationCI = KordBuild("Validate Code") { debuggableGradle("Run checks") { tasks = "check" } + + debuggableGradle("Publish Artifacts") { + // Secrets need to be specified + enabled = false + param("env.NEXUS_USER", "TODO") + param("env.NEXUS_PASSWORD", "TODO") + param("system.org.gradle.project.signingKey", "TODO") + param("system.org.gradle.project.signingPassword", "TODO") + + conditions { + // Meaning: Do not run on Pull Requests + doesNotExist("eamcity.pullRequest.number") + } + + tasks = "publish" + gradleParams = "-x test" + } } failureConditions { From af3267f3e51f5dadc08ef4468ca10971444f0d13 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Fri, 24 Mar 2023 08:43:46 +0100 Subject: [PATCH 099/105] Fix typo --- .teamcity/ValidationCI.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.teamcity/ValidationCI.kt b/.teamcity/ValidationCI.kt index 19a6dc23ff1a..85068ea12559 100644 --- a/.teamcity/ValidationCI.kt +++ b/.teamcity/ValidationCI.kt @@ -24,7 +24,7 @@ val ValidationCI = KordBuild("Validate Code") { conditions { // Meaning: Do not run on Pull Requests - doesNotExist("eamcity.pullRequest.number") + doesNotExist("teamcity.pullRequest.number") } tasks = "publish" From 5b838e554ae111927534b5debf0c897bb3c893e7 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Fri, 24 Mar 2023 19:44:35 +0100 Subject: [PATCH 100/105] Run live tests in TeamCity --- .teamcity/ValidationCI.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/.teamcity/ValidationCI.kt b/.teamcity/ValidationCI.kt index 85068ea12559..9c278e0870ad 100644 --- a/.teamcity/ValidationCI.kt +++ b/.teamcity/ValidationCI.kt @@ -11,6 +11,7 @@ val ValidationCI = KordBuild("Validate Code") { steps { debuggableGradle("Run checks") { + param("env.KOTLIN_TEST_TOKEN", "credentialsJSON:cbd8be1d-4808-42ff-90cf-551e9f60e83d") tasks = "check" } From 1438531c905459ff9ca8435430867b295321d432 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Fri, 24 Mar 2023 19:53:14 +0100 Subject: [PATCH 101/105] Fix wrong environment variable name --- .teamcity/ValidationCI.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.teamcity/ValidationCI.kt b/.teamcity/ValidationCI.kt index 9c278e0870ad..ebab92072666 100644 --- a/.teamcity/ValidationCI.kt +++ b/.teamcity/ValidationCI.kt @@ -11,7 +11,7 @@ val ValidationCI = KordBuild("Validate Code") { steps { debuggableGradle("Run checks") { - param("env.KOTLIN_TEST_TOKEN", "credentialsJSON:cbd8be1d-4808-42ff-90cf-551e9f60e83d") + param("env.KORD_TEST_TOKEN", "credentialsJSON:cbd8be1d-4808-42ff-90cf-551e9f60e83d") tasks = "check" } From 49d0ec749c9a467330c58b666c2e52b54dde56cc Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Fri, 24 Mar 2023 20:07:07 +0100 Subject: [PATCH 102/105] Mark environmen variable as secure --- .teamcity/ValidationCI.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.teamcity/ValidationCI.kt b/.teamcity/ValidationCI.kt index ebab92072666..f39ba7f6e5f0 100644 --- a/.teamcity/ValidationCI.kt +++ b/.teamcity/ValidationCI.kt @@ -10,8 +10,8 @@ val ValidationCI = KordBuild("Validate Code") { } steps { + password("env.KORD_TEST_TOKEN", "credentialsJSON:cbd8be1d-4808-42ff-90cf-551e9f60e83d") debuggableGradle("Run checks") { - param("env.KORD_TEST_TOKEN", "credentialsJSON:cbd8be1d-4808-42ff-90cf-551e9f60e83d") tasks = "check" } From 2ac7eaae5b88312e153d20fff599ce6b1817d2ff Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Fri, 24 Mar 2023 20:09:14 +0100 Subject: [PATCH 103/105] Fix CI secret --- .teamcity/Shared.kt | 2 ++ .teamcity/ValidationCI.kt | 1 - 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.teamcity/Shared.kt b/.teamcity/Shared.kt index 3a9686d1ffd2..afa068932527 100644 --- a/.teamcity/Shared.kt +++ b/.teamcity/Shared.kt @@ -13,6 +13,8 @@ fun KordBuild(name: String, configure: BuildType.() -> Unit) = object : BuildTyp checkbox(debugParamName, false.toString(), "Debug Mode", "Run build with debug logging enabled") param("env.GITHUB_BRANCH", "%teamcity.build.branch%") + + password("env.KORD_TEST_TOKEN", "credentialsJSON:cbd8be1d-4808-42ff-90cf-551e9f60e83d") } features { diff --git a/.teamcity/ValidationCI.kt b/.teamcity/ValidationCI.kt index f39ba7f6e5f0..85068ea12559 100644 --- a/.teamcity/ValidationCI.kt +++ b/.teamcity/ValidationCI.kt @@ -10,7 +10,6 @@ val ValidationCI = KordBuild("Validate Code") { } steps { - password("env.KORD_TEST_TOKEN", "credentialsJSON:cbd8be1d-4808-42ff-90cf-551e9f60e83d") debuggableGradle("Run checks") { tasks = "check" } From 91c85d77832d7afe90a804ca5fea68ccacb9cba9 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Sat, 25 Mar 2023 19:39:13 +0100 Subject: [PATCH 104/105] Stop running CI on GH-pages --- .teamcity/GitHub.kt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.teamcity/GitHub.kt b/.teamcity/GitHub.kt index 38e771c64674..f4d9fcbcbd45 100644 --- a/.teamcity/GitHub.kt +++ b/.teamcity/GitHub.kt @@ -10,7 +10,10 @@ object GitHub : GitVcsRoot({ name = "https://github.com/kordlib/kord#refs/heads/0.8.x" url = "https://github.com/kordlib/kord" branch = "refs/heads/0.8.x" - branchSpec = "refs/heads/*" + branchSpec = """ + +:refs/heads/* + -:refs/heads/gh-pages + """.trimIndent() authMethod = password { userName = "DRSchlaubi" password = "credentialsJSON:6c4cf2b5-741b-420a-bd80-587c4746b827" From bc4ce7b15b185cb2e01ef5618c32a82d692290b7 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Tue, 11 Apr 2023 23:21:30 +0200 Subject: [PATCH 105/105] MPP migrations --- buildSrc/src/main/kotlin/Compiler.kt | 5 + .../src/main/kotlin/kord-module.gradle.kts | 5 +- .../kord-multiplatform-module.gradle.kts | 1 + .../dev.kord/kord-common/reflect-config.json | 3392 +++++++++++++++++ common/src/commonTest/kotlin/ColorTests.kt | 4 +- core/build.gradle.kts | 5 + .../dev.kord/kord-core/reflect-config.json | 1340 +++++++ .../kotlin/equality/EntityEqualityTest.kt | 7 +- .../kotlin/interaction/CommandTypesTest.kt | 4 +- .../dev.kord/kord-gateway/reflect-config.json | 416 ++ gateway/src/mingwMain/kotlin/main.kt | 17 + .../dev.kord/kord-rest/reflect-config.json | 1479 +++++++ test-kit/src/commonMain/kotlin/Annotations.kt | 7 + test-kit/src/jvmMain/kotlin/Annotations.kt | 8 + test-kit/src/jvmMain/kotlin/IgnoreOnJvm.kt | 5 - 15 files changed, 6678 insertions(+), 17 deletions(-) create mode 100644 common/build/generated/ksp/metadata/commonMain/resources/META-INF/native-image/dev.kord/kord-common/reflect-config.json create mode 100644 core/build/generated/ksp/metadata/commonMain/resources/META-INF/native-image/dev.kord/kord-core/reflect-config.json create mode 100644 gateway/build/generated/ksp/metadata/commonMain/resources/META-INF/native-image/dev.kord/kord-gateway/reflect-config.json create mode 100644 gateway/src/mingwMain/kotlin/main.kt create mode 100644 rest/build/generated/ksp/metadata/commonMain/resources/META-INF/native-image/dev.kord/kord-rest/reflect-config.json create mode 100644 test-kit/src/jvmMain/kotlin/Annotations.kt delete mode 100644 test-kit/src/jvmMain/kotlin/IgnoreOnJvm.kt diff --git a/buildSrc/src/main/kotlin/Compiler.kt b/buildSrc/src/main/kotlin/Compiler.kt index 3d4cc2614d16..529424d20d1f 100644 --- a/buildSrc/src/main/kotlin/Compiler.kt +++ b/buildSrc/src/main/kotlin/Compiler.kt @@ -1,3 +1,4 @@ +import com.google.devtools.ksp.gradle.KspExtension import kotlinx.atomicfu.plugin.gradle.AtomicFUPluginExtension import org.gradle.api.Project import org.gradle.api.artifacts.VersionCatalogsExtension @@ -44,3 +45,7 @@ fun Project.configureAtomicFU() { dependenciesVersion = libs.findVersion("kotlinx-atomicfu").get().requiredVersion } } + +fun Project.configureKsp() = configure { + arg("project", project.name) +} diff --git a/buildSrc/src/main/kotlin/kord-module.gradle.kts b/buildSrc/src/main/kotlin/kord-module.gradle.kts index 10633cdfee74..445581ba54b1 100644 --- a/buildSrc/src/main/kotlin/kord-module.gradle.kts +++ b/buildSrc/src/main/kotlin/kord-module.gradle.kts @@ -35,10 +35,7 @@ kotlin { } } -ksp { - arg("project", project.name) -} - +configureKsp() configureAtomicFU() tasks { diff --git a/buildSrc/src/main/kotlin/kord-multiplatform-module.gradle.kts b/buildSrc/src/main/kotlin/kord-multiplatform-module.gradle.kts index b33a4e65cfc6..f9d707fcaf2d 100644 --- a/buildSrc/src/main/kotlin/kord-multiplatform-module.gradle.kts +++ b/buildSrc/src/main/kotlin/kord-multiplatform-module.gradle.kts @@ -64,6 +64,7 @@ kotlin { } } +configureKsp() configureAtomicFU() tasks { diff --git a/common/build/generated/ksp/metadata/commonMain/resources/META-INF/native-image/dev.kord/kord-common/reflect-config.json b/common/build/generated/ksp/metadata/commonMain/resources/META-INF/native-image/dev.kord/kord-common/reflect-config.json new file mode 100644 index 000000000000..ef2e6a81b2ca --- /dev/null +++ b/common/build/generated/ksp/metadata/commonMain/resources/META-INF/native-image/dev.kord/kord-common/reflect-config.json @@ -0,0 +1,3392 @@ +[ + { + "name": "dev.kord.common.Color", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.Color$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.DiscordBitSet", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.DiscordBitSet$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.Locale", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.Locale$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.ActivityFlags", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.ActivityFlags$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.ActivityType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.ActivityType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.AllRemovedMessageReactions", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.AllRemovedMessageReactions$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.AllowedMentionType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.AllowedMentionType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.AllowedMentions", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.AllowedMentions$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.ApplicationCommandOption", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.ApplicationCommandOption$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.ApplicationCommandOptionType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.ApplicationCommandOptionType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.ApplicationCommandPermissionType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.ApplicationCommandPermissionType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.ApplicationCommandType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.ApplicationCommandType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.ApplicationFlags", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.ApplicationFlags$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.ArchiveDuration", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.ArchiveDuration$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.AuditLogChange", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.AuditLogChange$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + "kotlinx.serialization.KSerializer" + ] + } + ] + }, + { + "name": "dev.kord.common.entity.AuditLogChangeKey", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.AuditLogChangeKey$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + "kotlinx.serialization.KSerializer" + ] + } + ] + }, + { + "name": "dev.kord.common.entity.AuditLogEntryOptionalInfo", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.AuditLogEntryOptionalInfo$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.AuditLogEvent", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.AuditLogEvent$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.AutoModerationActionType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.AutoModerationActionType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.AutoModerationRuleEventType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.AutoModerationRuleEventType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.AutoModerationRuleKeywordPresetType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.AutoModerationRuleKeywordPresetType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.AutoModerationRuleTriggerType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.AutoModerationRuleTriggerType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.BulkDeleteData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.BulkDeleteData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.ButtonStyle", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.ButtonStyle$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.ChannelFlags", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.ChannelFlags$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.ChannelType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.ChannelType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.Choice", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.Choice$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + "kotlinx.serialization.KSerializer" + ] + } + ] + }, + { + "name": "dev.kord.common.entity.CommandArgument", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.CommandArgument$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + "kotlinx.serialization.KSerializer" + ] + } + ] + }, + { + "name": "dev.kord.common.entity.ComponentType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.ComponentType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DefaultMessageNotificationLevel", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DefaultMessageNotificationLevel$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DefaultReaction", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DefaultReaction$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DeletedMessage", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DeletedMessage$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordActivity", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordActivity$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordActivityAssets", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordActivityAssets$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordActivityEmoji", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordActivityEmoji$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordActivityParty", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordActivityParty$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordActivityPartySize", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordActivityPartySize$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordActivitySecrets", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordActivitySecrets$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordActivityTimestamps", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordActivityTimestamps$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAddedGuildMember", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAddedGuildMember$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordApplication", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordApplication$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordApplicationCommand", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordApplicationCommand$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAttachment", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAttachment$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAuditLog", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAuditLog$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAuditLogEntry", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAuditLogEntry$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAuditLogRoleChange", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAuditLogRoleChange$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAutoComplete", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAutoComplete$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + "kotlinx.serialization.KSerializer" + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAutoModerationAction", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAutoModerationAction$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAutoModerationActionMetadata", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAutoModerationActionMetadata$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAutoModerationRule", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAutoModerationRule$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAutoModerationRuleTriggerMetadata", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordAutoModerationRuleTriggerMetadata$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordBotActivity", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordBotActivity$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordChannel", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordChannel$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordChatComponent", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordChatComponent$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordClientStatus", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordClientStatus$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordComponent", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordComponent$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordConnection", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordConnection$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordConnectionVisibility", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordConnectionVisibility$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordDeletedGuildRole", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordDeletedGuildRole$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordEmbed", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordEmbed$Author", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordEmbed$Author$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordEmbed$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordEmbed$Field", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordEmbed$Field$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordEmbed$Footer", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordEmbed$Footer$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordEmbed$Image", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordEmbed$Image$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordEmbed$Provider", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordEmbed$Provider$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordEmbed$Thumbnail", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordEmbed$Thumbnail$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordEmbed$Video", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordEmbed$Video$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordEmoji", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordEmoji$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuild", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuild$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildApplicationCommandPermission", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildApplicationCommandPermission$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildApplicationCommandPermissions", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildApplicationCommandPermissions$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildBan", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildBan$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildIntegrations", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildIntegrations$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildMember", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildMember$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildOnboarding", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildOnboarding$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildPreview", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildPreview$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildRole", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildRole$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildScheduledEvent", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildScheduledEvent$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildWidget", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordGuildWidget$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordIntegration", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordIntegration$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordIntegrationAccount", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordIntegrationAccount$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordIntegrationDelete", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordIntegrationDelete$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordIntegrationsAccount", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordIntegrationsAccount$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordInteraction", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordInteraction$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordInteractionGuildMember", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordInteractionGuildMember$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordInvite", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordInvite$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordInviteWithMetadata", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordInviteWithMetadata$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordMentionedChannel", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordMentionedChannel$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordMessage", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordMessage$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordMessageInteraction", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordMessageInteraction$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordMessageReference", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordMessageReference$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordMessageSticker", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordMessageSticker$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordModal", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordModal$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordNull", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordNull$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordOnboardingPrompt", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordOnboardingPrompt$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordOnboardingPromptOption", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordOnboardingPromptOption$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordOptionallyMemberUser", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordOptionallyMemberUser$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPartialApplication", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPartialApplication$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPartialEmoji", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPartialEmoji$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPartialGuild", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPartialGuild$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPartialIntegration", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPartialIntegration$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPartialInvite", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPartialInvite$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPartialMessage", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPartialMessage$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPartialRole", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPartialRole$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPinsUpdateData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPinsUpdateData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPresenceUpdate", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPresenceUpdate$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPresenceUser", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordPresenceUser$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordRemovedGuildMember", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordRemovedGuildMember$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordRole", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordRole$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordRoleTags", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordRoleTags$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordSelectOption", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordSelectOption$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordShard", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordShard$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordStageInstance", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordStageInstance$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordStickerItem", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordStickerItem$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordStickerPack", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordStickerPack$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordTeam", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordTeam$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordTeamMember", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordTeamMember$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordTemplate", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordTemplate$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordTextInputComponent", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordTextInputComponent$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordThreadMember", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordThreadMember$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordThreadMetadata", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordThreadMetadata$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordTyping", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordTyping$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordUnavailableGuild", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordUnavailableGuild$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordUpdatedEmojis", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordUpdatedEmojis$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordUpdatedGuildMember", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordUpdatedGuildMember$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordUser", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordUser$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordVoiceRegion", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordVoiceRegion$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordVoiceServerUpdateData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordVoiceServerUpdateData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordVoiceState", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordVoiceState$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordWebhook", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordWebhook$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordWebhooksUpdateData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordWebhooksUpdateData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordWelcomeScreen", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordWelcomeScreen$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordWelcomeScreenChannel", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.DiscordWelcomeScreenChannel$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.EmbedType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.EmbedType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.ExplicitContentFilter", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.ExplicitContentFilter$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.ForumLayoutType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.ForumLayoutType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.ForumTag", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.ForumTag$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.GuildFeature", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.GuildFeature$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.GuildMemberFlag", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.GuildMemberFlag$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.GuildMemberFlags", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.GuildMemberFlags$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.GuildScheduledEventEntityMetadata", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.GuildScheduledEventEntityMetadata$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.GuildScheduledEventPrivacyLevel", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.GuildScheduledEventPrivacyLevel$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.GuildScheduledEventStatus", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.GuildScheduledEventStatus$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.InstallParams", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.InstallParams$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.IntegrationApplication", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.IntegrationApplication$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.IntegrationExpireBehavior", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.IntegrationExpireBehavior$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.InteractionCallbackData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.InteractionCallbackData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.InteractionResponseType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.InteractionResponseType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.InteractionType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.InteractionType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.InviteTargetType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.InviteTargetType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.MFALevel", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.MFALevel$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.MessageActivity", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.MessageActivity$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.MessageActivityType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.MessageActivityType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.MessageApplication", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.MessageApplication$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.MessageFlags", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.MessageFlags$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.MessageReactionAddData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.MessageReactionAddData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.MessageReactionRemoveData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.MessageReactionRemoveData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.MessageStickerType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.MessageStickerType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.MessageType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.MessageType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.NsfwLevel", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.NsfwLevel$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.OnboardingPromptType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.OnboardingPromptType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.Option", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.Option$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.Overwrite", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.Overwrite$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.OverwriteType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.OverwriteType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.Permissions", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.Permissions$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.PremiumTier", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.PremiumTier$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.PresenceStatus", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.PresenceStatus$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.Reaction", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.Reaction$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.ResolvedObjects", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.ResolvedObjects$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.RoleSubscription", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.RoleSubscription$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.ScheduledEntityType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.ScheduledEntityType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.Snowflake", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.Snowflake$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.SortOrderType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.SortOrderType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.StageInstancePrivacyLevel", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.StageInstancePrivacyLevel$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.SubCommand", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.SubCommand$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.SystemChannelFlags", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.SystemChannelFlags$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.TeamMembershipState", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.TeamMembershipState$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.TextInputStyle", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.TextInputStyle$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.UserFlags", + "fields": [ + { + "name": "UserFlagsSerializer" + } + ] + }, + { + "name": "dev.kord.common.entity.UserFlags$UserFlagsSerializer", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.UserPremium", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.UserPremium$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.VerificationLevel", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.VerificationLevel$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.VideoQualityMode", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.VideoQualityMode$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.WebhookType", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.WebhookType$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.optional.Optional", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.optional.Optional$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + "kotlinx.serialization.KSerializer" + ] + } + ] + }, + { + "name": "dev.kord.common.entity.optional.OptionalBoolean", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.optional.OptionalBoolean$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.optional.OptionalInt", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.optional.OptionalInt$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.optional.OptionalLong", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.optional.OptionalLong$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.common.entity.optional.OptionalSnowflake", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.common.entity.optional.OptionalSnowflake$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + } +] \ No newline at end of file diff --git a/common/src/commonTest/kotlin/ColorTests.kt b/common/src/commonTest/kotlin/ColorTests.kt index 208c2f21e480..51a8d6a7a14a 100644 --- a/common/src/commonTest/kotlin/ColorTests.kt +++ b/common/src/commonTest/kotlin/ColorTests.kt @@ -1,10 +1,10 @@ package dev.kord.common +import dev.kord.test.IgnoreOnNativeImage import kotlin.js.JsName import kotlin.test.Test import kotlin.test.assertEquals import kotlin.test.assertFailsWith -import org.junit.jupiter.api.condition.DisabledInNativeImage class ColorTests { @Test @@ -30,7 +30,7 @@ class ColorTests { // Currently java.awt.Color doesn't work on GraalVM Native Image // See: https://github.com/oracle/graal/issues/3084 - @DisabledInNativeImage + @IgnoreOnNativeImage @Test @JsName("test3") fun `Color implementation should drop alpha values if given`() { diff --git a/core/build.gradle.kts b/core/build.gradle.kts index 58bca499628c..0cd3b2b2574e 100644 --- a/core/build.gradle.kts +++ b/core/build.gradle.kts @@ -23,6 +23,7 @@ kotlin { api(libs.kord.cache.api) api(libs.kord.cache.map) + compileOnly(projects.kspAnnotations) } } jvmTest { @@ -38,3 +39,7 @@ tasks { enabled = false } } + +dependencies { + kspCommonMainMetadata(projects.kspProcessors) +} diff --git a/core/build/generated/ksp/metadata/commonMain/resources/META-INF/native-image/dev.kord/kord-core/reflect-config.json b/core/build/generated/ksp/metadata/commonMain/resources/META-INF/native-image/dev.kord/kord-core/reflect-config.json new file mode 100644 index 000000000000..3430844b78fc --- /dev/null +++ b/core/build/generated/ksp/metadata/commonMain/resources/META-INF/native-image/dev.kord/kord-core/reflect-config.json @@ -0,0 +1,1340 @@ +[ + { + "name": "dev.kord.core.cache.data.ActivityData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.ActivityData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.ApplicationCommandData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.ApplicationCommandData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.ApplicationCommandGroupData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.ApplicationCommandGroupData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.ApplicationCommandOptionChoiceData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.ApplicationCommandOptionChoiceData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.ApplicationCommandOptionData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.ApplicationCommandOptionData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.ApplicationCommandParameterData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.ApplicationCommandParameterData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.ApplicationCommandSubcommandData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.ApplicationCommandSubcommandData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.ApplicationData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.ApplicationData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.ApplicationInteractionData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.ApplicationInteractionData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.AttachmentData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.AttachmentData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.AutoModerationActionData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.AutoModerationActionData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.AutoModerationActionMetadataData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.AutoModerationActionMetadataData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.AutoModerationRuleData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.AutoModerationRuleData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.AutoModerationRuleTriggerMetadataData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.AutoModerationRuleTriggerMetadataData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.BanData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.BanData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.ChannelData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.ChannelData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.ChatComponentData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.ChatComponentData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.ClientStatusData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.ClientStatusData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.ComponentData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.ComponentData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.EmbedAuthorData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.EmbedAuthorData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.EmbedData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.EmbedData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.EmbedFieldData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.EmbedFieldData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.EmbedFooterData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.EmbedFooterData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.EmbedImageData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.EmbedImageData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.EmbedProviderData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.EmbedProviderData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.EmbedThumbnailData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.EmbedThumbnailData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.EmbedVideoData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.EmbedVideoData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.EmojiData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.EmojiData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.GuildApplicationCommandPermissionsData" + }, + { + "name": "dev.kord.core.cache.data.GuildData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.GuildData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.GuildPreviewData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.GuildPreviewData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.GuildScheduledEventData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.GuildScheduledEventData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.GuildWidgetData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.GuildWidgetData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.IntegrationData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.IntegrationData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.IntegrationsAccountData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.IntegrationsAccountData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.InteractionData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.InteractionData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.InviteCreateData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.InviteCreateData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.InviteData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.InviteData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.InviteDeleteData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.InviteDeleteData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.InviteWithMetadataData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.InviteWithMetadataData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.MemberData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.MemberData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.MembersChunkData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.MembersChunkData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.MessageData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.MessageData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.MessageInteractionData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.MessageInteractionData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.MessageReferenceData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.MessageReferenceData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.OptionData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.OptionData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.PartialApplicationData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.PartialApplicationData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.PartialGuildData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.PartialGuildData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.PermissionOverwriteData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.PermissionOverwriteData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.PresenceData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.PresenceData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.ReactionData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.ReactionData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.ReactionRemoveEmojiData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.ReactionRemoveEmojiData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.RegionData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.RegionData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.RemovedReactionData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.RemovedReactionData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.ResolvedObjectsData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.ResolvedObjectsData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.RoleData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.RoleData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.RoleTagsData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.RoleTagsData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.SelectOptionData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.SelectOptionData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.StageInstanceData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.StageInstanceData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.StickerData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.StickerData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.StickerItemData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.StickerItemData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.StickerPackData" + }, + { + "name": "dev.kord.core.cache.data.TeamData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.TeamData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.TeamMemberData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.TeamMemberData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.TemplateData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.TemplateData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.TextInputComponentData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.TextInputComponentData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.ThreadMemberData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.ThreadMemberData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.ThreadMetadataData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.ThreadMetadataData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.UserData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.UserData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.VoiceStateData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.VoiceStateData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.WebhookData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.WebhookData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.WelcomeScreenChannelData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.WelcomeScreenChannelData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.cache.data.WelcomeScreenData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.cache.data.WelcomeScreenData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.event.automoderation.data.AutoModerationActionExecutionEventData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.event.automoderation.data.AutoModerationActionExecutionEventData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.event.channel.data.ChannelPinsUpdateEventData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.event.channel.data.ChannelPinsUpdateEventData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.core.event.channel.data.TypingStartEventData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.core.event.channel.data.TypingStartEventData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + } +] \ No newline at end of file diff --git a/core/src/jvmTest/kotlin/equality/EntityEqualityTest.kt b/core/src/jvmTest/kotlin/equality/EntityEqualityTest.kt index 7cc1e1417937..3a1f11f09702 100644 --- a/core/src/jvmTest/kotlin/equality/EntityEqualityTest.kt +++ b/core/src/jvmTest/kotlin/equality/EntityEqualityTest.kt @@ -3,14 +3,13 @@ package dev.kord.core.equality import dev.kord.common.entity.Snowflake import dev.kord.core.entity.KordEntity import dev.kord.core.randomId -import org.junit.jupiter.api.condition.DisabledInNativeImage -import kotlin.random.Random -import kotlin.random.nextULong +import dev.kord.test.IgnoreOnNativeImage import kotlin.test.Test import kotlin.test.assertEquals import kotlin.test.assertNotEquals + // MockK currently doesn't work on GraalVM Native Image -@DisabledInNativeImage +@IgnoreOnNativeImage interface EntityEqualityTest { fun newEntity(id: Snowflake): T diff --git a/core/src/jvmTest/kotlin/interaction/CommandTypesTest.kt b/core/src/jvmTest/kotlin/interaction/CommandTypesTest.kt index f2ba43a8f360..dbbf30424355 100644 --- a/core/src/jvmTest/kotlin/interaction/CommandTypesTest.kt +++ b/core/src/jvmTest/kotlin/interaction/CommandTypesTest.kt @@ -8,14 +8,14 @@ import dev.kord.core.entity.interaction.InteractionCommand import dev.kord.core.entity.interaction.RootCommand import dev.kord.core.entity.interaction.SubCommand import dev.kord.core.mockKord +import dev.kord.test.IgnoreOnNativeImage import kotlinx.serialization.json.* import org.junit.jupiter.api.Test -import org.junit.jupiter.api.condition.DisabledInNativeImage import kotlin.test.assertEquals import kotlin.test.assertIs -@DisabledInNativeImage +@IgnoreOnNativeImage class CommandsTypeTests { val arg = buildJsonObject { put("type", ApplicationCommandOptionType.Integer.type) diff --git a/gateway/build/generated/ksp/metadata/commonMain/resources/META-INF/native-image/dev.kord/kord-gateway/reflect-config.json b/gateway/build/generated/ksp/metadata/commonMain/resources/META-INF/native-image/dev.kord/kord-gateway/reflect-config.json new file mode 100644 index 000000000000..e0e8b3998425 --- /dev/null +++ b/gateway/build/generated/ksp/metadata/commonMain/resources/META-INF/native-image/dev.kord/kord-gateway/reflect-config.json @@ -0,0 +1,416 @@ +[ + { + "name": "dev.kord.gateway.DiscordAutoModerationActionExecution", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.DiscordAutoModerationActionExecution$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.DiscordCreatedInvite", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.DiscordCreatedInvite$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.DiscordDeletedInvite", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.DiscordDeletedInvite$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.DiscordPresence", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.DiscordPresence$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.DiscordRemovedEmoji", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.DiscordRemovedEmoji$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.DiscordRemovedReactionEmoji", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.DiscordRemovedReactionEmoji$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.DiscordThreadListSync", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.DiscordThreadListSync$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.DiscordThreadMembersUpdate", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.DiscordThreadMembersUpdate$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.GuildMembersChunkData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.GuildMembersChunkData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.GuildScheduledEventUserMetadata", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.GuildScheduledEventUserMetadata$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.Heartbeat", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.Heartbeat$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.Hello", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.Hello$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.Identify", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.Identify$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.IdentifyProperties", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.IdentifyProperties$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.Intents", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.Intents$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.InvalidSession", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.InvalidSession$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.OpCode", + "fields": [ + { + "name": "OpCodeSerializer" + } + ] + }, + { + "name": "dev.kord.gateway.OpCode$OpCodeSerializer", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.ReadyData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.ReadyData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.RequestGuildMembers", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.RequestGuildMembers$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.Resume", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.Resume$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.Resumed", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.Resumed$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.UpdateStatus", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.UpdateStatus$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.gateway.UpdateVoiceStatus", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.gateway.UpdateVoiceStatus$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + } +] \ No newline at end of file diff --git a/gateway/src/mingwMain/kotlin/main.kt b/gateway/src/mingwMain/kotlin/main.kt new file mode 100644 index 000000000000..a51f5f59186c --- /dev/null +++ b/gateway/src/mingwMain/kotlin/main.kt @@ -0,0 +1,17 @@ +package dev.kord.gateway + +import io.ktor.client.* +import io.ktor.client.engine.winhttp.* +import io.ktor.client.plugins.websocket.* +import io.ktor.websocket.* +import kotlinx.coroutines.runBlocking + +public fun main(): Unit = runBlocking { + val client = HttpClient(WinHttp) { + install(WebSockets) + } + + val session = client.webSocketSession("wss://ws.postman-echo.com/raw") + session.outgoing.send(Frame.Text("test")) + println(session.incoming.receive().data.decodeToString()) +} diff --git a/rest/build/generated/ksp/metadata/commonMain/resources/META-INF/native-image/dev.kord/kord-rest/reflect-config.json b/rest/build/generated/ksp/metadata/commonMain/resources/META-INF/native-image/dev.kord/kord-rest/reflect-config.json new file mode 100644 index 000000000000..342b88ee3245 --- /dev/null +++ b/rest/build/generated/ksp/metadata/commonMain/resources/META-INF/native-image/dev.kord/kord-rest/reflect-config.json @@ -0,0 +1,1479 @@ +[ + { + "name": "dev.kord.rest.json.JsonErrorCode", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.JsonErrorCode$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.ApplicationCommandCreateRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.ApplicationCommandCreateRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.ApplicationCommandModifyRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.ApplicationCommandModifyRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.AutoCompleteResponseCreateRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.AutoCompleteResponseCreateRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + "kotlinx.serialization.KSerializer" + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.AutoModerationRuleCreateRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.AutoModerationRuleCreateRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.AutoModerationRuleModifyRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.AutoModerationRuleModifyRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.BulkDeleteRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.BulkDeleteRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.ChannelFollowRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.ChannelFollowRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.ChannelModifyPatchRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.ChannelModifyPatchRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.ChannelModifyPutRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.ChannelModifyPutRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.ChannelPermissionEditRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.ChannelPermissionEditRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.ChannelPositionSwapRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.ChannelPositionSwapRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.CurrentUserModifyRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.CurrentUserModifyRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.CurrentUserNicknameModifyRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.CurrentUserNicknameModifyRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.CurrentVoiceStateModifyRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.CurrentVoiceStateModifyRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.DMCreateRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.DMCreateRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.EmbedAuthorRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.EmbedAuthorRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.EmbedFieldRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.EmbedFieldRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.EmbedFooterRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.EmbedFooterRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.EmbedImageRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.EmbedImageRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.EmbedRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.EmbedRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.EmbedThumbnailRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.EmbedThumbnailRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.EmojiCreateRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.EmojiCreateRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.EmojiModifyRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.EmojiModifyRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.FollowupMessageCreateRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.FollowupMessageCreateRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.FollowupMessageModifyRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.FollowupMessageModifyRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.ForumTagRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.ForumTagRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.ForumThreadMessageRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.ForumThreadMessageRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.GroupDMCreateRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.GroupDMCreateRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.GuildBanCreateRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.GuildBanCreateRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.GuildChannelCreateRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.GuildChannelCreateRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.GuildChannelPositionModifyRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.GuildChannelPositionModifyRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.GuildCreateRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.GuildCreateRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.GuildFromTemplateCreateRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.GuildFromTemplateCreateRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.GuildIntegrationCreateRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.GuildIntegrationCreateRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.GuildIntegrationModifyRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.GuildIntegrationModifyRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.GuildMFALevelModifyRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.GuildMFALevelModifyRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.GuildMemberAddRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.GuildMemberAddRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.GuildMemberModifyRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.GuildMemberModifyRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.GuildModifyRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.GuildModifyRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.GuildRoleCreateRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.GuildRoleCreateRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.GuildRoleModifyRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.GuildRoleModifyRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.GuildRolePositionModifyRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.GuildRolePositionModifyRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.GuildRolePositionModifyRequest$RolePosition", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.GuildRolePositionModifyRequest$RolePosition$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.GuildScheduledEventCreateRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.GuildScheduledEventCreateRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.GuildScheduledEventUsersResponse", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.GuildScheduledEventUsersResponse$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.GuildStickerCreateRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.GuildStickerCreateRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.GuildStickerModifyRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.GuildStickerModifyRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.GuildTemplateCreateRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.GuildTemplateCreateRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.GuildTemplateModifyRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.GuildTemplateModifyRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.GuildWelcomeScreenModifyRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.GuildWelcomeScreenModifyRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.GuildWidgetModifyRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.GuildWidgetModifyRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.InteractionApplicationCommandCallbackData", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.InteractionApplicationCommandCallbackData$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.InteractionResponseCreateRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.InteractionResponseCreateRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.InteractionResponseModifyRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.InteractionResponseModifyRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.InviteCreateRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.InviteCreateRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.MessageCreateRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.MessageCreateRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.MessageEditPatchRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.MessageEditPatchRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.ModalResponseCreateRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.ModalResponseCreateRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.ScheduledEventModifyRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.ScheduledEventModifyRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.StageInstanceCreateRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.StageInstanceCreateRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.StageInstanceModifyRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.StageInstanceModifyRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.StartThreadRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.StartThreadRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.UserAddDMRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.UserAddDMRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.VoiceStateModifyRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.VoiceStateModifyRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.WebhookCreateRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.WebhookCreateRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.WebhookEditMessageRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.WebhookEditMessageRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.WebhookExecuteRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.WebhookExecuteRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.request.WebhookModifyRequest", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.request.WebhookModifyRequest$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.response.BanResponse", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.response.BanResponse$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.response.BotGatewayResponse", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.response.BotGatewayResponse$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.response.Connection", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.response.Connection$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.response.CurrentUserNicknameModifyResponse", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.response.CurrentUserNicknameModifyResponse$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.response.DiscordErrorResponse", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.response.DiscordErrorResponse$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.response.FollowedChannelResponse", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.response.FollowedChannelResponse$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.response.GatewayResponse", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.response.GatewayResponse$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.response.GetPruneResponse", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.response.GetPruneResponse$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.response.GuildMFALevelModifyResponse", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.response.GuildMFALevelModifyResponse$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.response.ListThreadsResponse", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.response.ListThreadsResponse$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.response.PartialChannelResponse", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.response.PartialChannelResponse$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.response.PruneResponse", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.response.PruneResponse$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + }, + { + "name": "dev.kord.rest.json.response.SessionStartLimitResponse", + "fields": [ + { + "name": "Companion" + } + ] + }, + { + "name": "dev.kord.rest.json.response.SessionStartLimitResponse$Companion", + "methods": [ + { + "name": "serializer", + "parameterTypes": [ + ] + } + ] + } +] \ No newline at end of file diff --git a/test-kit/src/commonMain/kotlin/Annotations.kt b/test-kit/src/commonMain/kotlin/Annotations.kt index bcc93e2653d5..4474ef8420c1 100644 --- a/test-kit/src/commonMain/kotlin/Annotations.kt +++ b/test-kit/src/commonMain/kotlin/Annotations.kt @@ -14,3 +14,10 @@ expect annotation class IgnoreOnJs() @Target(CLASS, FUNCTION) @OptionalExpectation expect annotation class IgnoreOnJvm() + +/** + * Ignores this tests in GraalVM native images. + */ +@Target(CLASS, FUNCTION) +@OptionalExpectation +expect annotation class IgnoreOnNativeImage() diff --git a/test-kit/src/jvmMain/kotlin/Annotations.kt b/test-kit/src/jvmMain/kotlin/Annotations.kt new file mode 100644 index 000000000000..022a86c14e10 --- /dev/null +++ b/test-kit/src/jvmMain/kotlin/Annotations.kt @@ -0,0 +1,8 @@ +package dev.kord.test + +import org.junit.jupiter.api.Disabled +import org.junit.jupiter.api.condition.DisabledInNativeImage + +actual typealias IgnoreOnJvm = Disabled + +actual typealias IgnoreOnNativeImage = DisabledInNativeImage diff --git a/test-kit/src/jvmMain/kotlin/IgnoreOnJvm.kt b/test-kit/src/jvmMain/kotlin/IgnoreOnJvm.kt deleted file mode 100644 index b324faa889ff..000000000000 --- a/test-kit/src/jvmMain/kotlin/IgnoreOnJvm.kt +++ /dev/null @@ -1,5 +0,0 @@ -package dev.kord.test - -import org.junit.jupiter.api.Disabled - -actual typealias IgnoreOnJvm = Disabled