refactor: used WorldFactory for FlatWorldModule

This commit is contained in:
Andrey Terentev 2024-11-27 02:44:36 +07:00
parent 2e5ca0ef0b
commit 50b8386b25

View File

@ -12,6 +12,7 @@ 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.WorldFactory;
import java.util.concurrent.CompletableFuture;
@ -29,7 +30,7 @@ public class FlatWorldModule {
.ambientLight(2f)
.build());
var instance = MinecraftServer.getInstanceManager().createInstanceContainer(dimension, new IChunkLoader() {
var factory = WorldFactory.custom(dimension, new IChunkLoader() {
@Override
public @NotNull CompletableFuture<@Nullable Chunk> loadChunk(@NotNull Instance instance, int chunkX, int chunkZ) {
return CompletableFuture.supplyAsync(() -> {
@ -57,13 +58,15 @@ public class FlatWorldModule {
}
});
var world = factory.createWorldSync();
MinecraftServer.getGlobalEventHandler().addListener(AsyncPlayerConfigurationEvent.class, event -> {
var player = event.getPlayer();
player.setRespawnPoint(new Pos(0, 11, 0));
player.setGameMode(gameMode);
event.setSpawningInstance(instance);
event.setSpawningInstance(world.getInstance());
});
}
}