From ac8a1e1921ad661434777ed55bef0e00ed5091dc Mon Sep 17 00:00:00 2001 From: DmitriyMX Date: Sun, 6 May 2018 14:53:28 +0300 Subject: [PATCH] Player mode --- .../main/java/mc/core/player/PlayerMode.java | 17 +++++++++++++++++ .../network/proto_125/packets/LoginPacket.java | 5 +++-- .../network/proto_125/netty/PacketHandler.java | 3 ++- 3 files changed, 22 insertions(+), 3 deletions(-) create mode 100644 core/src/main/java/mc/core/player/PlayerMode.java diff --git a/core/src/main/java/mc/core/player/PlayerMode.java b/core/src/main/java/mc/core/player/PlayerMode.java new file mode 100644 index 0000000..3ee2048 --- /dev/null +++ b/core/src/main/java/mc/core/player/PlayerMode.java @@ -0,0 +1,17 @@ +/* + * DmitriyMX + * 2018-05-06 + */ +package mc.core.player; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; + +@RequiredArgsConstructor +@Getter +public enum PlayerMode { + SURVIVAL(0), + CREATIVE(1); + + private final int id; +} diff --git a/proto125/src/main/java/mc/core/network/proto_125/packets/LoginPacket.java b/proto125/src/main/java/mc/core/network/proto_125/packets/LoginPacket.java index 22ad07c..2567d73 100644 --- a/proto125/src/main/java/mc/core/network/proto_125/packets/LoginPacket.java +++ b/proto125/src/main/java/mc/core/network/proto_125/packets/LoginPacket.java @@ -11,6 +11,7 @@ import mc.core.network.CSPacket; import mc.core.network.NetStream; import mc.core.network.SCPacket; import mc.core.network.proto_125.ByteArrayOutputNetStream; +import mc.core.player.PlayerMode; @ToString public class LoginPacket implements CSPacket, SCPacket { @@ -24,7 +25,7 @@ public class LoginPacket implements CSPacket, SCPacket { @Setter private String levelType; @Setter - private int serverMode; + private PlayerMode defaultPlayerMode; @Setter private int dimension; @Setter @@ -45,7 +46,7 @@ public class LoginPacket implements CSPacket, SCPacket { netStream.writeInt(playerId); netStream.writeString(""); netStream.writeString(levelType); - netStream.writeInt(serverMode); + netStream.writeInt(defaultPlayerMode.getId()); netStream.writeInt(dimension); netStream.writeByte(difficulty); netStream.writeByte(0); diff --git a/proto125_netty/src/main/java/mc/core/network/proto_125/netty/PacketHandler.java b/proto125_netty/src/main/java/mc/core/network/proto_125/netty/PacketHandler.java index 122fb2b..fede65f 100644 --- a/proto125_netty/src/main/java/mc/core/network/proto_125/netty/PacketHandler.java +++ b/proto125_netty/src/main/java/mc/core/network/proto_125/netty/PacketHandler.java @@ -21,6 +21,7 @@ import mc.core.network.proto_125.packets.*; import mc.core.player.Look; import mc.core.player.Player; import mc.core.player.PlayerManager; +import mc.core.player.PlayerMode; import mc.core.world.World; import org.springframework.beans.factory.annotation.Autowired; @@ -105,7 +106,7 @@ public class PacketHandler extends SimpleChannelInboundHandler { // Response login packet.setPlayerId(player.getId()); packet.setLevelType("flat"); - packet.setServerMode(1/*creative*/); + packet.setDefaultPlayerMode(PlayerMode.CREATIVE); packet.setDimension(0/*Overworld*/); packet.setDifficulty(0/*Peaceful*/); packet.setMaxPlayers(config.getMaxPlayers());