Пакет

Объект паке

Информация

В Minecraft, пакет (packet) представляет собой структурированный блок данных, который отправляется между клиентом и сервером для обмена информацией. Пакеты используются для синхронизации данных между клиентом (игроком) и сервером, чтобы обеспечить правильное функционирование игры и обмен информацией о событиях, таких как движение игроков, изменение блоков, взаимодействие с мобами и другие игровые события.

Подробнее о пакетах можно почитать тут на английском.

Как отправлять пакеты?

Для отправки пакетов используется функция player:send_packet(). Для теста будем использовать пакет CChatMessagePacket. Он нужен для отправки сообщений в чат. Посмотреть все клиентские пакеты можно тут.

player:send_packet(CChatMessagePacket.new("Hello!"))

Как проверять отправляемые пакеты?

Если вам нужно проверить пакеты, которые отправляет игрок(допустим, чтобы отменить их в случае чего), можно воспользоваться событием send_packet.

script:name("New Script") -- Имя скрипта
script:devs({"Author"}) -- Разработчики
script:desc("Example Script") -- Описание

events.send_packet:set(function(event)
    if event:getPacket():getClass() == CChatMessagePacket then
        event:cancel()
    end
end)

Этот код отменяет пакет CChatMessagePacket, из-за этого сообщения, которые вы отправите в чат, будут отменятся.

Как проверять получаемые пакеты?

Как пример серверного пакета, возьмём SEntityVelocityPacket, он сообщяет о том, что какая-либо сущность откинулась. Все серверные пакеты можно тут.

events.receive_packet:set(function(event)
    if event:getPacket():getClass() == SEntityVelocityPacket then -- Проверяем, что полученный пакет это SEntityVelocityPacket
        if event:getPacket():getEntityID() == player:id() then -- Проверяем, что сущность, которая должна откинуться это игрок
            event:cancel() -- Отменяем откидывание
        end
    end
end)

Last updated