From 9d178342276f868031af009be2f1432ad2882c0d Mon Sep 17 00:00:00 2001 From: Glavo Date: Mon, 18 Aug 2025 20:04:22 +0800 Subject: [PATCH] =?UTF-8?q?Fix=20#4281:=20=E6=94=AF=E6=8C=81=E8=A7=A3?= =?UTF-8?q?=E6=9E=90=20Indev=20=E7=89=88=E6=9C=AC=E5=8F=B7=20(#4282)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hmcl/util/versioning/GameVersionNumber.java | 12 ++++++++---- .../hmcl/util/versioning/GameVersionNumberTest.java | 2 ++ 2 files changed, 10 insertions(+), 4 deletions(-) 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 4239702f1..09ed46959 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 @@ -103,7 +103,7 @@ public abstract class GameVersionNumber implements Comparable } enum Type { - PRE_CLASSIC, CLASSIC, INFDEV, ALPHA, BETA, NEW + PRE_CLASSIC, CLASSIC, INDEV, INFDEV, ALPHA, BETA, NEW } abstract Type getType(); @@ -141,11 +141,15 @@ public abstract class GameVersionNumber implements Comparable prefixLength = "rd-".length(); break; case 'i': - if (!value.startsWith("inf-")) { + if (value.startsWith("inf-")) { + type = Type.INFDEV; + prefixLength = "inf-".length(); + } else if (value.startsWith("in-")) { + type = Type.INDEV; + prefixLength = "in-".length(); + } else { throw new IllegalArgumentException(value); } - type = Type.INFDEV; - prefixLength = "inf-".length(); break; case 'a': type = Type.ALPHA; diff --git a/HMCLCore/src/test/java/org/jackhuang/hmcl/util/versioning/GameVersionNumberTest.java b/HMCLCore/src/test/java/org/jackhuang/hmcl/util/versioning/GameVersionNumberTest.java index 8fb4650d2..bd65468e8 100644 --- a/HMCLCore/src/test/java/org/jackhuang/hmcl/util/versioning/GameVersionNumberTest.java +++ b/HMCLCore/src/test/java/org/jackhuang/hmcl/util/versioning/GameVersionNumberTest.java @@ -102,6 +102,8 @@ public final class GameVersionNumberTest { @Test public void testParseOld() { assertOldVersion("rd-132211", GameVersionNumber.Type.PRE_CLASSIC, "132211"); + assertOldVersion("in-20100223", GameVersionNumber.Type.INDEV, "20100223"); + assertOldVersion("in-20100212-2", GameVersionNumber.Type.INDEV, "20100212-2"); assertOldVersion("inf-20100618", GameVersionNumber.Type.INFDEV, "20100618"); assertOldVersion("inf-20100330-1", GameVersionNumber.Type.INFDEV, "20100330-1"); assertOldVersion("a1.0.6", GameVersionNumber.Type.ALPHA, "1.0.6");