@@ -22,24 +22,36 @@ repositories {
2222dependencies {
2323 // Fabric
2424 minecraft(libs.minecraft)
25- mappings(variantOf(libs.yarn) { classifier(" v2" ) })
26- modImplementation(libs.fabric.loader)
25+ implementation(libs.fabric.loader)
2726
2827 // Meteor
29- modImplementation(libs.meteor.client)
28+ implementation(libs.meteor.client)
29+ }
30+
31+ java {
32+ toolchain {
33+ languageVersion.set(JavaLanguageVersion .of(libs.versions.jdk.get().toInt()))
34+ }
35+ }
36+
37+ fun toMinecraftCompat (version : String ): String {
38+ val match = Regex (""" ^(\d{2})\.([1-9]\d*)(?:\.([1-9]\d*))?$""" )
39+ .matchEntire(version)
40+ ? : error(" Invalid Minecraft version format: $version . Expected YY.D or YY.D.H" )
41+
42+ val (year, drop, _) = match.destructured
43+ return " ~$year .$drop "
3044}
3145
3246tasks {
3347 processResources {
3448 val propertyMap = mapOf (
3549 " version" to project.version,
36- " mc_version" to libs.versions.minecraft.get()
50+ " minecraft_version" to toMinecraftCompat(libs.versions.minecraft.get()),
51+ " jdk_version" to libs.versions.jdk.get(),
3752 )
3853
3954 inputs.properties(propertyMap)
40-
41- filteringCharset = " UTF-8"
42-
4355 filesMatching(" fabric.mod.json" ) {
4456 expand(propertyMap)
4557 }
@@ -53,15 +65,12 @@ tasks {
5365 }
5466 }
5567
56- java {
57- sourceCompatibility = JavaVersion .VERSION_21
58- targetCompatibility = JavaVersion .VERSION_21
59- }
60-
61- withType<JavaCompile > {
62- options.encoding = " UTF-8"
63- options.release = 21
64- options.compilerArgs.add(" -Xlint:deprecation" )
65- options.compilerArgs.add(" -Xlint:unchecked" )
68+ withType<JavaCompile >().configureEach {
69+ options.compilerArgs.addAll(
70+ listOf (
71+ " -Xlint:deprecation" ,
72+ " -Xlint:unchecked"
73+ )
74+ )
6675 }
6776}
0 commit comments