Skip to content

Commit 26983e5

Browse files
committed
fix: Use minimal supported JVM by default
1 parent c04d0f3 commit 26983e5

File tree

4 files changed

+15
-15
lines changed

4 files changed

+15
-15
lines changed

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
improving maintainability and compatibility with various server versions.
1212
- Set the default [JVM toolchain](https://docs.gradle.org/current/userguide/toolchains.html) version
1313
instead of setting JVM target and source compatibility to 1.8.
14-
The default JVM version depends on [Paper requirements](https://docs.papermc.io/paper/getting-started#requirements).
14+
By default, the minimal supported JVM version compatible with the specified `bukkit.server.version` is used.
1515
- Use lazy API for `bukkit.apiVersion` and `bukkit.generateMeta` properties.
1616
- Accept EULA using CLI parameter `-Dcom.mojang.eula.agree=true` instead of changing `eula.txt`
1717

src/main/kotlin/BukkitGradlePlugin.kt

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public class BukkitGradlePlugin : Plugin<Project> {
4040

4141
extensions.configure<JavaPluginExtension> {
4242
toolchain {
43-
languageVersion.convention(bukkit.parsedApiVersion.map(::resolveRecommendedJavaVersion))
43+
languageVersion.convention(bukkit.parsedApiVersion.map(::resolveMinimalJavaVersion))
4444
}
4545
}
4646
}
@@ -78,11 +78,13 @@ public class BukkitGradlePlugin : Plugin<Project> {
7878
else -> version.toString()
7979
}
8080

81-
// See: https://docs.papermc.io/paper/getting-started#requirements
82-
private fun resolveRecommendedJavaVersion(version: MinecraftVersion): JavaLanguageVersion = when {
83-
version >= MinecraftVersion.V1_17_1 -> JavaLanguageVersion.of(21)
84-
version >= MinecraftVersion.V1_16_5 -> JavaLanguageVersion.of(16)
85-
version >= MinecraftVersion.V1_12_0 -> JavaLanguageVersion.of(11)
81+
private fun resolveMinimalJavaVersion(version: MinecraftVersion): JavaLanguageVersion = when {
82+
// https://minecraft.wiki/w/Java_Edition_1.20.5#General_2
83+
version >= MinecraftVersion.V1_20_5 -> JavaLanguageVersion.of(21)
84+
// https://minecraft.wiki/w/Java_Edition_1.18#General_2
85+
version >= MinecraftVersion.V1_18_0 -> JavaLanguageVersion.of(17)
86+
// https://minecraft.wiki/w/Java_Edition_1.17#General_2
87+
version >= MinecraftVersion.V1_17_0 -> JavaLanguageVersion.of(16)
8688
else -> JavaLanguageVersion.of(8)
8789
}
8890
}

src/main/kotlin/meta/util/MinecraftVersion.kt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,9 @@ internal value class MinecraftVersion(private val value: Int) : Comparable<Minec
2121
return MinecraftVersion(major * 1_00_00 + minor * 1_00 + patch)
2222
}
2323

24-
val V1_12_0 = MinecraftVersion(1_12_00)
2524
val V1_13_0 = MinecraftVersion(1_13_00)
26-
val V1_16_5 = MinecraftVersion(1_16_05)
2725
val V1_17_0 = MinecraftVersion(1_17_00)
28-
val V1_17_1 = MinecraftVersion(1_17_01)
26+
val V1_18_0 = MinecraftVersion(1_18_00)
2927
val V1_20_5 = MinecraftVersion(1_20_05)
3028
}
3129
}

src/test/groovy/ru/endlesscode/bukkitgradle/BukkitGradlePluginSpec.groovy

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,12 @@ class BukkitGradlePluginSpec extends PluginSpecification {
2121

2222
where:
2323
apiVersion | jvmVersion
24-
"1.11" | 8
25-
"1.12" | 11
26-
"1.16.4" | 11
27-
"1.16.5" | 16
24+
"1.16.5" | 8
2825
"1.17" | 16
29-
"1.17.1" | 21
26+
"1.17.1" | 16
27+
"1.18" | 17
28+
"1.20.4" | 17
29+
"1.20.5" | 21
3030
}
3131

3232
def "when use custom repos extension - should add repos"() {

0 commit comments

Comments
 (0)