fix(bukkit): use Server#getMinecraftVersion when available

This commit is contained in:
Citymonstret 2022-06-11 18:19:43 +02:00 committed by Jason
parent 89ec3fbf29
commit de22d70669

View file

@ -40,6 +40,7 @@ import org.checkerframework.checker.nullness.qual.Nullable;
* <p>This is not API to any extent, and as such, may break, change, or be removed without any notice.</p> * <p>This is not API to any extent, and as such, may break, change, or be removed without any notice.</p>
*/ */
@Beta @Beta
@SuppressWarnings("EmptyCatch")
public final class CraftBukkitReflection { public final class CraftBukkitReflection {
private static final String PREFIX_NMS = "net.minecraft.server"; private static final String PREFIX_NMS = "net.minecraft.server";
@ -54,7 +55,13 @@ 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("_")) {
MAJOR_REVISION = -1; int fallbackVersion = -1;
try {
final Method getMinecraftVersion = serverClass.getDeclaredMethod("getMinecraftVersion");
fallbackVersion = Integer.parseInt(getMinecraftVersion.invoke(Bukkit.getServer()).toString().split("\\.")[1]);
} catch (final Exception ignored) {
}
MAJOR_REVISION = fallbackVersion;
} else { } else {
MAJOR_REVISION = Integer.parseInt(nmsVersion.split("_")[1]); MAJOR_REVISION = Integer.parseInt(nmsVersion.split("_")[1]);
} }