From b78afab85ee15d809ea4ff0ccb14c2b263ede860 Mon Sep 17 00:00:00 2001 From: lucko Date: Sun, 21 Jul 2024 12:44:06 +0100 Subject: Include gamerule settings in metadata (#425) --- .../lucko/spark/sponge/Sponge8WorldInfoProvider.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'spark-sponge8/src') 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> 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> { private final CountMap> entityCounts; -- cgit