diff --git a/build.gradle.kts b/build.gradle.kts index 6330a4b..03b64a2 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -73,7 +73,6 @@ allprojects { license { rule(file("${rootProject.projectDir}/codeformat/HEADER")) - include("**/*.kt") } kotlin { diff --git a/codeformat/HEADER b/codeformat/HEADER index f833f5b..8f0b04e 100644 --- a/codeformat/HEADER +++ b/codeformat/HEADER @@ -1,4 +1,4 @@ -Copyright ${YEAR} The Quilt Project +Copyright ${CREATION_YEAR} The Quilt Project Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -10,6 +10,4 @@ Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and -limitations under the License. - -;;year_selection: file \ No newline at end of file +limitations under the License. \ No newline at end of file diff --git a/core/src/main/kotlin/org/quiltmc/qkl/core/adapter/KotlinAdapter.kt b/core/src/main/kotlin/org/quiltmc/qkl/core/adapter/KotlinAdapter.kt index e4a2248..d377a93 100644 --- a/core/src/main/kotlin/org/quiltmc/qkl/core/adapter/KotlinAdapter.kt +++ b/core/src/main/kotlin/org/quiltmc/qkl/core/adapter/KotlinAdapter.kt @@ -116,8 +116,12 @@ public open class KotlinAdapter : LanguageAdapter { return Proxy.newProxyInstance( mod.classLoader, arrayOf(type) - ) { _, _, _ -> - methods[0].call(instance) + ) { _, _, params -> + if (params != null) { + methods[0].call(instance, *params) + } else { + methods[0].call(instance) + } } as T } else -> { diff --git a/core/src/main/resources/quilt.mod.json b/core/src/main/resources/quilt.mod.json index 80b3aaf..09cfe47 100644 --- a/core/src/main/resources/quilt.mod.json +++ b/core/src/main/resources/quilt.mod.json @@ -12,7 +12,7 @@ }, "contact": { "homepage": "https://quiltmc.org", - "issues": "https://github.com/quiltmc/quilt-kotlin-libaries/issues", + "issues": "https://github.com/quiltmc/quilt-kotlin-libraries/issues", "sources": "https://github.com/quiltmc/quilt-kotlin-libraries" }, "license": "Apache-2.0", @@ -22,7 +22,7 @@ "depends": [ { "id": "quilt_loader", - "versions": ">=0.18.1" + "versions": ">=0.23.0" } ], "provides": [ diff --git a/gradle.properties b/gradle.properties index e5ccc2e..4339e36 100644 --- a/gradle.properties +++ b/gradle.properties @@ -5,5 +5,5 @@ org.gradle.parallel=true kotlin.incremental=true kotlin.code.style=official -version=2.1.3 -flkVersion=1.10.10 +version=3.0.0 +flkVersion=1.10.17 diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 1ab0657..cde78bf 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,15 +1,15 @@ [versions] -atomic = "0.22.0" +atomic = "0.23.1" coroutines = "1.7.3" -datetime = "0.4.1" -dokka = "1.9.0" -kotlin = "1.9.10" -minecraft = "1.20.1" -qsl = "6.1.1+1.20.1" -quilt_loader = "0.20.2" -quilt_mappings = "1.20.1+build.23" -serialization = "1.6.0" -serialization_plugin = "1.9.10" # usually same as kotlin but can lag behind +datetime = "0.5.0" +dokka = "1.9.10" +kotlin = "1.9.22" +minecraft = "1.20.2" +qsl = "7.0.0-alpha.9+1.20.2" +quilt_loader = "0.23.0" +quilt_mappings = "1.20.2+build.3" +serialization = "1.6.2" +serialization_plugin = "1.9.22" # usually same as kotlin but can lag behind binary_compat_plugin = "0.13.2" [libraries] @@ -28,13 +28,13 @@ serialization_core = { module = "org.jetbrains.kotlinx:kotlinx-serialization-cor serialization_json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json-jvm", version.ref = "serialization" } [plugins] -detekt = { id = "io.gitlab.arturbosch.detekt", version = "1.23.1" } +detekt = { id = "io.gitlab.arturbosch.detekt", version = "1.23.4" } dokka = { id = "org.jetbrains.dokka", version.ref = "dokka" } git_hooks = { id = "com.github.jakemarsden.git-hooks", version = "0.0.2" } kotlin = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" } -licenser = { id = "org.quiltmc.gradle.licenser", version = "2.0.1" } +licenser = { id = "dev.yumi.gradle.licenser", version = "1.1.1" } quilt_loom = { id = "org.quiltmc.loom", version = "1.4.1" } serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "serialization_plugin" } binary_compatibility = { id = "org.jetbrains.kotlinx.binary-compatibility-validator", version.ref = "binary_compat_plugin" } -minotaur = { id = "com.modrinth.minotaur", version = "2.8.2" } +minotaur = { id = "com.modrinth.minotaur", version = "2.8.7" } cursegradle = { id = "com.matthewprenger.cursegradle", version = "1.4.0" } diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 7f93135..d64cd49 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 864d6c4..4baf5a1 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,7 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionSha256Sum=591855b517fc635b9e04de1d05d5e76ada3f89f5fc76f87978d1b245b4f69225 -distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-bin.zip +distributionSha256Sum=9631d53cf3e74bfa726893aee1f8994fee4e060c401335946dba2156f440f24c +distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/gradlew b/gradlew index 0adc8e1..1aa94a4 100755 --- a/gradlew +++ b/gradlew @@ -145,7 +145,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then case $MAX_FD in #( max*) # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC3045 + # shellcheck disable=SC2039,SC3045 MAX_FD=$( ulimit -H -n ) || warn "Could not query maximum file descriptor limit" esac @@ -153,7 +153,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then '' | soft) :;; #( *) # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC3045 + # shellcheck disable=SC2039,SC3045 ulimit -n "$MAX_FD" || warn "Could not set maximum file descriptor limit to $MAX_FD" esac @@ -202,11 +202,11 @@ fi # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' -# Collect all arguments for the java command; -# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of -# shell script including quotes and variable substitutions, so put them in -# double quotes to make sure that they get re-expanded; and -# * put everything else in single quotes, so that it's not re-expanded. +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ diff --git a/gradlew.bat b/gradlew.bat index 93e3f59..25da30d 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -43,11 +43,11 @@ set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 if %ERRORLEVEL% equ 0 goto execute -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail @@ -57,11 +57,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe if exist "%JAVA_EXE%" goto execute -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail diff --git a/library/api/library.api b/library/api/library.api index 5574cb3..84a6d81 100644 --- a/library/api/library.api +++ b/library/api/library.api @@ -110,10 +110,10 @@ public final class org/quiltmc/qkl/library/brigadier/DefaultArgumentDescriptor : public final class org/quiltmc/qkl/library/brigadier/argument/ArgumentsKt { public static final fun absoluteRotationArg (Lorg/quiltmc/qkl/library/brigadier/ArgumentReader;)Lnet/minecraft/util/math/Vec2f; public static final fun angle (Ljava/lang/String;)Lorg/quiltmc/qkl/library/brigadier/ArgumentConstructor; - public static final fun asAdvancement (Lorg/quiltmc/qkl/library/brigadier/ArgumentReader;)Lnet/minecraft/advancement/Advancement; + public static final fun asAdvancement (Lorg/quiltmc/qkl/library/brigadier/ArgumentReader;)Lnet/minecraft/unmapped/C_unoypvme; public static final fun asItemModifier (Lorg/quiltmc/qkl/library/brigadier/ArgumentReader;)Lnet/minecraft/loot/function/LootFunction; public static final fun asPredicate (Lorg/quiltmc/qkl/library/brigadier/ArgumentReader;)Lnet/minecraft/loot/condition/LootCondition; - public static final fun asRecipe (Lorg/quiltmc/qkl/library/brigadier/ArgumentReader;)Lnet/minecraft/recipe/Recipe; + public static final fun asRecipe (Lorg/quiltmc/qkl/library/brigadier/ArgumentReader;)Lnet/minecraft/recipe/RecipeHolder; public static final fun blockPos (Ljava/lang/String;)Lorg/quiltmc/qkl/library/brigadier/ArgumentConstructor; public static final fun blockPredicate (Ljava/lang/String;Lnet/minecraft/command/CommandBuildContext;)Lorg/quiltmc/qkl/library/brigadier/ArgumentConstructor; public static final fun blockState (Ljava/lang/String;Lnet/minecraft/command/CommandBuildContext;)Lorg/quiltmc/qkl/library/brigadier/ArgumentConstructor; @@ -213,7 +213,7 @@ public final class org/quiltmc/qkl/library/brigadier/argument/ArgumentsKt { public static final fun valueRotationArg (Lorg/quiltmc/qkl/library/brigadier/ArgumentReader;)Lnet/minecraft/command/argument/PosArgument; public static final fun valueScoreboardCriterionArg (Lorg/quiltmc/qkl/library/brigadier/ArgumentReader;)Lnet/minecraft/scoreboard/ScoreboardCriterion; public static final fun valueScoreboardObjectiveArg (Lorg/quiltmc/qkl/library/brigadier/ArgumentReader;)Lnet/minecraft/scoreboard/ScoreboardObjective; - public static final fun valueScoreboardSlotArg (Lorg/quiltmc/qkl/library/brigadier/ArgumentReader;)I + public static final fun valueScoreboardSlotArg (Lorg/quiltmc/qkl/library/brigadier/ArgumentReader;)Lnet/minecraft/scoreboard/ScoreboardDisplaySlot; public static final fun valueSingleEntityArg (Lorg/quiltmc/qkl/library/brigadier/ArgumentReader;)Lnet/minecraft/entity/Entity; public static final fun valueSingleScoreHolderArg (Lorg/quiltmc/qkl/library/brigadier/ArgumentReader;)Ljava/lang/String; public static final fun valueStatusEffectRegistryArg (Lorg/quiltmc/qkl/library/brigadier/ArgumentReader;)Lnet/minecraft/registry/Holder$Reference; @@ -318,8 +318,13 @@ public final class org/quiltmc/qkl/library/client/lifecycle/ClientEventsKt { } public final class org/quiltmc/qkl/library/client/networking/ClientEventsKt { + public static final fun onClientConfigurationChannelRegister (Lorg/quiltmc/qkl/library/EventRegistration;Lkotlin/jvm/functions/Function4;)V + public static final fun onClientConfigurationChannelUnregister (Lorg/quiltmc/qkl/library/EventRegistration;Lkotlin/jvm/functions/Function4;)V public static final fun onClientPlayChannelRegister (Lorg/quiltmc/qkl/library/EventRegistration;Lkotlin/jvm/functions/Function4;)V public static final fun onClientPlayChannelUnregister (Lorg/quiltmc/qkl/library/EventRegistration;Lkotlin/jvm/functions/Function4;)V + public static final fun onConfigurationDisconnect (Lorg/quiltmc/qkl/library/EventRegistration;Lkotlin/jvm/functions/Function2;)V + public static final fun onConfigurationInit (Lorg/quiltmc/qkl/library/EventRegistration;Lkotlin/jvm/functions/Function2;)V + public static final fun onConfigurationReady (Lorg/quiltmc/qkl/library/EventRegistration;Lkotlin/jvm/functions/Function3;)V public static final fun onLoginDisconnect (Lorg/quiltmc/qkl/library/EventRegistration;Lkotlin/jvm/functions/Function2;)V public static final fun onLoginInit (Lorg/quiltmc/qkl/library/EventRegistration;Lkotlin/jvm/functions/Function2;)V public static final fun onLoginQueryStart (Lorg/quiltmc/qkl/library/EventRegistration;Lkotlin/jvm/functions/Function2;)V @@ -329,8 +334,8 @@ public final class org/quiltmc/qkl/library/client/networking/ClientEventsKt { } public final class org/quiltmc/qkl/library/client/resource/ResourceLoaderEventsKt { - public static final fun onResourcePackReloadFinish (Lkotlin/jvm/functions/Function1;)V - public static final fun onResourcePackReloadStart (Lkotlin/jvm/functions/Function1;)V + public static final fun onPackReloadFinish (Lkotlin/jvm/functions/Function1;)V + public static final fun onPackReloadStart (Lkotlin/jvm/functions/Function1;)V } public final class org/quiltmc/qkl/library/client/screen/ScreenEventsKt { @@ -785,6 +790,12 @@ public final class org/quiltmc/qkl/library/networking/PlayerLookupsKt { public final class org/quiltmc/qkl/library/networking/ServerEventsKt { public static final fun afterEntityTrackingStart (Lorg/quiltmc/qkl/library/EventRegistration;Lkotlin/jvm/functions/Function2;)V public static final fun beforeEntityTrackingStart (Lorg/quiltmc/qkl/library/EventRegistration;Lkotlin/jvm/functions/Function2;)V + public static final fun onConfigurationAddTasks (Lorg/quiltmc/qkl/library/EventRegistration;Lkotlin/jvm/functions/Function2;)V + public static final fun onConfigurationChannelRegister (Lorg/quiltmc/qkl/library/EventRegistration;Lkotlin/jvm/functions/Function4;)V + public static final fun onConfigurationChannelUnregister (Lorg/quiltmc/qkl/library/EventRegistration;Lkotlin/jvm/functions/Function4;)V + public static final fun onConfigurationDisconnect (Lorg/quiltmc/qkl/library/EventRegistration;Lkotlin/jvm/functions/Function2;)V + public static final fun onConfigurationInit (Lorg/quiltmc/qkl/library/EventRegistration;Lkotlin/jvm/functions/Function2;)V + public static final fun onConfigurationReady (Lorg/quiltmc/qkl/library/EventRegistration;Lkotlin/jvm/functions/Function3;)V public static final fun onEntityTrackingStop (Lorg/quiltmc/qkl/library/EventRegistration;Lkotlin/jvm/functions/Function2;)V public static final fun onLoginDisconnect (Lorg/quiltmc/qkl/library/EventRegistration;Lkotlin/jvm/functions/Function2;)V public static final fun onLoginInit (Lorg/quiltmc/qkl/library/EventRegistration;Lkotlin/jvm/functions/Function2;)V @@ -804,12 +815,12 @@ public final class org/quiltmc/qkl/library/recipe/RecipeEventsKt { public final class org/quiltmc/qkl/library/recipe/RecipeExtensionsKt { public static final fun coerceIngredient (Ljava/lang/Object;)Lnet/minecraft/recipe/Ingredient; - public static final fun foodCookingRecipe (Lnet/minecraft/util/Identifier;Ljava/lang/String;Ljava/lang/Object;Lnet/minecraft/item/ItemStack;Lnet/minecraft/recipe/CookingCategory;FIII)[Lnet/minecraft/recipe/AbstractCookingRecipe; - public static synthetic fun foodCookingRecipe$default (Lnet/minecraft/util/Identifier;Ljava/lang/String;Ljava/lang/Object;Lnet/minecraft/item/ItemStack;Lnet/minecraft/recipe/CookingCategory;FIIIILjava/lang/Object;)[Lnet/minecraft/recipe/AbstractCookingRecipe; - public static final fun registerStaticRecipe (Lnet/minecraft/recipe/Recipe;)Lnet/minecraft/recipe/Recipe; - public static final fun registerStaticRecipes ([Lnet/minecraft/recipe/Recipe;)V - public static final fun shapedRecipe (Lnet/minecraft/util/Identifier;Ljava/lang/String;Ljava/lang/String;Lnet/minecraft/item/ItemStack;[Lkotlin/Pair;)Lnet/minecraft/recipe/ShapedRecipe; - public static final fun shapelessRecipe (Lnet/minecraft/util/Identifier;Ljava/lang/String;Lnet/minecraft/item/ItemStack;[Ljava/lang/Object;)Lnet/minecraft/recipe/ShapelessRecipe; + public static final fun foodCookingRecipe (Lnet/minecraft/util/Identifier;Ljava/lang/String;Ljava/lang/Object;Lnet/minecraft/item/ItemStack;Lnet/minecraft/recipe/CookingCategory;FIII)[Lnet/minecraft/recipe/RecipeHolder; + public static synthetic fun foodCookingRecipe$default (Lnet/minecraft/util/Identifier;Ljava/lang/String;Ljava/lang/Object;Lnet/minecraft/item/ItemStack;Lnet/minecraft/recipe/CookingCategory;FIIIILjava/lang/Object;)[Lnet/minecraft/recipe/RecipeHolder; + public static final fun registerStaticRecipe (Lnet/minecraft/recipe/RecipeHolder;)Lnet/minecraft/recipe/RecipeHolder; + public static final fun registerStaticRecipes ([Lnet/minecraft/recipe/RecipeHolder;)V + public static final fun shapedRecipe (Lnet/minecraft/util/Identifier;Ljava/lang/String;Ljava/lang/String;Lnet/minecraft/item/ItemStack;[Lkotlin/Pair;)Lnet/minecraft/recipe/RecipeHolder; + public static final fun shapelessRecipe (Lnet/minecraft/util/Identifier;Ljava/lang/String;Lnet/minecraft/item/ItemStack;[Ljava/lang/Object;)Lnet/minecraft/recipe/RecipeHolder; } public final class org/quiltmc/qkl/library/registry/RegistryAction { @@ -943,12 +954,12 @@ public synthetic class org/quiltmc/qkl/library/serialization/annotation/CodecSer public final synthetic fun useInlineWrapper ()Lorg/quiltmc/qsl/base/api/util/TriState; } -public abstract interface annotation class org/quiltmc/qkl/library/serialization/annotation/CodecSerializable$Polymorphic : java/lang/annotation/Annotation { +public abstract interface annotation class org/quiltmc/qkl/library/serialization/annotation/PolymorphicCodecSerializable : java/lang/annotation/Annotation { public abstract fun classDiscriminator ()Ljava/lang/String; public abstract fun flatten ()Lorg/quiltmc/qsl/base/api/util/TriState; } -public synthetic class org/quiltmc/qkl/library/serialization/annotation/CodecSerializable$Polymorphic$Impl : org/quiltmc/qkl/library/serialization/annotation/CodecSerializable$Polymorphic { +public synthetic class org/quiltmc/qkl/library/serialization/annotation/PolymorphicCodecSerializable$Impl : org/quiltmc/qkl/library/serialization/annotation/PolymorphicCodecSerializable { public fun (Ljava/lang/String;Lorg/quiltmc/qsl/base/api/util/TriState;)V public synthetic fun (Ljava/lang/String;Lorg/quiltmc/qsl/base/api/util/TriState;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public final synthetic fun classDiscriminator ()Ljava/lang/String; diff --git a/library/src/main/java/org/quiltmc/qkl/library/mixin/serialization/ForwardingDynamicOpsAccessor.java b/library/src/main/java/org/quiltmc/qkl/library/mixin/serialization/ForwardingDynamicOpsAccessor.java index 1cd66fb..87978e3 100644 --- a/library/src/main/java/org/quiltmc/qkl/library/mixin/serialization/ForwardingDynamicOpsAccessor.java +++ b/library/src/main/java/org/quiltmc/qkl/library/mixin/serialization/ForwardingDynamicOpsAccessor.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 QuiltMC + * Copyright 2022 The Quilt Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/library/src/main/java/org/quiltmc/qkl/library/mixin/text/StyleAccessor.java b/library/src/main/java/org/quiltmc/qkl/library/mixin/text/StyleAccessor.java index 40538fe..4881dad 100644 --- a/library/src/main/java/org/quiltmc/qkl/library/mixin/text/StyleAccessor.java +++ b/library/src/main/java/org/quiltmc/qkl/library/mixin/text/StyleAccessor.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 QuiltMC + * Copyright 2022 The Quilt Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/library/src/main/kotlin/org/quiltmc/qkl/library/brigadier/argument/IdentifierArguments.kt b/library/src/main/kotlin/org/quiltmc/qkl/library/brigadier/argument/IdentifierArguments.kt index 627d02b..89f6577 100644 --- a/library/src/main/kotlin/org/quiltmc/qkl/library/brigadier/argument/IdentifierArguments.kt +++ b/library/src/main/kotlin/org/quiltmc/qkl/library/brigadier/argument/IdentifierArguments.kt @@ -1,5 +1,5 @@ /* - * Copyright 2023 The Quilt Project + * Copyright 2024 The Quilt Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,15 +23,17 @@ package org.quiltmc.qkl.library.brigadier.argument -import net.minecraft.advancement.Advancement import net.minecraft.command.argument.IdentifierArgumentType import net.minecraft.loot.condition.LootCondition import net.minecraft.loot.function.LootFunction -import net.minecraft.recipe.Recipe +import net.minecraft.recipe.RecipeHolder import net.minecraft.server.command.ServerCommandSource +import net.minecraft.unmapped.C_unoypvme import net.minecraft.util.Identifier import org.quiltmc.qkl.library.brigadier.* +public typealias AdvancementHolder = C_unoypvme // Mapped in later versions, should be removed. + /** * Reads the [Identifier] value from the * argument in the receiver [ArgumentReader]. @@ -49,7 +51,7 @@ public fun DefaultArgumentReader.value(): Identifier { /** * Reads the [Identifier] value from the * argument in the receiver [ArgumentReader] - * as an [Advancement]. + * as an [AdvancementHolder]. * * @see IdentifierArgumentType.getAdvancementArgument * @@ -61,7 +63,7 @@ public fun ArgumentReader< DefaultArgumentDescriptor< IdentifierArgumentType > - >.asAdvancement(): Advancement { + >.asAdvancement(): AdvancementHolder { return IdentifierArgumentType.getAdvancementArgument(context, name) } @@ -106,7 +108,7 @@ public fun ArgumentReader< /** * Reads the [Identifier] value from the * argument in the receiver [ArgumentReader] - * as a [Recipe]. + * as a [RecipeHolder]. * * @see IdentifierArgumentType.getRecipeArgument * @@ -118,7 +120,7 @@ public fun ArgumentReader< DefaultArgumentDescriptor< IdentifierArgumentType > - >.asRecipe(): Recipe<*> { + >.asRecipe(): RecipeHolder<*> { return IdentifierArgumentType.getRecipeArgument(context, name) } diff --git a/library/src/main/kotlin/org/quiltmc/qkl/library/brigadier/argument/ScoreboardArguments.kt b/library/src/main/kotlin/org/quiltmc/qkl/library/brigadier/argument/ScoreboardArguments.kt index 8f84ecc..337755c 100644 --- a/library/src/main/kotlin/org/quiltmc/qkl/library/brigadier/argument/ScoreboardArguments.kt +++ b/library/src/main/kotlin/org/quiltmc/qkl/library/brigadier/argument/ScoreboardArguments.kt @@ -1,5 +1,5 @@ /* - * Copyright 2023 The Quilt Project + * Copyright 2024 The Quilt Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -24,6 +24,7 @@ package org.quiltmc.qkl.library.brigadier.argument import net.minecraft.command.argument.* import net.minecraft.scoreboard.ScoreboardCriterion +import net.minecraft.scoreboard.ScoreboardDisplaySlot import net.minecraft.scoreboard.ScoreboardObjective import net.minecraft.server.command.ServerCommandSource import org.quiltmc.qkl.library.brigadier.* @@ -120,7 +121,7 @@ public fun ArgumentReader< } /** - * Reads the integer slot value from the argument in + * Reads the [ScoreboardDisplaySlot] value from the argument in * the receiver [ArgumentReader]. * * @see ScoreboardSlotArgumentType.getScoreboardSlot @@ -129,7 +130,7 @@ public fun ArgumentReader< */ @JvmName("valueScoreboardSlotArg") @BrigadierDsl -public fun DefaultArgumentReader.value(): Int { +public fun DefaultArgumentReader.value(): ScoreboardDisplaySlot { return ScoreboardSlotArgumentType.getScoreboardSlot(context.assumeSourceNotUsed(), name) } diff --git a/library/src/main/kotlin/org/quiltmc/qkl/library/client/networking/ClientEvents.kt b/library/src/main/kotlin/org/quiltmc/qkl/library/client/networking/ClientEvents.kt index 4c9f66e..5ab7d04 100644 --- a/library/src/main/kotlin/org/quiltmc/qkl/library/client/networking/ClientEvents.kt +++ b/library/src/main/kotlin/org/quiltmc/qkl/library/client/networking/ClientEvents.kt @@ -1,5 +1,5 @@ /* - * Copyright 2023 The Quilt Project + * Copyright 2024 The Quilt Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,13 +20,17 @@ package org.quiltmc.qkl.library.client.networking import net.minecraft.client.MinecraftClient +import net.minecraft.client.network.ClientConfigurationNetworkHandler import net.minecraft.client.network.ClientLoginNetworkHandler import net.minecraft.client.network.ClientPlayNetworkHandler +import net.minecraft.network.packet.payload.CustomPayload import net.minecraft.util.Identifier import org.quiltmc.loader.api.minecraft.ClientOnly import org.quiltmc.qkl.library.EventRegistration import org.quiltmc.qsl.networking.api.PacketSender +import org.quiltmc.qsl.networking.api.client.C2SConfigurationChannelEvents import org.quiltmc.qsl.networking.api.client.C2SPlayChannelEvents +import org.quiltmc.qsl.networking.api.client.ClientConfigurationConnectionEvents import org.quiltmc.qsl.networking.api.client.ClientLoginConnectionEvents import org.quiltmc.qsl.networking.api.client.ClientPlayConnectionEvents @@ -67,13 +71,77 @@ public fun EventRegistration.onLoginDisconnect(callback: ClientLoginCallback) { } //endregion +//region: Client configuration events +public typealias ClientConfigurationCallback = ClientConfigurationNetworkHandler.( + client: MinecraftClient +) -> Unit + +public typealias ClientConfigurationReadyCallback = ClientConfigurationNetworkHandler.( + sender: PacketSender, + client: MinecraftClient +) -> Unit + +/** + * @see ClientConfigurationConnectionEvents.INIT + * + * @author Ellie Semele + */ +public fun EventRegistration.onConfigurationInit(callback: ClientConfigurationCallback) { + ClientConfigurationConnectionEvents.INIT.register(ClientConfigurationConnectionEvents.Init(callback)) +} + +/** + * @see ClientConfigurationConnectionEvents.READY + * + * @author Ellie Semele + */ +public fun EventRegistration.onConfigurationReady(callback: ClientConfigurationReadyCallback) { + ClientConfigurationConnectionEvents.READY.register(ClientConfigurationConnectionEvents.Ready(callback)) +} + +/** + * @see ClientConfigurationConnectionEvents.DISCONNECT + * + * @author Ellie Semele + */ +public fun EventRegistration.onConfigurationDisconnect(callback: ClientConfigurationCallback) { + ClientConfigurationConnectionEvents.DISCONNECT.register(ClientConfigurationConnectionEvents.Disconnect(callback)) +} +//endregion + +//region: C2S configuration channel events +public typealias C2SConfigurationCallback = ClientConfigurationNetworkHandler.( + sender: PacketSender, + client: MinecraftClient, + channels: List +) -> Unit + +/** + * @see C2SConfigurationChannelEvents.REGISTER + * + * @author Ellie Semele + */ +public fun EventRegistration.onClientConfigurationChannelRegister(callback: C2SConfigurationCallback) { + C2SConfigurationChannelEvents.REGISTER.register(C2SConfigurationChannelEvents.Register(callback)) +} + +/** + * @see C2SConfigurationChannelEvents.UNREGISTER + * + * @author Ellie Semele + */ +public fun EventRegistration.onClientConfigurationChannelUnregister(callback: C2SConfigurationCallback) { + C2SConfigurationChannelEvents.UNREGISTER.register(C2SConfigurationChannelEvents.Unregister(callback)) +} +//endregion + //region: Client play connection events public typealias ClientPlayCallback = ClientPlayNetworkHandler.( client: MinecraftClient ) -> Unit public typealias ClientPlayJoinCallback = ClientPlayNetworkHandler.( - sender: PacketSender, + sender: PacketSender, client: MinecraftClient ) -> Unit @@ -109,7 +177,7 @@ public fun EventRegistration.onPlayConnectionDisconnect(callback: ClientPlayCall //region: C2S play channel events public typealias C2SPlayCallback = ClientPlayNetworkHandler.( - sender: PacketSender, + sender: PacketSender, client: MinecraftClient, channels: List ) -> Unit diff --git a/library/src/main/kotlin/org/quiltmc/qkl/library/client/resource/ResourceLoaderEvents.kt b/library/src/main/kotlin/org/quiltmc/qkl/library/client/resource/ResourceLoaderEvents.kt index 3617a4d..3538ad9 100644 --- a/library/src/main/kotlin/org/quiltmc/qkl/library/client/resource/ResourceLoaderEvents.kt +++ b/library/src/main/kotlin/org/quiltmc/qkl/library/client/resource/ResourceLoaderEvents.kt @@ -1,5 +1,5 @@ /* - * Copyright 2023 The Quilt Project + * Copyright 2024 The Quilt Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,33 +21,33 @@ package org.quiltmc.qkl.library.client.resource import org.quiltmc.loader.api.minecraft.ClientOnly import org.quiltmc.qsl.resource.loader.api.client.ClientResourceLoaderEvents -import org.quiltmc.qsl.resource.loader.api.client.ClientResourceLoaderEvents.EndResourcePackReload -import org.quiltmc.qsl.resource.loader.api.client.ClientResourceLoaderEvents.StartResourcePackReload +import org.quiltmc.qsl.resource.loader.api.client.ClientResourceLoaderEvents.EndPackReload +import org.quiltmc.qsl.resource.loader.api.client.ClientResourceLoaderEvents.StartPackReload -public typealias ReloadStart = StartResourcePackReload.Context.() -> Unit +public typealias ReloadStart = StartPackReload.Context.() -> Unit -public typealias ReloadFinish = EndResourcePackReload.Context.() -> Unit +public typealias ReloadFinish = EndPackReload.Context.() -> Unit /** - * @see ClientResourceLoaderEvents.START_RESOURCE_PACK_RELOAD - * @see ClientResourceLoaderEvents.StartResourcePackReload.onStartResourcePackReload + * @see ClientResourceLoaderEvents.START_PACK_RELOAD + * @see ClientResourceLoaderEvents.StartPackReload.onStartPackReload * * @author sschr15 */ -public fun onResourcePackReloadStart(callback: ReloadStart) { - ClientResourceLoaderEvents.START_RESOURCE_PACK_RELOAD.register( - ClientResourceLoaderEvents.StartResourcePackReload(callback) +public fun onPackReloadStart(callback: ReloadStart) { + ClientResourceLoaderEvents.START_PACK_RELOAD.register( + StartPackReload(callback) ) } /** - * @see ClientResourceLoaderEvents.END_RESOURCE_PACK_RELOAD - * @see ClientResourceLoaderEvents.EndResourcePackReload.onEndResourcePackReload + * @see ClientResourceLoaderEvents.END_PACK_RELOAD + * @see ClientResourceLoaderEvents.EndPackReload.onEndPackReload * * @author sschr15 */ -public fun onResourcePackReloadFinish(callback: ReloadFinish) { - ClientResourceLoaderEvents.END_RESOURCE_PACK_RELOAD.register( - ClientResourceLoaderEvents.EndResourcePackReload(callback) +public fun onPackReloadFinish(callback: ReloadFinish) { + ClientResourceLoaderEvents.END_PACK_RELOAD.register( + EndPackReload(callback) ) } diff --git a/library/src/main/kotlin/org/quiltmc/qkl/library/networking/ServerEvents.kt b/library/src/main/kotlin/org/quiltmc/qkl/library/networking/ServerEvents.kt index 4f9304a..19c31f3 100644 --- a/library/src/main/kotlin/org/quiltmc/qkl/library/networking/ServerEvents.kt +++ b/library/src/main/kotlin/org/quiltmc/qkl/library/networking/ServerEvents.kt @@ -1,5 +1,5 @@ /* - * Copyright 2023 The Quilt Project + * Copyright 2024 The Quilt Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,6 +19,9 @@ package org.quiltmc.qkl.library.networking import net.minecraft.entity.Entity +import net.minecraft.network.ServerConfigurationPacketHandler +import net.minecraft.network.packet.payload.CustomPayload +import net.minecraft.network.packet.s2c.login.payload.CustomQueryPayload import net.minecraft.server.MinecraftServer import net.minecraft.server.network.ServerLoginNetworkHandler import net.minecraft.server.network.ServerPlayNetworkHandler @@ -34,7 +37,7 @@ public typealias GenericLoginCallback = ServerLoginNetworkHandler.( public typealias LoginQueryStartCallback = ServerLoginNetworkHandler.( server: MinecraftServer, - packetSender: PacketSender, + packetSender: PacketSender, synchronizer: ServerLoginNetworking.LoginSynchronizer, ) -> Unit @@ -70,13 +73,86 @@ public fun EventRegistration.onLoginDisconnect(callback: GenericLoginCallback) { } //endregion +//region: Server configuration events +public typealias ServerConfigurationCallback = ServerConfigurationPacketHandler.( + server: MinecraftServer +) -> Unit + +public typealias ServerConfigurationReadyCallback = ServerConfigurationPacketHandler.( + sender: PacketSender, + server: MinecraftServer +) -> Unit + +/** + * @see ServerConfigurationConnectionEvents.INIT + * + * @author Ellie Semele + */ +public fun EventRegistration.onConfigurationInit(callback: ServerConfigurationCallback) { + ServerConfigurationConnectionEvents.INIT.register(ServerConfigurationConnectionEvents.Init(callback)) +} + +/** + * @see ServerConfigurationConnectionEvents.READY + * + * @author Ellie Semele + */ +public fun EventRegistration.onConfigurationReady(callback: ServerConfigurationReadyCallback) { + ServerConfigurationConnectionEvents.READY.register(ServerConfigurationConnectionEvents.Join(callback)) +} + +/** + * @see ServerConfigurationConnectionEvents.DISCONNECT + * + * @author Ellie Semele + */ +public fun EventRegistration.onConfigurationDisconnect(callback: ServerConfigurationCallback) { + ServerConfigurationConnectionEvents.DISCONNECT.register(ServerConfigurationConnectionEvents.Disconnect(callback)) +} + +/** + * @see ServerConfigurationConnectionEvents.ADD_TASKS + * + * @author Ellie Semele + */ +public fun EventRegistration.onConfigurationAddTasks(callback: ServerConfigurationCallback) { + ServerConfigurationConnectionEvents.ADD_TASKS.register(ServerConfigurationConnectionEvents.AddTasks(callback)) +} +//endregion + +//region: S2C configuration channel events +public typealias S2CConfigurationChannelCallback = ServerConfigurationPacketHandler.( + packetSender: PacketSender, + server: MinecraftServer, + channels: List +) -> Unit + +/** + * @see S2CConfigurationChannelEvents.REGISTER + * + * @author Ellie Semele + */ +public fun EventRegistration.onConfigurationChannelRegister(callback: S2CConfigurationChannelCallback) { + S2CConfigurationChannelEvents.REGISTER.register(S2CConfigurationChannelEvents.Register(callback)) +} + +/** + * @see S2CConfigurationChannelEvents.UNREGISTER + * + * @author Ellie Semele + */ +public fun EventRegistration.onConfigurationChannelUnregister(callback: S2CConfigurationChannelCallback) { + S2CConfigurationChannelEvents.UNREGISTER.register(S2CConfigurationChannelEvents.Unregister(callback)) +} +//endregion + //region: Server play connection events public typealias GenericPlayCallback = ServerPlayNetworkHandler.( server: MinecraftServer ) -> Unit public typealias S2CPlayReadyCallback = ServerPlayNetworkHandler.( - packetSender: PacketSender, + packetSender: PacketSender, server: MinecraftServer, ) -> Unit @@ -112,7 +188,7 @@ public fun EventRegistration.onPlayDisconnect(callback: GenericPlayCallback) { //region: S2C play channel events public typealias S2CPlayChannelCallback = ServerPlayNetworkHandler.( - packetSender: PacketSender, + packetSender: PacketSender, server: MinecraftServer, channels: List ) -> Unit diff --git a/library/src/main/kotlin/org/quiltmc/qkl/library/recipe/RecipeExtensions.kt b/library/src/main/kotlin/org/quiltmc/qkl/library/recipe/RecipeExtensions.kt index fc1e63f..b8264f9 100644 --- a/library/src/main/kotlin/org/quiltmc/qkl/library/recipe/RecipeExtensions.kt +++ b/library/src/main/kotlin/org/quiltmc/qkl/library/recipe/RecipeExtensions.kt @@ -1,5 +1,5 @@ /* - * Copyright 2023 The Quilt Project + * Copyright 2024 The Quilt Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -105,7 +105,7 @@ public fun shapedRecipe( pattern: String, result: ItemStack, vararg ingredients: Pair -): ShapedRecipe { +): RecipeHolder { val builder = ShapedRecipeBuilder(*pattern.split("\n").toTypedArray()) ingredients.forEach { (key, ingredient) -> builder.ingredient(key, coerceIngredient(ingredient)) @@ -135,7 +135,7 @@ public fun shapelessRecipe( group: String, result: ItemStack, vararg ingredients: IngredientLike -): ShapelessRecipe { +): RecipeHolder { val builder = ShapelessRecipeBuilder(result) ingredients.forEach { ingredient -> builder.ingredient(coerceIngredient(ingredient)) @@ -178,7 +178,7 @@ public fun foodCookingRecipe( cookTime: Int = 200, smokerCookTime: Int = cookTime / 2, campfireCookTime: Int = cookTime * 3 -): Array { +): Array> { val smeltingId = Identifier(baseId.namespace, "${baseId.path}_smelting") val smokingId = Identifier(baseId.namespace, "${baseId.path}_smoking") val campfireId = Identifier(baseId.namespace, "${baseId.path}_campfire") @@ -223,7 +223,7 @@ public fun foodCookingRecipe( * * @author sschr15 */ -public fun registerStaticRecipes(vararg recipes: Recipe<*>) { +public fun registerStaticRecipes(vararg recipes: RecipeHolder<*>) { recipes.forEach(RecipeManagerHelper::registerStaticRecipe) } @@ -233,5 +233,5 @@ public fun registerStaticRecipes(vararg recipes: Recipe<*>) { * @author sschr15 */ @Suppress("UNCHECKED_CAST") // The implementation is defined as returning the input -public fun > registerStaticRecipe(recipe: R): R = +public fun > registerStaticRecipe(recipe: R): R = RecipeManagerHelper.registerStaticRecipe(recipe) as R diff --git a/library/src/main/kotlin/org/quiltmc/qkl/library/serialization/annotation/CodecSerializable.kt b/library/src/main/kotlin/org/quiltmc/qkl/library/serialization/annotation/CodecSerializable.kt index 8cbc3a7..a9d2c72 100644 --- a/library/src/main/kotlin/org/quiltmc/qkl/library/serialization/annotation/CodecSerializable.kt +++ b/library/src/main/kotlin/org/quiltmc/qkl/library/serialization/annotation/CodecSerializable.kt @@ -17,7 +17,6 @@ package org.quiltmc.qkl.library.serialization.annotation import kotlinx.serialization.ExperimentalSerializationApi -import kotlinx.serialization.InheritableSerialInfo import kotlinx.serialization.MetaSerializable import org.quiltmc.qkl.library.serialization.options.CodecOptions import org.quiltmc.qsl.base.api.util.TriState @@ -38,29 +37,4 @@ public annotation class CodecSerializable( //inline options val useInlineWrapper: TriState = TriState.DEFAULT -) { - - /** - * Marks the target class as [Serializable] and allows overriding [CodecOptions.PolymorphismOptions] - * properties with annotation values. - * - * Note that unlike regular [CodecSerializable], the polymorphic version is considered - * [InheritableSerialInfo] and, if present on subclasses, must have same values as the parent annotation, - * as described in documentation for [InheritableSerialInfo]. - * - * @param classDiscriminator overrides - * [CodecOptions.polymorphism.classDiscriminator][CodecOptions.PolymorphismOptions.classDiscriminator] - * for target class and its subclasses - * - * @param flatten overrides [CodecOptions.polymorphism.flatten][CodecOptions.PolymorphismOptions.flatten] - * for target class and its subclasses - */ - @OptIn(ExperimentalSerializationApi::class) - @Target(AnnotationTarget.CLASS) - @MetaSerializable - @InheritableSerialInfo - public annotation class Polymorphic( - val classDiscriminator: String = "", - val flatten: TriState = TriState.DEFAULT - ) -} +) diff --git a/library/src/main/kotlin/org/quiltmc/qkl/library/serialization/annotation/PolymorphicCodecSerializable.kt b/library/src/main/kotlin/org/quiltmc/qkl/library/serialization/annotation/PolymorphicCodecSerializable.kt new file mode 100644 index 0000000..9514bac --- /dev/null +++ b/library/src/main/kotlin/org/quiltmc/qkl/library/serialization/annotation/PolymorphicCodecSerializable.kt @@ -0,0 +1,47 @@ +/* + * Copyright 2024 The Quilt Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.quiltmc.qkl.library.serialization.annotation + +import kotlinx.serialization.ExperimentalSerializationApi +import kotlinx.serialization.InheritableSerialInfo +import kotlinx.serialization.MetaSerializable +import org.quiltmc.qkl.library.serialization.options.CodecOptions +import org.quiltmc.qsl.base.api.util.TriState + +/** + * Marks the target class as [Serializable] and allows overriding [CodecOptions.PolymorphismOptions] + * properties with annotation values. + * + * Note that unlike regular [CodecSerializable], the polymorphic version is considered + * [InheritableSerialInfo] and, if present on subclasses, must have same values as the parent annotation, + * as described in documentation for [InheritableSerialInfo]. + * + * @param classDiscriminator overrides + * [CodecOptions.polymorphism.classDiscriminator][CodecOptions.PolymorphismOptions.classDiscriminator] + * for target class and its subclasses + * + * @param flatten overrides [CodecOptions.polymorphism.flatten][CodecOptions.PolymorphismOptions.flatten] + * for target class and its subclasses + */ +@OptIn(ExperimentalSerializationApi::class) +@Target(AnnotationTarget.CLASS) +@MetaSerializable +@InheritableSerialInfo +public annotation class PolymorphicCodecSerializable( + val classDiscriminator: String = "", + val flatten: TriState = TriState.DEFAULT +) diff --git a/library/src/main/kotlin/org/quiltmc/qkl/library/serialization/internal/util/AnnotationUtil.kt b/library/src/main/kotlin/org/quiltmc/qkl/library/serialization/internal/util/AnnotationUtil.kt index ce19ee0..e362e64 100644 --- a/library/src/main/kotlin/org/quiltmc/qkl/library/serialization/internal/util/AnnotationUtil.kt +++ b/library/src/main/kotlin/org/quiltmc/qkl/library/serialization/internal/util/AnnotationUtil.kt @@ -20,6 +20,7 @@ import kotlinx.serialization.ExperimentalSerializationApi import kotlinx.serialization.descriptors.SerialDescriptor import org.quiltmc.qkl.library.serialization.annotation.CodecEntryListMap import org.quiltmc.qkl.library.serialization.annotation.CodecSerializable +import org.quiltmc.qkl.library.serialization.annotation.PolymorphicCodecSerializable import org.quiltmc.qkl.library.serialization.internal.CodecSerializerAdapter @OptIn(ExperimentalSerializationApi::class) @@ -28,8 +29,8 @@ internal val SerialDescriptor.codecAnnotation: CodecSerializable? @OptIn(ExperimentalSerializationApi::class) -internal val SerialDescriptor.codecPolymorphicAnnotation: CodecSerializable.Polymorphic? - get() = annotations.filterIsInstance().firstOrNull() +internal val SerialDescriptor.codecPolymorphicAnnotation: PolymorphicCodecSerializable? + get() = annotations.filterIsInstance().firstOrNull() @OptIn(ExperimentalSerializationApi::class) diff --git a/library/src/main/kotlin/samples/qkl/serialization/PolymorphicSerializationTests.kt b/library/src/main/kotlin/samples/qkl/serialization/PolymorphicSerializationTests.kt index 6901f0c..085631a 100644 --- a/library/src/main/kotlin/samples/qkl/serialization/PolymorphicSerializationTests.kt +++ b/library/src/main/kotlin/samples/qkl/serialization/PolymorphicSerializationTests.kt @@ -19,7 +19,7 @@ package samples.qkl.serialization import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable import org.quiltmc.qkl.library.serialization.CodecFactory -import org.quiltmc.qkl.library.serialization.annotation.CodecSerializable +import org.quiltmc.qkl.library.serialization.annotation.PolymorphicCodecSerializable import org.quiltmc.qsl.base.api.util.TriState import samples.qkl.serialization.SerializationTestUtils.decodesFromJson import samples.qkl.serialization.SerializationTestUtils.encodesToJson @@ -28,7 +28,7 @@ import samples.qkl.serialization.SerializationTestUtils.failsToEncode @Suppress("MagicNumber", "Unused") private object PolymorphicSerializationTests { - @CodecSerializable.Polymorphic( + @PolymorphicCodecSerializable( flatten = TriState.TRUE ) @Serializable @@ -50,7 +50,7 @@ private object PolymorphicSerializationTests { ) : Foo() } - @CodecSerializable.Polymorphic( + @PolymorphicCodecSerializable( classDiscriminator = "foo", flatten = TriState.TRUE ) diff --git a/library/src/main/resources/quilt.mod.json b/library/src/main/resources/quilt.mod.json index b1b2e57..f4db487 100644 --- a/library/src/main/resources/quilt.mod.json +++ b/library/src/main/resources/quilt.mod.json @@ -12,7 +12,7 @@ }, "contact": { "homepage": "https://quiltmc.org", - "issues": "https://github.com/quiltmc/quilt-kotlin-libaries/issues", + "issues": "https://github.com/quiltmc/quilt-kotlin-libraries/issues", "sources": "https://github.com/quiltmc/quilt-kotlin-libraries" }, "license": "Apache-2.0", @@ -22,7 +22,7 @@ "depends": [ { "id": "quilt_loader", - "versions": ">=0.18.1" + "versions": ">=0.23.0" } ] }, diff --git a/src/main/resources/quilt.mod.json b/src/main/resources/quilt.mod.json index ec6cd8b..3899249 100644 --- a/src/main/resources/quilt.mod.json +++ b/src/main/resources/quilt.mod.json @@ -22,7 +22,7 @@ "depends": [ { "id": "quilt_loader", - "versions": ">=0.18.1" + "versions": ">=0.23.0" }, { "id": "qkl_core",