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(); + } +}