diff options
Diffstat (limited to 'spark-bukkit/src')
-rw-r--r-- | spark-bukkit/src/main/java/me/lucko/spark/bukkit/BukkitWorldInfoProvider.java | 16 |
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 |