Skip to content

Commit fba65fa

Browse files
committed
Merge branch 'unlisted'
2 parents c866362 + 8b54097 commit fba65fa

File tree

12 files changed

+1481
-6
lines changed

12 files changed

+1481
-6
lines changed

FCL/src/main/assets/game/unlisted-versions.json

Lines changed: 1432 additions & 0 deletions
Large diffs are not rendered by default.

FCL/src/main/java/com/tungsten/fcl/ui/download/InstallVersionPage.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,8 @@ private List<RemoteVersion> loadVersions() {
8484
switch (it.getVersionType()) {
8585
case RELEASE:
8686
return checkRelease.isChecked();
87+
case PENDING:
88+
case UNOBFUSCATED:
8789
case SNAPSHOT:
8890
if (checkSnapShot.isChecked()) return true;
8991
else if (checkAprilFools.isChecked())

FCL/src/main/java/com/tungsten/fcl/ui/download/RemoteVersionListAdapter.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import com.tungsten.fclcore.download.optifine.OptiFineRemoteVersion;
2626
import com.tungsten.fclcore.download.quilt.QuiltAPIRemoteVersion;
2727
import com.tungsten.fclcore.download.quilt.QuiltRemoteVersion;
28+
import com.tungsten.fclcore.util.versioning.GameVersionNumber;
2829
import com.tungsten.fcllibrary.component.FCLAdapter;
2930
import com.tungsten.fcllibrary.component.theme.ThemeEngine;
3031
import com.tungsten.fcllibrary.component.view.FCLImageButton;
@@ -137,7 +138,12 @@ else if (remoteVersion instanceof GameRemoteVersion) {
137138
switch (remoteVersion.getVersionType()) {
138139
case RELEASE:
139140
return getContext().getDrawable(R.drawable.img_grass);
141+
case PENDING:
142+
case UNOBFUSCATED:
140143
case SNAPSHOT:
144+
if (GameVersionNumber.asGameVersion(remoteVersion.getGameVersion()).isAprilFools()) {
145+
return getContext().getDrawable(R.drawable.april_fools);
146+
}
141147
return getContext().getDrawable(R.drawable.img_command);
142148
default:
143149
return getContext().getDrawable(R.drawable.img_craft_table);
@@ -152,6 +158,8 @@ private String getTag(RemoteVersion remoteVersion) {
152158
switch (remoteVersion.getVersionType()) {
153159
case RELEASE:
154160
return getContext().getString(R.string.version_game_release);
161+
case UNOBFUSCATED:
162+
case PENDING:
155163
case SNAPSHOT:
156164
return getContext().getString(R.string.version_game_snapshot);
157165
default:
5.42 KB
Loading

FCLCore/src/main/java/com/tungsten/fclcore/download/BMCLAPIDownloadProvider.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,8 @@ public BMCLAPIDownloadProvider(String apiRoot) {
7878
pair("https://authlib-injector.yushi.moe", apiRoot + "/mirrors/authlib-injector"),
7979
pair("https://repo1.maven.org/maven2", "https://mirrors.cloud.tencent.com/nexus/repository/maven-public"),
8080
pair("https://repo.maven.apache.org/maven2", "https://mirrors.cloud.tencent.com/nexus/repository/maven-public"),
81-
pair("https://hmcl-dev.github.io/metadata/cleanroom", "https://alist.8mi.tech/d/mirror/HMCL-Metadata/Auto/cleanroom")
81+
pair("https://hmcl.glavo.site/metadata/cleanroom", "https://alist.8mi.tech/d/mirror/HMCL-Metadata/Auto/cleanroom"),
82+
pair("https://zkitefly.github.io/unlisted-versions-of-minecraft", "https://alist.8mi.tech/d/mirror/unlisted-versions-of-minecraft/Auto")
8283
// https://github.com/mcmod-info-mirror/mcim-rust-api
8384
// pair("https://api.modrinth.com", "https://mod.mcimirror.top/modrinth"),
8485
// pair("https://cdn.modrinth.com", "https://mod.mcimirror.top"),

FCLCore/src/main/java/com/tungsten/fclcore/download/RemoteVersion.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,8 @@ public enum Type {
125125
UNCATEGORIZED,
126126
RELEASE,
127127
SNAPSHOT,
128-
OLD
128+
OLD,
129+
PENDING,
130+
UNOBFUSCATED
129131
}
130132
}

FCLCore/src/main/java/com/tungsten/fclcore/download/cleanroom/CleanroomVersionList.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@
3131

3232
public final class CleanroomVersionList extends VersionList<CleanroomRemoteVersion> {
3333
private final DownloadProvider downloadProvider;
34-
private static final String LOADER_LIST_URL = "https://hmcl-dev.github.io/metadata/cleanroom/index.json";
35-
private static final String INSTALLER_URL = "https://hmcl-dev.github.io/metadata/cleanroom/files/cleanroom-%s-installer.jar";
34+
private static final String LOADER_LIST_URL = "https://hmcl.glavo.site/metadata/cleanroom/index.json";
35+
private static final String INSTALLER_URL = "https://hmcl.glavo.site/metadata/cleanroom/files/cleanroom-%s-installer.jar";
3636

3737
public CleanroomVersionList(DownloadProvider downloadProvider) {
3838
this.downloadProvider = downloadProvider;

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,5 +101,5 @@ public CompletableFuture<?> refreshAsync() {
101101
});
102102
}
103103

104-
public static final String FORGE_LIST = "https://hmcl-dev.github.io/metadata/forge/";
104+
public static final String FORGE_LIST = "https://hmcl.glavo.site/metadata/forge/";
105105
}

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,10 @@ private static Type getReleaseType(ReleaseType type) {
6363
return Type.SNAPSHOT;
6464
case UNKNOWN:
6565
return Type.UNCATEGORIZED;
66+
case PENDING:
67+
return Type.PENDING;
68+
case UNOBFUSCATED:
69+
return Type.UNOBFUSCATED;
6670
default:
6771
return Type.OLD;
6872
}

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

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,19 @@
1717
*/
1818
package com.tungsten.fclcore.download.game;
1919

20+
import static com.tungsten.fclcore.util.Logging.LOG;
21+
2022
import com.tungsten.fclcore.download.DownloadProvider;
2123
import com.tungsten.fclcore.download.VersionList;
24+
import com.tungsten.fclcore.util.gson.JsonUtils;
2225
import com.tungsten.fclcore.util.io.HttpRequest;
2326

27+
import java.io.InputStreamReader;
28+
import java.io.Reader;
2429
import java.util.Collection;
2530
import java.util.Collections;
2631
import java.util.concurrent.CompletableFuture;
32+
import java.util.logging.Level;
2733

2834
public final class GameVersionList extends VersionList<GameRemoteVersion> {
2935
private final DownloadProvider downloadProvider;
@@ -46,10 +52,28 @@ protected Collection<GameRemoteVersion> getVersionsImpl(String gameVersion) {
4652
public CompletableFuture<?> refreshAsync() {
4753
return HttpRequest.GET(downloadProvider.getVersionListURL()).getJsonAsync(GameRemoteVersions.class)
4854
.thenAcceptAsync(root -> {
55+
GameRemoteVersions unlistedVersions = null;
56+
try (Reader input = new InputStreamReader(
57+
GameVersionList.class.getResourceAsStream("/assets/game/unlisted-versions.json"))) {
58+
unlistedVersions = JsonUtils.GSON.fromJson(input, GameRemoteVersions.class);
59+
} catch (Throwable e) {
60+
LOG.log(Level.WARNING, "Failed to load unlisted versions", e);
61+
}
62+
4963
lock.writeLock().lock();
5064
try {
5165
versions.clear();
5266

67+
if (unlistedVersions != null) {
68+
for (GameRemoteVersionInfo unlistedVersion : unlistedVersions.getVersions()) {
69+
versions.put(unlistedVersion.getGameVersion(), new GameRemoteVersion(
70+
unlistedVersion.getGameVersion(),
71+
unlistedVersion.getGameVersion(),
72+
Collections.singletonList(unlistedVersion.getUrl()),
73+
unlistedVersion.getType(), unlistedVersion.getReleaseTime()));
74+
}
75+
}
76+
5377
for (GameRemoteVersionInfo remoteVersion : root.getVersions()) {
5478
versions.put(remoteVersion.getGameVersion(), new GameRemoteVersion(
5579
remoteVersion.getGameVersion(),

0 commit comments

Comments
 (0)