package mc.protocol.packets; import lombok.Data; import mc.protocol.buffer.NetByteBuf; /** * Пинг-пакет. * *

Эхо-пакет, которым проверяется качество соединения между Клиентом и Сервером.

* *

Структура пакета

*
 * | FIELD   | TYPE | NOTES                  |
 * |---------|------|------------------------|
 * | Payload | Long | Любое уникальное число |
 * 
* *

По спецификации:

* *
  • если Сервер не ответил Клиенту в течении 20 секунд, Клиент отключается и выдаёт ошибку "Timed out";
  • *
  • если Клиент не отвечает Серверу в течении 30 секунд, Сервер отключает Клиента.
  • *
    * * @see Keep Alive (clientbound) * @see Keep Alive (serverbound) */ @Data public class KeepAlivePacket implements ClientSidePacket, ServerSidePacket { private long payload; @Override public void readSelf(NetByteBuf netByteBuf) { payload = netByteBuf.readLong(); } @Override public void writeSelf(NetByteBuf netByteBuf) { netByteBuf.writeLong(payload); } @Override public void passivate() { this.payload = 0; } }