Перейти к основному содержимому

Об проекте

McProtoNet - это открытая библиотека, написанная на C#, для работы с протоколом Minecraft Java Edition. Соединение, разбор входящих пакетов, отправка своих - всё это она делает сама.

Что на ней делают

Боты - самое частое. Дальше идут самодельные клиенты и мелкие инструменты: опросить сервер, найти его по SRV-записи, поймать серверы в локальной сети.

Одна сборка на все версии

Диапазон - от 1.16 до 26.2, и отдельной сборки под каждую версию не нужно. Внутри пакета лежат раскладки полей по версиям протокола, нужную выбирает номер протокола, заданный при подключении. Переезд на другую версию меняет число, а не код.

Скорость

Пакеты - это байты, и библиотека старается их лишний раз не копировать. Приём идёт без копий: пакет приезжает как окно в общий буфер, а не как свежий массив. Сжимает libdeflate. Шифрует свой AES на инструкциях процессора. Примитивы читаются и пишутся по Span<byte>. Рефлексии в горячем пути нет, сборки помечены как совместимые с NativeAOT.

Что остаётся снаружи

Игровое поведение пишется поверх библиотеки, а не берётся из неё. Куда идти, кого бить, что ответить в чат - решает код приложения. Там же живёт порядок входа на сервер. Подробности собраны на странице «Что библиотека не делает», прочитать её стоит до того, как планировать работу.

Дальше