@events.send_packetможно отменить3 методаПрямо перед отправкой пакета на сервер.
Самое низкоуровневое место в API: здесь проходит всё, что клиент говорит серверу. Позиция, удары, взмахи руки, чат, присед, спринт.
Пакет можно прочитать, поправить его поля, заменить целиком или не отправлять.
Тип пакета определяют через is_instance: обычный isinstance тут не работает.
| Метод | Возвращает | Зачем |
|---|---|---|
getPacket() | Packet | Сам пакет. Объект игры, методы зовутся сразу |
setPacket(p) | ничего | Заменить пакет целиком |
cancel() / isCancelled() | ничего / bool | Не отправлять пакет |
MOVE = "net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket"
mod = Module("NoFall", "Player")
@events.send_packet
def on_send(event):
if not mod.isEnabled() or not world.ingame():
return
packet = event.getPacket()
if not is_instance(packet, MOVE):
return
if not mc.player.isOnGround():
# поля пакета читаются и пишутся напрямую: getX() тут требует аргумент
packet.onGround = TrueОбщий список всех событий и правила подписки лежат на странице События.