aboutsummaryrefslogtreecommitdiff
path: root/spark-sponge8/src
diff options
context:
space:
mode:
Diffstat (limited to 'spark-sponge8/src')
-rw-r--r--spark-sponge8/src/main/java/me/lucko/spark/sponge/Sponge8WorldInfoProvider.java18
1 files changed, 18 insertions, 0 deletions
diff --git a/spark-sponge8/src/main/java/me/lucko/spark/sponge/Sponge8WorldInfoProvider.java b/spark-sponge8/src/main/java/me/lucko/spark/sponge/Sponge8WorldInfoProvider.java
index fadd629..58f9c33 100644
--- a/spark-sponge8/src/main/java/me/lucko/spark/sponge/Sponge8WorldInfoProvider.java
+++ b/spark-sponge8/src/main/java/me/lucko/spark/sponge/Sponge8WorldInfoProvider.java
@@ -30,11 +30,14 @@ import org.spongepowered.api.entity.Entity;
import org.spongepowered.api.entity.EntityType;
import org.spongepowered.api.entity.EntityTypes;
import org.spongepowered.api.world.chunk.WorldChunk;
+import org.spongepowered.api.world.gamerule.GameRule;
+import org.spongepowered.api.world.gamerule.GameRules;
import org.spongepowered.api.world.server.ServerWorld;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
+import java.util.stream.Collectors;
public class Sponge8WorldInfoProvider implements WorldInfoProvider {
private final Server server;
@@ -77,6 +80,21 @@ public class Sponge8WorldInfoProvider implements WorldInfoProvider {
return data;
}
+ @Override
+ public GameRulesResult pollGameRules() {
+ GameRulesResult data = new GameRulesResult();
+
+ List<GameRule<?>> rules = GameRules.registry().stream().collect(Collectors.toList());
+ for (GameRule<?> rule : rules) {
+ data.putDefault(rule.name(), rule.defaultValue().toString());
+ for (ServerWorld world : this.server.worldManager().worlds()) {
+ data.put(rule.name(), world.key().value(), world.properties().gameRule(rule).toString());
+ }
+ }
+
+ return data;
+ }
+
static final class Sponge7ChunkInfo extends AbstractChunkInfo<EntityType<?>> {
private final CountMap<EntityType<?>> entityCounts;