Javadoc
This commit is contained in:
@@ -4,6 +4,9 @@
|
|||||||
*/
|
*/
|
||||||
package mc.core.network;
|
package mc.core.network;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Пакеты Client->Server
|
||||||
|
*/
|
||||||
public interface CSPacket {
|
public interface CSPacket {
|
||||||
void readSelf(NetStream netStream);
|
void readSelf(NetStream netStream);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,9 @@
|
|||||||
*/
|
*/
|
||||||
package mc.core.network;
|
package mc.core.network;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Пакеты Server->Client
|
||||||
|
*/
|
||||||
public interface SCPacket {
|
public interface SCPacket {
|
||||||
void writeSelf(NetStream netStream);
|
void writeSelf(NetStream netStream);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,16 +14,33 @@ import mc.core.network.proto_1_12_2.packets.*;
|
|||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Для каждого состояния протокола имеется свой набор пакетов.
|
||||||
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public enum State {
|
public enum State {
|
||||||
|
/**
|
||||||
|
* Не известная стадия.
|
||||||
|
* Переход на этут стадию является следствием ошибки в работе протокола (умышленного или нет)
|
||||||
|
*/
|
||||||
UNKNOWN(-1, ImmutableMap.of(), ImmutableMap.of()),
|
UNKNOWN(-1, ImmutableMap.of(), ImmutableMap.of()),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Рукопожатие.
|
||||||
|
* С этого состояния начинается сюбое соединение с сервером.
|
||||||
|
*/
|
||||||
HANDSHAKE(0,
|
HANDSHAKE(0,
|
||||||
ImmutableMap.<Integer, Class<? extends CSPacket>>builder()
|
ImmutableMap.<Integer, Class<? extends CSPacket>>builder()
|
||||||
.put(0x00, HandshakePacket.class)
|
.put(0x00, HandshakePacket.class)
|
||||||
.build(),
|
.build(),
|
||||||
null
|
null
|
||||||
),
|
),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Информация о сервере.
|
||||||
|
* Используется для получения Motd, кол-ва слотов и т.д.
|
||||||
|
*/
|
||||||
STATUS(1,
|
STATUS(1,
|
||||||
ImmutableMap.<Integer, Class<? extends CSPacket>>builder()
|
ImmutableMap.<Integer, Class<? extends CSPacket>>builder()
|
||||||
.put(0x00, StatusRequestPacket.class)
|
.put(0x00, StatusRequestPacket.class)
|
||||||
@@ -34,6 +51,10 @@ public enum State {
|
|||||||
.put(PingPacket.class, 0x01)
|
.put(PingPacket.class, 0x01)
|
||||||
.build()
|
.build()
|
||||||
),
|
),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Стадия логина/авторизации.
|
||||||
|
*/
|
||||||
LOGIN(2,
|
LOGIN(2,
|
||||||
ImmutableMap.<Integer, Class<? extends CSPacket>>builder()
|
ImmutableMap.<Integer, Class<? extends CSPacket>>builder()
|
||||||
.put(0x00, LoginStartPacket.class)
|
.put(0x00, LoginStartPacket.class)
|
||||||
@@ -43,6 +64,11 @@ public enum State {
|
|||||||
.put(LoginSuccessPacket.class, 0x02)
|
.put(LoginSuccessPacket.class, 0x02)
|
||||||
.build()
|
.build()
|
||||||
),
|
),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Игровая стадия.
|
||||||
|
* Основная стадия протокола.
|
||||||
|
*/
|
||||||
PLAY(3,
|
PLAY(3,
|
||||||
ImmutableMap.<Integer, Class<? extends CSPacket>>builder()
|
ImmutableMap.<Integer, Class<? extends CSPacket>>builder()
|
||||||
.put(0x00, TeleportConfirmPacket.class)
|
.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