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