diff options
author | lucko <git@lucko.me> | 2024-07-21 12:44:06 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-07-21 12:44:06 +0100 |
commit | b78afab85ee15d809ea4ff0ccb14c2b263ede860 (patch) | |
tree | d3d987473aee0b1e71ac6a24ea2f692be78bf14b /spark-sponge8/src | |
parent | 635800af986351f08dba33aa2e8ec5dd691bbffb (diff) | |
download | spark-b78afab85ee15d809ea4ff0ccb14c2b263ede860.tar.gz spark-b78afab85ee15d809ea4ff0ccb14c2b263ede860.tar.bz2 spark-b78afab85ee15d809ea4ff0ccb14c2b263ede860.zip |
Include gamerule settings in metadata (#425)
Diffstat (limited to 'spark-sponge8/src')
-rw-r--r-- | spark-sponge8/src/main/java/me/lucko/spark/sponge/Sponge8WorldInfoProvider.java | 18 |
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; |