From 6e8b554b38803b0b6f76f39a88fded7a49d72908 Mon Sep 17 00:00:00 2001 From: Alexander Medvedev Date: Fri, 5 Jun 2026 16:39:29 +0200 Subject: [PATCH] fix: some more packet work --- v0.1/bedrock-packets.wit | 106 ++++++++++++++++++++++++++++++++++++++- v0.1/java-packets.wit | 26 +++++----- 2 files changed, 118 insertions(+), 14 deletions(-) diff --git a/v0.1/bedrock-packets.wit b/v0.1/bedrock-packets.wit index d488a3a..d5c2b23 100644 --- a/v0.1/bedrock-packets.wit +++ b/v0.1/bedrock-packets.wit @@ -2,10 +2,17 @@ package pumpkin:plugin@0.1.0; interface bedrock-packets { use uuid.{ uuid }; + record s-actor-event { + entity-runtime-id: s32, + event-type: string, + event-data: s32, + fire-at-position: option>, + } record s-animate { action: string, runtime-entity-id: string, - boat-rowing-time: option, + data: f32, + swing-source: option, } record s-client-cache-status { cache-supported: bool, @@ -24,11 +31,30 @@ interface bedrock-packets { container-type: u8, server-initiated: bool, } + record s-emote { + runtime-entity-id: string, + emote-id: string, + emote-length: s32, + xuid: string, + platform-id: string, + %flags: u8, + } + record s-emote-list { + runtime-entity-id: string, + emote-pieces: list, + } record s-interaction { action: string, target-runtime-id: string, position: option>, } + record s-inventory-transaction { + legacy-request-id: s32, + legacy-set-item-slots: list, + actions: list, + transaction-type: s32, + transaction-data: string, + } record s-loading-screen { status: s32, id: option, @@ -124,6 +150,40 @@ interface bedrock-packets { platform-chat-id: string, filtered-message: option, } + record c-add-actor { + entity-unique-id: string, + entity-runtime-id: string, + entity-type: string, + position: tuple, + velocity: tuple, + pitch: f32, + yaw: f32, + head-yaw: f32, + body-yaw: f32, + attributes: list, + metadata: string, + synced-properties: string, + links: list, + } + record c-add-player { + uuid: uuid, + username: string, + entity-runtime-id: string, + platform-chat-id: string, + position: tuple, + velocity: tuple, + pitch: f32, + yaw: f32, + head-yaw: f32, + held-item: string, + game-mode: s32, + metadata: string, + properties: string, + ability-data: string, + links: list, + device-id: string, + build-platform: s32, + } record c-available-commands { enum-values: list, chained-subcommand-values: list, @@ -191,6 +251,24 @@ interface bedrock-packets { form-id: s32, form-data: string, } + record c-move-actor-absolute { + entity-runtime-id: string, + %flags: u8, + position: tuple, + pitch: u8, + yaw: u8, + head-yaw: u8, + } + record c-move-actor-delta { + entity-runtime-id: string, + %flags: s32, + x: f32, + y: f32, + z: f32, + pitch: u8, + yaw: u8, + head-yaw: u8, + } record c-move-player { player-runtime-id: string, position: tuple, @@ -200,6 +278,8 @@ interface bedrock-packets { mode: u8, on-ground: bool, riding-runtime-id: string, + teleport-cause: s32, + teleport-source-entity-type: s32, tick: string, } record c-network-chunk-publisher-update { @@ -219,6 +299,10 @@ interface bedrock-packets { container-id: u8, should-select-block: bool, } + record c-player-list { + action: u8, + entries: list, + } record c-connected-pong { ping: s64, pong: s64, @@ -254,6 +338,9 @@ interface bedrock-packets { magic: string, server-id: string, } + record c-remove-actor { + entity-unique-id: string, + } record c-resource-pack-stack-packet { resource-pack-required: bool, resource-packs: list, @@ -361,12 +448,22 @@ interface bedrock-packets { attributes: list, player-tick: string, } + record c-update-block { + position: tuple, + block-runtime-id: s32, + %flags: s32, + layer: s32, + } variant serverbound-packet { + s-actor-event(s-actor-event), s-animate(s-animate), s-client-cache-status(s-client-cache-status), s-command-request(s-command-request), s-container-close(s-container-close), + s-emote(s-emote), + s-emote-list(s-emote-list), s-interaction(s-interaction), + s-inventory-transaction(s-inventory-transaction), s-loading-screen(s-loading-screen), s-login(s-login), s-modal-form-response(s-modal-form-response), @@ -386,6 +483,8 @@ interface bedrock-packets { s-text(s-text), } variant clientbound-packet { + c-add-actor(c-add-actor), + c-add-player(c-add-player), c-available-commands(c-available-commands), c-boss-event(c-boss-event), c-chunk-radius-update(c-chunk-radius-update), @@ -399,16 +498,20 @@ interface bedrock-packets { c-level-chunk(c-level-chunk), c-level-event(c-level-event), c-modal-form-request(c-modal-form-request), + c-move-actor-absolute(c-move-actor-absolute), + c-move-actor-delta(c-move-actor-delta), c-move-player(c-move-player), c-network-chunk-publisher-update(c-network-chunk-publisher-update), c-network-settings(c-network-settings), c-player-hotbar(c-player-hotbar), + c-player-list(c-player-list), c-connected-pong(c-connected-pong), c-connection-request-accepted(c-connection-request-accepted), c-incompatible-protocol-version(c-incompatible-protocol-version), c-open-connection-reply1(c-open-connection-reply1), c-open-connection-reply2(c-open-connection-reply2), c-unconnected-pong(c-unconnected-pong), + c-remove-actor(c-remove-actor), c-resource-pack-stack-packet(c-resource-pack-stack-packet), c-resource-packs-info(c-resource-packs-info), c-set-display-objective(c-set-display-objective), @@ -424,5 +527,6 @@ interface bedrock-packets { c-transfer(c-transfer), c-update-abilities(c-update-abilities), c-update-attributes(c-update-attributes), + c-update-block(c-update-block), } } diff --git a/v0.1/java-packets.wit b/v0.1/java-packets.wit index b5ff497..2f2e4d4 100644 --- a/v0.1/java-packets.wit +++ b/v0.1/java-packets.wit @@ -15,9 +15,9 @@ interface java-packets { message: string, timestamp: s64, salt: s64, - signature: option>>, + signature: option>, message-count: s32, - acknowledged: list>, + acknowledged: list, checksum: u8, } record s-chunk-batch { @@ -62,15 +62,15 @@ interface java-packets { } record s-cookie-response { key: string, - payload: option>>, + payload: option>, } record s-custom-click-action { action-id: string, - payload: option>>, + payload: option>, } record s-custom-payload { channel: string, - data: list>, + data: list, } record s-interact { entity-id: s32, @@ -147,8 +147,8 @@ interface java-packets { record s-player-session { session-id: uuid, expires-at: s64, - public-key: list>, - key-signature: list>, + public-key: list, + key-signature: list, } record s-recipe-book-change-settings { book-type: s32, @@ -221,7 +221,7 @@ interface java-packets { record c-block-entity-data { location: tuple, r-type: s32, - nbt-data: list>, + nbt-data: list, } record c-block-event { location: tuple, @@ -262,10 +262,10 @@ interface java-packets { id: s32, start: s32, length: s32, - matches: list>, + matches: list, } record c-commands { - nodes: list>, + nodes: list, root-node-index: s32, } record c-play-cookie-request { @@ -301,7 +301,7 @@ interface java-packets { } record c-set-entity-metadata { entity-id: s32, - metadata: list>, + metadata: list, } record c-entity-position-sync { entity-id: s32, @@ -442,11 +442,11 @@ interface java-packets { global-index: s32, sender: uuid, index: s32, - message-signature: option>>, + message-signature: option>, message: string, timestamp: s64, salt: s64, - previous-messages: list>, + previous-messages: list, unsigned-content: option, filter-type: string, chat-type: s32,