From 6da269ed1b14fdba444f20d456fd109759664871 Mon Sep 17 00:00:00 2001 From: opt Date: Mon, 20 Jul 2026 18:01:01 +0000 Subject: [PATCH] Generate a lot of blocks above 0 in the Flatlands Gives people on legacy clients something to work with --- src/main/java/pw/kaboom/extras/Main.java | 14 +++++++++- .../pw/kaboom/extras/util/FlatLayers.java | 27 +++++++++++++++++++ 2 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 src/main/java/pw/kaboom/extras/util/FlatLayers.java diff --git a/src/main/java/pw/kaboom/extras/Main.java b/src/main/java/pw/kaboom/extras/Main.java index aa0068e..bb4b791 100644 --- a/src/main/java/pw/kaboom/extras/Main.java +++ b/src/main/java/pw/kaboom/extras/Main.java @@ -1,5 +1,6 @@ package pw.kaboom.extras; +import io.papermc.paper.registry.keys.BlockTypeKeys; import org.bukkit.WorldCreator; import org.bukkit.WorldType; import org.bukkit.configuration.file.FileConfiguration; @@ -17,6 +18,7 @@ import pw.kaboom.extras.modules.server.ServerCommand; import pw.kaboom.extras.modules.server.ServerGameRule; import pw.kaboom.extras.modules.server.ServerTabComplete; +import pw.kaboom.extras.util.FlatLayers; import java.io.File; @@ -99,7 +101,17 @@ public void onEnable() { /* Custom worlds */ this.getServer().createWorld( - new WorldCreator("world_flatlands").generateStructures(false).type(WorldType.FLAT) + new WorldCreator("world_flatlands") + .generateStructures(false) + .type(WorldType.FLAT) + .generatorSettings( + new FlatLayers() + .addLayer(BlockTypeKeys.BEDROCK, 1) + .addLayer(BlockTypeKeys.DIRT, 124) + .addLayer(BlockTypeKeys.STONE, 2) + .addLayer(BlockTypeKeys.GRASS_BLOCK, 1) + .build() + ) ); final Messenger messenger = this.getServer().getMessenger(); diff --git a/src/main/java/pw/kaboom/extras/util/FlatLayers.java b/src/main/java/pw/kaboom/extras/util/FlatLayers.java new file mode 100644 index 0000000..b777a0f --- /dev/null +++ b/src/main/java/pw/kaboom/extras/util/FlatLayers.java @@ -0,0 +1,27 @@ +package pw.kaboom.extras.util; + +import com.google.gson.JsonArray; +import com.google.gson.JsonObject; +import io.papermc.paper.registry.TypedKey; +import org.bukkit.block.BlockType; + +public final class FlatLayers { + private final JsonArray layers = new JsonArray(); + + public FlatLayers addLayer(final TypedKey blockType, + final int height) { + final var layer = new JsonObject(); + + layer.addProperty("block", blockType.asString()); + layer.addProperty("height", height); + + this.layers.add(layer); + return this; + } + + public String build() { + final var layers = new JsonObject(); + layers.add("layers", this.layers); + return layers.toString(); + } +}