Skip to content

Commit 10e2974

Browse files
committed
UPDATE
1 parent 66e75fd commit 10e2974

3 files changed

Lines changed: 15 additions & 40 deletions

File tree

HMCLCore/src/main/java/org/jackhuang/hmcl/download/LibraryAnalyzer.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,12 @@ public Set<ModLoaderType> getModLoaders() {
187187
.collect(Collectors.toSet());
188188
}
189189

190+
public Set<LibraryType> getLibraries() {
191+
return Arrays.stream(LibraryType.values())
192+
.filter(this::has)
193+
.collect(Collectors.toSet());
194+
}
195+
190196
public enum LibraryType {
191197
MINECRAFT(true, "game", "^$", "^$", null),
192198
LEGACY_FABRIC(true, "legacyfabric", "net\\.fabricmc", "fabric-loader", ModLoaderType.LEGACY_FABRIC) {

HMCLCore/src/main/java/org/jackhuang/hmcl/launch/DefaultLauncher.java

Lines changed: 4 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import org.jackhuang.hmcl.auth.AuthInfo;
2121
import org.jackhuang.hmcl.download.LibraryAnalyzer;
2222
import org.jackhuang.hmcl.game.*;
23+
import org.jackhuang.hmcl.mod.ModLoaderType;
2324
import org.jackhuang.hmcl.util.Lang;
2425
import org.jackhuang.hmcl.util.ServerAddress;
2526
import org.jackhuang.hmcl.util.StringUtils;
@@ -579,29 +580,9 @@ private Map<String, String> getEnvVars() {
579580
}
580581
}
581582

582-
if (analyzer.has(LibraryAnalyzer.LibraryType.FORGE)) {
583-
env.put("INST_FORGE", "1");
584-
}
585-
if (analyzer.has(LibraryAnalyzer.LibraryType.CLEANROOM)) {
586-
env.put("INST_CLEANROOM", "1");
587-
}
588-
if (analyzer.has(LibraryAnalyzer.LibraryType.NEO_FORGE)) {
589-
env.put("INST_NEOFORGE", "1");
590-
}
591-
if (analyzer.has(LibraryAnalyzer.LibraryType.LITELOADER)) {
592-
env.put("INST_LITELOADER", "1");
593-
}
594-
if (analyzer.has(LibraryAnalyzer.LibraryType.FABRIC)) {
595-
env.put("INST_FABRIC", "1");
596-
}
597-
if (analyzer.has(LibraryAnalyzer.LibraryType.OPTIFINE)) {
598-
env.put("INST_OPTIFINE", "1");
599-
}
600-
if (analyzer.has(LibraryAnalyzer.LibraryType.QUILT)) {
601-
env.put("INST_QUILT", "1");
602-
}
603-
if (analyzer.has(LibraryAnalyzer.LibraryType.LEGACY_FABRIC)) {
604-
env.put("INST_LEGACYFABRIC", "1");
583+
for (ModLoaderType type : analyzer.getModLoaders()) {
584+
if (type == ModLoaderType.NEO_FORGED) env.put("INST_NEOFORGE", "1");
585+
else env.put("INST_" + type.name().toUpperCase(Locale.ROOT), "1");
605586
}
606587

607588
env.putAll(options.getEnvironmentVariables());

HMCLCore/src/main/java/org/jackhuang/hmcl/mod/mcbbs/McbbsModpackExportTask.java

Lines changed: 5 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -94,23 +94,11 @@ public void execute() throws Exception {
9494

9595
// Mcbbs manifest
9696
List<McbbsModpackManifest.Addon> addons = new ArrayList<>();
97-
addons.add(new McbbsModpackManifest.Addon(MINECRAFT.getPatchId(), gameVersion));
98-
analyzer.getVersion(FORGE).ifPresent(forgeVersion ->
99-
addons.add(new McbbsModpackManifest.Addon(FORGE.getPatchId(), forgeVersion)));
100-
analyzer.getVersion(CLEANROOM).ifPresent(cleanroomVersion ->
101-
addons.add(new McbbsModpackManifest.Addon(CLEANROOM.getPatchId(), cleanroomVersion)));
102-
analyzer.getVersion(NEO_FORGE).ifPresent(neoForgeVersion ->
103-
addons.add(new McbbsModpackManifest.Addon(NEO_FORGE.getPatchId(), neoForgeVersion)));
104-
analyzer.getVersion(LITELOADER).ifPresent(liteLoaderVersion ->
105-
addons.add(new McbbsModpackManifest.Addon(LITELOADER.getPatchId(), liteLoaderVersion)));
106-
analyzer.getVersion(OPTIFINE).ifPresent(optifineVersion ->
107-
addons.add(new McbbsModpackManifest.Addon(OPTIFINE.getPatchId(), optifineVersion)));
108-
analyzer.getVersion(FABRIC).ifPresent(fabricVersion ->
109-
addons.add(new McbbsModpackManifest.Addon(FABRIC.getPatchId(), fabricVersion)));
110-
analyzer.getVersion(QUILT).ifPresent(quiltVersion ->
111-
addons.add(new McbbsModpackManifest.Addon(QUILT.getPatchId(), quiltVersion)));
112-
analyzer.getVersion(LEGACY_FABRIC).ifPresent(legacyfabricVersion ->
113-
addons.add(new McbbsModpackManifest.Addon(LEGACY_FABRIC.getPatchId(), legacyfabricVersion)));
97+
98+
for (LibraryAnalyzer.LibraryType type : analyzer.getLibraries()) {
99+
if (type == MINECRAFT) addons.add(new McbbsModpackManifest.Addon(MINECRAFT.getPatchId(), gameVersion));
100+
else addons.add(new McbbsModpackManifest.Addon(type.getPatchId(), analyzer.getVersion(type).orElseThrow()));
101+
}
114102

115103
List<Library> libraries = new ArrayList<>();
116104
// TODO libraries

0 commit comments

Comments
 (0)