From efa97ad1741a2d5636f16cceac1b04db16cbb1c2 Mon Sep 17 00:00:00 2001 From: Alexander Medvedev Date: Sun, 28 Jun 2026 16:18:49 +0200 Subject: [PATCH] fix: https://github.com/Pumpkin-MC/Pumpkin/issues/2283 --- pumpkin-codegen/src/wit/java_packet.rs | 62 +- pumpkin-codegen/src/wit/packet_mapping.rs | 212 +++++-- pumpkin-codegen/src/wit/utils.rs | 2 +- pumpkin-data/src/generated/item.rs | 152 ++--- pumpkin-plugin-wit | 2 +- pumpkin-protocol/src/bedrock/client/mod.rs | 1 + .../server/config/resource_pack_response.rs | 2 +- .../wasm_host/wit/v0_1/generated_packets.rs | 597 ++++++++++++++++++ 8 files changed, 892 insertions(+), 138 deletions(-) diff --git a/pumpkin-codegen/src/wit/java_packet.rs b/pumpkin-codegen/src/wit/java_packet.rs index 672874411..095afd3a3 100644 --- a/pumpkin-codegen/src/wit/java_packet.rs +++ b/pumpkin-codegen/src/wit/java_packet.rs @@ -1,6 +1,7 @@ use crate::wit::utils::map_type; use heck::ToKebabCase; use semver::Version; +use std::collections::HashSet; use std::{fs, path::Path}; use syn::{Fields, Item}; use wit_encoder::{ @@ -21,19 +22,31 @@ pub fn build() -> String { let mut serverbound_variant = Variant::empty(); let mut clientbound_variant = Variant::empty(); + let mut serverbound_cases = HashSet::new(); + let mut clientbound_cases = HashSet::new(); // Process serverbound packets - process_packets( - "../pumpkin-protocol/src/java/server/play", - &mut interface, - &mut serverbound_variant, - ); + let server_states = &["config", "handshake", "login", "play", "status"]; + for state in server_states { + process_packets( + &format!("../pumpkin-protocol/src/java/server/{}", state), + state, + &mut interface, + &mut serverbound_variant, + &mut serverbound_cases, + ); + } // Process clientbound packets - process_packets( - "../pumpkin-protocol/src/java/client/play", - &mut interface, - &mut clientbound_variant, - ); + let client_states = &["config", "login", "play", "status"]; + for state in client_states { + process_packets( + &format!("../pumpkin-protocol/src/java/client/{}", state), + state, + &mut interface, + &mut clientbound_variant, + &mut clientbound_cases, + ); + } // Add an 'unknown' fallback variant (no payload) — raw payload is carried on the event record serverbound_variant.case(VariantCase::empty("unknown")); @@ -52,7 +65,13 @@ pub fn build() -> String { package.to_string() } -fn process_packets(dir: &str, interface: &mut Interface, variant: &mut Variant) { +fn process_packets( + dir: &str, + state: &str, + interface: &mut Interface, + variant: &mut Variant, + defined_cases: &mut HashSet, +) { let paths = fs::read_dir(dir).expect("Failed to read packet directory"); let mut sorted_paths: Vec<_> = paths .map(|e| e.expect("Failed to read entry").path()) @@ -63,12 +82,18 @@ fn process_packets(dir: &str, interface: &mut Interface, variant: &mut Variant) if path.extension().is_some_and(|ext| ext == "rs") && path.file_name().is_some_and(|name| name != "mod.rs") { - parse_packet_file(&path, interface, variant); + parse_packet_file(&path, state, interface, variant, defined_cases); } } } -fn parse_packet_file(path: &Path, interface: &mut Interface, variant: &mut Variant) { +fn parse_packet_file( + path: &Path, + state: &str, + interface: &mut Interface, + variant: &mut Variant, + defined_cases: &mut HashSet, +) { let content = fs::read_to_string(path).expect("Failed to read file"); let file = syn::parse_file(&content).expect("Failed to parse file"); @@ -84,6 +109,16 @@ fn parse_packet_file(path: &Path, interface: &mut Interface, variant: &mut Varia } let struct_name = s.ident.to_string(); + let wit_name = if state == "play" { + struct_name.to_kebab_case() + } else { + format!("{}-{}", state, struct_name.to_kebab_case()) + }; + + if !defined_cases.insert(wit_name.clone()) { + continue; + } + let mut fields_list = Vec::new(); if let Fields::Named(fields) = s.fields { @@ -112,7 +147,6 @@ fn parse_packet_file(path: &Path, interface: &mut Interface, variant: &mut Varia fields_list.push(Field::new(field_name, field_type)); } } - let wit_name = struct_name.to_kebab_case(); if !fields_list.is_empty() { interface.type_def(TypeDef::new( wit_name.clone(), diff --git a/pumpkin-codegen/src/wit/packet_mapping.rs b/pumpkin-codegen/src/wit/packet_mapping.rs index 1cc297520..c091e9d66 100644 --- a/pumpkin-codegen/src/wit/packet_mapping.rs +++ b/pumpkin-codegen/src/wit/packet_mapping.rs @@ -22,15 +22,21 @@ pub fn build_java_mapping() -> String { output.push_str("pub fn serialize_java_packet(packet: &ClientboundPacket, version: JavaMinecraftVersion) -> Option {\n"); output.push_str(" match packet {\n"); - process_packets( - "../pumpkin-protocol/src/java/client/play", - &mut output, - "java_packet", - "ClientboundPacket", - "pumpkin_protocol::java::client::play", - false, - MappingMode::Serialize, - ); + let client_states = &["config", "login", "play", "status"]; + let server_states = &["config", "handshake", "login", "play", "status"]; + + for state in client_states { + process_packets( + &format!("../pumpkin-protocol/src/java/client/{}", state), + state, + &mut output, + "java_packet", + "ClientboundPacket", + &format!("pumpkin_protocol::java::client::{}", state), + false, + MappingMode::Serialize, + ); + } output.push_str(" _ => None,\n"); output.push_str(" }\n"); @@ -40,15 +46,18 @@ pub fn build_java_mapping() -> String { output.push_str("pub fn deserialize_java_serverbound_packet(id: i32, payload: &[u8], version: JavaMinecraftVersion) -> Option {\n"); output.push_str(" match id {\n"); - process_packets( - "../pumpkin-protocol/src/java/server/play", - &mut output, - "java_packet", - "ServerboundPacket", - "pumpkin_protocol::java::server::play", - false, - MappingMode::Deserialize, - ); + for state in server_states { + process_packets( + &format!("../pumpkin-protocol/src/java/server/{}", state), + state, + &mut output, + "java_packet", + "ServerboundPacket", + &format!("pumpkin_protocol::java::server::{}", state), + false, + MappingMode::Deserialize, + ); + } output.push_str(" _ => None,\n"); output.push_str(" }\n"); @@ -58,29 +67,35 @@ pub fn build_java_mapping() -> String { output.push_str(" fn to_wit(&self) -> ClientboundPacket;\n"); output.push_str("}\n\n"); - process_packets( - "../pumpkin-protocol/src/java/client/play", - &mut output, - "java_packet", - "ClientboundPacket", - "pumpkin_protocol::java::client::play", - false, - MappingMode::ToWit, - ); + for state in client_states { + process_packets( + &format!("../pumpkin-protocol/src/java/client/{}", state), + state, + &mut output, + "java_packet", + "ClientboundPacket", + &format!("pumpkin_protocol::java::client::{}", state), + false, + MappingMode::ToWit, + ); + } output.push_str("#[must_use]\n"); output.push_str( "pub fn clientbound_java_any_to_wit(any: &dyn Any) -> Option {\n", ); - process_packets( - "../pumpkin-protocol/src/java/client/play", - &mut output, - "java_packet", - "ClientboundPacket", - "pumpkin_protocol::java::client::play", - false, - MappingMode::Downcast, - ); + for state in client_states { + process_packets( + &format!("../pumpkin-protocol/src/java/client/{}", state), + state, + &mut output, + "java_packet", + "ClientboundPacket", + &format!("pumpkin_protocol::java::client::{}", state), + false, + MappingMode::Downcast, + ); + } output.push_str(" None\n"); output.push_str("}\n\n"); @@ -98,6 +113,7 @@ pub fn build_bedrock_mapping() -> String { process_packets( "../pumpkin-protocol/src/bedrock/client", + "", &mut output, "packet", "BClientboundPacket", @@ -116,6 +132,7 @@ pub fn build_bedrock_mapping() -> String { process_packets( "../pumpkin-protocol/src/bedrock/server", + "", &mut output, "packet", "BServerboundPacket", @@ -134,6 +151,7 @@ pub fn build_bedrock_mapping() -> String { process_packets( "../pumpkin-protocol/src/bedrock/client", + "", &mut output, "packet", "BClientboundPacket", @@ -148,6 +166,7 @@ pub fn build_bedrock_mapping() -> String { ); process_packets( "../pumpkin-protocol/src/bedrock/client", + "", &mut output, "packet", "BClientboundPacket", @@ -171,6 +190,7 @@ enum MappingMode { fn process_packets( dir: &str, + state: &str, output: &mut String, attr_name: &str, variant_prefix: &str, @@ -191,6 +211,7 @@ fn process_packets( } process_packets( path.to_str().unwrap(), + state, output, attr_name, variant_prefix, @@ -205,6 +226,7 @@ fn process_packets( { parse_packet_file( &path, + state, output, attr_name, variant_prefix, @@ -217,6 +239,7 @@ fn process_packets( fn parse_packet_file( path: &Path, + state: &str, output: &mut String, attr_name: &str, variant_prefix: &str, @@ -236,7 +259,11 @@ fn parse_packet_file( if struct_name == "CHandshake" { continue; } // Skip CHandshake (RakNet) - let wit_case = struct_name.to_pascal_case(); + let wit_case = if state == "play" || state.is_empty() { + struct_name.to_pascal_case() + } else { + format!("{}{}", state.to_pascal_case(), struct_name.to_pascal_case()) + }; let mut has_lifetime = false; if !s.generics.params.is_empty() { has_lifetime = true; @@ -253,6 +280,10 @@ fn parse_packet_file( if let Fields::Named(fields) = s.fields { for field in fields.named { + if !matches!(field.vis, syn::Visibility::Public(_)) { + possible = false; + break; + } let mut field_name = field.ident.as_ref().unwrap().to_string(); let wit_field = field_name.to_snake_case(); let (type_ident, is_ref, is_slice) = get_type_info(&field.ty); @@ -313,6 +344,75 @@ fn parse_packet_file( )); } } + "VarLong" | "VarULong" => { + let is_ulong = type_ident == "VarULong"; + let path = if is_ulong { + "pumpkin_protocol::codec::var_ulong::VarULong" + } else { + "pumpkin_protocol::codec::var_long::VarLong" + }; + + if mode == MappingMode::Serialize { + if is_slice { + prep_code.push_str(&format!( + " let vec_{}: Vec<{}> = data.{}.iter().map(|v| {}(*v as _)).collect();\n", + wit_field, path, wit_field, path + )); + if is_ref { + field_inits.push_str(&format!( + " {}: &vec_{},\n", + field_name, wit_field + )); + } else { + field_inits.push_str(&format!( + " {}: vec_{},\n", + field_name, wit_field + )); + } + } else { + if is_ref { + prep_code.push_str(&format!( + " let var_long_{} = {}(data.{}.try_into().unwrap());\n", + wit_field, path, wit_field + )); + field_inits.push_str(&format!( + " {}: &var_long_{},\n", + field_name, wit_field + )); + } else { + field_inits.push_str(&format!( + " {}: {}(data.{}.try_into().unwrap()),\n", + field_name, path, wit_field + )); + } + } + } else if mode == MappingMode::Deserialize { + if is_slice { + field_inits.push_str(&format!( + " {}: p.{}.iter().map(|v| v.0 as _).collect(),\n", + wit_field, field_name + )); + } else { + field_inits.push_str(&format!( + " {}: p.{}.0.try_into().unwrap(),\n", + wit_field, field_name + )); + } + } else { + // ToWit + if is_slice { + field_inits.push_str(&format!( + " {}: self.{}.iter().map(|v| v.0 as _).collect(),\n", + wit_field, field_name + )); + } else { + field_inits.push_str(&format!( + " {}: self.{}.0.try_into().unwrap(),\n", + wit_field, field_name + )); + } + } + } "TextComponent" => { if mode == MappingMode::Serialize { prep_code.push_str(&format!(" let component_{} = pumpkin_util::text::TextComponent::text(data.{}.clone());\n", wit_field, wit_field)); @@ -431,15 +531,37 @@ fn parse_packet_file( field_inits.push_str(&format!(" {}: data.{}.iter().map(|v| *v as _).collect(),\n", field_name, wit_field)); } } else if type_ident == "VarInt" { - field_inits.push_str(&format!( - " {}: VarInt(data.{}),\n", - field_name, wit_field - )); + if is_ref { + prep_code.push_str(&format!( + " let var_int_{} = VarInt(data.{});\n", + wit_field, wit_field + )); + field_inits.push_str(&format!( + " {}: &var_int_{},\n", + field_name, wit_field + )); + } else { + field_inits.push_str(&format!( + " {}: VarInt(data.{}),\n", + field_name, wit_field + )); + } } else { - field_inits.push_str(&format!( - " {}: data.{}.try_into().unwrap(),\n", - field_name, wit_field - )); + if is_ref { + prep_code.push_str(&format!( + " let val_{} = data.{}.try_into().unwrap();\n", + wit_field, wit_field + )); + field_inits.push_str(&format!( + " {}: &val_{},\n", + field_name, wit_field + )); + } else { + field_inits.push_str(&format!( + " {}: data.{}.try_into().unwrap(),\n", + field_name, wit_field + )); + } } } else if mode == MappingMode::Deserialize { if is_slice { diff --git a/pumpkin-codegen/src/wit/utils.rs b/pumpkin-codegen/src/wit/utils.rs index 2d4906978..4cbc7c646 100644 --- a/pumpkin-codegen/src/wit/utils.rs +++ b/pumpkin-codegen/src/wit/utils.rs @@ -10,7 +10,7 @@ pub fn map_type(ty: &Type) -> WitType { "String" | "TextComponent" => WitType::String, "Uuid" => WitType::Named("uuid".into()), "i32" | "VarInt" | "u32" | "VarUInt" | "usize" => WitType::S32, - "i64" | "u64" => WitType::S64, + "i64" | "u64" | "VarLong" | "VarULong" => WitType::S64, "bool" => WitType::Bool, "f32" => WitType::F32, "f64" => WitType::F64, diff --git a/pumpkin-data/src/generated/item.rs b/pumpkin-data/src/generated/item.rs index cf8ad7ae2..311ebbe9c 100644 --- a/pumpkin-data/src/generated/item.rs +++ b/pumpkin-data/src/generated/item.rs @@ -37898,7 +37898,7 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const APPLE : Self = Self { id : 285 , registry_key : "minecraft:apple" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\x17minecraft:use_modifiers\x01\x0Femit_vibrations\x01\x08\x0Bstart_using\x06always\x05\x0Cuse_duration\xCD\xCC\xCC?\x05\x11movement_modifier33\xB3>\0\t\titem_tags\x08\x02\x11minecraft:is_food\n\x17minecraft:use_animation\x08\x05value\x03eat\0\n\x16minecraft:display_name\x08\x05value\x0Fitem.apple.name\0\n\x0Eminecraft:food\n\x11using_converts_to\0\x01\x0Ecan_always_eat\0\x03\tnutrition\x08\x05\x13saturation_modifier\x9A\x99\x99>\0\n\x0Eminecraft:tags\t\x04tags\x08\x02\x11minecraft:is_food\0\n\x0Fitem_properties\x01\x17can_destroy_in_creative\x01\x03\x11creative_category\x04\x08\x0Ecreative_group\0\x01\x04foil\0\x03\x0Bframe_count\x02\x01\x0Eshould_despawn\x01\x03\ruse_animation\x02\x01\x0Fstacked_by_data\0\x01\x12hidden_in_commands\x02\x03\x0Emax_stack_size\x80\x01\x01\rhand_equipped\0\x01\x0Eliquid_clipped\0\n\x0Eminecraft:icon\n\x08textures\x08\x07default\x05apple\0\0\x03\x11enchantable_value\0\x03\x0Cuse_duration@\x05\x0Cmining_speed\0\0\x80?\x01\x0Eallow_off_hand\0\x03\x06damage\0\x08\x10enchantable_slot\x04none\0\0" } ; + pub const APPLE : Self = Self { id : 285 , registry_key : "minecraft:apple" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\x0Eminecraft:tags\t\x04tags\x08\x02\x11minecraft:is_food\0\n\x0Fitem_properties\x03\x0Bframe_count\x02\x03\x11enchantable_value\0\x01\x0Eshould_despawn\x01\x03\x0Emax_stack_size\x80\x01\x08\x0Ecreative_group\0\x01\rhand_equipped\0\x01\x17can_destroy_in_creative\x01\x03\x06damage\0\x03\ruse_animation\x02\x01\x0Fstacked_by_data\0\n\x0Eminecraft:icon\n\x08textures\x08\x07default\x05apple\0\0\x03\x0Cuse_duration@\x01\x0Eliquid_clipped\0\x03\x11creative_category\x04\x08\x10enchantable_slot\x04none\x01\x12hidden_in_commands\x02\x01\x0Eallow_off_hand\0\x01\x04foil\0\x05\x0Cmining_speed\0\0\x80?\0\n\x17minecraft:use_animation\x08\x05value\x03eat\0\n\x17minecraft:use_modifiers\x05\x11movement_modifier33\xB3>\x01\x0Femit_vibrations\x01\x08\x0Bstart_using\x06always\x05\x0Cuse_duration\xCD\xCC\xCC?\0\n\x16minecraft:display_name\x08\x05value\x0Fitem.apple.name\0\n\x0Eminecraft:food\x01\x0Ecan_always_eat\0\x05\x13saturation_modifier\x9A\x99\x99>\n\x11using_converts_to\0\x03\tnutrition\x08\0\t\titem_tags\x08\x02\x11minecraft:is_food\0" } ; pub const ARCHER_POTTERY_SHERD: Self = Self { id: 700, registry_key: "minecraft:archer_pottery_sherd", @@ -37983,7 +37983,7 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const BAKED_POTATO : Self = Self { id : 310 , registry_key : "minecraft:baked_potato" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:food\x03\tnutrition\n\x01\x0Ecan_always_eat\0\x08\rcooldown_type\0\x05\x13saturation_modifier\x9A\x99\x19?\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x03\ron_use_action\x01\x08\x11using_converts_to\0\x03\rcooldown_time\0\0\x03\x16minecraft:use_duration@\0" } ; + pub const BAKED_POTATO : Self = Self { id : 310 , registry_key : "minecraft:baked_potato" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:food\x08\rcooldown_type\0\x03\rcooldown_time\0\x05\x13saturation_modifier\x9A\x99\x19?\x08\x11using_converts_to\0\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x01\x0Ecan_always_eat\0\x03\ron_use_action\x01\x03\tnutrition\n\0\x03\x16minecraft:use_duration@\0" } ; pub const BALLOON: Self = Self { id: 641, registry_key: "minecraft:balloon", @@ -38236,7 +38236,7 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const BEEF : Self = Self { id : 302 , registry_key : "minecraft:beef" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:food\x08\rcooldown_type\0\x05\x13saturation_modifier\x9A\x99\x99>\x08\x11using_converts_to\0\x03\tnutrition\x06\x01\x0Ecan_always_eat\0\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x03\rcooldown_time\0\x03\ron_use_action\x01\0\x03\x16minecraft:use_duration@\0" } ; + pub const BEEF : Self = Self { id : 302 , registry_key : "minecraft:beef" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\x03\x16minecraft:use_duration@\n\x0Eminecraft:food\x01\x0Ecan_always_eat\0\x03\ron_use_action\x01\x03\tnutrition\x06\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x08\x11using_converts_to\0\x03\rcooldown_time\0\x08\rcooldown_type\0\x05\x13saturation_modifier\x9A\x99\x99>\0\0" } ; pub const BEEHIVE: Self = Self { id: -219, registry_key: "minecraft:beehive", @@ -38244,9 +38244,9 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const BEETROOT : Self = Self { id : 314 , registry_key : "minecraft:beetroot" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\x03\x16minecraft:use_duration@\n\x0Eminecraft:food\x03\tnutrition\x02\x08\rcooldown_type\0\x05\x13saturation_modifier\x9A\x99\x19?\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x01\x0Ecan_always_eat\0\x03\rcooldown_time\0\x08\x11using_converts_to\0\x03\ron_use_action\x01\0\0" } ; - pub const BEETROOT_SEEDS : Self = Self { id : 324 , registry_key : "minecraft:beetroot_seeds" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:seed\x08\x0Bcrop_result\x12minecraft:beetroot\t\x08plant_at\x08\x02\x12minecraft:farmland\x08\rplant_at_face\x02up\x01\x1Aplant_at_any_solid_surface\0\0\0" } ; - pub const BEETROOT_SOUP : Self = Self { id : 315 , registry_key : "minecraft:beetroot_soup" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\x03\x16minecraft:use_duration@\n\x0Eminecraft:food\x05\x13saturation_modifier\x9A\x99\x19?\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x08\rcooldown_type\0\x03\tnutrition\x0C\x08\x11using_converts_to\x04bowl\x03\ron_use_action\x01\x01\x0Ecan_always_eat\0\x03\rcooldown_time\0\0\x03\x18minecraft:max_stack_size\x02\0" } ; + pub const BEETROOT : Self = Self { id : 314 , registry_key : "minecraft:beetroot" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:food\x03\tnutrition\x02\x03\ron_use_action\x01\x08\x11using_converts_to\0\x03\rcooldown_time\0\x05\x13saturation_modifier\x9A\x99\x19?\x01\x0Ecan_always_eat\0\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x08\rcooldown_type\0\0\x03\x16minecraft:use_duration@\0" } ; + pub const BEETROOT_SEEDS : Self = Self { id : 324 , registry_key : "minecraft:beetroot_seeds" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:seed\x01\x1Aplant_at_any_solid_surface\0\x08\rplant_at_face\x02up\t\x08plant_at\x08\x02\x12minecraft:farmland\x08\x0Bcrop_result\x12minecraft:beetroot\0\0" } ; + pub const BEETROOT_SOUP : Self = Self { id : 315 , registry_key : "minecraft:beetroot_soup" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\x03\x16minecraft:use_duration@\n\x0Eminecraft:food\x03\ron_use_action\x01\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x08\rcooldown_type\0\x05\x13saturation_modifier\x9A\x99\x19?\x03\rcooldown_time\0\x08\x11using_converts_to\x04bowl\x01\x0Ecan_always_eat\0\x03\tnutrition\x0C\0\x03\x18minecraft:max_stack_size\x02\0" } ; pub const BELL: Self = Self { id: -206, registry_key: "minecraft:bell", @@ -38408,7 +38408,7 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const BLACK_BUNDLE : Self = Self { id : 264 , registry_key : "minecraft:black_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\x1Cminecraft:bundle_interaction\x03\x12num_viewable_slots\x18\0\n\x0Fitem_properties\x01\x0Eallow_off_hand\0\x08\x10enchantable_slot\x04none\n\x0Eminecraft:icon\n\x08textures\x08\x10bundle_open_back\x16bundle_black_open_back\x08\x11bundle_open_front\x17bundle_black_open_front\x08\x07default\x0Cbundle_black\0\0\x01\x12hidden_in_commands\x02\x01\x17can_destroy_in_creative\x01\x03\x0Emax_stack_size\x02\x08\x0Ecreative_group\0\x03\x0Bframe_count\x02\x01\x0Fstacked_by_data\0\x03\ruse_animation\0\x01\rhand_equipped\0\x03\x06damage\0\x05\x0Cmining_speed\0\0\x80?\x01\x0Eshould_despawn\x01\x01\x04foil\0\x03\x11creative_category\x06\x03\x0Cuse_duration\0\x01\x0Eliquid_clipped\0\x03\x11enchantable_value\0\0\t\titem_tags\0\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\n\x16minecraft:storage_item\x01\x1Aallow_nested_storage_items\x01\t\x0Cbanned_items\n\x04\x08\x04name\x15minecraft:shulker_box\0\x08\x04name\x1Cminecraft:undyed_shulker_box\0\t\rallowed_items\0\0\x03\tmax_slots\x80\x01\0\n\x1Eminecraft:storage_weight_limit\x03\x10max_weight_limit\x80\x01\0\n!minecraft:storage_weight_modifier\x03\x16weight_in_storage_item\x08\0\0" } ; + pub const BLACK_BUNDLE : Self = Self { id : 264 , registry_key : "minecraft:black_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\x16minecraft:storage_item\t\rallowed_items\0\0\x03\tmax_slots\x80\x01\x01\x1Aallow_nested_storage_items\x01\t\x0Cbanned_items\n\x04\x08\x04name\x15minecraft:shulker_box\0\x08\x04name\x1Cminecraft:undyed_shulker_box\0\0\n\x1Eminecraft:storage_weight_limit\x03\x10max_weight_limit\x80\x01\0\t\titem_tags\0\0\n\x1Cminecraft:bundle_interaction\x03\x12num_viewable_slots\x18\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\n!minecraft:storage_weight_modifier\x03\x16weight_in_storage_item\x08\0\n\x0Fitem_properties\x01\x0Eshould_despawn\x01\x03\x0Emax_stack_size\x02\x01\x17can_destroy_in_creative\x01\x01\x04foil\0\x03\x11creative_category\x06\x03\ruse_animation\0\x01\x0Eallow_off_hand\0\x03\x11enchantable_value\0\x03\x06damage\0\x03\x0Bframe_count\x02\x01\rhand_equipped\0\x01\x12hidden_in_commands\x02\x01\x0Eliquid_clipped\0\n\x0Eminecraft:icon\n\x08textures\x08\x11bundle_open_front\x17bundle_black_open_front\x08\x10bundle_open_back\x16bundle_black_open_back\x08\x07default\x0Cbundle_black\0\0\x05\x0Cmining_speed\0\0\x80?\x08\x10enchantable_slot\x04none\x03\x0Cuse_duration\0\x08\x0Ecreative_group\0\x01\x0Fstacked_by_data\0\0\0" } ; pub const BLACK_CANDLE: Self = Self { id: -428, registry_key: "minecraft:black_candle", @@ -38577,7 +38577,7 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const BLUE_BUNDLE : Self = Self { id : 265 , registry_key : "minecraft:blue_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\x1Eminecraft:storage_weight_limit\x03\x10max_weight_limit\x80\x01\0\t\titem_tags\0\0\n\x0Fitem_properties\x01\rhand_equipped\0\x03\x06damage\0\x08\x10enchantable_slot\x04none\x01\x04foil\0\x01\x0Eliquid_clipped\0\x08\x0Ecreative_group\0\x01\x17can_destroy_in_creative\x01\x03\x0Bframe_count\x02\x03\ruse_animation\0\x01\x12hidden_in_commands\x02\x05\x0Cmining_speed\0\0\x80?\x01\x0Fstacked_by_data\0\x01\x0Eallow_off_hand\0\x03\x0Cuse_duration\0\x03\x11creative_category\x06\x03\x11enchantable_value\0\n\x0Eminecraft:icon\n\x08textures\x08\x10bundle_open_back\x15bundle_blue_open_back\x08\x11bundle_open_front\x16bundle_blue_open_front\x08\x07default\x0Bbundle_blue\0\0\x01\x0Eshould_despawn\x01\x03\x0Emax_stack_size\x02\0\n\x16minecraft:storage_item\t\x0Cbanned_items\n\x04\x08\x04name\x15minecraft:shulker_box\0\x08\x04name\x1Cminecraft:undyed_shulker_box\0\t\rallowed_items\0\0\x01\x1Aallow_nested_storage_items\x01\x03\tmax_slots\x80\x01\0\n\x1Cminecraft:bundle_interaction\x03\x12num_viewable_slots\x18\0\n!minecraft:storage_weight_modifier\x03\x16weight_in_storage_item\x08\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\0" } ; + pub const BLUE_BUNDLE : Self = Self { id : 265 , registry_key : "minecraft:blue_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\t\titem_tags\0\0\n\x16minecraft:storage_item\x03\tmax_slots\x80\x01\t\rallowed_items\0\0\t\x0Cbanned_items\n\x04\x08\x04name\x15minecraft:shulker_box\0\x08\x04name\x1Cminecraft:undyed_shulker_box\0\x01\x1Aallow_nested_storage_items\x01\0\n\x1Cminecraft:bundle_interaction\x03\x12num_viewable_slots\x18\0\n\x1Eminecraft:storage_weight_limit\x03\x10max_weight_limit\x80\x01\0\n!minecraft:storage_weight_modifier\x03\x16weight_in_storage_item\x08\0\n\x0Fitem_properties\x01\x0Eshould_despawn\x01\x01\x04foil\0\x03\x0Cuse_duration\0\x03\x0Bframe_count\x02\x05\x0Cmining_speed\0\0\x80?\x01\x0Eallow_off_hand\0\x03\x11creative_category\x06\x03\x06damage\0\x03\ruse_animation\0\x01\x17can_destroy_in_creative\x01\x08\x0Ecreative_group\0\x03\x11enchantable_value\0\x01\x12hidden_in_commands\x02\x01\x0Fstacked_by_data\0\x03\x0Emax_stack_size\x02\x08\x10enchantable_slot\x04none\x01\rhand_equipped\0\n\x0Eminecraft:icon\n\x08textures\x08\x07default\x0Bbundle_blue\x08\x10bundle_open_back\x15bundle_blue_open_back\x08\x11bundle_open_front\x16bundle_blue_open_front\0\0\x01\x0Eliquid_clipped\0\0\0" } ; pub const BLUE_CANDLE: Self = Self { id: -424, registry_key: "minecraft:blue_candle", @@ -38809,8 +38809,8 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const BREAD : Self = Self { id : 290 , registry_key : "minecraft:bread" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:food\x01\x0Ecan_always_eat\0\x08\x11using_converts_to\0\x03\ron_use_action\x01\x05\x13saturation_modifier\x9A\x99\x19?\x03\rcooldown_time\0\x03\tnutrition\n\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x08\rcooldown_type\0\0\x03\x16minecraft:use_duration@\0" } ; - pub const BREEZE_ROD : Self = Self { id : 281 , registry_key : "minecraft:breeze_rod" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\t\titem_tags\0\0\n\x17minecraft:hand_equipped\x01\x05value\x01\0\n\x16minecraft:display_name\x08\x05value\x14item.breeze_rod.name\0\n\x0Fitem_properties\x01\x12hidden_in_commands\x02\x08\x10enchantable_slot\x04none\x05\x0Cmining_speed\0\0\x80?\x03\x06damage\0\x01\rhand_equipped\x01\x03\x0Emax_stack_size\x80\x01\x03\x11creative_category\x08\x03\ruse_animation\0\x01\x0Eshould_despawn\x01\x01\x0Fstacked_by_data\0\x08\x0Ecreative_group\0\x01\x0Eallow_off_hand\0\x01\x0Eliquid_clipped\0\n\x0Eminecraft:icon\n\x08textures\x08\x07default\nbreeze_rod\0\0\x03\x11enchantable_value\0\x01\x04foil\0\x01\x17can_destroy_in_creative\x01\x03\x0Cuse_duration\0\x03\x0Bframe_count\x02\0\0" } ; + pub const BREAD : Self = Self { id : 290 , registry_key : "minecraft:bread" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:food\x08\x11using_converts_to\0\x03\tnutrition\n\x03\rcooldown_time\0\x03\ron_use_action\x01\x05\x13saturation_modifier\x9A\x99\x19?\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x08\rcooldown_type\0\x01\x0Ecan_always_eat\0\0\x03\x16minecraft:use_duration@\0" } ; + pub const BREEZE_ROD : Self = Self { id : 281 , registry_key : "minecraft:breeze_rod" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\x16minecraft:display_name\x08\x05value\x14item.breeze_rod.name\0\n\x17minecraft:hand_equipped\x01\x05value\x01\0\n\x0Fitem_properties\x01\x0Fstacked_by_data\0\x03\x11enchantable_value\0\x08\x10enchantable_slot\x04none\x03\ruse_animation\0\x01\rhand_equipped\x01\x03\x11creative_category\x08\x01\x12hidden_in_commands\x02\x05\x0Cmining_speed\0\0\x80?\x01\x0Eshould_despawn\x01\x03\x06damage\0\x03\x0Bframe_count\x02\x01\x17can_destroy_in_creative\x01\x01\x0Eallow_off_hand\0\x03\x0Cuse_duration\0\x01\x04foil\0\x03\x0Emax_stack_size\x80\x01\x08\x0Ecreative_group\0\n\x0Eminecraft:icon\n\x08textures\x08\x07default\nbreeze_rod\0\0\x01\x0Eliquid_clipped\0\0\t\titem_tags\0\0\0" } ; pub const BREEZE_SPAWN_EGG: Self = Self { id: 535, registry_key: "minecraft:breeze_spawn_egg", @@ -38874,7 +38874,7 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const BROWN_BUNDLE : Self = Self { id : 266 , registry_key : "minecraft:brown_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\n!minecraft:storage_weight_modifier\x03\x16weight_in_storage_item\x08\0\n\x16minecraft:storage_item\t\rallowed_items\0\0\t\x0Cbanned_items\n\x04\x08\x04name\x15minecraft:shulker_box\0\x08\x04name\x1Cminecraft:undyed_shulker_box\0\x03\tmax_slots\x80\x01\x01\x1Aallow_nested_storage_items\x01\0\t\titem_tags\0\0\n\x1Cminecraft:bundle_interaction\x03\x12num_viewable_slots\x18\0\n\x0Fitem_properties\x08\x0Ecreative_group\0\x01\x0Eallow_off_hand\0\x01\x0Fstacked_by_data\0\x01\x12hidden_in_commands\x02\x01\x04foil\0\x08\x10enchantable_slot\x04none\x03\x0Bframe_count\x02\x03\x11enchantable_value\0\x01\rhand_equipped\0\x03\x11creative_category\x06\x01\x0Eshould_despawn\x01\x03\x06damage\0\x03\x0Emax_stack_size\x02\x03\ruse_animation\0\x03\x0Cuse_duration\0\x01\x0Eliquid_clipped\0\x05\x0Cmining_speed\0\0\x80?\x01\x17can_destroy_in_creative\x01\n\x0Eminecraft:icon\n\x08textures\x08\x11bundle_open_front\x17bundle_brown_open_front\x08\x10bundle_open_back\x16bundle_brown_open_back\x08\x07default\x0Cbundle_brown\0\0\0\n\x1Eminecraft:storage_weight_limit\x03\x10max_weight_limit\x80\x01\0\0" } ; + pub const BROWN_BUNDLE : Self = Self { id : 266 , registry_key : "minecraft:brown_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\x0Fitem_properties\x03\ruse_animation\0\x03\x0Cuse_duration\0\x01\x0Eallow_off_hand\0\x08\x0Ecreative_group\0\x05\x0Cmining_speed\0\0\x80?\x01\x12hidden_in_commands\x02\x01\x0Fstacked_by_data\0\x08\x10enchantable_slot\x04none\x03\x06damage\0\x01\x0Eliquid_clipped\0\x01\x04foil\0\x01\x17can_destroy_in_creative\x01\x03\x0Emax_stack_size\x02\x03\x11enchantable_value\0\x03\x0Bframe_count\x02\x01\x0Eshould_despawn\x01\x03\x11creative_category\x06\x01\rhand_equipped\0\n\x0Eminecraft:icon\n\x08textures\x08\x11bundle_open_front\x17bundle_brown_open_front\x08\x07default\x0Cbundle_brown\x08\x10bundle_open_back\x16bundle_brown_open_back\0\0\0\n\x1Cminecraft:bundle_interaction\x03\x12num_viewable_slots\x18\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\n\x1Eminecraft:storage_weight_limit\x03\x10max_weight_limit\x80\x01\0\n!minecraft:storage_weight_modifier\x03\x16weight_in_storage_item\x08\0\n\x16minecraft:storage_item\t\rallowed_items\0\0\t\x0Cbanned_items\n\x04\x08\x04name\x15minecraft:shulker_box\0\x08\x04name\x1Cminecraft:undyed_shulker_box\0\x01\x1Aallow_nested_storage_items\x01\x03\tmax_slots\x80\x01\0\t\titem_tags\0\0\0" } ; pub const BROWN_CANDLE: Self = Self { id: -425, registry_key: "minecraft:brown_candle", @@ -39043,7 +39043,7 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const BUNDLE : Self = Self { id : 267 , registry_key : "minecraft:bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\x0Fitem_properties\n\x0Eminecraft:icon\n\x08textures\x08\x11bundle_open_front\x11bundle_open_front\x08\x07default\x06bundle\x08\x10bundle_open_back\x10bundle_open_back\0\0\x01\x0Fstacked_by_data\0\x03\x0Cuse_duration\0\x03\x11creative_category\x06\x03\x06damage\0\x03\x0Emax_stack_size\x02\x03\ruse_animation\0\x01\x12hidden_in_commands\x02\x08\x0Ecreative_group\0\x01\x04foil\0\x03\x11enchantable_value\0\x08\x10enchantable_slot\x04none\x03\x0Bframe_count\x02\x01\x0Eallow_off_hand\0\x01\rhand_equipped\0\x01\x0Eliquid_clipped\0\x01\x17can_destroy_in_creative\x01\x01\x0Eshould_despawn\x01\x05\x0Cmining_speed\0\0\x80?\0\n\x1Cminecraft:bundle_interaction\x03\x12num_viewable_slots\x18\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\t\titem_tags\0\0\n\x16minecraft:storage_item\x03\tmax_slots\x80\x01\x01\x1Aallow_nested_storage_items\x01\t\x0Cbanned_items\n\x04\x08\x04name\x15minecraft:shulker_box\0\x08\x04name\x1Cminecraft:undyed_shulker_box\0\t\rallowed_items\0\0\0\n\x1Eminecraft:storage_weight_limit\x03\x10max_weight_limit\x80\x01\0\n!minecraft:storage_weight_modifier\x03\x16weight_in_storage_item\x08\0\0" } ; + pub const BUNDLE : Self = Self { id : 267 , registry_key : "minecraft:bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\x16minecraft:storage_item\x01\x1Aallow_nested_storage_items\x01\t\rallowed_items\0\0\x03\tmax_slots\x80\x01\t\x0Cbanned_items\n\x04\x08\x04name\x15minecraft:shulker_box\0\x08\x04name\x1Cminecraft:undyed_shulker_box\0\0\n\x1Cminecraft:bundle_interaction\x03\x12num_viewable_slots\x18\0\n\x1Eminecraft:storage_weight_limit\x03\x10max_weight_limit\x80\x01\0\n!minecraft:storage_weight_modifier\x03\x16weight_in_storage_item\x08\0\t\titem_tags\0\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\n\x0Fitem_properties\x01\x17can_destroy_in_creative\x01\x08\x0Ecreative_group\0\x03\x0Bframe_count\x02\x08\x10enchantable_slot\x04none\x01\rhand_equipped\0\x01\x0Eallow_off_hand\0\n\x0Eminecraft:icon\n\x08textures\x08\x07default\x06bundle\x08\x10bundle_open_back\x10bundle_open_back\x08\x11bundle_open_front\x11bundle_open_front\0\0\x01\x0Eshould_despawn\x01\x03\x0Cuse_duration\0\x01\x0Eliquid_clipped\0\x01\x12hidden_in_commands\x02\x03\x0Emax_stack_size\x02\x03\x11creative_category\x06\x03\x06damage\0\x01\x04foil\0\x03\ruse_animation\0\x03\x11enchantable_value\0\x01\x0Fstacked_by_data\0\x05\x0Cmining_speed\0\0\x80?\0\0" } ; pub const BURN_POTTERY_SHERD: Self = Self { id: 704, registry_key: "minecraft:burn_pottery_sherd", @@ -39107,7 +39107,7 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const CAMERA : Self = Self { id : 636 , registry_key : "minecraft:camera" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\x08\x0Fminecraft:block\x10minecraft:camera\n\x10minecraft:camera\x05\x13slide_away_duration\xCD\xCCL>\x05\x10picture_duration\0\0\x80?\x05\x14shutter_screen_ratio\0\0\0?\x05\x13black_bars_duration\xCD\xCCL>\x05\x17black_bars_screen_ratio\n\xD7\xA3=\x05\x10shutter_duration\xCD\xCCL>\0\x03\x16minecraft:use_duration\xC0\x9A\x0C\0" } ; + pub const CAMERA : Self = Self { id : 636 , registry_key : "minecraft:camera" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x10minecraft:camera\x05\x13black_bars_duration\xCD\xCCL>\x05\x10shutter_duration\xCD\xCCL>\x05\x14shutter_screen_ratio\0\0\0?\x05\x10picture_duration\0\0\x80?\x05\x13slide_away_duration\xCD\xCCL>\x05\x17black_bars_screen_ratio\n\xD7\xA3=\0\x03\x16minecraft:use_duration\xC0\x9A\x0C\x08\x0Fminecraft:block\x10minecraft:camera\0" } ; pub const CAMPFIRE: Self = Self { id: 630, registry_key: "minecraft:campfire", @@ -39136,7 +39136,7 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const CARROT : Self = Self { id : 308 , registry_key : "minecraft:carrot" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:seed\x08\x0Bcrop_result\x11minecraft:carrots\x08\rplant_at_face\x02up\x01\x1Aplant_at_any_solid_surface\0\t\x08plant_at\x08\x02\x12minecraft:farmland\0\x03\x16minecraft:use_duration@\n\x0Eminecraft:food\x08\x11using_converts_to\0\x01\x0Ecan_always_eat\0\x03\ron_use_action\x01\x05\x13saturation_modifier\x9A\x99\x19?\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x03\rcooldown_time\0\x08\rcooldown_type\0\x03\tnutrition\x06\0\0" } ; + pub const CARROT : Self = Self { id : 308 , registry_key : "minecraft:carrot" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:seed\x08\rplant_at_face\x02up\t\x08plant_at\x08\x02\x12minecraft:farmland\x08\x0Bcrop_result\x11minecraft:carrots\x01\x1Aplant_at_any_solid_surface\0\0\x03\x16minecraft:use_duration@\n\x0Eminecraft:food\x08\x11using_converts_to\0\x05\x13saturation_modifier\x9A\x99\x19?\x01\x0Ecan_always_eat\0\x03\tnutrition\x06\x03\ron_use_action\x01\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x03\rcooldown_time\0\x08\rcooldown_type\0\0\0" } ; pub const CARROT_ON_A_STICK: Self = Self { id: 556, registry_key: "minecraft:carrot_on_a_stick", @@ -39438,7 +39438,7 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const CHICKEN : Self = Self { id : 304 , registry_key : "minecraft:chicken" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:food\x03\rcooldown_time\0\x01\x0Ecan_always_eat\0\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x03\ron_use_action\x01\x05\x13saturation_modifier\x9A\x99\x99>\x03\tnutrition\x04\x08\rcooldown_type\0\t\x07effects\n\x02\x05\x06chance\x9A\x99\x99>\x08\x04name\x06hunger\x03\tamplifier\0\x03\x08duration<\x08\rdescriptionId\rpotion.hunger\x03\x02id\"\0\x08\x11using_converts_to\0\0\x03\x16minecraft:use_duration@\0" } ; + pub const CHICKEN : Self = Self { id : 304 , registry_key : "minecraft:chicken" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:food\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x01\x0Ecan_always_eat\0\t\x07effects\n\x02\x03\tamplifier\0\x03\x08duration<\x03\x02id\"\x08\x04name\x06hunger\x05\x06chance\x9A\x99\x99>\x08\rdescriptionId\rpotion.hunger\0\x03\ron_use_action\x01\x08\rcooldown_type\0\x05\x13saturation_modifier\x9A\x99\x99>\x03\tnutrition\x04\x08\x11using_converts_to\0\x03\rcooldown_time\0\0\x03\x16minecraft:use_duration@\0" } ; pub const CHICKEN_SPAWN_EGG: Self = Self { id: 468, registry_key: "minecraft:chicken_spawn_egg", @@ -39558,7 +39558,7 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const CHORUS_FRUIT : Self = Self { id : 597 , registry_key : "minecraft:chorus_fruit" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:food\x05\x13saturation_modifier\x9A\x99\x99>\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x03\rcooldown_time(\x08\rcooldown_type\x0Bchorusfruit\x03\tnutrition\x08\x01\x0Ecan_always_eat\x01\x03\ron_use_action\0\x08\x11using_converts_to\0\0\x03\x16minecraft:use_duration@\0" } ; + pub const CHORUS_FRUIT : Self = Self { id : 597 , registry_key : "minecraft:chorus_fruit" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\x03\x16minecraft:use_duration@\n\x0Eminecraft:food\x01\x0Ecan_always_eat\x01\x08\rcooldown_type\x0Bchorusfruit\x03\rcooldown_time(\x03\ron_use_action\0\x03\tnutrition\x08\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x08\x11using_converts_to\0\x05\x13saturation_modifier\x9A\x99\x99>\0\0" } ; pub const CHORUS_PLANT: Self = Self { id: 240, registry_key: "minecraft:chorus_plant", @@ -39783,7 +39783,7 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const COD : Self = Self { id : 293 , registry_key : "minecraft:cod" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\x01\x19minecraft:stacked_by_data\x01\x03\x16minecraft:use_duration@\n\x0Eminecraft:food\x03\rcooldown_time\0\x03\tnutrition\x04\x08\rcooldown_type\0\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x01\x0Ecan_always_eat\0\x08\x11using_converts_to\0\x03\ron_use_action\x01\x05\x13saturation_modifier\xCD\xCC\xCC=\0\0" } ; + pub const COD : Self = Self { id : 293 , registry_key : "minecraft:cod" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:food\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x08\x11using_converts_to\0\x03\ron_use_action\x01\x03\tnutrition\x04\x01\x0Ecan_always_eat\0\x05\x13saturation_modifier\xCD\xCC\xCC=\x03\rcooldown_time\0\x08\rcooldown_type\0\0\x01\x19minecraft:stacked_by_data\x01\x03\x16minecraft:use_duration@\0" } ; pub const COD_BUCKET: Self = Self { id: 396, registry_key: "minecraft:cod_bucket", @@ -39910,14 +39910,14 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const COOKED_BEEF : Self = Self { id : 303 , registry_key : "minecraft:cooked_beef" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:food\x05\x13saturation_modifier\xCD\xCCL?\x03\ron_use_action\x01\x01\x0Ecan_always_eat\0\x08\rcooldown_type\0\x03\tnutrition\x10\x03\rcooldown_time\0\x08\x11using_converts_to\0\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\0\x03\x16minecraft:use_duration@\0" } ; - pub const COOKED_CHICKEN : Self = Self { id : 305 , registry_key : "minecraft:cooked_chicken" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:food\x03\tnutrition\x0C\x08\rcooldown_type\0\x05\x13saturation_modifier\x9A\x99\x19?\x03\rcooldown_time\0\x08\x11using_converts_to\0\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x03\ron_use_action\x01\x01\x0Ecan_always_eat\0\0\x03\x16minecraft:use_duration@\0" } ; - pub const COOKED_COD : Self = Self { id : 297 , registry_key : "minecraft:cooked_cod" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:food\x03\rcooldown_time\0\x03\tnutrition\n\x08\rcooldown_type\0\x05\x13saturation_modifier\x9A\x99\x19?\x03\ron_use_action\x01\x01\x0Ecan_always_eat\0\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x08\x11using_converts_to\0\0\x01\x19minecraft:stacked_by_data\x01\x03\x16minecraft:use_duration@\0" } ; - pub const COOKED_MUTTON : Self = Self { id : 590 , registry_key : "minecraft:cooked_mutton" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:food\x03\tnutrition\x0C\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x08\x11using_converts_to\0\x08\rcooldown_type\0\x03\rcooldown_time\0\x01\x0Ecan_always_eat\0\x03\ron_use_action\x01\x05\x13saturation_modifier\xCD\xCCL?\0\x03\x16minecraft:use_duration@\0" } ; - pub const COOKED_PORKCHOP : Self = Self { id : 292 , registry_key : "minecraft:cooked_porkchop" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:food\x03\tnutrition\x10\x03\rcooldown_time\0\x08\x11using_converts_to\0\x08\rcooldown_type\0\x01\x0Ecan_always_eat\0\x03\ron_use_action\x01\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x05\x13saturation_modifier\xCD\xCCL?\0\x03\x16minecraft:use_duration@\0" } ; - pub const COOKED_RABBIT : Self = Self { id : 318 , registry_key : "minecraft:cooked_rabbit" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\x03\x16minecraft:use_duration@\n\x0Eminecraft:food\x03\tnutrition\n\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x05\x13saturation_modifier\x9A\x99\x19?\x08\x11using_converts_to\0\x01\x0Ecan_always_eat\0\x08\rcooldown_type\0\x03\rcooldown_time\0\x03\ron_use_action\x01\0\0" } ; - pub const COOKED_SALMON : Self = Self { id : 298 , registry_key : "minecraft:cooked_salmon" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:food\x08\rcooldown_type\0\x03\rcooldown_time\0\x01\x0Ecan_always_eat\0\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x03\ron_use_action\x01\x03\tnutrition\x0C\x05\x13saturation_modifier\xCD\xCCL?\x08\x11using_converts_to\0\0\x01\x19minecraft:stacked_by_data\x01\x03\x16minecraft:use_duration@\0" } ; - pub const COOKIE : Self = Self { id : 300 , registry_key : "minecraft:cookie" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:food\x05\x13saturation_modifier\xCD\xCC\xCC=\x08\rcooldown_type\0\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x03\ron_use_action\x01\x08\x11using_converts_to\0\x03\tnutrition\x04\x01\x0Ecan_always_eat\0\x03\rcooldown_time\0\0\x03\x16minecraft:use_duration@\0" } ; + pub const COOKED_BEEF : Self = Self { id : 303 , registry_key : "minecraft:cooked_beef" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:food\x03\rcooldown_time\0\x08\x11using_converts_to\0\x05\x13saturation_modifier\xCD\xCCL?\x08\rcooldown_type\0\x03\ron_use_action\x01\x03\tnutrition\x10\x01\x0Ecan_always_eat\0\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\0\x03\x16minecraft:use_duration@\0" } ; + pub const COOKED_CHICKEN : Self = Self { id : 305 , registry_key : "minecraft:cooked_chicken" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:food\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x01\x0Ecan_always_eat\0\x03\ron_use_action\x01\x08\x11using_converts_to\0\x03\tnutrition\x0C\x08\rcooldown_type\0\x03\rcooldown_time\0\x05\x13saturation_modifier\x9A\x99\x19?\0\x03\x16minecraft:use_duration@\0" } ; + pub const COOKED_COD : Self = Self { id : 297 , registry_key : "minecraft:cooked_cod" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\x01\x19minecraft:stacked_by_data\x01\n\x0Eminecraft:food\x03\rcooldown_time\0\x05\x13saturation_modifier\x9A\x99\x19?\x01\x0Ecan_always_eat\0\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x08\rcooldown_type\0\x03\tnutrition\n\x08\x11using_converts_to\0\x03\ron_use_action\x01\0\x03\x16minecraft:use_duration@\0" } ; + pub const COOKED_MUTTON : Self = Self { id : 590 , registry_key : "minecraft:cooked_mutton" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\x03\x16minecraft:use_duration@\n\x0Eminecraft:food\x08\rcooldown_type\0\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x03\tnutrition\x0C\x03\rcooldown_time\0\x01\x0Ecan_always_eat\0\x05\x13saturation_modifier\xCD\xCCL?\x08\x11using_converts_to\0\x03\ron_use_action\x01\0\0" } ; + pub const COOKED_PORKCHOP : Self = Self { id : 292 , registry_key : "minecraft:cooked_porkchop" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:food\x05\x13saturation_modifier\xCD\xCCL?\x08\rcooldown_type\0\x03\tnutrition\x10\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x03\rcooldown_time\0\x01\x0Ecan_always_eat\0\x03\ron_use_action\x01\x08\x11using_converts_to\0\0\x03\x16minecraft:use_duration@\0" } ; + pub const COOKED_RABBIT : Self = Self { id : 318 , registry_key : "minecraft:cooked_rabbit" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:food\x01\x0Ecan_always_eat\0\x08\rcooldown_type\0\x05\x13saturation_modifier\x9A\x99\x19?\x03\rcooldown_time\0\x03\tnutrition\n\x03\ron_use_action\x01\x08\x11using_converts_to\0\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\0\x03\x16minecraft:use_duration@\0" } ; + pub const COOKED_SALMON : Self = Self { id : 298 , registry_key : "minecraft:cooked_salmon" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\x03\x16minecraft:use_duration@\n\x0Eminecraft:food\x03\rcooldown_time\0\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x08\x11using_converts_to\0\x01\x0Ecan_always_eat\0\x03\tnutrition\x0C\x03\ron_use_action\x01\x08\rcooldown_type\0\x05\x13saturation_modifier\xCD\xCCL?\0\x01\x19minecraft:stacked_by_data\x01\0" } ; + pub const COOKIE : Self = Self { id : 300 , registry_key : "minecraft:cookie" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:food\x03\ron_use_action\x01\x05\x13saturation_modifier\xCD\xCC\xCC=\x01\x0Ecan_always_eat\0\x08\rcooldown_type\0\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x03\tnutrition\x04\x08\x11using_converts_to\0\x03\rcooldown_time\0\0\x03\x16minecraft:use_duration@\0" } ; pub const COPPER_AXE: Self = Self { id: 776, registry_key: "minecraft:copper_axe", @@ -40079,7 +40079,7 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const COPPER_SPEAR : Self = Self { id : 257 , registry_key : "minecraft:copper_spear" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\x10minecraft:damage\x02\x05value\x02\0\0\n\x12minecraft:cooldown\x05\x08duration\x9A\x99Y?\x08\x04type\x06attack\x08\x08category\x05spear\0\n\x0Fitem_properties\x08\x10enchantable_slot\x0Bmelee_spear\x03\x06damage\x04\x08\x0Ecreative_group\0\x01\x04foil\0\x01\x12hidden_in_commands\x02\x03\x0Bframe_count\x02\x01\x0Fstacked_by_data\0\x01\x0Eshould_despawn\x01\x03\ruse_animation\0\x01\x0Eallow_off_hand\0\x03\x11creative_category\x06\x05\x0Cmining_speed\0\0\x80?\n\x0Eminecraft:icon\n\x08textures\x08\x07default\x0Ccopper_spear\0\0\x03\x0Cuse_duration\x80\xE4\xAF\x01\x03\x11enchantable_value\x1A\x01\x17can_destroy_in_creative\x01\x01\x0Eliquid_clipped\0\x03\x0Emax_stack_size\x02\x01\rhand_equipped\x01\0\n\x17minecraft:hand_equipped\x01\x05value\x01\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\n\x19minecraft:piercing_weapon\x05\rhitbox_margin\0\0\x80>\n\x05reach\x05\x03min\0\0\0@\x05\x03max\0\0\x90@\0\n\x0Ecreative_reach\x05\x03min\0\0\0@\x05\x03max\0\0\xF0@\0\0\n\x16minecraft:swing_sounds\x08\nattack_hit\x1Citem.copper_spear.attack_hit\x08\x0Battack_miss\x1Ditem.copper_spear.attack_miss\0\n\x18minecraft:swing_duration\x05\x05value\x9A\x99Y?\0\n\x14minecraft:durability\n\rdamage_chance\x03\x03max\xC8\x01\x03\x03min\0\0\x03\x0Emax_durability\xFC\x02\0\n\x17minecraft:use_modifiers\x01\x0Femit_vibrations\0\x08\x0Bstart_using\x06always\x08\x0Bstart_sound\x15item.copper_spear.use\x05\x0Cuse_duration\0\xA0\x8CG\x05\x11movement_modifier\0\0\x80?\0\n\x0Eminecraft:tags\t\x04tags\x08\x04\x15minecraft:copper_tier\x12minecraft:is_spear\0\t\titem_tags\x08\x04\x15minecraft:copper_tier\x12minecraft:is_spear\n\x18minecraft:kinetic_weapon\n\x18minecraft:kinetic_weapon\n\x05reach\x05\x03max\0\0\x90@\x05\x03min\0\0\0@\0\n\x13dismount_conditions\x02\x0Cmax_durationP\0\x05\x12min_relative_speed\0\0\0\0\x05\tmin_speed\0\0@A\0\n\x14knockback_conditions\x02\x0Cmax_duration\xA5\0\x05\x12min_relative_speed\0\0\0\0\x05\tmin_speed33\xA3@\0\x05\rhitbox_margin\0\0\x80>\x05\x0Fdamage_modifier\0\0\0\0\x05\x11damage_multiplier\x85\xEBQ?\n\x0Ecreative_reach\x05\x03min\0\0\0@\x05\x03max\0\0\xF0@\0\n\x11damage_conditions\x02\x0Cmax_duration\xFA\0\x05\x12min_relative_speed33\x93@\x05\tmin_speed\0\0\0\0\0\x02\x05delay\r\0\0\0\n\x14minecraft:repairable\t\x0Crepair_items\n\x04\n\rrepair_amount\x08\nexpression)context.other->query.remaining_durability\x02\x07version\r\0\0\t\x05items\n\x02\x08\x04name\x16minecraft:copper_spear\0\0\t\x05items\n\x02\x08\x04name\x16minecraft:copper_ingot\0\n\rrepair_amount\x02\x07version\r\0\x08\nexpression\x1Bquery.max_durability * 0.25\0\0\0\n\x16minecraft:display_name\x08\x05value\x16item.copper_spear.name\0\n\x15minecraft:enchantable\x01\x05value\r\x08\x04slot\x0Bmelee_spear\0\0" } ; + pub const COPPER_SPEAR : Self = Self { id : 257 , registry_key : "minecraft:copper_spear" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\x0Fitem_properties\x03\ruse_animation\0\n\x0Eminecraft:icon\n\x08textures\x08\x07default\x0Ccopper_spear\0\0\x08\x10enchantable_slot\x0Bmelee_spear\x08\x0Ecreative_group\0\x05\x0Cmining_speed\0\0\x80?\x01\x0Eshould_despawn\x01\x03\x11enchantable_value\x1A\x01\x0Eallow_off_hand\0\x03\x0Emax_stack_size\x02\x03\x0Bframe_count\x02\x01\x04foil\0\x03\x11creative_category\x06\x01\x12hidden_in_commands\x02\x01\x0Fstacked_by_data\0\x01\x0Eliquid_clipped\0\x03\x06damage\x04\x01\rhand_equipped\x01\x01\x17can_destroy_in_creative\x01\x03\x0Cuse_duration\x80\xE4\xAF\x01\0\n\x14minecraft:repairable\t\x0Crepair_items\n\x04\t\x05items\n\x02\x08\x04name\x16minecraft:copper_spear\0\n\rrepair_amount\x08\nexpression)context.other->query.remaining_durability\x02\x07version\r\0\0\0\n\rrepair_amount\x02\x07version\r\0\x08\nexpression\x1Bquery.max_durability * 0.25\0\t\x05items\n\x02\x08\x04name\x16minecraft:copper_ingot\0\0\0\n\x16minecraft:display_name\x08\x05value\x16item.copper_spear.name\0\n\x15minecraft:enchantable\x08\x04slot\x0Bmelee_spear\x01\x05value\r\0\t\titem_tags\x08\x04\x15minecraft:copper_tier\x12minecraft:is_spear\n\x12minecraft:cooldown\x08\x04type\x06attack\x08\x08category\x05spear\x05\x08duration\x9A\x99Y?\0\n\x0Eminecraft:tags\t\x04tags\x08\x04\x15minecraft:copper_tier\x12minecraft:is_spear\0\n\x14minecraft:durability\n\rdamage_chance\x03\x03min\0\x03\x03max\xC8\x01\0\x03\x0Emax_durability\xFC\x02\0\n\x10minecraft:damage\x02\x05value\x02\0\0\n\x17minecraft:hand_equipped\x01\x05value\x01\0\n\x16minecraft:swing_sounds\x08\nattack_hit\x1Citem.copper_spear.attack_hit\x08\x0Battack_miss\x1Ditem.copper_spear.attack_miss\0\n\x17minecraft:use_modifiers\x08\x0Bstart_using\x06always\x05\x0Cuse_duration\0\xA0\x8CG\x01\x0Femit_vibrations\0\x05\x11movement_modifier\0\0\x80?\x08\x0Bstart_sound\x15item.copper_spear.use\0\n\x19minecraft:piercing_weapon\n\x0Ecreative_reach\x05\x03max\0\0\xF0@\x05\x03min\0\0\0@\0\x05\rhitbox_margin\0\0\x80>\n\x05reach\x05\x03min\0\0\0@\x05\x03max\0\0\x90@\0\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\n\x18minecraft:kinetic_weapon\n\x18minecraft:kinetic_weapon\n\x05reach\x05\x03min\0\0\0@\x05\x03max\0\0\x90@\0\x02\x05delay\r\0\n\x14knockback_conditions\x05\tmin_speed33\xA3@\x05\x12min_relative_speed\0\0\0\0\x02\x0Cmax_duration\xA5\0\0\x05\rhitbox_margin\0\0\x80>\n\x0Ecreative_reach\x05\x03min\0\0\0@\x05\x03max\0\0\xF0@\0\n\x11damage_conditions\x05\x12min_relative_speed33\x93@\x02\x0Cmax_duration\xFA\0\x05\tmin_speed\0\0\0\0\0\x05\x0Fdamage_modifier\0\0\0\0\x05\x11damage_multiplier\x85\xEBQ?\n\x13dismount_conditions\x02\x0Cmax_durationP\0\x05\tmin_speed\0\0@A\x05\x12min_relative_speed\0\0\0\0\0\0\0\n\x18minecraft:swing_duration\x05\x05value\x9A\x99Y?\0\0" } ; pub const COPPER_SWORD: Self = Self { id: 773, registry_key: "minecraft:copper_sword", @@ -40444,7 +40444,7 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const CYAN_BUNDLE : Self = Self { id : 268 , registry_key : "minecraft:cyan_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\x1Cminecraft:bundle_interaction\x03\x12num_viewable_slots\x18\0\n\x0Fitem_properties\x03\ruse_animation\0\x08\x10enchantable_slot\x04none\x01\rhand_equipped\0\x01\x04foil\0\x03\x0Cuse_duration\0\x03\x0Emax_stack_size\x02\x03\x11creative_category\x06\x03\x0Bframe_count\x02\x01\x0Eliquid_clipped\0\x05\x0Cmining_speed\0\0\x80?\x01\x0Eshould_despawn\x01\x01\x12hidden_in_commands\x02\n\x0Eminecraft:icon\n\x08textures\x08\x07default\x0Bbundle_cyan\x08\x11bundle_open_front\x16bundle_cyan_open_front\x08\x10bundle_open_back\x15bundle_cyan_open_back\0\0\x01\x0Eallow_off_hand\0\x08\x0Ecreative_group\0\x01\x17can_destroy_in_creative\x01\x03\x06damage\0\x03\x11enchantable_value\0\x01\x0Fstacked_by_data\0\0\n\x1Eminecraft:storage_weight_limit\x03\x10max_weight_limit\x80\x01\0\n!minecraft:storage_weight_modifier\x03\x16weight_in_storage_item\x08\0\t\titem_tags\0\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\n\x16minecraft:storage_item\t\rallowed_items\0\0\x03\tmax_slots\x80\x01\t\x0Cbanned_items\n\x04\x08\x04name\x15minecraft:shulker_box\0\x08\x04name\x1Cminecraft:undyed_shulker_box\0\x01\x1Aallow_nested_storage_items\x01\0\0" } ; + pub const CYAN_BUNDLE : Self = Self { id : 268 , registry_key : "minecraft:cyan_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\x1Eminecraft:storage_weight_limit\x03\x10max_weight_limit\x80\x01\0\n!minecraft:storage_weight_modifier\x03\x16weight_in_storage_item\x08\0\n\x1Cminecraft:bundle_interaction\x03\x12num_viewable_slots\x18\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\n\x0Fitem_properties\x01\x0Eliquid_clipped\0\x01\x0Fstacked_by_data\0\x01\x17can_destroy_in_creative\x01\x03\x0Cuse_duration\0\x01\x0Eallow_off_hand\0\x03\x06damage\0\x03\x11creative_category\x06\x01\x12hidden_in_commands\x02\x01\rhand_equipped\0\x05\x0Cmining_speed\0\0\x80?\x01\x0Eshould_despawn\x01\x03\ruse_animation\0\x08\x0Ecreative_group\0\x08\x10enchantable_slot\x04none\x03\x0Emax_stack_size\x02\x01\x04foil\0\x03\x0Bframe_count\x02\n\x0Eminecraft:icon\n\x08textures\x08\x11bundle_open_front\x16bundle_cyan_open_front\x08\x07default\x0Bbundle_cyan\x08\x10bundle_open_back\x15bundle_cyan_open_back\0\0\x03\x11enchantable_value\0\0\t\titem_tags\0\0\n\x16minecraft:storage_item\x03\tmax_slots\x80\x01\x01\x1Aallow_nested_storage_items\x01\t\rallowed_items\0\0\t\x0Cbanned_items\n\x04\x08\x04name\x15minecraft:shulker_box\0\x08\x04name\x1Cminecraft:undyed_shulker_box\0\0\0" } ; pub const CYAN_CANDLE: Self = Self { id: -422, registry_key: "minecraft:cyan_candle", @@ -41159,7 +41159,7 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const DIAMOND_SPEAR : Self = Self { id : 258 , registry_key : "minecraft:diamond_spear" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\x12minecraft:cooldown\x08\x04type\x06attack\x05\x08durationff\x86?\x08\x08category\x05spear\0\n\x16minecraft:swing_sounds\x08\nattack_hit\x1Ditem.diamond_spear.attack_hit\x08\x0Battack_miss\x1Eitem.diamond_spear.attack_miss\0\n\x16minecraft:display_name\x08\x05value\x17item.diamond_spear.name\0\n\x17minecraft:hand_equipped\x01\x05value\x01\0\n\x18minecraft:swing_duration\x05\x05valueff\x86?\0\n\x0Fitem_properties\x01\x17can_destroy_in_creative\x01\x01\x0Eliquid_clipped\0\x01\x0Fstacked_by_data\0\x03\x06damage\x08\n\x0Eminecraft:icon\n\x08textures\x08\x07default\rdiamond_spear\0\0\x01\x12hidden_in_commands\x02\x03\ruse_animation\0\x08\x0Ecreative_group\0\x03\x0Cuse_duration\x80\xE4\xAF\x01\x01\rhand_equipped\x01\x03\x11creative_category\x06\x03\x0Emax_stack_size\x02\x08\x10enchantable_slot\x0Bmelee_spear\x03\x0Bframe_count\x02\x01\x0Eallow_off_hand\0\x03\x11enchantable_value\x14\x01\x0Eshould_despawn\x01\x01\x04foil\0\x05\x0Cmining_speed\0\0\x80?\0\n\x0Eminecraft:tags\t\x04tags\x08\x06\x16minecraft:diamond_tier\x1Dminecraft:transformable_items\x12minecraft:is_spear\0\n\x14minecraft:repairable\t\x0Crepair_items\n\x04\n\rrepair_amount\x02\x07version\r\0\x08\nexpression)context.other->query.remaining_durability\0\t\x05items\n\x02\x08\x04name\x17minecraft:diamond_spear\0\0\t\x05items\n\x02\x08\x04name\x11minecraft:diamond\0\n\rrepair_amount\x08\nexpression\x1Bquery.max_durability * 0.25\x02\x07version\r\0\0\0\0\n\x10minecraft:damage\x02\x05value\x04\0\0\n\x15minecraft:enchantable\x01\x05value\n\x08\x04slot\x0Bmelee_spear\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\t\titem_tags\x08\x06\x16minecraft:diamond_tier\x1Dminecraft:transformable_items\x12minecraft:is_spear\n\x14minecraft:durability\x03\x0Emax_durability\xB0\x18\n\rdamage_chance\x03\x03max\xC8\x01\x03\x03min\0\0\0\n\x19minecraft:piercing_weapon\n\x05reach\x05\x03max\0\0\x90@\x05\x03min\0\0\0@\0\n\x0Ecreative_reach\x05\x03max\0\0\xF0@\x05\x03min\0\0\0@\0\x05\rhitbox_margin\0\0\x80>\0\n\x18minecraft:kinetic_weapon\n\x18minecraft:kinetic_weapon\x05\rhitbox_margin\0\0\x80>\n\x0Ecreative_reach\x05\x03min\0\0\0@\x05\x03max\0\0\xF0@\0\n\x11damage_conditions\x05\tmin_speed\0\0\0\0\x05\x12min_relative_speed33\x93@\x02\x0Cmax_duration\xC8\0\0\n\x14knockback_conditions\x05\tmin_speed33\xA3@\x02\x0Cmax_duration\x82\0\x05\x12min_relative_speed\0\0\0\0\0\x05\x11damage_multiplier\x9A\x99\x89?\n\x05reach\x05\x03max\0\0\x90@\x05\x03min\0\0\0@\0\x05\x0Fdamage_modifier\0\0\0\0\x02\x05delay\n\0\n\x13dismount_conditions\x02\x0Cmax_duration<\0\x05\x12min_relative_speed\0\0\0\0\x05\tmin_speed\0\0 A\0\0\0\n\x17minecraft:use_modifiers\x08\x0Bstart_sound\x16item.diamond_spear.use\x08\x0Bstart_using\x06always\x05\x11movement_modifier\0\0\x80?\x01\x0Femit_vibrations\0\x05\x0Cuse_duration\0\xA0\x8CG\0\0" } ; + pub const DIAMOND_SPEAR : Self = Self { id : 258 , registry_key : "minecraft:diamond_spear" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\x0Fitem_properties\x03\x0Cuse_duration\x80\xE4\xAF\x01\x01\x0Eallow_off_hand\0\x03\x0Emax_stack_size\x02\x03\ruse_animation\0\x01\x04foil\0\x03\x11enchantable_value\x14\x01\x0Fstacked_by_data\0\x03\x11creative_category\x06\x03\x0Bframe_count\x02\x01\x0Eliquid_clipped\0\x01\x0Eshould_despawn\x01\x01\x17can_destroy_in_creative\x01\x08\x0Ecreative_group\0\x08\x10enchantable_slot\x0Bmelee_spear\x01\rhand_equipped\x01\x03\x06damage\x08\x01\x12hidden_in_commands\x02\x05\x0Cmining_speed\0\0\x80?\n\x0Eminecraft:icon\n\x08textures\x08\x07default\rdiamond_spear\0\0\0\n\x10minecraft:damage\x02\x05value\x04\0\0\n\x17minecraft:use_modifiers\x08\x0Bstart_sound\x16item.diamond_spear.use\x05\x11movement_modifier\0\0\x80?\x01\x0Femit_vibrations\0\x08\x0Bstart_using\x06always\x05\x0Cuse_duration\0\xA0\x8CG\0\n\x0Eminecraft:tags\t\x04tags\x08\x06\x16minecraft:diamond_tier\x1Dminecraft:transformable_items\x12minecraft:is_spear\0\t\titem_tags\x08\x06\x16minecraft:diamond_tier\x1Dminecraft:transformable_items\x12minecraft:is_spear\n\x19minecraft:piercing_weapon\x05\rhitbox_margin\0\0\x80>\n\x05reach\x05\x03max\0\0\x90@\x05\x03min\0\0\0@\0\n\x0Ecreative_reach\x05\x03max\0\0\xF0@\x05\x03min\0\0\0@\0\0\n\x18minecraft:swing_duration\x05\x05valueff\x86?\0\n\x18minecraft:kinetic_weapon\n\x18minecraft:kinetic_weapon\n\x14knockback_conditions\x02\x0Cmax_duration\x82\0\x05\x12min_relative_speed\0\0\0\0\x05\tmin_speed33\xA3@\0\x05\rhitbox_margin\0\0\x80>\n\x0Ecreative_reach\x05\x03max\0\0\xF0@\x05\x03min\0\0\0@\0\x05\x0Fdamage_modifier\0\0\0\0\n\x11damage_conditions\x02\x0Cmax_duration\xC8\0\x05\tmin_speed\0\0\0\0\x05\x12min_relative_speed33\x93@\0\x02\x05delay\n\0\n\x05reach\x05\x03min\0\0\0@\x05\x03max\0\0\x90@\0\x05\x11damage_multiplier\x9A\x99\x89?\n\x13dismount_conditions\x05\x12min_relative_speed\0\0\0\0\x02\x0Cmax_duration<\0\x05\tmin_speed\0\0 A\0\0\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\n\x15minecraft:enchantable\x08\x04slot\x0Bmelee_spear\x01\x05value\n\0\n\x16minecraft:display_name\x08\x05value\x17item.diamond_spear.name\0\n\x16minecraft:swing_sounds\x08\nattack_hit\x1Ditem.diamond_spear.attack_hit\x08\x0Battack_miss\x1Eitem.diamond_spear.attack_miss\0\n\x12minecraft:cooldown\x08\x08category\x05spear\x05\x08durationff\x86?\x08\x04type\x06attack\0\n\x14minecraft:durability\n\rdamage_chance\x03\x03min\0\x03\x03max\xC8\x01\0\x03\x0Emax_durability\xB0\x18\0\n\x14minecraft:repairable\t\x0Crepair_items\n\x04\n\rrepair_amount\x02\x07version\r\0\x08\nexpression)context.other->query.remaining_durability\0\t\x05items\n\x02\x08\x04name\x17minecraft:diamond_spear\0\0\n\rrepair_amount\x08\nexpression\x1Bquery.max_durability * 0.25\x02\x07version\r\0\0\t\x05items\n\x02\x08\x04name\x11minecraft:diamond\0\0\0\n\x17minecraft:hand_equipped\x01\x05value\x01\0\0" } ; pub const DIAMOND_SWORD: Self = Self { id: 347, registry_key: "minecraft:diamond_sword", @@ -41314,7 +41314,7 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const DRIED_KELP : Self = Self { id : 299 , registry_key : "minecraft:dried_kelp" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:food\x01\x0Ecan_always_eat\0\x08\rcooldown_type\0\x03\tnutrition\x02\x08\x11using_converts_to\0\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x03\ron_use_action\x01\x05\x13saturation_modifier\xCD\xCC\xCC=\x03\rcooldown_time\0\0\x03\x16minecraft:use_duration \0" } ; + pub const DRIED_KELP : Self = Self { id : 299 , registry_key : "minecraft:dried_kelp" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\x03\x16minecraft:use_duration \n\x0Eminecraft:food\x05\x13saturation_modifier\xCD\xCC\xCC=\x03\tnutrition\x02\x08\rcooldown_type\0\x03\ron_use_action\x01\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x08\x11using_converts_to\0\x03\rcooldown_time\0\x01\x0Ecan_always_eat\0\0\0" } ; pub const DRIED_KELP_BLOCK: Self = Self { id: -139, registry_key: "minecraft:dried_kelp_block", @@ -42260,7 +42260,7 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const ENCHANTED_GOLDEN_APPLE : Self = Self { id : 288 , registry_key : "minecraft:enchanted_golden_apple" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\x01\x19minecraft:stacked_by_data\x01\n\x0Eminecraft:food\x03\rcooldown_time\0\x08\x11using_converts_to\0\t\x07effects\n\x08\x08\x04name\x0Cregeneration\x03\x08duration<\x08\rdescriptionId\x13potion.regeneration\x03\x02id\x14\x03\tamplifier\x02\x05\x06chance\0\0\x80?\0\x03\tamplifier\x06\x03\x08duration\xF0\x01\x08\x04name\nabsorption\x08\rdescriptionId\x11potion.absorption\x03\x02id,\x05\x06chance\0\0\x80?\0\x08\rdescriptionId\x11potion.resistance\x05\x06chance\0\0\x80?\x03\tamplifier\0\x03\x08duration\xD8\x04\x03\x02id\x16\x08\x04name\nresistance\0\x08\rdescriptionId\x15potion.fireResistance\x03\x02id\x18\x05\x06chance\0\0\x80?\x03\x08duration\xD8\x04\x08\x04name\x0Ffire_resistance\x03\tamplifier\0\0\x01\x0Ecan_always_eat\x01\x03\ron_use_action\x01\x05\x13saturation_modifier\x9A\x99\x99?\x03\tnutrition\x08\x08\rcooldown_type\0\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\0\x01\x0Eminecraft:foil\x01\x03\x16minecraft:use_duration@\0" } ; + pub const ENCHANTED_GOLDEN_APPLE : Self = Self { id : 288 , registry_key : "minecraft:enchanted_golden_apple" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:food\x03\rcooldown_time\0\x05\x13saturation_modifier\x9A\x99\x99?\x03\tnutrition\x08\x03\ron_use_action\x01\x01\x0Ecan_always_eat\x01\x08\x11using_converts_to\0\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\t\x07effects\n\x08\x03\tamplifier\x02\x03\x02id\x14\x08\x04name\x0Cregeneration\x03\x08duration<\x08\rdescriptionId\x13potion.regeneration\x05\x06chance\0\0\x80?\0\x08\rdescriptionId\x11potion.absorption\x03\tamplifier\x06\x05\x06chance\0\0\x80?\x03\x08duration\xF0\x01\x03\x02id,\x08\x04name\nabsorption\0\x03\x08duration\xD8\x04\x03\tamplifier\0\x03\x02id\x16\x08\x04name\nresistance\x08\rdescriptionId\x11potion.resistance\x05\x06chance\0\0\x80?\0\x08\x04name\x0Ffire_resistance\x05\x06chance\0\0\x80?\x08\rdescriptionId\x15potion.fireResistance\x03\x08duration\xD8\x04\x03\tamplifier\0\x03\x02id\x18\0\x08\rcooldown_type\0\0\x01\x19minecraft:stacked_by_data\x01\x01\x0Eminecraft:foil\x01\x03\x16minecraft:use_duration@\0" } ; pub const ENCHANTING_TABLE: Self = Self { id: 116, registry_key: "minecraft:enchanting_table", @@ -42835,7 +42835,7 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const GLOW_BERRIES : Self = Self { id : 845 , registry_key : "minecraft:glow_berries" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:seed\t\x08plant_at\x08\x04\ncave_vines\x1Ccave_vines_head_with_berries\x08\x0Bcrop_result\x14minecraft:cave_vines\x08\rplant_at_face\x04down\x01\x1Aplant_at_any_solid_surface\x01\0\x03\x16minecraft:use_duration@\n\x0Eminecraft:food\x01\x0Ecan_always_eat\0\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x03\ron_use_action\x01\x05\x13saturation_modifier\x9A\x99\x99>\x08\rcooldown_type\0\x03\rcooldown_time\0\x08\x11using_converts_to\0\x03\tnutrition\x04\0\0" } ; + pub const GLOW_BERRIES : Self = Self { id : 845 , registry_key : "minecraft:glow_berries" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:food\x03\ron_use_action\x01\x01\x0Ecan_always_eat\0\x05\x13saturation_modifier\x9A\x99\x99>\x08\rcooldown_type\0\x03\rcooldown_time\0\x03\tnutrition\x04\x08\x11using_converts_to\0\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\0\n\x0Eminecraft:seed\x01\x1Aplant_at_any_solid_surface\x01\x08\x0Bcrop_result\x14minecraft:cave_vines\x08\rplant_at_face\x04down\t\x08plant_at\x08\x04\ncave_vines\x1Ccave_vines_head_with_berries\0\x03\x16minecraft:use_duration@\0" } ; pub const GLOW_FRAME: Self = Self { id: 665, registry_key: "minecraft:glow_frame", @@ -42934,7 +42934,7 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const GOLDEN_APPLE : Self = Self { id : 287 , registry_key : "minecraft:golden_apple" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\x03\x16minecraft:use_duration@\x01\x19minecraft:stacked_by_data\x01\n\x0Eminecraft:food\x03\ron_use_action\x01\x05\x13saturation_modifier\x9A\x99\x99?\x08\x11using_converts_to\0\x01\x0Ecan_always_eat\x01\x03\rcooldown_time\0\x03\tnutrition\x08\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x08\rcooldown_type\0\t\x07effects\n\x04\x05\x06chance\0\0\x80?\x03\x02id\x14\x08\x04name\x0Cregeneration\x03\x08duration\n\x08\rdescriptionId\x13potion.regeneration\x03\tamplifier\x02\0\x05\x06chance\0\0\x80?\x03\x02id,\x03\x08duration\xF0\x01\x08\x04name\nabsorption\x03\tamplifier\0\x08\rdescriptionId\x11potion.absorption\0\0\0" } ; + pub const GOLDEN_APPLE : Self = Self { id : 287 , registry_key : "minecraft:golden_apple" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\x01\x19minecraft:stacked_by_data\x01\x03\x16minecraft:use_duration@\n\x0Eminecraft:food\x08\rcooldown_type\0\x03\rcooldown_time\0\x05\x13saturation_modifier\x9A\x99\x99?\x03\ron_use_action\x01\x08\x11using_converts_to\0\t\x07effects\n\x04\x03\tamplifier\x02\x08\rdescriptionId\x13potion.regeneration\x08\x04name\x0Cregeneration\x05\x06chance\0\0\x80?\x03\x08duration\n\x03\x02id\x14\0\x08\x04name\nabsorption\x03\x02id,\x05\x06chance\0\0\x80?\x03\tamplifier\0\x08\rdescriptionId\x11potion.absorption\x03\x08duration\xF0\x01\0\x03\tnutrition\x08\x01\x0Ecan_always_eat\x01\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\0\0" } ; pub const GOLDEN_AXE: Self = Self { id: 357, registry_key: "minecraft:golden_axe", @@ -42949,7 +42949,7 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const GOLDEN_CARROT : Self = Self { id : 312 , registry_key : "minecraft:golden_carrot" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\x03\x16minecraft:use_duration@\n\x0Eminecraft:food\x08\rcooldown_type\0\x05\x13saturation_modifier\x9A\x99\x99?\x03\rcooldown_time\0\x01\x0Ecan_always_eat\0\x03\tnutrition\x0C\x03\ron_use_action\x01\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x08\x11using_converts_to\0\0\0" } ; + pub const GOLDEN_CARROT : Self = Self { id : 312 , registry_key : "minecraft:golden_carrot" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:food\x05\x13saturation_modifier\x9A\x99\x99?\x03\rcooldown_time\0\x01\x0Ecan_always_eat\0\x03\tnutrition\x0C\x03\ron_use_action\x01\x08\x11using_converts_to\0\x08\rcooldown_type\0\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\0\x03\x16minecraft:use_duration@\0" } ; pub const GOLDEN_CHESTPLATE: Self = Self { id: 384, registry_key: "minecraft:golden_chestplate", @@ -43020,7 +43020,7 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const GOLDEN_SPEAR : Self = Self { id : 259 , registry_key : "minecraft:golden_spear" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\x16minecraft:swing_sounds\x08\x0Battack_miss\x1Ditem.golden_spear.attack_miss\x08\nattack_hit\x1Citem.golden_spear.attack_hit\0\n\x10minecraft:damage\x02\x05value\x01\0\0\n\x14minecraft:repairable\t\x0Crepair_items\n\x04\t\x05items\n\x02\x08\x04name\x16minecraft:golden_spear\0\n\rrepair_amount\x02\x07version\r\0\x08\nexpression)context.other->query.remaining_durability\0\0\t\x05items\n\x02\x08\x04name\x14minecraft:gold_ingot\0\n\rrepair_amount\x02\x07version\r\0\x08\nexpression\x1Bquery.max_durability * 0.25\0\0\0\n\x18minecraft:kinetic_weapon\n\x18minecraft:kinetic_weapon\n\x0Ecreative_reach\x05\x03max\0\0\xF0@\x05\x03min\0\0\0@\0\x05\x0Fdamage_modifier\0\0\0\0\n\x14knockback_conditions\x05\x12min_relative_speed\0\0\0\0\x02\x0Cmax_duration\xAA\0\x05\tmin_speed33\xA3@\0\n\x13dismount_conditions\x05\x12min_relative_speed\0\0\0\0\x02\x0Cmax_durationF\0\x05\tmin_speed\0\0PA\0\x05\rhitbox_margin\0\0\x80>\n\x11damage_conditions\x05\x12min_relative_speed33\x93@\x05\tmin_speed\0\0\0\0\x02\x0Cmax_duration\x13\x01\0\x05\x11damage_multiplier333?\x02\x05delay\x0E\0\n\x05reach\x05\x03min\0\0\0@\x05\x03max\0\0\x90@\0\0\0\n\x18minecraft:swing_duration\x05\x05value33s?\0\n\x0Eminecraft:tags\t\x04tags\x08\x04\x15minecraft:golden_tier\x12minecraft:is_spear\0\n\x16minecraft:display_name\x08\x05value\x16item.golden_spear.name\0\t\titem_tags\x08\x04\x15minecraft:golden_tier\x12minecraft:is_spear\n\x14minecraft:durability\n\rdamage_chance\x03\x03min\0\x03\x03max\xC8\x01\0\x03\x0Emax_durability<\0\n\x12minecraft:cooldown\x05\x08duration33s?\x08\x04type\x06attack\x08\x08category\x05spear\0\n\x15minecraft:enchantable\x08\x04slot\x0Bmelee_spear\x01\x05value\x16\0\n\x0Fitem_properties\x03\x0Bframe_count\x02\x03\x11creative_category\x06\x08\x10enchantable_slot\x0Bmelee_spear\x01\x04foil\0\x01\x0Eliquid_clipped\0\x03\x06damage\x02\x03\x11enchantable_value,\x05\x0Cmining_speed\0\0\x80?\x03\x0Emax_stack_size\x02\x01\rhand_equipped\x01\x03\x0Cuse_duration\x80\xE4\xAF\x01\x03\ruse_animation\0\x01\x17can_destroy_in_creative\x01\x01\x0Fstacked_by_data\0\x01\x0Eallow_off_hand\0\x01\x0Eshould_despawn\x01\n\x0Eminecraft:icon\n\x08textures\x08\x07default\ngold_spear\0\0\x08\x0Ecreative_group\0\x01\x12hidden_in_commands\x02\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\n\x17minecraft:hand_equipped\x01\x05value\x01\0\n\x19minecraft:piercing_weapon\x05\rhitbox_margin\0\0\x80>\n\x05reach\x05\x03max\0\0\x90@\x05\x03min\0\0\0@\0\n\x0Ecreative_reach\x05\x03min\0\0\0@\x05\x03max\0\0\xF0@\0\0\n\x17minecraft:use_modifiers\x08\x0Bstart_using\x06always\x01\x0Femit_vibrations\0\x05\x11movement_modifier\0\0\x80?\x08\x0Bstart_sound\x15item.golden_spear.use\x05\x0Cuse_duration\0\xA0\x8CG\0\0" } ; + pub const GOLDEN_SPEAR : Self = Self { id : 259 , registry_key : "minecraft:golden_spear" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\x14minecraft:durability\x03\x0Emax_durability<\n\rdamage_chance\x03\x03max\xC8\x01\x03\x03min\0\0\0\n\x12minecraft:cooldown\x08\x08category\x05spear\x05\x08duration33s?\x08\x04type\x06attack\0\n\x16minecraft:display_name\x08\x05value\x16item.golden_spear.name\0\n\x0Eminecraft:tags\t\x04tags\x08\x04\x15minecraft:golden_tier\x12minecraft:is_spear\0\n\x17minecraft:hand_equipped\x01\x05value\x01\0\t\titem_tags\x08\x04\x15minecraft:golden_tier\x12minecraft:is_spear\n\x18minecraft:max_stack_size\x01\x05value\x01\0\n\x0Fitem_properties\x03\x11creative_category\x06\x03\x0Bframe_count\x02\x05\x0Cmining_speed\0\0\x80?\x01\x12hidden_in_commands\x02\x08\x10enchantable_slot\x0Bmelee_spear\x01\x0Eshould_despawn\x01\x03\x06damage\x02\x01\x0Fstacked_by_data\0\x01\x17can_destroy_in_creative\x01\x01\x0Eallow_off_hand\0\x03\ruse_animation\0\x03\x0Cuse_duration\x80\xE4\xAF\x01\x08\x0Ecreative_group\0\x03\x11enchantable_value,\n\x0Eminecraft:icon\n\x08textures\x08\x07default\ngold_spear\0\0\x01\rhand_equipped\x01\x01\x04foil\0\x03\x0Emax_stack_size\x02\x01\x0Eliquid_clipped\0\0\n\x17minecraft:use_modifiers\x08\x0Bstart_sound\x15item.golden_spear.use\x05\x11movement_modifier\0\0\x80?\x08\x0Bstart_using\x06always\x01\x0Femit_vibrations\0\x05\x0Cuse_duration\0\xA0\x8CG\0\n\x15minecraft:enchantable\x08\x04slot\x0Bmelee_spear\x01\x05value\x16\0\n\x16minecraft:swing_sounds\x08\x0Battack_miss\x1Ditem.golden_spear.attack_miss\x08\nattack_hit\x1Citem.golden_spear.attack_hit\0\n\x18minecraft:kinetic_weapon\n\x18minecraft:kinetic_weapon\n\x14knockback_conditions\x05\x12min_relative_speed\0\0\0\0\x05\tmin_speed33\xA3@\x02\x0Cmax_duration\xAA\0\0\n\x0Ecreative_reach\x05\x03min\0\0\0@\x05\x03max\0\0\xF0@\0\x02\x05delay\x0E\0\x05\rhitbox_margin\0\0\x80>\n\x05reach\x05\x03max\0\0\x90@\x05\x03min\0\0\0@\0\x05\x0Fdamage_modifier\0\0\0\0\x05\x11damage_multiplier333?\n\x11damage_conditions\x02\x0Cmax_duration\x13\x01\x05\tmin_speed\0\0\0\0\x05\x12min_relative_speed33\x93@\0\n\x13dismount_conditions\x05\tmin_speed\0\0PA\x05\x12min_relative_speed\0\0\0\0\x02\x0Cmax_durationF\0\0\0\0\n\x18minecraft:swing_duration\x05\x05value33s?\0\n\x19minecraft:piercing_weapon\n\x0Ecreative_reach\x05\x03min\0\0\0@\x05\x03max\0\0\xF0@\0\x05\rhitbox_margin\0\0\x80>\n\x05reach\x05\x03min\0\0\0@\x05\x03max\0\0\x90@\0\0\n\x14minecraft:repairable\t\x0Crepair_items\n\x04\n\rrepair_amount\x02\x07version\r\0\x08\nexpression)context.other->query.remaining_durability\0\t\x05items\n\x02\x08\x04name\x16minecraft:golden_spear\0\0\t\x05items\n\x02\x08\x04name\x14minecraft:gold_ingot\0\n\rrepair_amount\x02\x07version\r\0\x08\nexpression\x1Bquery.max_durability * 0.25\0\0\0\n\x10minecraft:damage\x02\x05value\x01\0\0\0" } ; pub const GOLDEN_SWORD: Self = Self { id: 354, registry_key: "minecraft:golden_sword", @@ -43084,7 +43084,7 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const GRAY_BUNDLE : Self = Self { id : 269 , registry_key : "minecraft:gray_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\t\titem_tags\0\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\n!minecraft:storage_weight_modifier\x03\x16weight_in_storage_item\x08\0\n\x16minecraft:storage_item\x01\x1Aallow_nested_storage_items\x01\x03\tmax_slots\x80\x01\t\x0Cbanned_items\n\x04\x08\x04name\x15minecraft:shulker_box\0\x08\x04name\x1Cminecraft:undyed_shulker_box\0\t\rallowed_items\0\0\0\n\x1Eminecraft:storage_weight_limit\x03\x10max_weight_limit\x80\x01\0\n\x0Fitem_properties\x05\x0Cmining_speed\0\0\x80?\x03\x0Bframe_count\x02\x01\x0Eliquid_clipped\0\x03\x11creative_category\x06\x03\x0Cuse_duration\0\x08\x10enchantable_slot\x04none\x08\x0Ecreative_group\0\x03\x11enchantable_value\0\x01\rhand_equipped\0\x01\x12hidden_in_commands\x02\n\x0Eminecraft:icon\n\x08textures\x08\x11bundle_open_front\x16bundle_gray_open_front\x08\x10bundle_open_back\x15bundle_gray_open_back\x08\x07default\x0Bbundle_gray\0\0\x01\x17can_destroy_in_creative\x01\x01\x0Eallow_off_hand\0\x01\x04foil\0\x03\x0Emax_stack_size\x02\x01\x0Eshould_despawn\x01\x03\ruse_animation\0\x03\x06damage\0\x01\x0Fstacked_by_data\0\0\n\x1Cminecraft:bundle_interaction\x03\x12num_viewable_slots\x18\0\0" } ; + pub const GRAY_BUNDLE : Self = Self { id : 269 , registry_key : "minecraft:gray_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\x16minecraft:storage_item\x03\tmax_slots\x80\x01\t\rallowed_items\0\0\x01\x1Aallow_nested_storage_items\x01\t\x0Cbanned_items\n\x04\x08\x04name\x15minecraft:shulker_box\0\x08\x04name\x1Cminecraft:undyed_shulker_box\0\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\n\x1Eminecraft:storage_weight_limit\x03\x10max_weight_limit\x80\x01\0\n!minecraft:storage_weight_modifier\x03\x16weight_in_storage_item\x08\0\n\x0Fitem_properties\x03\x06damage\0\x01\x0Eallow_off_hand\0\x08\x0Ecreative_group\0\x01\x04foil\0\x01\x12hidden_in_commands\x02\x01\x0Eliquid_clipped\0\x01\x17can_destroy_in_creative\x01\x01\x0Fstacked_by_data\0\x03\x11enchantable_value\0\x03\x0Bframe_count\x02\x03\x0Emax_stack_size\x02\x03\ruse_animation\0\x03\x11creative_category\x06\x05\x0Cmining_speed\0\0\x80?\x08\x10enchantable_slot\x04none\x03\x0Cuse_duration\0\x01\rhand_equipped\0\n\x0Eminecraft:icon\n\x08textures\x08\x11bundle_open_front\x16bundle_gray_open_front\x08\x10bundle_open_back\x15bundle_gray_open_back\x08\x07default\x0Bbundle_gray\0\0\x01\x0Eshould_despawn\x01\0\n\x1Cminecraft:bundle_interaction\x03\x12num_viewable_slots\x18\0\t\titem_tags\0\0\0" } ; pub const GRAY_CANDLE: Self = Self { id: -420, registry_key: "minecraft:gray_candle", @@ -43176,7 +43176,7 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const GREEN_BUNDLE : Self = Self { id : 270 , registry_key : "minecraft:green_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\x1Eminecraft:storage_weight_limit\x03\x10max_weight_limit\x80\x01\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\t\titem_tags\0\0\n\x0Fitem_properties\x03\x11creative_category\x06\x08\x10enchantable_slot\x04none\x01\x17can_destroy_in_creative\x01\x03\x0Emax_stack_size\x02\x01\x0Fstacked_by_data\0\x01\x0Eallow_off_hand\0\x01\x04foil\0\x01\x12hidden_in_commands\x02\x01\x0Eshould_despawn\x01\x05\x0Cmining_speed\0\0\x80?\x08\x0Ecreative_group\0\x01\x0Eliquid_clipped\0\x03\x0Bframe_count\x02\x01\rhand_equipped\0\x03\ruse_animation\0\x03\x0Cuse_duration\0\x03\x06damage\0\x03\x11enchantable_value\0\n\x0Eminecraft:icon\n\x08textures\x08\x07default\x0Cbundle_green\x08\x11bundle_open_front\x17bundle_green_open_front\x08\x10bundle_open_back\x16bundle_green_open_back\0\0\0\n\x16minecraft:storage_item\t\rallowed_items\0\0\x03\tmax_slots\x80\x01\x01\x1Aallow_nested_storage_items\x01\t\x0Cbanned_items\n\x04\x08\x04name\x15minecraft:shulker_box\0\x08\x04name\x1Cminecraft:undyed_shulker_box\0\0\n!minecraft:storage_weight_modifier\x03\x16weight_in_storage_item\x08\0\n\x1Cminecraft:bundle_interaction\x03\x12num_viewable_slots\x18\0\0" } ; + pub const GREEN_BUNDLE : Self = Self { id : 270 , registry_key : "minecraft:green_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\x1Eminecraft:storage_weight_limit\x03\x10max_weight_limit\x80\x01\0\n\x16minecraft:storage_item\x03\tmax_slots\x80\x01\t\x0Cbanned_items\n\x04\x08\x04name\x15minecraft:shulker_box\0\x08\x04name\x1Cminecraft:undyed_shulker_box\0\t\rallowed_items\0\0\x01\x1Aallow_nested_storage_items\x01\0\n!minecraft:storage_weight_modifier\x03\x16weight_in_storage_item\x08\0\t\titem_tags\0\0\n\x0Fitem_properties\x03\x0Cuse_duration\0\x01\x0Eallow_off_hand\0\x01\x17can_destroy_in_creative\x01\x03\x0Emax_stack_size\x02\x01\x04foil\0\x03\ruse_animation\0\x03\x06damage\0\x01\rhand_equipped\0\x01\x0Eshould_despawn\x01\x08\x10enchantable_slot\x04none\x01\x0Eliquid_clipped\0\x08\x0Ecreative_group\0\x05\x0Cmining_speed\0\0\x80?\x01\x12hidden_in_commands\x02\x03\x11creative_category\x06\x01\x0Fstacked_by_data\0\n\x0Eminecraft:icon\n\x08textures\x08\x10bundle_open_back\x16bundle_green_open_back\x08\x11bundle_open_front\x17bundle_green_open_front\x08\x07default\x0Cbundle_green\0\0\x03\x11enchantable_value\0\x03\x0Bframe_count\x02\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\n\x1Cminecraft:bundle_interaction\x03\x12num_viewable_slots\x18\0\0" } ; pub const GREEN_CANDLE: Self = Self { id: -426, registry_key: "minecraft:green_candle", @@ -43632,7 +43632,7 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const HONEY_BOTTLE : Self = Self { id : 633 , registry_key : "minecraft:honey_bottle" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:food\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x08\rcooldown_type\0\t\x0Eremove_effects\x03\x02&\x03\ron_use_action\x01\x03\rcooldown_time\0\x01\x0Ecan_always_eat\x01\x03\tnutrition\x0C\x08\x11using_converts_to\x0Cglass_bottle\x05\x13saturation_modifier\xCD\xCC\xCC=\0\x03\x18minecraft:max_stack_size \x03\x16minecraft:use_durationP\0" } ; + pub const HONEY_BOTTLE : Self = Self { id : 633 , registry_key : "minecraft:honey_bottle" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\x03\x16minecraft:use_durationP\n\x0Eminecraft:food\x03\ron_use_action\x01\x08\rcooldown_type\0\x05\x13saturation_modifier\xCD\xCC\xCC=\x03\rcooldown_time\0\x03\tnutrition\x0C\x08\x11using_converts_to\x0Cglass_bottle\t\x0Eremove_effects\x03\x02&\x01\x0Ecan_always_eat\x01\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\0\x03\x18minecraft:max_stack_size \0" } ; pub const HONEYCOMB: Self = Self { id: 632, registry_key: "minecraft:honeycomb", @@ -43934,7 +43934,7 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const IRON_SPEAR : Self = Self { id : 260 , registry_key : "minecraft:iron_spear" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\x10minecraft:damage\x02\x05value\x03\0\0\n\x15minecraft:enchantable\x08\x04slot\x0Bmelee_spear\x01\x05value\x0E\0\n\x14minecraft:repairable\t\x0Crepair_items\n\x04\n\rrepair_amount\x08\nexpression)context.other->query.remaining_durability\x02\x07version\r\0\0\t\x05items\n\x02\x08\x04name\x14minecraft:iron_spear\0\0\t\x05items\n\x02\x08\x04name\x14minecraft:iron_ingot\0\n\rrepair_amount\x02\x07version\r\0\x08\nexpression\x1Bquery.max_durability * 0.25\0\0\0\n\x0Eminecraft:tags\t\x04tags\x08\x04\x13minecraft:iron_tier\x12minecraft:is_spear\0\n\x17minecraft:use_modifiers\x05\x0Cuse_duration\0\xA0\x8CG\x08\x0Bstart_sound\x13item.iron_spear.use\x05\x11movement_modifier\0\0\x80?\x01\x0Femit_vibrations\0\x08\x0Bstart_using\x06always\0\n\x18minecraft:swing_duration\x05\x05value33s?\0\n\x17minecraft:hand_equipped\x01\x05value\x01\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\n\x18minecraft:kinetic_weapon\n\x18minecraft:kinetic_weapon\x05\x0Fdamage_modifier\0\0\0\0\n\x0Ecreative_reach\x05\x03max\0\0\xF0@\x05\x03min\0\0\0@\0\n\x11damage_conditions\x05\tmin_speed\0\0\0\0\x02\x0Cmax_duration\xE1\0\x05\x12min_relative_speed33\x93@\0\x05\rhitbox_margin\0\0\x80>\n\x14knockback_conditions\x02\x0Cmax_duration\x87\0\x05\tmin_speed33\xA3@\x05\x12min_relative_speed\0\0\0\0\0\x05\x11damage_multiplier33s?\n\x13dismount_conditions\x05\tmin_speed\0\x000A\x05\x12min_relative_speed\0\0\0\0\x02\x0Cmax_duration2\0\0\n\x05reach\x05\x03min\0\0\0@\x05\x03max\0\0\x90@\0\x02\x05delay\x0C\0\0\0\n\x12minecraft:cooldown\x05\x08duration33s?\x08\x04type\x06attack\x08\x08category\x05spear\0\n\x19minecraft:piercing_weapon\x05\rhitbox_margin\0\0\x80>\n\x05reach\x05\x03min\0\0\0@\x05\x03max\0\0\x90@\0\n\x0Ecreative_reach\x05\x03min\0\0\0@\x05\x03max\0\0\xF0@\0\0\n\x0Fitem_properties\x01\x0Eshould_despawn\x01\x03\x0Cuse_duration\x80\xE4\xAF\x01\n\x0Eminecraft:icon\n\x08textures\x08\x07default\niron_spear\0\0\x03\x06damage\x06\x03\x11enchantable_value\x1C\x01\x12hidden_in_commands\x02\x01\x0Eliquid_clipped\0\x03\x11creative_category\x06\x03\x0Bframe_count\x02\x01\rhand_equipped\x01\x03\x0Emax_stack_size\x02\x05\x0Cmining_speed\0\0\x80?\x01\x17can_destroy_in_creative\x01\x03\ruse_animation\0\x01\x0Fstacked_by_data\0\x08\x10enchantable_slot\x0Bmelee_spear\x01\x04foil\0\x08\x0Ecreative_group\0\x01\x0Eallow_off_hand\0\0\t\titem_tags\x08\x04\x13minecraft:iron_tier\x12minecraft:is_spear\n\x14minecraft:durability\n\rdamage_chance\x03\x03min\0\x03\x03max\xC8\x01\0\x03\x0Emax_durability\xF4\x03\0\n\x16minecraft:swing_sounds\x08\nattack_hit\x1Aitem.iron_spear.attack_hit\x08\x0Battack_miss\x1Bitem.iron_spear.attack_miss\0\n\x16minecraft:display_name\x08\x05value\x14item.iron_spear.name\0\0" } ; + pub const IRON_SPEAR : Self = Self { id : 260 , registry_key : "minecraft:iron_spear" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\x0Fitem_properties\x01\x0Fstacked_by_data\0\x03\x0Cuse_duration\x80\xE4\xAF\x01\x01\x0Eliquid_clipped\0\x01\x0Eshould_despawn\x01\x01\x17can_destroy_in_creative\x01\x03\x0Emax_stack_size\x02\x03\x11enchantable_value\x1C\n\x0Eminecraft:icon\n\x08textures\x08\x07default\niron_spear\0\0\x05\x0Cmining_speed\0\0\x80?\x08\x10enchantable_slot\x0Bmelee_spear\x08\x0Ecreative_group\0\x01\x0Eallow_off_hand\0\x01\rhand_equipped\x01\x01\x04foil\0\x03\ruse_animation\0\x03\x11creative_category\x06\x03\x06damage\x06\x03\x0Bframe_count\x02\x01\x12hidden_in_commands\x02\0\n\x17minecraft:hand_equipped\x01\x05value\x01\0\n\x16minecraft:swing_sounds\x08\x0Battack_miss\x1Bitem.iron_spear.attack_miss\x08\nattack_hit\x1Aitem.iron_spear.attack_hit\0\n\x15minecraft:enchantable\x08\x04slot\x0Bmelee_spear\x01\x05value\x0E\0\n\x12minecraft:cooldown\x05\x08duration33s?\x08\x04type\x06attack\x08\x08category\x05spear\0\n\x0Eminecraft:tags\t\x04tags\x08\x04\x13minecraft:iron_tier\x12minecraft:is_spear\0\n\x18minecraft:kinetic_weapon\n\x18minecraft:kinetic_weapon\n\x05reach\x05\x03max\0\0\x90@\x05\x03min\0\0\0@\0\x05\x11damage_multiplier33s?\n\x11damage_conditions\x05\tmin_speed\0\0\0\0\x05\x12min_relative_speed33\x93@\x02\x0Cmax_duration\xE1\0\0\n\x14knockback_conditions\x05\tmin_speed33\xA3@\x02\x0Cmax_duration\x87\0\x05\x12min_relative_speed\0\0\0\0\0\x05\x0Fdamage_modifier\0\0\0\0\x05\rhitbox_margin\0\0\x80>\n\x0Ecreative_reach\x05\x03min\0\0\0@\x05\x03max\0\0\xF0@\0\n\x13dismount_conditions\x05\tmin_speed\0\x000A\x05\x12min_relative_speed\0\0\0\0\x02\x0Cmax_duration2\0\0\x02\x05delay\x0C\0\0\0\n\x14minecraft:repairable\t\x0Crepair_items\n\x04\t\x05items\n\x02\x08\x04name\x14minecraft:iron_spear\0\n\rrepair_amount\x02\x07version\r\0\x08\nexpression)context.other->query.remaining_durability\0\0\t\x05items\n\x02\x08\x04name\x14minecraft:iron_ingot\0\n\rrepair_amount\x08\nexpression\x1Bquery.max_durability * 0.25\x02\x07version\r\0\0\0\0\n\x19minecraft:piercing_weapon\x05\rhitbox_margin\0\0\x80>\n\x05reach\x05\x03min\0\0\0@\x05\x03max\0\0\x90@\0\n\x0Ecreative_reach\x05\x03min\0\0\0@\x05\x03max\0\0\xF0@\0\0\n\x16minecraft:display_name\x08\x05value\x14item.iron_spear.name\0\t\titem_tags\x08\x04\x13minecraft:iron_tier\x12minecraft:is_spear\n\x10minecraft:damage\x02\x05value\x03\0\0\n\x18minecraft:swing_duration\x05\x05value33s?\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\n\x17minecraft:use_modifiers\x08\x0Bstart_using\x06always\x01\x0Femit_vibrations\0\x05\x11movement_modifier\0\0\x80?\x05\x0Cuse_duration\0\xA0\x8CG\x08\x0Bstart_sound\x13item.iron_spear.use\0\n\x14minecraft:durability\n\rdamage_chance\x03\x03min\0\x03\x03max\xC8\x01\0\x03\x0Emax_durability\xF4\x03\0\0" } ; pub const IRON_SWORD: Self = Self { id: 338, registry_key: "minecraft:iron_sword", @@ -44509,7 +44509,7 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const LIGHT_BLUE_BUNDLE : Self = Self { id : 271 , registry_key : "minecraft:light_blue_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\x1Cminecraft:bundle_interaction\x03\x12num_viewable_slots\x18\0\n\x0Fitem_properties\x01\x04foil\0\x01\x17can_destroy_in_creative\x01\x05\x0Cmining_speed\0\0\x80?\x01\x0Eshould_despawn\x01\x08\x0Ecreative_group\0\x01\x0Eallow_off_hand\0\x01\rhand_equipped\0\x03\x11enchantable_value\0\x01\x0Eliquid_clipped\0\x03\ruse_animation\0\x01\x0Fstacked_by_data\0\x01\x12hidden_in_commands\x02\x03\x06damage\0\x08\x10enchantable_slot\x04none\x03\x0Bframe_count\x02\x03\x0Emax_stack_size\x02\x03\x0Cuse_duration\0\x03\x11creative_category\x06\n\x0Eminecraft:icon\n\x08textures\x08\x10bundle_open_back\x1Bbundle_light_blue_open_back\x08\x11bundle_open_front\x1Cbundle_light_blue_open_front\x08\x07default\x11bundle_light_blue\0\0\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\n\x16minecraft:storage_item\x03\tmax_slots\x80\x01\t\rallowed_items\0\0\x01\x1Aallow_nested_storage_items\x01\t\x0Cbanned_items\n\x04\x08\x04name\x15minecraft:shulker_box\0\x08\x04name\x1Cminecraft:undyed_shulker_box\0\0\n\x1Eminecraft:storage_weight_limit\x03\x10max_weight_limit\x80\x01\0\n!minecraft:storage_weight_modifier\x03\x16weight_in_storage_item\x08\0\t\titem_tags\0\0\0" } ; + pub const LIGHT_BLUE_BUNDLE : Self = Self { id : 271 , registry_key : "minecraft:light_blue_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n!minecraft:storage_weight_modifier\x03\x16weight_in_storage_item\x08\0\n\x1Cminecraft:bundle_interaction\x03\x12num_viewable_slots\x18\0\n\x0Fitem_properties\n\x0Eminecraft:icon\n\x08textures\x08\x11bundle_open_front\x1Cbundle_light_blue_open_front\x08\x07default\x11bundle_light_blue\x08\x10bundle_open_back\x1Bbundle_light_blue_open_back\0\0\x01\x17can_destroy_in_creative\x01\x08\x0Ecreative_group\0\x03\ruse_animation\0\x03\x0Emax_stack_size\x02\x03\x06damage\0\x01\rhand_equipped\0\x01\x04foil\0\x08\x10enchantable_slot\x04none\x03\x11creative_category\x06\x01\x0Eallow_off_hand\0\x01\x0Eliquid_clipped\0\x01\x0Fstacked_by_data\0\x03\x0Cuse_duration\0\x03\x11enchantable_value\0\x01\x0Eshould_despawn\x01\x01\x12hidden_in_commands\x02\x03\x0Bframe_count\x02\x05\x0Cmining_speed\0\0\x80?\0\t\titem_tags\0\0\n\x16minecraft:storage_item\t\x0Cbanned_items\n\x04\x08\x04name\x15minecraft:shulker_box\0\x08\x04name\x1Cminecraft:undyed_shulker_box\0\x03\tmax_slots\x80\x01\t\rallowed_items\0\0\x01\x1Aallow_nested_storage_items\x01\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\n\x1Eminecraft:storage_weight_limit\x03\x10max_weight_limit\x80\x01\0\0" } ; pub const LIGHT_BLUE_CANDLE: Self = Self { id: -416, registry_key: "minecraft:light_blue_candle", @@ -44601,7 +44601,7 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const LIGHT_GRAY_BUNDLE : Self = Self { id : 272 , registry_key : "minecraft:light_gray_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n!minecraft:storage_weight_modifier\x03\x16weight_in_storage_item\x08\0\n\x1Cminecraft:bundle_interaction\x03\x12num_viewable_slots\x18\0\t\titem_tags\0\0\n\x0Fitem_properties\x03\x11enchantable_value\0\x01\rhand_equipped\0\n\x0Eminecraft:icon\n\x08textures\x08\x07default\x11bundle_light_gray\x08\x10bundle_open_back\x1Bbundle_light_gray_open_back\x08\x11bundle_open_front\x1Cbundle_light_gray_open_front\0\0\x01\x12hidden_in_commands\x02\x03\x11creative_category\x06\x03\x06damage\0\x01\x04foil\0\x01\x17can_destroy_in_creative\x01\x01\x0Eallow_off_hand\0\x01\x0Eliquid_clipped\0\x03\x0Emax_stack_size\x02\x05\x0Cmining_speed\0\0\x80?\x01\x0Eshould_despawn\x01\x03\ruse_animation\0\x08\x10enchantable_slot\x04none\x03\x0Bframe_count\x02\x01\x0Fstacked_by_data\0\x03\x0Cuse_duration\0\x08\x0Ecreative_group\0\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\n\x16minecraft:storage_item\x01\x1Aallow_nested_storage_items\x01\t\rallowed_items\0\0\t\x0Cbanned_items\n\x04\x08\x04name\x15minecraft:shulker_box\0\x08\x04name\x1Cminecraft:undyed_shulker_box\0\x03\tmax_slots\x80\x01\0\n\x1Eminecraft:storage_weight_limit\x03\x10max_weight_limit\x80\x01\0\0" } ; + pub const LIGHT_GRAY_BUNDLE : Self = Self { id : 272 , registry_key : "minecraft:light_gray_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\t\titem_tags\0\0\n\x1Eminecraft:storage_weight_limit\x03\x10max_weight_limit\x80\x01\0\n\x0Fitem_properties\x03\x0Cuse_duration\0\x01\x17can_destroy_in_creative\x01\x08\x10enchantable_slot\x04none\x01\x0Eshould_despawn\x01\x08\x0Ecreative_group\0\x01\x0Fstacked_by_data\0\x01\x0Eliquid_clipped\0\x03\ruse_animation\0\x01\x04foil\0\x01\rhand_equipped\0\x01\x12hidden_in_commands\x02\x03\x0Emax_stack_size\x02\x03\x11creative_category\x06\x03\x0Bframe_count\x02\x03\x11enchantable_value\0\x03\x06damage\0\n\x0Eminecraft:icon\n\x08textures\x08\x11bundle_open_front\x1Cbundle_light_gray_open_front\x08\x07default\x11bundle_light_gray\x08\x10bundle_open_back\x1Bbundle_light_gray_open_back\0\0\x05\x0Cmining_speed\0\0\x80?\x01\x0Eallow_off_hand\0\0\n!minecraft:storage_weight_modifier\x03\x16weight_in_storage_item\x08\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\n\x1Cminecraft:bundle_interaction\x03\x12num_viewable_slots\x18\0\n\x16minecraft:storage_item\x01\x1Aallow_nested_storage_items\x01\t\x0Cbanned_items\n\x04\x08\x04name\x15minecraft:shulker_box\0\x08\x04name\x1Cminecraft:undyed_shulker_box\0\t\rallowed_items\0\0\x03\tmax_slots\x80\x01\0\0" } ; pub const LIGHT_GRAY_CANDLE: Self = Self { id: -421, registry_key: "minecraft:light_gray_candle", @@ -44714,7 +44714,7 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const LIME_BUNDLE : Self = Self { id : 273 , registry_key : "minecraft:lime_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\x0Fitem_properties\x08\x10enchantable_slot\x04none\x01\x17can_destroy_in_creative\x01\x03\x0Bframe_count\x02\x01\x0Eallow_off_hand\0\x01\x0Fstacked_by_data\0\x03\x0Emax_stack_size\x02\x08\x0Ecreative_group\0\x03\x06damage\0\x01\x04foil\0\x01\rhand_equipped\0\x01\x0Eliquid_clipped\0\n\x0Eminecraft:icon\n\x08textures\x08\x11bundle_open_front\x16bundle_lime_open_front\x08\x10bundle_open_back\x15bundle_lime_open_back\x08\x07default\x0Bbundle_lime\0\0\x01\x0Eshould_despawn\x01\x03\x11creative_category\x06\x05\x0Cmining_speed\0\0\x80?\x03\ruse_animation\0\x03\x0Cuse_duration\0\x01\x12hidden_in_commands\x02\x03\x11enchantable_value\0\0\t\titem_tags\0\0\n!minecraft:storage_weight_modifier\x03\x16weight_in_storage_item\x08\0\n\x1Eminecraft:storage_weight_limit\x03\x10max_weight_limit\x80\x01\0\n\x1Cminecraft:bundle_interaction\x03\x12num_viewable_slots\x18\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\n\x16minecraft:storage_item\x01\x1Aallow_nested_storage_items\x01\x03\tmax_slots\x80\x01\t\x0Cbanned_items\n\x04\x08\x04name\x15minecraft:shulker_box\0\x08\x04name\x1Cminecraft:undyed_shulker_box\0\t\rallowed_items\0\0\0\0" } ; + pub const LIME_BUNDLE : Self = Self { id : 273 , registry_key : "minecraft:lime_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\x0Fitem_properties\x03\x0Cuse_duration\0\x01\x04foil\0\x01\x17can_destroy_in_creative\x01\x01\x12hidden_in_commands\x02\x01\rhand_equipped\0\x03\x0Bframe_count\x02\x01\x0Eallow_off_hand\0\x03\ruse_animation\0\x03\x0Emax_stack_size\x02\n\x0Eminecraft:icon\n\x08textures\x08\x10bundle_open_back\x15bundle_lime_open_back\x08\x11bundle_open_front\x16bundle_lime_open_front\x08\x07default\x0Bbundle_lime\0\0\x05\x0Cmining_speed\0\0\x80?\x03\x06damage\0\x03\x11enchantable_value\0\x01\x0Eliquid_clipped\0\x01\x0Eshould_despawn\x01\x01\x0Fstacked_by_data\0\x08\x10enchantable_slot\x04none\x03\x11creative_category\x06\x08\x0Ecreative_group\0\0\t\titem_tags\0\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\n\x1Cminecraft:bundle_interaction\x03\x12num_viewable_slots\x18\0\n\x16minecraft:storage_item\t\rallowed_items\0\0\t\x0Cbanned_items\n\x04\x08\x04name\x15minecraft:shulker_box\0\x08\x04name\x1Cminecraft:undyed_shulker_box\0\x03\tmax_slots\x80\x01\x01\x1Aallow_nested_storage_items\x01\0\n\x1Eminecraft:storage_weight_limit\x03\x10max_weight_limit\x80\x01\0\n!minecraft:storage_weight_modifier\x03\x16weight_in_storage_item\x08\0\0" } ; pub const LIME_CANDLE: Self = Self { id: -418, registry_key: "minecraft:lime_candle", @@ -44911,7 +44911,7 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const MAGENTA_BUNDLE : Self = Self { id : 274 , registry_key : "minecraft:magenta_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\x1Eminecraft:storage_weight_limit\x03\x10max_weight_limit\x80\x01\0\n\x1Cminecraft:bundle_interaction\x03\x12num_viewable_slots\x18\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\n\x0Fitem_properties\x01\x17can_destroy_in_creative\x01\x08\x10enchantable_slot\x04none\x01\rhand_equipped\0\x08\x0Ecreative_group\0\x03\x0Emax_stack_size\x02\x01\x0Eshould_despawn\x01\x01\x12hidden_in_commands\x02\x03\x0Cuse_duration\0\x03\x06damage\0\n\x0Eminecraft:icon\n\x08textures\x08\x10bundle_open_back\x18bundle_magenta_open_back\x08\x11bundle_open_front\x19bundle_magenta_open_front\x08\x07default\x0Ebundle_magenta\0\0\x05\x0Cmining_speed\0\0\x80?\x03\ruse_animation\0\x01\x0Eliquid_clipped\0\x03\x11creative_category\x06\x01\x04foil\0\x03\x0Bframe_count\x02\x03\x11enchantable_value\0\x01\x0Fstacked_by_data\0\x01\x0Eallow_off_hand\0\0\n\x16minecraft:storage_item\x03\tmax_slots\x80\x01\x01\x1Aallow_nested_storage_items\x01\t\rallowed_items\0\0\t\x0Cbanned_items\n\x04\x08\x04name\x15minecraft:shulker_box\0\x08\x04name\x1Cminecraft:undyed_shulker_box\0\0\n!minecraft:storage_weight_modifier\x03\x16weight_in_storage_item\x08\0\t\titem_tags\0\0\0" } ; + pub const MAGENTA_BUNDLE : Self = Self { id : 274 , registry_key : "minecraft:magenta_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\x1Cminecraft:bundle_interaction\x03\x12num_viewable_slots\x18\0\n\x0Fitem_properties\x01\x0Eallow_off_hand\0\x01\x04foil\0\x03\x0Cuse_duration\0\x01\x0Fstacked_by_data\0\x01\x0Eshould_despawn\x01\n\x0Eminecraft:icon\n\x08textures\x08\x07default\x0Ebundle_magenta\x08\x10bundle_open_back\x18bundle_magenta_open_back\x08\x11bundle_open_front\x19bundle_magenta_open_front\0\0\x01\x0Eliquid_clipped\0\x03\x11creative_category\x06\x03\x0Bframe_count\x02\x03\x11enchantable_value\0\x03\ruse_animation\0\x01\x17can_destroy_in_creative\x01\x01\x12hidden_in_commands\x02\x08\x10enchantable_slot\x04none\x03\x06damage\0\x08\x0Ecreative_group\0\x05\x0Cmining_speed\0\0\x80?\x03\x0Emax_stack_size\x02\x01\rhand_equipped\0\0\n\x1Eminecraft:storage_weight_limit\x03\x10max_weight_limit\x80\x01\0\n!minecraft:storage_weight_modifier\x03\x16weight_in_storage_item\x08\0\t\titem_tags\0\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\n\x16minecraft:storage_item\t\rallowed_items\0\0\x03\tmax_slots\x80\x01\x01\x1Aallow_nested_storage_items\x01\t\x0Cbanned_items\n\x04\x08\x04name\x15minecraft:shulker_box\0\x08\x04name\x1Cminecraft:undyed_shulker_box\0\0\0" } ; pub const MAGENTA_CANDLE: Self = Self { id: -415, registry_key: "minecraft:magenta_candle", @@ -45206,8 +45206,8 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const MELON_SEEDS : Self = Self { id : 322 , registry_key : "minecraft:melon_seeds" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:seed\x01\x1Aplant_at_any_solid_surface\0\x08\x0Bcrop_result\x14minecraft:melon_stem\t\x08plant_at\x08\x02\x12minecraft:farmland\x08\rplant_at_face\x02up\0\0" } ; - pub const MELON_SLICE : Self = Self { id : 301 , registry_key : "minecraft:melon_slice" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\x03\x16minecraft:use_duration@\n\x0Eminecraft:food\x08\rcooldown_type\0\x03\ron_use_action\x01\x03\rcooldown_time\0\x08\x11using_converts_to\0\x03\tnutrition\x04\x01\x0Ecan_always_eat\0\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x05\x13saturation_modifier\x9A\x99\x99>\0\0" } ; + pub const MELON_SEEDS : Self = Self { id : 322 , registry_key : "minecraft:melon_seeds" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:seed\x08\rplant_at_face\x02up\t\x08plant_at\x08\x02\x12minecraft:farmland\x08\x0Bcrop_result\x14minecraft:melon_stem\x01\x1Aplant_at_any_solid_surface\0\0\0" } ; + pub const MELON_SLICE : Self = Self { id : 301 , registry_key : "minecraft:melon_slice" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\x03\x16minecraft:use_duration@\n\x0Eminecraft:food\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x05\x13saturation_modifier\x9A\x99\x99>\x03\tnutrition\x04\x01\x0Ecan_always_eat\0\x03\ron_use_action\x01\x03\rcooldown_time\0\x08\x11using_converts_to\0\x08\rcooldown_type\0\0\0" } ; pub const MELON_STEM: Self = Self { id: 105, registry_key: "minecraft:melon_stem", @@ -45425,7 +45425,7 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const MUSHROOM_STEW : Self = Self { id : 289 , registry_key : "minecraft:mushroom_stew" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:food\x08\x11using_converts_to\x04bowl\x01\x0Ecan_always_eat\0\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x08\rcooldown_type\0\x03\ron_use_action\x01\x05\x13saturation_modifier\x9A\x99\x19?\x03\tnutrition\x0C\x03\rcooldown_time\0\0\x03\x18minecraft:max_stack_size\x02\x03\x16minecraft:use_duration@\0" } ; + pub const MUSHROOM_STEW : Self = Self { id : 289 , registry_key : "minecraft:mushroom_stew" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:food\x03\ron_use_action\x01\x05\x13saturation_modifier\x9A\x99\x19?\x01\x0Ecan_always_eat\0\x08\rcooldown_type\0\x08\x11using_converts_to\x04bowl\x03\rcooldown_time\0\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x03\tnutrition\x0C\0\x03\x16minecraft:use_duration@\x03\x18minecraft:max_stack_size\x02\0" } ; pub const MUSIC_DISC_11: Self = Self { id: 583, registry_key: "minecraft:music_disc_11", @@ -45580,7 +45580,7 @@ impl BedrockItem { component_based: true, definition_components: b"\n\0\0", }; - pub const MUTTON : Self = Self { id : 589 , registry_key : "minecraft:mutton" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:food\x03\ron_use_action\x01\x08\rcooldown_type\0\x05\x13saturation_modifier\x9A\x99\x99>\x03\rcooldown_time\0\x08\x11using_converts_to\0\x03\tnutrition\x04\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x01\x0Ecan_always_eat\0\0\x03\x16minecraft:use_duration@\0" } ; + pub const MUTTON : Self = Self { id : 589 , registry_key : "minecraft:mutton" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\x03\x16minecraft:use_duration@\n\x0Eminecraft:food\x01\x0Ecan_always_eat\0\x08\rcooldown_type\0\x08\x11using_converts_to\0\x05\x13saturation_modifier\x9A\x99\x99>\x03\tnutrition\x04\x03\rcooldown_time\0\x03\ron_use_action\x01\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\0\0" } ; pub const MYCELIUM: Self = Self { id: 110, registry_key: "minecraft:mycelium", @@ -45672,7 +45672,7 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const NETHER_WART : Self = Self { id : 323 , registry_key : "minecraft:nether_wart" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:seed\x01\x1Aplant_at_any_solid_surface\0\t\x08plant_at\x08\x02\tsoul_sand\x08\rplant_at_face\x02up\x08\x0Bcrop_result\x15minecraft:nether_wart\0\0" } ; + pub const NETHER_WART : Self = Self { id : 323 , registry_key : "minecraft:nether_wart" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:seed\x08\x0Bcrop_result\x15minecraft:nether_wart\x01\x1Aplant_at_any_solid_surface\0\t\x08plant_at\x08\x02\tsoul_sand\x08\rplant_at_face\x02up\0\0" } ; pub const NETHER_WART_BLOCK: Self = Self { id: 214, registry_key: "minecraft:nether_wart_block", @@ -45778,7 +45778,7 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const NETHERITE_SPEAR : Self = Self { id : 261 , registry_key : "minecraft:netherite_spear" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\x14minecraft:durability\x03\x0Emax_durability\xDC\x1F\n\rdamage_chance\x03\x03min\0\x03\x03max\xC8\x01\0\0\n\x18minecraft:fire_resistant\x01\x05value\x01\0\n\x15minecraft:enchantable\x01\x05value\x0F\x08\x04slot\x0Bmelee_spear\0\n\x19minecraft:piercing_weapon\n\x0Ecreative_reach\x05\x03min\0\0\0@\x05\x03max\0\0\xF0@\0\x05\rhitbox_margin\0\0\x80>\n\x05reach\x05\x03max\0\0\x90@\x05\x03min\0\0\0@\0\0\n\x18minecraft:kinetic_weapon\n\x18minecraft:kinetic_weapon\n\x05reach\x05\x03max\0\0\x90@\x05\x03min\0\0\0@\0\n\x0Ecreative_reach\x05\x03max\0\0\xF0@\x05\x03min\0\0\0@\0\x05\x0Fdamage_modifier\0\0\0\0\n\x11damage_conditions\x02\x0Cmax_duration\xAF\0\x05\tmin_speed\0\0\0\0\x05\x12min_relative_speed33\x93@\0\x05\x11damage_multiplier\x9A\x99\x99?\x02\x05delay\x08\0\x05\rhitbox_margin\0\0\x80>\n\x13dismount_conditions\x05\x12min_relative_speed\0\0\0\0\x05\tmin_speed\0\0\x10A\x02\x0Cmax_duration2\0\0\n\x14knockback_conditions\x05\tmin_speed33\xA3@\x05\x12min_relative_speed\0\0\0\0\x02\x0Cmax_durationn\0\0\0\0\n\x17minecraft:hand_equipped\x01\x05value\x01\0\t\titem_tags\x08\x04\x18minecraft:netherite_tier\x12minecraft:is_spear\n\x10minecraft:damage\x02\x05value\x05\0\0\n\x12minecraft:cooldown\x08\x04type\x06attack\x08\x08category\x05spear\x05\x08duration33\x93?\0\n\x0Fitem_properties\x01\x0Eshould_despawn\x01\x05\x0Cmining_speed\0\0\x80?\n\x0Eminecraft:icon\n\x08textures\x08\x07default\x0Fnetherite_spear\0\0\x03\x11creative_category\x06\x08\x10enchantable_slot\x0Bmelee_spear\x01\x0Fstacked_by_data\0\x03\ruse_animation\0\x03\x0Cuse_duration\x80\xE4\xAF\x01\x01\rhand_equipped\x01\x03\x11enchantable_value\x1E\x01\x04foil\0\x03\x0Emax_stack_size\x02\x03\x06damage\n\x03\x0Bframe_count\x02\x01\x17can_destroy_in_creative\x01\x01\x12hidden_in_commands\x02\x01\x0Eliquid_clipped\0\x08\x0Ecreative_group\0\x01\x0Eallow_off_hand\0\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\n\x16minecraft:swing_sounds\x08\nattack_hit\x1Fitem.netherite_spear.attack_hit\x08\x0Battack_miss item.netherite_spear.attack_miss\0\n\x0Eminecraft:tags\t\x04tags\x08\x04\x18minecraft:netherite_tier\x12minecraft:is_spear\0\n\x14minecraft:repairable\t\x0Crepair_items\n\x04\n\rrepair_amount\x08\nexpression)context.other->query.remaining_durability\x02\x07version\r\0\0\t\x05items\n\x02\x08\x04name\x19minecraft:netherite_spear\0\0\t\x05items\n\x02\x08\x04name\x19minecraft:netherite_ingot\0\n\rrepair_amount\x08\nexpression\x1Bquery.max_durability * 0.25\x02\x07version\r\0\0\0\0\n\x16minecraft:display_name\x08\x05value\x19item.netherite_spear.name\0\n\x17minecraft:use_modifiers\x01\x0Femit_vibrations\0\x05\x11movement_modifier\0\0\x80?\x05\x0Cuse_duration\0\xA0\x8CG\x08\x0Bstart_using\x06always\x08\x0Bstart_sound\x18item.netherite_spear.use\0\n\x18minecraft:swing_duration\x05\x05value33\x93?\0\0" } ; + pub const NETHERITE_SPEAR : Self = Self { id : 261 , registry_key : "minecraft:netherite_spear" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\x17minecraft:use_modifiers\x01\x0Femit_vibrations\0\x05\x0Cuse_duration\0\xA0\x8CG\x05\x11movement_modifier\0\0\x80?\x08\x0Bstart_sound\x18item.netherite_spear.use\x08\x0Bstart_using\x06always\0\n\x14minecraft:repairable\t\x0Crepair_items\n\x04\t\x05items\n\x02\x08\x04name\x19minecraft:netherite_spear\0\n\rrepair_amount\x08\nexpression)context.other->query.remaining_durability\x02\x07version\r\0\0\0\n\rrepair_amount\x08\nexpression\x1Bquery.max_durability * 0.25\x02\x07version\r\0\0\t\x05items\n\x02\x08\x04name\x19minecraft:netherite_ingot\0\0\0\n\x19minecraft:piercing_weapon\n\x0Ecreative_reach\x05\x03max\0\0\xF0@\x05\x03min\0\0\0@\0\x05\rhitbox_margin\0\0\x80>\n\x05reach\x05\x03min\0\0\0@\x05\x03max\0\0\x90@\0\0\n\x12minecraft:cooldown\x08\x08category\x05spear\x05\x08duration33\x93?\x08\x04type\x06attack\0\n\x16minecraft:swing_sounds\x08\nattack_hit\x1Fitem.netherite_spear.attack_hit\x08\x0Battack_miss item.netherite_spear.attack_miss\0\n\x16minecraft:display_name\x08\x05value\x19item.netherite_spear.name\0\n\x17minecraft:hand_equipped\x01\x05value\x01\0\n\x0Fitem_properties\x08\x10enchantable_slot\x0Bmelee_spear\x01\x0Fstacked_by_data\0\x08\x0Ecreative_group\0\x03\x0Emax_stack_size\x02\x01\rhand_equipped\x01\x03\x0Cuse_duration\x80\xE4\xAF\x01\x03\x11creative_category\x06\x01\x04foil\0\x03\ruse_animation\0\x01\x12hidden_in_commands\x02\x03\x06damage\n\x03\x0Bframe_count\x02\x05\x0Cmining_speed\0\0\x80?\x01\x0Eliquid_clipped\0\n\x0Eminecraft:icon\n\x08textures\x08\x07default\x0Fnetherite_spear\0\0\x03\x11enchantable_value\x1E\x01\x0Eshould_despawn\x01\x01\x0Eallow_off_hand\0\x01\x17can_destroy_in_creative\x01\0\n\x0Eminecraft:tags\t\x04tags\x08\x04\x18minecraft:netherite_tier\x12minecraft:is_spear\0\t\titem_tags\x08\x04\x18minecraft:netherite_tier\x12minecraft:is_spear\n\x10minecraft:damage\x02\x05value\x05\0\0\n\x14minecraft:durability\x03\x0Emax_durability\xDC\x1F\n\rdamage_chance\x03\x03max\xC8\x01\x03\x03min\0\0\0\n\x18minecraft:kinetic_weapon\n\x18minecraft:kinetic_weapon\n\x0Ecreative_reach\x05\x03max\0\0\xF0@\x05\x03min\0\0\0@\0\n\x05reach\x05\x03max\0\0\x90@\x05\x03min\0\0\0@\0\n\x14knockback_conditions\x02\x0Cmax_durationn\0\x05\tmin_speed33\xA3@\x05\x12min_relative_speed\0\0\0\0\0\x02\x05delay\x08\0\n\x11damage_conditions\x05\x12min_relative_speed33\x93@\x05\tmin_speed\0\0\0\0\x02\x0Cmax_duration\xAF\0\0\x05\x0Fdamage_modifier\0\0\0\0\n\x13dismount_conditions\x05\tmin_speed\0\0\x10A\x02\x0Cmax_duration2\0\x05\x12min_relative_speed\0\0\0\0\0\x05\x11damage_multiplier\x9A\x99\x99?\x05\rhitbox_margin\0\0\x80>\0\0\n\x18minecraft:swing_duration\x05\x05value33\x93?\0\n\x15minecraft:enchantable\x01\x05value\x0F\x08\x04slot\x0Bmelee_spear\0\n\x18minecraft:fire_resistant\x01\x05value\x01\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\0" } ; pub const NETHERITE_SWORD: Self = Self { id: 646, registry_key: "minecraft:netherite_sword", @@ -45975,7 +45975,7 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const OMINOUS_TRIAL_KEY : Self = Self { id : 282 , registry_key : "minecraft:ominous_trial_key" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\x16minecraft:display_name\x08\x05value\x1Bitem.ominous_trial_key.name\0\n\x0Fitem_properties\x03\x0Cuse_duration\0\x01\x0Eshould_despawn\x01\x03\x0Emax_stack_size\x80\x01\x01\x0Fstacked_by_data\0\x05\x0Cmining_speed\0\0\x80?\x01\x17can_destroy_in_creative\x01\x03\x06damage\0\x01\x12hidden_in_commands\x02\x01\x0Eallow_off_hand\0\x01\x04foil\0\x03\x0Bframe_count\x02\x03\ruse_animation\0\n\x0Eminecraft:icon\n\x08textures\x08\x07default\x11ominous_trial_key\0\0\x01\x0Eliquid_clipped\0\x03\x11creative_category\x08\x08\x10enchantable_slot\x04none\x01\rhand_equipped\0\x03\x11enchantable_value\0\x08\x0Ecreative_group\0\0\t\titem_tags\0\0\0" } ; + pub const OMINOUS_TRIAL_KEY : Self = Self { id : 282 , registry_key : "minecraft:ominous_trial_key" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\x0Fitem_properties\x01\x0Eallow_off_hand\0\x01\rhand_equipped\0\x03\x11creative_category\x08\x03\x06damage\0\x01\x0Fstacked_by_data\0\x01\x17can_destroy_in_creative\x01\x08\x10enchantable_slot\x04none\x01\x0Eliquid_clipped\0\x01\x04foil\0\n\x0Eminecraft:icon\n\x08textures\x08\x07default\x11ominous_trial_key\0\0\x03\x0Bframe_count\x02\x03\ruse_animation\0\x03\x11enchantable_value\0\x01\x0Eshould_despawn\x01\x03\x0Cuse_duration\0\x01\x12hidden_in_commands\x02\x08\x0Ecreative_group\0\x03\x0Emax_stack_size\x80\x01\x05\x0Cmining_speed\0\0\x80?\0\t\titem_tags\0\0\n\x16minecraft:display_name\x08\x05value\x1Bitem.ominous_trial_key.name\0\0" } ; pub const OPEN_EYEBLOSSOM: Self = Self { id: -1018, registry_key: "minecraft:open_eyeblossom", @@ -45983,7 +45983,7 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const ORANGE_BUNDLE : Self = Self { id : 275 , registry_key : "minecraft:orange_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\x1Cminecraft:bundle_interaction\x03\x12num_viewable_slots\x18\0\n\x1Eminecraft:storage_weight_limit\x03\x10max_weight_limit\x80\x01\0\n!minecraft:storage_weight_modifier\x03\x16weight_in_storage_item\x08\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\n\x0Fitem_properties\x08\x10enchantable_slot\x04none\x03\x11enchantable_value\0\x01\x17can_destroy_in_creative\x01\x03\x0Bframe_count\x02\x05\x0Cmining_speed\0\0\x80?\x01\x0Eliquid_clipped\0\x03\x0Emax_stack_size\x02\x03\x11creative_category\x06\x01\rhand_equipped\0\n\x0Eminecraft:icon\n\x08textures\x08\x10bundle_open_back\x17bundle_orange_open_back\x08\x11bundle_open_front\x18bundle_orange_open_front\x08\x07default\rbundle_orange\0\0\x03\x0Cuse_duration\0\x03\x06damage\0\x08\x0Ecreative_group\0\x01\x0Eshould_despawn\x01\x01\x0Fstacked_by_data\0\x01\x04foil\0\x01\x0Eallow_off_hand\0\x01\x12hidden_in_commands\x02\x03\ruse_animation\0\0\t\titem_tags\0\0\n\x16minecraft:storage_item\x01\x1Aallow_nested_storage_items\x01\t\x0Cbanned_items\n\x04\x08\x04name\x15minecraft:shulker_box\0\x08\x04name\x1Cminecraft:undyed_shulker_box\0\x03\tmax_slots\x80\x01\t\rallowed_items\0\0\0\0" } ; + pub const ORANGE_BUNDLE : Self = Self { id : 275 , registry_key : "minecraft:orange_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\x0Fitem_properties\x03\x11creative_category\x06\x08\x10enchantable_slot\x04none\n\x0Eminecraft:icon\n\x08textures\x08\x10bundle_open_back\x17bundle_orange_open_back\x08\x07default\rbundle_orange\x08\x11bundle_open_front\x18bundle_orange_open_front\0\0\x05\x0Cmining_speed\0\0\x80?\x01\x0Eliquid_clipped\0\x03\x06damage\0\x01\x04foil\0\x01\x0Eshould_despawn\x01\x08\x0Ecreative_group\0\x01\x0Fstacked_by_data\0\x03\x0Bframe_count\x02\x01\rhand_equipped\0\x03\x0Cuse_duration\0\x03\ruse_animation\0\x03\x11enchantable_value\0\x01\x0Eallow_off_hand\0\x01\x12hidden_in_commands\x02\x03\x0Emax_stack_size\x02\x01\x17can_destroy_in_creative\x01\0\n\x1Cminecraft:bundle_interaction\x03\x12num_viewable_slots\x18\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\n\x16minecraft:storage_item\t\x0Cbanned_items\n\x04\x08\x04name\x15minecraft:shulker_box\0\x08\x04name\x1Cminecraft:undyed_shulker_box\0\t\rallowed_items\0\0\x03\tmax_slots\x80\x01\x01\x1Aallow_nested_storage_items\x01\0\t\titem_tags\0\0\n\x1Eminecraft:storage_weight_limit\x03\x10max_weight_limit\x80\x01\0\n!minecraft:storage_weight_modifier\x03\x16weight_in_storage_item\x08\0\0" } ; pub const ORANGE_CANDLE: Self = Self { id: -414, registry_key: "minecraft:orange_candle", @@ -46502,7 +46502,7 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const PINK_BUNDLE : Self = Self { id : 276 , registry_key : "minecraft:pink_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n!minecraft:storage_weight_modifier\x03\x16weight_in_storage_item\x08\0\n\x1Cminecraft:bundle_interaction\x03\x12num_viewable_slots\x18\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\n\x16minecraft:storage_item\t\rallowed_items\0\0\x01\x1Aallow_nested_storage_items\x01\t\x0Cbanned_items\n\x04\x08\x04name\x15minecraft:shulker_box\0\x08\x04name\x1Cminecraft:undyed_shulker_box\0\x03\tmax_slots\x80\x01\0\n\x1Eminecraft:storage_weight_limit\x03\x10max_weight_limit\x80\x01\0\n\x0Fitem_properties\x01\x0Fstacked_by_data\0\x03\x11enchantable_value\0\x03\x0Bframe_count\x02\x03\x11creative_category\x06\x05\x0Cmining_speed\0\0\x80?\x03\ruse_animation\0\x08\x0Ecreative_group\0\x01\x0Eshould_despawn\x01\x03\x0Cuse_duration\0\x01\x17can_destroy_in_creative\x01\x01\x12hidden_in_commands\x02\n\x0Eminecraft:icon\n\x08textures\x08\x10bundle_open_back\x15bundle_pink_open_back\x08\x07default\x0Bbundle_pink\x08\x11bundle_open_front\x16bundle_pink_open_front\0\0\x01\rhand_equipped\0\x01\x0Eliquid_clipped\0\x03\x0Emax_stack_size\x02\x08\x10enchantable_slot\x04none\x01\x04foil\0\x03\x06damage\0\x01\x0Eallow_off_hand\0\0\t\titem_tags\0\0\0" } ; + pub const PINK_BUNDLE : Self = Self { id : 276 , registry_key : "minecraft:pink_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\x0Fitem_properties\x03\x11creative_category\x06\x08\x0Ecreative_group\0\x05\x0Cmining_speed\0\0\x80?\x03\ruse_animation\0\x01\x17can_destroy_in_creative\x01\x01\x0Eallow_off_hand\0\x01\rhand_equipped\0\x01\x0Fstacked_by_data\0\x01\x04foil\0\n\x0Eminecraft:icon\n\x08textures\x08\x10bundle_open_back\x15bundle_pink_open_back\x08\x07default\x0Bbundle_pink\x08\x11bundle_open_front\x16bundle_pink_open_front\0\0\x08\x10enchantable_slot\x04none\x03\x11enchantable_value\0\x01\x0Eshould_despawn\x01\x03\x06damage\0\x01\x12hidden_in_commands\x02\x01\x0Eliquid_clipped\0\x03\x0Cuse_duration\0\x03\x0Bframe_count\x02\x03\x0Emax_stack_size\x02\0\t\titem_tags\0\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\n\x16minecraft:storage_item\x03\tmax_slots\x80\x01\x01\x1Aallow_nested_storage_items\x01\t\rallowed_items\0\0\t\x0Cbanned_items\n\x04\x08\x04name\x15minecraft:shulker_box\0\x08\x04name\x1Cminecraft:undyed_shulker_box\0\0\n\x1Eminecraft:storage_weight_limit\x03\x10max_weight_limit\x80\x01\0\n\x1Cminecraft:bundle_interaction\x03\x12num_viewable_slots\x18\0\n!minecraft:storage_weight_modifier\x03\x16weight_in_storage_item\x08\0\0" } ; pub const PINK_CANDLE: Self = Self { id: -419, registry_key: "minecraft:pink_candle", @@ -46636,7 +46636,7 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const PITCHER_POD : Self = Self { id : 326 , registry_key : "minecraft:pitcher_pod" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:seed\x08\x0Bcrop_result\x16minecraft:pitcher_crop\x08\rplant_at_face\x02up\t\x08plant_at\x08\x02\x12minecraft:farmland\x01\x1Aplant_at_any_solid_surface\0\0\0" } ; + pub const PITCHER_POD : Self = Self { id : 326 , registry_key : "minecraft:pitcher_pod" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:seed\x01\x1Aplant_at_any_solid_surface\0\x08\x0Bcrop_result\x16minecraft:pitcher_crop\t\x08plant_at\x08\x02\x12minecraft:farmland\x08\rplant_at_face\x02up\0\0" } ; pub const PLANKS: Self = Self { id: 817, registry_key: "minecraft:planks", @@ -46672,7 +46672,7 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const POISONOUS_POTATO : Self = Self { id : 311 , registry_key : "minecraft:poisonous_potato" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:food\x08\x11using_converts_to\0\x01\x0Ecan_always_eat\0\x05\x13saturation_modifier\x9A\x99\x99>\t\x07effects\n\x02\x03\tamplifier\0\x08\rdescriptionId\rpotion.poison\x05\x06chance\x9A\x99\x19?\x03\x08duration\n\x08\x04name\x06poison\x03\x02id&\0\x08\rcooldown_type\0\x03\rcooldown_time\0\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x03\ron_use_action\x01\x03\tnutrition\x04\0\x03\x16minecraft:use_duration@\0" } ; + pub const POISONOUS_POTATO : Self = Self { id : 311 , registry_key : "minecraft:poisonous_potato" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:food\x08\rcooldown_type\0\x03\tnutrition\x04\x03\rcooldown_time\0\x05\x13saturation_modifier\x9A\x99\x99>\x08\x11using_converts_to\0\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x03\ron_use_action\x01\x01\x0Ecan_always_eat\0\t\x07effects\n\x02\x03\tamplifier\0\x05\x06chance\x9A\x99\x19?\x08\rdescriptionId\rpotion.poison\x03\x08duration\n\x03\x02id&\x08\x04name\x06poison\0\0\x03\x16minecraft:use_duration@\0" } ; pub const POLAR_BEAR_SPAWN_EGG: Self = Self { id: 506, registry_key: "minecraft:polar_bear_spawn_egg", @@ -47009,7 +47009,7 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const PORKCHOP : Self = Self { id : 291 , registry_key : "minecraft:porkchop" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\x03\x16minecraft:use_duration@\n\x0Eminecraft:food\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x01\x0Ecan_always_eat\0\x08\rcooldown_type\0\x03\ron_use_action\x01\x03\tnutrition\x06\x08\x11using_converts_to\0\x03\rcooldown_time\0\x05\x13saturation_modifier\x9A\x99\x99>\0\0" } ; + pub const PORKCHOP : Self = Self { id : 291 , registry_key : "minecraft:porkchop" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:food\x03\rcooldown_time\0\x08\rcooldown_type\0\x08\x11using_converts_to\0\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x05\x13saturation_modifier\x9A\x99\x99>\x03\tnutrition\x06\x03\ron_use_action\x01\x01\x0Ecan_always_eat\0\0\x03\x16minecraft:use_duration@\0" } ; pub const PORTAL: Self = Self { id: 90, registry_key: "minecraft:portal", @@ -47017,7 +47017,7 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const POTATO : Self = Self { id : 309 , registry_key : "minecraft:potato" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:food\x08\x11using_converts_to\0\x03\ron_use_action\x01\x08\rcooldown_type\0\x01\x0Ecan_always_eat\0\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x03\tnutrition\x02\x03\rcooldown_time\0\x05\x13saturation_modifier\x9A\x99\x99>\0\n\x0Eminecraft:seed\t\x08plant_at\x08\x02\x12minecraft:farmland\x01\x1Aplant_at_any_solid_surface\0\x08\rplant_at_face\x02up\x08\x0Bcrop_result\x12minecraft:potatoes\0\x03\x16minecraft:use_duration@\0" } ; + pub const POTATO : Self = Self { id : 309 , registry_key : "minecraft:potato" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:food\x03\tnutrition\x02\x03\ron_use_action\x01\x05\x13saturation_modifier\x9A\x99\x99>\x03\rcooldown_time\0\x08\rcooldown_type\0\x08\x11using_converts_to\0\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x01\x0Ecan_always_eat\0\0\n\x0Eminecraft:seed\x01\x1Aplant_at_any_solid_surface\0\t\x08plant_at\x08\x02\x12minecraft:farmland\x08\x0Bcrop_result\x12minecraft:potatoes\x08\rplant_at_face\x02up\0\x03\x16minecraft:use_duration@\0" } ; pub const POTATOES: Self = Self { id: 142, registry_key: "minecraft:potatoes", @@ -47151,7 +47151,7 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const PUFFERFISH : Self = Self { id : 296 , registry_key : "minecraft:pufferfish" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:food\x01\x0Ecan_always_eat\0\x08\x11using_converts_to\0\x03\ron_use_action\x01\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\t\x07effects\n\x06\x08\rdescriptionId\rpotion.poison\x05\x06chance\0\0\x80?\x03\tamplifier\x02\x03\x08durationx\x03\x02id&\x08\x04name\x06poison\0\x03\tamplifier\0\x08\x04name\x06nausea\x05\x06chance\0\0\x80?\x08\rdescriptionId\x10potion.confusion\x03\x08duration\x1E\x03\x02id\x12\0\x03\tamplifier\x04\x05\x06chance\0\0\x80?\x08\rdescriptionId\rpotion.hunger\x08\x04name\x06hunger\x03\x08duration\x1E\x03\x02id\"\0\x03\rcooldown_time\0\x03\tnutrition\x02\x05\x13saturation_modifier\xCD\xCC\xCC=\x08\rcooldown_type\0\0\x01\x19minecraft:stacked_by_data\x01\x03\x16minecraft:use_duration@\0" } ; + pub const PUFFERFISH : Self = Self { id : 296 , registry_key : "minecraft:pufferfish" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:food\x05\x13saturation_modifier\xCD\xCC\xCC=\x03\tnutrition\x02\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x03\ron_use_action\x01\x03\rcooldown_time\0\x08\rcooldown_type\0\x08\x11using_converts_to\0\x01\x0Ecan_always_eat\0\t\x07effects\n\x06\x03\x08durationx\x05\x06chance\0\0\x80?\x03\x02id&\x03\tamplifier\x02\x08\rdescriptionId\rpotion.poison\x08\x04name\x06poison\0\x03\x08duration\x1E\x03\x02id\x12\x08\x04name\x06nausea\x08\rdescriptionId\x10potion.confusion\x03\tamplifier\0\x05\x06chance\0\0\x80?\0\x03\x08duration\x1E\x08\x04name\x06hunger\x03\x02id\"\x03\tamplifier\x04\x08\rdescriptionId\rpotion.hunger\x05\x06chance\0\0\x80?\0\0\x01\x19minecraft:stacked_by_data\x01\x03\x16minecraft:use_duration@\0" } ; pub const PUFFERFISH_BUCKET: Self = Self { id: 399, registry_key: "minecraft:pufferfish_bucket", @@ -47173,8 +47173,8 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const PUMPKIN_PIE : Self = Self { id : 313 , registry_key : "minecraft:pumpkin_pie" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:food\x08\rcooldown_type\0\x01\x0Ecan_always_eat\0\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x03\rcooldown_time\0\x05\x13saturation_modifier\x9A\x99\x99>\x08\x11using_converts_to\0\x03\tnutrition\x10\x03\ron_use_action\x01\0\x03\x16minecraft:use_duration@\0" } ; - pub const PUMPKIN_SEEDS : Self = Self { id : 321 , registry_key : "minecraft:pumpkin_seeds" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:seed\t\x08plant_at\x08\x02\x12minecraft:farmland\x01\x1Aplant_at_any_solid_surface\0\x08\rplant_at_face\x02up\x08\x0Bcrop_result\x16minecraft:pumpkin_stem\0\0" } ; + pub const PUMPKIN_PIE : Self = Self { id : 313 , registry_key : "minecraft:pumpkin_pie" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\x03\x16minecraft:use_duration@\n\x0Eminecraft:food\x03\rcooldown_time\0\x05\x13saturation_modifier\x9A\x99\x99>\x08\rcooldown_type\0\x03\tnutrition\x10\x03\ron_use_action\x01\x08\x11using_converts_to\0\x01\x0Ecan_always_eat\0\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\0\0" } ; + pub const PUMPKIN_SEEDS : Self = Self { id : 321 , registry_key : "minecraft:pumpkin_seeds" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:seed\x08\x0Bcrop_result\x16minecraft:pumpkin_stem\x01\x1Aplant_at_any_solid_surface\0\t\x08plant_at\x08\x02\x12minecraft:farmland\x08\rplant_at_face\x02up\0\0" } ; pub const PUMPKIN_STEM: Self = Self { id: 104, registry_key: "minecraft:pumpkin_stem", @@ -47182,7 +47182,7 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const PURPLE_BUNDLE : Self = Self { id : 277 , registry_key : "minecraft:purple_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\x0Fitem_properties\x03\x06damage\0\x08\x10enchantable_slot\x04none\x01\x0Eshould_despawn\x01\x03\x0Emax_stack_size\x02\x03\x11creative_category\x06\x03\x11enchantable_value\0\x03\ruse_animation\0\n\x0Eminecraft:icon\n\x08textures\x08\x11bundle_open_front\x18bundle_purple_open_front\x08\x07default\rbundle_purple\x08\x10bundle_open_back\x17bundle_purple_open_back\0\0\x05\x0Cmining_speed\0\0\x80?\x01\rhand_equipped\0\x03\x0Bframe_count\x02\x01\x04foil\0\x01\x0Eallow_off_hand\0\x01\x17can_destroy_in_creative\x01\x08\x0Ecreative_group\0\x01\x12hidden_in_commands\x02\x01\x0Eliquid_clipped\0\x01\x0Fstacked_by_data\0\x03\x0Cuse_duration\0\0\t\titem_tags\0\0\n\x1Cminecraft:bundle_interaction\x03\x12num_viewable_slots\x18\0\n\x16minecraft:storage_item\t\rallowed_items\0\0\x03\tmax_slots\x80\x01\t\x0Cbanned_items\n\x04\x08\x04name\x15minecraft:shulker_box\0\x08\x04name\x1Cminecraft:undyed_shulker_box\0\x01\x1Aallow_nested_storage_items\x01\0\n\x1Eminecraft:storage_weight_limit\x03\x10max_weight_limit\x80\x01\0\n!minecraft:storage_weight_modifier\x03\x16weight_in_storage_item\x08\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\0" } ; + pub const PURPLE_BUNDLE : Self = Self { id : 277 , registry_key : "minecraft:purple_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\t\titem_tags\0\0\n\x16minecraft:storage_item\x01\x1Aallow_nested_storage_items\x01\t\rallowed_items\0\0\x03\tmax_slots\x80\x01\t\x0Cbanned_items\n\x04\x08\x04name\x15minecraft:shulker_box\0\x08\x04name\x1Cminecraft:undyed_shulker_box\0\0\n\x1Eminecraft:storage_weight_limit\x03\x10max_weight_limit\x80\x01\0\n!minecraft:storage_weight_modifier\x03\x16weight_in_storage_item\x08\0\n\x0Fitem_properties\x03\x0Emax_stack_size\x02\x08\x10enchantable_slot\x04none\x01\x12hidden_in_commands\x02\n\x0Eminecraft:icon\n\x08textures\x08\x07default\rbundle_purple\x08\x10bundle_open_back\x17bundle_purple_open_back\x08\x11bundle_open_front\x18bundle_purple_open_front\0\0\x01\x04foil\0\x05\x0Cmining_speed\0\0\x80?\x01\x0Eallow_off_hand\0\x01\x0Fstacked_by_data\0\x03\x11creative_category\x06\x08\x0Ecreative_group\0\x03\x0Cuse_duration\0\x01\x0Eliquid_clipped\0\x03\x06damage\0\x01\x17can_destroy_in_creative\x01\x03\x11enchantable_value\0\x03\ruse_animation\0\x01\x0Eshould_despawn\x01\x03\x0Bframe_count\x02\x01\rhand_equipped\0\0\n\x1Cminecraft:bundle_interaction\x03\x12num_viewable_slots\x18\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\0" } ; pub const PURPLE_CANDLE: Self = Self { id: -423, registry_key: "minecraft:purple_candle", @@ -47365,7 +47365,7 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const RABBIT : Self = Self { id : 317 , registry_key : "minecraft:rabbit" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\x03\x16minecraft:use_duration@\n\x0Eminecraft:food\x03\ron_use_action\x01\x03\rcooldown_time\0\x08\x11using_converts_to\0\x08\rcooldown_type\0\x05\x13saturation_modifier\x9A\x99\x99>\x03\tnutrition\x06\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x01\x0Ecan_always_eat\0\0\0" } ; + pub const RABBIT : Self = Self { id : 317 , registry_key : "minecraft:rabbit" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:food\x03\rcooldown_time\0\x08\rcooldown_type\0\x05\x13saturation_modifier\x9A\x99\x99>\x08\x11using_converts_to\0\x03\ron_use_action\x01\x01\x0Ecan_always_eat\0\x03\tnutrition\x06\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\0\x03\x16minecraft:use_duration@\0" } ; pub const RABBIT_FOOT: Self = Self { id: 567, registry_key: "minecraft:rabbit_foot", @@ -47387,7 +47387,7 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const RABBIT_STEW : Self = Self { id : 319 , registry_key : "minecraft:rabbit_stew" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\x03\x18minecraft:max_stack_size\x02\n\x0Eminecraft:food\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x05\x13saturation_modifier\x9A\x99\x19?\x08\rcooldown_type\0\x03\ron_use_action\x01\x08\x11using_converts_to\x04bowl\x01\x0Ecan_always_eat\0\x03\rcooldown_time\0\x03\tnutrition\x14\0\x03\x16minecraft:use_duration@\0" } ; + pub const RABBIT_STEW : Self = Self { id : 319 , registry_key : "minecraft:rabbit_stew" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\x03\x16minecraft:use_duration@\x03\x18minecraft:max_stack_size\x02\n\x0Eminecraft:food\x08\x11using_converts_to\x04bowl\x05\x13saturation_modifier\x9A\x99\x19?\x01\x0Ecan_always_eat\0\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x08\rcooldown_type\0\x03\tnutrition\x14\x03\rcooldown_time\0\x03\ron_use_action\x01\0\0" } ; pub const RAIL: Self = Self { id: 66, registry_key: "minecraft:rail", @@ -47465,7 +47465,7 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const RED_BUNDLE : Self = Self { id : 278 , registry_key : "minecraft:red_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\n\x16minecraft:storage_item\t\x0Cbanned_items\n\x04\x08\x04name\x15minecraft:shulker_box\0\x08\x04name\x1Cminecraft:undyed_shulker_box\0\t\rallowed_items\0\0\x03\tmax_slots\x80\x01\x01\x1Aallow_nested_storage_items\x01\0\n\x0Fitem_properties\x01\x0Fstacked_by_data\0\x03\x0Cuse_duration\0\x08\x0Ecreative_group\0\x03\x0Emax_stack_size\x02\x01\x0Eshould_despawn\x01\x01\rhand_equipped\0\x01\x17can_destroy_in_creative\x01\x01\x0Eallow_off_hand\0\x03\x11creative_category\x06\x01\x0Eliquid_clipped\0\x03\x11enchantable_value\0\x08\x10enchantable_slot\x04none\x03\x0Bframe_count\x02\x01\x12hidden_in_commands\x02\n\x0Eminecraft:icon\n\x08textures\x08\x07default\nbundle_red\x08\x11bundle_open_front\x15bundle_red_open_front\x08\x10bundle_open_back\x14bundle_red_open_back\0\0\x05\x0Cmining_speed\0\0\x80?\x01\x04foil\0\x03\ruse_animation\0\x03\x06damage\0\0\n\x1Eminecraft:storage_weight_limit\x03\x10max_weight_limit\x80\x01\0\n!minecraft:storage_weight_modifier\x03\x16weight_in_storage_item\x08\0\n\x1Cminecraft:bundle_interaction\x03\x12num_viewable_slots\x18\0\t\titem_tags\0\0\0" } ; + pub const RED_BUNDLE : Self = Self { id : 278 , registry_key : "minecraft:red_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\x16minecraft:storage_item\t\x0Cbanned_items\n\x04\x08\x04name\x15minecraft:shulker_box\0\x08\x04name\x1Cminecraft:undyed_shulker_box\0\x03\tmax_slots\x80\x01\x01\x1Aallow_nested_storage_items\x01\t\rallowed_items\0\0\0\t\titem_tags\0\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\n\x1Eminecraft:storage_weight_limit\x03\x10max_weight_limit\x80\x01\0\n\x1Cminecraft:bundle_interaction\x03\x12num_viewable_slots\x18\0\n!minecraft:storage_weight_modifier\x03\x16weight_in_storage_item\x08\0\n\x0Fitem_properties\x01\x17can_destroy_in_creative\x01\x03\ruse_animation\0\x03\x11enchantable_value\0\x01\rhand_equipped\0\x01\x0Eshould_despawn\x01\x03\x0Emax_stack_size\x02\x03\x06damage\0\x01\x0Eliquid_clipped\0\x03\x11creative_category\x06\x03\x0Bframe_count\x02\x01\x12hidden_in_commands\x02\n\x0Eminecraft:icon\n\x08textures\x08\x11bundle_open_front\x15bundle_red_open_front\x08\x07default\nbundle_red\x08\x10bundle_open_back\x14bundle_red_open_back\0\0\x05\x0Cmining_speed\0\0\x80?\x03\x0Cuse_duration\0\x01\x04foil\0\x01\x0Fstacked_by_data\0\x01\x0Eallow_off_hand\0\x08\x10enchantable_slot\x04none\x08\x0Ecreative_group\0\0\0" } ; pub const RED_CANDLE: Self = Self { id: -427, registry_key: "minecraft:red_candle", @@ -47809,7 +47809,7 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const ROTTEN_FLESH : Self = Self { id : 306 , registry_key : "minecraft:rotten_flesh" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\x03\x16minecraft:use_duration@\n\x0Eminecraft:food\x01\x0Ecan_always_eat\0\x03\tnutrition\x08\x03\rcooldown_time\0\x05\x13saturation_modifier\xCD\xCC\xCC=\x08\x11using_converts_to\0\x03\ron_use_action\x01\x08\rcooldown_type\0\t\x07effects\n\x02\x08\rdescriptionId\rpotion.hunger\x03\tamplifier\0\x03\x08duration<\x08\x04name\x06hunger\x03\x02id\"\x05\x06chance\xCD\xCCL?\0\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\0\0" } ; + pub const ROTTEN_FLESH : Self = Self { id : 306 , registry_key : "minecraft:rotten_flesh" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\x03\x16minecraft:use_duration@\n\x0Eminecraft:food\x08\rcooldown_type\0\x08\x11using_converts_to\0\t\x07effects\n\x02\x05\x06chance\xCD\xCCL?\x03\x02id\"\x03\x08duration<\x08\x04name\x06hunger\x03\tamplifier\0\x08\rdescriptionId\rpotion.hunger\0\x01\x0Ecan_always_eat\0\x03\tnutrition\x08\x03\rcooldown_time\0\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x03\ron_use_action\x01\x05\x13saturation_modifier\xCD\xCC\xCC=\0\0" } ; pub const SADDLE: Self = Self { id: 403, registry_key: "minecraft:saddle", @@ -47817,7 +47817,7 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const SALMON : Self = Self { id : 294 , registry_key : "minecraft:salmon" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:food\x03\ron_use_action\x01\x03\tnutrition\x04\x08\rcooldown_type\0\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x03\rcooldown_time\0\x05\x13saturation_modifier\xCD\xCC\xCC=\x08\x11using_converts_to\0\x01\x0Ecan_always_eat\0\0\x01\x19minecraft:stacked_by_data\x01\x03\x16minecraft:use_duration@\0" } ; + pub const SALMON : Self = Self { id : 294 , registry_key : "minecraft:salmon" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\x01\x19minecraft:stacked_by_data\x01\x03\x16minecraft:use_duration@\n\x0Eminecraft:food\x03\ron_use_action\x01\x01\x0Ecan_always_eat\0\x08\x11using_converts_to\0\x05\x13saturation_modifier\xCD\xCC\xCC=\x03\rcooldown_time\0\x08\rcooldown_type\0\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x03\tnutrition\x04\0\0" } ; pub const SALMON_BUCKET: Self = Self { id: 397, registry_key: "minecraft:salmon_bucket", @@ -48378,7 +48378,7 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const SPIDER_EYE : Self = Self { id : 307 , registry_key : "minecraft:spider_eye" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\x03\x16minecraft:use_duration@\n\x0Eminecraft:food\x01\x0Ecan_always_eat\0\t\x07effects\n\x02\x03\tamplifier\0\x03\x08duration\n\x08\x04name\x06poison\x05\x06chance\0\0\x80?\x03\x02id&\x08\rdescriptionId\rpotion.poison\0\x08\x11using_converts_to\0\x08\rcooldown_type\0\x05\x13saturation_modifier\xCD\xCCL?\x03\ron_use_action\x01\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x03\tnutrition\x04\x03\rcooldown_time\0\0\0" } ; + pub const SPIDER_EYE : Self = Self { id : 307 , registry_key : "minecraft:spider_eye" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\x03\x16minecraft:use_duration@\n\x0Eminecraft:food\x08\x11using_converts_to\0\x08\rcooldown_type\0\x03\tnutrition\x04\t\x07effects\n\x02\x03\x02id&\x08\x04name\x06poison\x08\rdescriptionId\rpotion.poison\x05\x06chance\0\0\x80?\x03\tamplifier\0\x03\x08duration\n\0\x01\x0Ecan_always_eat\0\x03\ron_use_action\x01\x03\rcooldown_time\0\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x05\x13saturation_modifier\xCD\xCCL?\0\0" } ; pub const SPIDER_SPAWN_EGG: Self = Self { id: 479, registry_key: "minecraft:spider_spawn_egg", @@ -48743,7 +48743,7 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const STONE_SPEAR : Self = Self { id : 262 , registry_key : "minecraft:stone_spear" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\x14minecraft:durability\n\rdamage_chance\x03\x03min\0\x03\x03max\xC8\x01\0\x03\x0Emax_durability\x84\x02\0\n\x0Fitem_properties\x01\x0Eallow_off_hand\0\x08\x0Ecreative_group\0\x03\x11enchantable_value\n\n\x0Eminecraft:icon\n\x08textures\x08\x07default\x0Bstone_spear\0\0\x03\x0Bframe_count\x02\x01\x04foil\0\x05\x0Cmining_speed\0\0\x80?\x01\rhand_equipped\x01\x01\x0Fstacked_by_data\0\x01\x12hidden_in_commands\x02\x03\x0Emax_stack_size\x02\x01\x17can_destroy_in_creative\x01\x01\x0Eshould_despawn\x01\x08\x10enchantable_slot\x0Bmelee_spear\x03\ruse_animation\0\x03\x06damage\x04\x03\x11creative_category\x06\x03\x0Cuse_duration\x80\xE4\xAF\x01\x01\x0Eliquid_clipped\0\0\n\x16minecraft:display_name\x08\x05value\x15item.stone_spear.name\0\n\x15minecraft:enchantable\x08\x04slot\x0Bmelee_spear\x01\x05value\x05\0\n\x0Eminecraft:tags\t\x04tags\x08\x04\x14minecraft:stone_tier\x12minecraft:is_spear\0\n\x17minecraft:hand_equipped\x01\x05value\x01\0\n\x18minecraft:kinetic_weapon\n\x18minecraft:kinetic_weapon\n\x13dismount_conditions\x02\x0Cmax_durationZ\0\x05\x12min_relative_speed\0\0\0\0\x05\tmin_speed\0\0PA\0\x05\x11damage_multiplier\x85\xEBQ?\n\x05reach\x05\x03max\0\0\x90@\x05\x03min\0\0\0@\0\x05\rhitbox_margin\0\0\x80>\x05\x0Fdamage_modifier\0\0\0\0\n\x0Ecreative_reach\x05\x03max\0\0\xF0@\x05\x03min\0\0\0@\0\x02\x05delay\x0E\0\n\x11damage_conditions\x02\x0Cmax_duration\x13\x01\x05\x12min_relative_speed33\x93@\x05\tmin_speed\0\0\0\0\0\n\x14knockback_conditions\x05\tmin_speed33\xA3@\x02\x0Cmax_duration\xB4\0\x05\x12min_relative_speed\0\0\0\0\0\0\0\n\x14minecraft:repairable\t\x0Crepair_items\n\x04\t\x05items\n\x02\x08\x04name\x15minecraft:stone_spear\0\n\rrepair_amount\x08\nexpression)context.other->query.remaining_durability\x02\x07version\r\0\0\0\n\rrepair_amount\x08\nexpression\x1Bquery.max_durability * 0.25\x02\x07version\r\0\0\t\x05items\n\x02\x08\x04tags,q.all_tags('minecraft:stone_tool_materials')\0\0\0\n\x17minecraft:use_modifiers\x08\x0Bstart_sound\x14item.stone_spear.use\x08\x0Bstart_using\x06always\x05\x0Cuse_duration\0\xA0\x8CG\x01\x0Femit_vibrations\0\x05\x11movement_modifier\0\0\x80?\0\n\x16minecraft:swing_sounds\x08\x0Battack_miss\x1Citem.stone_spear.attack_miss\x08\nattack_hit\x1Bitem.stone_spear.attack_hit\0\n\x12minecraft:cooldown\x08\x08category\x05spear\x05\x08duration\0\0@?\x08\x04type\x06attack\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\n\x10minecraft:damage\x02\x05value\x02\0\0\t\titem_tags\x08\x04\x14minecraft:stone_tier\x12minecraft:is_spear\n\x19minecraft:piercing_weapon\n\x05reach\x05\x03min\0\0\0@\x05\x03max\0\0\x90@\0\x05\rhitbox_margin\0\0\x80>\n\x0Ecreative_reach\x05\x03max\0\0\xF0@\x05\x03min\0\0\0@\0\0\n\x18minecraft:swing_duration\x05\x05value\0\0@?\0\0" } ; + pub const STONE_SPEAR : Self = Self { id : 262 , registry_key : "minecraft:stone_spear" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\x0Fitem_properties\x01\x0Eliquid_clipped\0\n\x0Eminecraft:icon\n\x08textures\x08\x07default\x0Bstone_spear\0\0\x01\x17can_destroy_in_creative\x01\x03\x11creative_category\x06\x03\x06damage\x04\x01\rhand_equipped\x01\x01\x0Eshould_despawn\x01\x08\x0Ecreative_group\0\x03\x11enchantable_value\n\x01\x0Eallow_off_hand\0\x05\x0Cmining_speed\0\0\x80?\x01\x0Fstacked_by_data\0\x03\ruse_animation\0\x03\x0Emax_stack_size\x02\x01\x04foil\0\x01\x12hidden_in_commands\x02\x03\x0Bframe_count\x02\x03\x0Cuse_duration\x80\xE4\xAF\x01\x08\x10enchantable_slot\x0Bmelee_spear\0\n\x19minecraft:piercing_weapon\n\x05reach\x05\x03max\0\0\x90@\x05\x03min\0\0\0@\0\n\x0Ecreative_reach\x05\x03min\0\0\0@\x05\x03max\0\0\xF0@\0\x05\rhitbox_margin\0\0\x80>\0\n\x16minecraft:display_name\x08\x05value\x15item.stone_spear.name\0\n\x17minecraft:hand_equipped\x01\x05value\x01\0\n\x15minecraft:enchantable\x08\x04slot\x0Bmelee_spear\x01\x05value\x05\0\n\x12minecraft:cooldown\x08\x08category\x05spear\x05\x08duration\0\0@?\x08\x04type\x06attack\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\n\x14minecraft:durability\n\rdamage_chance\x03\x03min\0\x03\x03max\xC8\x01\0\x03\x0Emax_durability\x84\x02\0\n\x18minecraft:kinetic_weapon\n\x18minecraft:kinetic_weapon\n\x11damage_conditions\x05\x12min_relative_speed33\x93@\x05\tmin_speed\0\0\0\0\x02\x0Cmax_duration\x13\x01\0\x02\x05delay\x0E\0\x05\x11damage_multiplier\x85\xEBQ?\n\x13dismount_conditions\x02\x0Cmax_durationZ\0\x05\x12min_relative_speed\0\0\0\0\x05\tmin_speed\0\0PA\0\n\x14knockback_conditions\x05\x12min_relative_speed\0\0\0\0\x05\tmin_speed33\xA3@\x02\x0Cmax_duration\xB4\0\0\n\x05reach\x05\x03min\0\0\0@\x05\x03max\0\0\x90@\0\x05\x0Fdamage_modifier\0\0\0\0\n\x0Ecreative_reach\x05\x03min\0\0\0@\x05\x03max\0\0\xF0@\0\x05\rhitbox_margin\0\0\x80>\0\0\n\x10minecraft:damage\x02\x05value\x02\0\0\n\x14minecraft:repairable\t\x0Crepair_items\n\x04\t\x05items\n\x02\x08\x04name\x15minecraft:stone_spear\0\n\rrepair_amount\x08\nexpression)context.other->query.remaining_durability\x02\x07version\r\0\0\0\n\rrepair_amount\x08\nexpression\x1Bquery.max_durability * 0.25\x02\x07version\r\0\0\t\x05items\n\x02\x08\x04tags,q.all_tags('minecraft:stone_tool_materials')\0\0\0\t\titem_tags\x08\x04\x14minecraft:stone_tier\x12minecraft:is_spear\n\x18minecraft:swing_duration\x05\x05value\0\0@?\0\n\x0Eminecraft:tags\t\x04tags\x08\x04\x14minecraft:stone_tier\x12minecraft:is_spear\0\n\x17minecraft:use_modifiers\x08\x0Bstart_using\x06always\x05\x11movement_modifier\0\0\x80?\x08\x0Bstart_sound\x14item.stone_spear.use\x05\x0Cuse_duration\0\xA0\x8CG\x01\x0Femit_vibrations\0\0\n\x16minecraft:swing_sounds\x08\x0Battack_miss\x1Citem.stone_spear.attack_miss\x08\nattack_hit\x1Bitem.stone_spear.attack_hit\0\0" } ; pub const STONE_STAIRS: Self = Self { id: 67, registry_key: "minecraft:stone_stairs", @@ -49101,8 +49101,8 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const SUSPICIOUS_STEW : Self = Self { id : 631 , registry_key : "minecraft:suspicious_stew" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\x03\x18minecraft:max_stack_size\x02\n\x0Eminecraft:food\x03\ron_use_action\x02\x01\x0Ecan_always_eat\x01\x03\tnutrition\x0C\x03\rcooldown_time\0\x08\rcooldown_type\0\x05\x13saturation_modifier\x9A\x99\x19?\x08\x11using_converts_to\x04bowl\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\0\x03\x16minecraft:use_duration@\0" } ; - pub const SWEET_BERRIES : Self = Self { id : 316 , registry_key : "minecraft:sweet_berries" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:food\x01\x0Ecan_always_eat\0\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x03\rcooldown_time\0\x03\tnutrition\x04\x05\x13saturation_modifier\x9A\x99\x99>\x08\rcooldown_type\0\x03\ron_use_action\x01\x08\x11using_converts_to\0\0\n\x0Eminecraft:seed\t\x08plant_at\x08\x14\x08farmland\x05grass\x04dirt\x0Bcoarse_dirt\x06podzol\nmoss_block\x08mycelium\x03mud\x14muddy_mangrove_roots\x0Fdirt_with_roots\x01\x1Aplant_at_any_solid_surface\0\x08\x0Bcrop_result\x1Aminecraft:sweet_berry_bush\x08\rplant_at_face\x02up\0\x03\x16minecraft:use_duration@\0" } ; + pub const SUSPICIOUS_STEW : Self = Self { id : 631 , registry_key : "minecraft:suspicious_stew" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\x03\x16minecraft:use_duration@\n\x0Eminecraft:food\x08\x11using_converts_to\x04bowl\x03\rcooldown_time\0\x08\rcooldown_type\0\x03\ron_use_action\x02\x01\x0Ecan_always_eat\x01\x05\x13saturation_modifier\x9A\x99\x19?\x03\tnutrition\x0C\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\0\x03\x18minecraft:max_stack_size\x02\0" } ; + pub const SWEET_BERRIES : Self = Self { id : 316 , registry_key : "minecraft:sweet_berries" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:seed\t\x08plant_at\x08\x14\x08farmland\x05grass\x04dirt\x0Bcoarse_dirt\x06podzol\nmoss_block\x08mycelium\x03mud\x14muddy_mangrove_roots\x0Fdirt_with_roots\x08\rplant_at_face\x02up\x08\x0Bcrop_result\x1Aminecraft:sweet_berry_bush\x01\x1Aplant_at_any_solid_surface\0\0\n\x0Eminecraft:food\x01\x0Ecan_always_eat\0\x05\x13saturation_modifier\x9A\x99\x99>\x08\rcooldown_type\0\x03\tnutrition\x04\x08\x11using_converts_to\0\x03\rcooldown_time\0\x03\ron_use_action\x01\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\0\x03\x16minecraft:use_duration@\0" } ; pub const SWEET_BERRY_BUSH: Self = Self { id: -207, registry_key: "minecraft:sweet_berry_bush", @@ -49201,7 +49201,7 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const TORCHFLOWER_SEEDS : Self = Self { id : 325 , registry_key : "minecraft:torchflower_seeds" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:seed\x08\rplant_at_face\x02up\t\x08plant_at\x08\x02\x12minecraft:farmland\x01\x1Aplant_at_any_solid_surface\0\x08\x0Bcrop_result\x1Aminecraft:torchflower_crop\0\0" } ; + pub const TORCHFLOWER_SEEDS : Self = Self { id : 325 , registry_key : "minecraft:torchflower_seeds" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:seed\x01\x1Aplant_at_any_solid_surface\0\x08\x0Bcrop_result\x1Aminecraft:torchflower_crop\x08\rplant_at_face\x02up\t\x08plant_at\x08\x02\x12minecraft:farmland\0\0" } ; pub const TOTEM_OF_UNDYING: Self = Self { id: 607, registry_key: "minecraft:totem_of_undying", @@ -49230,7 +49230,7 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const TRIAL_KEY : Self = Self { id : 283 , registry_key : "minecraft:trial_key" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\t\titem_tags\0\0\n\x0Fitem_properties\x01\x0Eshould_despawn\x01\x05\x0Cmining_speed\0\0\x80?\x03\ruse_animation\0\x01\x0Eliquid_clipped\0\x03\x0Bframe_count\x02\x03\x0Cuse_duration\0\x03\x06damage\0\x03\x11enchantable_value\0\x08\x0Ecreative_group\0\x01\rhand_equipped\0\x01\x12hidden_in_commands\x02\x03\x0Emax_stack_size\x80\x01\x01\x0Eallow_off_hand\0\x01\x17can_destroy_in_creative\x01\x01\x04foil\0\n\x0Eminecraft:icon\n\x08textures\x08\x07default\ttrial_key\0\0\x03\x11creative_category\x08\x08\x10enchantable_slot\x04none\x01\x0Fstacked_by_data\0\0\n\x16minecraft:display_name\x08\x05value\x13item.trial_key.name\0\0" } ; + pub const TRIAL_KEY : Self = Self { id : 283 , registry_key : "minecraft:trial_key" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\t\titem_tags\0\0\n\x0Fitem_properties\x01\x0Fstacked_by_data\0\n\x0Eminecraft:icon\n\x08textures\x08\x07default\ttrial_key\0\0\x03\ruse_animation\0\x01\rhand_equipped\0\x03\x0Emax_stack_size\x80\x01\x03\x06damage\0\x01\x17can_destroy_in_creative\x01\x03\x11enchantable_value\0\x03\x0Cuse_duration\0\x03\x11creative_category\x08\x01\x0Eallow_off_hand\0\x01\x0Eliquid_clipped\0\x08\x0Ecreative_group\0\x01\x04foil\0\x01\x0Eshould_despawn\x01\x03\x0Bframe_count\x02\x08\x10enchantable_slot\x04none\x01\x12hidden_in_commands\x02\x05\x0Cmining_speed\0\0\x80?\0\n\x16minecraft:display_name\x08\x05value\x13item.trial_key.name\0\0" } ; pub const TRIAL_SPAWNER: Self = Self { id: -315, registry_key: "minecraft:trial_spawner", @@ -49259,7 +49259,7 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const TROPICAL_FISH : Self = Self { id : 295 , registry_key : "minecraft:tropical_fish" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\x01\x19minecraft:stacked_by_data\x01\n\x0Eminecraft:food\x03\ron_use_action\x01\x08\rcooldown_type\0\x01\x0Ecan_always_eat\0\x03\rcooldown_time\0\x08\x11using_converts_to\0\x03\tnutrition\x02\x05\x13saturation_modifier\xCD\xCC\xCC=\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\0\x03\x16minecraft:use_duration@\0" } ; + pub const TROPICAL_FISH : Self = Self { id : 295 , registry_key : "minecraft:tropical_fish" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\x01\x19minecraft:stacked_by_data\x01\n\x0Eminecraft:food\x08\rcooldown_type\0\x01\x0Ecan_always_eat\0\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x03\tnutrition\x02\x03\rcooldown_time\0\x08\x11using_converts_to\0\x03\ron_use_action\x01\x05\x13saturation_modifier\xCD\xCC\xCC=\0\x03\x16minecraft:use_duration@\0" } ; pub const TROPICAL_FISH_BUCKET: Self = Self { id: 398, registry_key: "minecraft:tropical_fish_bucket", @@ -50310,8 +50310,8 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const WHEAT_SEEDS : Self = Self { id : 320 , registry_key : "minecraft:wheat_seeds" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:seed\x08\rplant_at_face\x02up\t\x08plant_at\x08\x02\x12minecraft:farmland\x01\x1Aplant_at_any_solid_surface\0\x08\x0Bcrop_result\x0Fminecraft:wheat\0\0" } ; - pub const WHITE_BUNDLE : Self = Self { id : 279 , registry_key : "minecraft:white_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\t\titem_tags\0\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\n\x0Fitem_properties\x01\x0Eshould_despawn\x01\x03\ruse_animation\0\x01\x17can_destroy_in_creative\x01\x01\rhand_equipped\0\x01\x0Eliquid_clipped\0\x08\x10enchantable_slot\x04none\x01\x12hidden_in_commands\x02\x08\x0Ecreative_group\0\x03\x0Cuse_duration\0\x03\x11creative_category\x06\x05\x0Cmining_speed\0\0\x80?\x01\x0Eallow_off_hand\0\x03\x0Bframe_count\x02\x03\x06damage\0\x01\x04foil\0\x01\x0Fstacked_by_data\0\x03\x0Emax_stack_size\x02\x03\x11enchantable_value\0\n\x0Eminecraft:icon\n\x08textures\x08\x11bundle_open_front\x17bundle_white_open_front\x08\x07default\x0Cbundle_white\x08\x10bundle_open_back\x16bundle_white_open_back\0\0\0\n\x16minecraft:storage_item\t\x0Cbanned_items\n\x04\x08\x04name\x15minecraft:shulker_box\0\x08\x04name\x1Cminecraft:undyed_shulker_box\0\t\rallowed_items\0\0\x03\tmax_slots\x80\x01\x01\x1Aallow_nested_storage_items\x01\0\n\x1Eminecraft:storage_weight_limit\x03\x10max_weight_limit\x80\x01\0\n\x1Cminecraft:bundle_interaction\x03\x12num_viewable_slots\x18\0\n!minecraft:storage_weight_modifier\x03\x16weight_in_storage_item\x08\0\0" } ; + pub const WHEAT_SEEDS : Self = Self { id : 320 , registry_key : "minecraft:wheat_seeds" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\x0Eminecraft:seed\x01\x1Aplant_at_any_solid_surface\0\x08\rplant_at_face\x02up\x08\x0Bcrop_result\x0Fminecraft:wheat\t\x08plant_at\x08\x02\x12minecraft:farmland\0\0" } ; + pub const WHITE_BUNDLE : Self = Self { id : 279 , registry_key : "minecraft:white_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\t\titem_tags\0\0\n\x16minecraft:storage_item\t\rallowed_items\0\0\x01\x1Aallow_nested_storage_items\x01\x03\tmax_slots\x80\x01\t\x0Cbanned_items\n\x04\x08\x04name\x15minecraft:shulker_box\0\x08\x04name\x1Cminecraft:undyed_shulker_box\0\0\n\x1Eminecraft:storage_weight_limit\x03\x10max_weight_limit\x80\x01\0\n\x0Fitem_properties\x08\x0Ecreative_group\0\x01\x04foil\0\x03\x11creative_category\x06\x01\x0Eliquid_clipped\0\x03\ruse_animation\0\x03\x0Cuse_duration\0\x01\x17can_destroy_in_creative\x01\n\x0Eminecraft:icon\n\x08textures\x08\x07default\x0Cbundle_white\x08\x11bundle_open_front\x17bundle_white_open_front\x08\x10bundle_open_back\x16bundle_white_open_back\0\0\x01\x0Eallow_off_hand\0\x03\x0Emax_stack_size\x02\x01\x12hidden_in_commands\x02\x03\x06damage\0\x03\x0Bframe_count\x02\x01\x0Fstacked_by_data\0\x03\x11enchantable_value\0\x08\x10enchantable_slot\x04none\x05\x0Cmining_speed\0\0\x80?\x01\x0Eshould_despawn\x01\x01\rhand_equipped\0\0\n!minecraft:storage_weight_modifier\x03\x16weight_in_storage_item\x08\0\n\x1Cminecraft:bundle_interaction\x03\x12num_viewable_slots\x18\0\0" } ; pub const WHITE_CANDLE: Self = Self { id: -413, registry_key: "minecraft:white_candle", @@ -50424,7 +50424,7 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const WIND_CHARGE : Self = Self { id : 284 , registry_key : "minecraft:wind_charge" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\x0Fitem_properties\x01\x12hidden_in_commands\x02\x01\x0Eallow_off_hand\0\x08\x0Ecreative_group\0\x01\rhand_equipped\0\x03\x0Emax_stack_size\x80\x01\x03\x11creative_category\x06\x03\x06damage\0\x03\x0Bframe_count\x02\x01\x0Eliquid_clipped\0\n\x0Eminecraft:icon\n\x08textures\x08\x07default\x0Bwind_charge\0\0\x01\x04foil\0\x01\x0Eshould_despawn\x01\x08\x10enchantable_slot\x04none\x01\x0Fstacked_by_data\0\x03\x11enchantable_value\0\x05\x0Cmining_speed\0\0\x80?\x03\x0Cuse_duration\0\x03\ruse_animation\0\x01\x17can_destroy_in_creative\x01\0\n\x12minecraft:cooldown\x08\x08category\x0Bwind_charge\x05\x08duration\0\0\0?\x08\x04type\x03use\0\n\x14minecraft:projectile\x08\x11projectile_entity\"minecraft:wind_charge_projectile<>\x05\x16minimum_critical_power\0\0\0\0\0\t\titem_tags\0\0\n\x16minecraft:display_name\x08\x05value\x15item.wind_charge.name\0\n\x13minecraft:throwable\x05\x11max_draw_duration\0\0\0\0\x05\x11min_draw_duration\0\0\0\0\x05\x12launch_power_scale\0\0\xC0?\x05\x10max_launch_power\0\0\xC0?\x01\x12do_swing_animation\x01\x01\x1Cscale_power_by_draw_duration\0\0\0" } ; + pub const WIND_CHARGE : Self = Self { id : 284 , registry_key : "minecraft:wind_charge" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\x0Fitem_properties\x03\x0Emax_stack_size\x80\x01\x01\x0Eshould_despawn\x01\x03\ruse_animation\0\x03\x0Bframe_count\x02\x03\x11enchantable_value\0\x05\x0Cmining_speed\0\0\x80?\x01\x0Fstacked_by_data\0\x03\x11creative_category\x06\x01\x17can_destroy_in_creative\x01\x01\x0Eallow_off_hand\0\x01\x04foil\0\x01\x12hidden_in_commands\x02\x01\x0Eliquid_clipped\0\x08\x0Ecreative_group\0\n\x0Eminecraft:icon\n\x08textures\x08\x07default\x0Bwind_charge\0\0\x03\x0Cuse_duration\0\x03\x06damage\0\x08\x10enchantable_slot\x04none\x01\rhand_equipped\0\0\n\x13minecraft:throwable\x05\x11min_draw_duration\0\0\0\0\x01\x12do_swing_animation\x01\x05\x11max_draw_duration\0\0\0\0\x05\x10max_launch_power\0\0\xC0?\x01\x1Cscale_power_by_draw_duration\0\x05\x12launch_power_scale\0\0\xC0?\0\n\x12minecraft:cooldown\x08\x04type\x03use\x08\x08category\x0Bwind_charge\x05\x08duration\0\0\0?\0\n\x16minecraft:display_name\x08\x05value\x15item.wind_charge.name\0\n\x14minecraft:projectile\x05\x16minimum_critical_power\0\0\0\0\x08\x11projectile_entity\"minecraft:wind_charge_projectile<>\0\t\titem_tags\0\0\0" } ; pub const WITCH_SPAWN_EGG: Self = Self { id: 485, registry_key: "minecraft:witch_spawn_egg", @@ -50537,7 +50537,7 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const WOODEN_SPEAR : Self = Self { id : 263 , registry_key : "minecraft:wooden_spear" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\x0Eminecraft:fuel\x05\x08duration\0\0 A\0\n\x0Fitem_properties\n\x0Eminecraft:icon\n\x08textures\x08\x07default\nwood_spear\0\0\x03\ruse_animation\0\x03\x11creative_category\x06\x03\x06damage\x02\x05\x0Cmining_speed\0\0\x80?\x08\x0Ecreative_group\0\x01\x0Eshould_despawn\x01\x03\x0Emax_stack_size\x02\x01\x0Eallow_off_hand\0\x01\x0Eliquid_clipped\0\x01\rhand_equipped\x01\x03\x11enchantable_value\x1E\x03\x0Cuse_duration\x80\xE4\xAF\x01\x03\x0Bframe_count\x02\x08\x10enchantable_slot\x0Bmelee_spear\x01\x04foil\0\x01\x0Fstacked_by_data\0\x01\x12hidden_in_commands\x02\x01\x17can_destroy_in_creative\x01\0\n\x14minecraft:repairable\t\x0Crepair_items\n\x04\t\x05items\n\x02\x08\x04name\x16minecraft:wooden_spear\0\n\rrepair_amount\x08\nexpression)context.other->query.remaining_durability\x02\x07version\r\0\0\0\t\x05items\n\x02\x08\x04tags\x1Eq.all_tags('minecraft:planks')\0\n\rrepair_amount\x02\x07version\r\0\x08\nexpression\x1Bquery.max_durability * 0.25\0\0\0\n\x10minecraft:damage\x02\x05value\x01\0\0\n\x14minecraft:durability\x03\x0Emax_durabilityx\n\rdamage_chance\x03\x03min\0\x03\x03max\xC8\x01\0\0\t\titem_tags\x08\x04\x15minecraft:wooden_tier\x12minecraft:is_spear\n\x18minecraft:max_stack_size\x01\x05value\x01\0\n\x12minecraft:cooldown\x05\x08durationff&?\x08\x04type\x06attack\x08\x08category\x05spear\0\n\x17minecraft:use_modifiers\x05\x11movement_modifier\0\0\x80?\x05\x0Cuse_duration\0\xA0\x8CG\x08\x0Bstart_sound\x15item.wooden_spear.use\x01\x0Femit_vibrations\0\x08\x0Bstart_using\x06always\0\n\x16minecraft:swing_sounds\x08\x0Battack_miss\x1Ditem.wooden_spear.attack_miss\x08\nattack_hit\x1Citem.wooden_spear.attack_hit\0\n\x18minecraft:kinetic_weapon\n\x18minecraft:kinetic_weapon\x05\rhitbox_margin\0\0\x80>\n\x11damage_conditions\x05\x12min_relative_speed33\x93@\x05\tmin_speed\0\0\0\0\x02\x0Cmax_duration,\x01\0\n\x05reach\x05\x03max\0\0\x90@\x05\x03min\0\0\0@\0\x05\x11damage_multiplier333?\n\x0Ecreative_reach\x05\x03max\0\0\xF0@\x05\x03min\0\0\0@\0\n\x13dismount_conditions\x05\tmin_speed\0\0`A\x02\x0Cmax_durationd\0\x05\x12min_relative_speed\0\0\0\0\0\x05\x0Fdamage_modifier\0\0\0\0\x02\x05delay\x0F\0\n\x14knockback_conditions\x02\x0Cmax_duration\xC8\0\x05\x12min_relative_speed\0\0\0\0\x05\tmin_speed33\xA3@\0\0\0\n\x15minecraft:enchantable\x08\x04slot\x0Bmelee_spear\x01\x05value\x0F\0\n\x17minecraft:hand_equipped\x01\x05value\x01\0\n\x19minecraft:piercing_weapon\x05\rhitbox_margin\0\0\x80>\n\x05reach\x05\x03max\0\0\x90@\x05\x03min\0\0\0@\0\n\x0Ecreative_reach\x05\x03min\0\0\0@\x05\x03max\0\0\xF0@\0\0\n\x18minecraft:swing_duration\x05\x05valueff&?\0\n\x16minecraft:display_name\x08\x05value\x16item.wooden_spear.name\0\n\x0Eminecraft:tags\t\x04tags\x08\x04\x15minecraft:wooden_tier\x12minecraft:is_spear\0\0" } ; + pub const WOODEN_SPEAR : Self = Self { id : 263 , registry_key : "minecraft:wooden_spear" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\x14minecraft:durability\x03\x0Emax_durabilityx\n\rdamage_chance\x03\x03min\0\x03\x03max\xC8\x01\0\0\n\x10minecraft:damage\x02\x05value\x01\0\0\n\x16minecraft:swing_sounds\x08\x0Battack_miss\x1Ditem.wooden_spear.attack_miss\x08\nattack_hit\x1Citem.wooden_spear.attack_hit\0\n\x0Fitem_properties\x03\x06damage\x02\x01\x17can_destroy_in_creative\x01\x03\x0Cuse_duration\x80\xE4\xAF\x01\x01\x0Eshould_despawn\x01\x03\x0Emax_stack_size\x02\x08\x0Ecreative_group\0\x03\x11enchantable_value\x1E\x01\x04foil\0\x01\x0Eliquid_clipped\0\x01\x0Fstacked_by_data\0\x03\x11creative_category\x06\x08\x10enchantable_slot\x0Bmelee_spear\x03\ruse_animation\0\x01\x0Eallow_off_hand\0\x03\x0Bframe_count\x02\x01\x12hidden_in_commands\x02\x05\x0Cmining_speed\0\0\x80?\n\x0Eminecraft:icon\n\x08textures\x08\x07default\nwood_spear\0\0\x01\rhand_equipped\x01\0\t\titem_tags\x08\x04\x15minecraft:wooden_tier\x12minecraft:is_spear\n\x15minecraft:enchantable\x08\x04slot\x0Bmelee_spear\x01\x05value\x0F\0\n\x17minecraft:hand_equipped\x01\x05value\x01\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\n\x18minecraft:swing_duration\x05\x05valueff&?\0\n\x14minecraft:repairable\t\x0Crepair_items\n\x04\n\rrepair_amount\x08\nexpression)context.other->query.remaining_durability\x02\x07version\r\0\0\t\x05items\n\x02\x08\x04name\x16minecraft:wooden_spear\0\0\n\rrepair_amount\x02\x07version\r\0\x08\nexpression\x1Bquery.max_durability * 0.25\0\t\x05items\n\x02\x08\x04tags\x1Eq.all_tags('minecraft:planks')\0\0\0\n\x0Eminecraft:tags\t\x04tags\x08\x04\x15minecraft:wooden_tier\x12minecraft:is_spear\0\n\x12minecraft:cooldown\x05\x08durationff&?\x08\x08category\x05spear\x08\x04type\x06attack\0\n\x17minecraft:use_modifiers\x01\x0Femit_vibrations\0\x08\x0Bstart_sound\x15item.wooden_spear.use\x05\x11movement_modifier\0\0\x80?\x08\x0Bstart_using\x06always\x05\x0Cuse_duration\0\xA0\x8CG\0\n\x19minecraft:piercing_weapon\x05\rhitbox_margin\0\0\x80>\n\x0Ecreative_reach\x05\x03min\0\0\0@\x05\x03max\0\0\xF0@\0\n\x05reach\x05\x03max\0\0\x90@\x05\x03min\0\0\0@\0\0\n\x0Eminecraft:fuel\x05\x08duration\0\0 A\0\n\x18minecraft:kinetic_weapon\n\x18minecraft:kinetic_weapon\x02\x05delay\x0F\0\x05\x11damage_multiplier333?\n\x14knockback_conditions\x05\x12min_relative_speed\0\0\0\0\x02\x0Cmax_duration\xC8\0\x05\tmin_speed33\xA3@\0\n\x11damage_conditions\x05\tmin_speed\0\0\0\0\x05\x12min_relative_speed33\x93@\x02\x0Cmax_duration,\x01\0\n\x13dismount_conditions\x02\x0Cmax_durationd\0\x05\x12min_relative_speed\0\0\0\0\x05\tmin_speed\0\0`A\0\x05\rhitbox_margin\0\0\x80>\n\x05reach\x05\x03min\0\0\0@\x05\x03max\0\0\x90@\0\n\x0Ecreative_reach\x05\x03min\0\0\0@\x05\x03max\0\0\xF0@\0\x05\x0Fdamage_modifier\0\0\0\0\0\0\n\x16minecraft:display_name\x08\x05value\x16item.wooden_spear.name\0\0" } ; pub const WOODEN_SWORD: Self = Self { id: 339, registry_key: "minecraft:wooden_sword", @@ -50566,7 +50566,7 @@ impl BedrockItem { component_based: false, definition_components: b"\n\0\0", }; - pub const YELLOW_BUNDLE : Self = Self { id : 280 , registry_key : "minecraft:yellow_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\x1Cminecraft:bundle_interaction\x03\x12num_viewable_slots\x18\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\n\x0Fitem_properties\x03\x0Cuse_duration\0\x08\x0Ecreative_group\0\x01\rhand_equipped\0\x01\x0Eshould_despawn\x01\x03\x0Bframe_count\x02\n\x0Eminecraft:icon\n\x08textures\x08\x10bundle_open_back\x17bundle_yellow_open_back\x08\x07default\rbundle_yellow\x08\x11bundle_open_front\x18bundle_yellow_open_front\0\0\x03\ruse_animation\0\x01\x04foil\0\x01\x0Eallow_off_hand\0\x01\x12hidden_in_commands\x02\x03\x11creative_category\x06\x01\x17can_destroy_in_creative\x01\x03\x06damage\0\x03\x0Emax_stack_size\x02\x08\x10enchantable_slot\x04none\x01\x0Eliquid_clipped\0\x05\x0Cmining_speed\0\0\x80?\x01\x0Fstacked_by_data\0\x03\x11enchantable_value\0\0\t\titem_tags\0\0\n!minecraft:storage_weight_modifier\x03\x16weight_in_storage_item\x08\0\n\x16minecraft:storage_item\t\x0Cbanned_items\n\x04\x08\x04name\x15minecraft:shulker_box\0\x08\x04name\x1Cminecraft:undyed_shulker_box\0\x01\x1Aallow_nested_storage_items\x01\x03\tmax_slots\x80\x01\t\rallowed_items\0\0\0\n\x1Eminecraft:storage_weight_limit\x03\x10max_weight_limit\x80\x01\0\0" } ; + pub const YELLOW_BUNDLE : Self = Self { id : 280 , registry_key : "minecraft:yellow_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n!minecraft:storage_weight_modifier\x03\x16weight_in_storage_item\x08\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\n\x16minecraft:storage_item\x01\x1Aallow_nested_storage_items\x01\t\rallowed_items\0\0\x03\tmax_slots\x80\x01\t\x0Cbanned_items\n\x04\x08\x04name\x15minecraft:shulker_box\0\x08\x04name\x1Cminecraft:undyed_shulker_box\0\0\n\x0Fitem_properties\x03\x11enchantable_value\0\x03\x06damage\0\x01\x0Eshould_despawn\x01\x01\x0Eallow_off_hand\0\x05\x0Cmining_speed\0\0\x80?\x03\x0Bframe_count\x02\x03\x0Cuse_duration\0\x03\x0Emax_stack_size\x02\x03\x11creative_category\x06\x01\rhand_equipped\0\x01\x0Fstacked_by_data\0\x08\x10enchantable_slot\x04none\x03\ruse_animation\0\x01\x12hidden_in_commands\x02\x08\x0Ecreative_group\0\x01\x17can_destroy_in_creative\x01\x01\x0Eliquid_clipped\0\n\x0Eminecraft:icon\n\x08textures\x08\x10bundle_open_back\x17bundle_yellow_open_back\x08\x11bundle_open_front\x18bundle_yellow_open_front\x08\x07default\rbundle_yellow\0\0\x01\x04foil\0\0\n\x1Eminecraft:storage_weight_limit\x03\x10max_weight_limit\x80\x01\0\t\titem_tags\0\0\n\x1Cminecraft:bundle_interaction\x03\x12num_viewable_slots\x18\0\0" } ; pub const YELLOW_CANDLE: Self = Self { id: -417, registry_key: "minecraft:yellow_candle", diff --git a/pumpkin-plugin-wit b/pumpkin-plugin-wit index 0dd86753b..7ce2c6210 160000 --- a/pumpkin-plugin-wit +++ b/pumpkin-plugin-wit @@ -1 +1 @@ -Subproject commit 0dd86753bb61f8e0030a1129fef0a8712366881b +Subproject commit 7ce2c62105f08a8344ffecda6c74fe047c78b10e diff --git a/pumpkin-protocol/src/bedrock/client/mod.rs b/pumpkin-protocol/src/bedrock/client/mod.rs index d95134ef2..8452a0df6 100644 --- a/pumpkin-protocol/src/bedrock/client/mod.rs +++ b/pumpkin-protocol/src/bedrock/client/mod.rs @@ -86,6 +86,7 @@ pub use set_player_gamemode::*; pub use set_time::*; pub use set_title::*; pub use start_game::*; +pub use take_item_actor::*; pub use transfer::*; pub use update_abilities::*; pub use update_attributes::*; diff --git a/pumpkin-protocol/src/java/server/config/resource_pack_response.rs b/pumpkin-protocol/src/java/server/config/resource_pack_response.rs index 6ac230562..796f20c3c 100644 --- a/pumpkin-protocol/src/java/server/config/resource_pack_response.rs +++ b/pumpkin-protocol/src/java/server/config/resource_pack_response.rs @@ -27,7 +27,7 @@ pub struct SConfigResourcePack { #[serde(with = "uuid::serde::compact")] pub uuid: uuid::Uuid, /// The status code of the operation, mapped to [`ResourcePackResponseResult`]. - result: VarInt, + pub result: VarInt, } impl SConfigResourcePack { diff --git a/pumpkin/src/plugin/loader/wasm/wasm_host/wit/v0_1/generated_packets.rs b/pumpkin/src/plugin/loader/wasm/wasm_host/wit/v0_1/generated_packets.rs index 44069119d..cd54d9d95 100644 --- a/pumpkin/src/plugin/loader/wasm/wasm_host/wit/v0_1/generated_packets.rs +++ b/pumpkin/src/plugin/loader/wasm/wasm_host/wit/v0_1/generated_packets.rs @@ -20,6 +20,70 @@ pub fn serialize_java_packet( version: JavaMinecraftVersion, ) -> Option { match packet { + ClientboundPacket::ConfigCConfigDisconnect(data) => { + let p = pumpkin_protocol::java::client::config::CConfigDisconnect { + reason: &data.reason, + }; + let mut buf = Vec::new(); + crate::net::java::JavaClient::write_packet_for_version(&p, version, &mut buf).unwrap(); + Some(buf.into()) + } + ClientboundPacket::ConfigCPluginMessage(data) => { + let p = pumpkin_protocol::java::client::config::CPluginMessage { + channel: &data.channel, + data: &data.data, + }; + let mut buf = Vec::new(); + crate::net::java::JavaClient::write_packet_for_version(&p, version, &mut buf).unwrap(); + Some(buf.into()) + } + ClientboundPacket::ConfigCTransfer(data) => { + let var_int_port = VarInt(data.port); + let p = pumpkin_protocol::java::client::config::CTransfer { + host: &data.host, + port: &var_int_port, + }; + let mut buf = Vec::new(); + crate::net::java::JavaClient::write_packet_for_version(&p, version, &mut buf).unwrap(); + Some(buf.into()) + } + ClientboundPacket::LoginCEncryptionRequest(data) => { + let p = pumpkin_protocol::java::client::login::CEncryptionRequest { + server_id: &data.server_id, + public_key: &data.public_key, + verify_token: &data.verify_token, + should_authenticate: data.should_authenticate.try_into().unwrap(), + }; + let mut buf = Vec::new(); + crate::net::java::JavaClient::write_packet_for_version(&p, version, &mut buf).unwrap(); + Some(buf.into()) + } + ClientboundPacket::LoginCLoginDisconnect(data) => { + let p = pumpkin_protocol::java::client::login::CLoginDisconnect { + json_reason: data.json_reason.clone(), + }; + let mut buf = Vec::new(); + crate::net::java::JavaClient::write_packet_for_version(&p, version, &mut buf).unwrap(); + Some(buf.into()) + } + ClientboundPacket::LoginCLoginPluginRequest(data) => { + let p = pumpkin_protocol::java::client::login::CLoginPluginRequest { + message_id: VarInt(data.message_id), + channel: &data.channel, + data: &data.data, + }; + let mut buf = Vec::new(); + crate::net::java::JavaClient::write_packet_for_version(&p, version, &mut buf).unwrap(); + Some(buf.into()) + } + ClientboundPacket::LoginCSetCompression(data) => { + let p = pumpkin_protocol::java::client::login::CSetCompression { + threshold: VarInt(data.threshold), + }; + let mut buf = Vec::new(); + crate::net::java::JavaClient::write_packet_for_version(&p, version, &mut buf).unwrap(); + Some(buf.into()) + } ClientboundPacket::CAcknowledgeBlockChange(data) => { let p = pumpkin_protocol::java::client::play::CAcknowledgeBlockChange { sequence_id: VarInt(data.sequence_id), @@ -225,6 +289,21 @@ pub fn serialize_java_packet( crate::net::java::JavaClient::write_packet_for_version(&p, version, &mut buf).unwrap(); Some(buf.into()) } + ClientboundPacket::CInitializeWorldBorder(data) => { + let p = pumpkin_protocol::java::client::play::CInitializeWorldBorder { + x: data.x.try_into().unwrap(), + z: data.z.try_into().unwrap(), + old_diameter: data.old_diameter.try_into().unwrap(), + new_diameter: data.new_diameter.try_into().unwrap(), + speed: pumpkin_protocol::codec::var_long::VarLong(data.speed.try_into().unwrap()), + portal_teleport_boundary: VarInt(data.portal_teleport_boundary), + warning_blocks: VarInt(data.warning_blocks), + warning_time: VarInt(data.warning_time), + }; + let mut buf = Vec::new(); + crate::net::java::JavaClient::write_packet_for_version(&p, version, &mut buf).unwrap(); + Some(buf.into()) + } ClientboundPacket::CItemCooldown(data) => { let p = pumpkin_protocol::java::client::play::CItemCooldown { group: data.group.clone(), @@ -402,6 +481,16 @@ pub fn serialize_java_packet( crate::net::java::JavaClient::write_packet_for_version(&p, version, &mut buf).unwrap(); Some(buf.into()) } + ClientboundPacket::CSetBorderLerpSize(data) => { + let p = pumpkin_protocol::java::client::play::CSetBorderLerpSize { + old_diameter: data.old_diameter.try_into().unwrap(), + new_diameter: data.new_diameter.try_into().unwrap(), + speed: pumpkin_protocol::codec::var_long::VarLong(data.speed.try_into().unwrap()), + }; + let mut buf = Vec::new(); + crate::net::java::JavaClient::write_packet_for_version(&p, version, &mut buf).unwrap(); + Some(buf.into()) + } ClientboundPacket::CSetBorderSize(data) => { let p = pumpkin_protocol::java::client::play::CSetBorderSize { diameter: data.diameter.try_into().unwrap(), @@ -628,6 +717,22 @@ pub fn serialize_java_packet( crate::net::java::JavaClient::write_packet_for_version(&p, version, &mut buf).unwrap(); Some(buf.into()) } + ClientboundPacket::StatusCPingResponse(data) => { + let p = pumpkin_protocol::java::client::status::CPingResponse { + payload: data.payload.try_into().unwrap(), + }; + let mut buf = Vec::new(); + crate::net::java::JavaClient::write_packet_for_version(&p, version, &mut buf).unwrap(); + Some(buf.into()) + } + ClientboundPacket::StatusCStatusResponse(data) => { + let p = pumpkin_protocol::java::client::status::CStatusResponse { + json_response: data.json_response.clone(), + }; + let mut buf = Vec::new(); + crate::net::java::JavaClient::write_packet_for_version(&p, version, &mut buf).unwrap(); + Some(buf.into()) + } _ => None, } } @@ -639,6 +744,44 @@ pub fn deserialize_java_serverbound_packet( version: JavaMinecraftVersion, ) -> Option { match id { + id if id + == pumpkin_protocol::java::server::config::SClientInformationConfig::to_id(version) => + { + use pumpkin_protocol::ServerPacket; + let p = ::read(&mut Cursor::new(payload), &version).ok()?; + Some(ServerboundPacket::ConfigSClientInformationConfig(crate::plugin::loader::wasm::wasm_host::wit::v0_1::pumpkin::plugin::java_packets::ConfigSClientInformationConfig { + locale: p.locale.into(), + view_distance: p.view_distance.try_into().unwrap(), + chat_mode: p.chat_mode.0.try_into().unwrap(), + chat_colors: p.chat_colors.try_into().unwrap(), + skin_parts: p.skin_parts.try_into().unwrap(), + main_hand: p.main_hand.0.try_into().unwrap(), + text_filtering: p.text_filtering.try_into().unwrap(), + server_listing: p.server_listing.try_into().unwrap(), + })) + } + id if id == pumpkin_protocol::java::server::config::SKeepAlive::to_id(version) => { + use pumpkin_protocol::ServerPacket; + let p = ::read(&mut Cursor::new(payload), &version).ok()?; + Some(ServerboundPacket::ConfigSKeepAlive(crate::plugin::loader::wasm::wasm_host::wit::v0_1::pumpkin::plugin::java_packets::ConfigSKeepAlive { + keep_alive_id: p.keep_alive_id.try_into().unwrap(), + })) + } + id if id == pumpkin_protocol::java::server::config::SKnownPacks::to_id(version) => { + use pumpkin_protocol::ServerPacket; + let p = ::read(&mut Cursor::new(payload), &version).ok()?; + Some(ServerboundPacket::ConfigSKnownPacks(crate::plugin::loader::wasm::wasm_host::wit::v0_1::pumpkin::plugin::java_packets::ConfigSKnownPacks { + known_pack_count: p.known_pack_count.0.try_into().unwrap(), + })) + } + id if id == pumpkin_protocol::java::server::config::SConfigResourcePack::to_id(version) => { + use pumpkin_protocol::ServerPacket; + let p = ::read(&mut Cursor::new(payload), &version).ok()?; + Some(ServerboundPacket::ConfigSConfigResourcePack(crate::plugin::loader::wasm::wasm_host::wit::v0_1::pumpkin::plugin::java_packets::ConfigSConfigResourcePack { + uuid: crate::plugin::loader::wasm::wasm_host::wit::v0_1::pumpkin::plugin::uuid::Uuid { high: p.uuid.as_u64_pair().1, low: p.uuid.as_u64_pair().0 }, + result: p.result.0.try_into().unwrap(), + })) + } id if id == pumpkin_protocol::java::server::play::SAttack::to_id(version) => { use pumpkin_protocol::ServerPacket; let p = ::read(&mut Cursor::new(payload), &version).ok()?; @@ -646,6 +789,14 @@ pub fn deserialize_java_serverbound_packet( entity_id: p.entity_id.0.try_into().unwrap(), })) } + id if id == pumpkin_protocol::java::server::play::SBundleItemSelected::to_id(version) => { + use pumpkin_protocol::ServerPacket; + let p = ::read(&mut Cursor::new(payload), &version).ok()?; + Some(ServerboundPacket::SBundleItemSelected(crate::plugin::loader::wasm::wasm_host::wit::v0_1::pumpkin::plugin::java_packets::SBundleItemSelected { + slot_id: p.slot_id.0.try_into().unwrap(), + selected_item_index: p.selected_item_index.0.try_into().unwrap(), + })) + } id if id == pumpkin_protocol::java::server::play::SChatCommand::to_id(version) => { use pumpkin_protocol::ServerPacket; let p = ::read(&mut Cursor::new(payload), &version).ok()?; @@ -910,6 +1061,13 @@ pub fn deserialize_java_serverbound_packet( hand: p.hand.0.try_into().unwrap(), })) } + id if id == pumpkin_protocol::java::server::play::STeleportToEntity::to_id(version) => { + use pumpkin_protocol::ServerPacket; + let p = ::read(&mut Cursor::new(payload), &version).ok()?; + Some(ServerboundPacket::STeleportToEntity(crate::plugin::loader::wasm::wasm_host::wit::v0_1::pumpkin::plugin::java_packets::STeleportToEntity { + target: crate::plugin::loader::wasm::wasm_host::wit::v0_1::pumpkin::plugin::uuid::Uuid { high: p.target.as_u64_pair().1, low: p.target.as_u64_pair().0 }, + })) + } id if id == pumpkin_protocol::java::server::play::SUseItem::to_id(version) => { use pumpkin_protocol::ServerPacket; let p = ::read(&mut Cursor::new(payload), &version).ok()?; @@ -933,6 +1091,13 @@ pub fn deserialize_java_serverbound_packet( sequence: p.sequence.0.try_into().unwrap(), })) } + id if id == pumpkin_protocol::java::server::status::SStatusPingRequest::to_id(version) => { + use pumpkin_protocol::ServerPacket; + let p = ::read(&mut Cursor::new(payload), &version).ok()?; + Some(ServerboundPacket::StatusSStatusPingRequest(crate::plugin::loader::wasm::wasm_host::wit::v0_1::pumpkin::plugin::java_packets::StatusSStatusPingRequest { + payload: p.payload.try_into().unwrap(), + })) + } _ => None, } } @@ -941,6 +1106,69 @@ pub trait ToWitClientboundJava { fn to_wit(&self) -> ClientboundPacket; } +impl ToWitClientboundJava for pumpkin_protocol::java::client::config::CConfigDisconnect<'_> { + fn to_wit(&self) -> ClientboundPacket { + ClientboundPacket::ConfigCConfigDisconnect(crate::plugin::loader::wasm::wasm_host::wit::v0_1::pumpkin::plugin::java_packets::ConfigCConfigDisconnect { + reason: self.reason.to_string(), + }) + } +} + +impl ToWitClientboundJava for pumpkin_protocol::java::client::config::CPluginMessage<'_> { + fn to_wit(&self) -> ClientboundPacket { + ClientboundPacket::ConfigCPluginMessage(crate::plugin::loader::wasm::wasm_host::wit::v0_1::pumpkin::plugin::java_packets::ConfigCPluginMessage { + channel: self.channel.to_string(), + data: self.data.iter().map(|v| *v as _).collect(), + }) + } +} + +impl ToWitClientboundJava for pumpkin_protocol::java::client::config::CTransfer<'_> { + fn to_wit(&self) -> ClientboundPacket { + ClientboundPacket::ConfigCTransfer(crate::plugin::loader::wasm::wasm_host::wit::v0_1::pumpkin::plugin::java_packets::ConfigCTransfer { + host: self.host.to_string(), + port: self.port.0.try_into().unwrap(), + }) + } +} + +impl ToWitClientboundJava for pumpkin_protocol::java::client::login::CEncryptionRequest<'_> { + fn to_wit(&self) -> ClientboundPacket { + ClientboundPacket::LoginCEncryptionRequest(crate::plugin::loader::wasm::wasm_host::wit::v0_1::pumpkin::plugin::java_packets::LoginCEncryptionRequest { + server_id: self.server_id.to_string(), + public_key: self.public_key.iter().map(|v| *v as _).collect(), + verify_token: self.verify_token.iter().map(|v| *v as _).collect(), + should_authenticate: self.should_authenticate.try_into().unwrap(), + }) + } +} + +impl ToWitClientboundJava for pumpkin_protocol::java::client::login::CLoginDisconnect { + fn to_wit(&self) -> ClientboundPacket { + ClientboundPacket::LoginCLoginDisconnect(crate::plugin::loader::wasm::wasm_host::wit::v0_1::pumpkin::plugin::java_packets::LoginCLoginDisconnect { + json_reason: self.json_reason.to_string(), + }) + } +} + +impl ToWitClientboundJava for pumpkin_protocol::java::client::login::CLoginPluginRequest<'_> { + fn to_wit(&self) -> ClientboundPacket { + ClientboundPacket::LoginCLoginPluginRequest(crate::plugin::loader::wasm::wasm_host::wit::v0_1::pumpkin::plugin::java_packets::LoginCLoginPluginRequest { + message_id: self.message_id.0.try_into().unwrap(), + channel: self.channel.to_string(), + data: self.data.iter().map(|v| *v as _).collect(), + }) + } +} + +impl ToWitClientboundJava for pumpkin_protocol::java::client::login::CSetCompression { + fn to_wit(&self) -> ClientboundPacket { + ClientboundPacket::LoginCSetCompression(crate::plugin::loader::wasm::wasm_host::wit::v0_1::pumpkin::plugin::java_packets::LoginCSetCompression { + threshold: self.threshold.0.try_into().unwrap(), + }) + } +} + impl ToWitClientboundJava for pumpkin_protocol::java::client::play::CAcknowledgeBlockChange { fn to_wit(&self) -> ClientboundPacket { ClientboundPacket::CAcknowledgeBlockChange(crate::plugin::loader::wasm::wasm_host::wit::v0_1::pumpkin::plugin::java_packets::CAcknowledgeBlockChange { @@ -1122,6 +1350,21 @@ impl ToWitClientboundJava for pumpkin_protocol::java::client::play::CHurtAnimati } } +impl ToWitClientboundJava for pumpkin_protocol::java::client::play::CInitializeWorldBorder { + fn to_wit(&self) -> ClientboundPacket { + ClientboundPacket::CInitializeWorldBorder(crate::plugin::loader::wasm::wasm_host::wit::v0_1::pumpkin::plugin::java_packets::CInitializeWorldBorder { + x: self.x.try_into().unwrap(), + z: self.z.try_into().unwrap(), + old_diameter: self.old_diameter.try_into().unwrap(), + new_diameter: self.new_diameter.try_into().unwrap(), + speed: self.speed.0.try_into().unwrap(), + portal_teleport_boundary: self.portal_teleport_boundary.0.try_into().unwrap(), + warning_blocks: self.warning_blocks.0.try_into().unwrap(), + warning_time: self.warning_time.0.try_into().unwrap(), + }) + } +} + impl ToWitClientboundJava for pumpkin_protocol::java::client::play::CItemCooldown { fn to_wit(&self) -> ClientboundPacket { ClientboundPacket::CItemCooldown(crate::plugin::loader::wasm::wasm_host::wit::v0_1::pumpkin::plugin::java_packets::CItemCooldown { @@ -1262,6 +1505,16 @@ impl ToWitClientboundJava for pumpkin_protocol::java::client::play::CSetBorderCe } } +impl ToWitClientboundJava for pumpkin_protocol::java::client::play::CSetBorderLerpSize { + fn to_wit(&self) -> ClientboundPacket { + ClientboundPacket::CSetBorderLerpSize(crate::plugin::loader::wasm::wasm_host::wit::v0_1::pumpkin::plugin::java_packets::CSetBorderLerpSize { + old_diameter: self.old_diameter.try_into().unwrap(), + new_diameter: self.new_diameter.try_into().unwrap(), + speed: self.speed.0.try_into().unwrap(), + }) + } +} + impl ToWitClientboundJava for pumpkin_protocol::java::client::play::CSetBorderSize { fn to_wit(&self) -> ClientboundPacket { ClientboundPacket::CSetBorderSize(crate::plugin::loader::wasm::wasm_host::wit::v0_1::pumpkin::plugin::java_packets::CSetBorderSize { @@ -1470,8 +1723,49 @@ impl ToWitClientboundJava for pumpkin_protocol::java::client::play::CWorldEvent } } +impl ToWitClientboundJava for pumpkin_protocol::java::client::status::CPingResponse { + fn to_wit(&self) -> ClientboundPacket { + ClientboundPacket::StatusCPingResponse(crate::plugin::loader::wasm::wasm_host::wit::v0_1::pumpkin::plugin::java_packets::StatusCPingResponse { + payload: self.payload.try_into().unwrap(), + }) + } +} + +impl ToWitClientboundJava for pumpkin_protocol::java::client::status::CStatusResponse { + fn to_wit(&self) -> ClientboundPacket { + ClientboundPacket::StatusCStatusResponse(crate::plugin::loader::wasm::wasm_host::wit::v0_1::pumpkin::plugin::java_packets::StatusCStatusResponse { + json_response: self.json_response.to_string(), + }) + } +} + #[must_use] pub fn clientbound_java_any_to_wit(any: &dyn Any) -> Option { + if let Some(p) = any.downcast_ref::() + { + return Some(p.to_wit()); + } + if let Some(p) = any.downcast_ref::() { + return Some(p.to_wit()); + } + if let Some(p) = any.downcast_ref::() { + return Some(p.to_wit()); + } + if let Some(p) = any.downcast_ref::() + { + return Some(p.to_wit()); + } + if let Some(p) = any.downcast_ref::() { + return Some(p.to_wit()); + } + if let Some(p) = + any.downcast_ref::() + { + return Some(p.to_wit()); + } + if let Some(p) = any.downcast_ref::() { + return Some(p.to_wit()); + } if let Some(p) = any.downcast_ref::() { @@ -1537,6 +1831,11 @@ pub fn clientbound_java_any_to_wit(any: &dyn Any) -> Option { if let Some(p) = any.downcast_ref::() { return Some(p.to_wit()); } + if let Some(p) = + any.downcast_ref::() + { + return Some(p.to_wit()); + } if let Some(p) = any.downcast_ref::() { return Some(p.to_wit()); } @@ -1582,6 +1881,10 @@ pub fn clientbound_java_any_to_wit(any: &dyn Any) -> Option { if let Some(p) = any.downcast_ref::() { return Some(p.to_wit()); } + if let Some(p) = any.downcast_ref::() + { + return Some(p.to_wit()); + } if let Some(p) = any.downcast_ref::() { return Some(p.to_wit()); } @@ -1656,6 +1959,12 @@ pub fn clientbound_java_any_to_wit(any: &dyn Any) -> Option { if let Some(p) = any.downcast_ref::() { return Some(p.to_wit()); } + if let Some(p) = any.downcast_ref::() { + return Some(p.to_wit()); + } + if let Some(p) = any.downcast_ref::() { + return Some(p.to_wit()); + } None } @@ -1674,6 +1983,43 @@ pub fn serialize_bedrock_packet(packet: &BClientboundPacket) -> Option { crate::net::bedrock::BedrockClient::write_raw_packet(&p, &mut buf).unwrap(); Some(buf.into()) } + BClientboundPacket::CContainerOpen(data) => { + let p = pumpkin_protocol::bedrock::client::CContainerOpen { + container_id: data.container_id.try_into().unwrap(), + container_type: data.container_type.try_into().unwrap(), + position: pumpkin_util::math::position::BlockPos::new( + data.position.0, + data.position.1, + data.position.2, + ), + target_entity_id: pumpkin_protocol::codec::var_long::VarLong( + data.target_entity_id.try_into().unwrap(), + ), + }; + let mut buf = Vec::new(); + crate::net::bedrock::BedrockClient::write_raw_packet(&p, &mut buf).unwrap(); + Some(buf.into()) + } + BClientboundPacket::CCorrectPlayerMove(data) => { + let p = pumpkin_protocol::bedrock::client::CCorrectPlayerMove { + prediction_type: data.prediction_type.try_into().unwrap(), + pos: pumpkin_util::math::vector3::Vector3::new( + data.pos.0 as _, + data.pos.1 as _, + data.pos.2 as _, + ), + pos_delta: pumpkin_util::math::vector3::Vector3::new( + data.pos_delta.0 as _, + data.pos_delta.1 as _, + data.pos_delta.2 as _, + ), + on_ground: data.on_ground.try_into().unwrap(), + tick: pumpkin_protocol::codec::var_ulong::VarULong(data.tick.try_into().unwrap()), + }; + let mut buf = Vec::new(); + crate::net::bedrock::BedrockClient::write_raw_packet(&p, &mut buf).unwrap(); + Some(buf.into()) + } BClientboundPacket::CDisconnectPlayer(data) => { let p = pumpkin_protocol::bedrock::client::CDisconnectPlayer { reason: VarInt(data.reason), @@ -1708,6 +2054,68 @@ pub fn serialize_bedrock_packet(packet: &BClientboundPacket) -> Option { crate::net::bedrock::BedrockClient::write_raw_packet(&p, &mut buf).unwrap(); Some(buf.into()) } + BClientboundPacket::CMoveActorAbsolute(data) => { + let p = pumpkin_protocol::bedrock::client::CMoveActorAbsolute { + entity_runtime_id: pumpkin_protocol::codec::var_ulong::VarULong( + data.entity_runtime_id.try_into().unwrap(), + ), + flags: data.flags.try_into().unwrap(), + position: pumpkin_util::math::vector3::Vector3::new( + data.position.0 as _, + data.position.1 as _, + data.position.2 as _, + ), + pitch: data.pitch.try_into().unwrap(), + yaw: data.yaw.try_into().unwrap(), + head_yaw: data.head_yaw.try_into().unwrap(), + }; + let mut buf = Vec::new(); + crate::net::bedrock::BedrockClient::write_raw_packet(&p, &mut buf).unwrap(); + Some(buf.into()) + } + BClientboundPacket::CMoveActorDelta(data) => { + let p = pumpkin_protocol::bedrock::client::CMoveActorDelta { + entity_runtime_id: pumpkin_protocol::codec::var_ulong::VarULong( + data.entity_runtime_id.try_into().unwrap(), + ), + flags: data.flags.try_into().unwrap(), + x: data.x.try_into().unwrap(), + y: data.y.try_into().unwrap(), + z: data.z.try_into().unwrap(), + pitch: data.pitch.try_into().unwrap(), + yaw: data.yaw.try_into().unwrap(), + head_yaw: data.head_yaw.try_into().unwrap(), + }; + let mut buf = Vec::new(); + crate::net::bedrock::BedrockClient::write_raw_packet(&p, &mut buf).unwrap(); + Some(buf.into()) + } + BClientboundPacket::CMovePlayer(data) => { + let p = pumpkin_protocol::bedrock::client::CMovePlayer { + player_runtime_id: pumpkin_protocol::codec::var_ulong::VarULong( + data.player_runtime_id.try_into().unwrap(), + ), + position: pumpkin_util::math::vector3::Vector3::new( + data.position.0 as _, + data.position.1 as _, + data.position.2 as _, + ), + pitch: data.pitch.try_into().unwrap(), + yaw: data.yaw.try_into().unwrap(), + head_yaw: data.head_yaw.try_into().unwrap(), + mode: data.mode.try_into().unwrap(), + on_ground: data.on_ground.try_into().unwrap(), + riding_runtime_id: pumpkin_protocol::codec::var_ulong::VarULong( + data.riding_runtime_id.try_into().unwrap(), + ), + teleport_cause: data.teleport_cause.try_into().unwrap(), + teleport_source_entity_type: data.teleport_source_entity_type.try_into().unwrap(), + tick: pumpkin_protocol::codec::var_ulong::VarULong(data.tick.try_into().unwrap()), + }; + let mut buf = Vec::new(); + crate::net::bedrock::BedrockClient::write_raw_packet(&p, &mut buf).unwrap(); + Some(buf.into()) + } BClientboundPacket::CNetworkSettings(data) => { let p = pumpkin_protocol::bedrock::client::CNetworkSettings { compression_threshold: data.compression_threshold.try_into().unwrap(), @@ -1732,6 +2140,16 @@ pub fn serialize_bedrock_packet(packet: &BClientboundPacket) -> Option { crate::net::bedrock::BedrockClient::write_raw_packet(&p, &mut buf).unwrap(); Some(buf.into()) } + BClientboundPacket::CRemoveActor(data) => { + let p = pumpkin_protocol::bedrock::client::CRemoveActor { + entity_unique_id: pumpkin_protocol::codec::var_long::VarLong( + data.entity_unique_id.try_into().unwrap(), + ), + }; + let mut buf = Vec::new(); + crate::net::bedrock::BedrockClient::write_raw_packet(&p, &mut buf).unwrap(); + Some(buf.into()) + } BClientboundPacket::CSetDisplayObjective(data) => { let p = pumpkin_protocol::bedrock::client::CSetDisplayObjective { display_slot: data.display_slot.clone(), @@ -1752,6 +2170,22 @@ pub fn serialize_bedrock_packet(packet: &BClientboundPacket) -> Option { crate::net::bedrock::BedrockClient::write_raw_packet(&p, &mut buf).unwrap(); Some(buf.into()) } + BClientboundPacket::CSetActorMotion(data) => { + let p = pumpkin_protocol::bedrock::client::CSetActorMotion { + target_runtime_id: pumpkin_protocol::codec::var_ulong::VarULong( + data.target_runtime_id.try_into().unwrap(), + ), + motion: pumpkin_util::math::vector3::Vector3::new( + data.motion.0 as _, + data.motion.1 as _, + data.motion.2 as _, + ), + tick: pumpkin_protocol::codec::var_ulong::VarULong(data.tick.try_into().unwrap()), + }; + let mut buf = Vec::new(); + crate::net::bedrock::BedrockClient::write_raw_packet(&p, &mut buf).unwrap(); + Some(buf.into()) + } BClientboundPacket::CSetHealth(data) => { let p = pumpkin_protocol::bedrock::client::CSetHealth { health: VarInt(data.health), @@ -1783,6 +2217,19 @@ pub fn serialize_bedrock_packet(packet: &BClientboundPacket) -> Option { crate::net::bedrock::BedrockClient::write_raw_packet(&p, &mut buf).unwrap(); Some(buf.into()) } + BClientboundPacket::CTakeItemActor(data) => { + let p = pumpkin_protocol::bedrock::client::CTakeItemActor { + item_runtime_id: pumpkin_protocol::codec::var_ulong::VarULong( + data.item_runtime_id.try_into().unwrap(), + ), + actor_runtime_id: pumpkin_protocol::codec::var_ulong::VarULong( + data.actor_runtime_id.try_into().unwrap(), + ), + }; + let mut buf = Vec::new(); + crate::net::bedrock::BedrockClient::write_raw_packet(&p, &mut buf).unwrap(); + Some(buf.into()) + } BClientboundPacket::CTransfer(data) => { let p = pumpkin_protocol::bedrock::client::CTransfer { address: data.address.clone(), @@ -1858,6 +2305,18 @@ pub fn deserialize_bedrock_serverbound_packet( server_initiated: p.server_initiated.try_into().unwrap(), })) } + id if id == ::PACKET_ID as i32 => { + use pumpkin_protocol::BServerPacket; + let p = ::read(&mut Cursor::new(payload)).ok()?; + Some(BServerboundPacket::SEmote(crate::plugin::loader::wasm::wasm_host::wit::v0_1::pumpkin::plugin::bedrock_packets::SEmote { + runtime_entity_id: p.runtime_entity_id.0.try_into().unwrap(), + emote_id: p.emote_id.into(), + emote_length: p.emote_length.try_into().unwrap(), + xuid: p.xuid.into(), + platform_id: p.platform_id.into(), + flags: p.flags.try_into().unwrap(), + })) + } id if id == ::PACKET_ID as i32 => { use pumpkin_protocol::BServerPacket; let p = ::read(&mut Cursor::new(payload)).ok()?; @@ -1881,6 +2340,24 @@ pub fn deserialize_bedrock_serverbound_packet( download_size: p.download_size.try_into().unwrap(), })) } + id if id == ::PACKET_ID as i32 => { + use pumpkin_protocol::BServerPacket; + let p = ::read(&mut Cursor::new(payload)).ok()?; + Some(BServerboundPacket::SSetLocalPlayerAsInitialized(crate::plugin::loader::wasm::wasm_host::wit::v0_1::pumpkin::plugin::bedrock_packets::SSetLocalPlayerAsInitialized { + runtime_entity_id: p.runtime_entity_id.0.try_into().unwrap(), + })) + } + id if id == ::PACKET_ID as i32 => { + use pumpkin_protocol::BServerPacket; + let p = ::read(&mut Cursor::new(payload)).ok()?; + Some(BServerboundPacket::SSetPlayerInventoryOptions(crate::plugin::loader::wasm::wasm_host::wit::v0_1::pumpkin::plugin::bedrock_packets::SSetPlayerInventoryOptions { + left_inventory_tab: p.left_inventory_tab.try_into().unwrap(), + right_inventory_tab: p.right_inventory_tab.try_into().unwrap(), + filtering: p.filtering.try_into().unwrap(), + inventory_layout: p.inventory_layout.try_into().unwrap(), + crafting_layout: p.crafting_layout.try_into().unwrap(), + })) + } _ => None, } } @@ -1897,6 +2374,29 @@ impl ToWitClientboundBedrock for pumpkin_protocol::bedrock::client::CChunkRadius } } +impl ToWitClientboundBedrock for pumpkin_protocol::bedrock::client::CContainerOpen { + fn to_wit(&self) -> BClientboundPacket { + BClientboundPacket::CContainerOpen(crate::plugin::loader::wasm::wasm_host::wit::v0_1::pumpkin::plugin::bedrock_packets::CContainerOpen { + container_id: self.container_id.try_into().unwrap(), + container_type: self.container_type.try_into().unwrap(), + position: (self.position.0.x, self.position.0.y, self.position.0.z), + target_entity_id: self.target_entity_id.0.try_into().unwrap(), + }) + } +} + +impl ToWitClientboundBedrock for pumpkin_protocol::bedrock::client::CCorrectPlayerMove { + fn to_wit(&self) -> BClientboundPacket { + BClientboundPacket::CCorrectPlayerMove(crate::plugin::loader::wasm::wasm_host::wit::v0_1::pumpkin::plugin::bedrock_packets::CCorrectPlayerMove { + prediction_type: self.prediction_type.try_into().unwrap(), + pos: (self.pos.x as _, self.pos.y as _, self.pos.z as _), + pos_delta: (self.pos_delta.x as _, self.pos_delta.y as _, self.pos_delta.z as _), + on_ground: self.on_ground.try_into().unwrap(), + tick: self.tick.0.try_into().unwrap(), + }) + } +} + impl ToWitClientboundBedrock for pumpkin_protocol::bedrock::client::CDisconnectPlayer { fn to_wit(&self) -> BClientboundPacket { BClientboundPacket::CDisconnectPlayer(crate::plugin::loader::wasm::wasm_host::wit::v0_1::pumpkin::plugin::bedrock_packets::CDisconnectPlayer { @@ -1927,6 +2427,52 @@ impl ToWitClientboundBedrock for pumpkin_protocol::bedrock::client::CModalFormRe } } +impl ToWitClientboundBedrock for pumpkin_protocol::bedrock::client::CMoveActorAbsolute { + fn to_wit(&self) -> BClientboundPacket { + BClientboundPacket::CMoveActorAbsolute(crate::plugin::loader::wasm::wasm_host::wit::v0_1::pumpkin::plugin::bedrock_packets::CMoveActorAbsolute { + entity_runtime_id: self.entity_runtime_id.0.try_into().unwrap(), + flags: self.flags.try_into().unwrap(), + position: (self.position.x as _, self.position.y as _, self.position.z as _), + pitch: self.pitch.try_into().unwrap(), + yaw: self.yaw.try_into().unwrap(), + head_yaw: self.head_yaw.try_into().unwrap(), + }) + } +} + +impl ToWitClientboundBedrock for pumpkin_protocol::bedrock::client::CMoveActorDelta { + fn to_wit(&self) -> BClientboundPacket { + BClientboundPacket::CMoveActorDelta(crate::plugin::loader::wasm::wasm_host::wit::v0_1::pumpkin::plugin::bedrock_packets::CMoveActorDelta { + entity_runtime_id: self.entity_runtime_id.0.try_into().unwrap(), + flags: self.flags.try_into().unwrap(), + x: self.x.try_into().unwrap(), + y: self.y.try_into().unwrap(), + z: self.z.try_into().unwrap(), + pitch: self.pitch.try_into().unwrap(), + yaw: self.yaw.try_into().unwrap(), + head_yaw: self.head_yaw.try_into().unwrap(), + }) + } +} + +impl ToWitClientboundBedrock for pumpkin_protocol::bedrock::client::CMovePlayer { + fn to_wit(&self) -> BClientboundPacket { + BClientboundPacket::CMovePlayer(crate::plugin::loader::wasm::wasm_host::wit::v0_1::pumpkin::plugin::bedrock_packets::CMovePlayer { + player_runtime_id: self.player_runtime_id.0.try_into().unwrap(), + position: (self.position.x as _, self.position.y as _, self.position.z as _), + pitch: self.pitch.try_into().unwrap(), + yaw: self.yaw.try_into().unwrap(), + head_yaw: self.head_yaw.try_into().unwrap(), + mode: self.mode.try_into().unwrap(), + on_ground: self.on_ground.try_into().unwrap(), + riding_runtime_id: self.riding_runtime_id.0.try_into().unwrap(), + teleport_cause: self.teleport_cause.try_into().unwrap(), + teleport_source_entity_type: self.teleport_source_entity_type.try_into().unwrap(), + tick: self.tick.0.try_into().unwrap(), + }) + } +} + impl ToWitClientboundBedrock for pumpkin_protocol::bedrock::client::CNetworkSettings { fn to_wit(&self) -> BClientboundPacket { BClientboundPacket::CNetworkSettings(crate::plugin::loader::wasm::wasm_host::wit::v0_1::pumpkin::plugin::bedrock_packets::CNetworkSettings { @@ -1949,6 +2495,14 @@ impl ToWitClientboundBedrock for pumpkin_protocol::bedrock::client::CPlayerHotba } } +impl ToWitClientboundBedrock for pumpkin_protocol::bedrock::client::CRemoveActor { + fn to_wit(&self) -> BClientboundPacket { + BClientboundPacket::CRemoveActor(crate::plugin::loader::wasm::wasm_host::wit::v0_1::pumpkin::plugin::bedrock_packets::CRemoveActor { + entity_unique_id: self.entity_unique_id.0.try_into().unwrap(), + }) + } +} + impl ToWitClientboundBedrock for pumpkin_protocol::bedrock::client::CSetDisplayObjective { fn to_wit(&self) -> BClientboundPacket { BClientboundPacket::CSetDisplayObjective(crate::plugin::loader::wasm::wasm_host::wit::v0_1::pumpkin::plugin::bedrock_packets::CSetDisplayObjective { @@ -1969,6 +2523,16 @@ impl ToWitClientboundBedrock for pumpkin_protocol::bedrock::client::CRemoveObjec } } +impl ToWitClientboundBedrock for pumpkin_protocol::bedrock::client::CSetActorMotion { + fn to_wit(&self) -> BClientboundPacket { + BClientboundPacket::CSetActorMotion(crate::plugin::loader::wasm::wasm_host::wit::v0_1::pumpkin::plugin::bedrock_packets::CSetActorMotion { + target_runtime_id: self.target_runtime_id.0.try_into().unwrap(), + motion: (self.motion.x as _, self.motion.y as _, self.motion.z as _), + tick: self.tick.0.try_into().unwrap(), + }) + } +} + impl ToWitClientboundBedrock for pumpkin_protocol::bedrock::client::CSetHealth { fn to_wit(&self) -> BClientboundPacket { BClientboundPacket::CSetHealth(crate::plugin::loader::wasm::wasm_host::wit::v0_1::pumpkin::plugin::bedrock_packets::CSetHealth { @@ -2000,6 +2564,15 @@ impl ToWitClientboundBedrock for pumpkin_protocol::bedrock::client::CSetTitle { } } +impl ToWitClientboundBedrock for pumpkin_protocol::bedrock::client::CTakeItemActor { + fn to_wit(&self) -> BClientboundPacket { + BClientboundPacket::CTakeItemActor(crate::plugin::loader::wasm::wasm_host::wit::v0_1::pumpkin::plugin::bedrock_packets::CTakeItemActor { + item_runtime_id: self.item_runtime_id.0.try_into().unwrap(), + actor_runtime_id: self.actor_runtime_id.0.try_into().unwrap(), + }) + } +} + impl ToWitClientboundBedrock for pumpkin_protocol::bedrock::client::CTransfer { fn to_wit(&self) -> BClientboundPacket { BClientboundPacket::CTransfer(crate::plugin::loader::wasm::wasm_host::wit::v0_1::pumpkin::plugin::bedrock_packets::CTransfer { @@ -2026,6 +2599,12 @@ pub fn clientbound_bedrock_any_to_wit(any: &dyn Any) -> Option() { return Some(p.to_wit()); } + if let Some(p) = any.downcast_ref::() { + return Some(p.to_wit()); + } + if let Some(p) = any.downcast_ref::() { + return Some(p.to_wit()); + } if let Some(p) = any.downcast_ref::() { return Some(p.to_wit()); } @@ -2035,18 +2614,33 @@ pub fn clientbound_bedrock_any_to_wit(any: &dyn Any) -> Option() { return Some(p.to_wit()); } + if let Some(p) = any.downcast_ref::() { + return Some(p.to_wit()); + } + if let Some(p) = any.downcast_ref::() { + return Some(p.to_wit()); + } + if let Some(p) = any.downcast_ref::() { + return Some(p.to_wit()); + } if let Some(p) = any.downcast_ref::() { return Some(p.to_wit()); } if let Some(p) = any.downcast_ref::() { return Some(p.to_wit()); } + if let Some(p) = any.downcast_ref::() { + return Some(p.to_wit()); + } if let Some(p) = any.downcast_ref::() { return Some(p.to_wit()); } if let Some(p) = any.downcast_ref::() { return Some(p.to_wit()); } + if let Some(p) = any.downcast_ref::() { + return Some(p.to_wit()); + } if let Some(p) = any.downcast_ref::() { return Some(p.to_wit()); } @@ -2056,6 +2650,9 @@ pub fn clientbound_bedrock_any_to_wit(any: &dyn Any) -> Option() { return Some(p.to_wit()); } + if let Some(p) = any.downcast_ref::() { + return Some(p.to_wit()); + } if let Some(p) = any.downcast_ref::() { return Some(p.to_wit()); }