PingPacket -> KeepAlivePacket
This commit is contained in:
@@ -4,7 +4,7 @@ import lombok.Getter;
|
|||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import mc.protocol.packets.ClientSidePacket;
|
import mc.protocol.packets.ClientSidePacket;
|
||||||
import mc.protocol.packets.Packet;
|
import mc.protocol.packets.Packet;
|
||||||
import mc.protocol.packets.PingPacket;
|
import mc.protocol.packets.KeepAlivePacket;
|
||||||
import mc.protocol.packets.ServerSidePacket;
|
import mc.protocol.packets.ServerSidePacket;
|
||||||
import mc.protocol.packets.client.*;
|
import mc.protocol.packets.client.*;
|
||||||
import mc.protocol.packets.server.*;
|
import mc.protocol.packets.server.*;
|
||||||
@@ -24,12 +24,12 @@ public enum State {
|
|||||||
// client side
|
// client side
|
||||||
Map.of(
|
Map.of(
|
||||||
0x00, StatusServerRequestPacket.class,
|
0x00, StatusServerRequestPacket.class,
|
||||||
0x01, PingPacket.class
|
0x01, KeepAlivePacket.class
|
||||||
),
|
),
|
||||||
// server side
|
// server side
|
||||||
Map.of(
|
Map.of(
|
||||||
StatusServerResponse.class, 0x00,
|
StatusServerResponse.class, 0x00,
|
||||||
PingPacket.class, 0x01
|
KeepAlivePacket.class, 0x01
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
LOGIN(2,
|
LOGIN(2,
|
||||||
@@ -47,7 +47,7 @@ public enum State {
|
|||||||
0x00, TeleportConfirmPacket.class,
|
0x00, TeleportConfirmPacket.class,
|
||||||
0x04, ClientSettingsPacket.class,
|
0x04, ClientSettingsPacket.class,
|
||||||
0x09, PluginMessagePacket.class,
|
0x09, PluginMessagePacket.class,
|
||||||
0x0B, PingPacket.class,
|
0x0B, KeepAlivePacket.class,
|
||||||
0x0D, PlayerPositionPacket.class,
|
0x0D, PlayerPositionPacket.class,
|
||||||
0x0E, CPlayerPositionAndLookPacket.class,
|
0x0E, CPlayerPositionAndLookPacket.class,
|
||||||
0x0F, PlayerLookPacket.class,
|
0x0F, PlayerLookPacket.class,
|
||||||
@@ -55,7 +55,7 @@ public enum State {
|
|||||||
),
|
),
|
||||||
// client bound
|
// client bound
|
||||||
Map.of(
|
Map.of(
|
||||||
PingPacket.class, 0x1F,
|
KeepAlivePacket.class, 0x1F,
|
||||||
ChunkDataPacket.class, 0x20,
|
ChunkDataPacket.class, 0x20,
|
||||||
JoinGamePacket.class, 0x23,
|
JoinGamePacket.class, 0x23,
|
||||||
PlayerAbilitiesPacket.class,0x2C,
|
PlayerAbilitiesPacket.class,0x2C,
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ import mc.protocol.io.NetByteBuf;
|
|||||||
* @see <a href="https://wiki.vg/index.php?title=Protocol&oldid=7368#Keep_Alive">Keep Alive</a>
|
* @see <a href="https://wiki.vg/index.php?title=Protocol&oldid=7368#Keep_Alive">Keep Alive</a>
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class PingPacket implements ClientSidePacket, ServerSidePacket {
|
public class KeepAlivePacket implements ClientSidePacket, ServerSidePacket {
|
||||||
|
|
||||||
private Long payload;
|
private Long payload;
|
||||||
|
|
||||||
@@ -12,7 +12,7 @@ import mc.protocol.api.Server;
|
|||||||
import mc.protocol.di.DaggerProtocolComponent;
|
import mc.protocol.di.DaggerProtocolComponent;
|
||||||
import mc.protocol.di.ProtocolComponent;
|
import mc.protocol.di.ProtocolComponent;
|
||||||
import mc.protocol.di.ProtocolModule;
|
import mc.protocol.di.ProtocolModule;
|
||||||
import mc.protocol.packets.PingPacket;
|
import mc.protocol.packets.KeepAlivePacket;
|
||||||
import mc.protocol.packets.client.HandshakePacket;
|
import mc.protocol.packets.client.HandshakePacket;
|
||||||
import mc.protocol.packets.client.LoginStartPacket;
|
import mc.protocol.packets.client.LoginStartPacket;
|
||||||
import mc.protocol.packets.client.StatusServerRequestPacket;
|
import mc.protocol.packets.client.StatusServerRequestPacket;
|
||||||
@@ -60,10 +60,10 @@ public class Main {
|
|||||||
server.onDisonnect(connectionContext -> connectionContext.setState(null));
|
server.onDisonnect(connectionContext -> connectionContext.setState(null));
|
||||||
|
|
||||||
server.listenPacket(State.HANDSHAKING, HandshakePacket.class, packetHandler::onHandshake);
|
server.listenPacket(State.HANDSHAKING, HandshakePacket.class, packetHandler::onHandshake);
|
||||||
server.listenPacket(State.STATUS, PingPacket.class, packetHandler::onKeepAlive);
|
server.listenPacket(State.STATUS, KeepAlivePacket.class, packetHandler::onKeepAlive);
|
||||||
server.listenPacket(State.STATUS, StatusServerRequestPacket.class, packetHandler::onServerStatus);
|
server.listenPacket(State.STATUS, StatusServerRequestPacket.class, packetHandler::onServerStatus);
|
||||||
server.listenPacket(State.LOGIN, LoginStartPacket.class, packetHandler::onLoginStart);
|
server.listenPacket(State.LOGIN, LoginStartPacket.class, packetHandler::onLoginStart);
|
||||||
server.listenPacket(State.PLAY, PingPacket.class, packetHandler::onKeepAlivePlay);
|
server.listenPacket(State.PLAY, KeepAlivePacket.class, packetHandler::onKeepAlivePlay);
|
||||||
|
|
||||||
server.bind(config.server().host(), config.server().port());
|
server.bind(config.server().host(), config.server().port());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import mc.protocol.api.ConnectionContext;
|
|||||||
import mc.protocol.model.Location;
|
import mc.protocol.model.Location;
|
||||||
import mc.protocol.model.Look;
|
import mc.protocol.model.Look;
|
||||||
import mc.protocol.model.ServerInfo;
|
import mc.protocol.model.ServerInfo;
|
||||||
import mc.protocol.packets.PingPacket;
|
import mc.protocol.packets.KeepAlivePacket;
|
||||||
import mc.protocol.packets.client.HandshakePacket;
|
import mc.protocol.packets.client.HandshakePacket;
|
||||||
import mc.protocol.packets.client.LoginStartPacket;
|
import mc.protocol.packets.client.LoginStartPacket;
|
||||||
import mc.protocol.packets.client.StatusServerRequestPacket;
|
import mc.protocol.packets.client.StatusServerRequestPacket;
|
||||||
@@ -39,12 +39,12 @@ public class PacketHandler {
|
|||||||
context.setState(packet.getNextState());
|
context.setState(packet.getNextState());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onKeepAlive(ConnectionContext context, PingPacket packet) {
|
public void onKeepAlive(ConnectionContext context, KeepAlivePacket packet) {
|
||||||
context.sendNow(packet);
|
context.sendNow(packet);
|
||||||
context.disconnect();
|
context.disconnect();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onKeepAlivePlay(ConnectionContext context, PingPacket packet) {
|
public void onKeepAlivePlay(ConnectionContext context, KeepAlivePacket packet) {
|
||||||
try {
|
try {
|
||||||
TimeUnit.MILLISECONDS.sleep(50);
|
TimeUnit.MILLISECONDS.sleep(50);
|
||||||
context.sendNow(packet);
|
context.sendNow(packet);
|
||||||
@@ -124,10 +124,10 @@ public class PacketHandler {
|
|||||||
|
|
||||||
context.send(playerPositionAndLookPacket);
|
context.send(playerPositionAndLookPacket);
|
||||||
|
|
||||||
PingPacket pingPacket = new PingPacket();
|
KeepAlivePacket keepAlivePacket = new KeepAlivePacket();
|
||||||
pingPacket.setPayload(System.currentTimeMillis());
|
keepAlivePacket.setPayload(System.currentTimeMillis());
|
||||||
|
|
||||||
context.send(pingPacket);
|
context.send(keepAlivePacket);
|
||||||
|
|
||||||
context.flushSending();
|
context.flushSending();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user