mirror of
https://github.com/architectury/architectury-loom.git
synced 2026-03-28 12:17:00 -05:00
Add the updated neoforge AT for J21 & update ASM
This commit is contained in:
@@ -16,8 +16,9 @@ javax-annotations = "3.0.2"
|
||||
forge-runtime = "2.0.9"
|
||||
access-transformers = "3.0.1"
|
||||
access-transformers-new = "8.0.5"
|
||||
access-transformers-neo = "10.0.2"
|
||||
unprotect = "1.2.0"
|
||||
asm = "9.3"
|
||||
asm = "9.7"
|
||||
union-relauncher = "1.0.0"
|
||||
access-transformers-log4j = "2.17.1"
|
||||
|
||||
@@ -41,6 +42,7 @@ naming-service = { module = "dev.architectury:architectury-naming-service", vers
|
||||
mcp-annotations = { module = "dev.architectury:mcp-annotations", version.ref = "forge-runtime" }
|
||||
access-transformers = { module = "net.minecraftforge:accesstransformers", version.ref = "access-transformers" }
|
||||
access-transformers-new = { module = "net.minecraftforge:accesstransformers", version.ref = "access-transformers-new" }
|
||||
access-transformers-neo = { module = "net.neoforged.accesstransformers:at-cli", version.ref = "access-transformers-neo" }
|
||||
unprotect = { module = "io.github.juuxel:unprotect", version.ref = "unprotect" }
|
||||
asm = { module = "org.ow2.asm:asm", version.ref = "asm" }
|
||||
union-relauncher = { module = "io.github.juuxel:union-relauncher", version.ref = "union-relauncher" }
|
||||
|
||||
@@ -55,6 +55,7 @@ import net.fabricmc.loom.api.processor.MinecraftJarProcessor;
|
||||
import net.fabricmc.loom.api.processor.ProcessorContext;
|
||||
import net.fabricmc.loom.api.processor.SpecContext;
|
||||
import net.fabricmc.loom.build.IntermediaryNamespaces;
|
||||
import net.fabricmc.loom.configuration.providers.minecraft.MinecraftVersionMeta;
|
||||
import net.fabricmc.loom.util.Constants;
|
||||
import net.fabricmc.loom.util.DependencyDownloader;
|
||||
import net.fabricmc.loom.util.ExceptionUtil;
|
||||
@@ -157,9 +158,11 @@ public class AccessTransformerJarProcessor implements MinecraftJarProcessor<Acce
|
||||
}
|
||||
|
||||
public static void executeAt(Project project, Path input, Path output, AccessTransformerConfiguration configuration) throws IOException {
|
||||
boolean serverBundleMetadataPresent = LoomGradleExtension.get(project).getMinecraftProvider().getServerBundleMetadata() != null;
|
||||
LoomVersions accessTransformer = chooseAccessTransformer(project);
|
||||
String mainClass = accessTransformer == LoomVersions.ACCESS_TRANSFORMERS_NEO ? "net.neoforged.accesstransformer.cli.TransformerProcessor"
|
||||
: "net.minecraftforge.accesstransformer.TransformerProcessor";
|
||||
FileCollection classpath = new DependencyDownloader(project)
|
||||
.add((serverBundleMetadataPresent ? LoomVersions.ACCESS_TRANSFORMERS_NEW : LoomVersions.ACCESS_TRANSFORMERS).mavenNotation())
|
||||
.add(accessTransformer.mavenNotation())
|
||||
.add(LoomVersions.ASM.mavenNotation())
|
||||
.platform(LoomVersions.ACCESS_TRANSFORMERS_LOG4J_BOM.mavenNotation())
|
||||
.download();
|
||||
@@ -172,12 +175,29 @@ public class AccessTransformerJarProcessor implements MinecraftJarProcessor<Acce
|
||||
configuration.apply(args);
|
||||
|
||||
ForgeToolExecutor.exec(project, spec -> {
|
||||
spec.getMainClass().set("net.minecraftforge.accesstransformer.TransformerProcessor");
|
||||
spec.getMainClass().set(mainClass);
|
||||
spec.setArgs(args);
|
||||
spec.setClasspath(classpath);
|
||||
}).rethrowFailure().assertNormalExitValue();
|
||||
}
|
||||
|
||||
private static LoomVersions chooseAccessTransformer(Project project) {
|
||||
LoomGradleExtension extension = LoomGradleExtension.get(project);
|
||||
boolean serverBundleMetadataPresent = extension.getMinecraftProvider().getServerBundleMetadata() != null;
|
||||
|
||||
if (!serverBundleMetadataPresent) {
|
||||
return LoomVersions.ACCESS_TRANSFORMERS;
|
||||
} else if (extension.isNeoForge()) {
|
||||
MinecraftVersionMeta.JavaVersion javaVersion = extension.getMinecraftProvider().getVersionInfo().javaVersion();
|
||||
|
||||
if (javaVersion != null && javaVersion.majorVersion() >= 21) {
|
||||
return LoomVersions.ACCESS_TRANSFORMERS_NEO;
|
||||
}
|
||||
}
|
||||
|
||||
return LoomVersions.ACCESS_TRANSFORMERS_NEW;
|
||||
}
|
||||
|
||||
@FunctionalInterface
|
||||
public interface AccessTransformerConfiguration {
|
||||
void apply(List<String> args) throws IOException;
|
||||
|
||||
Reference in New Issue
Block a user