mirror of
https://github.com/architectury/architectury-loom.git
synced 2026-04-02 05:27:43 -05:00
Make LayeredMappingsDependency not error because of uninitialized MappingsProvider
Signed-off-by: shedaniel <daniel@shedaniel.me>
This commit is contained in:
@@ -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
|
||||
@@ -61,26 +62,9 @@ public class GradleMappingContext implements MappingContext {
|
||||
return extension.getMinecraftProvider();
|
||||
}
|
||||
|
||||
@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
|
||||
|
||||
@@ -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()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -41,8 +41,6 @@ public interface MappingContext {
|
||||
return minecraftProvider().minecraftVersion();
|
||||
}
|
||||
|
||||
File workingDirectory();
|
||||
|
||||
/**
|
||||
* Creates a temporary working dir to be used to store working files.
|
||||
*/
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user