diff --git a/protocol/src/main/java/mc/protocol/State.java b/protocol/src/main/java/mc/protocol/State.java index b849adf..98e929e 100644 --- a/protocol/src/main/java/mc/protocol/State.java +++ b/protocol/src/main/java/mc/protocol/State.java @@ -10,6 +10,7 @@ import mc.protocol.packets.client.HandshakePacket; import mc.protocol.packets.client.LoginStartPacket; import mc.protocol.packets.client.StatusServerRequestPacket; import mc.protocol.packets.server.DisconnectPacket; +import mc.protocol.packets.server.LoginSuccessPacket; import mc.protocol.packets.server.StatusServerResponse; import javax.annotation.Nullable; @@ -39,7 +40,10 @@ public enum State { // server bound Map.of(0x00, LoginStartPacket.class), // client bound - Map.of(DisconnectPacket.class, 0x00) + Map.of( + DisconnectPacket.class, 0x00, + LoginSuccessPacket.class, 0x02 + ) ); @Nullable diff --git a/protocol/src/main/java/mc/protocol/packets/server/LoginSuccessPacket.java b/protocol/src/main/java/mc/protocol/packets/server/LoginSuccessPacket.java new file mode 100644 index 0000000..9f8db49 --- /dev/null +++ b/protocol/src/main/java/mc/protocol/packets/server/LoginSuccessPacket.java @@ -0,0 +1,33 @@ +package mc.protocol.packets.server; + +import lombok.Data; +import mc.protocol.io.NetByteBuf; +import mc.protocol.packets.ServerSidePacket; + +import java.util.UUID; + +/** + * Подтверждение успешного логина. + * + *
Структура пакета
+ *+ * | FIELD | TYPE | NOTES | + * |----------|-------------|-------------------------------| + * | UUID | String (36) | Уникальный ID игрока | + * | Username | String (16) | Имя игрока, выданное сервером | + *+ * + * @see Login Success + */ +@Data +public class LoginSuccessPacket implements ServerSidePacket { + + private UUID uuid; + private String name; + + @Override + public void writeSelf(NetByteBuf netByteBuf) { + netByteBuf.writeString(uuid.toString()); + netByteBuf.writeString(name); + } +} diff --git a/server/src/main/java/mc/server/PacketHandler.java b/server/src/main/java/mc/server/PacketHandler.java index b037ec1..b016bd0 100644 --- a/server/src/main/java/mc/server/PacketHandler.java +++ b/server/src/main/java/mc/server/PacketHandler.java @@ -9,7 +9,7 @@ import mc.protocol.packets.PingPacket; import mc.protocol.packets.client.HandshakePacket; import mc.protocol.packets.client.LoginStartPacket; import mc.protocol.packets.client.StatusServerRequestPacket; -import mc.protocol.packets.server.DisconnectPacket; +import mc.protocol.packets.server.LoginSuccessPacket; import mc.protocol.packets.server.StatusServerResponse; import mc.protocol.serializer.TextSerializer; import mc.server.config.Config; @@ -20,6 +20,7 @@ import java.nio.file.Files; import java.nio.file.Path; import java.util.Base64; import java.util.Collections; +import java.util.UUID; @Slf4j @RequiredArgsConstructor @@ -55,10 +56,13 @@ public class PacketHandler { } public void onLoginStart(ChannelContext