diff --git a/src/main/java/mc/core/netty/handlers/HandshakeHandler.java b/src/main/java/mc/core/netty/handlers/HandshakeHandler.java index 0c55536..8dd4431 100644 --- a/src/main/java/mc/core/netty/handlers/HandshakeHandler.java +++ b/src/main/java/mc/core/netty/handlers/HandshakeHandler.java @@ -10,6 +10,7 @@ import mc.core.netty.EventBus; import mc.core.netty.State; import mc.core.netty.packets.HandshakeRequestPacket; import mc.core.netty.packets.HandshakeResponsePacket; +import mc.core.netty.packets.PingPacket; @Slf4j public class HandshakeHandler implements EventBus.Listener { @@ -18,4 +19,9 @@ public class HandshakeHandler implements EventBus.Listener { channel.attr(State.ATTR_STATE).set(packet.getNextState()); channel.writeAndFlush(new HandshakeResponsePacket()); } + + @EventBus.EventHandler(State.Handshaking) + public void onPing(PingPacket packet, Channel channel) { + channel.writeAndFlush(packet); + } } diff --git a/src/main/java/mc/core/netty/packets/PingPacket.java b/src/main/java/mc/core/netty/packets/PingPacket.java index c7642d0..778c017 100644 --- a/src/main/java/mc/core/netty/packets/PingPacket.java +++ b/src/main/java/mc/core/netty/packets/PingPacket.java @@ -7,13 +7,13 @@ package mc.core.netty.packets; import lombok.ToString; import mc.core.NetStream; import mc.core.Packet; - -import static mc.core.netty.Utils.*; +import mc.core.netty.Utils; @ToString public class PingPacket implements Packet { private static final int id = 1; - private long payload; + private static final int lenId = Utils.lengthVarInt(id); + private byte[] rawdata; private int size; @Override @@ -28,18 +28,15 @@ public class PingPacket implements Packet { @Override public void readSelf(NetStream netStream) { - payload = netStream.readVarLong(); - size = lengthVarInt(id) - + lengthVarLong(payload); + rawdata = new byte[netStream.getExpectedLength() - lenId]; + netStream.readBytes(rawdata); + size = lenId + rawdata.length; } @Override public void writeSelf(NetStream netStream) { - long payload = System.currentTimeMillis(); - int size = lengthVarLong(payload); - netStream.writeVarInt(size); netStream.writeVarInt(id); - netStream.writeVarLong(payload); + netStream.writeBytes(rawdata); } }