Чтение и запись пакетов
В пространстве имен McProtoNet.Net
расположены основные классы, которые обеспечивают работу с пакетами. Они читают и записывают пакеты согласно протоколу Minecraft.
MinecraftPacketReader
Класс MinecraftPacketReader
предназначен для чтения пакетов из любого потока, в том числе, сетевого.
Для этого есть метод ReadNextPacketAsync
, который возвращает InputPacket.
MinecraftPacketSender
Этот класс занимается отправкой пакетов. Добиться этого можно с помощью метода SendPacketAsync
, который в качестве аргумента принимает ReadOnlyMemory<byte>
.
ReadOnlyMemory<byte>
- это отправленный пакет, у которого первые байты это идентификатор, остальное - данные.
Также имеются методы расширения для OutputPacket. Это удобно, если Вы отправляете пакет прямиком из MinecraftPrimitiveWriter
.
Сжатие
Оба, вышеупомянутых класса, позволяют включить сжатие. Это достигается с помощью метода SwitchCompression
, который принимает в качестве аргумента число — порог сжатия.
Для повышения производительности при сжатии и декомпрессии пакетов используется библиотека libdeflate.