Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -971,11 +971,12 @@ private void prepareModLoader(String id, String minecraftVersion) {
throw new GenericException("Unknown modloader ID: " + id);
}

final String provider = parts[0];
final String loaderVersion = parts.length == 2 ? parts[1] : parts[2];

try (SharedFetch sharedFetch = Fetch.sharedFetch("install-curseforge", sharedFetchOptions)) {

switch (parts[0]) {
switch (provider) {
case "forge":
prepareForge(sharedFetch, minecraftVersion, loaderVersion);
break;
Expand All @@ -989,8 +990,11 @@ private void prepareModLoader(String id, String minecraftVersion) {
break;

default:
throw new InvalidParameterException(String.format("ModLoader %s is not yet supported", parts[0]));
throw new InvalidParameterException(String.format("ModLoader %s is not yet supported", provider));
}
} catch (InvalidParameterException e) {
throw new GenericException("Unable to prepare modpack's mod loader "
+ provider + " " + loaderVersion + " for Minecraft " + minecraftVersion, e);
}
}

Expand Down
12 changes: 10 additions & 2 deletions src/main/java/me/itzg/helpers/errors/ExceptionHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@ public int handleExecutionException(Exception e, CommandLine commandLine, ParseR
log.debug("Invalid parameter details", e);
}
else if (e instanceof FailedRequestException) {
logUnexpectedException(e, commandLine);
log.debug("Failed request details: {}", e.toString());
logExceptionWithoutStacktrace(e, commandLine);
log.debug("Failed request details", e);
}
else if (e instanceof RateLimitException) {
logUnexpectedException(e, commandLine);
Expand All @@ -55,4 +55,12 @@ private static void logUnexpectedException(Exception e, CommandLine commandLine)
e
);
}

private static void logExceptionWithoutStacktrace(Exception e, CommandLine commandLine) {
log.error("'{}' command failed. Version is {}: {}",
commandLine.getCommandName(),
McImageHelper.getVersion(),
ExceptionDetailer.buildCausalMessages(e)
);
}
}
3 changes: 2 additions & 1 deletion src/main/java/me/itzg/helpers/forge/ForgeInstaller.java
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,8 @@ public void install(

final VersionPair resolved = installerResolver.resolve();
if (resolved == null) {
throw new InvalidParameterException("Unable to find suitable version");
throw new InvalidParameterException("Unable to find suitable version for " +
installerResolver.getDescription());
}
log.debug("Resolved installer version={}", resolved);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,11 @@ public void cleanup(Path forgeInstallerJar) {
}
}

@Override
public String getDescription() {
return String.format("Minecraft %s Forge %s", requestedMinecraftVersion, requestedForgeVersion);
}

private PromotionsSlim loadPromotions() {
return sharedFetch.fetch(URI.create(promotionsUrl))
.userAgentCommand("forge")
Expand Down
2 changes: 2 additions & 0 deletions src/main/java/me/itzg/helpers/forge/InstallerResolver.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,6 @@ public interface InstallerResolver {
Path download(String minecraftVersion, String forgeVersion, Path outputDir);

void cleanup(Path forgeInstallerJar);

String getDescription();
}
Original file line number Diff line number Diff line change
Expand Up @@ -223,4 +223,9 @@ public void cleanup(Path forgeInstallerJar) {
log.warn("Failed to delete NeoForge installer", e);
}
}

@Override
public String getDescription() {
return String.format("Minecraft %s NeoForge %s", requestedMinecraftVersion, requestedNeoForgeVersion);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,11 @@ public void cleanup(Path forgeInstallerJar) {
// nothing needed
}

@Override
public String getDescription() {
return String.format("Provided installer %s", forgeInstaller.toString());
}

private VersionPair extractVersion(Path forgeInstaller) throws IOException {

final VersionPair fromVersionJson = IoStreams.readFileFromZip(forgeInstaller, "version.json",
Expand Down