correct Ping
This commit is contained in:
@@ -10,6 +10,7 @@ import mc.core.netty.EventBus;
|
|||||||
import mc.core.netty.State;
|
import mc.core.netty.State;
|
||||||
import mc.core.netty.packets.HandshakeRequestPacket;
|
import mc.core.netty.packets.HandshakeRequestPacket;
|
||||||
import mc.core.netty.packets.HandshakeResponsePacket;
|
import mc.core.netty.packets.HandshakeResponsePacket;
|
||||||
|
import mc.core.netty.packets.PingPacket;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class HandshakeHandler implements EventBus.Listener {
|
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.attr(State.ATTR_STATE).set(packet.getNextState());
|
||||||
channel.writeAndFlush(new HandshakeResponsePacket());
|
channel.writeAndFlush(new HandshakeResponsePacket());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@EventBus.EventHandler(State.Handshaking)
|
||||||
|
public void onPing(PingPacket packet, Channel channel) {
|
||||||
|
channel.writeAndFlush(packet);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,13 +7,13 @@ package mc.core.netty.packets;
|
|||||||
import lombok.ToString;
|
import lombok.ToString;
|
||||||
import mc.core.NetStream;
|
import mc.core.NetStream;
|
||||||
import mc.core.Packet;
|
import mc.core.Packet;
|
||||||
|
import mc.core.netty.Utils;
|
||||||
import static mc.core.netty.Utils.*;
|
|
||||||
|
|
||||||
@ToString
|
@ToString
|
||||||
public class PingPacket implements Packet {
|
public class PingPacket implements Packet {
|
||||||
private static final int id = 1;
|
private static final int id = 1;
|
||||||
private long payload;
|
private static final int lenId = Utils.lengthVarInt(id);
|
||||||
|
private byte[] rawdata;
|
||||||
private int size;
|
private int size;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -28,18 +28,15 @@ public class PingPacket implements Packet {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void readSelf(NetStream netStream) {
|
public void readSelf(NetStream netStream) {
|
||||||
payload = netStream.readVarLong();
|
rawdata = new byte[netStream.getExpectedLength() - lenId];
|
||||||
size = lengthVarInt(id)
|
netStream.readBytes(rawdata);
|
||||||
+ lengthVarLong(payload);
|
size = lenId + rawdata.length;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void writeSelf(NetStream netStream) {
|
public void writeSelf(NetStream netStream) {
|
||||||
long payload = System.currentTimeMillis();
|
|
||||||
int size = lengthVarLong(payload);
|
|
||||||
|
|
||||||
netStream.writeVarInt(size);
|
netStream.writeVarInt(size);
|
||||||
netStream.writeVarInt(id);
|
netStream.writeVarInt(id);
|
||||||
netStream.writeVarLong(payload);
|
netStream.writeBytes(rawdata);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user