Skip to content

Commit de570e6

Browse files
authored
auto-cf: support three-part modloader IDs (#473)
1 parent 369e035 commit de570e6

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

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

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -941,24 +941,28 @@ private boolean isServerMod(CurseForgeFile file) {
941941
private void prepareModLoader(String id, String minecraftVersion) {
942942
log.debug("Preparing mod loader given id={} minecraftVersion={}", id, minecraftVersion);
943943

944-
final String[] parts = id.split("-", 2);
945-
if (parts.length != 2) {
944+
// id could be values like
945+
// neoforge-1.20.1-47.1.99
946+
final String[] parts = id.split("-", 3);
947+
if (parts.length < 2) {
946948
throw new GenericException("Unknown modloader ID: " + id);
947949
}
948950

951+
final String loaderVersion = parts.length == 2 ? parts[1] : parts[2];
952+
949953
try (SharedFetch sharedFetch = Fetch.sharedFetch("install-curseforge", sharedFetchOptions)) {
950954

951955
switch (parts[0]) {
952956
case "forge":
953-
prepareForge(sharedFetch, minecraftVersion, parts[1]);
957+
prepareForge(sharedFetch, minecraftVersion, loaderVersion);
954958
break;
955959

956960
case "neoforge":
957-
prepareNeoForge(sharedFetch, minecraftVersion, parts[1]);
961+
prepareNeoForge(sharedFetch, minecraftVersion, loaderVersion);
958962
break;
959963

960964
case "fabric":
961-
prepareFabric(minecraftVersion, parts[1]);
965+
prepareFabric(minecraftVersion, loaderVersion);
962966
break;
963967

964968
default:

0 commit comments

Comments
 (0)