diff --git a/v0.1/bedrock-packets.wit b/v0.1/bedrock-packets.wit index 893035d..3c5bc14 100644 --- a/v0.1/bedrock-packets.wit +++ b/v0.1/bedrock-packets.wit @@ -19,6 +19,10 @@ interface bedrock-packets { add-block-nbt: bool, hotbar-slot: u8, } + record s-client-cache-blob-status { + miss-hashes: list, + hit-hashes: list, + } record s-client-cache-status { cache-supported: bool, } @@ -38,8 +42,8 @@ interface bedrock-packets { } record s-emote { runtime-entity-id: s64, - emote-id: string, emote-length: s32, + emote-id: string, xuid: string, platform-id: string, %flags: u8, @@ -75,8 +79,7 @@ interface bedrock-packets { } record s-mob-equipment { entity-runtime-id: s64, - stack-id: s32, - item: option, + item: string, inventory-slot: u8, hotbar-slot: u8, window-id: u8, @@ -84,9 +87,16 @@ interface bedrock-packets { record s-modal-form-response { form-id: s32, form-data: option, + cancel-reason: option, + } + record s-packet-violation-warning { + violation-type: s32, + severity: s32, + packet-id: s32, + context: string, } record s-player-action { - runtime-id: s32, + runtime-id: s64, action: string, block-pos: tuple, result-pos: tuple, @@ -120,41 +130,6 @@ interface bedrock-packets { container-id: u8, select-slot: bool, } - record s-connected-ping { - time: s64, - } - record s-connection-request { - client-guid: s64, - time: s64, - security: bool, - } - record s-new-incoming-connection { - server-address: string, - internal-address: string, - ping-time: s64, - pong-time: s64, - } - record s-open-connection-request1 { - magic: string, - protocol-version: u8, - mtu: s32, - } - record s-open-connection-request2 { - magic: string, - server-address: string, - mtu: s32, - client-guid: s64, - } - record s-unconnected-ping { - time: s64, - 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, @@ -169,16 +144,22 @@ interface bedrock-packets { record s-resource-pack-response { response: u8, download-size: s32, + pack-ids: list, + } + record s-respawn { + position: tuple, + state: string, + player-runtime-id: s64, } record s-set-local-player-as-initialized { runtime-entity-id: s64, } record s-set-player-inventory-options { - left-inventory-tab: u8, - right-inventory-tab: u8, + left-inventory-tab: s32, + right-inventory-tab: s32, filtering: bool, - inventory-layout: u8, - crafting-layout: u8, + inventory-layout: s32, + crafting-layout: s32, } record s-text { needs-translation: bool, @@ -231,7 +212,7 @@ interface bedrock-packets { ability-data: string, links: list, device-id: string, - build-platform: s32, + build-platform: string, } record c-available-commands { enum-values: list, @@ -243,6 +224,15 @@ interface bedrock-packets { soft-enums: list, constraints: list, } + record c-block-actor-data { + position: tuple, + data: string, + } + record c-block-event { + position: tuple, + event-type: s32, + event-data: s32, + } record c-boss-event { boss-entity-id: s64, action: string, @@ -251,11 +241,14 @@ interface bedrock-packets { dimension: s32, position: tuple, respawn: bool, - has-loading-screen-id: bool, + loading-screen-id: option, } record c-chunk-radius-update { chunk-radius: s32, } + record c-client-cache-miss-response { + blobs: list, + } record c-container-open { container-id: u8, container-type: u8, @@ -266,6 +259,8 @@ interface bedrock-packets { prediction-type: u8, pos: tuple, pos-delta: tuple, + rotation: string, + vehicle-angular-velocity: option, on-ground: bool, tick: s64, } @@ -286,9 +281,6 @@ interface bedrock-packets { record c-gamerules-changed { rule-data: string, } - record c-handshake { - jwt-data: string, - } record c-inventory-content { container-id: s32, slots: list, @@ -312,6 +304,7 @@ interface bedrock-packets { dimension: s32, cache-enabled: bool, chunk: string, + block-actors: list, } record c-level-event { event-id: s32, @@ -319,12 +312,31 @@ interface bedrock-packets { data: s32, } record c-level-sound-event { - sound-id: s32, + sound-id: string, position: tuple, extra-data: s32, entity-type: string, is-baby-mob: bool, is-global: bool, + actor-unique-id: s64, + fire-at-position: option>, + } + record c-mob-effect { + runtime-entity-id: s64, + event-id: u8, + effect-id: s32, + amplifier: s32, + particles: bool, + duration: s32, + tick: s64, + ambient: bool, + } + record c-mob-equipment { + entity-runtime-id: s64, + item: string, + inventory-slot: u8, + hotbar-slot: u8, + window-id: u8, } record c-modal-form-request { form-id: s32, @@ -394,57 +406,6 @@ interface bedrock-packets { action: u8, entries: list, } - record c-connected-pong { - ping: s64, - pong: s64, - } - record c-connection-request-accepted { - client-address: string, - system-index: s32, - system-addresses: string, - 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, - server-guid: s64, - } - record c-open-connection-reply1 { - magic: string, - server-guid: s64, - has-server-security: bool, - mtu: s32, - } - record c-open-connection-reply2 { - magic: string, - server-guid: s64, - client-address: string, - mtu: s32, - security: bool, - } - record c-unconnected-pong { - time: s64, - server-guid: s64, - magic: string, - server-id: string, - } record c-remove-actor { entity-unique-id: s64, } @@ -464,6 +425,11 @@ interface bedrock-packets { world-template-version: string, resource-packs: list, } + record c-respawn { + position: tuple, + state: string, + player-runtime-id: s64, + } record c-set-display-objective { display-slot: string, objective-name: string, @@ -552,7 +518,6 @@ interface bedrock-packets { enable-clientside-generation: bool, blocknetwork-ids-are-hashed: bool, server-auth-sounds: bool, - is-logging-chat: bool, server-join-information: option, telemetry: string, } @@ -586,8 +551,8 @@ interface bedrock-packets { s-actor-event(s-actor-event), s-animate(s-animate), s-block-pick-request(s-block-pick-request), + s-client-cache-blob-status(s-client-cache-blob-status), 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), @@ -599,22 +564,15 @@ interface bedrock-packets { s-login(s-login), s-mob-equipment(s-mob-equipment), s-modal-form-response(s-modal-form-response), + s-packet-violation-warning(s-packet-violation-warning), 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), s-resource-pack-response(s-resource-pack-response), + s-respawn(s-respawn), s-set-local-player-as-initialized(s-set-local-player-as-initialized), s-set-player-inventory-options(s-set-player-inventory-options), s-text(s-text), @@ -625,16 +583,19 @@ interface bedrock-packets { c-add-item-actor(c-add-item-actor), c-add-player(c-add-player), c-available-commands(c-available-commands), + c-biome-definition-list, + c-block-actor-data(c-block-actor-data), + c-block-event(c-block-event), c-boss-event(c-boss-event), c-change-dimension(c-change-dimension), c-chunk-radius-update(c-chunk-radius-update), + c-client-cache-miss-response(c-client-cache-miss-response), c-container-open(c-container-open), c-correct-player-move(c-correct-player-move), c-crafting-data(c-crafting-data), c-creative-content(c-creative-content), c-disconnect-player(c-disconnect-player), c-gamerules-changed(c-gamerules-changed), - c-handshake(c-handshake), c-inventory-content(c-inventory-content), c-inventory-slot(c-inventory-slot), c-item-registry(c-item-registry), @@ -642,6 +603,8 @@ interface bedrock-packets { c-level-chunk(c-level-chunk), c-level-event(c-level-event), c-level-sound-event(c-level-sound-event), + c-mob-effect(c-mob-effect), + c-mob-equipment(c-mob-equipment), c-modal-form-request(c-modal-form-request), c-move-actor-absolute(c-move-actor-absolute), c-move-actor-delta(c-move-actor-delta), @@ -651,20 +614,10 @@ interface bedrock-packets { c-play-status(c-play-status), 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-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), - 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-respawn(c-respawn), c-set-display-objective(c-set-display-objective), c-set-score(c-set-score), c-remove-objective(c-remove-objective), diff --git a/v0.1/java-packets.wit b/v0.1/java-packets.wit index 7f3c829..13e4ead 100644 --- a/v0.1/java-packets.wit +++ b/v0.1/java-packets.wit @@ -31,6 +31,9 @@ interface java-packets { channel: string, data: list, } + record config-s-config-pong { + id: s32, + } record config-s-config-resource-pack { uuid: uuid, %result: s32, @@ -54,6 +57,10 @@ interface java-packets { record s-attack { entity-id: s32, } + record s-block-entity-tag-query { + transaction-id: s32, + location: tuple, + } record s-bundle-item-selected { slot-id: s32, selected-item-index: s32, @@ -113,6 +120,11 @@ interface java-packets { window-id: s32, button-id: s32, } + record s-container-slot-state-changed { + slot-id: s32, + container-id: s32, + new-state: bool, + } record s-cookie-response { key: string, payload: option>, @@ -131,6 +143,15 @@ interface java-packets { record s-debug-subscription-request { sample-type: s32, } + record s-edit-book { + slot: s32, + pages: list, + title: option, + } + record s-entity-tag-query { + transaction-id: s32, + entity-id: s32, + } record s-interact { entity-id: s32, r-type: s32, @@ -146,6 +167,9 @@ interface java-packets { record s-keep-alive { keep-alive-id: s64, } + record s-lock-difficulty { + locked: bool, + } record s-move-vehicle { x: f64, y: f64, @@ -214,6 +238,9 @@ interface java-packets { public-key: list, key-signature: list, } + record s-play-pong { + id: s32, + } record s-recipe-book-change-settings { book-type: s32, is-open: bool, @@ -225,6 +252,10 @@ interface java-packets { record s-rename-item { item-name: string, } + record s-play-resource-pack { + uuid: uuid, + %result: s32, + } variant s-seen-advancement { open-tab(string), close-tab, @@ -242,10 +273,19 @@ interface java-packets { mode: s32, %flags: u8, } + record s-set-command-minecart { + entity-id: s32, + command: string, + track-output: bool, + } record s-set-creative-slot { slot: s32, clicked-item: string, } + record s-set-game-rule { + rule: string, + value: string, + } record s-set-held-item { slot: s32, } @@ -259,11 +299,32 @@ interface java-packets { selection-priority: s32, placement-priority: s32, } + record s-set-structure-block { + location: tuple, + action: s32, + mode: s32, + name: string, + offset-x: u8, + offset-y: u8, + offset-z: u8, + size-x: u8, + size-y: u8, + size-z: u8, + mirror: s32, + rotation: s32, + metadata: string, + integrity: f32, + seed: s64, + %flags: u8, + } record s-set-test-block { position: tuple, mode: string, message: string, } + record s-spectate-entity { + target: uuid, + } record s-swing-arm { hand: s32, } @@ -308,18 +369,27 @@ interface java-packets { forced: bool, prompt-message: option, } + record config-c-code-of-conduct { + code-of-conduct: string, + } record config-c-config-disconnect { reason: string, } record config-c-cookie-request { key: string, } + record config-c-config-custom-report-details { + details: list, + } record config-c-feature-flags { features: list, } record config-c-known-packs { known-packs: list, } + record config-c-config-ping { + id: s32, + } record config-c-plugin-message { channel: string, data: list, @@ -328,6 +398,9 @@ interface java-packets { registry-id: string, entries: list, } + record config-c-config-remove-resource-pack { + uuid: option, + } record config-c-config-server-links { links: list, } @@ -371,6 +444,13 @@ interface java-packets { record c-action-bar { action-bar: string, } + record c-add-resource-pack { + uuid: uuid, + url: string, + hash: string, + forced: bool, + prompt-message: option, + } record c-award-stats { stats: list, } @@ -409,6 +489,9 @@ interface java-packets { record c-chunk-batch-end { batch-size: s32, } + record c-chunks-biomes { + chunks: list, + } record c-clear-title { reset: bool, } @@ -419,6 +502,9 @@ interface java-packets { player-id: s32, message: string, } + record c-combat-end { + duration-ticks: s32, + } record c-command-suggestions { id: s32, start: s32, @@ -432,10 +518,17 @@ interface java-packets { record c-play-cookie-request { key: string, } + record c-custom-chat-completions { + action: s32, + entries: list, + } record c-custom-payload { channel: string, data: list, } + record c-play-custom-report-details { + details: list, + } record c-damage-event { entity-id: s32, source-type-id: s32, @@ -447,6 +540,10 @@ interface java-packets { sample: list, sample-type: s32, } + record c-delete-chat { + signature-id: s32, + signature: option>, + } record c-play-disconnect { reason: string, } @@ -505,6 +602,9 @@ interface java-packets { event: u8, value: f32, } + record c-game-rule-values { + rules: list, + } record c-head-rot { entity-id: s32, head-yaw: u8, @@ -565,10 +665,22 @@ interface java-packets { is-regular-villager: bool, can-restock: bool, } + record c-move-minecart-along-track { + entity-id: s32, + steps: list, + } record c-multi-block-update { chunk-section: s64, updates: list, } + record c-open-book { + hand: s32, + } + record c-open-mount-screen { + window-id: u8, + slot-count: s32, + entity-id: s32, + } record c-open-screen { sync-id: s32, window-type: s32, @@ -588,9 +700,16 @@ interface java-packets { particle-id: s32, data: list, } + record c-play-ping { + id: s32, + } record c-ping-response { payload: s64, } + record c-place-ghost-recipe { + window-id: u8, + recipe-id: string, + } record c-player-abilities { %flags: u8, flying-speed: f32, @@ -615,6 +734,13 @@ interface java-packets { actions: u8, players: list, } + record c-player-look-at { + from-anchor: s32, + target-x: f64, + target-y: f64, + target-z: f64, + entity: option, + } record c-player-position { teleport-id: s32, position: tuple, @@ -626,12 +752,22 @@ interface java-packets { record c-remove-player-info { players: list, } + record c-player-rotation { + yaw: f32, + pitch: f32, + } record c-player-spawn-position { dimension-name: string, location: tuple, yaw: f32, pitch: f32, } + record c-projectile-power { + entity-id: s32, + x-power: f64, + y-power: f64, + z-power: f64, + } record c-recipe-book-add { replace: bool, } @@ -652,6 +788,9 @@ interface java-packets { entity-id: s32, effect-id: s32, } + record c-remove-resource-pack { + uuid: option, + } record c-reset-score { entity-name: string, objective-name: option, @@ -663,6 +802,10 @@ interface java-packets { record c-select-advancements-tab { tab-id: option, } + record c-server-data { + motd: string, + icon-base64: option, + } record c-play-server-links { links: list, } @@ -684,6 +827,9 @@ interface java-packets { record c-set-border-warning-distance { warning-blocks: s32, } + record c-set-camera { + camera-id: s32, + } record c-set-container-content { window-id: s32, state-id: s32, @@ -789,6 +935,10 @@ interface java-packets { header: string, footer: string, } + record c-tag-query-response { + transaction-id: s32, + nbt-bytes: list, + } record c-take-item-entity { entity-id: s32, collector-entity-id: s32, @@ -868,6 +1018,10 @@ interface java-packets { display-name: option, number-format: option, } + record c-waypoint { + operation: string, + waypoint: string, + } record c-world-event { event: s32, location: tuple, @@ -881,6 +1035,7 @@ interface java-packets { json-response: string, } variant serverbound-packet { + config-s-accept-code-of-conduct, config-s-acknowledge-finish-config, config-s-client-information-config(config-s-client-information-config), config-s-config-cookie-response(config-s-config-cookie-response), @@ -888,6 +1043,7 @@ interface java-packets { config-s-keep-alive(config-s-keep-alive), config-s-known-packs(config-s-known-packs), config-s-plugin-message(config-s-plugin-message), + config-s-config-pong(config-s-config-pong), config-s-config-resource-pack(config-s-config-resource-pack), login-s-login-cookie-response(login-s-login-cookie-response), login-s-encryption-response(login-s-encryption-response), @@ -895,6 +1051,7 @@ interface java-packets { login-s-login-start(login-s-login-start), login-s-login-plugin-response(login-s-login-plugin-response), s-attack(s-attack), + s-block-entity-tag-query(s-block-entity-tag-query), s-bundle-item-selected(s-bundle-item-selected), s-change-game-mode(s-change-game-mode), s-chat-command(s-chat-command), @@ -906,16 +1063,21 @@ interface java-packets { s-client-tick-end, s-close-container(s-close-container), s-command-suggestion(s-command-suggestion), + s-configuration-acknowledged, s-confirm-teleport(s-confirm-teleport), s-container-button-click(s-container-button-click), + s-container-slot-state-changed(s-container-slot-state-changed), 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-edit-book(s-edit-book), + s-entity-tag-query(s-entity-tag-query), s-interact(s-interact), s-jigsaw-generate(s-jigsaw-generate), s-keep-alive(s-keep-alive), + s-lock-difficulty(s-lock-difficulty), s-move-vehicle(s-move-vehicle), s-paddle-boat(s-paddle-boat), s-pick-item-from-block(s-pick-item-from-block), @@ -932,17 +1094,23 @@ interface java-packets { s-player-position-rotation(s-player-position-rotation), s-player-rotation(s-player-rotation), s-player-session(s-player-session), + s-play-pong(s-play-pong), s-recipe-book-change-settings(s-recipe-book-change-settings), s-recipe-book-seen-recipe(s-recipe-book-seen-recipe), s-rename-item(s-rename-item), + s-play-resource-pack(s-play-resource-pack), s-seen-advancement(s-seen-advancement), s-select-trade(s-select-trade), s-set-beacon(s-set-beacon), s-set-command-block(s-set-command-block), + s-set-command-minecart(s-set-command-minecart), s-set-creative-slot(s-set-creative-slot), + s-set-game-rule(s-set-game-rule), s-set-held-item(s-set-held-item), s-set-jigsaw-block(s-set-jigsaw-block), + s-set-structure-block(s-set-structure-block), s-set-test-block(s-set-test-block), + s-spectate-entity(s-spectate-entity), s-swing-arm(s-swing-arm), s-teleport-to-entity(s-teleport-to-entity), s-test-instance-block-action(s-test-instance-block-action), @@ -956,13 +1124,18 @@ interface java-packets { variant clientbound-packet { config-c-config-add-resource-pack(config-c-config-add-resource-pack), config-c-config-clear-dialog, + config-c-code-of-conduct(config-c-code-of-conduct), config-c-config-disconnect(config-c-config-disconnect), config-c-cookie-request(config-c-cookie-request), + config-c-config-custom-report-details(config-c-config-custom-report-details), config-c-feature-flags(config-c-feature-flags), config-c-finish-config, config-c-known-packs(config-c-known-packs), + config-c-config-ping(config-c-config-ping), config-c-plugin-message(config-c-plugin-message), config-c-registry-data(config-c-registry-data), + config-c-config-remove-resource-pack(config-c-config-remove-resource-pack), + config-c-config-reset-chat, config-c-config-server-links(config-c-config-server-links), config-c-config-show-dialog(config-c-config-show-dialog), config-c-store-cookie(config-c-store-cookie), @@ -975,27 +1148,35 @@ interface java-packets { login-c-set-compression(login-c-set-compression), c-acknowledge-block-change(c-acknowledge-block-change), c-action-bar(c-action-bar), + c-add-resource-pack(c-add-resource-pack), c-award-stats(c-award-stats), c-set-block-destroy-stage(c-set-block-destroy-stage), c-block-entity-data(c-block-entity-data), c-block-event(c-block-event), c-block-update(c-block-update), c-boss-event(c-boss-event), + c-bundle-delimiter, c-center-chunk(c-center-chunk), c-change-difficulty(c-change-difficulty), c-chunk-batch-end(c-chunk-batch-end), c-chunk-batch-start, c-chunk-data, + c-chunks-biomes(c-chunks-biomes), c-play-clear-dialog, c-clear-title(c-clear-title), c-close-container(c-close-container), c-combat-death(c-combat-death), + c-combat-enter, + c-combat-end(c-combat-end), c-command-suggestions(c-command-suggestions), c-commands(c-commands), c-play-cookie-request(c-play-cookie-request), + c-custom-chat-completions(c-custom-chat-completions), c-custom-payload(c-custom-payload), + c-play-custom-report-details(c-play-custom-report-details), c-damage-event(c-damage-event), c-debug-sample(c-debug-sample), + c-delete-chat(c-delete-chat), c-play-disconnect(c-play-disconnect), c-disguised-chat-message(c-disguised-chat-message), c-display-objective(c-display-objective), @@ -1007,6 +1188,7 @@ interface java-packets { c-entity-velocity(c-entity-velocity), c-explosion(c-explosion), c-game-event(c-game-event), + c-game-rule-values(c-game-rule-values), c-head-rot(c-head-rot), c-hurt-animation(c-hurt-animation), c-initialize-world-border(c-initialize-world-border), @@ -1015,32 +1197,44 @@ interface java-packets { c-level-event(c-level-event), c-light-update, c-login(c-login), + c-low-disk-space-warning, c-map-item-data(c-map-item-data), c-merchant-offers(c-merchant-offers), + c-move-minecart-along-track(c-move-minecart-along-track), c-multi-block-update(c-multi-block-update), + c-open-book(c-open-book), + c-open-mount-screen(c-open-mount-screen), c-open-screen(c-open-screen), c-open-sign-editor(c-open-sign-editor), c-particle(c-particle), + c-play-ping(c-play-ping), c-ping-response(c-ping-response), + c-place-ghost-recipe(c-place-ghost-recipe), c-player-abilities(c-player-abilities), c-player-chat-message(c-player-chat-message), c-player-info-update(c-player-info-update), + c-player-look-at(c-player-look-at), c-player-position(c-player-position), c-remove-player-info(c-remove-player-info), + c-player-rotation(c-player-rotation), c-player-spawn-position(c-player-spawn-position), + c-projectile-power(c-projectile-power), c-recipe-book-add(c-recipe-book-add), c-recipe-book-settings(c-recipe-book-settings), c-remove-entities(c-remove-entities), c-remove-mob-effect(c-remove-mob-effect), + c-remove-resource-pack(c-remove-resource-pack), c-reset-score(c-reset-score), c-respawn(c-respawn), c-select-advancements-tab(c-select-advancements-tab), + c-server-data(c-server-data), c-play-server-links(c-play-server-links), c-set-border-center(c-set-border-center), c-set-border-lerp-size(c-set-border-lerp-size), c-set-border-size(c-set-border-size), c-set-border-warning-delay(c-set-border-warning-delay), c-set-border-warning-distance(c-set-border-warning-distance), + c-set-camera(c-set-camera), c-set-container-content(c-set-container-content), c-set-container-property(c-set-container-property), c-set-container-slot(c-set-container-slot), @@ -1058,11 +1252,13 @@ interface java-packets { c-play-show-dialog(c-play-show-dialog), c-sound-effect(c-sound-effect), c-spawn-entity(c-spawn-entity), + c-start-configuration, c-stop-sound(c-stop-sound), c-store-cookie(c-store-cookie), c-subtitle(c-subtitle), c-system-chat-message(c-system-chat-message), c-tab-list(c-tab-list), + c-tag-query-response(c-tag-query-response), c-take-item-entity(c-take-item-entity), c-teleport-entity(c-teleport-entity), c-ticking-state(c-ticking-state), @@ -1077,6 +1273,7 @@ interface java-packets { c-update-mob-effect(c-update-mob-effect), c-update-objectives(c-update-objectives), c-update-score(c-update-score), + c-waypoint(c-waypoint), c-world-event(c-world-event), status-c-ping-response(status-c-ping-response), status-c-status-response(status-c-status-response), diff --git a/v0.1/player.wit b/v0.1/player.wit index 4891c24..9281677 100644 --- a/v0.1/player.wit +++ b/v0.1/player.wit @@ -850,6 +850,62 @@ interface player { as-bedrock: func() -> option; } + /// Represents a resource pack sent to a Java Edition player. + record java-resource-pack { + /// Unique identifier for the resource pack. + id: uuid, + /// The URL to the resource pack file. + url: string, + /// The SHA1 hash (40-character hex string) of the pack. + hash: string, + /// Whether the player is forced to accept the pack. + forced: bool, + /// Optional prompt message displayed in the pack acceptance screen. + prompt-message: option, + } + + /// Represents an individual Bedrock Edition resource pack entry. + record bedrock-resource-pack-entry { + /// Unique identifier for the Bedrock pack. + id: uuid, + /// Version string of the Bedrock pack (e.g., "1.0.0"). + version: string, + /// Size of the pack in bytes. + size: u64, + /// Download URL for remote Bedrock packs. + download-url: string, + /// Optional encryption content key for encrypted packs. + content-key: option, + /// Optional sub-pack name inside the archive. + sub-pack-name: option, + /// Optional content identifier. + content-id: option, + /// Whether the pack contains client scripts. + has-scripts: bool, + /// Whether the pack is marked as an addon pack. + addon-pack: bool, + /// Whether Ray Tracing / RTX features are enabled for the pack. + rtx-enabled: bool, + } + + /// Represents the resource packs information payload sent to Bedrock clients. + record bedrock-resource-packs-info { + /// If true, players cannot join without accepting packs. + required: bool, + /// Whether the server offers addon packs. + has-addon-packs: bool, + /// Whether any of the packs contain client scripts. + has-scripts: bool, + /// Whether vibrant visuals should be forced disabled. + is-vibrant-visuals-force-disabled: bool, + /// World template ID, if any. + world-template-id: option, + /// World template version, if any. + world-template-version: option, + /// List of resource packs to send to the player. + packs: list, + } + /// A handle to a player connected via the Java Edition. resource java-player { /// Returns the Minecraft Java Edition version of the player. @@ -881,6 +937,15 @@ interface player { /// Resets the player's custom Java scoreboard back to the world scoreboard. reset-scoreboard: func(); + + /// Sends a resource pack to the Java player. + send-resource-pack: func(pack: java-resource-pack); + + /// Removes a specific resource pack by UUID for the Java player. + remove-resource-pack: func(id: uuid); + + /// Clears all custom resource packs for the Java player. + clear-resource-packs: func(); } /// A handle to a player connected via the Bedrock Edition. @@ -919,6 +984,9 @@ interface player { /// Resets the player's custom Bedrock scoreboard back to the world scoreboard. reset-scoreboard: func(); + + /// Sends resource packs information to the Bedrock player. + send-resource-packs-info: func(info: bedrock-resource-packs-info); } /// Returns a list of all players in a specific world.