diff --git a/build.gradle.kts b/build.gradle.kts index f679b27..690c57b 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,8 +1,7 @@ -import org.jetbrains.kotlin.config.KotlinCompilerVersion - plugins { + kotlin("jvm") version "2.2.10" `kotlin-dsl` - val dgtVersion = "2.35.0" + val dgtVersion = "2.50.0" id("dev.deftu.gradle.tools.repo") version(dgtVersion) id("dev.deftu.gradle.tools.configure") version(dgtVersion) id("dev.deftu.gradle.tools.publishing.maven") version(dgtVersion) @@ -44,6 +43,7 @@ dependencies { // Preprocessing/multi-versioning implementation("dev.deftu:preprocessor:0.15.0") + implementation("org.jetbrains.kotlin:kotlin-compiler-embeddable:${property("kotlin.version")}") // TODO remove when remap is fixed // Documentation implementation("org.jetbrains.dokka:dokka-gradle-plugin:2.0.0") diff --git a/gradle.properties b/gradle.properties index c5dfafa..4af7e58 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ # Project args kotlin.code.style=official -kotlin.version=2.0.20 +kotlin.version=2.2.10 org.gradle.jvmargs=-Xmx8G # Project properties diff --git a/settings.gradle.kts b/settings.gradle.kts index 3d4d339..bcaa95b 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -19,4 +19,14 @@ pluginManagement { } } +buildscript { + repositories { + gradlePluginPortal() + } + + dependencies { + classpath("org.jetbrains.kotlin:kotlin-compiler-embeddable:2.2.10") // TODO remove once DGT in the build.gradle.kts is updated to 2.51.0 + } +} + rootProject.name = extra["project.name"]!!.toString() diff --git a/src/main/kotlin/dev/deftu/gradle/utils/mcinfo/MinecraftInfo.kt b/src/main/kotlin/dev/deftu/gradle/utils/mcinfo/MinecraftInfo.kt index f795bd9..ba416e9 100644 --- a/src/main/kotlin/dev/deftu/gradle/utils/mcinfo/MinecraftInfo.kt +++ b/src/main/kotlin/dev/deftu/gradle/utils/mcinfo/MinecraftInfo.kt @@ -9,17 +9,24 @@ sealed class MinecraftInfo { companion object { + private val revisions = listOf( + MinecraftInfoV0, + MinecraftInfoV1, + MinecraftInfoV2 + ) + @JvmStatic fun get(project: Project): MinecraftInfo { val revision = project.propertyIntOr("minecraft.revision", default = 0, prefix = "dgt.") - return when (revision) { - 0 -> MinecraftInfoV0 - 1 -> MinecraftInfoV1 - else -> throw IllegalArgumentException( - "Unknown MinecraftInfo revision: $revision. " + + if (revision < 0) { + throw IllegalArgumentException("MinecraftInfo revision cannot be negative: $revision") + } else if (revision >= revisions.size) { + throw IllegalArgumentException( + "MinecraftInfo revision $revision is not available. (Latest is ${revisions.size - 1}). " + "Please update the toolkit to a newer version or check which revisions are available." ) - }.also(MinecraftInfo::initialize) + } + return revisions[revision].also(MinecraftInfo::initialize) } } diff --git a/src/main/kotlin/dev/deftu/gradle/utils/mcinfo/MinecraftInfoV2.kt b/src/main/kotlin/dev/deftu/gradle/utils/mcinfo/MinecraftInfoV2.kt new file mode 100644 index 0000000..71f8759 --- /dev/null +++ b/src/main/kotlin/dev/deftu/gradle/utils/mcinfo/MinecraftInfoV2.kt @@ -0,0 +1,56 @@ +package dev.deftu.gradle.utils.mcinfo + +import dev.deftu.gradle.utils.version.MinecraftVersions + +object MinecraftInfoV2 : MinecraftInfo() { + + override fun initialize() { + inherit(MinecraftInfoV1) + + fabricYarnVersions.putAll(listOf( + MinecraftVersions.VERSION_1_21_8 to "1.21.8+build.1:v2", + MinecraftVersions.VERSION_1_21_7 to "1.21.7+build.2:v2", + MinecraftVersions.VERSION_1_21_6 to "1.21.6+build.1:v2", + MinecraftVersions.VERSION_1_21_5 to "1.21.5+build.1:v2", + MinecraftVersions.VERSION_1_21_4 to "1.21.4+build.8:v2", + MinecraftVersions.VERSION_1_21_3 to "1.21.3+build.2:v2", + MinecraftVersions.VERSION_1_21_2 to "1.21.2+build.1:v2", + MinecraftVersions.VERSION_1_21_1 to "1.21.1+build.3:v2", + MinecraftVersions.VERSION_1_21 to "1.21+build.9:v2", + MinecraftVersions.VERSION_1_20_6 to "1.20.6+build.3:v2", + MinecraftVersions.VERSION_1_20_5 to "1.20.5+build.1:v2", + MinecraftVersions.VERSION_1_20_4 to "1.20.4+build.3:v2", + MinecraftVersions.VERSION_1_20_3 to "1.20.3+build.1:v2", + MinecraftVersions.VERSION_1_20_2 to "1.20.2+build.4:v2", + MinecraftVersions.VERSION_1_20_1 to "1.20.1+build.10:v2", + MinecraftVersions.VERSION_1_20 to "1.20+build.1:v2", + + MinecraftVersions.VERSION_1_19_4 to "1.19.4+build.2:v2", + MinecraftVersions.VERSION_1_19_3 to "1.19.3+build.5:v2", + MinecraftVersions.VERSION_1_19_2 to "1.19.2+build.8:v2", + MinecraftVersions.VERSION_1_19_1 to "1.19.1+build.6:v2", + MinecraftVersions.VERSION_1_19 to "1.19+build.4:v2", + + MinecraftVersions.VERSION_1_18_2 to "1.18.2+build.4:v2", + MinecraftVersions.VERSION_1_18_1 to "1.18.1+build.22:v2", + MinecraftVersions.VERSION_1_18 to "1.18+build.1:v2", + + MinecraftVersions.VERSION_1_17_1 to "1.17.1+build.65:v2", + MinecraftVersions.VERSION_1_17 to "1.17+build.13:v2", + + MinecraftVersions.VERSION_1_16_5 to "1.16.5+build.10:v2", + MinecraftVersions.VERSION_1_16_4 to "1.16.4+build.9:v2", + MinecraftVersions.VERSION_1_16_3 to "1.16.3+build.47:v2", + MinecraftVersions.VERSION_1_16_2 to "1.16.2+build.47:v2", + MinecraftVersions.VERSION_1_16_1 to "1.16.1+build.21:v2", + MinecraftVersions.VERSION_1_16 to "1.16+build.4:v2", + + MinecraftVersions.VERSION_1_15_2 to "1.15.2+build.17:v2", + MinecraftVersions.VERSION_1_15_1 to "1.15.1+build.37:v2", + MinecraftVersions.VERSION_1_15 to "1.15+build.2:v2", + + MinecraftVersions.VERSION_1_14_4 to "1.14.4+build.18:v2" + )) + } + +} \ No newline at end of file