Об проекте
McProtoNet - это открытая библиотека, написанная на C#, для работы с протоколом Minecraft Java Edition. Соединение, разбор входящих пакетов, отправка своих - всё это она делает сама.
Что на ней делают
Боты - самое частое. Дальше идут самодельные клиенты и мелкие инструменты: опросить сервер, найти его по SRV-записи, поймать серверы в локальной сети.
Одна сборка на все версии
Диапазон - от 1.16 до 26.2, и отдельной сборки под каждую версию не нужно. Внутри пакета лежат раскладки полей по версиям протокола, нужную выбирает номер протокола, заданный при подключении. Переезд на другую версию меняет число, а не код.
Скорость
Пакеты - это байты, и библиотека старается их лишний раз не копировать. Приём
идёт без копий: пакет приезжает как окно в общий буфер, а не как свежий массив.
Сжимает libdeflate. Шифрует свой AES на инструкциях процессора. Примитивы
читаются и пишутся по Span<byte>. Рефлексии в горячем пути нет, сборки
помечены как совместимые с NativeAOT.
Что остаётся снаружи
Игровое поведение пишется поверх библиотеки, а не берётся из неё. Куда идти, кого бить, что ответить в чат - решает код приложения. Там же живёт порядок входа на сервер. Подробности собраны на странице «Что библиотека не делает», прочитать её стоит до того, как планировать работу.