Skip to content

Commit d93f4d6

Browse files
authored
添加对 25w45a_unobfuscated 的支持 (#4767)
1 parent f0a16b0 commit d93f4d6

9 files changed

Lines changed: 28 additions & 5 deletions

File tree

HMCL/src/main/java/org/jackhuang/hmcl/ui/download/VersionsPage.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@ public void updateItem(RemoteVersion remoteVersion, boolean empty) {
250250
twoLineListItem.addTag(i18n("version.game.release"));
251251
imageView.setImage(VersionIconType.GRASS.getIcon());
252252
}
253-
case PENDING, SNAPSHOT -> {
253+
case SNAPSHOT, PENDING, UNOBFUSCATED -> {
254254
if (versionType == RemoteVersion.Type.SNAPSHOT
255255
&& GameVersionNumber.asGameVersion(remoteVersion.getGameVersion()).isAprilFools()) {
256256
twoLineListItem.addTag(i18n("version.game.april_fools"));
@@ -455,7 +455,8 @@ private void updateList() {
455455
return switch (filter) {
456456
case RELEASE -> versionType == RemoteVersion.Type.RELEASE;
457457
case SNAPSHOTS -> versionType == RemoteVersion.Type.SNAPSHOT
458-
|| versionType == RemoteVersion.Type.PENDING;
458+
|| versionType == RemoteVersion.Type.PENDING
459+
|| versionType == RemoteVersion.Type.UNOBFUSCATED;
459460
case APRIL_FOOLS -> versionType == RemoteVersion.Type.SNAPSHOT
460461
&& GameVersionNumber.asGameVersion(it.getGameVersion()).isAprilFools();
461462
case OLD -> versionType == RemoteVersion.Type.OLD;

HMCL/src/main/java/org/jackhuang/hmcl/util/i18n/MinecraftWiki.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
package org.jackhuang.hmcl.util.i18n;
1919

2020
import org.jackhuang.hmcl.download.game.GameRemoteVersion;
21+
import org.jackhuang.hmcl.util.StringUtils;
2122
import org.jackhuang.hmcl.util.i18n.translator.Translator_lzh;
2223
import org.jackhuang.hmcl.util.versioning.GameVersionNumber;
2324

@@ -79,6 +80,8 @@ else if (wikiVersion.startsWith("1.0.0-rc2"))
7980
if (SNAPSHOT_PATTERN.matcher(wikiVersion).matches()) {
8081
if (wikiVersion.equals("22w13oneblockatatime"))
8182
wikiVersion = "22w13oneBlockAtATime";
83+
else
84+
wikiVersion = StringUtils.removeSuffix(wikiVersion, "_unobfuscated");
8285
return locale.i18n("wiki.version.game.snapshot", wikiVersion) + variantSuffix;
8386
}
8487
}

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,7 @@ public enum Type {
128128
RELEASE,
129129
SNAPSHOT,
130130
OLD,
131-
PENDING
131+
PENDING,
132+
UNOBFUSCATED,
132133
}
133134
}

HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameRemoteVersion.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ private static Type getReleaseType(ReleaseType type) {
7373
case SNAPSHOT -> Type.SNAPSHOT;
7474
case UNKNOWN -> Type.UNCATEGORIZED;
7575
case PENDING -> Type.PENDING;
76+
case UNOBFUSCATED -> Type.UNOBFUSCATED;
7677
default -> Type.OLD;
7778
};
7879
}

HMCLCore/src/main/java/org/jackhuang/hmcl/game/ReleaseType.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ public enum ReleaseType {
2828
OLD_BETA("old-beta"),
2929
OLD_ALPHA("old-alpha"),
3030
PENDING("pending"),
31+
UNOBFUSCATED("unobfuscated"),
3132
UNKNOWN("unknown");
3233

3334
private final String id;

HMCLCore/src/main/java/org/jackhuang/hmcl/util/versioning/GameVersionNumber.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ public static VersionRange<GameVersionNumber> atMost(String maximum) {
100100
}
101101

102102
public boolean isAprilFools() {
103-
if (this instanceof Special)
103+
if (this instanceof Special && !value.endsWith("_unobfuscated"))
104104
return true;
105105

106106
if (this instanceof Snapshot snapshot) {

HMCLCore/src/main/resources/assets/game/unlisted-versions.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
{
22
"versions": [
3+
{
4+
"id": "25w45a_unobfuscated",
5+
"type" : "unobfuscated",
6+
"url": "https://piston-meta.mojang.com/v1/packages/7a3c149f148b6aa5ac3af48c4f701adea7e5b615/25w45a_unobfuscated.json",
7+
"time" : "2025-11-04T14:07:08+00:00",
8+
"releaseTime" : "2025-11-04T14:07:08+00:00"
9+
},
310
{
411
"id": "1.19_deep_dark_experimental_snapshot-1",
512
"type": "pending",

HMCLCore/src/main/resources/assets/game/versions.txt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -848,4 +848,10 @@
848848
1.21.9-rc1
849849
1.21.9
850850
1.21.10-rc1
851-
1.21.10
851+
1.21.10
852+
25w41a
853+
25w42a
854+
25w43a
855+
25w44a
856+
25w45a
857+
25w45a_unobfuscated

HMCLCore/src/test/java/org/jackhuang/hmcl/util/versioning/GameVersionNumberTest.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@ public void testIsAprilFools() {
121121
assertFalse(isAprilFools("25w21a"));
122122
assertFalse(isAprilFools("13w12~"));
123123
assertFalse(isAprilFools("15w14b"));
124+
assertFalse(isAprilFools("25w45a_unobfuscated"));
124125
}
125126

126127
@Test
@@ -272,6 +273,8 @@ public void testCompareMix() {
272273
"24w13a",
273274
"24w14potato",
274275
"24w14a",
276+
"25w45a",
277+
"25w45a_unobfuscated",
275278
"Unknown",
276279
"100.0"
277280
);

0 commit comments

Comments
 (0)