diff --git a/bootstrap/src/main/java/net/fabricmc/loom/bootstrap/LoomGradlePluginBootstrap.java b/bootstrap/src/main/java/net/fabricmc/loom/bootstrap/LoomGradlePluginBootstrap.java index 01feb2c0..82bcf8fe 100644 --- a/bootstrap/src/main/java/net/fabricmc/loom/bootstrap/LoomGradlePluginBootstrap.java +++ b/bootstrap/src/main/java/net/fabricmc/loom/bootstrap/LoomGradlePluginBootstrap.java @@ -14,7 +14,7 @@ import org.gradle.util.GradleVersion; @SuppressWarnings("unused") public class LoomGradlePluginBootstrap implements Plugin { private static final int MIN_SUPPORTED_MAJOR_GRADLE_VERSION = 7; - private static final int MIN_SUPPORTED_MAJOR_JAVA_VERSION = 16; + private static final int MIN_SUPPORTED_MAJOR_JAVA_VERSION = 11; private static final int MIN_SUPPORTED_MAJOR_IDEA_VERSION = 2021; private static final String PLUGIN_CLASS_NAME = "net.fabricmc.loom.LoomGradlePlugin"; diff --git a/build.gradle b/build.gradle index 73226e3a..98f32070 100644 --- a/build.gradle +++ b/build.gradle @@ -10,6 +10,7 @@ plugins { id 'codenarc' id "com.diffplug.spotless" version "5.14.1" id 'net.kyori.blossom' version '1.3.0' + id 'me.shedaniel.java-version-bridge' version '1.0-SNAPSHOT' } sourceCompatibility = 16 @@ -162,6 +163,7 @@ jar { task mainJar(type: Jar, dependsOn: jar) { from zipTree(jar.archiveFile) + archiveClassifier = "main" manifest { attributes 'Implementation-Version': project.version + ' Build(' + buildNum + ')' @@ -170,6 +172,14 @@ task mainJar(type: Jar, dependsOn: jar) { from configurations.bootstrap.collect { it.isDirectory() ? it : zipTree(it) } } +task downgradeJava(type: BridgeTransformingTask, dependsOn: mainJar) { + from zipTree(mainJar.archiveFile) + fromVersion = JavaVersion.VERSION_16 + toVersion = JavaVersion.VERSION_11 + classpath.from configurations.compileClasspath + flags.add "insertRecordConstructorProperties" +} + task sourcesJar(type: Jar, dependsOn: classes) { archiveClassifier = 'sources' from sourceSets.main.allSource @@ -210,7 +220,7 @@ gradlePlugin { } } -build.dependsOn mainJar +build.dependsOn downgradeJava jacoco { toolVersion = "0.8.6" @@ -231,6 +241,7 @@ test { useJUnitPlatform() } +import me.shedaniel.javaversionbridge.BridgeTransformingTask import org.w3c.dom.Document import org.w3c.dom.Element import org.w3c.dom.Node @@ -256,7 +267,7 @@ publishing { artifactId 'dev.architectury.loom.gradle.plugin' from components.java - artifact mainJar + artifact downgradeJava artifact sourcesJar pom.withXml { @@ -269,7 +280,7 @@ publishing { artifactId project.archivesBaseName from components.java - artifact mainJar + artifact downgradeJava artifact sourcesJar artifact javadocJar @@ -286,7 +297,7 @@ publishing { version baseVersion + '-SNAPSHOT' from components.java - artifact mainJar + artifact downgradeJava artifact sourcesJar artifact javadocJar diff --git a/settings.gradle b/settings.gradle index 0dfb5fc9..027e61ae 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,2 +1,9 @@ +pluginManagement { + repositories { + maven { url "https://maven.architectury.dev" } + gradlePluginPortal() + } +} + rootProject.name = "architectury-loom" include "bootstrap" diff --git a/src/main/java/net/fabricmc/loom/configuration/providers/forge/MinecraftPatchedProvider.java b/src/main/java/net/fabricmc/loom/configuration/providers/forge/MinecraftPatchedProvider.java index c339ae2e..e02e6678 100644 --- a/src/main/java/net/fabricmc/loom/configuration/providers/forge/MinecraftPatchedProvider.java +++ b/src/main/java/net/fabricmc/loom/configuration/providers/forge/MinecraftPatchedProvider.java @@ -488,7 +488,7 @@ public class MinecraftPatchedProvider extends DependencyProvider { try (FileSystem fs = FileSystems.newFileSystem(new URI("jar:" + jarFile.toURI()), ImmutableMap.of("create", false))) { ThreadingUtils.TaskCompleter completer = ThreadingUtils.taskCompleter(); - Pattern vignetteParameters = Pattern.compile("p_\\d+_"); + Pattern vignetteParameters = Pattern.compile("p_[0-9a-zA-Z]+_(?:[0-9a-zA-Z]+_)?"); for (Path file : (Iterable) Files.walk(fs.getPath("/"))::iterator) { if (!file.toString().endsWith(".class")) continue; @@ -697,11 +697,10 @@ public class MinecraftPatchedProvider extends DependencyProvider { ThreadingUtils.run(Environment.values(), environment -> { copyMissingClasses(environment.srgJar.apply(this), environment.patchedSrgJar.apply(this)); + deleteParameterNames(environment.patchedSrgJar.apply(this)); if (getExtension().isForgeAndNotOfficial()) { fixParameterAnnotation(environment.patchedSrgJar.apply(this)); - } else { - deleteParameterNames(environment.patchedSrgJar.apply(this)); } });