From fb04fbe692f4b290b2d29cd00942a7aed5b67ef9 Mon Sep 17 00:00:00 2001 From: ScarletRedMan Date: Tue, 14 Jan 2025 12:24:54 +0700 Subject: [PATCH] feat: updated FlatWorldModule --- .../msb3/api/module/FlatWorldModule.java | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/api/src/main/java/ru/dragonestia/msb3/api/module/FlatWorldModule.java b/api/src/main/java/ru/dragonestia/msb3/api/module/FlatWorldModule.java index 1decc6b..e523527 100644 --- a/api/src/main/java/ru/dragonestia/msb3/api/module/FlatWorldModule.java +++ b/api/src/main/java/ru/dragonestia/msb3/api/module/FlatWorldModule.java @@ -1,17 +1,16 @@ package ru.dragonestia.msb3.api.module; +import lombok.Getter; import net.minestom.server.MinecraftServer; import net.minestom.server.coordinate.Pos; import net.minestom.server.entity.GameMode; import net.minestom.server.event.player.AsyncPlayerConfigurationEvent; -import net.minestom.server.instance.Chunk; -import net.minestom.server.instance.DynamicChunk; -import net.minestom.server.instance.IChunkLoader; -import net.minestom.server.instance.Instance; +import net.minestom.server.instance.*; import net.minestom.server.instance.block.Block; import net.minestom.server.world.DimensionType; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import ru.dragonestia.msb3.api.world.World; import ru.dragonestia.msb3.api.world.WorldFactory; import java.util.concurrent.CompletableFuture; @@ -19,13 +18,11 @@ import java.util.concurrent.CompletableFuture; public class FlatWorldModule { private static boolean used = false; + @Getter private static World world; private FlatWorldModule() {} - public static synchronized void init(GameMode gameMode) { - if (used) return; - used = true; - + public static void init(GameMode gameMode) { var dimension = MinecraftServer.getDimensionTypeRegistry().register("msb3:full_bright", DimensionType.builder() .ambientLight(2f) .build()); @@ -58,12 +55,19 @@ public class FlatWorldModule { } }); - var world = factory.createWorldSync(); + init(gameMode, factory.createWorldSync(), new Pos(0, 11, 0)); + } + + public static synchronized void init(GameMode gameMode, World world, Pos spawnPos) { + if (used) return; + used = true; + + FlatWorldModule.world = world; MinecraftServer.getGlobalEventHandler().addListener(AsyncPlayerConfigurationEvent.class, event -> { var player = event.getPlayer(); - player.setRespawnPoint(new Pos(0, 11, 0)); + player.setRespawnPoint(spawnPos); player.setGameMode(gameMode); event.setSpawningInstance(world.getInstance());