Skip to content

Commit 08000ae

Browse files
committed
Update FCLGameLauncher.java
1 parent f504f88 commit 08000ae

File tree

1 file changed

+41
-13
lines changed

1 file changed

+41
-13
lines changed

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

Lines changed: 41 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@
3333
import com.tungsten.fclcore.util.Logging;
3434
import com.tungsten.fclcore.util.io.FileUtils;
3535
import com.tungsten.fclcore.util.versioning.GameVersionNumber;
36-
import com.tungsten.fclcore.util.versioning.VersionNumber;
3736
import com.tungsten.fcllibrary.util.LocaleUtils;
3837

3938
import java.io.BufferedReader;
@@ -73,37 +72,66 @@ private void generateOptionsTxt() {
7372
}
7473

7574
if (optionsFile.exists()) {
76-
modifyOptions(optionsFile, false);
75+
fixOptions(optionsFile);
7776
return;
7877
}
79-
String v = repository.getGameVersion(version).orElse("");
80-
if (v.startsWith("2.0")) v = "1.5.1";
81-
if (GameVersionNumber.compare(v, "1.5.2") <= 0)
82-
return;
8378
try {
8479
RuntimeUtils.copyAssets(context, "options.txt", optionsFile.getAbsolutePath());
8580
} catch (IOException e) {
8681
Logging.LOG.log(Level.WARNING, "Unable to generate options.txt", e);
8782
}
8883

89-
modifyOptions(optionsFile, true);
84+
modifyOptions(optionsFile);
9085
}
9186

92-
private void modifyOptions(File optionsFile, boolean overwrite) {
87+
private void modifyOptions(File optionsFile) {
9388
StringBuilder str = new StringBuilder();
9489
String lang;
95-
VersionNumber gameVersion = VersionNumber.asVersion(repository.getGameVersion(version).orElse("0.0"));
90+
boolean isChinese = LocaleUtils.isChinese(context);
91+
GameVersionNumber gameVersion = GameVersionNumber.asGameVersion(repository.getGameVersion(version).orElse("0.0"));
9692
if (gameVersion.compareTo("1.1") < 0) {
9793
lang = null;
9894
} else if (gameVersion.compareTo("1.11") < 0) {
99-
lang = "zh_CN";
95+
lang = isChinese ? "zh_CN" : "en_US";
10096
} else {
101-
lang = "zh_cn";
97+
lang = isChinese ? "zh_cn" : "en_us";
98+
}
99+
try (BufferedReader bfr = new BufferedReader(new FileReader(optionsFile))) {
100+
String line;
101+
while ((line = bfr.readLine()) != null) {
102+
if (line.contains("lang:") && lang != null) {
103+
str.append("lang:").append(lang).append("\n");
104+
} else {
105+
str.append(line).append("\n");
106+
}
107+
}
108+
} catch (Exception e) {
109+
Logging.LOG.log(Level.WARNING, "Unable to read options.txt.", e);
110+
}
111+
if (!str.toString().isEmpty()) {
112+
try (FileWriter fw = new FileWriter(optionsFile)) {
113+
fw.write(str.toString());
114+
} catch (IOException e) {
115+
Logging.LOG.log(Level.WARNING, "Unable to write options.txt.", e);
116+
}
117+
}
118+
}
119+
120+
private void fixOptions(File optionsFile) {
121+
StringBuilder str = new StringBuilder();
122+
GameVersionNumber gameVersion = GameVersionNumber.asGameVersion(repository.getGameVersion(version).orElse("0.0"));
123+
if (gameVersion.compareTo("1.1") < 0) {
124+
return;
102125
}
126+
boolean toUpper = gameVersion.compareTo("1.11") < 0;
103127
try (BufferedReader bfr = new BufferedReader(new FileReader(optionsFile))) {
104128
String line;
105129
while ((line = bfr.readLine()) != null) {
106-
if (line.contains("lang:") && LocaleUtils.isChinese(context) && overwrite && lang != null) {
130+
if (line.contains("lang:")) {
131+
String lang;
132+
lang = line.replace("lang:", "");
133+
String[] parts = lang.split("_", 2);
134+
lang = parts[0] + "_" + (toUpper ? parts[1].toUpperCase() : parts[1].toLowerCase());
107135
str.append("lang:").append(lang).append("\n");
108136
} else {
109137
str.append(line).append("\n");
@@ -112,7 +140,7 @@ private void modifyOptions(File optionsFile, boolean overwrite) {
112140
} catch (Exception e) {
113141
Logging.LOG.log(Level.WARNING, "Unable to read options.txt.", e);
114142
}
115-
if (!"".equals(str.toString())) {
143+
if (!str.toString().isEmpty()) {
116144
try (FileWriter fw = new FileWriter(optionsFile)) {
117145
fw.write(str.toString());
118146
} catch (IOException e) {

0 commit comments

Comments
 (0)