Skip to content

Commit f504f88

Browse files
committed
fix: 优化启动器内的游戏版本判断
1 parent b86ad45 commit f504f88

File tree

6 files changed

+17
-20
lines changed

6 files changed

+17
-20
lines changed

FCL/src/main/java/com/mio/minecraft/ModChecker.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import com.tungsten.fclauncher.bridge.FCLBridge
99
import com.tungsten.fclauncher.plugins.FFmpegPlugin
1010
import com.tungsten.fclauncher.utils.Architecture
1111
import com.tungsten.fclcore.mod.LocalModFile
12+
import com.tungsten.fclcore.util.versioning.GameVersionNumber
1213
import com.tungsten.fclcore.util.versioning.VersionNumber
1314
import kotlin.jvm.Throws
1415

@@ -118,7 +119,7 @@ class ModChecker(val context: Context, val version: String) {
118119
}
119120

120121
"sodium", "embeddium" -> {
121-
if (version.isNotEmpty() && bridge.renderer == RendererManager.RENDERER_GL4ES.name && VersionNumber.compare(
122+
if (version.isNotEmpty() && bridge.renderer == RendererManager.RENDERER_GL4ES.name && GameVersionNumber.compare(
122123
version,
123124
"1.17"
124125
) >= 0

FCL/src/main/java/com/tungsten/fcl/game/LauncherHelper.java

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@
7878
import com.tungsten.fclcore.util.Logging;
7979
import com.tungsten.fclcore.util.StringUtils;
8080
import com.tungsten.fclcore.util.io.ResponseCodeException;
81-
import com.tungsten.fclcore.util.versioning.VersionNumber;
81+
import com.tungsten.fclcore.util.versioning.GameVersionNumber;
8282
import com.tungsten.fcllibrary.component.dialog.FCLAlertDialog;
8383
import com.tungsten.fcllibrary.component.dialog.FCLDialog;
8484
import com.tungsten.fcllibrary.component.view.FCLButton;
@@ -344,16 +344,12 @@ private Task<FCLBridge> checkPathValid(FCLBridge bridge, FCLGameRepository repos
344344
}
345345

346346
private Task<FCLBridge> checkRenderer(FCLBridge bridge, Renderer renderer, String version) {
347-
if (version.startsWith("2.0")) {
348-
version = "1.5.1";
349-
}
350-
String finalVersion = version;
351347
return Task.composeAsync(() -> {
352348
try {
353349
CompletableFuture<Task<FCLBridge>> future = new CompletableFuture<>();
354-
if (!finalVersion.isEmpty()) {
350+
if (!version.isEmpty()) {
355351
if (!renderer.getMinMCver().isEmpty()) {
356-
if (VersionNumber.compare(finalVersion, renderer.getMinMCver()) < 0) {
352+
if (GameVersionNumber.compare(version, renderer.getMinMCver()) < 0) {
357353
Schedulers.androidUIThread().execute(() -> new FCLAlertDialog.Builder(context)
358354
.setCancelable(false)
359355
.setMessage(context.getString(R.string.message_check_renderer, renderer.getName()))
@@ -363,7 +359,7 @@ private Task<FCLBridge> checkRenderer(FCLBridge bridge, Renderer renderer, Strin
363359
}
364360
}
365361
if (!renderer.getMaxMCver().isEmpty()) {
366-
if (VersionNumber.compare(finalVersion, renderer.getMaxMCver()) > 0) {
362+
if (GameVersionNumber.compare(version, renderer.getMaxMCver()) > 0) {
367363
Schedulers.androidUIThread().execute(() -> new FCLAlertDialog.Builder(context)
368364
.setCancelable(false)
369365
.setMessage(context.getString(R.string.message_check_renderer, renderer.getName()))

FCL/src/main/java/com/tungsten/fcl/ui/InstallerItem.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
import com.tungsten.fclcore.fakefx.beans.property.SimpleObjectProperty;
3131
import com.tungsten.fclcore.fakefx.beans.property.SimpleStringProperty;
3232
import com.tungsten.fclcore.fakefx.beans.property.StringProperty;
33-
import com.tungsten.fclcore.util.versioning.VersionNumber;
33+
import com.tungsten.fclcore.util.versioning.GameVersionNumber;
3434
import com.tungsten.fcllibrary.component.theme.ThemeEngine;
3535
import com.tungsten.fcllibrary.component.view.FCLImageButton;
3636
import com.tungsten.fcllibrary.component.view.FCLImageView;
@@ -206,7 +206,7 @@ public InstallerItemGroup(Context context, String gameVersion) {
206206
this.libraries = new InstallerItem[]{forge, neoForge, liteLoader, optiFine, fabric, fabricApi, quilt, quiltApi, cleanroom};
207207
} else if (gameVersion.equals("1.12.2")) {
208208
this.libraries = new InstallerItem[]{forge, cleanroom, liteLoader, optiFine};
209-
} else if (VersionNumber.compare(gameVersion, "1.13") < 0) {
209+
} else if (GameVersionNumber.compare(gameVersion, "1.13") < 0) {
210210
this.libraries = new InstallerItem[]{forge, liteLoader, optiFine};
211211
} else {
212212
this.libraries = new InstallerItem[]{forge, neoForge, optiFine, fabric, fabricApi, quilt, quiltApi};

FCLCore/src/main/java/com/tungsten/fclcore/download/forge/ForgeInstallTask.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
import com.tungsten.fclcore.util.gson.JsonUtils;
3333
import com.tungsten.fclcore.util.io.CompressingUtils;
3434
import com.tungsten.fclcore.util.io.FileUtils;
35-
import com.tungsten.fclcore.util.versioning.VersionNumber;
35+
import com.tungsten.fclcore.util.versioning.GameVersionNumber;
3636

3737
import java.io.IOException;
3838
import java.nio.file.FileSystem;
@@ -100,7 +100,7 @@ public Collection<Task<?>> getDependencies() {
100100
@Override
101101
public void execute() throws IOException, VersionMismatchException, UnsupportedInstallationException {
102102
String originalMainClass = version.resolve(dependencyManager.getGameRepository()).getMainClass();
103-
if (VersionNumber.compare("1.13", remote.getGameVersion()) <= 0) {
103+
if (GameVersionNumber.compare("1.13", remote.getGameVersion()) <= 0) {
104104
// Forge 1.13 is not compatible with fabric.
105105
if (!LibraryAnalyzer.FORGE_OPTIFINE_MAIN.contains(originalMainClass))
106106
throw new UnsupportedInstallationException(UNSUPPORTED_LAUNCH_WRAPPER);

FCLCore/src/main/java/com/tungsten/fclcore/download/game/GameVerificationFixTask.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import com.tungsten.fclcore.game.Version;
2323
import com.tungsten.fclcore.task.Task;
2424
import com.tungsten.fclcore.util.io.CompressingUtils;
25-
import com.tungsten.fclcore.util.versioning.VersionNumber;
25+
import com.tungsten.fclcore.util.versioning.GameVersionNumber;
2626

2727
import java.io.File;
2828
import java.io.IOException;
@@ -64,12 +64,12 @@ public void execute() throws IOException {
6464
File jar = dependencyManager.getGameRepository().getVersionJar(version);
6565
LibraryAnalyzer analyzer = LibraryAnalyzer.analyze(version, gameVersion);
6666

67-
if (jar.exists() && VersionNumber.compare(gameVersion, "1.6") < 0 && analyzer.has(LibraryAnalyzer.LibraryType.FORGE)) {
67+
if (jar.exists() && GameVersionNumber.compare(gameVersion, "1.6") < 0 && analyzer.has(LibraryAnalyzer.LibraryType.FORGE)) {
6868
try (FileSystem fs = CompressingUtils.createWritableZipFileSystem(jar.toPath(), StandardCharsets.UTF_8)) {
6969
Files.deleteIfExists(fs.getPath("META-INF/MOJANG_C.DSA"));
7070
Files.deleteIfExists(fs.getPath("META-INF/MOJANG_C.SF"));
7171
}
7272
}
7373
}
74-
74+
7575
}

FCLCore/src/main/java/com/tungsten/fclcore/launch/DefaultLauncher.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
import com.tungsten.fclcore.util.io.IOUtils;
4747
import com.tungsten.fclcore.util.platform.CommandBuilder;
4848
import com.tungsten.fclcore.util.platform.OperatingSystem;
49-
import com.tungsten.fclcore.util.versioning.VersionNumber;
49+
import com.tungsten.fclcore.util.versioning.GameVersionNumber;
5050

5151
import org.jackhuang.hmcl.util.ServerAddress;
5252

@@ -262,7 +262,7 @@ private CommandBuilder generateCommandLine() throws IOException {
262262
if (StringUtils.isNotBlank(address)) {
263263
try {
264264
ServerAddress parsed = ServerAddress.parse(address);
265-
if (VersionNumber.compare(repository.getGameVersion(version).orElse("0.0"), "1.20") < 0) {
265+
if (GameVersionNumber.compare(repository.getGameVersion(version).orElse("0.0"), "1.20") < 0) {
266266
res.add("--server");
267267
res.add(parsed.getHost());
268268
res.add("--port");
@@ -403,7 +403,7 @@ protected void appendJvmArgs(CommandBuilder result) {
403403
}
404404

405405
private boolean isUsingLog4j() {
406-
return VersionNumber.compare(repository.getGameVersion(version).orElse("1.7"), "1.7") >= 0;
406+
return GameVersionNumber.compare(repository.getGameVersion(version).orElse("1.7"), "1.7") >= 0;
407407
}
408408

409409
public File getLog4jConfigurationFile() {
@@ -414,7 +414,7 @@ public void extractLog4jConfigurationFile() throws IOException {
414414
File targetFile = getLog4jConfigurationFile();
415415
if (targetFile.exists()) return;
416416
InputStream source;
417-
if (VersionNumber.compare(repository.getGameVersion(version).orElse("0.0"), "1.12") < 0) {
417+
if (GameVersionNumber.compare(repository.getGameVersion(version).orElse("0.0"), "1.12") < 0) {
418418
source = DefaultLauncher.class.getResourceAsStream("/assets/game/log4j2-1.7.xml");
419419
} else {
420420
source = DefaultLauncher.class.getResourceAsStream("/assets/game/log4j2-1.12.xml");

0 commit comments

Comments
 (0)