Skip to content

Commit d422fd3

Browse files
committed
Use ServerBuildInfo when available (Fixes #59)
1 parent 7167048 commit d422fd3

File tree

3 files changed

+31
-2
lines changed

3 files changed

+31
-2
lines changed

build.gradle.kts

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ repositories {
1212
}
1313

1414
dependencies {
15-
compileOnly("io.papermc.paper:paper-api:1.17.1-R0.1-SNAPSHOT")
15+
compileOnly("io.papermc.paper:paper-api:1.20.6-R0.1-SNAPSHOT")
1616
compileOnly("me.clip:placeholderapi:2.11.3")
1717
}
1818

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip
44
networkTimeout=10000
55
zipStoreBase=GRADLE_USER_HOME
66
zipStorePath=wrapper/dists

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

+29
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
package at.helpch.placeholderapi.expansion.server.util;
22

3+
import io.papermc.paper.ServerBuildInfo;
34
import org.bukkit.Bukkit;
45

56
import java.lang.reflect.Field;
67
import java.lang.reflect.InvocationTargetException;
78
import java.util.Map;
9+
import java.util.OptionalInt;
810
import java.util.TreeMap;
911

1012
public final class ServerUtil {
@@ -32,6 +34,9 @@ public final class ServerUtil {
3234
}
3335

3436
private static String findVariant() {
37+
if (hasServerBuildInfo())
38+
return getVariant0();
39+
3540
for (final Map.Entry<String, String> entry : variants.entrySet()) {
3641
try {
3742
Class.forName(entry.getKey());
@@ -97,6 +102,9 @@ private static Field getTpsHandler() {
97102
}
98103

99104
private static String findBuild() {
105+
if (hasServerBuildInfo())
106+
return getBuild0();
107+
100108
String[] buildParts = Bukkit.getVersion().split("-");
101109

102110
switch (getVariant().toLowerCase()) {
@@ -153,4 +161,25 @@ public static double[] getTps() {
153161
}
154162
}
155163

164+
// Available since recent 1.20.6 versions of Paper. Allows easier retrieval of certain info.
165+
private static boolean hasServerBuildInfo() {
166+
try {
167+
Class.forName("io.papermc.paper.ServerBuildInfo");
168+
return true;
169+
} catch(ClassNotFoundException ignored) {
170+
return false;
171+
}
172+
}
173+
174+
private static String getVariant0() {
175+
return ServerBuildInfo.buildInfo().brandName();
176+
}
177+
178+
private static String getBuild0() {
179+
OptionalInt buildNumber = ServerBuildInfo.buildInfo().buildNumber();
180+
if (buildNumber.isEmpty())
181+
return "Unknown";
182+
183+
return String.valueOf(buildNumber.getAsInt());
184+
}
156185
}

0 commit comments

Comments
 (0)