From ff6acb80b159b567c087a835f53f205f6755e403 Mon Sep 17 00:00:00 2001 From: Alexander Medvedev Date: Tue, 4 Aug 2026 14:33:03 +0200 Subject: [PATCH] add move events --- v0.1/bedrock-packets.wit | 73 +++++++++++ v0.1/event.wit | 255 +++++++++++++++++++++++++++++++++++++-- v0.1/java-packets.wit | 24 +++- 3 files changed, 342 insertions(+), 10 deletions(-) diff --git a/v0.1/bedrock-packets.wit b/v0.1/bedrock-packets.wit index 0ee2ee2..893035d 100644 --- a/v0.1/bedrock-packets.wit +++ b/v0.1/bedrock-packets.wit @@ -107,12 +107,19 @@ interface bedrock-packets { tick: s64, delta: tuple, block-actions: option>, + item-interaction: option, + item-stack-request: option, vehicle-rotation: option, vehicle-unique-id: option, analog-move: string, camera-orientation: tuple, raw-move: string, } + record s-player-hotbar { + selected-slot: s32, + container-id: u8, + select-slot: bool, + } record s-connected-ping { time: s64, } @@ -143,6 +150,11 @@ interface bedrock-packets { magic: string, client-guid: s64, } + record s-unconnected-ping-open-connections { + time: s64, + magic: string, + client-guid: s64, + } record s-request-ability { ability: s32, value: string, @@ -235,6 +247,12 @@ interface bedrock-packets { boss-entity-id: s64, action: string, } + record c-change-dimension { + dimension: s32, + position: tuple, + respawn: bool, + has-loading-screen-id: bool, + } record c-chunk-radius-update { chunk-radius: s32, } @@ -300,6 +318,14 @@ interface bedrock-packets { position: tuple, data: s32, } + record c-level-sound-event { + sound-id: s32, + position: tuple, + extra-data: s32, + entity-type: string, + is-baby-mob: bool, + is-global: bool, + } record c-modal-form-request { form-id: s32, form-data: string, @@ -379,6 +405,22 @@ interface bedrock-packets { requested-timestamp: s64, timestamp: s64, } + record c-already-connected { + magic: string, + server-guid: s64, + } + record c-no-free-incoming-connections { + magic: string, + server-guid: s64, + } + record c-connection-banned { + magic: string, + server-guid: s64, + } + record c-ip-recently-connected { + magic: string, + server-guid: s64, + } record c-incompatible-protocol-version { protocol-version: u8, magic: string, @@ -442,17 +484,29 @@ interface bedrock-packets { synced-properties: string, tick: s64, } + record c-set-actor-link { + link: string, + } record c-set-actor-motion { target-runtime-id: s64, motion: tuple, tick: s64, } + record c-set-difficulty { + difficulty: s32, + } record c-set-health { health: s32, } record c-set-player-gamemode { gamemode: string, } + record c-set-spawn-position { + spawn-type: s32, + position: tuple, + dimension: s32, + spawn-position: tuple, + } record c-set-time { time: s32, } @@ -466,6 +520,10 @@ interface bedrock-packets { platform-online-id: string, filtered-message: string, } + record c-show-credits { + player-runtime-id: s64, + status: s32, + } record c-start-game { entity-id: s64, runtime-entity-id: s64, @@ -529,6 +587,7 @@ interface bedrock-packets { s-animate(s-animate), s-block-pick-request(s-block-pick-request), s-client-cache-status(s-client-cache-status), + s-client-to-server-handshake, s-command-request(s-command-request), s-container-close(s-container-close), s-emote(s-emote), @@ -542,13 +601,16 @@ interface bedrock-packets { s-modal-form-response(s-modal-form-response), s-player-action(s-player-action), s-player-auth-input(s-player-auth-input), + s-player-hotbar(s-player-hotbar), s-connected-ping(s-connected-ping), s-connection-request(s-connection-request), s-new-incoming-connection(s-new-incoming-connection), s-disconnect, + s-connection-lost, s-open-connection-request1(s-open-connection-request1), s-open-connection-request2(s-open-connection-request2), s-unconnected-ping(s-unconnected-ping), + s-unconnected-ping-open-connections(s-unconnected-ping-open-connections), s-request-ability(s-request-ability), s-request-chunk-radius(s-request-chunk-radius), s-request-network-settings(s-request-network-settings), @@ -564,6 +626,7 @@ interface bedrock-packets { c-add-player(c-add-player), c-available-commands(c-available-commands), c-boss-event(c-boss-event), + c-change-dimension(c-change-dimension), c-chunk-radius-update(c-chunk-radius-update), c-container-open(c-container-open), c-correct-player-move(c-correct-player-move), @@ -578,6 +641,7 @@ interface bedrock-packets { c-item-stack-response(c-item-stack-response), c-level-chunk(c-level-chunk), c-level-event(c-level-event), + c-level-sound-event(c-level-sound-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), @@ -589,6 +653,11 @@ interface bedrock-packets { c-player-list(c-player-list), c-connected-pong(c-connected-pong), c-connection-request-accepted(c-connection-request-accepted), + c-already-connected(c-already-connected), + c-no-free-incoming-connections(c-no-free-incoming-connections), + c-connection-banned(c-connection-banned), + c-ip-recently-connected(c-ip-recently-connected), + c-disconnect, c-incompatible-protocol-version(c-incompatible-protocol-version), c-open-connection-reply1(c-open-connection-reply1), c-open-connection-reply2(c-open-connection-reply2), @@ -600,11 +669,15 @@ interface bedrock-packets { c-set-score(c-set-score), c-remove-objective(c-remove-objective), c-set-actor-data(c-set-actor-data), + c-set-actor-link(c-set-actor-link), c-set-actor-motion(c-set-actor-motion), + c-set-difficulty(c-set-difficulty), c-set-health(c-set-health), c-set-player-gamemode(c-set-player-gamemode), + c-set-spawn-position(c-set-spawn-position), c-set-time(c-set-time), c-set-title(c-set-title), + c-show-credits(c-show-credits), c-start-game(c-start-game), c-take-item-actor(c-take-item-actor), c-transfer(c-transfer), diff --git a/v0.1/event.wit b/v0.1/event.wit index 6e59791..b76d4b7 100644 --- a/v0.1/event.wit +++ b/v0.1/event.wit @@ -111,13 +111,6 @@ interface event { cancelled: bool } - record player-drop-item-event-data { - player: player, - item-stack: item-stack, - drop-full-stack: bool, - cancelled: bool - } - record player-changed-main-hand-event-data { player: player, main-hand: hand @@ -347,6 +340,192 @@ interface event { cancelled: bool } + record player-interact-entity-event-data { + player: player, + entity-id: s32, + action: entity-interaction-action, + sneaking: bool, + cancelled: bool + } + + record chunk-load-event-data { + target-world: %world, + chunk-x: s32, + chunk-z: s32, + cancelled: bool + } + + record chunk-save-event-data { + target-world: %world, + chunk-x: s32, + chunk-z: s32, + cancelled: bool + } + + record chunk-send-event-data { + target-world: %world, + chunk-x: s32, + chunk-z: s32, + cancelled: bool + } + + record entity-damage-event-data { + entity-id: s32, + damage: f32, + cause: string, + cancelled: bool + } + + record entity-death-event-data { + entity-id: s32, + dropped-exp: s32 + } + + record player-death-event-data { + player: player, + death-message: text-component, + dropped-exp: s32, + keep-inventory: bool, + cancelled: bool + } + + record entity-spawn-event-data { + entity-id: s32, + entity-type: string, + position: position, + target-world: %world, + cancelled: bool + } + + record entity-combust-event-data { + entity-id: s32, + duration-secs: f32, + cancelled: bool + } + + record entity-regain-health-event-data { + entity-id: s32, + amount: f32, + cancelled: bool + } + + record player-item-consume-event-data { + player: player, + item-name: string, + cancelled: bool + } + + record player-item-damage-event-data { + player: player, + item-name: string, + damage: s32, + cancelled: bool + } + + record player-drop-item-event-data { + player: player, + item-name: string, + count: u8, + cancelled: bool + } + + record player-bed-enter-event-data { + player: player, + bed-pos: block-pos, + cancelled: bool + } + + record player-bed-leave-event-data { + player: player, + bed-pos: block-pos + } + + record player-bucket-empty-event-data { + player: player, + block-pos: block-pos, + bucket: string, + cancelled: bool + } + + record player-bucket-fill-event-data { + player: player, + block-pos: block-pos, + bucket: string, + cancelled: bool + } + + record block-damage-event-data { + player: player, + block-pos: block-pos, + insta-break: bool, + cancelled: bool + } + + record block-ignite-event-data { + block-pos: block-pos, + cancelled: bool + } + + record block-from-to-event-data { + from-pos: block-pos, + to-pos: block-pos, + cancelled: bool + } + + record block-form-event-data { + block-pos: block-pos, + cancelled: bool + } + + record block-fade-event-data { + block-pos: block-pos, + cancelled: bool + } + + record weather-change-event-data { + target-world: %world, + to-weather-state: bool, + cancelled: bool + } + + record thunder-change-event-data { + target-world: %world, + to-thunder-state: bool, + cancelled: bool + } + + record world-load-event-data { + target-world: %world + } + + record world-unload-event-data { + target-world: %world, + cancelled: bool + } + + record inventory-open-event-data { + player: player, + cancelled: bool + } + + record inventory-drag-event-data { + player: player, + cancelled: bool + } + + record craft-item-event-data { + player: player, + recipe-id: string, + cancelled: bool + } + + record furnace-smelt-event-data { + block-pos: block-pos, + source-item: string, + result-item: string, + cancelled: bool + } + enum event-type { player-join-event, player-leave-event, @@ -360,13 +539,13 @@ interface event { player-respawn-event, player-exp-change-event, player-item-held-event, - player-drop-item-event, player-changed-main-hand-event, player-gamemode-change-event, player-custom-payload-event, player-fish-event, player-egg-throw-event, player-interact-unknown-entity-event, + player-interact-entity-event, player-interact-event, player-toggle-sneak-event, player-toggle-flight-event, @@ -389,6 +568,35 @@ interface event { server-tick-end-event, packet-received-event, packet-sent-event, + chunk-load-event, + chunk-save-event, + chunk-send-event, + entity-damage-event, + entity-death-event, + player-death-event, + entity-spawn-event, + entity-combust-event, + entity-regain-health-event, + player-item-consume-event, + player-item-damage-event, + player-drop-item-event, + player-bed-enter-event, + player-bed-leave-event, + player-bucket-empty-event, + player-bucket-fill-event, + block-damage-event, + block-ignite-event, + block-from-to-event, + block-form-event, + block-fade-event, + weather-change-event, + thunder-change-event, + world-load-event, + world-unload-event, + inventory-open-event, + inventory-drag-event, + craft-item-event, + furnace-smelt-event, } variant event { @@ -404,13 +612,13 @@ interface event { player-respawn-event(player-respawn-event-data), player-exp-change-event(player-exp-change-event-data), player-item-held-event(player-item-held-event-data), - player-drop-item-event(player-drop-item-event-data), player-changed-main-hand-event(player-changed-main-hand-event-data), player-gamemode-change-event(player-gamemode-change-event-data), player-custom-payload-event(player-custom-payload-event-data), player-fish-event(player-fish-event-data), player-egg-throw-event(player-egg-throw-event-data), player-interact-unknown-entity-event(player-interact-unknown-entity-event-data), + player-interact-entity-event(player-interact-entity-event-data), player-interact-event(player-interact-event-data), player-toggle-sneak-event(player-toggle-sneak-event-data), player-toggle-flight-event(player-toggle-flight-event-data), @@ -433,5 +641,34 @@ interface event { server-tick-end-event(server-tick-end-event-data), packet-received-event(packet-received-event-data), packet-sent-event(packet-sent-event-data), + chunk-load-event(chunk-load-event-data), + chunk-save-event(chunk-save-event-data), + chunk-send-event(chunk-send-event-data), + entity-damage-event(entity-damage-event-data), + entity-death-event(entity-death-event-data), + player-death-event(player-death-event-data), + entity-spawn-event(entity-spawn-event-data), + entity-combust-event(entity-combust-event-data), + entity-regain-health-event(entity-regain-health-event-data), + player-item-consume-event(player-item-consume-event-data), + player-item-damage-event(player-item-damage-event-data), + player-drop-item-event(player-drop-item-event-data), + player-bed-enter-event(player-bed-enter-event-data), + player-bed-leave-event(player-bed-leave-event-data), + player-bucket-empty-event(player-bucket-empty-event-data), + player-bucket-fill-event(player-bucket-fill-event-data), + block-damage-event(block-damage-event-data), + block-ignite-event(block-ignite-event-data), + block-from-to-event(block-from-to-event-data), + block-form-event(block-form-event-data), + block-fade-event(block-fade-event-data), + weather-change-event(weather-change-event-data), + thunder-change-event(thunder-change-event-data), + world-load-event(world-load-event-data), + world-unload-event(world-unload-event-data), + inventory-open-event(inventory-open-event-data), + inventory-drag-event(inventory-drag-event-data), + craft-item-event(craft-item-event-data), + furnace-smelt-event(furnace-smelt-event-data), } } diff --git a/v0.1/java-packets.wit b/v0.1/java-packets.wit index f3aba2e..7f3c829 100644 --- a/v0.1/java-packets.wit +++ b/v0.1/java-packets.wit @@ -25,7 +25,7 @@ interface java-packets { keep-alive-id: s64, } record config-s-known-packs { - known-pack-count: s32, + known-packs: list, } record config-s-plugin-message { channel: string, @@ -125,6 +125,12 @@ interface java-packets { channel: string, data: list, } + record s-debug-sample-subscription { + sample-type: s32, + } + record s-debug-subscription-request { + sample-type: s32, + } record s-interact { entity-id: s32, r-type: s32, @@ -308,6 +314,9 @@ interface java-packets { record config-c-cookie-request { key: string, } + record config-c-feature-flags { + features: list, + } record config-c-known-packs { known-packs: list, } @@ -434,6 +443,10 @@ interface java-packets { source-direct-id: s32, source-position: option>, } + record c-debug-sample { + sample: list, + sample-type: s32, + } record c-play-disconnect { reason: string, } @@ -691,6 +704,10 @@ interface java-packets { record c-set-cursor-item { stack: string, } + record c-set-entity-link { + attached-entity-id: s32, + holding-entity-id: s32, + } record c-set-equipment { entity-id: s32, equipment: list, @@ -894,6 +911,8 @@ interface java-packets { s-cookie-response(s-cookie-response), s-custom-click-action(s-custom-click-action), s-custom-payload(s-custom-payload), + s-debug-sample-subscription(s-debug-sample-subscription), + s-debug-subscription-request(s-debug-subscription-request), s-interact(s-interact), s-jigsaw-generate(s-jigsaw-generate), s-keep-alive(s-keep-alive), @@ -939,6 +958,7 @@ interface java-packets { config-c-config-clear-dialog, config-c-config-disconnect(config-c-config-disconnect), config-c-cookie-request(config-c-cookie-request), + config-c-feature-flags(config-c-feature-flags), config-c-finish-config, config-c-known-packs(config-c-known-packs), config-c-plugin-message(config-c-plugin-message), @@ -975,6 +995,7 @@ interface java-packets { c-play-cookie-request(c-play-cookie-request), c-custom-payload(c-custom-payload), c-damage-event(c-damage-event), + c-debug-sample(c-debug-sample), c-play-disconnect(c-play-disconnect), c-disguised-chat-message(c-disguised-chat-message), c-display-objective(c-display-objective), @@ -1024,6 +1045,7 @@ interface java-packets { c-set-container-property(c-set-container-property), c-set-container-slot(c-set-container-slot), c-set-cursor-item(c-set-cursor-item), + c-set-entity-link(c-set-entity-link), c-set-equipment(c-set-equipment), c-set-experience(c-set-experience), c-set-health(c-set-health),