fix neoforge modpack version error

This commit is contained in:
ShirosakiMio 2024-08-19 10:09:07 +08:00
parent cf278c11f8
commit 70222c93d2
3 changed files with 8 additions and 17 deletions

View File

@ -29,6 +29,7 @@ import com.tungsten.fclcore.util.gson.Validation;
import com.tungsten.fclcore.util.io.HttpRequest;
import com.tungsten.fclcore.util.versioning.VersionNumber;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
import java.util.concurrent.CompletableFuture;
@ -61,8 +62,7 @@ public final class NeoForgeBMCLVersionList extends VersionList<NeoForgeRemoteVer
@Override
public Optional<NeoForgeRemoteVersion> getVersion(String gameVersion, String remoteVersion) {
if (gameVersion.equals("1.20.1")) {
remoteVersion = NeoForgeRemoteVersion.fixInvalidVersion(remoteVersion);
remoteVersion = VersionNumber.compare(remoteVersion, "47.1.85") >= 0 ? "1.20.1-" + remoteVersion : remoteVersion;
remoteVersion = NeoForgeRemoteVersion.normalize(remoteVersion);
}
return super.getVersion(gameVersion, remoteVersion);
}
@ -78,16 +78,10 @@ public final class NeoForgeBMCLVersionList extends VersionList<NeoForgeRemoteVer
try {
versions.clear(gameVersion);
for (NeoForgeVersion neoForgeVersion : neoForgeVersions) {
String nf = StringUtils.removePrefix(
neoForgeVersion.version,
"1.20.1".equals(gameVersion) ? "1.20.1-forge-" : "neoforge-" // Som of the version numbers for 1.20.1 are like forge.
);
versions.put(gameVersion, new NeoForgeRemoteVersion(
neoForgeVersion.mcVersion,
nf,
Lang.immutableListOf(
apiRoot + "/neoforge/version/" + neoForgeVersion.version + "/download/installer.jar"
)
NeoForgeRemoteVersion.normalize(neoForgeVersion.version),
Collections.singletonList(apiRoot + "/neoforge/version/" + neoForgeVersion.version + "/download/installer.jar")
));
}
} finally {

View File

@ -31,10 +31,7 @@ public final class NeoForgeOfficialVersionList extends VersionList<NeoForgeRemot
@Override
public Optional<NeoForgeRemoteVersion> getVersion(String gameVersion, String remoteVersion) {
if (gameVersion.equals("1.20.1")) {
remoteVersion = NeoForgeRemoteVersion.fixInvalidVersion(remoteVersion);
if (!remoteVersion.equals("47.1.82")) {
remoteVersion = "1.20.1-" + remoteVersion;
}
remoteVersion = NeoForgeRemoteVersion.normalize(remoteVersion);
}
return super.getVersion(gameVersion, remoteVersion);
}
@ -52,7 +49,7 @@ public final class NeoForgeOfficialVersionList extends VersionList<NeoForgeRemot
for (String version : results[0].versions) {
versions.put("1.20.1", new NeoForgeRemoteVersion(
"1.20.1", StringUtils.removePrefix(version, "1.20.1-"),
"1.20.1", NeoForgeRemoteVersion.normalize(version),
Lang.immutableListOf(
downloadProvider.injectURL("https://maven.neoforged.net/releases/net/neoforged/forge/" + version + "/forge-" + version + "-installer.jar")
)
@ -63,7 +60,7 @@ public final class NeoForgeOfficialVersionList extends VersionList<NeoForgeRemot
int si1 = version.indexOf('.'), si2 = version.indexOf('.', version.indexOf('.') + 1);
String mcVersion = "1." + version.substring(0, Integer.parseInt(version.substring(si1 + 1, si2)) == 0 ? si1 : si2);
versions.put(mcVersion, new NeoForgeRemoteVersion(
mcVersion, version,
mcVersion, NeoForgeRemoteVersion.normalize(version),
Lang.immutableListOf(
downloadProvider.injectURL("https://maven.neoforged.net/releases/net/neoforged/neoforge/" + version + "/neoforge-" + version + "-installer.jar")
)

View File

@ -18,7 +18,7 @@ public class NeoForgeRemoteVersion extends RemoteVersion {
return new NeoForgeInstallTask(dependencyManager, baseVersion, this);
}
public static String fixInvalidVersion(String version) {
public static String normalize(String version) {
if (version.startsWith("1.20.1-")) {
if (version.startsWith("forge-", "1.20.1-".length())) {
return version.substring("1.20.1-forge-".length());