From d93f4d6bbbb3a30ddc4738b75bf70f13292d1fd2 Mon Sep 17 00:00:00 2001 From: Glavo Date: Sat, 8 Nov 2025 21:50:16 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=AF=B9=2025w45a=5Funobfusc?= =?UTF-8?q?ated=20=E7=9A=84=E6=94=AF=E6=8C=81=20(#4767)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/jackhuang/hmcl/ui/download/VersionsPage.java | 5 +++-- .../java/org/jackhuang/hmcl/util/i18n/MinecraftWiki.java | 3 +++ .../java/org/jackhuang/hmcl/download/RemoteVersion.java | 3 ++- .../jackhuang/hmcl/download/game/GameRemoteVersion.java | 1 + .../main/java/org/jackhuang/hmcl/game/ReleaseType.java | 1 + .../jackhuang/hmcl/util/versioning/GameVersionNumber.java | 2 +- .../src/main/resources/assets/game/unlisted-versions.json | 7 +++++++ HMCLCore/src/main/resources/assets/game/versions.txt | 8 +++++++- .../hmcl/util/versioning/GameVersionNumberTest.java | 3 +++ 9 files changed, 28 insertions(+), 5 deletions(-) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/VersionsPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/VersionsPage.java index b10b4d251..837e3edfb 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/VersionsPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/VersionsPage.java @@ -250,7 +250,7 @@ public final class VersionsPage extends Control implements WizardPage, Refreshab twoLineListItem.addTag(i18n("version.game.release")); imageView.setImage(VersionIconType.GRASS.getIcon()); } - case PENDING, SNAPSHOT -> { + case SNAPSHOT, PENDING, UNOBFUSCATED -> { if (versionType == RemoteVersion.Type.SNAPSHOT && GameVersionNumber.asGameVersion(remoteVersion.getGameVersion()).isAprilFools()) { twoLineListItem.addTag(i18n("version.game.april_fools")); @@ -455,7 +455,8 @@ public final class VersionsPage extends Control implements WizardPage, Refreshab return switch (filter) { case RELEASE -> versionType == RemoteVersion.Type.RELEASE; case SNAPSHOTS -> versionType == RemoteVersion.Type.SNAPSHOT - || versionType == RemoteVersion.Type.PENDING; + || versionType == RemoteVersion.Type.PENDING + || versionType == RemoteVersion.Type.UNOBFUSCATED; case APRIL_FOOLS -> versionType == RemoteVersion.Type.SNAPSHOT && GameVersionNumber.asGameVersion(it.getGameVersion()).isAprilFools(); case OLD -> versionType == RemoteVersion.Type.OLD; diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/util/i18n/MinecraftWiki.java b/HMCL/src/main/java/org/jackhuang/hmcl/util/i18n/MinecraftWiki.java index 54ea8493d..a93219c61 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/util/i18n/MinecraftWiki.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/util/i18n/MinecraftWiki.java @@ -18,6 +18,7 @@ package org.jackhuang.hmcl.util.i18n; import org.jackhuang.hmcl.download.game.GameRemoteVersion; +import org.jackhuang.hmcl.util.StringUtils; import org.jackhuang.hmcl.util.i18n.translator.Translator_lzh; import org.jackhuang.hmcl.util.versioning.GameVersionNumber; @@ -79,6 +80,8 @@ public final class MinecraftWiki { if (SNAPSHOT_PATTERN.matcher(wikiVersion).matches()) { if (wikiVersion.equals("22w13oneblockatatime")) wikiVersion = "22w13oneBlockAtATime"; + else + wikiVersion = StringUtils.removeSuffix(wikiVersion, "_unobfuscated"); return locale.i18n("wiki.version.game.snapshot", wikiVersion) + variantSuffix; } } diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/RemoteVersion.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/RemoteVersion.java index ea3f4155a..99e39a218 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/RemoteVersion.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/RemoteVersion.java @@ -128,6 +128,7 @@ public class RemoteVersion implements Comparable { RELEASE, SNAPSHOT, OLD, - PENDING + PENDING, + UNOBFUSCATED, } } diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameRemoteVersion.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameRemoteVersion.java index e56e694c2..43ef82d58 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameRemoteVersion.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameRemoteVersion.java @@ -73,6 +73,7 @@ public final class GameRemoteVersion extends RemoteVersion { case SNAPSHOT -> Type.SNAPSHOT; case UNKNOWN -> Type.UNCATEGORIZED; case PENDING -> Type.PENDING; + case UNOBFUSCATED -> Type.UNOBFUSCATED; default -> Type.OLD; }; } diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/ReleaseType.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/ReleaseType.java index aa88ca4bd..9d299f1f5 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/ReleaseType.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/ReleaseType.java @@ -28,6 +28,7 @@ public enum ReleaseType { OLD_BETA("old-beta"), OLD_ALPHA("old-alpha"), PENDING("pending"), + UNOBFUSCATED("unobfuscated"), UNKNOWN("unknown"); private final String id; diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/versioning/GameVersionNumber.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/versioning/GameVersionNumber.java index 7700445cd..40f4f8193 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/versioning/GameVersionNumber.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/versioning/GameVersionNumber.java @@ -100,7 +100,7 @@ public abstract sealed class GameVersionNumber implements Comparable