diff --git a/platforms/minestom/src/main/java/com/dfsek/terra/minestom/TerraMinestomExample.java b/platforms/minestom/src/main/java/com/dfsek/terra/minestom/TerraMinestomExample.java index b55ada3d0..1848c0315 100644 --- a/platforms/minestom/src/main/java/com/dfsek/terra/minestom/TerraMinestomExample.java +++ b/platforms/minestom/src/main/java/com/dfsek/terra/minestom/TerraMinestomExample.java @@ -1,11 +1,13 @@ package com.dfsek.terra.minestom; +import com.dfsek.terra.minestom.world.MinestomProtoWorld; import com.dfsek.terra.minestom.world.TerraMinestomWorldBuilder; 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.event.player.PlayerSpawnEvent; import net.minestom.server.instance.Instance; @@ -30,10 +32,13 @@ public class TerraMinestomExample { MinecraftServer.getGlobalEventHandler().addListener(AsyncPlayerConfigurationEvent.class, event -> { event.setSpawningInstance(instance); - event.getPlayer().setGameMode(GameMode.CREATIVE); event.getPlayer().setRespawnPoint(new Pos(0.0, 100.0, 0.0)); }); + MinecraftServer.getGlobalEventHandler().addListener(PlayerSpawnEvent.class, event -> { + event.getPlayer().setGameMode(GameMode.SPECTATOR); + }); + server.start("localhost", 25565); } } diff --git a/platforms/minestom/src/main/java/com/dfsek/terra/minestom/world/MinestomProtoWorld.java b/platforms/minestom/src/main/java/com/dfsek/terra/minestom/world/MinestomProtoWorld.java index 57cb1c3c5..628dcf990 100644 --- a/platforms/minestom/src/main/java/com/dfsek/terra/minestom/world/MinestomProtoWorld.java +++ b/platforms/minestom/src/main/java/com/dfsek/terra/minestom/world/MinestomProtoWorld.java @@ -53,11 +53,9 @@ public class MinestomProtoWorld implements ProtoWorld { @Override public void setBlockState(int x, int y, int z, BlockState data, boolean physics) { - int globalX = this.x * 16 + x; - int globalZ = this.z * 16 + z; - modifier.setBlock(globalX, y, globalZ, (Block) data.getHandle()); - int cx = globalX >> 4; - int cz = globalZ >> 4; + int cx = x >> 4; + int cz = y >> 4; + modifier.setBlock(x, y, z, (Block) data.getHandle()); cache.at(cx, cz) .setBlock(x & 15, y, z & 15, data); } @@ -71,7 +69,7 @@ public class MinestomProtoWorld implements ProtoWorld { public BlockState getBlockState(int x, int y, int z) { int chunkX = x >> 4; int chunkZ = z >> 4; - return cache.at(chunkX + this.x, chunkZ + this.z) + return cache.at(chunkX, chunkZ) .getBlock(x & 15, y, z & 15); }