Try to cleanup files when failing better, should hopefully increase the changes of things working on a subsequent run.

Also improve the error message a little.
This commit is contained in:
modmuss50
2021-03-18 22:00:06 +00:00
parent c033246a9f
commit 8e424f3f50
4 changed files with 14 additions and 5 deletions

View File

@@ -130,7 +130,7 @@ public class LoomDependencyManager {
try {
provider.provide(info, afterTasks::add);
} catch (Exception e) {
throw new RuntimeException("Failed to provide " + dependency.getGroup() + ":" + dependency.getName() + ":" + dependency.getVersion() + " : " + e.toString(), e);
throw new RuntimeException("Failed to provide " + dependency.getGroup() + ":" + dependency.getName() + ":" + dependency.getVersion() + " : " + e.toString() + "\n\tEnsure minecraft is not open and try running with --refresh-dependencies. Use --stacktrace to see the full stacktrace.", e);
}
}
}

View File

@@ -102,8 +102,7 @@ public class MinecraftProvider extends DependencyProvider {
try {
mergeJars(getProject().getLogger());
} catch (ZipError e) {
DownloadUtil.delete(minecraftClientJar);
DownloadUtil.delete(minecraftServerJar);
deleteFiles();
getProject().getLogger().error("Could not merge JARs! Deleting source JARs - please re-run the command and move on.", e);
throw new RuntimeException();
@@ -119,6 +118,12 @@ public class MinecraftProvider extends DependencyProvider {
versionManifestJson = new File(getExtension().getUserCache(), "version_manifest.json");
}
public void deleteFiles() {
DownloadUtil.delete(minecraftClientJar);
DownloadUtil.delete(minecraftServerJar);
DownloadUtil.delete(minecraftMergedJar);
}
private void downloadMcJson(boolean offline) throws IOException {
if (getExtension().isShareCaches() && !getExtension().isRootProject() && versionManifestJson.exists() && !isRefreshDeps()) {
return;

View File

@@ -38,6 +38,7 @@ import net.fabricmc.loom.configuration.DependencyProvider;
import net.fabricmc.loom.configuration.providers.MinecraftProvider;
import net.fabricmc.loom.configuration.providers.mappings.MappingsProvider;
import net.fabricmc.loom.util.Constants;
import net.fabricmc.loom.util.DownloadUtil;
import net.fabricmc.loom.util.TinyRemapperMappingsHelper;
import net.fabricmc.tinyremapper.OutputConsumerPath;
import net.fabricmc.tinyremapper.TinyRemapper;
@@ -83,8 +84,9 @@ public class MinecraftMappedProvider extends DependencyProvider {
mapMinecraftJar();
} catch (Throwable t) {
// Cleanup some some things that may be in a bad state now
minecraftMappedJar.delete();
minecraftIntermediaryJar.delete();
DownloadUtil.delete(minecraftMappedJar);
DownloadUtil.delete(minecraftIntermediaryJar);
getExtension().getMinecraftProvider().deleteFiles();
getExtension().getMappingsProvider().cleanFiles();
throw new RuntimeException("Failed to remap minecraft", t);
}

View File

@@ -219,5 +219,7 @@ public class DownloadUtil {
if (etagFile.exists()) {
etagFile.delete();
}
HashedDownloadUtil.delete(file);
}
}