feat: add methods to pack by meta and default meta in TerraMinestomWorldBuilder

This commit is contained in:
Christian Bergschneider
2025-10-07 22:54:15 +02:00
parent 12d2221d49
commit 1700650753

View File

@@ -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<CheckedRegistry<ConfigPack>, ConfigPack> fn) {
this.pack = fn.apply(platform.getConfigRegistry());
return this;