mirror of
https://github.com/architectury/architectury-loom.git
synced 2026-03-28 04:07:01 -05:00
Update to Unprotect 2.0.1
Fixes #304 by removing transitive loader/ModLauncher deps.
This commit is contained in:
@@ -22,7 +22,7 @@ forge-runtime = "2.0.9"
|
||||
access-transformers = "3.0.1"
|
||||
access-transformers-new = "8.0.5"
|
||||
access-transformers-neo = "10.0.2"
|
||||
unprotect = "1.3.1"
|
||||
unprotect = "2.0.1"
|
||||
asm = "9.7"
|
||||
access-transformers-log4j = "2.17.1"
|
||||
forge-installer-tools = "1.2.0"
|
||||
@@ -53,7 +53,8 @@ mcp-annotations = { module = "dev.architectury:mcp-annotations", version.ref = "
|
||||
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" }
|
||||
unprotect-fancymodloader10 = { module = "io.github.juuxel:unprotect-fancymodloader10", version.ref = "unprotect" }
|
||||
unprotect-modlauncher = { module = "io.github.juuxel:unprotect-modlauncher", version.ref = "unprotect" }
|
||||
asm = { module = "org.ow2.asm:asm", version.ref = "asm" }
|
||||
access-transformers-log4j-bom = { module = "org.apache.logging.log4j:log4j-bom", version.ref = "access-transformers-log4j" }
|
||||
forge-installer-tools = { module = "net.minecraftforge:installertools", version.ref = "forge-installer-tools" }
|
||||
|
||||
@@ -39,6 +39,7 @@ import dev.architectury.loom.mappings.MappingOption;
|
||||
import dev.architectury.loom.neoforge.StringConstantPatcher;
|
||||
import dev.architectury.loom.util.ClassVisitorUtil;
|
||||
import dev.architectury.loom.util.PropertyUtil;
|
||||
import dev.architectury.loom.util.Version;
|
||||
import org.gradle.api.Project;
|
||||
import org.gradle.api.artifacts.Dependency;
|
||||
import org.gradle.api.artifacts.ModuleDependency;
|
||||
@@ -58,6 +59,7 @@ import net.fabricmc.loom.util.Checksum;
|
||||
import net.fabricmc.loom.util.Constants;
|
||||
import net.fabricmc.loom.util.ExceptionUtil;
|
||||
import net.fabricmc.loom.util.FileSystemUtil;
|
||||
import net.fabricmc.loom.util.LoomVersions;
|
||||
import net.fabricmc.loom.util.service.ScopedServiceFactory;
|
||||
import net.fabricmc.loom.util.service.ServiceFactory;
|
||||
import net.fabricmc.mappingio.tree.MappingTree;
|
||||
@@ -70,6 +72,7 @@ public class ForgeLibrariesProvider {
|
||||
private static final String FML_LOADER_NAME = "fmlloader";
|
||||
private static final String FANCYML_LOADER_GROUP = "net.neoforged.fancymodloader";
|
||||
private static final String FANCYML_LOADER_NAME = "loader";
|
||||
private static final Version FANCYML_LOADER_UNPROTECT_BACKEND_VERSION = Version.parse("10.0.14");
|
||||
|
||||
private static final String FORGE_OBJECT_HOLDER_FILE = "net/minecraftforge/fml/common/asm/ObjectHolderDefinalize.class";
|
||||
private static final String FORGE_MOD_DIR_TRANSFORMER_DISCOVERER_FILE = "net/minecraftforge/fml/loading/ModDirTransformerDiscoverer.class";
|
||||
@@ -128,12 +131,20 @@ public class ForgeLibrariesProvider {
|
||||
.detachedConfiguration(dependencies.toArray(new Dependency[0]))
|
||||
.getResolvedConfiguration();
|
||||
|
||||
boolean isFancyModLoader10OrNewer = false;
|
||||
|
||||
for (ResolvedArtifact artifact : config.getResolvedArtifacts()) {
|
||||
final ModuleVersionIdentifier id = artifact.getModuleVersion().getId();
|
||||
final Object dep;
|
||||
final boolean isFML = FML_LOADER_GROUP.equals(id.getGroup()) && FML_LOADER_NAME.equals(id.getName());
|
||||
final boolean isFancyML = FANCYML_LOADER_GROUP.equals(id.getGroup()) && FANCYML_LOADER_NAME.equals(id.getName());
|
||||
|
||||
if (isFancyML && extension.isNeoForge() && Version.parse(id.getVersion()).compareTo(FANCYML_LOADER_UNPROTECT_BACKEND_VERSION) >= 0) {
|
||||
// Note: check extension.isNeoForge() to prevent this check triggering on legacy "47.x" versions of FML
|
||||
// from before Neo replaced the versioning scheme.
|
||||
isFancyModLoader10OrNewer = true;
|
||||
}
|
||||
|
||||
if (isFML || isFancyML) {
|
||||
// If FML, remap it.
|
||||
try (var serviceFactory = new ScopedServiceFactory()) {
|
||||
@@ -159,6 +170,9 @@ public class ForgeLibrariesProvider {
|
||||
|
||||
DependencyProvider.addDependency(project, dep, Constants.Configurations.FORGE_DEPENDENCIES);
|
||||
}
|
||||
|
||||
LoomVersions unprotect = isFancyModLoader10OrNewer ? LoomVersions.UNPROTECT_FANCYMODLOADER10 : LoomVersions.UNPROTECT_MODLAUNCHER;
|
||||
DependencyProvider.addDependency(project, unprotect.mavenNotation(), Constants.Configurations.FORGE_EXTRA);
|
||||
}
|
||||
|
||||
// Returns a Gradle dependency notation.
|
||||
|
||||
@@ -207,7 +207,7 @@ public abstract class LoomConfigurations implements Runnable {
|
||||
extendsFrom(JavaPlugin.TEST_RUNTIME_CLASSPATH_CONFIGURATION_NAME, Constants.Configurations.FORGE_EXTRA);
|
||||
|
||||
// Add Forge/NeoForge shared dev-time dependencies
|
||||
getDependencies().add(Constants.Configurations.FORGE_EXTRA, LoomVersions.UNPROTECT.mavenNotation());
|
||||
// TODO: Can we get rid of javax annotations on modern versions?
|
||||
getDependencies().add(JavaPlugin.COMPILE_ONLY_CONFIGURATION_NAME, LoomVersions.JAVAX_ANNOTATIONS.mavenNotation());
|
||||
|
||||
// Add Forge-only dev-time dependencies
|
||||
|
||||
Reference in New Issue
Block a user