Improve version detection

This commit is contained in:
Roman Zhuravlev 2025-09-03 19:41:55 +05:00
parent 980ba0dfb3
commit 4ffda18a48

View file

@ -55,20 +55,25 @@ public final class CraftBukkitReflection {
final String pkg = serverClass.getPackage().getName(); final String pkg = serverClass.getPackage().getName();
final String nmsVersion = pkg.substring(pkg.lastIndexOf(".") + 1); final String nmsVersion = pkg.substring(pkg.lastIndexOf(".") + 1);
if (!nmsVersion.contains("_")) { if (!nmsVersion.contains("_")) {
int fallbackVersion = -1; int fallbackVersion;
try { try {
final Method getMinecraftVersion = serverClass.getDeclaredMethod("getMinecraftVersion"); final Method getMinecraftVersion = serverClass.getDeclaredMethod("getMinecraftVersion");
fallbackVersion = Integer.parseInt(getMinecraftVersion.invoke(Bukkit.getServer()).toString().split("\\.")[1]); fallbackVersion = Integer.parseInt(getMinecraftVersion.invoke(Bukkit.getServer()).toString().split("\\.")[1]);
} catch (final Exception ignored) { } catch (final Exception ignored) {
} String version = Bukkit.getVersion();
MAJOR_REVISION = fallbackVersion; version = version.substring(version.indexOf("(MC: ") + 5, version.length() - 1);
} else { String[] versionParts = version.split("\\.");
MAJOR_REVISION = Integer.parseInt(nmsVersion.split("_")[1]); fallbackVersion = Integer.parseInt(versionParts[1]);
} }
String name = serverClass.getName(); String name = serverClass.getName();
name = name.substring(PREFIX_CRAFTBUKKIT.length()); name = name.substring(PREFIX_CRAFTBUKKIT.length());
name = name.substring(0, name.length() - CRAFT_SERVER.length()); name = name.substring(0, name.length() - CRAFT_SERVER.length());
CB_PKG_VERSION = name; CB_PKG_VERSION = name;
MAJOR_REVISION = fallbackVersion;
} else {
MAJOR_REVISION = Integer.parseInt(nmsVersion.split("_")[1]);
CB_PKG_VERSION = "";
}
} }
@SafeVarargs @SafeVarargs