Режим игры решает сервер: клиент больше не ломает блоки сам

This commit is contained in:
sasheg dev
2026-10-20 23:03:54 +03:00
parent 1c93d9ae9a
commit aee8b61128
14 changed files with 367 additions and 33 deletions
@@ -417,7 +417,8 @@ public final class ProtocolTest {
yes("a fresh join carries no position", !freshBack.hasPosition);
Packets.WorldJoin world =
new Packets.WorldJoin(7, 1234567890123L, 0.5D, 64.0D, 0.5D, 8, 256);
new Packets.WorldJoin(7, 1234567890123L, 0.5D, 64.0D, 0.5D, 8, 256,
Packets.GAMEMODE_CREATIVE);
Packets.WorldJoin worldBack =
Packets.WorldJoin.read(new Buf(world.write().toByteArray()));
eq("entity id", Integer.valueOf(7), Integer.valueOf(worldBack.entityId));
@@ -425,6 +426,16 @@ public final class ProtocolTest {
eq("view distance", Integer.valueOf(8), Integer.valueOf(worldBack.viewDistance));
eq("world height", Integer.valueOf(256), Integer.valueOf(worldBack.worldHeight));
eq("spawn x", Double.valueOf(0.5D), Double.valueOf(worldBack.spawnX));
eq("game mode", Integer.valueOf(Packets.GAMEMODE_CREATIVE),
Integer.valueOf(worldBack.gameMode));
Packets.GameMode mode = new Packets.GameMode(Packets.GAMEMODE_SURVIVAL);
Packets.GameMode modeBack = Packets.GameMode.read(new Buf(mode.write().toByteArray()));
eq("survival comes back", Integer.valueOf(Packets.GAMEMODE_SURVIVAL),
Integer.valueOf(modeBack.mode));
yes("survival cannot break blocks", !modeBack.creative());
yes("creative can break blocks",
new Packets.GameMode(Packets.GAMEMODE_CREATIVE).creative());
Packets.BlockChange change = new Packets.BlockChange(-100, 70, 250, Blocks.STONE);
Packets.BlockChange changeBack =
@@ -528,6 +539,7 @@ public final class ProtocolTest {
Packets.WORLD_JOIN, Packets.CHUNK_DATA, Packets.BLOCK_CHANGE,
Packets.PLAYER_MOVE, Packets.ENTITY_MOVE, Packets.PING, Packets.PONG,
Packets.ENTITY_SPAWN, Packets.ENTITY_REMOVE, Packets.LAUNCHER_AUTH,
Packets.SET_GAME_MODE,
Packets.DISCONNECT,
};
for (int i = 0; i < ids.length; i++) {