From 8fcabecf63d3833c0458bcc8406b33f6a5ed8c28 Mon Sep 17 00:00:00 2001 From: darbyjack Date: Tue, 16 Jun 2026 16:15:04 -0500 Subject: [PATCH] fix(parsing): adjust parsing to support paper dev builds better --- .../placeholderapi/PlaceholderAPIPlugin.java | 26 +++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/src/main/java/me/clip/placeholderapi/PlaceholderAPIPlugin.java b/src/main/java/me/clip/placeholderapi/PlaceholderAPIPlugin.java index 004e122..693111b 100644 --- a/src/main/java/me/clip/placeholderapi/PlaceholderAPIPlugin.java +++ b/src/main/java/me/clip/placeholderapi/PlaceholderAPIPlugin.java @@ -60,7 +60,8 @@ public final class PlaceholderAPIPlugin extends JavaPlugin { private static PlaceholderAPIPlugin instance; static { - String version = Bukkit.getServer().getBukkitVersion().split("-")[0]; + String version = normalizeBukkitVersion(Bukkit.getServer().getBukkitVersion()); + String suffix; if (version.chars() .filter(c -> c == '.') @@ -68,7 +69,17 @@ public final class PlaceholderAPIPlugin extends JavaPlugin { suffix = "R1"; version = 'v' + version.replace('.', '_') + '_' + suffix; } else { - int minor = Integer.parseInt(version.split("\\.")[2].charAt(0) + ""); + final String[] versionParts = version.split("\\."); + + int minor = 1; + if (versionParts.length > 2 && !versionParts[2].isEmpty()) { + try { + minor = Integer.parseInt(versionParts[2].charAt(0) + ""); + } catch (final NumberFormatException ignored) { + minor = 1; + } + } + version = 'v' + version.replace('.', '_').replace("_" + minor, "") + '_' + "R" + (minor - 1); } @@ -294,4 +305,15 @@ public final class PlaceholderAPIPlugin extends JavaPlugin { } } + @NotNull + private static String normalizeBukkitVersion(@NotNull final String bukkitVersion) { + String version = bukkitVersion.split("-", 2)[0]; + + final int paperBuildMetadataIndex = version.indexOf(".build."); + if (paperBuildMetadataIndex != -1) { + version = version.substring(0, paperBuildMetadataIndex); + } + + return version; + } }