aboutsummaryrefslogtreecommitdiff
path: root/spark-paper/src
diff options
context:
space:
mode:
Diffstat (limited to 'spark-paper/src')
-rw-r--r--spark-paper/src/main/java/me/lucko/spark/paper/PaperSparkPlugin.java1
-rw-r--r--spark-paper/src/main/java/me/lucko/spark/paper/PaperWorldInfoProvider.java29
2 files changed, 29 insertions, 1 deletions
diff --git a/spark-paper/src/main/java/me/lucko/spark/paper/PaperSparkPlugin.java b/spark-paper/src/main/java/me/lucko/spark/paper/PaperSparkPlugin.java
index eb595cc..eb82f8e 100644
--- a/spark-paper/src/main/java/me/lucko/spark/paper/PaperSparkPlugin.java
+++ b/spark-paper/src/main/java/me/lucko/spark/paper/PaperSparkPlugin.java
@@ -39,7 +39,6 @@ import me.lucko.spark.paper.api.PaperSparkModule;
import org.bukkit.Server;
import org.bukkit.command.CommandSender;
import org.bukkit.plugin.Plugin;
-import org.bukkit.plugin.ServicePriority;
import java.nio.file.Path;
import java.util.Arrays;
diff --git a/spark-paper/src/main/java/me/lucko/spark/paper/PaperWorldInfoProvider.java b/spark-paper/src/main/java/me/lucko/spark/paper/PaperWorldInfoProvider.java
index 29ab1ef..feda9a0 100644
--- a/spark-paper/src/main/java/me/lucko/spark/paper/PaperWorldInfoProvider.java
+++ b/spark-paper/src/main/java/me/lucko/spark/paper/PaperWorldInfoProvider.java
@@ -24,6 +24,7 @@ import me.lucko.spark.common.platform.world.AbstractChunkInfo;
import me.lucko.spark.common.platform.world.CountMap;
import me.lucko.spark.common.platform.world.WorldInfoProvider;
import org.bukkit.Chunk;
+import org.bukkit.GameRule;
import org.bukkit.Server;
import org.bukkit.World;
import org.bukkit.entity.Entity;
@@ -31,6 +32,7 @@ import org.bukkit.entity.EntityType;
import java.util.ArrayList;
import java.util.List;
+import java.util.Objects;
public class PaperWorldInfoProvider implements WorldInfoProvider {
private final Server server;
@@ -75,6 +77,33 @@ public class PaperWorldInfoProvider implements WorldInfoProvider {
return data;
}
+ @Override
+ public GameRulesResult pollGameRules() {
+ GameRulesResult data = new GameRulesResult();
+
+ boolean addDefaults = true; // add defaults in the first iteration
+ for (World world : this.server.getWorlds()) {
+ for (String gameRule : world.getGameRules()) {
+ GameRule<?> ruleObj = GameRule.getByName(gameRule);
+ if (ruleObj == null) {
+ continue;
+ }
+
+ if (addDefaults) {
+ Object defaultValue = world.getGameRuleDefault(ruleObj);
+ data.putDefault(gameRule, Objects.toString(defaultValue));
+ }
+
+ Object value = world.getGameRuleValue(ruleObj);
+ data.put(gameRule, world.getName(), Objects.toString(value));
+ }
+
+ addDefaults = false;
+ }
+
+ return data;
+ }
+
static final class PaperChunkInfo extends AbstractChunkInfo<EntityType> {
private final CountMap<EntityType> entityCounts;