Skip to content

Commit 384eaae

Browse files
authored
Added install-neoforge command (#317)
1 parent dc54dda commit 384eaae

20 files changed

+719
-396
lines changed

dev/curseforge.http

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,14 @@ x-api-key: {{cfApiKey}}
1010
GET https://api.curseforge.com/v1/mods/search?gameId=432&slug=jei&classId=6
1111
x-api-key: {{cfApiKey}}
1212

13+
### modpack that claims neoforge support...but uses 1.18.2 of Forge, which is not availalbe in NeoForge
14+
GET https://api.curseforge.com/v1/mods/search?gameId=432&slug=projekt-arcturus&classId=4471
15+
x-api-key: {{cfApiKey}}
16+
17+
###
18+
GET https://api.curseforge.com/v1/mods/644077/files/4772539
19+
x-api-key: {{cfApiKey}}
20+
1321
###
1422
# mod
1523
GET https://api.curseforge.com/v1/mods/238222

dev/modrinth.http

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
###
22
GET https://api.modrinth.com/v2/project/cobblemon-fabric
33

4+
###
5+
GET https://api.modrinth.com/v2/project/nerbvival
6+
7+
### Nerbvival v5
8+
GET https://api.modrinth.com/v2/version/ayspYmZQ
9+
410
###
511
GET https://api.modrinth.com/v2/projects?ids=["female-gender-spigot"]
612

src/main/java/me/itzg/helpers/McImageHelper.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import me.itzg.helpers.fabric.InstallFabricLoaderCommand;
2020
import me.itzg.helpers.find.FindCommand;
2121
import me.itzg.helpers.forge.InstallForgeCommand;
22+
import me.itzg.helpers.forge.InstallNeoForgeCommand;
2223
import me.itzg.helpers.get.GetCommand;
2324
import me.itzg.helpers.modrinth.InstallModrinthModpackCommand;
2425
import me.itzg.helpers.modrinth.ModrinthCommand;
@@ -63,6 +64,7 @@
6364
InstallFabricLoaderCommand.class,
6465
InstallForgeCommand.class,
6566
InstallModrinthModpackCommand.class,
67+
InstallNeoForgeCommand.class,
6668
InstallPaperCommand.class,
6769
InstallPurpurCommand.class,
6870
InstallQuiltCommand.class,

src/main/java/me/itzg/helpers/curseforge/CurseForgeInstaller.java

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
import me.itzg.helpers.files.Manifests;
4646
import me.itzg.helpers.files.ResultsFileWriter;
4747
import me.itzg.helpers.forge.ForgeInstaller;
48+
import me.itzg.helpers.forge.ForgeInstallerResolver;
4849
import me.itzg.helpers.http.FailedRequestException;
4950
import me.itzg.helpers.http.Fetch;
5051
import me.itzg.helpers.http.SharedFetch;
@@ -927,14 +928,17 @@ private void prepareModLoader(String id, String minecraftVersion) {
927928
throw new GenericException("Unknown modloader ID: " + id);
928929
}
929930

930-
switch (parts[0]) {
931-
case "forge":
932-
prepareForge(minecraftVersion, parts[1]);
933-
break;
931+
try (SharedFetch sharedFetch = Fetch.sharedFetch("install-curseforge", sharedFetchOptions)) {
934932

935-
case "fabric":
936-
prepareFabric(minecraftVersion, parts[1]);
937-
break;
933+
switch (parts[0]) {
934+
case "forge":
935+
prepareForge(sharedFetch, minecraftVersion, parts[1]);
936+
break;
937+
938+
case "fabric":
939+
prepareFabric(minecraftVersion, parts[1]);
940+
break;
941+
}
938942
}
939943
}
940944

@@ -944,9 +948,13 @@ private void prepareFabric(String minecraftVersion, String loaderVersion) {
944948
installer.installUsingVersions(minecraftVersion, loaderVersion, null);
945949
}
946950

947-
private void prepareForge(String minecraftVersion, String forgeVersion) {
948-
final ForgeInstaller installer = new ForgeInstaller();
949-
installer.install(minecraftVersion, forgeVersion, outputDir, resultsFile, false, null);
951+
private void prepareForge(SharedFetch sharedFetch, String minecraftVersion, String forgeVersion) {
952+
new ForgeInstaller(
953+
new ForgeInstallerResolver(sharedFetch,
954+
minecraftVersion, forgeVersion
955+
)
956+
)
957+
.install(outputDir, resultsFile, false, "Forge");
950958
}
951959

952960
private MinecraftModpackManifest extractModpackManifest(Path modpackZip) throws IOException {

src/main/java/me/itzg/helpers/files/ReactiveFileUtils.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,17 @@ public static Mono<Boolean> fileExists(Path file) {
3131
}
3232

3333
/**
34+
* Copies the given inputStream's content into outputFile and then closes inputStream.
3435
* @return Returned Mono is already subscribed on bounded elastic scheduler.
3536
*/
3637
public static Mono<Long> copyInputStreamToFile(InputStream inputStream, Path outputFile) {
37-
return Mono.fromCallable(() -> Files.copy(inputStream, outputFile, StandardCopyOption.REPLACE_EXISTING))
38+
return Mono.fromCallable(() -> {
39+
try {
40+
return Files.copy(inputStream, outputFile, StandardCopyOption.REPLACE_EXISTING);
41+
} finally {
42+
inputStream.close();
43+
}
44+
})
3845
.subscribeOn(Schedulers.boundedElastic());
3946
}
4047

0 commit comments

Comments
 (0)