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:
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);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user