aboutsummaryrefslogtreecommitdiff
path: root/spark-bukkit/src
diff options
context:
space:
mode:
Diffstat (limited to 'spark-bukkit/src')
-rw-r--r--spark-bukkit/src/main/java/me/lucko/spark/bukkit/BukkitWorldInfoProvider.java16
1 files changed, 16 insertions, 0 deletions
diff --git a/spark-bukkit/src/main/java/me/lucko/spark/bukkit/BukkitWorldInfoProvider.java b/spark-bukkit/src/main/java/me/lucko/spark/bukkit/BukkitWorldInfoProvider.java
index 6290391..be04640 100644
--- a/spark-bukkit/src/main/java/me/lucko/spark/bukkit/BukkitWorldInfoProvider.java
+++ b/spark-bukkit/src/main/java/me/lucko/spark/bukkit/BukkitWorldInfoProvider.java
@@ -37,6 +37,7 @@ import java.util.Objects;
public class BukkitWorldInfoProvider implements WorldInfoProvider {
private static final boolean SUPPORTS_PAPER_COUNT_METHODS;
+ private static final boolean SUPPORTS_GAMERULES;
static {
boolean supportsPaperCountMethods = false;
@@ -48,7 +49,18 @@ public class BukkitWorldInfoProvider implements WorldInfoProvider {
} catch (Exception e) {
// ignored
}
+
+ boolean supportsGameRules = false;
+ try {
+ Class.forName("org.bukkit.GameRule");
+ World.class.getMethod("getGameRuleValue", GameRule.class);
+ supportsGameRules = true;
+ } catch (Exception e) {
+ // ignored
+ }
+
SUPPORTS_PAPER_COUNT_METHODS = supportsPaperCountMethods;
+ SUPPORTS_GAMERULES = supportsGameRules;
}
private final Server server;
@@ -114,6 +126,10 @@ public class BukkitWorldInfoProvider implements WorldInfoProvider {
@Override
public GameRulesResult pollGameRules() {
+ if (!SUPPORTS_GAMERULES) {
+ return null;
+ }
+
GameRulesResult data = new GameRulesResult();
boolean addDefaults = true; // add defaults in the first iteration