Merge pull request #55 from PlaceholderAPI/feature/1_20_5-support-and-small-improvements

1.20.5 support and some small improvements
This commit is contained in:
Gabriel Dumitru authored and GitHub committed 2024-05-04 19:07:28 +03:00
commit c00a60f5e1
3 files changed
+19 -12

No files matched your search

@@ -186,7 +186,7 @@ public final class ServerExpansion extends PlaceholderExpansion implements Cache
return ServerUtil.getBuild();
case "version_build":
case "version_full":
return ServerUtil.getServerVersion() + '-' + ServerUtil.getBuild();
return Bukkit.getBukkitVersion();
// -----
// ----- RAM placeholders
@@ -11,7 +11,6 @@ public final class ServerUtil {
private static final Map<String, String> variants = new TreeMap<>();
private static final String variant;
private static final String serverVersion;
private static final String build;
// TPS stuff
@@ -29,7 +28,6 @@ public final class ServerUtil {
craftServer = getCraftServer();
tpsField = getTpsHandler();
variant = findVariant();
serverVersion = Bukkit.getBukkitVersion().split("-")[0]; // The version is formatted as 1.20.1-R0.1-SNAPSHOT
build = findBuild();
}
@@ -65,7 +63,7 @@ public final class ServerUtil {
if (VersionHelper.IS_1_17_OR_HIGHER) {
clas = Class.forName("net.minecraft.server.MinecraftServer");
} else {
clas = Class.forName(String.format("net.minecraft.server.%s.MinecraftServer", VersionHelper.NMS_VERSION));
clas = Class.forName(String.format("net.minecraft.server.%s.MinecraftServer", VersionHelper.getNmsVersion()));
}
return clas.getMethod("getServer").invoke(null);
@@ -124,7 +122,7 @@ public final class ServerUtil {
}
}
return "Unknonw";
return "Unknown";
}
public static String getVariant() {
@@ -132,7 +130,7 @@ public final class ServerUtil {
}
public static String getServerVersion() {
return serverVersion;
return VersionHelper.MINECRAFT_VERSION;
}
public static String getBuild() {
@@ -25,10 +25,8 @@ package at.helpch.placeholderapi.expansion.server.util;
import com.google.common.primitives.Ints;
import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer;
import org.jetbrains.annotations.NotNull;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -37,7 +35,7 @@ import java.util.regex.Pattern;
*/
public final class VersionHelper {
public static final String NMS_VERSION = getNmsVersion();
private static final String CRAFTBUKKIT_PACKAGE = Bukkit.getServer().getClass().getPackage().getName();
private static final int V1_17 = 1_17_0;
@@ -45,6 +43,7 @@ public final class VersionHelper {
private static final boolean IS_PAPER = checkPaper();
public static final String MINECRAFT_VERSION = getMinecraftVersion();
public static final boolean IS_1_17_OR_HIGHER = CURRENT_VERSION >= V1_17;
/**
@@ -73,7 +72,7 @@ public final class VersionHelper {
*/
private static int getCurrentVersion() {
// No need to cache since will only run once
final Matcher matcher = Pattern.compile("(?<version>\\d+\\.\\d+)(?<patch>\\.\\d+)?").matcher(Bukkit.getBukkitVersion());
final Matcher matcher = Pattern.compile("(?<version>\\d+\\.\\d+)(?<patch>\\.\\d+)?").matcher(MINECRAFT_VERSION);
final StringBuilder stringBuilder = new StringBuilder();
if (matcher.find()) {
@@ -92,13 +91,23 @@ public final class VersionHelper {
return version;
}
private static String getNmsVersion() {
private static String getMinecraftVersion() {
try {
// Paper method from 2020 - returns the version like 1.20.1
return Bukkit.getMinecraftVersion();
} catch (NoSuchMethodError ignored) {
// The version is formatted as 1.20.1-R0.1-SNAPSHOT
return Bukkit.getBukkitVersion().split("-")[0];
}
}
public static String getNmsVersion() {
final String version = Bukkit.getServer().getClass().getPackage().getName();
return version.substring(version.lastIndexOf('.') + 1);
}
public static Class<?> craftClass(@NotNull final String name) throws ClassNotFoundException {
return Class.forName("org.bukkit.craftbukkit." + NMS_VERSION + "." + name);
return Class.forName(CRAFTBUKKIT_PACKAGE + "." + name);
}
}