Ping packet
This commit is contained in:
@@ -4,12 +4,18 @@
|
||||
*/
|
||||
package mc.core;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import java.nio.charset.StandardCharsets;
|
||||
|
||||
@Slf4j
|
||||
public abstract class NetStream {
|
||||
@Getter
|
||||
@Setter
|
||||
private int expectedSize;
|
||||
|
||||
public static int sizeVarInt(final int value) {
|
||||
byte size = 0;
|
||||
int v = value;
|
||||
@@ -74,4 +80,6 @@ public abstract class NetStream {
|
||||
|
||||
public abstract void writeByte(int value);
|
||||
public abstract void writeBytes(byte[] buffer);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -59,6 +59,7 @@ public class PacketDecoder extends ByteToMessageDecoder {
|
||||
}
|
||||
} else {
|
||||
CSPacket packet = clientSidePacketClass.newInstance();
|
||||
netStream.setExpectedSize(size - NetStream.sizeVarInt(id));
|
||||
packet.readSelf(netStream);
|
||||
out.add(packet);
|
||||
}
|
||||
|
||||
@@ -12,6 +12,7 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import mc.core.CSPacket;
|
||||
import mc.core.Config;
|
||||
import mc.core.Main;
|
||||
import mc.core.netty.packets.PingPacket;
|
||||
import mc.core.netty.packets.StatusRequest;
|
||||
import mc.core.netty.packets.StatusResponse;
|
||||
|
||||
@@ -51,4 +52,8 @@ public class PacketHandler extends SimpleChannelInboundHandler<CSPacket> {
|
||||
|
||||
channel.writeAndFlush(pkt);
|
||||
}
|
||||
|
||||
public void onPingPacket(Channel channel, PingPacket packet) {
|
||||
channel.writeAndFlush(packet);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@ import io.netty.util.AttributeKey;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import mc.core.CSPacket;
|
||||
import mc.core.SCPacket;
|
||||
import mc.core.netty.packets.PingPacket;
|
||||
import mc.core.netty.packets.StatusRequest;
|
||||
import mc.core.netty.packets.StatusResponse;
|
||||
|
||||
@@ -21,9 +22,12 @@ public enum State {
|
||||
UNKNOWN(0, ImmutableMap.of(), ImmutableMap.of()),
|
||||
STATUS(1,
|
||||
ImmutableMap.of(
|
||||
0, StatusRequest.class
|
||||
), ImmutableMap.of(
|
||||
StatusResponse.class, 0
|
||||
0, StatusRequest.class,
|
||||
1, PingPacket.class
|
||||
),
|
||||
ImmutableMap.of(
|
||||
StatusResponse.class, 0,
|
||||
PingPacket.class, 1
|
||||
)
|
||||
);
|
||||
|
||||
|
||||
24
src/main/java/mc/core/netty/packets/PingPacket.java
Normal file
24
src/main/java/mc/core/netty/packets/PingPacket.java
Normal file
@@ -0,0 +1,24 @@
|
||||
/*
|
||||
* DmitriyMX <dimon550@gmail.com>
|
||||
* 2018-04-08
|
||||
*/
|
||||
package mc.core.netty.packets;
|
||||
|
||||
import mc.core.CSPacket;
|
||||
import mc.core.NetStream;
|
||||
import mc.core.SCPacket;
|
||||
|
||||
public class PingPacket implements CSPacket, SCPacket {
|
||||
private byte[] rawData;
|
||||
|
||||
@Override
|
||||
public void readSelf(NetStream netStream) {
|
||||
rawData = new byte[netStream.getExpectedSize()];
|
||||
netStream.readBytes(rawData);
|
||||
}
|
||||
|
||||
@Override
|
||||
public byte[] toByteArray() {
|
||||
return rawData;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user