aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuck <git@lucko.me>2024-07-23 20:39:05 +0100
committerLuck <git@lucko.me>2024-07-23 20:39:05 +0100
commit4c0149b6a15fa887328bbd88c8055c2138cc4d72 (patch)
tree3b90e89bbe6d7176756e331c4fbf56ee0a39bae5
parentb78afab85ee15d809ea4ff0ccb14c2b263ede860 (diff)
downloadspark-4c0149b6a15fa887328bbd88c8055c2138cc4d72.tar.gz
spark-4c0149b6a15fa887328bbd88c8055c2138cc4d72.tar.bz2
spark-4c0149b6a15fa887328bbd88c8055c2138cc4d72.zip
Fix gamerule read on older Bukkit versions (#428)
-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