From 4de37503a193d2f27c7f849ec457a6053c062d4c Mon Sep 17 00:00:00 2001 From: shedaniel Date: Mon, 11 Jan 2021 00:27:40 +0800 Subject: [PATCH] Make gradlew dependencies not break with mojmap --- .../mappings/MojangMappingsDependency.java | 69 ++++++++++++++++--- 1 file changed, 61 insertions(+), 8 deletions(-) diff --git a/src/main/java/net/fabricmc/loom/util/mappings/MojangMappingsDependency.java b/src/main/java/net/fabricmc/loom/util/mappings/MojangMappingsDependency.java index 6fd15bc6..d9901ddd 100644 --- a/src/main/java/net/fabricmc/loom/util/mappings/MojangMappingsDependency.java +++ b/src/main/java/net/fabricmc/loom/util/mappings/MojangMappingsDependency.java @@ -45,9 +45,12 @@ import org.cadixdev.lorenz.model.FieldMapping; import org.cadixdev.lorenz.model.InnerClassMapping; import org.cadixdev.lorenz.model.MethodMapping; import org.cadixdev.lorenz.model.TopLevelClassMapping; +import org.gradle.api.Action; import org.gradle.api.Project; -import org.gradle.api.artifacts.Dependency; -import org.gradle.api.artifacts.SelfResolvingDependency; +import org.gradle.api.artifacts.*; +import org.gradle.api.internal.artifacts.DefaultModuleIdentifier; +import org.gradle.api.internal.artifacts.ModuleVersionSelectorStrictSpec; +import org.gradle.api.internal.artifacts.dependencies.*; import org.gradle.api.tasks.TaskDependency; import org.zeroturnaround.zip.ByteSource; import org.zeroturnaround.zip.ZipEntrySource; @@ -59,7 +62,7 @@ import net.fabricmc.loom.util.MinecraftVersionInfo; import net.fabricmc.lorenztiny.TinyMappingsReader; import net.fabricmc.mapping.tree.TinyMappingFactory; -public class MojangMappingsDependency implements SelfResolvingDependency { +public class MojangMappingsDependency extends AbstractModuleDependency implements SelfResolvingDependency, ExternalModuleDependency { public static final String GROUP = "net.minecraft"; public static final String MODULE = "mappings"; // Keys in dependency manifest @@ -69,10 +72,50 @@ public class MojangMappingsDependency implements SelfResolvingDependency { private final Project project; private final LoomGradleExtension extension; + private boolean changing; + private boolean force; + public MojangMappingsDependency(Project project, LoomGradleExtension extension) { + super(null); this.project = project; this.extension = extension; } + + @Override + public ExternalModuleDependency copy() { + MojangMappingsDependency copiedProjectDependency = new MojangMappingsDependency(project, extension); + this.copyTo(copiedProjectDependency); + return copiedProjectDependency; + } + + @Override + public void version(Action action) { + + } + + @Override + public boolean isForce() { + return this.force; + } + + @Override + public ExternalModuleDependency setForce(boolean force) { + this.validateMutation(this.force, force); + this.force = force; + return this; + } + + @Override + public boolean isChanging() { + return this.changing; + } + + @Override + public ExternalModuleDependency setChanging(boolean changing) { + this.validateMutation(this.changing, changing); + this.changing = changing; + return this; + } @Override public Set resolve() { @@ -207,6 +250,21 @@ public class MojangMappingsDependency implements SelfResolvingDependency { return extension.getMinecraftProvider().getMinecraftVersion(); } + @Override + public VersionConstraint getVersionConstraint() { + return new DefaultMutableVersionConstraint(getVersion()); + } + + @Override + public boolean matchesStrictly(ModuleVersionIdentifier identifier) { + return (new ModuleVersionSelectorStrictSpec(this)).isSatisfiedBy(identifier); + } + + @Override + public ModuleIdentifier getModule() { + return DefaultModuleIdentifier.newId(GROUP, MODULE); + } + @Override public boolean contentEquals(Dependency dependency) { if (dependency instanceof MojangMappingsDependency) { @@ -216,11 +274,6 @@ public class MojangMappingsDependency implements SelfResolvingDependency { return false; } - @Override - public Dependency copy() { - return new MojangMappingsDependency(project, extension); - } - @Override public String getReason() { return null;