Javadoc
This commit is contained in:
@@ -4,6 +4,9 @@
|
||||
*/
|
||||
package mc.core.network;
|
||||
|
||||
/**
|
||||
* Пакеты Client->Server
|
||||
*/
|
||||
public interface CSPacket {
|
||||
void readSelf(NetStream netStream);
|
||||
}
|
||||
|
||||
@@ -4,6 +4,9 @@
|
||||
*/
|
||||
package mc.core.network;
|
||||
|
||||
/**
|
||||
* Пакеты Server->Client
|
||||
*/
|
||||
public interface SCPacket {
|
||||
void writeSelf(NetStream netStream);
|
||||
}
|
||||
|
||||
@@ -14,16 +14,33 @@ import mc.core.network.proto_1_12_2.packets.*;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* Для каждого состояния протокола имеется свой набор пакетов.
|
||||
*/
|
||||
@Slf4j
|
||||
@RequiredArgsConstructor
|
||||
public enum State {
|
||||
/**
|
||||
* Не известная стадия.
|
||||
* Переход на этут стадию является следствием ошибки в работе протокола (умышленного или нет)
|
||||
*/
|
||||
UNKNOWN(-1, ImmutableMap.of(), ImmutableMap.of()),
|
||||
|
||||
/**
|
||||
* Рукопожатие.
|
||||
* С этого состояния начинается сюбое соединение с сервером.
|
||||
*/
|
||||
HANDSHAKE(0,
|
||||
ImmutableMap.<Integer, Class<? extends CSPacket>>builder()
|
||||
.put(0x00, HandshakePacket.class)
|
||||
.build(),
|
||||
null
|
||||
),
|
||||
|
||||
/**
|
||||
* Информация о сервере.
|
||||
* Используется для получения Motd, кол-ва слотов и т.д.
|
||||
*/
|
||||
STATUS(1,
|
||||
ImmutableMap.<Integer, Class<? extends CSPacket>>builder()
|
||||
.put(0x00, StatusRequestPacket.class)
|
||||
@@ -34,6 +51,10 @@ public enum State {
|
||||
.put(PingPacket.class, 0x01)
|
||||
.build()
|
||||
),
|
||||
|
||||
/**
|
||||
* Стадия логина/авторизации.
|
||||
*/
|
||||
LOGIN(2,
|
||||
ImmutableMap.<Integer, Class<? extends CSPacket>>builder()
|
||||
.put(0x00, LoginStartPacket.class)
|
||||
@@ -43,6 +64,11 @@ public enum State {
|
||||
.put(LoginSuccessPacket.class, 0x02)
|
||||
.build()
|
||||
),
|
||||
|
||||
/**
|
||||
* Игровая стадия.
|
||||
* Основная стадия протокола.
|
||||
*/
|
||||
PLAY(3,
|
||||
ImmutableMap.<Integer, Class<? extends CSPacket>>builder()
|
||||
.put(0x00, TeleportConfirmPacket.class)
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
/**
|
||||
* Протокол Minecraft версии 1.12.2 (номер версии протокола - 340)
|
||||
*
|
||||
*
|
||||
* Типы данных.
|
||||
*
|
||||
* (см. http://wiki.vg/Protocol#Data_types)
|
||||
*
|
||||
*
|
||||
* Формат пакетов.
|
||||
*
|
||||
* Есть два варианта: без использования сжатия и с использованием.
|
||||
* Регулируется это пакетом {@link mc.core.network.proto_1_12_2.packets.SetCompressionPacket}
|
||||
*
|
||||
* Формат без использования сжатия:
|
||||
*
|
||||
* +---------------+------------+--------------------+
|
||||
* | Название | Тип | Комментарий |
|
||||
* +---------------+------------+--------------------+
|
||||
* | Размер пакета | VarInt | ID пакета + данные |
|
||||
* +---------------+------------+--------------------+
|
||||
* | ID пакета | VarInt | |
|
||||
* +---------------+------------+--------------------+
|
||||
* | Данные | Byte Array | |
|
||||
* +---------------+------------+--------------------+
|
||||
*
|
||||
* Формат с использованием сжатия:
|
||||
*
|
||||
* (см. http://wiki.vg/Protocol#With_compression)
|
||||
*/
|
||||
|
||||
package mc.core.network.proto_1_12_2;
|
||||
@@ -0,0 +1,8 @@
|
||||
/*
|
||||
* DmitriyMX <dimon550@gmail.com>
|
||||
* 2018-07-12
|
||||
*/
|
||||
package mc.core.network.proto_1_12_2.packets;
|
||||
|
||||
public class BossBarPacket {
|
||||
}
|
||||
Reference in New Issue
Block a user