Skip to content

Commit 052efaa

Browse files
committed
feat: 1.20.5 support and some small improvements
1 parent f08dd3e commit 052efaa

File tree

3 files changed

+19
-12
lines changed

3 files changed

+19
-12
lines changed

src/main/java/at/helpch/placeholderapi/expansion/server/ServerExpansion.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ private int getOnlinePlayers(@NotNull final String worldName) {
186186
return ServerUtil.getBuild();
187187
case "version_build":
188188
case "version_full":
189-
return ServerUtil.getServerVersion() + '-' + ServerUtil.getBuild();
189+
return Bukkit.getBukkitVersion();
190190
// -----
191191

192192
// ----- RAM placeholders

src/main/java/at/helpch/placeholderapi/expansion/server/util/ServerUtil.java

+3-5
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ public final class ServerUtil {
1111

1212
private static final Map<String, String> variants = new TreeMap<>();
1313
private static final String variant;
14-
private static final String serverVersion;
1514
private static final String build;
1615

1716
// TPS stuff
@@ -29,7 +28,6 @@ public final class ServerUtil {
2928
craftServer = getCraftServer();
3029
tpsField = getTpsHandler();
3130
variant = findVariant();
32-
serverVersion = Bukkit.getBukkitVersion().split("-")[0]; // The version is formatted as 1.20.1-R0.1-SNAPSHOT
3331
build = findBuild();
3432
}
3533

@@ -65,7 +63,7 @@ private static Object getCraftServer() {
6563
if (VersionHelper.IS_1_17_OR_HIGHER) {
6664
clas = Class.forName("net.minecraft.server.MinecraftServer");
6765
} else {
68-
clas = Class.forName(String.format("net.minecraft.server.%s.MinecraftServer", VersionHelper.NMS_VERSION));
66+
clas = Class.forName(String.format("net.minecraft.server.%s.MinecraftServer", VersionHelper.getNmsVersion()));
6967
}
7068

7169
return clas.getMethod("getServer").invoke(null);
@@ -124,15 +122,15 @@ private static String findBuild() {
124122
}
125123
}
126124

127-
return "Unknonw";
125+
return "Unknown";
128126
}
129127

130128
public static String getVariant() {
131129
return variant;
132130
}
133131

134132
public static String getServerVersion() {
135-
return serverVersion;
133+
return VersionHelper.MINECRAFT_VERSION;
136134
}
137135

138136
public static String getBuild() {

src/main/java/at/helpch/placeholderapi/expansion/server/util/VersionHelper.java

+15-6
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,8 @@
2525

2626
import com.google.common.primitives.Ints;
2727
import org.bukkit.Bukkit;
28-
import org.bukkit.OfflinePlayer;
2928
import org.jetbrains.annotations.NotNull;
3029

31-
import java.util.List;
3230
import java.util.regex.Matcher;
3331
import java.util.regex.Pattern;
3432

@@ -37,14 +35,15 @@
3735
*/
3836
public final class VersionHelper {
3937

40-
public static final String NMS_VERSION = getNmsVersion();
38+
private static final String CRAFTBUKKIT_PACKAGE = Bukkit.getServer().getClass().getPackage().getName();
4139

4240
private static final int V1_17 = 1_17_0;
4341

4442
private static final int CURRENT_VERSION = getCurrentVersion();
4543

4644
private static final boolean IS_PAPER = checkPaper();
4745

46+
public static final String MINECRAFT_VERSION = getMinecraftVersion();
4847
public static final boolean IS_1_17_OR_HIGHER = CURRENT_VERSION >= V1_17;
4948

5049
/**
@@ -73,7 +72,7 @@ private static boolean checkPaper() {
7372
*/
7473
private static int getCurrentVersion() {
7574
// No need to cache since will only run once
76-
final Matcher matcher = Pattern.compile("(?<version>\\d+\\.\\d+)(?<patch>\\.\\d+)?").matcher(Bukkit.getBukkitVersion());
75+
final Matcher matcher = Pattern.compile("(?<version>\\d+\\.\\d+)(?<patch>\\.\\d+)?").matcher(MINECRAFT_VERSION);
7776

7877
final StringBuilder stringBuilder = new StringBuilder();
7978
if (matcher.find()) {
@@ -92,13 +91,23 @@ private static int getCurrentVersion() {
9291
return version;
9392
}
9493

95-
private static String getNmsVersion() {
94+
private static String getMinecraftVersion() {
95+
try {
96+
// Paper method from 2020 - returns the version like 1.20.1
97+
return Bukkit.getMinecraftVersion();
98+
} catch (NoSuchMethodError ignored) {
99+
// The version is formatted as 1.20.1-R0.1-SNAPSHOT
100+
return Bukkit.getBukkitVersion().split("-")[0];
101+
}
102+
}
103+
104+
public static String getNmsVersion() {
96105
final String version = Bukkit.getServer().getClass().getPackage().getName();
97106
return version.substring(version.lastIndexOf('.') + 1);
98107
}
99108

100109
public static Class<?> craftClass(@NotNull final String name) throws ClassNotFoundException {
101-
return Class.forName("org.bukkit.craftbukkit." + NMS_VERSION + "." + name);
110+
return Class.forName(CRAFTBUKKIT_PACKAGE + "." + name);
102111
}
103112

104113
}

0 commit comments

Comments
 (0)