Skip to content

Commit

Permalink
Add the updated neoforge AT for J21 & update ASM
Browse files Browse the repository at this point in the history
  • Loading branch information
shedaniel committed Apr 8, 2024
1 parent f669cb3 commit 6508030
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 4 deletions.
4 changes: 3 additions & 1 deletion gradle/runtime.libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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"

Expand All @@ -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" }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@
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;
Expand Down Expand Up @@ -157,9 +158,11 @@ public String getName() {
}

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();
Expand All @@ -172,12 +175,29 @@ public static void executeAt(Project project, Path input, Path output, AccessTra
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;
Expand Down

0 comments on commit 6508030

Please sign in to comment.