Archived
0

PingPacket -> KeepAlivePacket

This commit is contained in:
2021-05-09 17:00:25 +03:00
parent f10fb46d23
commit 8a6f37924e
4 changed files with 15 additions and 15 deletions

View File

@@ -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,

View File

@@ -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;

View File

@@ -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());
} }

View File

@@ -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();
} }