refactoring: Packets
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
package mc.protocol.packets;
|
||||
|
||||
import lombok.Data;
|
||||
import mc.protocol.io.NetByteBuf;
|
||||
|
||||
/**
|
||||
* Пинг-пакет.
|
||||
*
|
||||
* <p>Эхо-пакет, которым проверяется качество соединения между <b>Клиентом</b> и <b>Сервером</b>.</p>
|
||||
*
|
||||
* <p>Структура пакета</p>
|
||||
* <pre>
|
||||
* | FIELD | TYPE | NOTES |
|
||||
* |---------|------|------------------------|
|
||||
* | Payload | Long | Любое уникальное число |
|
||||
* </pre>
|
||||
*
|
||||
* <p>По спецификации:</p>
|
||||
* <oi>
|
||||
* <li>если Сервер не ответил Клиенту в течении 20 секунд, Клиент отключается и выдаёт ошибку "Timed out";</li>
|
||||
* <li>если Клиент не отвечает Серверу в течении 30 секунд, Сервер отключает Клиента.</li>
|
||||
* </oi>
|
||||
*
|
||||
* @see <a href="https://wiki.vg/index.php?title=Protocol&oldid=14204#Keep_Alive_.28clientbound.29">Keep Alive (clientbound)</a>
|
||||
* @see <a href="https://wiki.vg/index.php?title=Protocol&oldid=14204#Keep_Alive_.28serverbound.29">Keep Alive (serverbound)</a>
|
||||
*/
|
||||
@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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user