add option to set resource pack to players

This commit is contained in:
Alexander Medvedev 2026-08-15 16:28:49 +02:00
parent 1882c12d16
commit 2f91c555a4
3 changed files with 341 additions and 123 deletions

View File

@ -19,6 +19,10 @@ interface bedrock-packets {
add-block-nbt: bool, add-block-nbt: bool,
hotbar-slot: u8, hotbar-slot: u8,
} }
record s-client-cache-blob-status {
miss-hashes: list<s64>,
hit-hashes: list<s64>,
}
record s-client-cache-status { record s-client-cache-status {
cache-supported: bool, cache-supported: bool,
} }
@ -38,8 +42,8 @@ interface bedrock-packets {
} }
record s-emote { record s-emote {
runtime-entity-id: s64, runtime-entity-id: s64,
emote-id: string,
emote-length: s32, emote-length: s32,
emote-id: string,
xuid: string, xuid: string,
platform-id: string, platform-id: string,
%flags: u8, %flags: u8,
@ -75,8 +79,7 @@ interface bedrock-packets {
} }
record s-mob-equipment { record s-mob-equipment {
entity-runtime-id: s64, entity-runtime-id: s64,
stack-id: s32, item: string,
item: option<string>,
inventory-slot: u8, inventory-slot: u8,
hotbar-slot: u8, hotbar-slot: u8,
window-id: u8, window-id: u8,
@ -84,9 +87,16 @@ interface bedrock-packets {
record s-modal-form-response { record s-modal-form-response {
form-id: s32, form-id: s32,
form-data: option<string>, form-data: option<string>,
cancel-reason: option<u8>,
}
record s-packet-violation-warning {
violation-type: s32,
severity: s32,
packet-id: s32,
context: string,
} }
record s-player-action { record s-player-action {
runtime-id: s32, runtime-id: s64,
action: string, action: string,
block-pos: tuple<s32, s32, s32>, block-pos: tuple<s32, s32, s32>,
result-pos: tuple<s32, s32, s32>, result-pos: tuple<s32, s32, s32>,
@ -120,41 +130,6 @@ interface bedrock-packets {
container-id: u8, container-id: u8,
select-slot: bool, 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 { record s-request-ability {
ability: s32, ability: s32,
value: string, value: string,
@ -169,16 +144,22 @@ interface bedrock-packets {
record s-resource-pack-response { record s-resource-pack-response {
response: u8, response: u8,
download-size: s32, download-size: s32,
pack-ids: list<string>,
}
record s-respawn {
position: tuple<f64, f64, f64>,
state: string,
player-runtime-id: s64,
} }
record s-set-local-player-as-initialized { record s-set-local-player-as-initialized {
runtime-entity-id: s64, runtime-entity-id: s64,
} }
record s-set-player-inventory-options { record s-set-player-inventory-options {
left-inventory-tab: u8, left-inventory-tab: s32,
right-inventory-tab: u8, right-inventory-tab: s32,
filtering: bool, filtering: bool,
inventory-layout: u8, inventory-layout: s32,
crafting-layout: u8, crafting-layout: s32,
} }
record s-text { record s-text {
needs-translation: bool, needs-translation: bool,
@ -231,7 +212,7 @@ interface bedrock-packets {
ability-data: string, ability-data: string,
links: list<string>, links: list<string>,
device-id: string, device-id: string,
build-platform: s32, build-platform: string,
} }
record c-available-commands { record c-available-commands {
enum-values: list<string>, enum-values: list<string>,
@ -243,6 +224,15 @@ interface bedrock-packets {
soft-enums: list<string>, soft-enums: list<string>,
constraints: list<string>, constraints: list<string>,
} }
record c-block-actor-data {
position: tuple<s32, s32, s32>,
data: string,
}
record c-block-event {
position: tuple<s32, s32, s32>,
event-type: s32,
event-data: s32,
}
record c-boss-event { record c-boss-event {
boss-entity-id: s64, boss-entity-id: s64,
action: string, action: string,
@ -251,11 +241,14 @@ interface bedrock-packets {
dimension: s32, dimension: s32,
position: tuple<f64, f64, f64>, position: tuple<f64, f64, f64>,
respawn: bool, respawn: bool,
has-loading-screen-id: bool, loading-screen-id: option<s32>,
} }
record c-chunk-radius-update { record c-chunk-radius-update {
chunk-radius: s32, chunk-radius: s32,
} }
record c-client-cache-miss-response {
blobs: list<string>,
}
record c-container-open { record c-container-open {
container-id: u8, container-id: u8,
container-type: u8, container-type: u8,
@ -266,6 +259,8 @@ interface bedrock-packets {
prediction-type: u8, prediction-type: u8,
pos: tuple<f64, f64, f64>, pos: tuple<f64, f64, f64>,
pos-delta: tuple<f64, f64, f64>, pos-delta: tuple<f64, f64, f64>,
rotation: string,
vehicle-angular-velocity: option<f32>,
on-ground: bool, on-ground: bool,
tick: s64, tick: s64,
} }
@ -286,9 +281,6 @@ interface bedrock-packets {
record c-gamerules-changed { record c-gamerules-changed {
rule-data: string, rule-data: string,
} }
record c-handshake {
jwt-data: string,
}
record c-inventory-content { record c-inventory-content {
container-id: s32, container-id: s32,
slots: list<string>, slots: list<string>,
@ -312,6 +304,7 @@ interface bedrock-packets {
dimension: s32, dimension: s32,
cache-enabled: bool, cache-enabled: bool,
chunk: string, chunk: string,
block-actors: list<string>,
} }
record c-level-event { record c-level-event {
event-id: s32, event-id: s32,
@ -319,12 +312,31 @@ interface bedrock-packets {
data: s32, data: s32,
} }
record c-level-sound-event { record c-level-sound-event {
sound-id: s32, sound-id: string,
position: tuple<f64, f64, f64>, position: tuple<f64, f64, f64>,
extra-data: s32, extra-data: s32,
entity-type: string, entity-type: string,
is-baby-mob: bool, is-baby-mob: bool,
is-global: bool, is-global: bool,
actor-unique-id: s64,
fire-at-position: option<tuple<f64, f64, f64>>,
}
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 { record c-modal-form-request {
form-id: s32, form-id: s32,
@ -394,57 +406,6 @@ interface bedrock-packets {
action: u8, action: u8,
entries: list<string>, entries: list<string>,
} }
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 { record c-remove-actor {
entity-unique-id: s64, entity-unique-id: s64,
} }
@ -464,6 +425,11 @@ interface bedrock-packets {
world-template-version: string, world-template-version: string,
resource-packs: list<string>, resource-packs: list<string>,
} }
record c-respawn {
position: tuple<f64, f64, f64>,
state: string,
player-runtime-id: s64,
}
record c-set-display-objective { record c-set-display-objective {
display-slot: string, display-slot: string,
objective-name: string, objective-name: string,
@ -552,7 +518,6 @@ interface bedrock-packets {
enable-clientside-generation: bool, enable-clientside-generation: bool,
blocknetwork-ids-are-hashed: bool, blocknetwork-ids-are-hashed: bool,
server-auth-sounds: bool, server-auth-sounds: bool,
is-logging-chat: bool,
server-join-information: option<string>, server-join-information: option<string>,
telemetry: string, telemetry: string,
} }
@ -586,8 +551,8 @@ interface bedrock-packets {
s-actor-event(s-actor-event), s-actor-event(s-actor-event),
s-animate(s-animate), s-animate(s-animate),
s-block-pick-request(s-block-pick-request), 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-cache-status(s-client-cache-status),
s-client-to-server-handshake,
s-command-request(s-command-request), s-command-request(s-command-request),
s-container-close(s-container-close), s-container-close(s-container-close),
s-emote(s-emote), s-emote(s-emote),
@ -599,22 +564,15 @@ interface bedrock-packets {
s-login(s-login), s-login(s-login),
s-mob-equipment(s-mob-equipment), s-mob-equipment(s-mob-equipment),
s-modal-form-response(s-modal-form-response), s-modal-form-response(s-modal-form-response),
s-packet-violation-warning(s-packet-violation-warning),
s-player-action(s-player-action), s-player-action(s-player-action),
s-player-auth-input(s-player-auth-input), s-player-auth-input(s-player-auth-input),
s-player-hotbar(s-player-hotbar), 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-ability(s-request-ability),
s-request-chunk-radius(s-request-chunk-radius), s-request-chunk-radius(s-request-chunk-radius),
s-request-network-settings(s-request-network-settings), s-request-network-settings(s-request-network-settings),
s-resource-pack-response(s-resource-pack-response), 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-local-player-as-initialized(s-set-local-player-as-initialized),
s-set-player-inventory-options(s-set-player-inventory-options), s-set-player-inventory-options(s-set-player-inventory-options),
s-text(s-text), s-text(s-text),
@ -625,16 +583,19 @@ interface bedrock-packets {
c-add-item-actor(c-add-item-actor), c-add-item-actor(c-add-item-actor),
c-add-player(c-add-player), c-add-player(c-add-player),
c-available-commands(c-available-commands), 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-boss-event(c-boss-event),
c-change-dimension(c-change-dimension), c-change-dimension(c-change-dimension),
c-chunk-radius-update(c-chunk-radius-update), 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-container-open(c-container-open),
c-correct-player-move(c-correct-player-move), c-correct-player-move(c-correct-player-move),
c-crafting-data(c-crafting-data), c-crafting-data(c-crafting-data),
c-creative-content(c-creative-content), c-creative-content(c-creative-content),
c-disconnect-player(c-disconnect-player), c-disconnect-player(c-disconnect-player),
c-gamerules-changed(c-gamerules-changed), c-gamerules-changed(c-gamerules-changed),
c-handshake(c-handshake),
c-inventory-content(c-inventory-content), c-inventory-content(c-inventory-content),
c-inventory-slot(c-inventory-slot), c-inventory-slot(c-inventory-slot),
c-item-registry(c-item-registry), c-item-registry(c-item-registry),
@ -642,6 +603,8 @@ interface bedrock-packets {
c-level-chunk(c-level-chunk), c-level-chunk(c-level-chunk),
c-level-event(c-level-event), c-level-event(c-level-event),
c-level-sound-event(c-level-sound-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-modal-form-request(c-modal-form-request),
c-move-actor-absolute(c-move-actor-absolute), c-move-actor-absolute(c-move-actor-absolute),
c-move-actor-delta(c-move-actor-delta), c-move-actor-delta(c-move-actor-delta),
@ -651,20 +614,10 @@ interface bedrock-packets {
c-play-status(c-play-status), c-play-status(c-play-status),
c-player-hotbar(c-player-hotbar), c-player-hotbar(c-player-hotbar),
c-player-list(c-player-list), 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-remove-actor(c-remove-actor),
c-resource-pack-stack-packet(c-resource-pack-stack-packet), c-resource-pack-stack-packet(c-resource-pack-stack-packet),
c-resource-packs-info(c-resource-packs-info), c-resource-packs-info(c-resource-packs-info),
c-respawn(c-respawn),
c-set-display-objective(c-set-display-objective), c-set-display-objective(c-set-display-objective),
c-set-score(c-set-score), c-set-score(c-set-score),
c-remove-objective(c-remove-objective), c-remove-objective(c-remove-objective),

View File

@ -31,6 +31,9 @@ interface java-packets {
channel: string, channel: string,
data: list<u8>, data: list<u8>,
} }
record config-s-config-pong {
id: s32,
}
record config-s-config-resource-pack { record config-s-config-resource-pack {
uuid: uuid, uuid: uuid,
%result: s32, %result: s32,
@ -54,6 +57,10 @@ interface java-packets {
record s-attack { record s-attack {
entity-id: s32, entity-id: s32,
} }
record s-block-entity-tag-query {
transaction-id: s32,
location: tuple<s32, s32, s32>,
}
record s-bundle-item-selected { record s-bundle-item-selected {
slot-id: s32, slot-id: s32,
selected-item-index: s32, selected-item-index: s32,
@ -113,6 +120,11 @@ interface java-packets {
window-id: s32, window-id: s32,
button-id: s32, button-id: s32,
} }
record s-container-slot-state-changed {
slot-id: s32,
container-id: s32,
new-state: bool,
}
record s-cookie-response { record s-cookie-response {
key: string, key: string,
payload: option<list<u8>>, payload: option<list<u8>>,
@ -131,6 +143,15 @@ interface java-packets {
record s-debug-subscription-request { record s-debug-subscription-request {
sample-type: s32, sample-type: s32,
} }
record s-edit-book {
slot: s32,
pages: list<string>,
title: option<string>,
}
record s-entity-tag-query {
transaction-id: s32,
entity-id: s32,
}
record s-interact { record s-interact {
entity-id: s32, entity-id: s32,
r-type: s32, r-type: s32,
@ -146,6 +167,9 @@ interface java-packets {
record s-keep-alive { record s-keep-alive {
keep-alive-id: s64, keep-alive-id: s64,
} }
record s-lock-difficulty {
locked: bool,
}
record s-move-vehicle { record s-move-vehicle {
x: f64, x: f64,
y: f64, y: f64,
@ -214,6 +238,9 @@ interface java-packets {
public-key: list<u8>, public-key: list<u8>,
key-signature: list<u8>, key-signature: list<u8>,
} }
record s-play-pong {
id: s32,
}
record s-recipe-book-change-settings { record s-recipe-book-change-settings {
book-type: s32, book-type: s32,
is-open: bool, is-open: bool,
@ -225,6 +252,10 @@ interface java-packets {
record s-rename-item { record s-rename-item {
item-name: string, item-name: string,
} }
record s-play-resource-pack {
uuid: uuid,
%result: s32,
}
variant s-seen-advancement { variant s-seen-advancement {
open-tab(string), open-tab(string),
close-tab, close-tab,
@ -242,10 +273,19 @@ interface java-packets {
mode: s32, mode: s32,
%flags: u8, %flags: u8,
} }
record s-set-command-minecart {
entity-id: s32,
command: string,
track-output: bool,
}
record s-set-creative-slot { record s-set-creative-slot {
slot: s32, slot: s32,
clicked-item: string, clicked-item: string,
} }
record s-set-game-rule {
rule: string,
value: string,
}
record s-set-held-item { record s-set-held-item {
slot: s32, slot: s32,
} }
@ -259,11 +299,32 @@ interface java-packets {
selection-priority: s32, selection-priority: s32,
placement-priority: s32, placement-priority: s32,
} }
record s-set-structure-block {
location: tuple<s32, s32, s32>,
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 { record s-set-test-block {
position: tuple<s32, s32, s32>, position: tuple<s32, s32, s32>,
mode: string, mode: string,
message: string, message: string,
} }
record s-spectate-entity {
target: uuid,
}
record s-swing-arm { record s-swing-arm {
hand: s32, hand: s32,
} }
@ -308,18 +369,27 @@ interface java-packets {
forced: bool, forced: bool,
prompt-message: option<string>, prompt-message: option<string>,
} }
record config-c-code-of-conduct {
code-of-conduct: string,
}
record config-c-config-disconnect { record config-c-config-disconnect {
reason: string, reason: string,
} }
record config-c-cookie-request { record config-c-cookie-request {
key: string, key: string,
} }
record config-c-config-custom-report-details {
details: list<string>,
}
record config-c-feature-flags { record config-c-feature-flags {
features: list<string>, features: list<string>,
} }
record config-c-known-packs { record config-c-known-packs {
known-packs: list<string>, known-packs: list<string>,
} }
record config-c-config-ping {
id: s32,
}
record config-c-plugin-message { record config-c-plugin-message {
channel: string, channel: string,
data: list<u8>, data: list<u8>,
@ -328,6 +398,9 @@ interface java-packets {
registry-id: string, registry-id: string,
entries: list<string>, entries: list<string>,
} }
record config-c-config-remove-resource-pack {
uuid: option<uuid>,
}
record config-c-config-server-links { record config-c-config-server-links {
links: list<string>, links: list<string>,
} }
@ -371,6 +444,13 @@ interface java-packets {
record c-action-bar { record c-action-bar {
action-bar: string, action-bar: string,
} }
record c-add-resource-pack {
uuid: uuid,
url: string,
hash: string,
forced: bool,
prompt-message: option<string>,
}
record c-award-stats { record c-award-stats {
stats: list<string>, stats: list<string>,
} }
@ -409,6 +489,9 @@ interface java-packets {
record c-chunk-batch-end { record c-chunk-batch-end {
batch-size: s32, batch-size: s32,
} }
record c-chunks-biomes {
chunks: list<string>,
}
record c-clear-title { record c-clear-title {
reset: bool, reset: bool,
} }
@ -419,6 +502,9 @@ interface java-packets {
player-id: s32, player-id: s32,
message: string, message: string,
} }
record c-combat-end {
duration-ticks: s32,
}
record c-command-suggestions { record c-command-suggestions {
id: s32, id: s32,
start: s32, start: s32,
@ -432,10 +518,17 @@ interface java-packets {
record c-play-cookie-request { record c-play-cookie-request {
key: string, key: string,
} }
record c-custom-chat-completions {
action: s32,
entries: list<string>,
}
record c-custom-payload { record c-custom-payload {
channel: string, channel: string,
data: list<u8>, data: list<u8>,
} }
record c-play-custom-report-details {
details: list<string>,
}
record c-damage-event { record c-damage-event {
entity-id: s32, entity-id: s32,
source-type-id: s32, source-type-id: s32,
@ -447,6 +540,10 @@ interface java-packets {
sample: list<s64>, sample: list<s64>,
sample-type: s32, sample-type: s32,
} }
record c-delete-chat {
signature-id: s32,
signature: option<list<u8>>,
}
record c-play-disconnect { record c-play-disconnect {
reason: string, reason: string,
} }
@ -505,6 +602,9 @@ interface java-packets {
event: u8, event: u8,
value: f32, value: f32,
} }
record c-game-rule-values {
rules: list<string>,
}
record c-head-rot { record c-head-rot {
entity-id: s32, entity-id: s32,
head-yaw: u8, head-yaw: u8,
@ -565,10 +665,22 @@ interface java-packets {
is-regular-villager: bool, is-regular-villager: bool,
can-restock: bool, can-restock: bool,
} }
record c-move-minecart-along-track {
entity-id: s32,
steps: list<string>,
}
record c-multi-block-update { record c-multi-block-update {
chunk-section: s64, chunk-section: s64,
updates: list<s64>, updates: list<s64>,
} }
record c-open-book {
hand: s32,
}
record c-open-mount-screen {
window-id: u8,
slot-count: s32,
entity-id: s32,
}
record c-open-screen { record c-open-screen {
sync-id: s32, sync-id: s32,
window-type: s32, window-type: s32,
@ -588,9 +700,16 @@ interface java-packets {
particle-id: s32, particle-id: s32,
data: list<u8>, data: list<u8>,
} }
record c-play-ping {
id: s32,
}
record c-ping-response { record c-ping-response {
payload: s64, payload: s64,
} }
record c-place-ghost-recipe {
window-id: u8,
recipe-id: string,
}
record c-player-abilities { record c-player-abilities {
%flags: u8, %flags: u8,
flying-speed: f32, flying-speed: f32,
@ -615,6 +734,13 @@ interface java-packets {
actions: u8, actions: u8,
players: list<string>, players: list<string>,
} }
record c-player-look-at {
from-anchor: s32,
target-x: f64,
target-y: f64,
target-z: f64,
entity: option<string>,
}
record c-player-position { record c-player-position {
teleport-id: s32, teleport-id: s32,
position: tuple<f64, f64, f64>, position: tuple<f64, f64, f64>,
@ -626,12 +752,22 @@ interface java-packets {
record c-remove-player-info { record c-remove-player-info {
players: list<uuid>, players: list<uuid>,
} }
record c-player-rotation {
yaw: f32,
pitch: f32,
}
record c-player-spawn-position { record c-player-spawn-position {
dimension-name: string, dimension-name: string,
location: tuple<s32, s32, s32>, location: tuple<s32, s32, s32>,
yaw: f32, yaw: f32,
pitch: f32, pitch: f32,
} }
record c-projectile-power {
entity-id: s32,
x-power: f64,
y-power: f64,
z-power: f64,
}
record c-recipe-book-add { record c-recipe-book-add {
replace: bool, replace: bool,
} }
@ -652,6 +788,9 @@ interface java-packets {
entity-id: s32, entity-id: s32,
effect-id: s32, effect-id: s32,
} }
record c-remove-resource-pack {
uuid: option<uuid>,
}
record c-reset-score { record c-reset-score {
entity-name: string, entity-name: string,
objective-name: option<string>, objective-name: option<string>,
@ -663,6 +802,10 @@ interface java-packets {
record c-select-advancements-tab { record c-select-advancements-tab {
tab-id: option<string>, tab-id: option<string>,
} }
record c-server-data {
motd: string,
icon-base64: option<string>,
}
record c-play-server-links { record c-play-server-links {
links: list<string>, links: list<string>,
} }
@ -684,6 +827,9 @@ interface java-packets {
record c-set-border-warning-distance { record c-set-border-warning-distance {
warning-blocks: s32, warning-blocks: s32,
} }
record c-set-camera {
camera-id: s32,
}
record c-set-container-content { record c-set-container-content {
window-id: s32, window-id: s32,
state-id: s32, state-id: s32,
@ -789,6 +935,10 @@ interface java-packets {
header: string, header: string,
footer: string, footer: string,
} }
record c-tag-query-response {
transaction-id: s32,
nbt-bytes: list<u8>,
}
record c-take-item-entity { record c-take-item-entity {
entity-id: s32, entity-id: s32,
collector-entity-id: s32, collector-entity-id: s32,
@ -868,6 +1018,10 @@ interface java-packets {
display-name: option<string>, display-name: option<string>,
number-format: option<string>, number-format: option<string>,
} }
record c-waypoint {
operation: string,
waypoint: string,
}
record c-world-event { record c-world-event {
event: s32, event: s32,
location: tuple<s32, s32, s32>, location: tuple<s32, s32, s32>,
@ -881,6 +1035,7 @@ interface java-packets {
json-response: string, json-response: string,
} }
variant serverbound-packet { variant serverbound-packet {
config-s-accept-code-of-conduct,
config-s-acknowledge-finish-config, config-s-acknowledge-finish-config,
config-s-client-information-config(config-s-client-information-config), config-s-client-information-config(config-s-client-information-config),
config-s-config-cookie-response(config-s-config-cookie-response), 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-keep-alive(config-s-keep-alive),
config-s-known-packs(config-s-known-packs), config-s-known-packs(config-s-known-packs),
config-s-plugin-message(config-s-plugin-message), 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), config-s-config-resource-pack(config-s-config-resource-pack),
login-s-login-cookie-response(login-s-login-cookie-response), login-s-login-cookie-response(login-s-login-cookie-response),
login-s-encryption-response(login-s-encryption-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-start(login-s-login-start),
login-s-login-plugin-response(login-s-login-plugin-response), login-s-login-plugin-response(login-s-login-plugin-response),
s-attack(s-attack), s-attack(s-attack),
s-block-entity-tag-query(s-block-entity-tag-query),
s-bundle-item-selected(s-bundle-item-selected), s-bundle-item-selected(s-bundle-item-selected),
s-change-game-mode(s-change-game-mode), s-change-game-mode(s-change-game-mode),
s-chat-command(s-chat-command), s-chat-command(s-chat-command),
@ -906,16 +1063,21 @@ interface java-packets {
s-client-tick-end, s-client-tick-end,
s-close-container(s-close-container), s-close-container(s-close-container),
s-command-suggestion(s-command-suggestion), s-command-suggestion(s-command-suggestion),
s-configuration-acknowledged,
s-confirm-teleport(s-confirm-teleport), s-confirm-teleport(s-confirm-teleport),
s-container-button-click(s-container-button-click), 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-cookie-response(s-cookie-response),
s-custom-click-action(s-custom-click-action), s-custom-click-action(s-custom-click-action),
s-custom-payload(s-custom-payload), s-custom-payload(s-custom-payload),
s-debug-sample-subscription(s-debug-sample-subscription), s-debug-sample-subscription(s-debug-sample-subscription),
s-debug-subscription-request(s-debug-subscription-request), 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-interact(s-interact),
s-jigsaw-generate(s-jigsaw-generate), s-jigsaw-generate(s-jigsaw-generate),
s-keep-alive(s-keep-alive), s-keep-alive(s-keep-alive),
s-lock-difficulty(s-lock-difficulty),
s-move-vehicle(s-move-vehicle), s-move-vehicle(s-move-vehicle),
s-paddle-boat(s-paddle-boat), s-paddle-boat(s-paddle-boat),
s-pick-item-from-block(s-pick-item-from-block), 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-position-rotation(s-player-position-rotation),
s-player-rotation(s-player-rotation), s-player-rotation(s-player-rotation),
s-player-session(s-player-session), 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-change-settings(s-recipe-book-change-settings),
s-recipe-book-seen-recipe(s-recipe-book-seen-recipe), s-recipe-book-seen-recipe(s-recipe-book-seen-recipe),
s-rename-item(s-rename-item), s-rename-item(s-rename-item),
s-play-resource-pack(s-play-resource-pack),
s-seen-advancement(s-seen-advancement), s-seen-advancement(s-seen-advancement),
s-select-trade(s-select-trade), s-select-trade(s-select-trade),
s-set-beacon(s-set-beacon), s-set-beacon(s-set-beacon),
s-set-command-block(s-set-command-block), 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-creative-slot(s-set-creative-slot),
s-set-game-rule(s-set-game-rule),
s-set-held-item(s-set-held-item), s-set-held-item(s-set-held-item),
s-set-jigsaw-block(s-set-jigsaw-block), 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-set-test-block(s-set-test-block),
s-spectate-entity(s-spectate-entity),
s-swing-arm(s-swing-arm), s-swing-arm(s-swing-arm),
s-teleport-to-entity(s-teleport-to-entity), s-teleport-to-entity(s-teleport-to-entity),
s-test-instance-block-action(s-test-instance-block-action), s-test-instance-block-action(s-test-instance-block-action),
@ -956,13 +1124,18 @@ interface java-packets {
variant clientbound-packet { variant clientbound-packet {
config-c-config-add-resource-pack(config-c-config-add-resource-pack), config-c-config-add-resource-pack(config-c-config-add-resource-pack),
config-c-config-clear-dialog, 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-config-disconnect(config-c-config-disconnect),
config-c-cookie-request(config-c-cookie-request), 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-feature-flags(config-c-feature-flags),
config-c-finish-config, config-c-finish-config,
config-c-known-packs(config-c-known-packs), 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-plugin-message(config-c-plugin-message),
config-c-registry-data(config-c-registry-data), 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-server-links(config-c-config-server-links),
config-c-config-show-dialog(config-c-config-show-dialog), config-c-config-show-dialog(config-c-config-show-dialog),
config-c-store-cookie(config-c-store-cookie), config-c-store-cookie(config-c-store-cookie),
@ -975,27 +1148,35 @@ interface java-packets {
login-c-set-compression(login-c-set-compression), login-c-set-compression(login-c-set-compression),
c-acknowledge-block-change(c-acknowledge-block-change), c-acknowledge-block-change(c-acknowledge-block-change),
c-action-bar(c-action-bar), c-action-bar(c-action-bar),
c-add-resource-pack(c-add-resource-pack),
c-award-stats(c-award-stats), c-award-stats(c-award-stats),
c-set-block-destroy-stage(c-set-block-destroy-stage), c-set-block-destroy-stage(c-set-block-destroy-stage),
c-block-entity-data(c-block-entity-data), c-block-entity-data(c-block-entity-data),
c-block-event(c-block-event), c-block-event(c-block-event),
c-block-update(c-block-update), c-block-update(c-block-update),
c-boss-event(c-boss-event), c-boss-event(c-boss-event),
c-bundle-delimiter,
c-center-chunk(c-center-chunk), c-center-chunk(c-center-chunk),
c-change-difficulty(c-change-difficulty), c-change-difficulty(c-change-difficulty),
c-chunk-batch-end(c-chunk-batch-end), c-chunk-batch-end(c-chunk-batch-end),
c-chunk-batch-start, c-chunk-batch-start,
c-chunk-data, c-chunk-data,
c-chunks-biomes(c-chunks-biomes),
c-play-clear-dialog, c-play-clear-dialog,
c-clear-title(c-clear-title), c-clear-title(c-clear-title),
c-close-container(c-close-container), c-close-container(c-close-container),
c-combat-death(c-combat-death), c-combat-death(c-combat-death),
c-combat-enter,
c-combat-end(c-combat-end),
c-command-suggestions(c-command-suggestions), c-command-suggestions(c-command-suggestions),
c-commands(c-commands), c-commands(c-commands),
c-play-cookie-request(c-play-cookie-request), c-play-cookie-request(c-play-cookie-request),
c-custom-chat-completions(c-custom-chat-completions),
c-custom-payload(c-custom-payload), c-custom-payload(c-custom-payload),
c-play-custom-report-details(c-play-custom-report-details),
c-damage-event(c-damage-event), c-damage-event(c-damage-event),
c-debug-sample(c-debug-sample), c-debug-sample(c-debug-sample),
c-delete-chat(c-delete-chat),
c-play-disconnect(c-play-disconnect), c-play-disconnect(c-play-disconnect),
c-disguised-chat-message(c-disguised-chat-message), c-disguised-chat-message(c-disguised-chat-message),
c-display-objective(c-display-objective), c-display-objective(c-display-objective),
@ -1007,6 +1188,7 @@ interface java-packets {
c-entity-velocity(c-entity-velocity), c-entity-velocity(c-entity-velocity),
c-explosion(c-explosion), c-explosion(c-explosion),
c-game-event(c-game-event), c-game-event(c-game-event),
c-game-rule-values(c-game-rule-values),
c-head-rot(c-head-rot), c-head-rot(c-head-rot),
c-hurt-animation(c-hurt-animation), c-hurt-animation(c-hurt-animation),
c-initialize-world-border(c-initialize-world-border), c-initialize-world-border(c-initialize-world-border),
@ -1015,32 +1197,44 @@ interface java-packets {
c-level-event(c-level-event), c-level-event(c-level-event),
c-light-update, c-light-update,
c-login(c-login), c-login(c-login),
c-low-disk-space-warning,
c-map-item-data(c-map-item-data), c-map-item-data(c-map-item-data),
c-merchant-offers(c-merchant-offers), 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-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-screen(c-open-screen),
c-open-sign-editor(c-open-sign-editor), c-open-sign-editor(c-open-sign-editor),
c-particle(c-particle), c-particle(c-particle),
c-play-ping(c-play-ping),
c-ping-response(c-ping-response), c-ping-response(c-ping-response),
c-place-ghost-recipe(c-place-ghost-recipe),
c-player-abilities(c-player-abilities), c-player-abilities(c-player-abilities),
c-player-chat-message(c-player-chat-message), c-player-chat-message(c-player-chat-message),
c-player-info-update(c-player-info-update), c-player-info-update(c-player-info-update),
c-player-look-at(c-player-look-at),
c-player-position(c-player-position), c-player-position(c-player-position),
c-remove-player-info(c-remove-player-info), c-remove-player-info(c-remove-player-info),
c-player-rotation(c-player-rotation),
c-player-spawn-position(c-player-spawn-position), 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-add(c-recipe-book-add),
c-recipe-book-settings(c-recipe-book-settings), c-recipe-book-settings(c-recipe-book-settings),
c-remove-entities(c-remove-entities), c-remove-entities(c-remove-entities),
c-remove-mob-effect(c-remove-mob-effect), c-remove-mob-effect(c-remove-mob-effect),
c-remove-resource-pack(c-remove-resource-pack),
c-reset-score(c-reset-score), c-reset-score(c-reset-score),
c-respawn(c-respawn), c-respawn(c-respawn),
c-select-advancements-tab(c-select-advancements-tab), c-select-advancements-tab(c-select-advancements-tab),
c-server-data(c-server-data),
c-play-server-links(c-play-server-links), c-play-server-links(c-play-server-links),
c-set-border-center(c-set-border-center), c-set-border-center(c-set-border-center),
c-set-border-lerp-size(c-set-border-lerp-size), c-set-border-lerp-size(c-set-border-lerp-size),
c-set-border-size(c-set-border-size), c-set-border-size(c-set-border-size),
c-set-border-warning-delay(c-set-border-warning-delay), c-set-border-warning-delay(c-set-border-warning-delay),
c-set-border-warning-distance(c-set-border-warning-distance), 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-content(c-set-container-content),
c-set-container-property(c-set-container-property), c-set-container-property(c-set-container-property),
c-set-container-slot(c-set-container-slot), c-set-container-slot(c-set-container-slot),
@ -1058,11 +1252,13 @@ interface java-packets {
c-play-show-dialog(c-play-show-dialog), c-play-show-dialog(c-play-show-dialog),
c-sound-effect(c-sound-effect), c-sound-effect(c-sound-effect),
c-spawn-entity(c-spawn-entity), c-spawn-entity(c-spawn-entity),
c-start-configuration,
c-stop-sound(c-stop-sound), c-stop-sound(c-stop-sound),
c-store-cookie(c-store-cookie), c-store-cookie(c-store-cookie),
c-subtitle(c-subtitle), c-subtitle(c-subtitle),
c-system-chat-message(c-system-chat-message), c-system-chat-message(c-system-chat-message),
c-tab-list(c-tab-list), c-tab-list(c-tab-list),
c-tag-query-response(c-tag-query-response),
c-take-item-entity(c-take-item-entity), c-take-item-entity(c-take-item-entity),
c-teleport-entity(c-teleport-entity), c-teleport-entity(c-teleport-entity),
c-ticking-state(c-ticking-state), c-ticking-state(c-ticking-state),
@ -1077,6 +1273,7 @@ interface java-packets {
c-update-mob-effect(c-update-mob-effect), c-update-mob-effect(c-update-mob-effect),
c-update-objectives(c-update-objectives), c-update-objectives(c-update-objectives),
c-update-score(c-update-score), c-update-score(c-update-score),
c-waypoint(c-waypoint),
c-world-event(c-world-event), c-world-event(c-world-event),
status-c-ping-response(status-c-ping-response), status-c-ping-response(status-c-ping-response),
status-c-status-response(status-c-status-response), status-c-status-response(status-c-status-response),

View File

@ -850,6 +850,62 @@ interface player {
as-bedrock: func() -> option<bedrock-player>; as-bedrock: func() -> option<bedrock-player>;
} }
/// 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<text-component>,
}
/// 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<string>,
/// Optional sub-pack name inside the archive.
sub-pack-name: option<string>,
/// Optional content identifier.
content-id: option<string>,
/// 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<uuid>,
/// World template version, if any.
world-template-version: option<string>,
/// List of resource packs to send to the player.
packs: list<bedrock-resource-pack-entry>,
}
/// A handle to a player connected via the Java Edition. /// A handle to a player connected via the Java Edition.
resource java-player { resource java-player {
/// Returns the Minecraft Java Edition version of the 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. /// Resets the player's custom Java scoreboard back to the world scoreboard.
reset-scoreboard: func(); 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. /// 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. /// Resets the player's custom Bedrock scoreboard back to the world scoreboard.
reset-scoreboard: func(); 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. /// Returns a list of all players in a specific world.