diff options
author | shedaniel <daniel@shedaniel.me> | 2021-08-26 21:50:19 +0800 |
---|---|---|
committer | shedaniel <daniel@shedaniel.me> | 2021-08-26 21:50:19 +0800 |
commit | d819b1cc47b26572ab6af85258e54d5737bead69 (patch) | |
tree | 8b58caf8a548a126f14a103cd2708611734c2fc1 /src/main | |
parent | 960c7de6e4f330a821ce94576a6acb7c13fa7cd7 (diff) | |
download | architectury-loom-d819b1cc47b26572ab6af85258e54d5737bead69.tar.gz architectury-loom-d819b1cc47b26572ab6af85258e54d5737bead69.tar.bz2 architectury-loom-d819b1cc47b26572ab6af85258e54d5737bead69.zip |
Make LayeredMappingsDependency not error because of uninitialized MappingsProvider
Signed-off-by: shedaniel <daniel@shedaniel.me>
Diffstat (limited to 'src/main')
5 files changed, 11 insertions, 32 deletions
diff --git a/src/main/java/net/fabricmc/loom/configuration/providers/mappings/GradleMappingContext.java b/src/main/java/net/fabricmc/loom/configuration/providers/mappings/GradleMappingContext.java index bb2de17d..047d75af 100644 --- a/src/main/java/net/fabricmc/loom/configuration/providers/mappings/GradleMappingContext.java +++ b/src/main/java/net/fabricmc/loom/configuration/providers/mappings/GradleMappingContext.java @@ -38,11 +38,12 @@ import net.fabricmc.loom.configuration.providers.MinecraftProvider; public class GradleMappingContext implements MappingContext { private final Project project; private final LoomGradleExtension extension; - private File workingDir; + private final String workingDirName; - public GradleMappingContext(Project project) { + public GradleMappingContext(Project project, String workingDirName) { this.project = project; this.extension = LoomGradleExtension.get(project); + this.workingDirName = workingDirName; } @Override @@ -62,25 +63,8 @@ public class GradleMappingContext implements MappingContext { } @Override - public File workingDirectory() { - if (workingDir == null) { - workingDir = new File(mappingsProvider().mappingsWorkingDir().toFile(), "layered/" + minecraftProvider().minecraftVersion()); - - if (workingDir.exists()) { - try { - FileUtils.deleteDirectory(workingDir); - } catch (IOException e) { - getLogger().warn("Failed to cleanup layered mappings working directory: {}", e.getMessage()); - } - } - } - - return workingDir; - } - - @Override public File workingDirectory(String name) { - return new File(workingDirectory(), name); + return new File(minecraftProvider().dir("layered/working_dir/" + workingDirName), name); } @Override diff --git a/src/main/java/net/fabricmc/loom/configuration/providers/mappings/LayeredMappingSpec.java b/src/main/java/net/fabricmc/loom/configuration/providers/mappings/LayeredMappingSpec.java index f42a3289..2e47af39 100644 --- a/src/main/java/net/fabricmc/loom/configuration/providers/mappings/LayeredMappingSpec.java +++ b/src/main/java/net/fabricmc/loom/configuration/providers/mappings/LayeredMappingSpec.java @@ -27,8 +27,8 @@ package net.fabricmc.loom.configuration.providers.mappings; import java.util.List; public record LayeredMappingSpec(List<MappingsSpec<?>> layers) { - public String getVersion(MappingContext context) { + public String getVersion() { // TODO something better? - return "layered+hash.%d.minecraft.%s".formatted(Math.abs(hashCode()), context.minecraftVersion()); + return "layered+hash.%d".formatted(Math.abs(hashCode())); } } diff --git a/src/main/java/net/fabricmc/loom/configuration/providers/mappings/LayeredMappingsDependency.java b/src/main/java/net/fabricmc/loom/configuration/providers/mappings/LayeredMappingsDependency.java index 35a159d7..878a37e4 100644 --- a/src/main/java/net/fabricmc/loom/configuration/providers/mappings/LayeredMappingsDependency.java +++ b/src/main/java/net/fabricmc/loom/configuration/providers/mappings/LayeredMappingsDependency.java @@ -54,11 +54,12 @@ public class LayeredMappingsDependency implements SelfResolvingDependency { private final MappingContext mappingContext; private final LayeredMappingSpec layeredMappingSpec; - private String version = null; + private final String version; - public LayeredMappingsDependency(MappingContext mappingContext, LayeredMappingSpec layeredMappingSpec) { + public LayeredMappingsDependency(MappingContext mappingContext, LayeredMappingSpec layeredMappingSpec, String version) { this.mappingContext = mappingContext; this.layeredMappingSpec = layeredMappingSpec; + this.version = version; } @Override @@ -114,10 +115,6 @@ public class LayeredMappingsDependency implements SelfResolvingDependency { @Override public String getVersion() { - if (version == null) { - version = layeredMappingSpec.getVersion(mappingContext); - } - return version; } @@ -132,7 +129,7 @@ public class LayeredMappingsDependency implements SelfResolvingDependency { @Override public Dependency copy() { - return new LayeredMappingsDependency(mappingContext, layeredMappingSpec); + return new LayeredMappingsDependency(mappingContext, layeredMappingSpec, version); } @Override diff --git a/src/main/java/net/fabricmc/loom/configuration/providers/mappings/MappingContext.java b/src/main/java/net/fabricmc/loom/configuration/providers/mappings/MappingContext.java index 0ccd61ea..3fbfb655 100644 --- a/src/main/java/net/fabricmc/loom/configuration/providers/mappings/MappingContext.java +++ b/src/main/java/net/fabricmc/loom/configuration/providers/mappings/MappingContext.java @@ -41,8 +41,6 @@ public interface MappingContext { return minecraftProvider().minecraftVersion(); } - File workingDirectory(); - /** * Creates a temporary working dir to be used to store working files. */ diff --git a/src/main/java/net/fabricmc/loom/extension/LoomGradleExtensionApiImpl.java b/src/main/java/net/fabricmc/loom/extension/LoomGradleExtensionApiImpl.java index 6ff2c826..5feeafbe 100644 --- a/src/main/java/net/fabricmc/loom/extension/LoomGradleExtensionApiImpl.java +++ b/src/main/java/net/fabricmc/loom/extension/LoomGradleExtensionApiImpl.java @@ -166,7 +166,7 @@ public abstract class LoomGradleExtensionApiImpl implements LoomGradleExtensionA LayeredMappingSpecBuilder builder = new LayeredMappingSpecBuilder(this); action.execute(builder); LayeredMappingSpec builtSpec = builder.build(); - return new LayeredMappingsDependency(new GradleMappingContext(getProject()), builtSpec); + return new LayeredMappingsDependency(new GradleMappingContext(getProject(), builtSpec.getVersion().replace("+", "_").replace(".", "_")), builtSpec, builtSpec.getVersion()); } protected abstract String getMinecraftVersion(); |