diff options
author | Luck <git@lucko.me> | 2024-07-23 20:39:05 +0100 |
---|---|---|
committer | Luck <git@lucko.me> | 2024-07-23 20:39:05 +0100 |
commit | 4c0149b6a15fa887328bbd88c8055c2138cc4d72 (patch) | |
tree | 3b90e89bbe6d7176756e331c4fbf56ee0a39bae5 /spark-bukkit/src | |
parent | b78afab85ee15d809ea4ff0ccb14c2b263ede860 (diff) | |
download | spark-4c0149b6a15fa887328bbd88c8055c2138cc4d72.tar.gz spark-4c0149b6a15fa887328bbd88c8055c2138cc4d72.tar.bz2 spark-4c0149b6a15fa887328bbd88c8055c2138cc4d72.zip |
Fix gamerule read on older Bukkit versions (#428)
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 |