From 481a794309d8e8d01cfee3a173187eb9ab625bb9 Mon Sep 17 00:00:00 2001 From: Dario Maselli <117168592+Dario-Maselli@users.noreply.github.com> Date: Wed, 1 Jul 2026 17:29:24 +0200 Subject: [PATCH] Fix snapshot parsing in new versioning system Use limit of 2 in split to avoid issues with snapshot version strings containing multiple dashes. Also replace null with empty string for the classifier parameter to avoid potential NPEs. Adds snapshot test cases to VersionList. --- .../net/minecraftforge/srgutils/MinecraftVersion.java | 4 ++-- .../net/minecraftforge/srgutils/test/VersionList.java | 8 +++++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/main/java/net/minecraftforge/srgutils/MinecraftVersion.java b/src/main/java/net/minecraftforge/srgutils/MinecraftVersion.java index 1b20e22..a7b846b 100644 --- a/src/main/java/net/minecraftforge/srgutils/MinecraftVersion.java +++ b/src/main/java/net/minecraftforge/srgutils/MinecraftVersion.java @@ -153,8 +153,8 @@ else if (lower.startsWith("rd-")) { // The new versioning system https://www.minecraft.net/en-us/article/minecraft-new-version-numbering-system // They did not specify pre-release or release candidate naming system. if (version.contains("-snapshot-")) { - String[] pts = version.split("-snapshot-"); - return new MinecraftVersion(Type.SNAPSHOT, version, Integer.parseInt(pts[1]), -1, 0, null, splitDots(pts[0])); + String[] pts = version.split("-snapshot-", 2); + return new MinecraftVersion(Type.SNAPSHOT, version, Integer.parseInt(pts[1]), -1, 0, "", splitDots(pts[0])); } else if (version.contains("-pre-")) { // New Numbering system pre-releases have {version}-pre-{number} String[] pts = version.split("-pre-"); pre = Integer.parseInt(pts[1]); diff --git a/src/test/java/net/minecraftforge/srgutils/test/VersionList.java b/src/test/java/net/minecraftforge/srgutils/test/VersionList.java index d937a04..a80d42f 100644 --- a/src/test/java/net/minecraftforge/srgutils/test/VersionList.java +++ b/src/test/java/net/minecraftforge/srgutils/test/VersionList.java @@ -18,9 +18,11 @@ public class VersionList { //Just copy pasted with a little resorting from Mojang's version manifest, https://launchermeta.mojang.com/mc/game/version_manifest.json //We can't read this file directly, because its in strict release date order, not target version order - private final String[] versions = new String[] { - "26.1-rc-2", - "26.1-rc-1", + private final String[] versions = new String[] { + "26.3-snapshot-2", + "26.3-snapshot-1", + "26.1-rc-2", + "26.1-rc-1", "26.1-pre-3", "26.1-pre-2", "26.1-pre-1",