From 170065075305ff5f6f5e6cc0288f4c79dbaa6aca Mon Sep 17 00:00:00 2001 From: Christian Bergschneider Date: Tue, 7 Oct 2025 22:54:15 +0200 Subject: [PATCH] feat: add methods to pack by meta and default meta in TerraMinestomWorldBuilder --- .../api/TerraMinestomWorldBuilder.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/platforms/minestom/src/main/java/com/dfsek/terra/minestom/api/TerraMinestomWorldBuilder.java b/platforms/minestom/src/main/java/com/dfsek/terra/minestom/api/TerraMinestomWorldBuilder.java index d70a32bdd..1dc672e71 100644 --- a/platforms/minestom/src/main/java/com/dfsek/terra/minestom/api/TerraMinestomWorldBuilder.java +++ b/platforms/minestom/src/main/java/com/dfsek/terra/minestom/api/TerraMinestomWorldBuilder.java @@ -13,6 +13,10 @@ import com.dfsek.terra.minestom.block.DefaultBlockEntityFactory; import com.dfsek.terra.minestom.entity.DefaultEntityFactory; import com.dfsek.terra.minestom.world.TerraMinestomWorld; +import net.minestom.server.registry.RegistryKey; +import net.minestom.server.world.DimensionType; +import org.jspecify.annotations.NonNull; + public class TerraMinestomWorldBuilder { private final TerraMinestomPlatform platform; @@ -36,10 +40,22 @@ public class TerraMinestomWorldBuilder { public TerraMinestomWorldBuilder packById(String id) { this.pack = platform.getConfigRegistry().getByID(id).orElseThrow(); - return this; } + public TerraMinestomWorldBuilder packByMeta(String metaPack, RegistryKey<@NonNull DimensionType> dimensionType) { + this.pack = platform.getMetaConfigRegistry() + .getByID(metaPack) + .orElseThrow(() -> new RuntimeException("Meta Pack " + metaPack + " could not be found")) + .packs() + .get(dimensionType.key().asString()); + return this; + } + + public TerraMinestomWorldBuilder packByDefaultMeta(RegistryKey<@NonNull DimensionType> dimensionType) { + return packByMeta("default", dimensionType); + } + public TerraMinestomWorldBuilder findPack(Function, ConfigPack> fn) { this.pack = fn.apply(platform.getConfigRegistry()); return this;