From f559ace08b29a32b360cc5214d692a36ef945f43 Mon Sep 17 00:00:00 2001 From: LabodiDavid Date: Fri, 28 Mar 2025 18:03:45 +0100 Subject: [PATCH] Updated server version detecting --- .../java/hu/ditservices/utils/Version.java | 36 ++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/src/main/java/hu/ditservices/utils/Version.java b/src/main/java/hu/ditservices/utils/Version.java index 0f1e2c3..57a4ae8 100644 --- a/src/main/java/hu/ditservices/utils/Version.java +++ b/src/main/java/hu/ditservices/utils/Version.java @@ -1,5 +1,8 @@ package hu.ditservices.utils; +import org.bukkit.Bukkit; + +import java.lang.reflect.Method; import java.util.regex.Pattern; public class Version { @@ -77,6 +80,37 @@ public class Version { return arrayVersion; }*/ public static String[] getArrayVersion() { + if (arrayVersion == null) { + String version = null; + try { + // Check if the Paper method getMinecraftVersion exists + Method minecraftVersionMethod = Bukkit.getServer().getClass().getMethod("getMinecraftVersion"); + if (minecraftVersionMethod != null) { + version = (String) minecraftVersionMethod.invoke(Bukkit.getServer()); + } + } catch (NoSuchMethodException e) { + // The method doesn't exist in this server version; fall back below. + } catch (Exception e) { + e.printStackTrace(); + } + + // Fallback: use Bukkit version if no version was obtained or it's empty. + if (version == null || version.trim().isEmpty()) { + version = Bukkit.getServer().getBukkitVersion(); + // Remove any suffix (e.g., "-R0.1-SNAPSHOT") for consistency. + int dashIndex = version.indexOf('-'); + if (dashIndex != -1) { + version = version.substring(0, dashIndex); + } + } + + // Construct a legacy-style version string. + String legacyVersion = "v" + version.replace('.', '_') + "_R1"; + arrayVersion = new String[] { legacyVersion }; + } + return arrayVersion; + } + /*public static String[] getArrayVersion() { if (arrayVersion == null) { String packageName = org.bukkit.Bukkit.getServer().getClass().getPackage().getName(); String[] splitPackageName = packageName.split("\\."); @@ -97,7 +131,7 @@ public class Version { } return arrayVersion; - } + }*/ public static boolean isCurrentEqualOrHigher(ServerVersion v) { return getCurrent().value >= v.value;