From 47ccda048c8bfbd3d26bc8db17c004fd10a22c1b Mon Sep 17 00:00:00 2001 From: Glavo Date: Thu, 13 Nov 2025 15:40:36 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=B8=B8=E6=88=8F=E5=AE=9E?= =?UTF-8?q?=E4=BE=8B=E9=BB=98=E8=AE=A4=E5=9B=BE=E6=A0=87=20(#4776)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hmcl/game/HMCLGameRepository.java | 28 +++++++++++++------ 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/game/HMCLGameRepository.java b/HMCL/src/main/java/org/jackhuang/hmcl/game/HMCLGameRepository.java index 5a095fb10..a859aa284 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/game/HMCLGameRepository.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/game/HMCLGameRepository.java @@ -41,6 +41,7 @@ import org.jackhuang.hmcl.util.io.FileUtils; import org.jackhuang.hmcl.java.JavaRuntime; import org.jackhuang.hmcl.util.platform.OperatingSystem; import org.jackhuang.hmcl.util.platform.SystemInfo; +import org.jackhuang.hmcl.util.versioning.GameVersionNumber; import org.jackhuang.hmcl.util.versioning.VersionNumber; import org.jetbrains.annotations.Nullable; @@ -318,23 +319,32 @@ public final class HMCLGameRepository extends DefaultGameRepository { LibraryAnalyzer libraryAnalyzer = LibraryAnalyzer.analyze(version, null); if (libraryAnalyzer.has(LibraryAnalyzer.LibraryType.FABRIC)) return VersionIconType.FABRIC.getIcon(); + else if (libraryAnalyzer.has(LibraryAnalyzer.LibraryType.QUILT)) + return VersionIconType.QUILT.getIcon(); + else if (libraryAnalyzer.has(LibraryAnalyzer.LibraryType.NEO_FORGE)) + return VersionIconType.NEO_FORGE.getIcon(); else if (libraryAnalyzer.has(LibraryAnalyzer.LibraryType.FORGE)) return VersionIconType.FORGE.getIcon(); else if (libraryAnalyzer.has(LibraryAnalyzer.LibraryType.CLEANROOM)) return VersionIconType.CLEANROOM.getIcon(); - else if (libraryAnalyzer.has(LibraryAnalyzer.LibraryType.NEO_FORGE)) - return VersionIconType.NEO_FORGE.getIcon(); - else if (libraryAnalyzer.has(LibraryAnalyzer.LibraryType.QUILT)) - return VersionIconType.QUILT.getIcon(); - else if (libraryAnalyzer.has(LibraryAnalyzer.LibraryType.OPTIFINE)) - return VersionIconType.OPTIFINE.getIcon(); else if (libraryAnalyzer.has(LibraryAnalyzer.LibraryType.LITELOADER)) return VersionIconType.CHICKEN.getIcon(); - else - return VersionIconType.FURNACE.getIcon(); + else if (libraryAnalyzer.has(LibraryAnalyzer.LibraryType.OPTIFINE)) + return VersionIconType.OPTIFINE.getIcon(); } - return VersionIconType.DEFAULT.getIcon(); + String gameVersion = getGameVersion(version).orElse(null); + if (gameVersion != null) { + GameVersionNumber versionNumber = GameVersionNumber.asGameVersion(gameVersion); + if (versionNumber.isAprilFools()) { + return VersionIconType.APRIL_FOOLS.getIcon(); + } else if (versionNumber instanceof GameVersionNumber.Snapshot) { + return VersionIconType.COMMAND.getIcon(); + } else if (versionNumber instanceof GameVersionNumber.Old) { + return VersionIconType.CRAFT_TABLE.getIcon(); + } + } + return VersionIconType.GRASS.getIcon(); } else { return iconType.getIcon(); }