Получение идентификатора
Протокол Minecraft часто обновляется, и с ним меняются идентификаторы пакетов. Один и тот же пакет может иметь разные идентификаторы на разных версиях протокола.
Для решения этой проблемы используются автоматически генерируемые словари, где:
Ключ — это комбинация версии протокола и
Order
(уникальный номер пакета для конкретной версии).Значение — это идентификатор пакета (число), который соответствует этому пакету на конкретной версии протокола.
Работа с идентификаторами пакетов
В классе PacketIdHelper
реализованы методы, позволяющие получить идентификатор пакета на основе его параметров и версии протокола:
Метод
TryGetPacketIdentifier
: Этот метод пытается найти идентификатор пакета по егоpacketId
, версии протокола, состоянию и направлению (к серверу или клиенту).Метод
GetPacketIdentifier
: Этот метод используетTryGetPacketIdentifier
, но в случае, если пакет не найден, выбрасывает исключениеKeyNotFoundException
. Этот метод полезен, когда необходимо обязательно получить идентификатор пакета.Метод
TryGetPacketId
: МетодTryGetPacketId
работает в обратном направлении: он получает идентификатор пакета и пытается найти егоpacketId
для конкретной версии протокола.Метод
GetPacketId
: Этот метод используетTryGetPacketId
для полученияpacketId
. Если идентификатор не найден, выбрасывается исключениеKeyNotFoundException
.