Archived
0
This commit is contained in:
2018-07-12 12:10:33 +03:00
parent 222c04603f
commit 99febc56df
5 changed files with 72 additions and 0 deletions

View File

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

View File

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

View File

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

View File

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

View File

@@ -0,0 +1,8 @@
/*
* DmitriyMX <dimon550@gmail.com>
* 2018-07-12
*/
package mc.core.network.proto_1_12_2.packets;
public class BossBarPacket {
}