This commit is contained in:
Alexander Medvedev 2026-08-15 16:30:25 +02:00
parent a2b92e6dc5
commit 0fe84c75d8
109 changed files with 84259 additions and 1204 deletions

3
Cargo.lock generated
View File

@ -3511,11 +3511,8 @@ dependencies = [
name = "pumpkin-fuzzer"
version = "0.1.0-dev+26.2-26.40"
dependencies = [
"bytes",
"clap",
"colored",
"pumpkin-protocol",
"pumpkin-util",
"rand 0.9.5",
"tokio",
]

View File

@ -4,7 +4,7 @@ use crate::item::Item;
use crate::item_stack::ItemStack;
use pumpkin_util::identifier::Identifier;
use pumpkin_util::text::TextComponent;
use pumpkin_util::text::{color::Color, hover::HoverEvent, style::Style};
use pumpkin_util::text::{color::Color, color::NamedColor, hover::HoverEvent, style::Style};
use std::collections::BTreeMap;
use std::fmt::Display;
use std::hash::{Hash, Hasher};

View File

@ -1,5 +1,6 @@
/* This file is generated. Do not edit manually. */
use crate::biome::de::Deserialize;
use crate::entity_type::EntityType;
use crate::tag::RegistryKey;
use crate::tag::Taggable;
use pumpkin_util::biome::{TemperatureModifier, Weather};

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
/* This file is generated. Do not edit manually. */
use pumpkin_util::math::float_provider::{
FloatProvider, NormalFloatProvider,
ClampedNormalFloatProvider, ConstantFloatProvider, FloatProvider, NormalFloatProvider,
TrapezoidFloatProvider, UniformFloatProvider,
};
use pumpkin_util::y_offset::{AboveBottom, Absolute, BelowTop, YOffset};
@ -63,6 +63,7 @@ pub struct CarverConfig {
pub replaceable: crate::tag::Tag,
pub additional: CarverAdditionalConfig,
}
use super::*;
pub const CANYON: CarverConfig = CarverConfig {
probability: 0.01f32,
y: HeightProvider::Uniform(UniformHeightProvider {

View File

@ -3,7 +3,10 @@ use crate::BlockState;
use crate::biome::Biome;
use crate::chunk::DoublePerlinNoiseParameters;
use crate::dimension::Dimension;
use pumpkin_util::random::RandomDeriver;
use pumpkin_util::y_offset::Absolute;
use pumpkin_util::y_offset::YOffset;
use std::{cell::RefCell, num::NonZeroUsize};
pub struct GenerationSettings {
pub aquifers_enabled: bool,
pub ore_veins_enabled: bool,

View File

@ -1,5 +1,5 @@
/* This file is generated. Do not edit manually. */
use crate::tag::{RegistryKey, Taggable};
use crate::tag::{RegistryKey, Tag, Taggable};
#[derive(Clone, Copy, PartialEq)]
pub struct DamageType {
pub death_message_type: DeathMessageType,

View File

@ -1,4 +1,5 @@
/* This file is generated. Do not edit manually. */
use crate::data_component_impl::*;
#[derive(Copy, Clone, Hash, PartialEq, Eq)]
#[repr(u8)]
pub enum DataComponent {
@ -240,123 +241,160 @@ impl DataComponent {
#[must_use]
#[allow(clippy::too_many_lines)]
pub fn try_from_name(name: &str) -> Option<Self> {
let name = if name.contains(':') {
std::borrow::Cow::Borrowed(name)
} else {
std::borrow::Cow::Owned(format!("minecraft:{name}"))
};
match name.as_ref() {
"minecraft:custom_data" => Some(Self::CustomData),
"minecraft:max_stack_size" => Some(Self::MaxStackSize),
"minecraft:max_damage" => Some(Self::MaxDamage),
"minecraft:damage" => Some(Self::Damage),
"minecraft:unbreakable" => Some(Self::Unbreakable),
"minecraft:use_effects" => Some(Self::UseEffects),
"minecraft:custom_name" => Some(Self::CustomName),
"minecraft:minimum_attack_charge" => Some(Self::MinimumAttackCharge),
"minecraft:damage_type" => Some(Self::DamageType),
"minecraft:item_name" => Some(Self::ItemName),
"minecraft:item_model" => Some(Self::ItemModel),
"minecraft:lore" => Some(Self::Lore),
"minecraft:rarity" => Some(Self::Rarity),
"minecraft:enchantments" => Some(Self::Enchantments),
"minecraft:can_place_on" => Some(Self::CanPlaceOn),
"minecraft:can_break" => Some(Self::CanBreak),
"minecraft:attribute_modifiers" => Some(Self::AttributeModifiers),
"minecraft:custom_model_data" => Some(Self::CustomModelData),
"minecraft:tooltip_display" => Some(Self::TooltipDisplay),
"minecraft:repair_cost" => Some(Self::RepairCost),
"minecraft:creative_slot_lock" => Some(Self::CreativeSlotLock),
"minecraft:enchantment_glint_override" => Some(Self::EnchantmentGlintOverride),
"minecraft:intangible_projectile" => Some(Self::IntangibleProjectile),
"minecraft:food" => Some(Self::Food),
"minecraft:consumable" => Some(Self::Consumable),
"minecraft:use_remainder" => Some(Self::UseRemainder),
"minecraft:use_cooldown" => Some(Self::UseCooldown),
"minecraft:damage_resistant" => Some(Self::DamageResistant),
"minecraft:tool" => Some(Self::Tool),
"minecraft:weapon" => Some(Self::Weapon),
"minecraft:attack_range" => Some(Self::AttackRange),
"minecraft:enchantable" => Some(Self::Enchantable),
"minecraft:equippable" => Some(Self::Equippable),
"minecraft:repairable" => Some(Self::Repairable),
"minecraft:glider" => Some(Self::Glider),
"minecraft:tooltip_style" => Some(Self::TooltipStyle),
"minecraft:death_protection" => Some(Self::DeathProtection),
"minecraft:blocks_attacks" => Some(Self::BlocksAttacks),
"minecraft:piercing_weapon" => Some(Self::PiercingWeapon),
"minecraft:kinetic_weapon" => Some(Self::KineticWeapon),
"minecraft:swing_animation" => Some(Self::SwingAnimation),
"minecraft:additional_trade_cost" => Some(Self::AdditionalTradeCost),
"minecraft:stored_enchantments" => Some(Self::StoredEnchantments),
"minecraft:dye" => Some(Self::Dye),
"minecraft:dyed_color" => Some(Self::DyedColor),
"minecraft:map_color" => Some(Self::MapColor),
"minecraft:map_id" => Some(Self::MapId),
"minecraft:map_decorations" => Some(Self::MapDecorations),
"minecraft:map_post_processing" => Some(Self::MapPostProcessing),
"minecraft:charged_projectiles" => Some(Self::ChargedProjectiles),
"minecraft:bundle_contents" => Some(Self::BundleContents),
"minecraft:potion_contents" => Some(Self::PotionContents),
"minecraft:potion_duration_scale" => Some(Self::PotionDurationScale),
"minecraft:suspicious_stew_effects" => Some(Self::SuspiciousStewEffects),
"minecraft:writable_book_content" => Some(Self::WritableBookContent),
"minecraft:written_book_content" => Some(Self::WrittenBookContent),
"minecraft:trim" => Some(Self::Trim),
"minecraft:debug_stick_state" => Some(Self::DebugStickState),
"minecraft:entity_data" => Some(Self::EntityData),
"minecraft:bucket_entity_data" => Some(Self::BucketEntityData),
"minecraft:block_entity_data" => Some(Self::BlockEntityData),
"minecraft:instrument" => Some(Self::Instrument),
"minecraft:provides_trim_material" => Some(Self::ProvidesTrimMaterial),
"minecraft:ominous_bottle_amplifier" => Some(Self::OminousBottleAmplifier),
"minecraft:jukebox_playable" => Some(Self::JukeboxPlayable),
"minecraft:provides_banner_patterns" => Some(Self::ProvidesBannerPatterns),
"minecraft:recipes" => Some(Self::Recipes),
"minecraft:lodestone_tracker" => Some(Self::LodestoneTracker),
"minecraft:firework_explosion" => Some(Self::FireworkExplosion),
"minecraft:fireworks" => Some(Self::Fireworks),
"minecraft:profile" => Some(Self::Profile),
"minecraft:note_block_sound" => Some(Self::NoteBlockSound),
"minecraft:banner_patterns" => Some(Self::BannerPatterns),
"minecraft:base_color" => Some(Self::BaseColor),
"minecraft:pot_decorations" => Some(Self::PotDecorations),
"minecraft:container" => Some(Self::Container),
"minecraft:block_state" => Some(Self::BlockState),
"minecraft:bees" => Some(Self::Bees),
"minecraft:sulfur_cube_content" => Some(Self::SulfurCubeContent),
"minecraft:lock" => Some(Self::Lock),
"minecraft:container_loot" => Some(Self::ContainerLoot),
"minecraft:break_sound" => Some(Self::BreakSound),
"minecraft:villager/variant" => Some(Self::VillagerVariant),
"minecraft:wolf/variant" => Some(Self::WolfVariant),
"minecraft:wolf/sound_variant" => Some(Self::WolfSoundVariant),
"minecraft:wolf/collar" => Some(Self::WolfCollar),
"minecraft:fox/variant" => Some(Self::FoxVariant),
"minecraft:salmon/size" => Some(Self::SalmonSize),
"minecraft:parrot/variant" => Some(Self::ParrotVariant),
"minecraft:tropical_fish/pattern" => Some(Self::TropicalFishPattern),
"minecraft:tropical_fish/base_color" => Some(Self::TropicalFishBaseColor),
"minecraft:tropical_fish/pattern_color" => Some(Self::TropicalFishPatternColor),
"minecraft:mooshroom/variant" => Some(Self::MooshroomVariant),
"minecraft:rabbit/variant" => Some(Self::RabbitVariant),
"minecraft:pig/variant" => Some(Self::PigVariant),
"minecraft:pig/sound_variant" => Some(Self::PigSoundVariant),
"minecraft:cow/variant" => Some(Self::CowVariant),
"minecraft:cow/sound_variant" => Some(Self::CowSoundVariant),
"minecraft:chicken/variant" => Some(Self::ChickenVariant),
"minecraft:chicken/sound_variant" => Some(Self::ChickenSoundVariant),
"minecraft:zombie_nautilus/variant" => Some(Self::ZombieNautilusVariant),
"minecraft:frog/variant" => Some(Self::FrogVariant),
"minecraft:horse/variant" => Some(Self::HorseVariant),
"minecraft:painting/variant" => Some(Self::PaintingVariant),
"minecraft:llama/variant" => Some(Self::LlamaVariant),
"minecraft:axolotl/variant" => Some(Self::AxolotlVariant),
"minecraft:cat/variant" => Some(Self::CatVariant),
"minecraft:cat/sound_variant" => Some(Self::CatSoundVariant),
"minecraft:cat/collar" => Some(Self::CatCollar),
"minecraft:sheep/color" => Some(Self::SheepColor),
"minecraft:shulker/color" => Some(Self::ShulkerColor),
match name {
"minecraft:custom_data" | "custom_data" => Some(Self::CustomData),
"minecraft:max_stack_size" | "max_stack_size" => Some(Self::MaxStackSize),
"minecraft:max_damage" | "max_damage" => Some(Self::MaxDamage),
"minecraft:damage" | "damage" => Some(Self::Damage),
"minecraft:unbreakable" | "unbreakable" => Some(Self::Unbreakable),
"minecraft:use_effects" | "use_effects" => Some(Self::UseEffects),
"minecraft:custom_name" | "custom_name" => Some(Self::CustomName),
"minecraft:minimum_attack_charge" | "minimum_attack_charge" => {
Some(Self::MinimumAttackCharge)
}
"minecraft:damage_type" | "damage_type" => Some(Self::DamageType),
"minecraft:item_name" | "item_name" => Some(Self::ItemName),
"minecraft:item_model" | "item_model" => Some(Self::ItemModel),
"minecraft:lore" | "lore" => Some(Self::Lore),
"minecraft:rarity" | "rarity" => Some(Self::Rarity),
"minecraft:enchantments" | "enchantments" => Some(Self::Enchantments),
"minecraft:can_place_on" | "can_place_on" => Some(Self::CanPlaceOn),
"minecraft:can_break" | "can_break" => Some(Self::CanBreak),
"minecraft:attribute_modifiers" | "attribute_modifiers" => {
Some(Self::AttributeModifiers)
}
"minecraft:custom_model_data" | "custom_model_data" => Some(Self::CustomModelData),
"minecraft:tooltip_display" | "tooltip_display" => Some(Self::TooltipDisplay),
"minecraft:repair_cost" | "repair_cost" => Some(Self::RepairCost),
"minecraft:creative_slot_lock" | "creative_slot_lock" => Some(Self::CreativeSlotLock),
"minecraft:enchantment_glint_override" | "enchantment_glint_override" => {
Some(Self::EnchantmentGlintOverride)
}
"minecraft:intangible_projectile" | "intangible_projectile" => {
Some(Self::IntangibleProjectile)
}
"minecraft:food" | "food" => Some(Self::Food),
"minecraft:consumable" | "consumable" => Some(Self::Consumable),
"minecraft:use_remainder" | "use_remainder" => Some(Self::UseRemainder),
"minecraft:use_cooldown" | "use_cooldown" => Some(Self::UseCooldown),
"minecraft:damage_resistant" | "damage_resistant" => Some(Self::DamageResistant),
"minecraft:tool" | "tool" => Some(Self::Tool),
"minecraft:weapon" | "weapon" => Some(Self::Weapon),
"minecraft:attack_range" | "attack_range" => Some(Self::AttackRange),
"minecraft:enchantable" | "enchantable" => Some(Self::Enchantable),
"minecraft:equippable" | "equippable" => Some(Self::Equippable),
"minecraft:repairable" | "repairable" => Some(Self::Repairable),
"minecraft:glider" | "glider" => Some(Self::Glider),
"minecraft:tooltip_style" | "tooltip_style" => Some(Self::TooltipStyle),
"minecraft:death_protection" | "death_protection" => Some(Self::DeathProtection),
"minecraft:blocks_attacks" | "blocks_attacks" => Some(Self::BlocksAttacks),
"minecraft:piercing_weapon" | "piercing_weapon" => Some(Self::PiercingWeapon),
"minecraft:kinetic_weapon" | "kinetic_weapon" => Some(Self::KineticWeapon),
"minecraft:swing_animation" | "swing_animation" => Some(Self::SwingAnimation),
"minecraft:additional_trade_cost" | "additional_trade_cost" => {
Some(Self::AdditionalTradeCost)
}
"minecraft:stored_enchantments" | "stored_enchantments" => {
Some(Self::StoredEnchantments)
}
"minecraft:dye" | "dye" => Some(Self::Dye),
"minecraft:dyed_color" | "dyed_color" => Some(Self::DyedColor),
"minecraft:map_color" | "map_color" => Some(Self::MapColor),
"minecraft:map_id" | "map_id" => Some(Self::MapId),
"minecraft:map_decorations" | "map_decorations" => Some(Self::MapDecorations),
"minecraft:map_post_processing" | "map_post_processing" => {
Some(Self::MapPostProcessing)
}
"minecraft:charged_projectiles" | "charged_projectiles" => {
Some(Self::ChargedProjectiles)
}
"minecraft:bundle_contents" | "bundle_contents" => Some(Self::BundleContents),
"minecraft:potion_contents" | "potion_contents" => Some(Self::PotionContents),
"minecraft:potion_duration_scale" | "potion_duration_scale" => {
Some(Self::PotionDurationScale)
}
"minecraft:suspicious_stew_effects" | "suspicious_stew_effects" => {
Some(Self::SuspiciousStewEffects)
}
"minecraft:writable_book_content" | "writable_book_content" => {
Some(Self::WritableBookContent)
}
"minecraft:written_book_content" | "written_book_content" => {
Some(Self::WrittenBookContent)
}
"minecraft:trim" | "trim" => Some(Self::Trim),
"minecraft:debug_stick_state" | "debug_stick_state" => Some(Self::DebugStickState),
"minecraft:entity_data" | "entity_data" => Some(Self::EntityData),
"minecraft:bucket_entity_data" | "bucket_entity_data" => Some(Self::BucketEntityData),
"minecraft:block_entity_data" | "block_entity_data" => Some(Self::BlockEntityData),
"minecraft:instrument" | "instrument" => Some(Self::Instrument),
"minecraft:provides_trim_material" | "provides_trim_material" => {
Some(Self::ProvidesTrimMaterial)
}
"minecraft:ominous_bottle_amplifier" | "ominous_bottle_amplifier" => {
Some(Self::OminousBottleAmplifier)
}
"minecraft:jukebox_playable" | "jukebox_playable" => Some(Self::JukeboxPlayable),
"minecraft:provides_banner_patterns" | "provides_banner_patterns" => {
Some(Self::ProvidesBannerPatterns)
}
"minecraft:recipes" | "recipes" => Some(Self::Recipes),
"minecraft:lodestone_tracker" | "lodestone_tracker" => Some(Self::LodestoneTracker),
"minecraft:firework_explosion" | "firework_explosion" => Some(Self::FireworkExplosion),
"minecraft:fireworks" | "fireworks" => Some(Self::Fireworks),
"minecraft:profile" | "profile" => Some(Self::Profile),
"minecraft:note_block_sound" | "note_block_sound" => Some(Self::NoteBlockSound),
"minecraft:banner_patterns" | "banner_patterns" => Some(Self::BannerPatterns),
"minecraft:base_color" | "base_color" => Some(Self::BaseColor),
"minecraft:pot_decorations" | "pot_decorations" => Some(Self::PotDecorations),
"minecraft:container" | "container" => Some(Self::Container),
"minecraft:block_state" | "block_state" => Some(Self::BlockState),
"minecraft:bees" | "bees" => Some(Self::Bees),
"minecraft:sulfur_cube_content" | "sulfur_cube_content" => {
Some(Self::SulfurCubeContent)
}
"minecraft:lock" | "lock" => Some(Self::Lock),
"minecraft:container_loot" | "container_loot" => Some(Self::ContainerLoot),
"minecraft:break_sound" | "break_sound" => Some(Self::BreakSound),
"minecraft:villager/variant" | "villager_variant" => Some(Self::VillagerVariant),
"minecraft:wolf/variant" | "wolf_variant" => Some(Self::WolfVariant),
"minecraft:wolf/sound_variant" | "wolf_sound_variant" => Some(Self::WolfSoundVariant),
"minecraft:wolf/collar" | "wolf_collar" => Some(Self::WolfCollar),
"minecraft:fox/variant" | "fox_variant" => Some(Self::FoxVariant),
"minecraft:salmon/size" | "salmon_size" => Some(Self::SalmonSize),
"minecraft:parrot/variant" | "parrot_variant" => Some(Self::ParrotVariant),
"minecraft:tropical_fish/pattern" | "tropical_fish_pattern" => {
Some(Self::TropicalFishPattern)
}
"minecraft:tropical_fish/base_color" | "tropical_fish_base_color" => {
Some(Self::TropicalFishBaseColor)
}
"minecraft:tropical_fish/pattern_color" | "tropical_fish_pattern_color" => {
Some(Self::TropicalFishPatternColor)
}
"minecraft:mooshroom/variant" | "mooshroom_variant" => Some(Self::MooshroomVariant),
"minecraft:rabbit/variant" | "rabbit_variant" => Some(Self::RabbitVariant),
"minecraft:pig/variant" | "pig_variant" => Some(Self::PigVariant),
"minecraft:pig/sound_variant" | "pig_sound_variant" => Some(Self::PigSoundVariant),
"minecraft:cow/variant" | "cow_variant" => Some(Self::CowVariant),
"minecraft:cow/sound_variant" | "cow_sound_variant" => Some(Self::CowSoundVariant),
"minecraft:chicken/variant" | "chicken_variant" => Some(Self::ChickenVariant),
"minecraft:chicken/sound_variant" | "chicken_sound_variant" => {
Some(Self::ChickenSoundVariant)
}
"minecraft:zombie_nautilus/variant" | "zombie_nautilus_variant" => {
Some(Self::ZombieNautilusVariant)
}
"minecraft:frog/variant" | "frog_variant" => Some(Self::FrogVariant),
"minecraft:horse/variant" | "horse_variant" => Some(Self::HorseVariant),
"minecraft:painting/variant" | "painting_variant" => Some(Self::PaintingVariant),
"minecraft:llama/variant" | "llama_variant" => Some(Self::LlamaVariant),
"minecraft:axolotl/variant" | "axolotl_variant" => Some(Self::AxolotlVariant),
"minecraft:cat/variant" | "cat_variant" => Some(Self::CatVariant),
"minecraft:cat/sound_variant" | "cat_sound_variant" => Some(Self::CatSoundVariant),
"minecraft:cat/collar" | "cat_collar" => Some(Self::CatCollar),
"minecraft:sheep/color" | "sheep_color" => Some(Self::SheepColor),
"minecraft:shulker/color" | "shulker_color" => Some(Self::ShulkerColor),
_ => None,
}
}

View File

@ -1,6 +1,8 @@
/* This file is generated. Do not edit manually. */
use pumpkin_util::math::int_provider::{
IntProvider, NormalIntProvider, UniformIntProvider,
BiasedToBottomIntProvider, ClampedIntProvider, ClampedNormalIntProvider, ConstantIntProvider,
IntProvider, NormalIntProvider, TrapezoidIntProvider, UniformIntProvider, WeightedEntry,
WeightedListIntProvider,
};
#[derive(Debug, Clone)]
pub struct Dimension {

View File

@ -212,3 +212,27 @@ impl DyeColor {
}
}
}
impl From<DyeColor> for String {
fn from(value: DyeColor) -> Self {
value.name().to_string()
}
}
impl From<&str> for DyeColor {
fn from(s: &str) -> Self {
DyeColor::by_name(s).unwrap_or_default()
}
}
impl From<i8> for DyeColor {
fn from(s: i8) -> Self {
if s >= 0 {
DyeColor::by_id(s as u8).unwrap_or_default()
} else {
DyeColor::default()
}
}
}
impl From<u8> for DyeColor {
fn from(s: u8) -> Self {
DyeColor::by_id(s).unwrap_or_default()
}
}

View File

@ -984,55 +984,54 @@ impl Enchantment {
},
};
pub fn from_name(name: &str) -> Option<&'static Self> {
let name = if name.contains(':') {
std::borrow::Cow::Borrowed(name)
} else {
std::borrow::Cow::Owned(format!("minecraft:{name}"))
};
match name.as_ref() {
"minecraft:aqua_affinity" => Some(&Self::AQUA_AFFINITY),
"minecraft:bane_of_arthropods" => Some(&Self::BANE_OF_ARTHROPODS),
"minecraft:binding_curse" => Some(&Self::BINDING_CURSE),
"minecraft:blast_protection" => Some(&Self::BLAST_PROTECTION),
"minecraft:breach" => Some(&Self::BREACH),
"minecraft:channeling" => Some(&Self::CHANNELING),
"minecraft:density" => Some(&Self::DENSITY),
"minecraft:depth_strider" => Some(&Self::DEPTH_STRIDER),
"minecraft:efficiency" => Some(&Self::EFFICIENCY),
"minecraft:feather_falling" => Some(&Self::FEATHER_FALLING),
"minecraft:fire_aspect" => Some(&Self::FIRE_ASPECT),
"minecraft:fire_protection" => Some(&Self::FIRE_PROTECTION),
"minecraft:flame" => Some(&Self::FLAME),
"minecraft:fortune" => Some(&Self::FORTUNE),
"minecraft:frost_walker" => Some(&Self::FROST_WALKER),
"minecraft:impaling" => Some(&Self::IMPALING),
"minecraft:infinity" => Some(&Self::INFINITY),
"minecraft:knockback" => Some(&Self::KNOCKBACK),
"minecraft:looting" => Some(&Self::LOOTING),
"minecraft:loyalty" => Some(&Self::LOYALTY),
"minecraft:luck_of_the_sea" => Some(&Self::LUCK_OF_THE_SEA),
"minecraft:lunge" => Some(&Self::LUNGE),
"minecraft:lure" => Some(&Self::LURE),
"minecraft:mending" => Some(&Self::MENDING),
"minecraft:multishot" => Some(&Self::MULTISHOT),
"minecraft:piercing" => Some(&Self::PIERCING),
"minecraft:power" => Some(&Self::POWER),
"minecraft:projectile_protection" => Some(&Self::PROJECTILE_PROTECTION),
"minecraft:protection" => Some(&Self::PROTECTION),
"minecraft:punch" => Some(&Self::PUNCH),
"minecraft:quick_charge" => Some(&Self::QUICK_CHARGE),
"minecraft:respiration" => Some(&Self::RESPIRATION),
"minecraft:riptide" => Some(&Self::RIPTIDE),
"minecraft:sharpness" => Some(&Self::SHARPNESS),
"minecraft:silk_touch" => Some(&Self::SILK_TOUCH),
"minecraft:smite" => Some(&Self::SMITE),
"minecraft:soul_speed" => Some(&Self::SOUL_SPEED),
"minecraft:sweeping_edge" => Some(&Self::SWEEPING_EDGE),
"minecraft:swift_sneak" => Some(&Self::SWIFT_SNEAK),
"minecraft:thorns" => Some(&Self::THORNS),
"minecraft:unbreaking" => Some(&Self::UNBREAKING),
"minecraft:vanishing_curse" => Some(&Self::VANISHING_CURSE),
"minecraft:wind_burst" => Some(&Self::WIND_BURST),
match name {
"minecraft:aqua_affinity" | "aqua_affinity" => Some(&Self::AQUA_AFFINITY),
"minecraft:bane_of_arthropods" | "bane_of_arthropods" => {
Some(&Self::BANE_OF_ARTHROPODS)
}
"minecraft:binding_curse" | "binding_curse" => Some(&Self::BINDING_CURSE),
"minecraft:blast_protection" | "blast_protection" => Some(&Self::BLAST_PROTECTION),
"minecraft:breach" | "breach" => Some(&Self::BREACH),
"minecraft:channeling" | "channeling" => Some(&Self::CHANNELING),
"minecraft:density" | "density" => Some(&Self::DENSITY),
"minecraft:depth_strider" | "depth_strider" => Some(&Self::DEPTH_STRIDER),
"minecraft:efficiency" | "efficiency" => Some(&Self::EFFICIENCY),
"minecraft:feather_falling" | "feather_falling" => Some(&Self::FEATHER_FALLING),
"minecraft:fire_aspect" | "fire_aspect" => Some(&Self::FIRE_ASPECT),
"minecraft:fire_protection" | "fire_protection" => Some(&Self::FIRE_PROTECTION),
"minecraft:flame" | "flame" => Some(&Self::FLAME),
"minecraft:fortune" | "fortune" => Some(&Self::FORTUNE),
"minecraft:frost_walker" | "frost_walker" => Some(&Self::FROST_WALKER),
"minecraft:impaling" | "impaling" => Some(&Self::IMPALING),
"minecraft:infinity" | "infinity" => Some(&Self::INFINITY),
"minecraft:knockback" | "knockback" => Some(&Self::KNOCKBACK),
"minecraft:looting" | "looting" => Some(&Self::LOOTING),
"minecraft:loyalty" | "loyalty" => Some(&Self::LOYALTY),
"minecraft:luck_of_the_sea" | "luck_of_the_sea" => Some(&Self::LUCK_OF_THE_SEA),
"minecraft:lunge" | "lunge" => Some(&Self::LUNGE),
"minecraft:lure" | "lure" => Some(&Self::LURE),
"minecraft:mending" | "mending" => Some(&Self::MENDING),
"minecraft:multishot" | "multishot" => Some(&Self::MULTISHOT),
"minecraft:piercing" | "piercing" => Some(&Self::PIERCING),
"minecraft:power" | "power" => Some(&Self::POWER),
"minecraft:projectile_protection" | "projectile_protection" => {
Some(&Self::PROJECTILE_PROTECTION)
}
"minecraft:protection" | "protection" => Some(&Self::PROTECTION),
"minecraft:punch" | "punch" => Some(&Self::PUNCH),
"minecraft:quick_charge" | "quick_charge" => Some(&Self::QUICK_CHARGE),
"minecraft:respiration" | "respiration" => Some(&Self::RESPIRATION),
"minecraft:riptide" | "riptide" => Some(&Self::RIPTIDE),
"minecraft:sharpness" | "sharpness" => Some(&Self::SHARPNESS),
"minecraft:silk_touch" | "silk_touch" => Some(&Self::SILK_TOUCH),
"minecraft:smite" | "smite" => Some(&Self::SMITE),
"minecraft:soul_speed" | "soul_speed" => Some(&Self::SOUL_SPEED),
"minecraft:sweeping_edge" | "sweeping_edge" => Some(&Self::SWEEPING_EDGE),
"minecraft:swift_sneak" | "swift_sneak" => Some(&Self::SWIFT_SNEAK),
"minecraft:thorns" | "thorns" => Some(&Self::THORNS),
"minecraft:unbreaking" | "unbreaking" => Some(&Self::UNBREAKING),
"minecraft:vanishing_curse" | "vanishing_curse" => Some(&Self::VANISHING_CURSE),
"minecraft:wind_burst" | "wind_burst" => Some(&Self::WIND_BURST),
_ => None,
}
}

View File

@ -1,4 +1,184 @@
/* This file is generated. Do not edit manually. */
pub static ENTITY_ID_REMAP_V_26_2_TO_V_1_7_6: &[u16] = &[
5, 5, 78, 0, 9, 1, 2, 72, 5, 5, 3, 52, 5, 5, 4, 1, 71, 4, 37, 11, 11, 48, 6, 5, 5, 40, 7, 8,
56, 41, 9, 80, 10, 5, 5, 12, 11, 13, 14, 74, 15, 18, 19, 17, 75, 16, 21, 20, 76, 22, 23, 24,
34, 25, 86, 56, 42, 26, 26, 27, 33, 70, 58, 28, 9, 43, 29, 30, 31, 1, 80, 32, 1, 33, 5, 5, 35,
91, 36, 37, 38, 5, 5, 92, 0, 39, 47, 46, 70, 5, 5, 48, 1, 49, 5, 5, 54, 62, 50, 90, 51, 53, 53,
79, 54, 77, 77, 52, 56, 9, 57, 58, 59, 60, 61, 62, 63, 64, 65, 9, 67, 66, 44, 68, 69, 5, 5, 70,
71, 38, 64, 52, 1, 55, 45, 36, 94, 72, 73, 78, 79, 81, 79, 80, 37, 82, 83, 84, 85, 86, 9, 87,
88, 70, 89, 53, 92, 93,
];
pub static ENTITY_ID_REMAP_V_26_2_TO_V_1_8: &[u16] = &[
5, 5, 78, 0, 9, 1, 2, 72, 5, 5, 3, 52, 5, 5, 4, 1, 71, 4, 37, 11, 11, 48, 6, 5, 5, 40, 7, 8,
56, 41, 9, 80, 10, 5, 5, 12, 11, 13, 14, 74, 15, 18, 19, 17, 75, 16, 21, 20, 76, 22, 23, 24,
34, 25, 86, 56, 42, 26, 26, 27, 33, 70, 58, 28, 9, 43, 29, 30, 31, 1, 80, 32, 1, 33, 5, 5, 35,
91, 36, 37, 38, 5, 5, 92, 0, 39, 47, 46, 70, 5, 5, 48, 1, 49, 5, 5, 54, 62, 50, 90, 51, 53, 53,
79, 54, 77, 77, 52, 56, 9, 57, 58, 59, 60, 61, 62, 63, 64, 65, 9, 67, 66, 44, 68, 69, 5, 5, 70,
71, 38, 64, 52, 1, 55, 45, 36, 94, 72, 73, 78, 79, 81, 79, 80, 37, 82, 83, 84, 85, 86, 9, 87,
88, 70, 89, 53, 92, 93,
];
pub static ENTITY_ID_REMAP_V_26_2_TO_V_1_9: &[u16] = &[
5, 5, 78, 0, 9, 1, 2, 72, 5, 5, 3, 52, 5, 5, 4, 1, 71, 4, 37, 11, 11, 48, 6, 5, 5, 40, 7, 8,
56, 41, 9, 80, 10, 5, 5, 12, 11, 13, 14, 74, 15, 18, 19, 17, 75, 16, 21, 20, 76, 22, 23, 24,
34, 25, 86, 56, 42, 26, 26, 27, 33, 70, 58, 28, 9, 43, 29, 30, 31, 1, 80, 32, 1, 33, 5, 5, 35,
91, 36, 37, 38, 5, 5, 92, 0, 39, 47, 46, 70, 5, 5, 48, 1, 49, 5, 5, 54, 62, 50, 90, 51, 53, 53,
79, 54, 77, 77, 52, 56, 9, 57, 58, 59, 60, 61, 62, 63, 64, 65, 9, 67, 66, 44, 68, 69, 5, 5, 70,
71, 38, 64, 52, 1, 55, 45, 36, 94, 72, 73, 78, 79, 81, 79, 80, 37, 82, 83, 84, 85, 86, 9, 87,
88, 70, 89, 53, 92, 93,
];
pub static ENTITY_ID_REMAP_V_26_2_TO_V_1_10: &[u16] = &[
5, 5, 78, 0, 9, 1, 2, 72, 5, 5, 3, 52, 5, 5, 4, 1, 71, 4, 37, 11, 11, 48, 6, 5, 5, 40, 7, 8,
56, 41, 9, 80, 10, 5, 5, 12, 11, 13, 14, 74, 15, 18, 19, 17, 75, 16, 21, 20, 76, 22, 23, 24,
34, 25, 86, 56, 42, 26, 26, 27, 33, 70, 58, 28, 9, 43, 29, 30, 31, 1, 80, 32, 1, 33, 5, 5, 35,
91, 36, 37, 38, 5, 5, 92, 0, 39, 47, 46, 70, 5, 5, 48, 1, 49, 5, 5, 54, 62, 50, 90, 51, 53, 53,
79, 54, 77, 77, 52, 56, 9, 57, 58, 59, 60, 61, 62, 63, 64, 65, 9, 67, 66, 44, 68, 69, 5, 5, 70,
71, 38, 64, 52, 1, 55, 45, 36, 94, 72, 73, 78, 79, 81, 79, 80, 37, 82, 83, 84, 85, 86, 9, 87,
88, 70, 89, 53, 92, 93,
];
pub static ENTITY_ID_REMAP_V_26_2_TO_V_1_11: &[u16] = &[
5, 5, 78, 0, 9, 1, 2, 72, 5, 5, 3, 52, 5, 5, 4, 1, 71, 4, 37, 11, 11, 48, 6, 5, 5, 40, 7, 8,
56, 41, 9, 80, 10, 5, 5, 12, 11, 13, 14, 74, 15, 18, 19, 17, 75, 16, 21, 20, 76, 22, 23, 24,
34, 25, 86, 56, 42, 26, 26, 27, 33, 70, 58, 28, 9, 43, 29, 30, 31, 1, 80, 32, 1, 33, 5, 5, 35,
91, 36, 37, 38, 5, 5, 92, 0, 39, 47, 46, 70, 5, 5, 48, 1, 49, 5, 5, 54, 62, 50, 90, 51, 53, 53,
79, 54, 77, 77, 52, 56, 9, 57, 58, 59, 60, 61, 62, 63, 64, 65, 9, 67, 66, 44, 68, 69, 5, 5, 70,
71, 38, 64, 52, 1, 55, 45, 36, 94, 72, 73, 78, 79, 81, 79, 80, 37, 82, 83, 84, 85, 86, 9, 87,
88, 70, 89, 53, 92, 93,
];
pub static ENTITY_ID_REMAP_V_26_2_TO_V_1_12: &[u16] = &[
5, 5, 78, 0, 9, 1, 2, 72, 5, 5, 3, 52, 5, 5, 4, 1, 71, 4, 37, 11, 11, 48, 6, 5, 5, 40, 7, 8,
56, 41, 9, 80, 10, 5, 5, 12, 11, 13, 14, 74, 15, 18, 19, 17, 75, 16, 21, 20, 76, 22, 23, 24,
34, 25, 86, 56, 42, 26, 26, 27, 33, 70, 58, 28, 9, 43, 29, 30, 31, 1, 80, 32, 1, 33, 5, 5, 35,
91, 36, 37, 38, 5, 5, 92, 0, 39, 47, 46, 70, 5, 5, 48, 1, 49, 5, 5, 54, 62, 50, 90, 51, 53, 53,
79, 54, 77, 77, 52, 56, 9, 57, 58, 59, 60, 61, 62, 63, 64, 65, 9, 67, 66, 44, 68, 69, 5, 5, 70,
71, 38, 64, 52, 1, 55, 45, 36, 94, 72, 73, 78, 79, 81, 79, 80, 37, 82, 83, 84, 85, 86, 9, 87,
88, 70, 89, 53, 92, 93,
];
pub static ENTITY_ID_REMAP_V_26_2_TO_V_1_13: &[u16] = &[
5, 5, 78, 0, 9, 1, 2, 72, 5, 5, 3, 52, 5, 5, 4, 1, 71, 4, 37, 11, 11, 48, 6, 5, 5, 40, 7, 8,
56, 41, 9, 80, 10, 5, 5, 12, 11, 13, 14, 74, 15, 18, 19, 17, 75, 16, 21, 20, 76, 22, 23, 24,
34, 25, 86, 56, 42, 26, 26, 27, 33, 70, 58, 28, 9, 43, 29, 30, 31, 1, 80, 32, 1, 33, 5, 5, 35,
91, 36, 37, 38, 5, 5, 92, 0, 39, 47, 46, 70, 5, 5, 48, 1, 49, 5, 5, 54, 62, 50, 90, 51, 53, 53,
79, 54, 77, 77, 52, 56, 9, 57, 58, 59, 60, 61, 62, 63, 64, 65, 9, 67, 66, 44, 68, 69, 5, 5, 70,
71, 38, 64, 52, 1, 55, 45, 36, 94, 72, 73, 78, 79, 81, 79, 80, 37, 82, 83, 84, 85, 86, 9, 87,
88, 70, 89, 53, 92, 93,
];
pub static ENTITY_ID_REMAP_V_26_2_TO_V_1_13_2: &[u16] = &[
5, 5, 78, 0, 9, 1, 2, 72, 5, 5, 3, 52, 5, 5, 4, 1, 71, 4, 37, 11, 11, 48, 6, 5, 5, 40, 7, 8,
56, 41, 9, 80, 10, 5, 5, 12, 11, 13, 14, 74, 15, 18, 19, 17, 75, 16, 21, 20, 76, 22, 23, 24,
34, 25, 86, 56, 42, 26, 26, 27, 33, 70, 58, 28, 9, 43, 29, 30, 31, 1, 80, 32, 1, 33, 5, 5, 35,
91, 36, 37, 38, 5, 5, 92, 0, 39, 47, 46, 70, 5, 5, 48, 1, 49, 5, 5, 54, 62, 50, 90, 51, 53, 53,
79, 54, 77, 77, 52, 56, 9, 57, 58, 59, 60, 61, 62, 63, 64, 65, 9, 67, 66, 44, 68, 69, 5, 5, 70,
71, 38, 64, 52, 1, 55, 45, 36, 94, 72, 73, 78, 79, 81, 79, 80, 37, 82, 83, 84, 85, 86, 9, 87,
88, 70, 89, 53, 92, 93,
];
pub static ENTITY_ID_REMAP_V_26_2_TO_V_1_14: &[u16] = &[
5, 5, 83, 0, 10, 1, 2, 76, 5, 5, 3, 55, 5, 5, 4, 1, 74, 4, 39, 12, 12, 6, 7, 5, 5, 42, 8, 9,
59, 43, 10, 85, 11, 5, 5, 13, 12, 14, 15, 78, 16, 19, 20, 18, 79, 17, 22, 21, 80, 23, 24, 25,
36, 26, 27, 59, 44, 28, 28, 29, 35, 73, 61, 30, 10, 45, 31, 32, 33, 1, 85, 34, 1, 35, 5, 5, 37,
99, 38, 39, 40, 5, 5, 100, 0, 41, 49, 48, 73, 5, 5, 50, 1, 51, 5, 5, 52, 65, 53, 97, 54, 56,
56, 87, 57, 81, 81, 55, 59, 98, 60, 61, 62, 63, 64, 65, 66, 67, 68, 98, 70, 69, 46, 71, 72, 5,
5, 73, 74, 40, 67, 55, 1, 58, 47, 75, 82, 76, 77, 83, 84, 86, 88, 85, 39, 89, 90, 91, 92, 93,
10, 94, 95, 73, 96, 56, 100, 101,
];
pub static ENTITY_ID_REMAP_V_26_2_TO_V_1_15: &[u16] = &[
6, 6, 84, 0, 11, 1, 2, 77, 6, 6, 3, 4, 6, 6, 5, 1, 75, 5, 40, 13, 13, 7, 8, 6, 6, 43, 9, 10,
60, 44, 11, 86, 12, 6, 6, 14, 13, 15, 16, 79, 17, 20, 21, 19, 80, 18, 23, 22, 81, 24, 25, 26,
37, 27, 28, 60, 45, 29, 29, 30, 36, 74, 62, 31, 11, 46, 32, 33, 34, 1, 86, 35, 1, 36, 6, 6, 38,
100, 39, 40, 41, 6, 6, 101, 0, 42, 50, 49, 74, 6, 6, 51, 1, 52, 6, 6, 53, 66, 54, 98, 55, 57,
57, 88, 58, 82, 82, 56, 60, 99, 61, 62, 63, 64, 65, 66, 67, 68, 69, 99, 71, 70, 47, 72, 73, 6,
6, 74, 75, 41, 68, 56, 1, 59, 48, 76, 83, 77, 78, 84, 85, 87, 89, 86, 40, 90, 91, 92, 93, 94,
11, 95, 96, 74, 97, 57, 101, 102,
];
pub static ENTITY_ID_REMAP_V_26_2_TO_V_1_16: &[u16] = &[
6, 6, 91, 0, 11, 1, 2, 89, 6, 6, 3, 4, 6, 6, 5, 1, 81, 5, 43, 14, 14, 7, 8, 6, 6, 46, 9, 10,
65, 47, 11, 36, 12, 6, 6, 13, 14, 15, 16, 83, 17, 20, 21, 19, 84, 18, 22, 23, 85, 24, 25, 26,
39, 27, 28, 65, 48, 29, 29, 30, 38, 80, 68, 31, 32, 49, 33, 34, 35, 1, 36, 37, 1, 38, 6, 6, 40,
41, 42, 43, 44, 6, 6, 105, 0, 45, 53, 52, 80, 6, 6, 54, 1, 55, 6, 6, 56, 72, 57, 58, 59, 60,
60, 61, 62, 86, 86, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 66, 77, 76, 50, 78, 79, 6,
6, 80, 81, 82, 74, 64, 1, 63, 51, 88, 87, 89, 90, 91, 92, 93, 94, 36, 43, 95, 96, 97, 98, 99,
100, 101, 102, 80, 103, 104, 105, 106,
];
pub static ENTITY_ID_REMAP_V_26_2_TO_V_1_16_2: &[u16] = &[
6, 6, 92, 0, 11, 1, 2, 90, 6, 6, 3, 4, 6, 6, 5, 1, 82, 5, 43, 14, 14, 7, 8, 6, 6, 46, 9, 10,
66, 47, 11, 36, 12, 6, 6, 13, 14, 15, 16, 84, 17, 20, 21, 19, 85, 18, 22, 23, 86, 24, 25, 26,
39, 27, 28, 66, 48, 29, 29, 30, 38, 81, 69, 31, 32, 49, 33, 34, 35, 1, 36, 37, 1, 38, 6, 6, 40,
41, 42, 43, 44, 6, 6, 106, 0, 45, 53, 52, 81, 6, 6, 54, 1, 55, 6, 6, 56, 73, 57, 58, 59, 60,
61, 62, 63, 87, 87, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 67, 78, 77, 50, 79, 80, 6,
6, 81, 82, 83, 75, 65, 1, 64, 51, 89, 88, 90, 91, 92, 93, 94, 95, 36, 43, 96, 97, 98, 99, 100,
101, 102, 103, 81, 104, 105, 106, 107,
];
pub static ENTITY_ID_REMAP_V_26_2_TO_V_1_17: &[u16] = &[
7, 7, 97, 0, 12, 1, 2, 3, 7, 7, 4, 5, 7, 7, 6, 1, 87, 6, 47, 15, 15, 8, 9, 7, 7, 51, 10, 11,
71, 52, 12, 40, 13, 7, 7, 14, 15, 16, 17, 89, 18, 21, 22, 20, 90, 19, 23, 24, 91, 25, 26, 27,
43, 28, 29, 71, 53, 30, 30, 31, 32, 33, 34, 35, 36, 54, 37, 38, 39, 1, 40, 41, 1, 42, 7, 7, 44,
45, 46, 47, 48, 7, 7, 111, 49, 50, 58, 57, 86, 7, 7, 59, 1, 60, 7, 7, 61, 78, 62, 63, 64, 65,
66, 67, 68, 92, 92, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 72, 83, 82, 55, 84, 85, 7,
7, 86, 87, 88, 80, 70, 1, 69, 56, 94, 93, 95, 96, 97, 98, 99, 100, 40, 47, 101, 102, 103, 104,
105, 106, 107, 108, 33, 109, 110, 111, 112,
];
pub static ENTITY_ID_REMAP_V_26_2_TO_V_1_18: &[u16] = &[
7, 7, 97, 0, 12, 1, 2, 3, 7, 7, 4, 5, 7, 7, 6, 1, 87, 6, 47, 15, 15, 8, 9, 7, 7, 51, 10, 11,
71, 52, 12, 40, 13, 7, 7, 14, 15, 16, 17, 89, 18, 21, 22, 20, 90, 19, 23, 24, 91, 25, 26, 27,
43, 28, 29, 71, 53, 30, 30, 31, 32, 33, 34, 35, 36, 54, 37, 38, 39, 1, 40, 41, 1, 42, 7, 7, 44,
45, 46, 47, 48, 7, 7, 111, 49, 50, 58, 57, 86, 7, 7, 59, 1, 60, 7, 7, 61, 78, 62, 63, 64, 65,
66, 67, 68, 92, 92, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 72, 83, 82, 55, 84, 85, 7,
7, 86, 87, 88, 80, 70, 1, 69, 56, 94, 93, 95, 96, 97, 98, 99, 100, 40, 47, 101, 102, 103, 104,
105, 106, 107, 108, 33, 109, 110, 111, 112,
];
pub static ENTITY_ID_REMAP_V_26_2_TO_V_1_19: &[u16] = &[
8, 9, 0, 1, 14, 2, 3, 4, 9, 8, 5, 6, 8, 9, 7, 2, 90, 7, 50, 17, 17, 10, 11, 8, 9, 54, 12, 13,
32, 55, 14, 105, 15, 8, 9, 16, 17, 18, 19, 93, 20, 23, 24, 22, 94, 21, 25, 26, 95, 27, 28, 29,
46, 30, 31, 32, 56, 33, 33, 34, 35, 36, 37, 38, 39, 57, 40, 41, 42, 2, 43, 44, 2, 45, 8, 9, 47,
48, 49, 50, 51, 8, 9, 116, 52, 53, 61, 60, 89, 8, 9, 62, 2, 63, 8, 9, 64, 81, 65, 66, 67, 68,
69, 70, 71, 96, 96, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 75, 86, 85, 58, 87, 88, 8,
9, 89, 90, 91, 83, 92, 2, 72, 59, 98, 97, 99, 100, 101, 102, 103, 104, 105, 50, 106, 107, 108,
109, 110, 111, 112, 113, 36, 114, 115, 116, 117,
];
pub static ENTITY_ID_REMAP_V_26_2_TO_V_1_19_3: &[u16] = &[
8, 9, 0, 1, 15, 2, 3, 4, 9, 8, 5, 6, 8, 9, 7, 2, 91, 7, 51, 11, 11, 10, 12, 8, 9, 55, 13, 14,
33, 56, 15, 106, 16, 8, 9, 17, 18, 19, 20, 94, 21, 24, 25, 23, 95, 22, 26, 27, 96, 28, 29, 30,
47, 31, 32, 33, 57, 34, 34, 35, 36, 37, 38, 39, 40, 58, 41, 42, 43, 2, 44, 45, 2, 46, 8, 9, 48,
49, 50, 51, 52, 8, 9, 117, 53, 54, 62, 61, 90, 8, 9, 63, 2, 64, 8, 9, 65, 82, 66, 67, 68, 69,
70, 71, 72, 97, 97, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 76, 87, 86, 59, 88, 89, 8,
9, 90, 91, 92, 84, 93, 2, 73, 60, 99, 98, 100, 101, 102, 103, 104, 105, 106, 51, 107, 108, 109,
110, 111, 112, 113, 114, 37, 115, 116, 117, 118,
];
pub static ENTITY_ID_REMAP_V_26_2_TO_V_1_19_4: &[u16] = &[
9, 13, 0, 1, 18, 2, 3, 4, 13, 9, 5, 6, 9, 13, 7, 8, 97, 7, 61, 10, 10, 11, 12, 9, 13, 14, 15,
16, 39, 17, 18, 111, 19, 9, 13, 20, 21, 22, 23, 24, 25, 29, 30, 27, 28, 26, 31, 32, 33, 34, 35,
36, 57, 37, 38, 39, 40, 41, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 9,
13, 58, 59, 60, 61, 62, 9, 13, 122, 63, 64, 65, 66, 96, 9, 13, 67, 100, 68, 9, 13, 69, 86, 70,
71, 72, 73, 74, 75, 76, 77, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 92, 91, 93,
94, 95, 9, 13, 96, 97, 98, 88, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
61, 112, 113, 114, 115, 116, 117, 118, 119, 44, 120, 121, 122, 123,
];
pub static ENTITY_ID_REMAP_V_26_2_TO_V_1_20: &[u16] = &[
9, 13, 0, 1, 18, 2, 3, 4, 13, 9, 5, 6, 9, 13, 7, 8, 97, 7, 61, 10, 10, 11, 12, 9, 13, 14, 15,
16, 39, 17, 18, 111, 19, 9, 13, 20, 21, 22, 23, 24, 25, 29, 30, 27, 28, 26, 31, 32, 33, 34, 35,
36, 57, 37, 38, 39, 40, 41, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 9,
13, 58, 59, 60, 61, 62, 9, 13, 122, 63, 64, 65, 66, 96, 9, 13, 67, 100, 68, 9, 13, 69, 86, 70,
71, 72, 73, 74, 75, 76, 77, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 92, 91, 93,
94, 95, 9, 13, 96, 97, 98, 88, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
61, 112, 113, 114, 115, 116, 117, 118, 119, 44, 120, 121, 122, 123,
];
pub static ENTITY_ID_REMAP_V_26_2_TO_V_1_20_2: &[u16] = &[
9, 13, 0, 1, 18, 2, 3, 4, 13, 9, 5, 6, 9, 13, 7, 8, 97, 7, 61, 10, 10, 11, 12, 9, 13, 14, 15,
16, 39, 17, 18, 111, 19, 9, 13, 20, 21, 22, 23, 24, 25, 29, 30, 27, 28, 26, 31, 32, 33, 34, 35,
36, 57, 37, 38, 39, 40, 41, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 9,
13, 58, 59, 60, 61, 62, 9, 13, 122, 63, 64, 65, 66, 96, 9, 13, 67, 100, 68, 9, 13, 69, 86, 70,
71, 72, 73, 74, 75, 76, 77, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 92, 91, 93,
94, 95, 9, 13, 96, 97, 98, 88, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
61, 112, 113, 114, 115, 116, 117, 118, 119, 44, 120, 121, 122, 123,
];
pub static ENTITY_ID_REMAP_V_26_2_TO_V_1_20_3: &[u16] = &[
9, 14, 0, 1, 19, 2, 3, 4, 14, 9, 5, 6, 9, 14, 7, 8, 98, 10, 113, 11, 11, 12, 13, 9, 14, 15, 16,
17, 40, 18, 19, 112, 20, 9, 14, 21, 22, 23, 24, 25, 26, 30, 31, 28, 29, 27, 32, 33, 34, 35, 36,
37, 58, 38, 39, 40, 41, 42, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 9,
14, 59, 60, 61, 62, 63, 9, 14, 124, 64, 65, 66, 67, 97, 9, 14, 68, 101, 69, 9, 14, 70, 87, 71,
72, 73, 74, 75, 76, 77, 78, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 93, 92, 94,
95, 96, 9, 14, 97, 98, 99, 89, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
113, 114, 115, 116, 117, 118, 119, 120, 121, 45, 122, 123, 124, 125,
];
pub static ENTITY_ID_REMAP_V_26_2_TO_V_1_20_5: &[u16] = &[
10, 17, 0, 1, 2, 3, 4, 5, 17, 10, 6, 7, 10, 17, 8, 9, 11, 12, 13, 14, 14, 15, 16, 10, 17, 18,
19, 20, 43, 21, 22, 116, 23, 10, 17, 24, 25, 26, 27, 28, 29, 33, 34, 31, 32, 30, 35, 36, 37,
@ -103,6 +283,86 @@ pub fn remap_entity_id_for_version(
version: pumpkin_util::version::JavaMinecraftVersion,
) -> u16 {
match version {
pumpkin_util::version::JavaMinecraftVersion::V_1_7_6 => ENTITY_ID_REMAP_V_26_2_TO_V_1_7_6
.get(usize::from(entity_id))
.copied()
.unwrap_or(0),
pumpkin_util::version::JavaMinecraftVersion::V_1_8 => ENTITY_ID_REMAP_V_26_2_TO_V_1_8
.get(usize::from(entity_id))
.copied()
.unwrap_or(0),
pumpkin_util::version::JavaMinecraftVersion::V_1_9 => ENTITY_ID_REMAP_V_26_2_TO_V_1_9
.get(usize::from(entity_id))
.copied()
.unwrap_or(0),
pumpkin_util::version::JavaMinecraftVersion::V_1_10 => ENTITY_ID_REMAP_V_26_2_TO_V_1_10
.get(usize::from(entity_id))
.copied()
.unwrap_or(0),
pumpkin_util::version::JavaMinecraftVersion::V_1_11 => ENTITY_ID_REMAP_V_26_2_TO_V_1_11
.get(usize::from(entity_id))
.copied()
.unwrap_or(0),
pumpkin_util::version::JavaMinecraftVersion::V_1_12 => ENTITY_ID_REMAP_V_26_2_TO_V_1_12
.get(usize::from(entity_id))
.copied()
.unwrap_or(0),
pumpkin_util::version::JavaMinecraftVersion::V_1_13 => ENTITY_ID_REMAP_V_26_2_TO_V_1_13
.get(usize::from(entity_id))
.copied()
.unwrap_or(0),
pumpkin_util::version::JavaMinecraftVersion::V_1_13_2 => ENTITY_ID_REMAP_V_26_2_TO_V_1_13_2
.get(usize::from(entity_id))
.copied()
.unwrap_or(0),
pumpkin_util::version::JavaMinecraftVersion::V_1_14 => ENTITY_ID_REMAP_V_26_2_TO_V_1_14
.get(usize::from(entity_id))
.copied()
.unwrap_or(0),
pumpkin_util::version::JavaMinecraftVersion::V_1_15 => ENTITY_ID_REMAP_V_26_2_TO_V_1_15
.get(usize::from(entity_id))
.copied()
.unwrap_or(0),
pumpkin_util::version::JavaMinecraftVersion::V_1_16 => ENTITY_ID_REMAP_V_26_2_TO_V_1_16
.get(usize::from(entity_id))
.copied()
.unwrap_or(0),
pumpkin_util::version::JavaMinecraftVersion::V_1_16_2 => ENTITY_ID_REMAP_V_26_2_TO_V_1_16_2
.get(usize::from(entity_id))
.copied()
.unwrap_or(0),
pumpkin_util::version::JavaMinecraftVersion::V_1_17 => ENTITY_ID_REMAP_V_26_2_TO_V_1_17
.get(usize::from(entity_id))
.copied()
.unwrap_or(0),
pumpkin_util::version::JavaMinecraftVersion::V_1_18 => ENTITY_ID_REMAP_V_26_2_TO_V_1_18
.get(usize::from(entity_id))
.copied()
.unwrap_or(0),
pumpkin_util::version::JavaMinecraftVersion::V_1_19 => ENTITY_ID_REMAP_V_26_2_TO_V_1_19
.get(usize::from(entity_id))
.copied()
.unwrap_or(0),
pumpkin_util::version::JavaMinecraftVersion::V_1_19_3 => ENTITY_ID_REMAP_V_26_2_TO_V_1_19_3
.get(usize::from(entity_id))
.copied()
.unwrap_or(0),
pumpkin_util::version::JavaMinecraftVersion::V_1_19_4 => ENTITY_ID_REMAP_V_26_2_TO_V_1_19_4
.get(usize::from(entity_id))
.copied()
.unwrap_or(0),
pumpkin_util::version::JavaMinecraftVersion::V_1_20 => ENTITY_ID_REMAP_V_26_2_TO_V_1_20
.get(usize::from(entity_id))
.copied()
.unwrap_or(0),
pumpkin_util::version::JavaMinecraftVersion::V_1_20_2 => ENTITY_ID_REMAP_V_26_2_TO_V_1_20_2
.get(usize::from(entity_id))
.copied()
.unwrap_or(0),
pumpkin_util::version::JavaMinecraftVersion::V_1_20_3 => ENTITY_ID_REMAP_V_26_2_TO_V_1_20_3
.get(usize::from(entity_id))
.copied()
.unwrap_or(0),
pumpkin_util::version::JavaMinecraftVersion::V_1_20_5 => ENTITY_ID_REMAP_V_26_2_TO_V_1_20_5
.get(usize::from(entity_id))
.copied()

View File

@ -301,7 +301,7 @@ impl EntityType {
(Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64),
(Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64),
],
experience_reward: 1u32,
experience_reward: 2u32,
hurt_sound: None,
attackable: Some(true),
mob: true,
@ -432,7 +432,7 @@ impl EntityType {
(Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64),
(Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64),
],
experience_reward: 1u32,
experience_reward: 3u32,
hurt_sound: None,
attackable: Some(true),
mob: true,
@ -1140,7 +1140,7 @@ impl EntityType {
(Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64),
(Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64),
],
experience_reward: 2u32,
experience_reward: 1u32,
hurt_sound: None,
attackable: Some(true),
mob: true,
@ -1506,7 +1506,7 @@ impl EntityType {
(Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64),
(Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64),
],
experience_reward: 2u32,
experience_reward: 1u32,
hurt_sound: None,
attackable: Some(true),
mob: true,
@ -1856,7 +1856,7 @@ impl EntityType {
(Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64),
(Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64),
],
experience_reward: 3u32,
experience_reward: 2u32,
hurt_sound: None,
attackable: Some(true),
mob: true,
@ -2216,7 +2216,7 @@ impl EntityType {
(Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64),
(Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64),
],
experience_reward: 2u32,
experience_reward: 1u32,
hurt_sound: None,
attackable: Some(true),
mob: true,
@ -2324,7 +2324,7 @@ impl EntityType {
(Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64),
(Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64),
],
experience_reward: 2u32,
experience_reward: 3u32,
hurt_sound: None,
attackable: Some(true),
mob: true,
@ -3346,7 +3346,7 @@ impl EntityType {
(Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64),
(Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64),
],
experience_reward: 1u32,
experience_reward: 3u32,
hurt_sound: None,
attackable: Some(true),
mob: true,
@ -3712,7 +3712,7 @@ impl EntityType {
(Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64),
(Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64),
],
experience_reward: 2u32,
experience_reward: 3u32,
hurt_sound: None,
attackable: Some(true),
mob: true,
@ -3804,7 +3804,7 @@ impl EntityType {
(Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64),
(Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64),
],
experience_reward: 1u32,
experience_reward: 3u32,
hurt_sound: None,
attackable: Some(true),
mob: true,
@ -4288,7 +4288,7 @@ impl EntityType {
(Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64),
(Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64),
],
experience_reward: 2u32,
experience_reward: 1u32,
hurt_sound: None,
attackable: Some(true),
mob: true,
@ -4929,7 +4929,7 @@ impl EntityType {
(Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64),
(Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64),
],
experience_reward: 3u32,
experience_reward: 2u32,
hurt_sound: None,
attackable: Some(true),
mob: true,
@ -5488,7 +5488,7 @@ impl EntityType {
(Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64),
(Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64),
],
experience_reward: 1u32,
experience_reward: 2u32,
hurt_sound: None,
attackable: Some(true),
mob: true,
@ -5580,7 +5580,7 @@ impl EntityType {
(Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64),
(Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64),
],
experience_reward: 3u32,
experience_reward: 1u32,
hurt_sound: None,
attackable: Some(true),
mob: true,
@ -6094,7 +6094,7 @@ impl EntityType {
(Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64),
(Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64),
],
experience_reward: 2u32,
experience_reward: 3u32,
hurt_sound: None,
attackable: Some(true),
mob: true,
@ -6276,7 +6276,7 @@ impl EntityType {
(Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64),
(Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64),
],
experience_reward: 1u32,
experience_reward: 2u32,
hurt_sound: None,
attackable: Some(true),
mob: true,
@ -6857,7 +6857,7 @@ impl EntityType {
(Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64),
(Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64),
],
experience_reward: 3u32,
experience_reward: 2u32,
hurt_sound: None,
attackable: Some(true),
mob: true,
@ -7096,7 +7096,7 @@ impl EntityType {
(Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64),
(Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64),
],
experience_reward: 1u32,
experience_reward: 2u32,
hurt_sound: None,
attackable: Some(true),
mob: true,
@ -7198,7 +7198,7 @@ impl EntityType {
(Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64),
(Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64),
],
experience_reward: 1u32,
experience_reward: 2u32,
hurt_sound: None,
attackable: Some(true),
mob: true,
@ -7826,7 +7826,7 @@ impl EntityType {
(Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64),
(Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64),
],
experience_reward: 3u32,
experience_reward: 2u32,
hurt_sound: None,
attackable: Some(true),
mob: true,
@ -8453,7 +8453,7 @@ impl EntityType {
(Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64),
(Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64),
],
experience_reward: 3u32,
experience_reward: 1u32,
hurt_sound: None,
attackable: Some(true),
mob: true,
@ -8717,7 +8717,7 @@ impl EntityType {
(Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64),
(Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64),
],
experience_reward: 1u32,
experience_reward: 2u32,
hurt_sound: None,
attackable: Some(true),
mob: true,
@ -9096,7 +9096,7 @@ impl EntityType {
(Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64),
(Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64),
],
experience_reward: 1u32,
experience_reward: 2u32,
hurt_sound: None,
attackable: Some(true),
mob: true,
@ -9188,7 +9188,7 @@ impl EntityType {
(Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64),
(Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64),
],
experience_reward: 1u32,
experience_reward: 2u32,
hurt_sound: None,
attackable: Some(true),
mob: true,
@ -10528,7 +10528,7 @@ impl EntityType {
(Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64),
(Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64),
],
experience_reward: 3u32,
experience_reward: 2u32,
hurt_sound: None,
attackable: Some(true),
mob: true,
@ -10620,7 +10620,7 @@ impl EntityType {
(Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64),
(Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64),
],
experience_reward: 3u32,
experience_reward: 2u32,
hurt_sound: None,
attackable: Some(true),
mob: true,

View File

@ -773,7 +773,7 @@ pub const FLUID_LEVEL_SOURCE: i32 = 0;
pub const FLUID_LEVEL_FLOWING_MAX: i32 = 8;
pub const FLUID_MIN_HEIGHT: f32 = 0.0;
pub const FLUID_MAX_HEIGHT: f32 = 1.0;
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
#[derive(Clone, Copy, Eq, PartialEq)]
pub enum Falling {
True,
False,
@ -809,7 +809,7 @@ impl EnumVariants for Falling {
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
#[derive(Clone, Copy, Eq, PartialEq)]
pub enum Level {
L1,
L2,
@ -875,7 +875,7 @@ impl EnumVariants for Level {
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
#[derive(Clone, Copy, Eq, PartialEq)]
pub struct WaterLikeFluidProperties {
pub r#falling: Falling,
}
@ -916,7 +916,7 @@ impl FluidProperties for WaterLikeFluidProperties {
if !["water", "lava"].contains(&fluid.name) {
panic!(
"{} is not a valid fluid for {}",
fluid.name, "WaterLikeFluidProperties"
&fluid.name, "WaterLikeFluidProperties"
);
}
for (idx, state) in fluid.states.iter().enumerate() {
@ -930,7 +930,7 @@ impl FluidProperties for WaterLikeFluidProperties {
if !["water", "lava"].contains(&fluid.name) {
panic!(
"{} is not a valid fluid for {}",
fluid.name, "WaterLikeFluidProperties"
&fluid.name, "WaterLikeFluidProperties"
);
}
Self::from_index(fluid.default_state_index)
@ -942,7 +942,7 @@ impl FluidProperties for WaterLikeFluidProperties {
if !["water", "lava"].contains(&fluid.name) {
panic!(
"{} is not a valid fluid for {}",
fluid.name, "WaterLikeFluidProperties"
&fluid.name, "WaterLikeFluidProperties"
);
}
let mut fluid_props = Self::default(fluid);
@ -955,7 +955,7 @@ impl FluidProperties for WaterLikeFluidProperties {
fluid_props
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
#[derive(Clone, Copy, Eq, PartialEq)]
pub struct FlowingWaterLikeFluidProperties {
pub r#falling: Falling,
pub r#level: Level,
@ -1004,7 +1004,7 @@ impl FluidProperties for FlowingWaterLikeFluidProperties {
if !["flowing_water", "flowing_lava"].contains(&fluid.name) {
panic!(
"{} is not a valid fluid for {}",
fluid.name, "FlowingWaterLikeFluidProperties"
&fluid.name, "FlowingWaterLikeFluidProperties"
);
}
for (idx, state) in fluid.states.iter().enumerate() {
@ -1018,7 +1018,7 @@ impl FluidProperties for FlowingWaterLikeFluidProperties {
if !["flowing_water", "flowing_lava"].contains(&fluid.name) {
panic!(
"{} is not a valid fluid for {}",
fluid.name, "FlowingWaterLikeFluidProperties"
&fluid.name, "FlowingWaterLikeFluidProperties"
);
}
Self::from_index(fluid.default_state_index)
@ -1033,7 +1033,7 @@ impl FluidProperties for FlowingWaterLikeFluidProperties {
if !["flowing_water", "flowing_lava"].contains(&fluid.name) {
panic!(
"{} is not a valid fluid for {}",
fluid.name, "FlowingWaterLikeFluidProperties"
&fluid.name, "FlowingWaterLikeFluidProperties"
);
}
let mut fluid_props = Self::default(fluid);

View File

@ -883,7 +883,7 @@ fn default_water_source_conversion() -> bool {
GameRuleRegistry::default().water_source_conversion
}
mod as_string {
use serde::{Deserialize, Deserializer, Serializer};
use serde::{Deserialize, Deserializer, Serialize, Serializer};
use std::{fmt::Display, str::FromStr};
pub fn serialize<T: Display, S: Serializer>(
value: &T,

View File

@ -13,7 +13,8 @@ use crate::data_component_impl::*;
use crate::effect::StatusEffect;
use crate::sound::Sound;
use crate::tag::{RegistryKey, Taggable};
use crate::AttributeModifierSlot;
use crate::{AttributeModifierSlot, tag};
use pumpkin_nbt::{compound::NbtCompound, tag::NbtTag};
use pumpkin_util::text::TextComponent;
use std::borrow::Cow;
use std::hash::{Hash, Hasher};
@ -64238,6 +64239,7 @@ impl Item {
],
};
#[must_use]
#[allow(deprecated)]
pub fn translated_name(&self) -> TextComponent {
let name = self
.components
@ -64250,7 +64252,6 @@ impl Item {
}
})
.unwrap_or(self.registry_key);
#[allow(deprecated)]
TextComponent::translate(name, &[])
}
#[doc = "Try to parse an item from a resource location string."]
@ -67638,7 +67639,7 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const APPLE : Self = Self { id : 878 , registry_key : "minecraft:apple" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\ncomponents\n\x0Eminecraft:food\x03\tnutrition\x08\n\x11using_converts_to\0\x05\x13saturation_modifier\x9A\x99\x99>\x01\x0Ecan_always_eat\0\0\n\x17minecraft:use_animation\x08\x05value\x03eat\0\n\x0Eminecraft:tags\t\x04tags\x08\x02\x11minecraft:is_food\0\n\x17minecraft:use_modifiers\x08\x0Bstart_using\x06always\x01\x0Femit_vibrations\x01\x05\x0Cuse_duration\xCD\xCC\xCC?\x05\x11movement_modifier33\xB3>\0\n\x16minecraft:display_name\x08\x05value\x0Fitem.apple.name\0\n\x0Fitem_properties\x03\x11creative_category\x04\x08\x0Ecreative_group\0\x01\x04foil\0\x01\x0Eliquid_clipped\0\x01\x17can_destroy_in_creative\x01\x05\x0Cmining_speed\0\0\x80?\x03\x06damage\0\x01\x0Fstacked_by_data\0\x03\ruse_animation\x02\n\x0Eminecraft:icon\n\x08textures\x08\x07default\x05apple\0\0\x03\x0Cuse_duration@\x01\x12hidden_in_commands\x02\x01\x0Eallow_off_hand\0\x03\x11enchantable_value\0\x03\x0Bframe_count\x02\x01\rhand_equipped\0\x03\x0Emax_stack_size\x80\x01\x01\x0Eshould_despawn\x01\x08\x10enchantable_slot\x04none\0\t\titem_tags\x08\x02\x11minecraft:is_food\0\0" } ;
pub const APPLE : Self = Self { id : 878 , registry_key : "minecraft:apple" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\ncomponents\n\x16minecraft:display_name\x08\x05value\x0Fitem.apple.name\0\n\x0Eminecraft:food\x01\x0Ecan_always_eat\0\x03\tnutrition\x08\x05\x13saturation_modifier\x9A\x99\x99>\n\x11using_converts_to\0\0\n\x0Eminecraft:tags\t\x04tags\x08\x02\x11minecraft:is_food\0\n\x0Fitem_properties\x08\x0Ecreative_group\0\x01\x0Eallow_off_hand\0\x03\ruse_animation\x02\x03\x0Cuse_duration@\x03\x11creative_category\x04\x05\x0Cmining_speed\0\0\x80?\x01\rhand_equipped\0\x03\x0Bframe_count\x02\x01\x04foil\0\x01\x12hidden_in_commands\x02\x01\x0Eliquid_clipped\0\x03\x11enchantable_value\0\x01\x0Fstacked_by_data\0\x01\x17can_destroy_in_creative\x01\x08\x10enchantable_slot\x04none\x03\x06damage\0\n\x0Eminecraft:icon\n\x08textures\x08\x07default\x05apple\0\0\x01\x0Eshould_despawn\x01\x03\x0Emax_stack_size\x80\x01\0\n\x17minecraft:use_modifiers\x01\x0Femit_vibrations\x01\x05\x11movement_modifier33\xB3>\x05\x0Cuse_duration\xCD\xCC\xCC?\x08\x0Bstart_using\x06always\0\n\x17minecraft:use_animation\x08\x05value\x03eat\0\t\titem_tags\x08\x02\x11minecraft:is_food\0\0" } ;
pub const ARCHER_POTTERY_SHERD: Self = Self {
id: 671,
registry_key: "minecraft:archer_pottery_sherd",
@ -67723,7 +67724,7 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const BAKED_POTATO : Self = Self { id : 281 , registry_key : "minecraft:baked_potato" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\n\x0Eminecraft:food\x01\x0Ecan_always_eat\0\x08\x11using_converts_to\0\x03\rcooldown_time\0\x08\rcooldown_type\0\x03\ron_use_action\x01\x03\tnutrition\n\x05\x13saturation_modifier\x9A\x99\x19?\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\0\x03\x16minecraft:use_duration@\0\0" } ;
pub const BAKED_POTATO : Self = Self { id : 281 , registry_key : "minecraft:baked_potato" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\x03\x16minecraft:use_duration@\n\x0Eminecraft:food\x03\rcooldown_time\0\x01\x0Ecan_always_eat\0\x05\x13saturation_modifier\x9A\x99\x19?\x03\ron_use_action\x01\x03\tnutrition\n\x08\rcooldown_type\0\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x08\x11using_converts_to\0\0\0\0" } ;
pub const BALLOON: Self = Self {
id: 612,
registry_key: "minecraft:balloon",
@ -67976,7 +67977,7 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const BEEF : Self = Self { id : 273 , registry_key : "minecraft:beef" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\n\x0Eminecraft:food\x03\ron_use_action\x01\x05\x13saturation_modifier\x9A\x99\x99>\x03\tnutrition\x06\x08\x11using_converts_to\0\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x03\rcooldown_time\0\x01\x0Ecan_always_eat\0\x08\rcooldown_type\0\0\x03\x16minecraft:use_duration@\0\0" } ;
pub const BEEF : Self = Self { id : 273 , registry_key : "minecraft:beef" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\x03\x16minecraft:use_duration@\n\x0Eminecraft:food\x03\rcooldown_time\0\x05\x13saturation_modifier\x9A\x99\x99>\x03\ron_use_action\x01\x01\x0Ecan_always_eat\0\x08\x11using_converts_to\0\x03\tnutrition\x06\x08\rcooldown_type\0\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\0\0\0" } ;
pub const BEEHIVE: Self = Self {
id: -219,
registry_key: "minecraft:beehive",
@ -67984,9 +67985,9 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const BEETROOT : Self = Self { id : 285 , registry_key : "minecraft:beetroot" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\n\x0Eminecraft:food\x05\x13saturation_modifier\x9A\x99\x19?\x03\rcooldown_time\0\x08\rcooldown_type\0\x03\tnutrition\x02\x03\ron_use_action\x01\x01\x0Ecan_always_eat\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\0" } ;
pub const BEETROOT_SEEDS : Self = Self { id : 295 , registry_key : "minecraft:beetroot_seeds" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\n\x0Eminecraft:seed\x08\rplant_at_face\x02up\t\x08plant_at\x08\x02\x12minecraft:farmland\x08\x0Bcrop_result\x12minecraft:beetroot\x01\x1Aplant_at_any_solid_surface\0\0\0\0" } ;
pub const BEETROOT_SOUP : Self = Self { id : 286 , registry_key : "minecraft:beetroot_soup" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\n\x0Eminecraft:food\x08\x11using_converts_to\x04bowl\x05\x13saturation_modifier\x9A\x99\x19?\x03\tnutrition\x0C\x08\rcooldown_type\0\x03\ron_use_action\x01\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x03\rcooldown_time\0\x01\x0Ecan_always_eat\0\0\x03\x16minecraft:use_duration@\x03\x18minecraft:max_stack_size\x02\0\0" } ;
pub const BEETROOT : Self = Self { id : 285 , registry_key : "minecraft:beetroot" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\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\x08\x11using_converts_to\0\x01\x0Ecan_always_eat\0\x03\rcooldown_time\0\x03\ron_use_action\x01\x03\tnutrition\x02\0\0\0" } ;
pub const BEETROOT_SEEDS : Self = Self { id : 295 , registry_key : "minecraft:beetroot_seeds" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\n\x0Eminecraft:seed\x01\x1Aplant_at_any_solid_surface\0\x08\x0Bcrop_result\x12minecraft:beetroot\t\x08plant_at\x08\x02\x12minecraft:farmland\x08\rplant_at_face\x02up\0\0\0" } ;
pub const BEETROOT_SOUP : Self = Self { id : 286 , registry_key : "minecraft:beetroot_soup" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\x03\x16minecraft:use_duration@\n\x0Eminecraft:food\x03\tnutrition\x0C\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x08\rcooldown_type\0\x01\x0Ecan_always_eat\0\x03\rcooldown_time\0\x03\ron_use_action\x01\x05\x13saturation_modifier\x9A\x99\x19?\x08\x11using_converts_to\x04bowl\0\x03\x18minecraft:max_stack_size\x02\0\0" } ;
pub const BELL: Self = Self {
id: -206,
registry_key: "minecraft:bell",
@ -68148,7 +68149,7 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const BLACK_BUNDLE : Self = Self { id : 857 , registry_key : "minecraft:black_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\ncomponents\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!minecraft:storage_weight_modifier\x03\x16weight_in_storage_item\x08\0\n\x0Fitem_properties\x01\x04foil\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\x03\x06damage\0\x01\x0Fstacked_by_data\0\x01\x12hidden_in_commands\x02\x01\x0Eshould_despawn\x01\x03\x11creative_category\x06\x03\ruse_animation\0\x01\x17can_destroy_in_creative\x01\x08\x0Ecreative_group\0\x03\x0Bframe_count\x02\x01\rhand_equipped\0\x03\x11enchantable_value\0\x03\x0Emax_stack_size\x02\x01\x0Eallow_off_hand\0\x08\x10enchantable_slot\x04none\x05\x0Cmining_speed\0\0\x80?\x03\x0Cuse_duration\0\x01\x0Eliquid_clipped\0\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\x1Cminecraft:bundle_interaction\x03\x12num_viewable_slots\x18\0\0\0" } ;
pub const BLACK_BUNDLE : Self = Self { id : 857 , registry_key : "minecraft:black_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\ncomponents\n!minecraft:storage_weight_modifier\x03\x16weight_in_storage_item\x08\0\n\x0Fitem_properties\x03\x11creative_category\x06\x01\x0Eliquid_clipped\0\x08\x10enchantable_slot\x04none\x03\x0Emax_stack_size\x02\x01\rhand_equipped\0\x01\x04foil\0\x01\x0Fstacked_by_data\0\x01\x0Eallow_off_hand\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\x03\x0Bframe_count\x02\x05\x0Cmining_speed\0\0\x80?\x01\x0Eshould_despawn\x01\x03\x0Cuse_duration\0\x03\x11enchantable_value\0\x01\x12hidden_in_commands\x02\x03\ruse_animation\0\x01\x17can_destroy_in_creative\x01\x03\x06damage\0\x08\x0Ecreative_group\0\0\t\titem_tags\0\0\n\x18minecraft:max_stack_size\x01\x05value\x01\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\x1Cminecraft:bundle_interaction\x03\x12num_viewable_slots\x18\0\0\0" } ;
pub const BLACK_CANDLE: Self = Self {
id: -428,
registry_key: "minecraft:black_candle",
@ -68324,7 +68325,7 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const BLUE_BUNDLE : Self = Self { id : 858 , registry_key : "minecraft:blue_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\ncomponents\n!minecraft:storage_weight_modifier\x03\x16weight_in_storage_item\x08\0\t\titem_tags\0\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\x0Fitem_properties\x03\x0Bframe_count\x02\x03\x06damage\0\n\x0Eminecraft:icon\n\x08textures\x08\x11bundle_open_front\x16bundle_blue_open_front\x08\x07default\x0Bbundle_blue\x08\x10bundle_open_back\x15bundle_blue_open_back\0\0\x03\x11enchantable_value\0\x01\x17can_destroy_in_creative\x01\x08\x10enchantable_slot\x04none\x01\x0Eshould_despawn\x01\x03\x11creative_category\x06\x01\rhand_equipped\0\x05\x0Cmining_speed\0\0\x80?\x08\x0Ecreative_group\0\x01\x0Fstacked_by_data\0\x03\x0Emax_stack_size\x02\x01\x0Eallow_off_hand\0\x01\x04foil\0\x01\x12hidden_in_commands\x02\x03\x0Cuse_duration\0\x01\x0Eliquid_clipped\0\x03\ruse_animation\0\0\n\x1Cminecraft:bundle_interaction\x03\x12num_viewable_slots\x18\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\0\0" } ;
pub const BLUE_BUNDLE : Self = Self { id : 858 , registry_key : "minecraft:blue_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\ncomponents\n\x0Fitem_properties\x01\x04foil\0\x01\x0Eshould_despawn\x01\x01\x0Eallow_off_hand\0\x08\x10enchantable_slot\x04none\x03\x0Cuse_duration\0\x01\x12hidden_in_commands\x02\x03\x06damage\0\x03\x0Emax_stack_size\x02\x05\x0Cmining_speed\0\0\x80?\x03\x11creative_category\x06\x01\x0Fstacked_by_data\0\x01\x17can_destroy_in_creative\x01\x03\ruse_animation\0\x01\x0Eliquid_clipped\0\x03\x11enchantable_value\0\x03\x0Bframe_count\x02\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\x08\x0Ecreative_group\0\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\x1Cminecraft:bundle_interaction\x03\x12num_viewable_slots\x18\0\n!minecraft:storage_weight_modifier\x03\x16weight_in_storage_item\x08\0\0\0" } ;
pub const BLUE_CANDLE: Self = Self {
id: -424,
registry_key: "minecraft:blue_candle",
@ -68563,8 +68564,8 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const BREAD : Self = Self { id : 261 , registry_key : "minecraft:bread" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\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\x08\rcooldown_type\0\x03\tnutrition\n\x03\ron_use_action\x01\x05\x13saturation_modifier\x9A\x99\x19?\x08\x11using_converts_to\0\0\x03\x16minecraft:use_duration@\0\0" } ;
pub const BREEZE_ROD : Self = Self { id : 874 , registry_key : "minecraft:breeze_rod" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\ncomponents\n\x17minecraft:hand_equipped\x01\x05value\x01\0\n\x16minecraft:display_name\x08\x05value\x14item.breeze_rod.name\0\n\x0Fitem_properties\x01\x0Eliquid_clipped\0\x01\x0Eshould_despawn\x01\x01\rhand_equipped\x01\n\x0Eminecraft:icon\n\x08textures\x08\x07default\nbreeze_rod\0\0\x03\x11creative_category\x08\x03\ruse_animation\0\x03\x0Cuse_duration\0\x03\x0Emax_stack_size\x80\x01\x03\x06damage\0\x05\x0Cmining_speed\0\0\x80?\x03\x0Bframe_count\x02\x08\x10enchantable_slot\x04none\x01\x17can_destroy_in_creative\x01\x01\x04foil\0\x08\x0Ecreative_group\0\x01\x12hidden_in_commands\x02\x01\x0Fstacked_by_data\0\x03\x11enchantable_value\0\x01\x0Eallow_off_hand\0\0\t\titem_tags\0\0\0\0" } ;
pub const BREAD : Self = Self { id : 261 , registry_key : "minecraft:bread" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\x03\x16minecraft:use_duration@\n\x0Eminecraft:food\x08\x11using_converts_to\0\x08\rcooldown_type\0\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x05\x13saturation_modifier\x9A\x99\x19?\x03\tnutrition\n\x03\ron_use_action\x01\x03\rcooldown_time\0\x01\x0Ecan_always_eat\0\0\0\0" } ;
pub const BREEZE_ROD : Self = Self { id : 874 , registry_key : "minecraft:breeze_rod" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\ncomponents\n\x16minecraft:display_name\x08\x05value\x14item.breeze_rod.name\0\n\x17minecraft:hand_equipped\x01\x05value\x01\0\n\x0Fitem_properties\x08\x0Ecreative_group\0\x08\x10enchantable_slot\x04none\x01\x0Eshould_despawn\x01\x01\x17can_destroy_in_creative\x01\x01\x0Fstacked_by_data\0\x03\ruse_animation\0\x03\x0Emax_stack_size\x80\x01\x03\x06damage\0\x05\x0Cmining_speed\0\0\x80?\x01\x04foil\0\x03\x0Cuse_duration\0\x03\x0Bframe_count\x02\x03\x11creative_category\x08\n\x0Eminecraft:icon\n\x08textures\x08\x07default\nbreeze_rod\0\0\x03\x11enchantable_value\0\x01\x12hidden_in_commands\x02\x01\rhand_equipped\x01\x01\x0Eallow_off_hand\0\x01\x0Eliquid_clipped\0\0\t\titem_tags\0\0\0\0" } ;
pub const BREEZE_SPAWN_EGG: Self = Self {
id: 506,
registry_key: "minecraft:breeze_spawn_egg",
@ -68628,7 +68629,7 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const BROWN_BUNDLE : Self = Self { id : 859 , registry_key : "minecraft:brown_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\ncomponents\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\t\titem_tags\0\0\n\x0Fitem_properties\x01\x0Eallow_off_hand\0\x01\x04foil\0\x01\x0Eshould_despawn\x01\n\x0Eminecraft:icon\n\x08textures\x08\x07default\x0Cbundle_brown\x08\x10bundle_open_back\x16bundle_brown_open_back\x08\x11bundle_open_front\x17bundle_brown_open_front\0\0\x03\x11creative_category\x06\x03\x0Emax_stack_size\x02\x05\x0Cmining_speed\0\0\x80?\x01\x0Fstacked_by_data\0\x08\x0Ecreative_group\0\x03\ruse_animation\0\x01\x17can_destroy_in_creative\x01\x03\x0Cuse_duration\0\x01\rhand_equipped\0\x03\x11enchantable_value\0\x01\x12hidden_in_commands\x02\x08\x10enchantable_slot\x04none\x03\x06damage\0\x03\x0Bframe_count\x02\x01\x0Eliquid_clipped\0\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\0\0" } ;
pub const BROWN_BUNDLE : Self = Self { id : 859 , registry_key : "minecraft:brown_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\ncomponents\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\x08\x0Ecreative_group\0\x08\x10enchantable_slot\x04none\x01\x17can_destroy_in_creative\x01\x01\x04foil\0\x03\x0Cuse_duration\0\n\x0Eminecraft:icon\n\x08textures\x08\x10bundle_open_back\x16bundle_brown_open_back\x08\x07default\x0Cbundle_brown\x08\x11bundle_open_front\x17bundle_brown_open_front\0\0\x01\rhand_equipped\0\x03\x0Emax_stack_size\x02\x03\x11creative_category\x06\x01\x0Eliquid_clipped\0\x01\x0Eshould_despawn\x01\x03\x06damage\0\x05\x0Cmining_speed\0\0\x80?\x01\x0Eallow_off_hand\0\x03\x11enchantable_value\0\x03\x0Bframe_count\x02\x01\x12hidden_in_commands\x02\x01\x0Fstacked_by_data\0\x03\ruse_animation\0\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\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\0\0" } ;
pub const BROWN_CANDLE: Self = Self {
id: -425,
registry_key: "minecraft:brown_candle",
@ -68804,7 +68805,7 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const BUNDLE : Self = Self { id : 860 , registry_key : "minecraft:bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\ncomponents\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\x03\x11enchantable_value\0\x01\x0Eallow_off_hand\0\x01\x0Fstacked_by_data\0\x01\x17can_destroy_in_creative\x01\x03\x0Cuse_duration\0\x03\x0Bframe_count\x02\x01\rhand_equipped\0\x01\x04foil\0\x03\x06damage\0\x01\x0Eshould_despawn\x01\x03\x0Emax_stack_size\x02\x08\x0Ecreative_group\0\x01\x0Eliquid_clipped\0\x05\x0Cmining_speed\0\0\x80?\x03\x11creative_category\x06\x08\x10enchantable_slot\x04none\n\x0Eminecraft:icon\n\x08textures\x08\x10bundle_open_back\x10bundle_open_back\x08\x07default\x06bundle\x08\x11bundle_open_front\x11bundle_open_front\0\0\x03\ruse_animation\0\x01\x12hidden_in_commands\x02\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\t\rallowed_items\0\0\x01\x1Aallow_nested_storage_items\x01\x03\tmax_slots\x80\x01\0\n\x1Eminecraft:storage_weight_limit\x03\x10max_weight_limit\x80\x01\0\0\0" } ;
pub const BUNDLE : Self = Self { id : 860 , registry_key : "minecraft:bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\ncomponents\n\x1Eminecraft:storage_weight_limit\x03\x10max_weight_limit\x80\x01\0\n\x0Fitem_properties\x03\x0Cuse_duration\0\x01\x0Eallow_off_hand\0\x01\x17can_destroy_in_creative\x01\x01\x0Fstacked_by_data\0\x01\x04foil\0\x03\x06damage\0\x08\x10enchantable_slot\x04none\x01\rhand_equipped\0\x05\x0Cmining_speed\0\0\x80?\x03\x11creative_category\x06\x01\x0Eliquid_clipped\0\n\x0Eminecraft:icon\n\x08textures\x08\x07default\x06bundle\x08\x11bundle_open_front\x11bundle_open_front\x08\x10bundle_open_back\x10bundle_open_back\0\0\x01\x12hidden_in_commands\x02\x01\x0Eshould_despawn\x01\x03\x0Bframe_count\x02\x03\x11enchantable_value\0\x03\ruse_animation\0\x08\x0Ecreative_group\0\x03\x0Emax_stack_size\x02\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\t\titem_tags\0\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\n\x1Cminecraft:bundle_interaction\x03\x12num_viewable_slots\x18\0\0\0" } ;
pub const BURN_POTTERY_SHERD: Self = Self {
id: 675,
registry_key: "minecraft:burn_pottery_sherd",
@ -68868,7 +68869,7 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const CAMERA : Self = Self { id : 607 , registry_key : "minecraft:camera" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\n\x10minecraft:camera\x05\x13black_bars_duration\xCD\xCCL>\x05\x13slide_away_duration\xCD\xCCL>\x05\x17black_bars_screen_ratio\n\xD7\xA3=\x05\x14shutter_screen_ratio\0\0\0?\x05\x10shutter_duration\xCD\xCCL>\x05\x10picture_duration\0\0\x80?\0\x03\x16minecraft:use_duration\xC0\x9A\x0C\x08\x0Fminecraft:block\x10minecraft:camera\0\0" } ;
pub const CAMERA : Self = Self { id : 607 , registry_key : "minecraft:camera" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\x03\x16minecraft:use_duration\xC0\x9A\x0C\x08\x0Fminecraft:block\x10minecraft:camera\n\x10minecraft:camera\x05\x13black_bars_duration\xCD\xCCL>\x05\x10shutter_duration\xCD\xCCL>\x05\x17black_bars_screen_ratio\n\xD7\xA3=\x05\x13slide_away_duration\xCD\xCCL>\x05\x14shutter_screen_ratio\0\0\0?\x05\x10picture_duration\0\0\x80?\0\0\0" } ;
pub const CAMPFIRE: Self = Self {
id: 601,
registry_key: "minecraft:campfire",
@ -68897,7 +68898,7 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const CARROT : Self = Self { id : 279 , registry_key : "minecraft:carrot" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\n\x0Eminecraft:seed\x01\x1Aplant_at_any_solid_surface\0\x08\x0Bcrop_result\x11minecraft:carrots\x08\rplant_at_face\x02up\t\x08plant_at\x08\x02\x12minecraft:farmland\0\x03\x16minecraft:use_duration@\n\x0Eminecraft:food\x08\rcooldown_type\0\x08\x11using_converts_to\0\x03\tnutrition\x06\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\x9A\x99\x19?\x01\x0Ecan_always_eat\0\0\0\0" } ;
pub const CARROT : Self = Self { id : 279 , registry_key : "minecraft:carrot" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\n\x0Eminecraft:food\x03\rcooldown_time\0\x05\x13saturation_modifier\x9A\x99\x19?\x08\rcooldown_type\0\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x03\tnutrition\x06\x01\x0Ecan_always_eat\0\x08\x11using_converts_to\0\x03\ron_use_action\x01\0\n\x0Eminecraft:seed\x08\rplant_at_face\x02up\x08\x0Bcrop_result\x11minecraft:carrots\x01\x1Aplant_at_any_solid_surface\0\t\x08plant_at\x08\x02\x12minecraft:farmland\0\x03\x16minecraft:use_duration@\0\0" } ;
pub const CARROT_ON_A_STICK: Self = Self {
id: 527,
registry_key: "minecraft:carrot_on_a_stick",
@ -69199,7 +69200,7 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const CHICKEN : Self = Self { id : 275 , registry_key : "minecraft:chicken" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\n\x0Eminecraft:food\x03\tnutrition\x04\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x05\x13saturation_modifier\x9A\x99\x99>\x08\x11using_converts_to\0\x03\ron_use_action\x01\t\x07effects\n\x02\x03\x02id\"\x08\x04name\x06hunger\x03\tamplifier\0\x05\x06chance\x9A\x99\x99>\x08\rdescriptionId\rpotion.hunger\x03\x08duration<\0\x08\rcooldown_type\0\x01\x0Ecan_always_eat\0\x03\rcooldown_time\0\0\x03\x16minecraft:use_duration@\0\0" } ;
pub const CHICKEN : Self = Self { id : 275 , registry_key : "minecraft:chicken" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\n\x0Eminecraft:food\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x03\ron_use_action\x01\x03\tnutrition\x04\x08\rcooldown_type\0\x05\x13saturation_modifier\x9A\x99\x99>\x01\x0Ecan_always_eat\0\x03\rcooldown_time\0\x08\x11using_converts_to\0\t\x07effects\n\x02\x03\tamplifier\0\x08\x04name\x06hunger\x05\x06chance\x9A\x99\x99>\x03\x08duration<\x08\rdescriptionId\rpotion.hunger\x03\x02id\"\0\0\x03\x16minecraft:use_duration@\0\0" } ;
pub const CHICKEN_SPAWN_EGG: Self = Self {
id: 439,
registry_key: "minecraft:chicken_spawn_egg",
@ -69319,7 +69320,7 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const CHORUS_FRUIT : Self = Self { id : 568 , registry_key : "minecraft:chorus_fruit" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\n\x0Eminecraft:food\x08\rcooldown_type\x0Bchorusfruit\x03\ron_use_action\0\x03\rcooldown_time(\x01\x0Ecan_always_eat\x01\x08\x11using_converts_to\0\x05\x13saturation_modifier\x9A\x99\x99>\x03\tnutrition\x08\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\0\x03\x16minecraft:use_duration@\0\0" } ;
pub const CHORUS_FRUIT : Self = Self { id : 568 , registry_key : "minecraft:chorus_fruit" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\n\x0Eminecraft:food\x05\x13saturation_modifier\x9A\x99\x99>\x08\rcooldown_type\x0Bchorusfruit\x01\x0Ecan_always_eat\x01\x03\tnutrition\x08\x03\ron_use_action\0\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x03\rcooldown_time(\x08\x11using_converts_to\0\0\x03\x16minecraft:use_duration@\0\0" } ;
pub const CHORUS_PLANT: Self = Self {
id: 240,
registry_key: "minecraft:chorus_plant",
@ -69544,7 +69545,7 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const COD : Self = Self { id : 264 , registry_key : "minecraft:cod" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\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\x05\x13saturation_modifier\xCD\xCC\xCC=\x03\rcooldown_time\0\x03\ron_use_action\x01\x08\x11using_converts_to\0\x08\rcooldown_type\0\x03\tnutrition\x04\0\x01\x19minecraft:stacked_by_data\x01\0\0" } ;
pub const COD : Self = Self { id : 264 , registry_key : "minecraft:cod" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\x01\x19minecraft:stacked_by_data\x01\x03\x16minecraft:use_duration@\n\x0Eminecraft:food\x03\rcooldown_time\0\x01\x0Ecan_always_eat\0\x03\ron_use_action\x01\x08\rcooldown_type\0\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x03\tnutrition\x04\x05\x13saturation_modifier\xCD\xCC\xCC=\x08\x11using_converts_to\0\0\0\0" } ;
pub const COD_BUCKET: Self = Self {
id: 367,
registry_key: "minecraft:cod_bucket",
@ -69671,14 +69672,14 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const COOKED_BEEF : Self = Self { id : 274 , registry_key : "minecraft:cooked_beef" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\x03\x16minecraft:use_duration@\n\x0Eminecraft:food\x03\rcooldown_time\0\x01\x0Ecan_always_eat\0\x03\tnutrition\x10\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x08\rcooldown_type\0\x05\x13saturation_modifier\xCD\xCCL?\x08\x11using_converts_to\0\x03\ron_use_action\x01\0\0\0" } ;
pub const COOKED_CHICKEN : Self = Self { id : 276 , registry_key : "minecraft:cooked_chicken" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\n\x0Eminecraft:food\x03\ron_use_action\x01\x03\rcooldown_time\0\x03\tnutrition\x0C\x08\x11using_converts_to\0\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x08\rcooldown_type\0\x01\x0Ecan_always_eat\0\x05\x13saturation_modifier\x9A\x99\x19?\0\x03\x16minecraft:use_duration@\0\0" } ;
pub const COOKED_COD : Self = Self { id : 268 , registry_key : "minecraft:cooked_cod" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\x03\x16minecraft:use_duration@\n\x0Eminecraft:food\x05\x13saturation_modifier\x9A\x99\x19?\x08\x11using_converts_to\0\x08\rcooldown_type\0\x01\x0Ecan_always_eat\0\x03\rcooldown_time\0\x03\tnutrition\n\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x03\ron_use_action\x01\0\x01\x19minecraft:stacked_by_data\x01\0\0" } ;
pub const COOKED_MUTTON : Self = Self { id : 561 , registry_key : "minecraft:cooked_mutton" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\n\x0Eminecraft:food\x08\x11using_converts_to\0\x05\x13saturation_modifier\xCD\xCCL?\x01\x0Ecan_always_eat\0\x03\rcooldown_time\0\x03\ron_use_action\x01\x08\rcooldown_type\0\x03\tnutrition\x0C\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\0\x03\x16minecraft:use_duration@\0\0" } ;
pub const COOKED_PORKCHOP : Self = Self { id : 263 , registry_key : "minecraft:cooked_porkchop" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\n\x0Eminecraft:food\x01\x0Ecan_always_eat\0\x03\rcooldown_time\0\x08\rcooldown_type\0\x03\tnutrition\x10\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\x05\x13saturation_modifier\xCD\xCCL?\0\x03\x16minecraft:use_duration@\0\0" } ;
pub const COOKED_RABBIT : Self = Self { id : 289 , registry_key : "minecraft:cooked_rabbit" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\n\x0Eminecraft:food\x03\tnutrition\n\x03\ron_use_action\x01\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\rcooldown_type\0\x05\x13saturation_modifier\x9A\x99\x19?\x08\x11using_converts_to\0\0\x03\x16minecraft:use_duration@\0\0" } ;
pub const COOKED_SALMON : Self = Self { id : 269 , registry_key : "minecraft:cooked_salmon" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\x03\x16minecraft:use_duration@\x01\x19minecraft:stacked_by_data\x01\n\x0Eminecraft:food\x01\x0Ecan_always_eat\0\x08\x11using_converts_to\0\x03\ron_use_action\x01\x08\rcooldown_type\0\x03\tnutrition\x0C\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x05\x13saturation_modifier\xCD\xCCL?\x03\rcooldown_time\0\0\0\0" } ;
pub const COOKIE : Self = Self { id : 271 , registry_key : "minecraft:cookie" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\n\x0Eminecraft:food\x08\rcooldown_type\0\x03\tnutrition\x04\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\x01\x0Ecan_always_eat\0\x03\rcooldown_time\0\x05\x13saturation_modifier\xCD\xCC\xCC=\0\x03\x16minecraft:use_duration@\0\0" } ;
pub const COOKED_BEEF : Self = Self { id : 274 , registry_key : "minecraft:cooked_beef" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\n\x0Eminecraft:food\x03\rcooldown_time\0\x01\x0Ecan_always_eat\0\x05\x13saturation_modifier\xCD\xCCL?\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x03\tnutrition\x10\x08\rcooldown_type\0\x08\x11using_converts_to\0\x03\ron_use_action\x01\0\x03\x16minecraft:use_duration@\0\0" } ;
pub const COOKED_CHICKEN : Self = Self { id : 276 , registry_key : "minecraft:cooked_chicken" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\n\x0Eminecraft:food\x03\ron_use_action\x01\x03\rcooldown_time\0\x01\x0Ecan_always_eat\0\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\tnutrition\x0C\x08\x11using_converts_to\0\0\x03\x16minecraft:use_duration@\0\0" } ;
pub const COOKED_COD : Self = Self { id : 268 , registry_key : "minecraft:cooked_cod" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\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\rcooldown_time\0\x08\x11using_converts_to\0\x05\x13saturation_modifier\x9A\x99\x19?\x03\tnutrition\n\x03\ron_use_action\x01\x08\rcooldown_type\0\0\x01\x19minecraft:stacked_by_data\x01\0\0" } ;
pub const COOKED_MUTTON : Self = Self { id : 561 , registry_key : "minecraft:cooked_mutton" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\n\x0Eminecraft:food\x03\ron_use_action\x01\x08\x11using_converts_to\0\x05\x13saturation_modifier\xCD\xCCL?\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\rcooldown_type\0\x03\tnutrition\x0C\0\x03\x16minecraft:use_duration@\0\0" } ;
pub const COOKED_PORKCHOP : Self = Self { id : 263 , registry_key : "minecraft:cooked_porkchop" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\n\x0Eminecraft:food\x03\rcooldown_time\0\x01\x0Ecan_always_eat\0\x08\rcooldown_type\0\x03\ron_use_action\x01\x03\tnutrition\x10\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x08\x11using_converts_to\0\x05\x13saturation_modifier\xCD\xCCL?\0\x03\x16minecraft:use_duration@\0\0" } ;
pub const COOKED_RABBIT : Self = Self { id : 289 , registry_key : "minecraft:cooked_rabbit" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\n\x0Eminecraft:food\x03\rcooldown_time\0\x08\rcooldown_type\0\x08\x11using_converts_to\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\x03\ron_use_action\x01\x03\tnutrition\n\0\x03\x16minecraft:use_duration@\0\0" } ;
pub const COOKED_SALMON : Self = Self { id : 269 , registry_key : "minecraft:cooked_salmon" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\n\x0Eminecraft:food\x03\tnutrition\x0C\x01\x0Ecan_always_eat\0\x03\rcooldown_time\0\x05\x13saturation_modifier\xCD\xCCL?\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\0\x01\x19minecraft:stacked_by_data\x01\x03\x16minecraft:use_duration@\0\0" } ;
pub const COOKIE : Self = Self { id : 271 , registry_key : "minecraft:cookie" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\x03\x16minecraft:use_duration@\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\rcooldown_time\0\x08\x11using_converts_to\0\x03\tnutrition\x04\0\0\0" } ;
pub const COPPER_AXE: Self = Self {
id: 750,
registry_key: "minecraft:copper_axe",
@ -69840,7 +69841,7 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const COPPER_SPEAR : Self = Self { id : 850 , registry_key : "minecraft:copper_spear" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\ncomponents\n\x14minecraft:repairable\t\x0Crepair_items\n\x04\x08\rrepair_amount)context.other->query.remaining_durability\t\x05items\n\x02\x08\x04name\x16minecraft:copper_spear\0\0\t\x05items\n\x02\x08\x04name\x16minecraft:copper_ingot\0\x08\rrepair_amount\x1Bquery.max_durability * 0.25\0\0\n\x14minecraft:durability\n\rdamage_chance\x03\x03max\xC8\x01\x03\x03min\0\0\x03\x0Emax_durability\xFC\x02\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\n\x18minecraft:swing_duration\x05\x05value\x9A\x99Y?\0\n\x12minecraft:cooldown\x05\x08duration\x9A\x99Y?\x08\x08category\x05spear\x08\x04type\x06attack\0\n\x17minecraft:use_modifiers\x01\x0Femit_vibrations\0\x05\x0Cuse_duration\0\xA0\x8CG\x05\x11movement_modifier\0\0\x80?\x08\x0Bstart_sound\x15item.copper_spear.use\x08\x0Bstart_using\x06always\0\n\x15minecraft:enchantable\x08\x04slot\x0Bmelee_spear\x01\x05value\r\0\n\x0Fitem_properties\x03\x11enchantable_value\x1A\x03\ruse_animation\0\x01\rhand_equipped\x01\x08\x0Ecreative_group\0\x01\x04foil\0\x08\x10enchantable_slot\x0Bmelee_spear\x01\x0Eliquid_clipped\0\n\x0Eminecraft:icon\n\x08textures\x08\x07default\x0Ccopper_spear\0\0\x01\x0Fstacked_by_data\0\x03\x0Cuse_duration\x80\xE4\xAF\x01\x03\x06damage\x04\x01\x12hidden_in_commands\x02\x03\x0Bframe_count\x02\x05\x0Cmining_speed\0\0\x80?\x03\x11creative_category\x06\x01\x0Eshould_despawn\x01\x01\x0Eallow_off_hand\0\x01\x17can_destroy_in_creative\x01\x03\x0Emax_stack_size\x02\0\n\x16minecraft:display_name\x08\x05value\x16item.copper_spear.name\0\n\x0Eminecraft:tags\t\x04tags\x08\x04\x15minecraft:copper_tier\x12minecraft:is_spear\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\x03max\0\0\xF0@\x05\x03min\0\0\0@\0\0\n\x18minecraft:kinetic_weapon\n\x18minecraft:kinetic_weapon\x05\x0Fdamage_modifier\0\0\0\0\n\x05reach\x05\x03min\0\0\0@\x05\x03max\0\0\x90@\0\x05\rhitbox_margin\0\0\x80>\n\x14knockback_conditions\x05\tmin_speed33\xA3@\x02\x0Cmax_duration\xA5\0\x05\x12min_relative_speed\0\0\0\0\0\n\x0Ecreative_reach\x05\x03max\0\0\xF0@\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\x02\x05delay\r\0\n\x11damage_conditions\x02\x0Cmax_duration\xFA\0\x05\tmin_speed\0\0\0\0\x05\x12min_relative_speed33\x93@\0\x05\x11damage_multiplier\x85\xEBQ?\0\0\n\x10minecraft:damage\x02\x05value\x02\0\0\n\x16minecraft:swing_sounds\x08\nattack_hit\x1Citem.copper_spear.attack_hit\x08\x0Battack_miss\x1Ditem.copper_spear.attack_miss\0\n\x17minecraft:hand_equipped\x01\x05value\x01\0\t\titem_tags\x08\x04\x15minecraft:copper_tier\x12minecraft:is_spear\0\0" } ;
pub const COPPER_SPEAR : Self = Self { id : 850 , registry_key : "minecraft:copper_spear" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\ncomponents\n\x18minecraft:kinetic_weapon\n\x18minecraft:kinetic_weapon\n\x11damage_conditions\x02\x0Cmax_duration\xFA\0\x05\x12min_relative_speed33\x93@\x05\tmin_speed\0\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\x05\x11damage_multiplier\x85\xEBQ?\n\x0Ecreative_reach\x05\x03max\0\0\xF0@\x05\x03min\0\0\0@\0\x02\x05delay\r\0\n\x14knockback_conditions\x02\x0Cmax_duration\xA5\0\x05\tmin_speed33\xA3@\x05\x12min_relative_speed\0\0\0\0\0\n\x05reach\x05\x03min\0\0\0@\x05\x03max\0\0\x90@\0\x05\rhitbox_margin\0\0\x80>\x05\x0Fdamage_modifier\0\0\0\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\x03max\0\0\x90@\x05\x03min\0\0\0@\0\0\n\x10minecraft:damage\x02\x05value\x02\0\0\n\x14minecraft:repairable\t\x0Crepair_items\n\x04\t\x05items\n\x02\x08\x04name\x16minecraft:copper_spear\0\x08\rrepair_amount)context.other->query.remaining_durability\0\t\x05items\n\x02\x08\x04name\x16minecraft:copper_ingot\0\x08\rrepair_amount\x1Bquery.max_durability * 0.25\0\0\n\x0Fitem_properties\x03\x0Emax_stack_size\x02\x05\x0Cmining_speed\0\0\x80?\x03\x11creative_category\x06\x01\x12hidden_in_commands\x02\x08\x0Ecreative_group\0\x03\x0Bframe_count\x02\x03\ruse_animation\0\x01\x04foil\0\x01\x0Eallow_off_hand\0\x01\x0Fstacked_by_data\0\x01\x0Eshould_despawn\x01\x03\x06damage\x04\x08\x10enchantable_slot\x0Bmelee_spear\x03\x0Cuse_duration\x80\xE4\xAF\x01\x01\x17can_destroy_in_creative\x01\x03\x11enchantable_value\x1A\x01\rhand_equipped\x01\x01\x0Eliquid_clipped\0\n\x0Eminecraft:icon\n\x08textures\x08\x07default\x0Ccopper_spear\0\0\0\n\x0Eminecraft:tags\t\x04tags\x08\x04\x15minecraft:copper_tier\x12minecraft:is_spear\0\n\x12minecraft:cooldown\x05\x08duration\x9A\x99Y?\x08\x04type\x06attack\x08\x08category\x05spear\0\t\titem_tags\x08\x04\x15minecraft:copper_tier\x12minecraft:is_spear\n\x18minecraft:swing_duration\x05\x05value\x9A\x99Y?\0\n\x16minecraft:display_name\x08\x05value\x16item.copper_spear.name\0\n\x17minecraft:hand_equipped\x01\x05value\x01\0\n\x16minecraft:swing_sounds\x08\x0Battack_miss\x1Ditem.copper_spear.attack_miss\x08\nattack_hit\x1Citem.copper_spear.attack_hit\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\x15minecraft:enchantable\x08\x04slot\x0Bmelee_spear\x01\x05value\r\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\n\x14minecraft:durability\n\rdamage_chance\x03\x03max\xC8\x01\x03\x03min\0\0\x03\x0Emax_durability\xFC\x02\0\0\0" } ;
pub const COPPER_SWORD: Self = Self {
id: 747,
registry_key: "minecraft:copper_sword",
@ -70205,7 +70206,7 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const CYAN_BUNDLE : Self = Self { id : 861 , registry_key : "minecraft:cyan_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\ncomponents\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\x1Cminecraft:bundle_interaction\x03\x12num_viewable_slots\x18\0\n\x0Fitem_properties\x01\x0Eshould_despawn\x01\x01\x17can_destroy_in_creative\x01\x08\x0Ecreative_group\0\x03\x0Bframe_count\x02\x01\x12hidden_in_commands\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\x01\x04foil\0\x01\rhand_equipped\0\x01\x0Fstacked_by_data\0\x03\ruse_animation\0\x03\x0Cuse_duration\0\x01\x0Eallow_off_hand\0\x01\x0Eliquid_clipped\0\x08\x10enchantable_slot\x04none\x03\x11creative_category\x06\x03\x06damage\0\x05\x0Cmining_speed\0\0\x80?\x03\x0Emax_stack_size\x02\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\x01\x1Aallow_nested_storage_items\x01\t\rallowed_items\0\0\0\0\0" } ;
pub const CYAN_BUNDLE : Self = Self { id : 861 , registry_key : "minecraft:cyan_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\ncomponents\n\x1Eminecraft:storage_weight_limit\x03\x10max_weight_limit\x80\x01\0\n\x0Fitem_properties\x03\x11enchantable_value\0\x03\x06damage\0\x01\x04foil\0\x03\x0Bframe_count\x02\x01\x0Fstacked_by_data\0\x01\x12hidden_in_commands\x02\x03\x0Emax_stack_size\x02\x03\x0Cuse_duration\0\x01\x0Eallow_off_hand\0\x01\x0Eshould_despawn\x01\x01\x0Eliquid_clipped\0\x03\ruse_animation\0\x08\x0Ecreative_group\0\x01\x17can_destroy_in_creative\x01\x03\x11creative_category\x06\x01\rhand_equipped\0\n\x0Eminecraft:icon\n\x08textures\x08\x10bundle_open_back\x15bundle_cyan_open_back\x08\x07default\x0Bbundle_cyan\x08\x11bundle_open_front\x16bundle_cyan_open_front\0\0\x05\x0Cmining_speed\0\0\x80?\x08\x10enchantable_slot\x04none\0\t\titem_tags\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!minecraft:storage_weight_modifier\x03\x16weight_in_storage_item\x08\0\n\x1Cminecraft:bundle_interaction\x03\x12num_viewable_slots\x18\0\0\0" } ;
pub const CYAN_CANDLE: Self = Self {
id: -422,
registry_key: "minecraft:cyan_candle",
@ -70927,7 +70928,7 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const DIAMOND_SPEAR : Self = Self { id : 851 , registry_key : "minecraft:diamond_spear" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\ncomponents\n\x16minecraft:swing_sounds\x08\x0Battack_miss\x1Eitem.diamond_spear.attack_miss\x08\nattack_hit\x1Ditem.diamond_spear.attack_hit\0\t\titem_tags\x08\x06\x16minecraft:diamond_tier\x1Dminecraft:transformable_items\x12minecraft:is_spear\n\x17minecraft:use_modifiers\x08\x0Bstart_sound\x16item.diamond_spear.use\x01\x0Femit_vibrations\0\x05\x11movement_modifier\0\0\x80?\x05\x0Cuse_duration\0\xA0\x8CG\x08\x0Bstart_using\x06always\0\n\x0Fitem_properties\x01\x17can_destroy_in_creative\x01\x08\x0Ecreative_group\0\x01\x0Fstacked_by_data\0\x03\x0Emax_stack_size\x02\x01\x0Eallow_off_hand\0\x01\x12hidden_in_commands\x02\x01\x04foil\0\x03\x0Bframe_count\x02\x08\x10enchantable_slot\x0Bmelee_spear\x03\x0Cuse_duration\x80\xE4\xAF\x01\x01\x0Eshould_despawn\x01\x01\x0Eliquid_clipped\0\x03\x11creative_category\x06\x03\ruse_animation\0\x01\rhand_equipped\x01\x05\x0Cmining_speed\0\0\x80?\x03\x11enchantable_value\x14\x03\x06damage\x08\n\x0Eminecraft:icon\n\x08textures\x08\x07default\rdiamond_spear\0\0\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\x03max\0\0\xF0@\x05\x03min\0\0\0@\0\0\n\x15minecraft:enchantable\x08\x04slot\x0Bmelee_spear\x01\x05value\n\0\n\x17minecraft:hand_equipped\x01\x05value\x01\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\n\x18minecraft:swing_duration\x05\x05valueff\x86?\0\n\x14minecraft:repairable\t\x0Crepair_items\n\x04\x08\rrepair_amount)context.other->query.remaining_durability\t\x05items\n\x02\x08\x04name\x17minecraft:diamond_spear\0\0\x08\rrepair_amount\x1Bquery.max_durability * 0.25\t\x05items\n\x02\x08\x04name\x11minecraft:diamond\0\0\0\n\x16minecraft:display_name\x08\x05value\x17item.diamond_spear.name\0\n\x14minecraft:durability\x03\x0Emax_durability\xB0\x18\n\rdamage_chance\x03\x03min\0\x03\x03max\xC8\x01\0\0\n\x12minecraft:cooldown\x05\x08durationff\x86?\x08\x08category\x05spear\x08\x04type\x06attack\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\x02\x05delay\n\0\n\x13dismount_conditions\x05\tmin_speed\0\0 A\x05\x12min_relative_speed\0\0\0\0\x02\x0Cmax_duration<\0\0\x05\x11damage_multiplier\x9A\x99\x89?\x05\rhitbox_margin\0\0\x80>\n\x05reach\x05\x03max\0\0\x90@\x05\x03min\0\0\0@\0\n\x11damage_conditions\x05\tmin_speed\0\0\0\0\x05\x12min_relative_speed33\x93@\x02\x0Cmax_duration\xC8\0\0\x05\x0Fdamage_modifier\0\0\0\0\n\x0Ecreative_reach\x05\x03max\0\0\xF0@\x05\x03min\0\0\0@\0\0\0\n\x0Eminecraft:tags\t\x04tags\x08\x06\x16minecraft:diamond_tier\x1Dminecraft:transformable_items\x12minecraft:is_spear\0\n\x10minecraft:damage\x02\x05value\x04\0\0\0\0" } ;
pub const DIAMOND_SPEAR : Self = Self { id : 851 , registry_key : "minecraft:diamond_spear" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\ncomponents\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\x03max\0\0\xF0@\x05\x03min\0\0\0@\0\0\n\x18minecraft:kinetic_weapon\n\x18minecraft:kinetic_weapon\x02\x05delay\n\0\n\x13dismount_conditions\x05\tmin_speed\0\0 A\x02\x0Cmax_duration<\0\x05\x12min_relative_speed\0\0\0\0\0\x05\rhitbox_margin\0\0\x80>\n\x0Ecreative_reach\x05\x03min\0\0\0@\x05\x03max\0\0\xF0@\0\x05\x0Fdamage_modifier\0\0\0\0\n\x14knockback_conditions\x05\x12min_relative_speed\0\0\0\0\x05\tmin_speed33\xA3@\x02\x0Cmax_duration\x82\0\0\n\x11damage_conditions\x05\x12min_relative_speed33\x93@\x05\tmin_speed\0\0\0\0\x02\x0Cmax_duration\xC8\0\0\n\x05reach\x05\x03min\0\0\0@\x05\x03max\0\0\x90@\0\x05\x11damage_multiplier\x9A\x99\x89?\0\0\n\x17minecraft:use_modifiers\x01\x0Femit_vibrations\0\x08\x0Bstart_sound\x16item.diamond_spear.use\x08\x0Bstart_using\x06always\x05\x11movement_modifier\0\0\x80?\x05\x0Cuse_duration\0\xA0\x8CG\0\n\x17minecraft:hand_equipped\x01\x05value\x01\0\n\x0Eminecraft:tags\t\x04tags\x08\x06\x16minecraft:diamond_tier\x1Dminecraft:transformable_items\x12minecraft:is_spear\0\n\x14minecraft:durability\n\rdamage_chance\x03\x03min\0\x03\x03max\xC8\x01\0\x03\x0Emax_durability\xB0\x18\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\x05\x08durationff\x86?\x08\x08category\x05spear\x08\x04type\x06attack\0\n\x10minecraft:damage\x02\x05value\x04\0\0\n\x16minecraft:display_name\x08\x05value\x17item.diamond_spear.name\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\n\x14minecraft:repairable\t\x0Crepair_items\n\x04\x08\rrepair_amount)context.other->query.remaining_durability\t\x05items\n\x02\x08\x04name\x17minecraft:diamond_spear\0\0\x08\rrepair_amount\x1Bquery.max_durability * 0.25\t\x05items\n\x02\x08\x04name\x11minecraft:diamond\0\0\0\n\x15minecraft:enchantable\x08\x04slot\x0Bmelee_spear\x01\x05value\n\0\n\x0Fitem_properties\x08\x0Ecreative_group\0\x08\x10enchantable_slot\x0Bmelee_spear\x03\x11enchantable_value\x14\x03\x0Emax_stack_size\x02\x03\x11creative_category\x06\x01\x04foil\0\n\x0Eminecraft:icon\n\x08textures\x08\x07default\rdiamond_spear\0\0\x01\x0Eshould_despawn\x01\x03\x0Cuse_duration\x80\xE4\xAF\x01\x01\x12hidden_in_commands\x02\x01\x0Eliquid_clipped\0\x03\ruse_animation\0\x03\x06damage\x08\x01\x17can_destroy_in_creative\x01\x01\rhand_equipped\x01\x01\x0Fstacked_by_data\0\x05\x0Cmining_speed\0\0\x80?\x01\x0Eallow_off_hand\0\x03\x0Bframe_count\x02\0\n\x18minecraft:swing_duration\x05\x05valueff\x86?\0\t\titem_tags\x08\x06\x16minecraft:diamond_tier\x1Dminecraft:transformable_items\x12minecraft:is_spear\0\0" } ;
pub const DIAMOND_SWORD: Self = Self {
id: 318,
registry_key: "minecraft:diamond_sword",
@ -71082,7 +71083,7 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const DRIED_KELP : Self = Self { id : 270 , registry_key : "minecraft:dried_kelp" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\x03\x16minecraft:use_duration \n\x0Eminecraft:food\x03\tnutrition\x02\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\xCC\xCC=\x08\rcooldown_type\0\x08\x11using_converts_to\0\0\0\0" } ;
pub const DRIED_KELP : Self = Self { id : 270 , registry_key : "minecraft:dried_kelp" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\n\x0Eminecraft:food\x08\rcooldown_type\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\x08\x11using_converts_to\0\x03\tnutrition\x02\x03\rcooldown_time\0\x05\x13saturation_modifier\xCD\xCC\xCC=\0\x03\x16minecraft:use_duration \0\0" } ;
pub const DRIED_KELP_BLOCK: Self = Self {
id: -139,
registry_key: "minecraft:dried_kelp_block",
@ -72028,7 +72029,7 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const ENCHANTED_GOLDEN_APPLE : Self = Self { id : 259 , registry_key : "minecraft:enchanted_golden_apple" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\x01\x0Eminecraft:foil\x01\x01\x19minecraft:stacked_by_data\x01\n\x0Eminecraft:food\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\x01\t\x07effects\n\x08\x03\x02id\x14\x08\x04name\x0Cregeneration\x03\tamplifier\x02\x05\x06chance\0\0\x80?\x08\rdescriptionId\x13potion.regeneration\x03\x08duration<\0\x03\tamplifier\x06\x05\x06chance\0\0\x80?\x03\x08duration\xF0\x01\x08\rdescriptionId\x11potion.absorption\x03\x02id,\x08\x04name\nabsorption\0\x08\x04name\nresistance\x05\x06chance\0\0\x80?\x08\rdescriptionId\x11potion.resistance\x03\tamplifier\0\x03\x02id\x16\x03\x08duration\xD8\x04\0\x05\x06chance\0\0\x80?\x08\x04name\x0Ffire_resistance\x08\rdescriptionId\x15potion.fireResistance\x03\tamplifier\0\x03\x08duration\xD8\x04\x03\x02id\x18\0\x03\tnutrition\x08\x03\ron_use_action\x01\0\x03\x16minecraft:use_duration@\0\0" } ;
pub const ENCHANTED_GOLDEN_APPLE : Self = Self { id : 259 , registry_key : "minecraft:enchanted_golden_apple" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\x01\x19minecraft:stacked_by_data\x01\n\x0Eminecraft:food\x03\rcooldown_time\0\x01\x0Ecan_always_eat\x01\x05\x13saturation_modifier\x9A\x99\x99?\x03\ron_use_action\x01\t\x07effects\n\x08\x03\x08duration<\x03\x02id\x14\x03\tamplifier\x02\x05\x06chance\0\0\x80?\x08\rdescriptionId\x13potion.regeneration\x08\x04name\x0Cregeneration\0\x05\x06chance\0\0\x80?\x03\tamplifier\x06\x08\rdescriptionId\x11potion.absorption\x03\x02id,\x03\x08duration\xF0\x01\x08\x04name\nabsorption\0\x03\x08duration\xD8\x04\x08\x04name\nresistance\x03\tamplifier\0\x03\x02id\x16\x08\rdescriptionId\x11potion.resistance\x05\x06chance\0\0\x80?\0\x03\x02id\x18\x08\x04name\x0Ffire_resistance\x08\rdescriptionId\x15potion.fireResistance\x03\tamplifier\0\x05\x06chance\0\0\x80?\x03\x08duration\xD8\x04\0\x03\tnutrition\x08\x08\rcooldown_type\0\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x08\x11using_converts_to\0\0\x03\x16minecraft:use_duration@\x01\x0Eminecraft:foil\x01\0\0" } ;
pub const ENCHANTING_TABLE: Self = Self {
id: 116,
registry_key: "minecraft:enchanting_table",
@ -72603,7 +72604,7 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const GLOW_BERRIES : Self = Self { id : 879 , registry_key : "minecraft:glow_berries" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\n\x0Eminecraft:food\x08\x11using_converts_to\0\x08\rcooldown_type\0\x01\x0Ecan_always_eat\0\x03\rcooldown_time\0\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x05\x13saturation_modifier\x9A\x99\x99>\x03\tnutrition\x04\x03\ron_use_action\x01\0\n\x0Eminecraft:seed\x01\x1Aplant_at_any_solid_surface\x01\x08\rplant_at_face\x04down\x08\x0Bcrop_result\x14minecraft:cave_vines\t\x08plant_at\x08\x04\ncave_vines\x1Ccave_vines_head_with_berries\0\x03\x16minecraft:use_duration@\0\0" } ;
pub const GLOW_BERRIES : Self = Self { id : 879 , registry_key : "minecraft:glow_berries" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\n\x0Eminecraft:food\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x03\tnutrition\x04\x05\x13saturation_modifier\x9A\x99\x99>\x08\x11using_converts_to\0\x01\x0Ecan_always_eat\0\x03\rcooldown_time\0\x08\rcooldown_type\0\x03\ron_use_action\x01\0\x03\x16minecraft:use_duration@\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\0\0" } ;
pub const GLOW_FRAME: Self = Self {
id: 636,
registry_key: "minecraft:glow_frame",
@ -72702,7 +72703,7 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const GOLDEN_APPLE : Self = Self { id : 258 , registry_key : "minecraft:golden_apple" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\x03\x16minecraft:use_duration@\x01\x19minecraft:stacked_by_data\x01\n\x0Eminecraft:food\t\x07effects\n\x04\x08\x04name\x0Cregeneration\x05\x06chance\0\0\x80?\x03\tamplifier\x02\x08\rdescriptionId\x13potion.regeneration\x03\x08duration\n\x03\x02id\x14\0\x05\x06chance\0\0\x80?\x03\x08duration\xF0\x01\x03\x02id,\x08\x04name\nabsorption\x03\tamplifier\0\x08\rdescriptionId\x11potion.absorption\0\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\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x03\tnutrition\x08\x08\rcooldown_type\0\0\0\0" } ;
pub const GOLDEN_APPLE : Self = Self { id : 258 , registry_key : "minecraft:golden_apple" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\x01\x19minecraft:stacked_by_data\x01\x03\x16minecraft:use_duration@\n\x0Eminecraft:food\x05\x13saturation_modifier\x9A\x99\x99?\x08\rcooldown_type\0\x03\rcooldown_time\0\x03\ron_use_action\x01\x08\x11using_converts_to\0\x01\x0Ecan_always_eat\x01\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x03\tnutrition\x08\t\x07effects\n\x04\x03\x08duration\n\x08\rdescriptionId\x13potion.regeneration\x05\x06chance\0\0\x80?\x03\tamplifier\x02\x08\x04name\x0Cregeneration\x03\x02id\x14\0\x08\rdescriptionId\x11potion.absorption\x03\x02id,\x05\x06chance\0\0\x80?\x03\x08duration\xF0\x01\x08\x04name\nabsorption\x03\tamplifier\0\0\0\0\0" } ;
pub const GOLDEN_AXE: Self = Self {
id: 328,
registry_key: "minecraft:golden_axe",
@ -72717,7 +72718,7 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const GOLDEN_CARROT : Self = Self { id : 283 , registry_key : "minecraft:golden_carrot" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\x03\x16minecraft:use_duration@\n\x0Eminecraft:food\x08\rcooldown_type\0\x05\x13saturation_modifier\x9A\x99\x99?\x01\x0Ecan_always_eat\0\x03\ron_use_action\x01\x08\x11using_converts_to\0\x03\tnutrition\x0C\x03\rcooldown_time\0\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\0\0\0" } ;
pub const GOLDEN_CARROT : Self = Self { id : 283 , registry_key : "minecraft:golden_carrot" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\n\x0Eminecraft:food\x03\ron_use_action\x01\x05\x13saturation_modifier\x9A\x99\x99?\x01\x0Ecan_always_eat\0\x03\rcooldown_time\0\x08\rcooldown_type\0\x08\x11using_converts_to\0\x03\tnutrition\x0C\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\0\x03\x16minecraft:use_duration@\0\0" } ;
pub const GOLDEN_CHESTPLATE: Self = Self {
id: 355,
registry_key: "minecraft:golden_chestplate",
@ -72788,7 +72789,7 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const GOLDEN_SPEAR : Self = Self { id : 852 , registry_key : "minecraft:golden_spear" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\ncomponents\n\x0Fitem_properties\x01\x0Eshould_despawn\x01\x03\x0Emax_stack_size\x02\n\x0Eminecraft:icon\n\x08textures\x08\x07default\ngold_spear\0\0\x01\x17can_destroy_in_creative\x01\x03\x0Bframe_count\x02\x01\rhand_equipped\x01\x01\x12hidden_in_commands\x02\x01\x0Fstacked_by_data\0\x08\x10enchantable_slot\x0Bmelee_spear\x03\ruse_animation\0\x03\x06damage\x02\x08\x0Ecreative_group\0\x03\x11creative_category\x06\x05\x0Cmining_speed\0\0\x80?\x01\x0Eallow_off_hand\0\x01\x0Eliquid_clipped\0\x03\x11enchantable_value,\x01\x04foil\0\x03\x0Cuse_duration\x80\xE4\xAF\x01\0\n\x15minecraft:enchantable\x08\x04slot\x0Bmelee_spear\x01\x05value\x16\0\n\x18minecraft:swing_duration\x05\x05value33s?\0\n\x16minecraft:swing_sounds\x08\nattack_hit\x1Citem.golden_spear.attack_hit\x08\x0Battack_miss\x1Ditem.golden_spear.attack_miss\0\n\x14minecraft:durability\n\rdamage_chance\x03\x03min\0\x03\x03max\xC8\x01\0\x03\x0Emax_durability<\0\n\x18minecraft:kinetic_weapon\n\x18minecraft:kinetic_weapon\n\x13dismount_conditions\x02\x0Cmax_durationF\0\x05\x12min_relative_speed\0\0\0\0\x05\tmin_speed\0\0PA\0\x05\rhitbox_margin\0\0\x80>\n\x0Ecreative_reach\x05\x03min\0\0\0@\x05\x03max\0\0\xF0@\0\n\x11damage_conditions\x02\x0Cmax_duration\x13\x01\x05\x12min_relative_speed33\x93@\x05\tmin_speed\0\0\0\0\0\x05\x11damage_multiplier333?\x02\x05delay\x0E\0\x05\x0Fdamage_modifier\0\0\0\0\n\x14knockback_conditions\x02\x0Cmax_duration\xAA\0\x05\tmin_speed33\xA3@\x05\x12min_relative_speed\0\0\0\0\0\n\x05reach\x05\x03max\0\0\x90@\x05\x03min\0\0\0@\0\0\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\n\x12minecraft:cooldown\x08\x08category\x05spear\x05\x08duration33s?\x08\x04type\x06attack\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\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\x03max\0\0\xF0@\x05\x03min\0\0\0@\0\0\n\x14minecraft:repairable\t\x0Crepair_items\n\x04\t\x05items\n\x02\x08\x04name\x16minecraft:golden_spear\0\x08\rrepair_amount)context.other->query.remaining_durability\0\t\x05items\n\x02\x08\x04name\x14minecraft:gold_ingot\0\x08\rrepair_amount\x1Bquery.max_durability * 0.25\0\0\n\x17minecraft:use_modifiers\x08\x0Bstart_sound\x15item.golden_spear.use\x05\x0Cuse_duration\0\xA0\x8CG\x08\x0Bstart_using\x06always\x01\x0Femit_vibrations\0\x05\x11movement_modifier\0\0\x80?\0\n\x10minecraft:damage\x02\x05value\x01\0\0\0\0" } ;
pub const GOLDEN_SPEAR : Self = Self { id : 852 , registry_key : "minecraft:golden_spear" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\ncomponents\n\x17minecraft:use_modifiers\x05\x11movement_modifier\0\0\x80?\x01\x0Femit_vibrations\0\x08\x0Bstart_sound\x15item.golden_spear.use\x08\x0Bstart_using\x06always\x05\x0Cuse_duration\0\xA0\x8CG\0\t\titem_tags\x08\x04\x15minecraft:golden_tier\x12minecraft:is_spear\n\x16minecraft:display_name\x08\x05value\x16item.golden_spear.name\0\n\x16minecraft:swing_sounds\x08\x0Battack_miss\x1Ditem.golden_spear.attack_miss\x08\nattack_hit\x1Citem.golden_spear.attack_hit\0\n\x14minecraft:durability\n\rdamage_chance\x03\x03max\xC8\x01\x03\x03min\0\0\x03\x0Emax_durability<\0\n\x10minecraft:damage\x02\x05value\x01\0\0\n\x15minecraft:enchantable\x08\x04slot\x0Bmelee_spear\x01\x05value\x16\0\n\x12minecraft:cooldown\x08\x08category\x05spear\x05\x08duration33s?\x08\x04type\x06attack\0\n\x18minecraft:kinetic_weapon\n\x18minecraft:kinetic_weapon\x05\x0Fdamage_modifier\0\0\0\0\n\x0Ecreative_reach\x05\x03min\0\0\0@\x05\x03max\0\0\xF0@\0\x05\x11damage_multiplier333?\x02\x05delay\x0E\0\n\x14knockback_conditions\x05\tmin_speed33\xA3@\x02\x0Cmax_duration\xAA\0\x05\x12min_relative_speed\0\0\0\0\0\n\x05reach\x05\x03max\0\0\x90@\x05\x03min\0\0\0@\0\n\x13dismount_conditions\x02\x0Cmax_durationF\0\x05\x12min_relative_speed\0\0\0\0\x05\tmin_speed\0\0PA\0\n\x11damage_conditions\x02\x0Cmax_duration\x13\x01\x05\tmin_speed\0\0\0\0\x05\x12min_relative_speed33\x93@\0\x05\rhitbox_margin\0\0\x80>\0\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\n\x14minecraft:repairable\t\x0Crepair_items\n\x04\t\x05items\n\x02\x08\x04name\x16minecraft:golden_spear\0\x08\rrepair_amount)context.other->query.remaining_durability\0\x08\rrepair_amount\x1Bquery.max_durability * 0.25\t\x05items\n\x02\x08\x04name\x14minecraft:gold_ingot\0\0\0\n\x0Eminecraft:tags\t\x04tags\x08\x04\x15minecraft:golden_tier\x12minecraft:is_spear\0\n\x18minecraft:swing_duration\x05\x05value33s?\0\n\x19minecraft:piercing_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\x05\rhitbox_margin\0\0\x80>\0\n\x17minecraft:hand_equipped\x01\x05value\x01\0\n\x0Fitem_properties\x05\x0Cmining_speed\0\0\x80?\x03\x11creative_category\x06\x08\x0Ecreative_group\0\x08\x10enchantable_slot\x0Bmelee_spear\x01\x0Fstacked_by_data\0\x01\x17can_destroy_in_creative\x01\n\x0Eminecraft:icon\n\x08textures\x08\x07default\ngold_spear\0\0\x03\x0Cuse_duration\x80\xE4\xAF\x01\x01\x0Eliquid_clipped\0\x01\rhand_equipped\x01\x03\ruse_animation\0\x01\x0Eshould_despawn\x01\x03\x06damage\x02\x01\x12hidden_in_commands\x02\x03\x11enchantable_value,\x03\x0Emax_stack_size\x02\x01\x0Eallow_off_hand\0\x01\x04foil\0\x03\x0Bframe_count\x02\0\0\0" } ;
pub const GOLDEN_SWORD: Self = Self {
id: 325,
registry_key: "minecraft:golden_sword",
@ -72852,7 +72853,7 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const GRAY_BUNDLE : Self = Self { id : 862 , registry_key : "minecraft:gray_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\ncomponents\n\x0Fitem_properties\x03\x0Emax_stack_size\x02\x01\x04foil\0\x01\x0Eshould_despawn\x01\x01\x0Eallow_off_hand\0\x01\x12hidden_in_commands\x02\x01\rhand_equipped\0\x03\ruse_animation\0\x08\x10enchantable_slot\x04none\x03\x11creative_category\x06\x01\x17can_destroy_in_creative\x01\x08\x0Ecreative_group\0\x03\x06damage\0\x03\x0Cuse_duration\0\x01\x0Eliquid_clipped\0\n\x0Eminecraft:icon\n\x08textures\x08\x07default\x0Bbundle_gray\x08\x11bundle_open_front\x16bundle_gray_open_front\x08\x10bundle_open_back\x15bundle_gray_open_back\0\0\x05\x0Cmining_speed\0\0\x80?\x03\x0Bframe_count\x02\x01\x0Fstacked_by_data\0\x03\x11enchantable_value\0\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\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\x1Cminecraft:bundle_interaction\x03\x12num_viewable_slots\x18\0\0\0" } ;
pub const GRAY_BUNDLE : Self = Self { id : 862 , registry_key : "minecraft:gray_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\ncomponents\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\x05\x0Cmining_speed\0\0\x80?\x03\x06damage\0\x01\x12hidden_in_commands\x02\x01\x04foil\0\x08\x10enchantable_slot\x04none\x03\x0Bframe_count\x02\x01\rhand_equipped\0\x01\x0Eliquid_clipped\0\x03\ruse_animation\0\x03\x0Cuse_duration\0\x03\x0Emax_stack_size\x02\x03\x11creative_category\x06\x03\x11enchantable_value\0\x08\x0Ecreative_group\0\x01\x0Eshould_despawn\x01\x01\x0Eallow_off_hand\0\x01\x0Fstacked_by_data\0\x01\x17can_destroy_in_creative\x01\n\x0Eminecraft:icon\n\x08textures\x08\x07default\x0Bbundle_gray\x08\x10bundle_open_back\x15bundle_gray_open_back\x08\x11bundle_open_front\x16bundle_gray_open_front\0\0\0\n\x1Cminecraft:bundle_interaction\x03\x12num_viewable_slots\x18\0\t\titem_tags\0\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\x18minecraft:max_stack_size\x01\x05value\x01\0\0\0" } ;
pub const GRAY_CANDLE: Self = Self {
id: -420,
registry_key: "minecraft:gray_candle",
@ -72951,7 +72952,7 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const GREEN_BUNDLE : Self = Self { id : 863 , registry_key : "minecraft:green_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\ncomponents\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\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\n\x0Fitem_properties\x03\x0Emax_stack_size\x02\x05\x0Cmining_speed\0\0\x80?\x01\x0Fstacked_by_data\0\x01\rhand_equipped\0\x01\x12hidden_in_commands\x02\x03\x06damage\0\x01\x0Eallow_off_hand\0\x03\ruse_animation\0\x01\x17can_destroy_in_creative\x01\x03\x0Cuse_duration\0\x01\x0Eliquid_clipped\0\x01\x04foil\0\x03\x11creative_category\x06\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\x08\x10enchantable_slot\x04none\x03\x11enchantable_value\0\x08\x0Ecreative_group\0\x03\x0Bframe_count\x02\x01\x0Eshould_despawn\x01\0\0\0" } ;
pub const GREEN_BUNDLE : Self = Self { id : 863 , registry_key : "minecraft:green_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\ncomponents\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\x1Cminecraft:bundle_interaction\x03\x12num_viewable_slots\x18\0\t\titem_tags\0\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\x0Fitem_properties\x03\x0Cuse_duration\0\x01\x0Eshould_despawn\x01\x01\x0Fstacked_by_data\0\x03\x0Bframe_count\x02\x03\ruse_animation\0\x01\x04foil\0\n\x0Eminecraft:icon\n\x08textures\x08\x11bundle_open_front\x17bundle_green_open_front\x08\x07default\x0Cbundle_green\x08\x10bundle_open_back\x16bundle_green_open_back\0\0\x03\x11enchantable_value\0\x08\x10enchantable_slot\x04none\x03\x0Emax_stack_size\x02\x03\x06damage\0\x01\x0Eliquid_clipped\0\x01\x0Eallow_off_hand\0\x03\x11creative_category\x06\x01\rhand_equipped\0\x01\x17can_destroy_in_creative\x01\x08\x0Ecreative_group\0\x01\x12hidden_in_commands\x02\x05\x0Cmining_speed\0\0\x80?\0\0\0" } ;
pub const GREEN_CANDLE: Self = Self {
id: -426,
registry_key: "minecraft:green_candle",
@ -73414,7 +73415,7 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const HONEY_BOTTLE : Self = Self { id : 604 , registry_key : "minecraft:honey_bottle" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\x03\x16minecraft:use_durationP\n\x0Eminecraft:food\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\x01\x08\x11using_converts_to\x0Cglass_bottle\x03\ron_use_action\x01\x08\rcooldown_type\0\x05\x13saturation_modifier\xCD\xCC\xCC=\t\x0Eremove_effects\x03\x02&\0\x03\x18minecraft:max_stack_size \0\0" } ;
pub const HONEY_BOTTLE : Self = Self { id : 604 , registry_key : "minecraft:honey_bottle" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\x03\x16minecraft:use_durationP\n\x0Eminecraft:food\x08\x11using_converts_to\x0Cglass_bottle\t\x0Eremove_effects\x03\x02&\x05\x13saturation_modifier\xCD\xCC\xCC=\x01\x0Ecan_always_eat\x01\x08\rcooldown_type\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\x03\tnutrition\x0C\0\x03\x18minecraft:max_stack_size \0\0" } ;
pub const HONEYCOMB: Self = Self {
id: 603,
registry_key: "minecraft:honeycomb",
@ -73716,7 +73717,7 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const IRON_SPEAR : Self = Self { id : 853 , registry_key : "minecraft:iron_spear" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\ncomponents\n\x14minecraft:repairable\t\x0Crepair_items\n\x04\x08\rrepair_amount)context.other->query.remaining_durability\t\x05items\n\x02\x08\x04name\x14minecraft:iron_spear\0\0\t\x05items\n\x02\x08\x04name\x14minecraft:iron_ingot\0\x08\rrepair_amount\x1Bquery.max_durability * 0.25\0\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\n\x17minecraft:hand_equipped\x01\x05value\x01\0\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\x03min\0\0\0@\x05\x03max\0\0\xF0@\0\0\n\x10minecraft:damage\x02\x05value\x03\0\0\n\x18minecraft:kinetic_weapon\n\x18minecraft:kinetic_weapon\x05\x11damage_multiplier33s?\n\x05reach\x05\x03max\0\0\x90@\x05\x03min\0\0\0@\0\n\x11damage_conditions\x05\tmin_speed\0\0\0\0\x05\x12min_relative_speed33\x93@\x02\x0Cmax_duration\xE1\0\0\x05\x0Fdamage_modifier\0\0\0\0\n\x13dismount_conditions\x05\x12min_relative_speed\0\0\0\0\x05\tmin_speed\0\x000A\x02\x0Cmax_duration2\0\0\x02\x05delay\x0C\0\n\x14knockback_conditions\x02\x0Cmax_duration\x87\0\x05\x12min_relative_speed\0\0\0\0\x05\tmin_speed33\xA3@\0\n\x0Ecreative_reach\x05\x03min\0\0\0@\x05\x03max\0\0\xF0@\0\x05\rhitbox_margin\0\0\x80>\0\0\n\x0Fitem_properties\x03\x11creative_category\x06\x08\x0Ecreative_group\0\x01\x04foil\0\x01\x0Eliquid_clipped\0\x03\x0Bframe_count\x02\x08\x10enchantable_slot\x0Bmelee_spear\x05\x0Cmining_speed\0\0\x80?\x01\x12hidden_in_commands\x02\x01\x0Fstacked_by_data\0\x03\x0Cuse_duration\x80\xE4\xAF\x01\n\x0Eminecraft:icon\n\x08textures\x08\x07default\niron_spear\0\0\x01\x0Eallow_off_hand\0\x01\x17can_destroy_in_creative\x01\x03\x06damage\x06\x03\ruse_animation\0\x03\x0Emax_stack_size\x02\x03\x11enchantable_value\x1C\x01\x0Eshould_despawn\x01\x01\rhand_equipped\x01\0\n\x16minecraft:swing_sounds\x08\x0Battack_miss\x1Bitem.iron_spear.attack_miss\x08\nattack_hit\x1Aitem.iron_spear.attack_hit\0\n\x16minecraft:display_name\x08\x05value\x14item.iron_spear.name\0\n\x12minecraft:cooldown\x08\x04type\x06attack\x08\x08category\x05spear\x05\x08duration33s?\0\n\x0Eminecraft:tags\t\x04tags\x08\x04\x13minecraft:iron_tier\x12minecraft:is_spear\0\n\x18minecraft:swing_duration\x05\x05value33s?\0\n\x17minecraft:use_modifiers\x01\x0Femit_vibrations\0\x05\x11movement_modifier\0\0\x80?\x08\x0Bstart_sound\x13item.iron_spear.use\x08\x0Bstart_using\x06always\x05\x0Cuse_duration\0\xA0\x8CG\0\n\x15minecraft:enchantable\x08\x04slot\x0Bmelee_spear\x01\x05value\x0E\0\t\titem_tags\x08\x04\x13minecraft:iron_tier\x12minecraft:is_spear\n\x14minecraft:durability\x03\x0Emax_durability\xF4\x03\n\rdamage_chance\x03\x03max\xC8\x01\x03\x03min\0\0\0\0\0" } ;
pub const IRON_SPEAR : Self = Self { id : 853 , registry_key : "minecraft:iron_spear" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\ncomponents\n\x17minecraft:hand_equipped\x01\x05value\x01\0\n\x18minecraft:swing_duration\x05\x05value33s?\0\n\x16minecraft:display_name\x08\x05value\x14item.iron_spear.name\0\n\x10minecraft:damage\x02\x05value\x03\0\0\n\x14minecraft:durability\x03\x0Emax_durability\xF4\x03\n\rdamage_chance\x03\x03min\0\x03\x03max\xC8\x01\0\0\n\x15minecraft:enchantable\x01\x05value\x0E\x08\x04slot\x0Bmelee_spear\0\n\x16minecraft:swing_sounds\x08\nattack_hit\x1Aitem.iron_spear.attack_hit\x08\x0Battack_miss\x1Bitem.iron_spear.attack_miss\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\x18minecraft:kinetic_weapon\n\x18minecraft:kinetic_weapon\x05\x0Fdamage_modifier\0\0\0\0\n\x05reach\x05\x03max\0\0\x90@\x05\x03min\0\0\0@\0\n\x11damage_conditions\x05\x12min_relative_speed33\x93@\x05\tmin_speed\0\0\0\0\x02\x0Cmax_duration\xE1\0\0\n\x13dismount_conditions\x05\x12min_relative_speed\0\0\0\0\x05\tmin_speed\0\x000A\x02\x0Cmax_duration2\0\0\x05\x11damage_multiplier33s?\n\x14knockback_conditions\x02\x0Cmax_duration\x87\0\x05\x12min_relative_speed\0\0\0\0\x05\tmin_speed33\xA3@\0\n\x0Ecreative_reach\x05\x03min\0\0\0@\x05\x03max\0\0\xF0@\0\x02\x05delay\x0C\0\x05\rhitbox_margin\0\0\x80>\0\0\t\titem_tags\x08\x04\x13minecraft:iron_tier\x12minecraft:is_spear\n\x0Fitem_properties\x03\x0Bframe_count\x02\x03\x06damage\x06\x01\rhand_equipped\x01\x03\x0Cuse_duration\x80\xE4\xAF\x01\x03\x11enchantable_value\x1C\x01\x17can_destroy_in_creative\x01\x08\x10enchantable_slot\x0Bmelee_spear\x01\x12hidden_in_commands\x02\x03\x0Emax_stack_size\x02\x05\x0Cmining_speed\0\0\x80?\x03\ruse_animation\0\x03\x11creative_category\x06\x01\x0Eliquid_clipped\0\n\x0Eminecraft:icon\n\x08textures\x08\x07default\niron_spear\0\0\x08\x0Ecreative_group\0\x01\x0Eshould_despawn\x01\x01\x0Fstacked_by_data\0\x01\x0Eallow_off_hand\0\x01\x04foil\0\0\n\x14minecraft:repairable\t\x0Crepair_items\n\x04\t\x05items\n\x02\x08\x04name\x14minecraft:iron_spear\0\x08\rrepair_amount)context.other->query.remaining_durability\0\x08\rrepair_amount\x1Bquery.max_durability * 0.25\t\x05items\n\x02\x08\x04name\x14minecraft:iron_ingot\0\0\0\n\x0Eminecraft:tags\t\x04tags\x08\x04\x13minecraft:iron_tier\x12minecraft:is_spear\0\n\x17minecraft:use_modifiers\x08\x0Bstart_sound\x13item.iron_spear.use\x05\x11movement_modifier\0\0\x80?\x05\x0Cuse_duration\0\xA0\x8CG\x08\x0Bstart_using\x06always\x01\x0Femit_vibrations\0\0\n\x12minecraft:cooldown\x05\x08duration33s?\x08\x08category\x05spear\x08\x04type\x06attack\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\0\0" } ;
pub const IRON_SWORD: Self = Self {
id: 309,
registry_key: "minecraft:iron_sword",
@ -74298,7 +74299,7 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const LIGHT_BLUE_BUNDLE : Self = Self { id : 864 , registry_key : "minecraft:light_blue_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\ncomponents\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\t\titem_tags\0\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\x03\x0Cuse_duration\0\x01\x17can_destroy_in_creative\x01\x01\x0Eliquid_clipped\0\x03\x06damage\0\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\x01\x0Eallow_off_hand\0\x01\x04foil\0\x03\x0Bframe_count\x02\x08\x0Ecreative_group\0\x08\x10enchantable_slot\x04none\x01\rhand_equipped\0\x03\x11enchantable_value\0\x01\x0Eshould_despawn\x01\x01\x12hidden_in_commands\x02\x03\x11creative_category\x06\x03\x0Emax_stack_size\x02\x01\x0Fstacked_by_data\0\x05\x0Cmining_speed\0\0\x80?\x03\ruse_animation\0\0\0\0" } ;
pub const LIGHT_BLUE_BUNDLE : Self = Self { id : 864 , registry_key : "minecraft:light_blue_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\ncomponents\n!minecraft:storage_weight_modifier\x03\x16weight_in_storage_item\x08\0\n\x0Fitem_properties\x05\x0Cmining_speed\0\0\x80?\x08\x10enchantable_slot\x04none\x01\x12hidden_in_commands\x02\x03\x11enchantable_value\0\x01\x0Eallow_off_hand\0\x08\x0Ecreative_group\0\x03\x0Bframe_count\x02\x01\rhand_equipped\0\x03\x0Cuse_duration\0\x01\x17can_destroy_in_creative\x01\x01\x04foil\0\n\x0Eminecraft:icon\n\x08textures\x08\x10bundle_open_back\x1Bbundle_light_blue_open_back\x08\x07default\x11bundle_light_blue\x08\x11bundle_open_front\x1Cbundle_light_blue_open_front\0\0\x03\ruse_animation\0\x01\x0Fstacked_by_data\0\x03\x11creative_category\x06\x01\x0Eliquid_clipped\0\x03\x0Emax_stack_size\x02\x03\x06damage\0\x01\x0Eshould_despawn\x01\0\t\titem_tags\0\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\x01\x1Aallow_nested_storage_items\x01\x03\tmax_slots\x80\x01\t\rallowed_items\0\0\0\n\x1Cminecraft:bundle_interaction\x03\x12num_viewable_slots\x18\0\n\x1Eminecraft:storage_weight_limit\x03\x10max_weight_limit\x80\x01\0\0\0" } ;
pub const LIGHT_BLUE_CANDLE: Self = Self {
id: -416,
registry_key: "minecraft:light_blue_candle",
@ -74397,7 +74398,7 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const LIGHT_GRAY_BUNDLE : Self = Self { id : 865 , registry_key : "minecraft:light_gray_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\ncomponents\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\n\x0Fitem_properties\x08\x0Ecreative_group\0\x03\x11creative_category\x06\x01\x0Eallow_off_hand\0\x03\x11enchantable_value\0\x01\x12hidden_in_commands\x02\x01\rhand_equipped\0\x08\x10enchantable_slot\x04none\x01\x04foil\0\x01\x0Fstacked_by_data\0\x03\ruse_animation\0\x05\x0Cmining_speed\0\0\x80?\x01\x0Eliquid_clipped\0\x01\x0Eshould_despawn\x01\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\x03\x0Cuse_duration\0\x03\x06damage\0\x01\x17can_destroy_in_creative\x01\x03\x0Bframe_count\x02\x03\x0Emax_stack_size\x02\0\t\titem_tags\0\0\n\x1Cminecraft:bundle_interaction\x03\x12num_viewable_slots\x18\0\0\0" } ;
pub const LIGHT_GRAY_BUNDLE : Self = Self { id : 865 , registry_key : "minecraft:light_gray_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\ncomponents\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\x03\x11enchantable_value\0\x03\x0Emax_stack_size\x02\x05\x0Cmining_speed\0\0\x80?\x01\x0Fstacked_by_data\0\x03\ruse_animation\0\x01\x0Eallow_off_hand\0\x03\x0Cuse_duration\0\x03\x06damage\0\n\x0Eminecraft:icon\n\x08textures\x08\x10bundle_open_back\x1Bbundle_light_gray_open_back\x08\x11bundle_open_front\x1Cbundle_light_gray_open_front\x08\x07default\x11bundle_light_gray\0\0\x01\rhand_equipped\0\x08\x10enchantable_slot\x04none\x03\x0Bframe_count\x02\x01\x04foil\0\x01\x12hidden_in_commands\x02\x01\x0Eliquid_clipped\0\x03\x11creative_category\x06\x08\x0Ecreative_group\0\x01\x0Eshould_despawn\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\x03\tmax_slots\x80\x01\t\rallowed_items\0\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\0\0" } ;
pub const LIGHT_GRAY_CANDLE: Self = Self {
id: -421,
registry_key: "minecraft:light_gray_candle",
@ -74517,7 +74518,7 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const LIME_BUNDLE : Self = Self { id : 866 , registry_key : "minecraft:lime_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\ncomponents\n\x0Fitem_properties\x03\x0Emax_stack_size\x02\x08\x10enchantable_slot\x04none\x01\x0Eliquid_clipped\0\x01\x0Eallow_off_hand\0\x03\x06damage\0\x03\ruse_animation\0\x01\x17can_destroy_in_creative\x01\x08\x0Ecreative_group\0\x05\x0Cmining_speed\0\0\x80?\x01\x0Eshould_despawn\x01\x03\x0Cuse_duration\0\x03\x11creative_category\x06\x03\x11enchantable_value\0\x01\x04foil\0\x01\rhand_equipped\0\x03\x0Bframe_count\x02\x01\x12hidden_in_commands\x02\n\x0Eminecraft:icon\n\x08textures\x08\x11bundle_open_front\x16bundle_lime_open_front\x08\x07default\x0Bbundle_lime\x08\x10bundle_open_back\x15bundle_lime_open_back\0\0\x01\x0Fstacked_by_data\0\0\t\titem_tags\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\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\n!minecraft:storage_weight_modifier\x03\x16weight_in_storage_item\x08\0\0\0" } ;
pub const LIME_BUNDLE : Self = Self { id : 866 , registry_key : "minecraft:lime_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\ncomponents\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!minecraft:storage_weight_modifier\x03\x16weight_in_storage_item\x08\0\n\x1Cminecraft:bundle_interaction\x03\x12num_viewable_slots\x18\0\n\x0Fitem_properties\x08\x0Ecreative_group\0\x08\x10enchantable_slot\x04none\x03\x11enchantable_value\0\x03\x0Emax_stack_size\x02\x03\ruse_animation\0\x01\x12hidden_in_commands\x02\x03\x06damage\0\x01\x04foil\0\x03\x0Bframe_count\x02\x05\x0Cmining_speed\0\0\x80?\x01\x17can_destroy_in_creative\x01\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\x0Eallow_off_hand\0\x03\x11creative_category\x06\x01\x0Eliquid_clipped\0\x01\rhand_equipped\0\x01\x0Eshould_despawn\x01\x01\x0Fstacked_by_data\0\x03\x0Cuse_duration\0\0\t\titem_tags\0\0\n\x1Eminecraft:storage_weight_limit\x03\x10max_weight_limit\x80\x01\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\0\0" } ;
pub const LIME_CANDLE: Self = Self {
id: -418,
registry_key: "minecraft:lime_candle",
@ -74721,7 +74722,7 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const MAGENTA_BUNDLE : Self = Self { id : 867 , registry_key : "minecraft:magenta_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\ncomponents\n\x1Eminecraft:storage_weight_limit\x03\x10max_weight_limit\x80\x01\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\n!minecraft:storage_weight_modifier\x03\x16weight_in_storage_item\x08\0\t\titem_tags\0\0\n\x1Cminecraft:bundle_interaction\x03\x12num_viewable_slots\x18\0\n\x0Fitem_properties\x01\x04foil\0\x03\ruse_animation\0\x01\x17can_destroy_in_creative\x01\x01\x0Eliquid_clipped\0\x01\x0Fstacked_by_data\0\x01\rhand_equipped\0\x03\x11creative_category\x06\x03\x06damage\0\x03\x0Emax_stack_size\x02\x08\x0Ecreative_group\0\x03\x11enchantable_value\0\x01\x0Eallow_off_hand\0\x08\x10enchantable_slot\x04none\x03\x0Bframe_count\x02\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\x05\x0Cmining_speed\0\0\x80?\x01\x12hidden_in_commands\x02\x03\x0Cuse_duration\0\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\0\0" } ;
pub const MAGENTA_BUNDLE : Self = Self { id : 867 , registry_key : "minecraft:magenta_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\ncomponents\n!minecraft:storage_weight_modifier\x03\x16weight_in_storage_item\x08\0\n\x0Fitem_properties\x01\x0Eallow_off_hand\0\x03\x0Bframe_count\x02\x03\x11creative_category\x06\x01\x04foil\0\x01\x12hidden_in_commands\x02\x01\rhand_equipped\0\x01\x0Eliquid_clipped\0\x03\x0Emax_stack_size\x02\x08\x0Ecreative_group\0\x03\x0Cuse_duration\0\x05\x0Cmining_speed\0\0\x80?\x01\x17can_destroy_in_creative\x01\x08\x10enchantable_slot\x04none\x03\ruse_animation\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\x03\x06damage\0\x01\x0Fstacked_by_data\0\x01\x0Eshould_despawn\x01\x03\x11enchantable_value\0\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\0\0" } ;
pub const MAGENTA_CANDLE: Self = Self {
id: -415,
registry_key: "minecraft:magenta_candle",
@ -75023,8 +75024,8 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const MELON_SEEDS : Self = Self { id : 293 , registry_key : "minecraft:melon_seeds" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\n\x0Eminecraft:seed\x08\x0Bcrop_result\x14minecraft:melon_stem\x01\x1Aplant_at_any_solid_surface\0\t\x08plant_at\x08\x02\x12minecraft:farmland\x08\rplant_at_face\x02up\0\0\0" } ;
pub const MELON_SLICE : Self = Self { id : 272 , registry_key : "minecraft:melon_slice" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\x03\x16minecraft:use_duration@\n\x0Eminecraft:food\x08\rcooldown_type\0\x03\rcooldown_time\0\x05\x13saturation_modifier\x9A\x99\x99>\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x01\x0Ecan_always_eat\0\x03\tnutrition\x04\x03\ron_use_action\x01\x08\x11using_converts_to\0\0\0\0" } ;
pub const MELON_SEEDS : Self = Self { id : 293 , registry_key : "minecraft:melon_seeds" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\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\x14minecraft:melon_stem\0\0\0" } ;
pub const MELON_SLICE : Self = Self { id : 272 , registry_key : "minecraft:melon_slice" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\x03\x16minecraft:use_duration@\n\x0Eminecraft:food\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\rcooldown_type\0\x03\rcooldown_time\0\x03\tnutrition\x04\x05\x13saturation_modifier\x9A\x99\x99>\x08\x11using_converts_to\0\0\0\0" } ;
pub const MELON_STEM: Self = Self {
id: 105,
registry_key: "minecraft:melon_stem",
@ -75242,7 +75243,7 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const MUSHROOM_STEW : Self = Self { id : 260 , registry_key : "minecraft:mushroom_stew" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\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\x0C\x08\x11using_converts_to\x04bowl\x05\x13saturation_modifier\x9A\x99\x19?\x03\ron_use_action\x01\x08\rcooldown_type\0\0\x03\x18minecraft:max_stack_size\x02\x03\x16minecraft:use_duration@\0\0" } ;
pub const MUSHROOM_STEW : Self = Self { id : 260 , registry_key : "minecraft:mushroom_stew" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\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\x05\x13saturation_modifier\x9A\x99\x19?\x01\x0Ecan_always_eat\0\x03\rcooldown_time\0\x08\rcooldown_type\0\x03\tnutrition\x0C\x08\x11using_converts_to\x04bowl\0\x03\x18minecraft:max_stack_size\x02\0\0" } ;
pub const MUSIC_DISC_11: Self = Self {
id: 554,
registry_key: "minecraft:music_disc_11",
@ -75397,7 +75398,7 @@ impl BedrockItem {
component_based: true,
definition_components: b"\n\0\0",
};
pub const MUTTON : Self = Self { id : 560 , registry_key : "minecraft:mutton" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\x03\x16minecraft:use_duration@\n\x0Eminecraft:food\x08\x11using_converts_to\0\x03\tnutrition\x04\x03\ron_use_action\x01\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x08\rcooldown_type\0\x01\x0Ecan_always_eat\0\x03\rcooldown_time\0\x05\x13saturation_modifier\x9A\x99\x99>\0\0\0" } ;
pub const MUTTON : Self = Self { id : 560 , registry_key : "minecraft:mutton" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\n\x0Eminecraft:food\x01\x0Ecan_always_eat\0\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\x05\x13saturation_modifier\x9A\x99\x99>\x08\rcooldown_type\0\x08\x11using_converts_to\0\0\x03\x16minecraft:use_duration@\0\0" } ;
pub const MYCELIUM: Self = Self {
id: 110,
registry_key: "minecraft:mycelium",
@ -75489,7 +75490,7 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const NETHER_WART : Self = Self { id : 294 , registry_key : "minecraft:nether_wart" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\n\x0Eminecraft:seed\x08\rplant_at_face\x02up\x08\x0Bcrop_result\x15minecraft:nether_wart\t\x08plant_at\x08\x02\tsoul_sand\x01\x1Aplant_at_any_solid_surface\0\0\0\0" } ;
pub const NETHER_WART : Self = Self { id : 294 , registry_key : "minecraft:nether_wart" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\n\x0Eminecraft:seed\x08\rplant_at_face\x02up\x08\x0Bcrop_result\x15minecraft:nether_wart\x01\x1Aplant_at_any_solid_surface\0\t\x08plant_at\x08\x02\tsoul_sand\0\0\0" } ;
pub const NETHER_WART_BLOCK: Self = Self {
id: 214,
registry_key: "minecraft:nether_wart_block",
@ -75595,7 +75596,7 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const NETHERITE_SPEAR : Self = Self { id : 854 , registry_key : "minecraft:netherite_spear" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\ncomponents\n\x14minecraft:repairable\t\x0Crepair_items\n\x04\x08\rrepair_amount)context.other->query.remaining_durability\t\x05items\n\x02\x08\x04name\x19minecraft:netherite_spear\0\0\t\x05items\n\x02\x08\x04name\x19minecraft:netherite_ingot\0\x08\rrepair_amount\x1Bquery.max_durability * 0.25\0\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\n\x10minecraft:damage\x02\x05value\x05\0\0\n\x19minecraft:piercing_weapon\n\x0Ecreative_reach\x05\x03min\0\0\0@\x05\x03max\0\0\xF0@\0\n\x05reach\x05\x03min\0\0\0@\x05\x03max\0\0\x90@\0\x05\rhitbox_margin\0\0\x80>\0\n\x17minecraft:use_modifiers\x08\x0Bstart_sound\x18item.netherite_spear.use\x01\x0Femit_vibrations\0\x05\x11movement_modifier\0\0\x80?\x08\x0Bstart_using\x06always\x05\x0Cuse_duration\0\xA0\x8CG\0\n\x0Eminecraft:tags\t\x04tags\x08\x04\x18minecraft:netherite_tier\x12minecraft:is_spear\0\n\x18minecraft:fire_resistant\x01\x05value\x01\0\n\x0Fitem_properties\x03\x0Cuse_duration\x80\xE4\xAF\x01\x01\x17can_destroy_in_creative\x01\x03\x0Emax_stack_size\x02\x08\x10enchantable_slot\x0Bmelee_spear\x01\x0Eliquid_clipped\0\x03\ruse_animation\0\x01\x0Fstacked_by_data\0\x01\x0Eshould_despawn\x01\x08\x0Ecreative_group\0\x05\x0Cmining_speed\0\0\x80?\x03\x06damage\n\x01\x04foil\0\x03\x0Bframe_count\x02\n\x0Eminecraft:icon\n\x08textures\x08\x07default\x0Fnetherite_spear\0\0\x01\x0Eallow_off_hand\0\x03\x11creative_category\x06\x03\x11enchantable_value\x1E\x01\x12hidden_in_commands\x02\x01\rhand_equipped\x01\0\n\x16minecraft:display_name\x08\x05value\x19item.netherite_spear.name\0\n\x15minecraft:enchantable\x01\x05value\x0F\x08\x04slot\x0Bmelee_spear\0\t\titem_tags\x08\x04\x18minecraft:netherite_tier\x12minecraft:is_spear\n\x18minecraft:swing_duration\x05\x05value33\x93?\0\n\x18minecraft:kinetic_weapon\n\x18minecraft:kinetic_weapon\x05\rhitbox_margin\0\0\x80>\x05\x11damage_multiplier\x9A\x99\x99?\x05\x0Fdamage_modifier\0\0\0\0\n\x0Ecreative_reach\x05\x03min\0\0\0@\x05\x03max\0\0\xF0@\0\n\x13dismount_conditions\x05\tmin_speed\0\0\x10A\x02\x0Cmax_duration2\0\x05\x12min_relative_speed\0\0\0\0\0\n\x05reach\x05\x03min\0\0\0@\x05\x03max\0\0\x90@\0\n\x11damage_conditions\x05\x12min_relative_speed33\x93@\x05\tmin_speed\0\0\0\0\x02\x0Cmax_duration\xAF\0\0\n\x14knockback_conditions\x05\x12min_relative_speed\0\0\0\0\x05\tmin_speed33\xA3@\x02\x0Cmax_durationn\0\0\x02\x05delay\x08\0\0\0\n\x16minecraft:swing_sounds\x08\nattack_hit\x1Fitem.netherite_spear.attack_hit\x08\x0Battack_miss item.netherite_spear.attack_miss\0\n\x14minecraft:durability\n\rdamage_chance\x03\x03max\xC8\x01\x03\x03min\0\0\x03\x0Emax_durability\xDC\x1F\0\n\x17minecraft:hand_equipped\x01\x05value\x01\0\n\x12minecraft:cooldown\x08\x08category\x05spear\x05\x08duration33\x93?\x08\x04type\x06attack\0\0\0" } ;
pub const NETHERITE_SPEAR : Self = Self { id : 854 , registry_key : "minecraft:netherite_spear" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\ncomponents\n\x18minecraft:kinetic_weapon\n\x18minecraft:kinetic_weapon\x05\x11damage_multiplier\x9A\x99\x99?\n\x05reach\x05\x03min\0\0\0@\x05\x03max\0\0\x90@\0\x05\rhitbox_margin\0\0\x80>\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\n\x0Ecreative_reach\x05\x03min\0\0\0@\x05\x03max\0\0\xF0@\0\n\x13dismount_conditions\x05\tmin_speed\0\0\x10A\x02\x0Cmax_duration2\0\x05\x12min_relative_speed\0\0\0\0\0\n\x14knockback_conditions\x02\x0Cmax_durationn\0\x05\x12min_relative_speed\0\0\0\0\x05\tmin_speed33\xA3@\0\x05\x0Fdamage_modifier\0\0\0\0\0\0\n\x17minecraft:hand_equipped\x01\x05value\x01\0\n\x14minecraft:repairable\t\x0Crepair_items\n\x04\t\x05items\n\x02\x08\x04name\x19minecraft:netherite_spear\0\x08\rrepair_amount)context.other->query.remaining_durability\0\x08\rrepair_amount\x1Bquery.max_durability * 0.25\t\x05items\n\x02\x08\x04name\x19minecraft:netherite_ingot\0\0\0\n\x0Fitem_properties\x01\x0Eliquid_clipped\0\x03\x11enchantable_value\x1E\x05\x0Cmining_speed\0\0\x80?\x01\rhand_equipped\x01\x03\x06damage\n\n\x0Eminecraft:icon\n\x08textures\x08\x07default\x0Fnetherite_spear\0\0\x03\x0Emax_stack_size\x02\x03\ruse_animation\0\x03\x0Cuse_duration\x80\xE4\xAF\x01\x01\x17can_destroy_in_creative\x01\x08\x0Ecreative_group\0\x03\x0Bframe_count\x02\x01\x04foil\0\x08\x10enchantable_slot\x0Bmelee_spear\x01\x0Eshould_despawn\x01\x01\x0Eallow_off_hand\0\x01\x0Fstacked_by_data\0\x01\x12hidden_in_commands\x02\x03\x11creative_category\x06\0\n\x18minecraft:fire_resistant\x01\x05value\x01\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\t\titem_tags\x08\x04\x18minecraft:netherite_tier\x12minecraft:is_spear\n\x10minecraft:damage\x02\x05value\x05\0\0\n\x17minecraft:use_modifiers\x05\x11movement_modifier\0\0\x80?\x01\x0Femit_vibrations\0\x08\x0Bstart_using\x06always\x05\x0Cuse_duration\0\xA0\x8CG\x08\x0Bstart_sound\x18item.netherite_spear.use\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\x15minecraft:enchantable\x08\x04slot\x0Bmelee_spear\x01\x05value\x0F\0\n\x16minecraft:display_name\x08\x05value\x19item.netherite_spear.name\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\n\x18minecraft:swing_duration\x05\x05value33\x93?\0\n\x0Eminecraft:tags\t\x04tags\x08\x04\x18minecraft:netherite_tier\x12minecraft:is_spear\0\n\x14minecraft:durability\n\rdamage_chance\x03\x03min\0\x03\x03max\xC8\x01\0\x03\x0Emax_durability\xDC\x1F\0\0\0" } ;
pub const NETHERITE_SWORD: Self = Self {
id: 617,
registry_key: "minecraft:netherite_sword",
@ -75792,7 +75793,7 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const OMINOUS_TRIAL_KEY : Self = Self { id : 875 , registry_key : "minecraft:ominous_trial_key" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\ncomponents\t\titem_tags\0\0\n\x0Fitem_properties\x01\x04foil\0\x03\x06damage\0\x03\x11creative_category\x08\x05\x0Cmining_speed\0\0\x80?\x08\x0Ecreative_group\0\x01\x0Eshould_despawn\x01\x01\x0Fstacked_by_data\0\x03\x0Cuse_duration\0\x03\ruse_animation\0\x01\x0Eallow_off_hand\0\x03\x11enchantable_value\0\x03\x0Emax_stack_size\x80\x01\x03\x0Bframe_count\x02\x08\x10enchantable_slot\x04none\x01\x17can_destroy_in_creative\x01\x01\rhand_equipped\0\n\x0Eminecraft:icon\n\x08textures\x08\x07default\x11ominous_trial_key\0\0\x01\x12hidden_in_commands\x02\x01\x0Eliquid_clipped\0\0\n\x16minecraft:display_name\x08\x05value\x1Bitem.ominous_trial_key.name\0\0\0" } ;
pub const OMINOUS_TRIAL_KEY : Self = Self { id : 875 , registry_key : "minecraft:ominous_trial_key" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\ncomponents\n\x16minecraft:display_name\x08\x05value\x1Bitem.ominous_trial_key.name\0\n\x0Fitem_properties\x03\x11enchantable_value\0\x01\rhand_equipped\0\x01\x0Eshould_despawn\x01\x01\x0Eallow_off_hand\0\x05\x0Cmining_speed\0\0\x80?\n\x0Eminecraft:icon\n\x08textures\x08\x07default\x11ominous_trial_key\0\0\x01\x0Fstacked_by_data\0\x03\x11creative_category\x08\x01\x0Eliquid_clipped\0\x01\x12hidden_in_commands\x02\x08\x0Ecreative_group\0\x03\x0Emax_stack_size\x80\x01\x08\x10enchantable_slot\x04none\x03\x0Bframe_count\x02\x01\x17can_destroy_in_creative\x01\x03\x06damage\0\x03\x0Cuse_duration\0\x01\x04foil\0\x03\ruse_animation\0\0\t\titem_tags\0\0\0\0" } ;
pub const OPEN_EYEBLOSSOM: Self = Self {
id: -1018,
registry_key: "minecraft:open_eyeblossom",
@ -75800,7 +75801,7 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const ORANGE_BUNDLE : Self = Self { id : 868 , registry_key : "minecraft:orange_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\ncomponents\n\x18minecraft:max_stack_size\x01\x05value\x01\0\t\titem_tags\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\x0Fitem_properties\x03\x0Cuse_duration\0\x03\x11enchantable_value\0\x08\x10enchantable_slot\x04none\x01\x17can_destroy_in_creative\x01\x01\x04foil\0\x01\rhand_equipped\0\x01\x0Eallow_off_hand\0\x03\x0Bframe_count\x02\x01\x0Eliquid_clipped\0\x05\x0Cmining_speed\0\0\x80?\x01\x12hidden_in_commands\x02\x03\x11creative_category\x06\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\x01\x0Fstacked_by_data\0\x01\x0Eshould_despawn\x01\x03\x0Emax_stack_size\x02\x03\x06damage\0\x08\x0Ecreative_group\0\x03\ruse_animation\0\0\n\x1Cminecraft:bundle_interaction\x03\x12num_viewable_slots\x18\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\0\0" } ;
pub const ORANGE_BUNDLE : Self = Self { id : 868 , registry_key : "minecraft:orange_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\ncomponents\n\x0Fitem_properties\x05\x0Cmining_speed\0\0\x80?\x03\x06damage\0\x01\x0Fstacked_by_data\0\x01\rhand_equipped\0\x01\x0Eshould_despawn\x01\x03\x0Bframe_count\x02\x03\ruse_animation\0\x01\x17can_destroy_in_creative\x01\x03\x0Emax_stack_size\x02\x03\x0Cuse_duration\0\x01\x04foil\0\x08\x0Ecreative_group\0\x08\x10enchantable_slot\x04none\x03\x11creative_category\x06\n\x0Eminecraft:icon\n\x08textures\x08\x11bundle_open_front\x18bundle_orange_open_front\x08\x07default\rbundle_orange\x08\x10bundle_open_back\x17bundle_orange_open_back\0\0\x01\x0Eallow_off_hand\0\x01\x12hidden_in_commands\x02\x01\x0Eliquid_clipped\0\x03\x11enchantable_value\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\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\t\titem_tags\0\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\0\0" } ;
pub const ORANGE_CANDLE: Self = Self {
id: -414,
registry_key: "minecraft:orange_candle",
@ -76333,7 +76334,7 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const PINK_BUNDLE : Self = Self { id : 869 , registry_key : "minecraft:pink_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\ncomponents\n!minecraft:storage_weight_modifier\x03\x16weight_in_storage_item\x08\0\t\titem_tags\0\0\n\x1Cminecraft:bundle_interaction\x03\x12num_viewable_slots\x18\0\n\x0Fitem_properties\x05\x0Cmining_speed\0\0\x80?\x01\x0Eallow_off_hand\0\x03\x0Emax_stack_size\x02\x01\x0Eshould_despawn\x01\x01\x12hidden_in_commands\x02\x08\x0Ecreative_group\0\x03\x11creative_category\x06\x01\x17can_destroy_in_creative\x01\x03\x0Bframe_count\x02\x01\x04foil\0\x08\x10enchantable_slot\x04none\x01\rhand_equipped\0\n\x0Eminecraft:icon\n\x08textures\x08\x10bundle_open_back\x15bundle_pink_open_back\x08\x11bundle_open_front\x16bundle_pink_open_front\x08\x07default\x0Bbundle_pink\0\0\x03\x11enchantable_value\0\x01\x0Fstacked_by_data\0\x03\x06damage\0\x03\ruse_animation\0\x03\x0Cuse_duration\0\x01\x0Eliquid_clipped\0\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\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\0" } ;
pub const PINK_BUNDLE : Self = Self { id : 869 , registry_key : "minecraft:pink_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\ncomponents\n\x0Fitem_properties\x03\x11enchantable_value\0\x05\x0Cmining_speed\0\0\x80?\x01\x0Eallow_off_hand\0\x01\x0Eliquid_clipped\0\x03\x0Emax_stack_size\x02\x03\x11creative_category\x06\x01\x17can_destroy_in_creative\x01\x03\ruse_animation\0\x01\rhand_equipped\0\x01\x0Fstacked_by_data\0\x01\x12hidden_in_commands\x02\x08\x10enchantable_slot\x04none\n\x0Eminecraft:icon\n\x08textures\x08\x11bundle_open_front\x16bundle_pink_open_front\x08\x07default\x0Bbundle_pink\x08\x10bundle_open_back\x15bundle_pink_open_back\0\0\x01\x0Eshould_despawn\x01\x01\x04foil\0\x08\x0Ecreative_group\0\x03\x06damage\0\x03\x0Cuse_duration\0\x03\x0Bframe_count\x02\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\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!minecraft:storage_weight_modifier\x03\x16weight_in_storage_item\x08\0\n\x1Eminecraft:storage_weight_limit\x03\x10max_weight_limit\x80\x01\0\0\0" } ;
pub const PINK_CANDLE: Self = Self {
id: -419,
registry_key: "minecraft:pink_candle",
@ -76510,7 +76511,7 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const POISONOUS_POTATO : Self = Self { id : 282 , registry_key : "minecraft:poisonous_potato" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\x03\x16minecraft:use_duration@\n\x0Eminecraft:food\x08\rcooldown_type\0\x05\x13saturation_modifier\x9A\x99\x99>\t\x07effects\n\x02\x08\x04name\x06poison\x08\rdescriptionId\rpotion.poison\x05\x06chance\x9A\x99\x19?\x03\tamplifier\0\x03\x08duration\n\x03\x02id&\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\0\0" } ;
pub const POISONOUS_POTATO : Self = Self { id : 282 , registry_key : "minecraft:poisonous_potato" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\x03\x16minecraft:use_duration@\n\x0Eminecraft:food\x08\x11using_converts_to\0\t\x07effects\n\x02\x08\x04name\x06poison\x08\rdescriptionId\rpotion.poison\x03\tamplifier\0\x05\x06chance\x9A\x99\x19?\x03\x08duration\n\x03\x02id&\0\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x08\rcooldown_type\0\x03\rcooldown_time\0\x03\tnutrition\x04\x01\x0Ecan_always_eat\0\x03\ron_use_action\x01\x05\x13saturation_modifier\x9A\x99\x99>\0\0\0" } ;
pub const POLAR_BEAR_SPAWN_EGG: Self = Self {
id: 477,
registry_key: "minecraft:polar_bear_spawn_egg",
@ -76987,7 +76988,7 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const PORKCHOP : Self = Self { id : 262 , registry_key : "minecraft:porkchop" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\n\x0Eminecraft:food\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x01\x0Ecan_always_eat\0\x03\tnutrition\x06\x03\rcooldown_time\0\x05\x13saturation_modifier\x9A\x99\x99>\x08\x11using_converts_to\0\x03\ron_use_action\x01\x08\rcooldown_type\0\0\x03\x16minecraft:use_duration@\0\0" } ;
pub const PORKCHOP : Self = Self { id : 262 , registry_key : "minecraft:porkchop" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\n\x0Eminecraft:food\x08\x11using_converts_to\0\x05\x13saturation_modifier\x9A\x99\x99>\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x03\rcooldown_time\0\x01\x0Ecan_always_eat\0\x08\rcooldown_type\0\x03\ron_use_action\x01\x03\tnutrition\x06\0\x03\x16minecraft:use_duration@\0\0" } ;
pub const PORTAL: Self = Self {
id: 90,
registry_key: "minecraft:portal",
@ -76995,7 +76996,7 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const POTATO : Self = Self { id : 280 , registry_key : "minecraft:potato" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\n\x0Eminecraft:food\x03\tnutrition\x02\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x05\x13saturation_modifier\x9A\x99\x99>\x03\ron_use_action\x01\x01\x0Ecan_always_eat\0\x08\x11using_converts_to\0\x03\rcooldown_time\0\x08\rcooldown_type\0\0\n\x0Eminecraft:seed\x08\x0Bcrop_result\x12minecraft:potatoes\t\x08plant_at\x08\x02\x12minecraft:farmland\x08\rplant_at_face\x02up\x01\x1Aplant_at_any_solid_surface\0\0\x03\x16minecraft:use_duration@\0\0" } ;
pub const POTATO : Self = Self { id : 280 , registry_key : "minecraft:potato" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\x03\x16minecraft:use_duration@\n\x0Eminecraft:seed\t\x08plant_at\x08\x02\x12minecraft:farmland\x01\x1Aplant_at_any_solid_surface\0\x08\x0Bcrop_result\x12minecraft:potatoes\x08\rplant_at_face\x02up\0\n\x0Eminecraft:food\x08\rcooldown_type\0\x03\ron_use_action\x01\x03\tnutrition\x02\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\rcooldown_time\0\x05\x13saturation_modifier\x9A\x99\x99>\0\0\0" } ;
pub const POTATOES: Self = Self {
id: 142,
registry_key: "minecraft:potatoes",
@ -77129,7 +77130,7 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const PUFFERFISH : Self = Self { id : 267 , registry_key : "minecraft:pufferfish" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\x01\x19minecraft:stacked_by_data\x01\x03\x16minecraft:use_duration@\n\x0Eminecraft:food\x08\rcooldown_type\0\x03\ron_use_action\x01\x08\x11using_converts_to\0\x03\rcooldown_time\0\x05\x13saturation_modifier\xCD\xCC\xCC=\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x01\x0Ecan_always_eat\0\t\x07effects\n\x06\x03\tamplifier\x02\x05\x06chance\0\0\x80?\x08\rdescriptionId\rpotion.poison\x03\x08durationx\x03\x02id&\x08\x04name\x06poison\0\x05\x06chance\0\0\x80?\x03\tamplifier\0\x08\x04name\x06nausea\x03\x02id\x12\x03\x08duration\x1E\x08\rdescriptionId\x10potion.confusion\0\x03\tamplifier\x04\x08\rdescriptionId\rpotion.hunger\x03\x02id\"\x03\x08duration\x1E\x08\x04name\x06hunger\x05\x06chance\0\0\x80?\0\x03\tnutrition\x02\0\0\0" } ;
pub const PUFFERFISH : Self = Self { id : 267 , registry_key : "minecraft:pufferfish" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\n\x0Eminecraft:food\x05\x13saturation_modifier\xCD\xCC\xCC=\t\x07effects\n\x06\x08\x04name\x06poison\x03\tamplifier\x02\x05\x06chance\0\0\x80?\x03\x08durationx\x08\rdescriptionId\rpotion.poison\x03\x02id&\0\x05\x06chance\0\0\x80?\x08\rdescriptionId\x10potion.confusion\x08\x04name\x06nausea\x03\tamplifier\0\x03\x08duration\x1E\x03\x02id\x12\0\x08\x04name\x06hunger\x03\x02id\"\x08\rdescriptionId\rpotion.hunger\x03\tamplifier\x04\x05\x06chance\0\0\x80?\x03\x08duration\x1E\0\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x03\rcooldown_time\0\x08\rcooldown_type\0\x03\ron_use_action\x01\x08\x11using_converts_to\0\x01\x0Ecan_always_eat\0\x03\tnutrition\x02\0\x03\x16minecraft:use_duration@\x01\x19minecraft:stacked_by_data\x01\0\0" } ;
pub const PUFFERFISH_BUCKET: Self = Self {
id: 370,
registry_key: "minecraft:pufferfish_bucket",
@ -77151,8 +77152,8 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const PUMPKIN_PIE : Self = Self { id : 284 , registry_key : "minecraft:pumpkin_pie" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\n\x0Eminecraft:food\x03\tnutrition\x10\x08\x11using_converts_to\0\x05\x13saturation_modifier\x9A\x99\x99>\x01\x0Ecan_always_eat\0\x03\rcooldown_time\0\x08\rcooldown_type\0\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x03\ron_use_action\x01\0\x03\x16minecraft:use_duration@\0\0" } ;
pub const PUMPKIN_SEEDS : Self = Self { id : 292 , registry_key : "minecraft:pumpkin_seeds" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\n\x0Eminecraft:seed\x08\x0Bcrop_result\x16minecraft:pumpkin_stem\x01\x1Aplant_at_any_solid_surface\0\x08\rplant_at_face\x02up\t\x08plant_at\x08\x02\x12minecraft:farmland\0\0\0" } ;
pub const PUMPKIN_PIE : Self = Self { id : 284 , registry_key : "minecraft:pumpkin_pie" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\n\x0Eminecraft:food\x08\rcooldown_type\0\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x08\x11using_converts_to\0\x03\tnutrition\x10\x05\x13saturation_modifier\x9A\x99\x99>\x03\ron_use_action\x01\x01\x0Ecan_always_eat\0\x03\rcooldown_time\0\0\x03\x16minecraft:use_duration@\0\0" } ;
pub const PUMPKIN_SEEDS : Self = Self { id : 292 , registry_key : "minecraft:pumpkin_seeds" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\n\x0Eminecraft:seed\x08\rplant_at_face\x02up\x08\x0Bcrop_result\x16minecraft:pumpkin_stem\x01\x1Aplant_at_any_solid_surface\0\t\x08plant_at\x08\x02\x12minecraft:farmland\0\0\0" } ;
pub const PUMPKIN_STEM: Self = Self {
id: 104,
registry_key: "minecraft:pumpkin_stem",
@ -77160,7 +77161,7 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const PURPLE_BUNDLE : Self = Self { id : 870 , registry_key : "minecraft:purple_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\ncomponents\n\x18minecraft:max_stack_size\x01\x05value\x01\0\n!minecraft:storage_weight_modifier\x03\x16weight_in_storage_item\x08\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\n\x1Eminecraft:storage_weight_limit\x03\x10max_weight_limit\x80\x01\0\n\x1Cminecraft:bundle_interaction\x03\x12num_viewable_slots\x18\0\n\x0Fitem_properties\x08\x10enchantable_slot\x04none\x01\x12hidden_in_commands\x02\n\x0Eminecraft:icon\n\x08textures\x08\x07default\rbundle_purple\x08\x11bundle_open_front\x18bundle_purple_open_front\x08\x10bundle_open_back\x17bundle_purple_open_back\0\0\x08\x0Ecreative_group\0\x01\x04foil\0\x03\x0Bframe_count\x02\x03\x0Cuse_duration\0\x03\x06damage\0\x01\x0Fstacked_by_data\0\x03\x11creative_category\x06\x05\x0Cmining_speed\0\0\x80?\x03\ruse_animation\0\x03\x11enchantable_value\0\x01\x0Eliquid_clipped\0\x01\x0Eshould_despawn\x01\x01\x17can_destroy_in_creative\x01\x03\x0Emax_stack_size\x02\x01\rhand_equipped\0\x01\x0Eallow_off_hand\0\0\0\0" } ;
pub const PURPLE_BUNDLE : Self = Self { id : 870 , registry_key : "minecraft:purple_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\ncomponents\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\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\x1Cminecraft:bundle_interaction\x03\x12num_viewable_slots\x18\0\n\x1Eminecraft:storage_weight_limit\x03\x10max_weight_limit\x80\x01\0\n\x0Fitem_properties\n\x0Eminecraft:icon\n\x08textures\x08\x10bundle_open_back\x17bundle_purple_open_back\x08\x11bundle_open_front\x18bundle_purple_open_front\x08\x07default\rbundle_purple\0\0\x01\x17can_destroy_in_creative\x01\x08\x0Ecreative_group\0\x03\x11enchantable_value\0\x03\x11creative_category\x06\x03\x0Emax_stack_size\x02\x01\x04foil\0\x01\x0Eliquid_clipped\0\x03\x0Bframe_count\x02\x01\x0Fstacked_by_data\0\x03\x0Cuse_duration\0\x01\x12hidden_in_commands\x02\x05\x0Cmining_speed\0\0\x80?\x08\x10enchantable_slot\x04none\x01\x0Eallow_off_hand\0\x01\x0Eshould_despawn\x01\x03\x06damage\0\x01\rhand_equipped\0\x03\ruse_animation\0\0\t\titem_tags\0\0\0\0" } ;
pub const PURPLE_CANDLE: Self = Self {
id: -423,
registry_key: "minecraft:purple_candle",
@ -77350,7 +77351,7 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const RABBIT : Self = Self { id : 288 , registry_key : "minecraft:rabbit" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\x03\x16minecraft:use_duration@\n\x0Eminecraft:food\x01\x0Ecan_always_eat\0\x08\rcooldown_type\0\x05\x13saturation_modifier\x9A\x99\x99>\x03\ron_use_action\x01\x08\x11using_converts_to\0\x03\tnutrition\x06\x03\rcooldown_time\0\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\0\0\0" } ;
pub const RABBIT : Self = Self { id : 288 , registry_key : "minecraft:rabbit" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\x03\x16minecraft:use_duration@\n\x0Eminecraft:food\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x03\ron_use_action\x01\x03\rcooldown_time\0\x05\x13saturation_modifier\x9A\x99\x99>\x08\rcooldown_type\0\x03\tnutrition\x06\x01\x0Ecan_always_eat\0\x08\x11using_converts_to\0\0\0\0" } ;
pub const RABBIT_FOOT: Self = Self {
id: 538,
registry_key: "minecraft:rabbit_foot",
@ -77372,7 +77373,7 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const RABBIT_STEW : Self = Self { id : 290 , registry_key : "minecraft:rabbit_stew" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\n\x0Eminecraft:food\x03\tnutrition\x14\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x01\x0Ecan_always_eat\0\x05\x13saturation_modifier\x9A\x99\x19?\x08\x11using_converts_to\x04bowl\x08\rcooldown_type\0\x03\rcooldown_time\0\x03\ron_use_action\x01\0\x03\x18minecraft:max_stack_size\x02\x03\x16minecraft:use_duration@\0\0" } ;
pub const RABBIT_STEW : Self = Self { id : 290 , registry_key : "minecraft:rabbit_stew" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\x03\x18minecraft:max_stack_size\x02\n\x0Eminecraft:food\x05\x13saturation_modifier\x9A\x99\x19?\x03\tnutrition\x14\x08\rcooldown_type\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\x01\x0Ecan_always_eat\0\x08\x11using_converts_to\x04bowl\0\x03\x16minecraft:use_duration@\0\0" } ;
pub const RAIL: Self = Self {
id: 66,
registry_key: "minecraft:rail",
@ -77450,7 +77451,7 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const RED_BUNDLE : Self = Self { id : 871 , registry_key : "minecraft:red_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\ncomponents\n\x0Fitem_properties\x03\x0Bframe_count\x02\x01\x17can_destroy_in_creative\x01\x01\x0Eliquid_clipped\0\x08\x0Ecreative_group\0\x01\x0Eshould_despawn\x01\x01\x04foil\0\x01\rhand_equipped\0\x05\x0Cmining_speed\0\0\x80?\n\x0Eminecraft:icon\n\x08textures\x08\x10bundle_open_back\x14bundle_red_open_back\x08\x11bundle_open_front\x15bundle_red_open_front\x08\x07default\nbundle_red\0\0\x08\x10enchantable_slot\x04none\x03\x11creative_category\x06\x03\x11enchantable_value\0\x03\x0Emax_stack_size\x02\x01\x12hidden_in_commands\x02\x01\x0Fstacked_by_data\0\x01\x0Eallow_off_hand\0\x03\x0Cuse_duration\0\x03\ruse_animation\0\x03\x06damage\0\0\n!minecraft:storage_weight_modifier\x03\x16weight_in_storage_item\x08\0\n\x18minecraft:max_stack_size\x01\x05value\x01\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\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\0\0" } ;
pub const RED_BUNDLE : Self = Self { id : 871 , registry_key : "minecraft:red_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\ncomponents\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\x01\x1Aallow_nested_storage_items\x01\t\rallowed_items\0\0\x03\tmax_slots\x80\x01\0\n\x0Fitem_properties\x01\x0Eshould_despawn\x01\x03\x06damage\0\x05\x0Cmining_speed\0\0\x80?\x01\x04foil\0\x03\ruse_animation\0\x01\x0Eallow_off_hand\0\x01\x0Fstacked_by_data\0\x01\rhand_equipped\0\x08\x10enchantable_slot\x04none\n\x0Eminecraft:icon\n\x08textures\x08\x10bundle_open_back\x14bundle_red_open_back\x08\x07default\nbundle_red\x08\x11bundle_open_front\x15bundle_red_open_front\0\0\x03\x11creative_category\x06\x08\x0Ecreative_group\0\x03\x0Bframe_count\x02\x01\x12hidden_in_commands\x02\x03\x0Cuse_duration\0\x01\x17can_destroy_in_creative\x01\x03\x0Emax_stack_size\x02\x01\x0Eliquid_clipped\0\x03\x11enchantable_value\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\x1Eminecraft:storage_weight_limit\x03\x10max_weight_limit\x80\x01\0\0\0" } ;
pub const RED_CANDLE: Self = Self {
id: -427,
registry_key: "minecraft:red_candle",
@ -77808,7 +77809,7 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const ROTTEN_FLESH : Self = Self { id : 277 , registry_key : "minecraft:rotten_flesh" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\x03\x16minecraft:use_duration@\n\x0Eminecraft:food\x05\x13saturation_modifier\xCD\xCC\xCC=\x08\rcooldown_type\0\x03\rcooldown_time\0\x03\tnutrition\x08\x08\x11using_converts_to\0\t\x07effects\n\x02\x05\x06chance\xCD\xCCL?\x03\x08duration<\x08\rdescriptionId\rpotion.hunger\x03\tamplifier\0\x03\x02id\"\x08\x04name\x06hunger\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\0\0\0" } ;
pub const ROTTEN_FLESH : Self = Self { id : 277 , registry_key : "minecraft:rotten_flesh" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\n\x0Eminecraft:food\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x03\rcooldown_time\0\x01\x0Ecan_always_eat\0\x08\rcooldown_type\0\x05\x13saturation_modifier\xCD\xCC\xCC=\t\x07effects\n\x02\x08\x04name\x06hunger\x03\x08duration<\x08\rdescriptionId\rpotion.hunger\x03\tamplifier\0\x03\x02id\"\x05\x06chance\xCD\xCCL?\0\x03\tnutrition\x08\x08\x11using_converts_to\0\x03\ron_use_action\x01\0\x03\x16minecraft:use_duration@\0\0" } ;
pub const SADDLE: Self = Self {
id: 374,
registry_key: "minecraft:saddle",
@ -77816,7 +77817,7 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const SALMON : Self = Self { id : 265 , registry_key : "minecraft:salmon" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\n\x0Eminecraft:food\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\x08\rcooldown_type\0\x03\rcooldown_time\0\x01\x0Ecan_always_eat\0\x03\tnutrition\x04\x05\x13saturation_modifier\xCD\xCC\xCC=\0\x01\x19minecraft:stacked_by_data\x01\x03\x16minecraft:use_duration@\0\0" } ;
pub const SALMON : Self = Self { id : 265 , registry_key : "minecraft:salmon" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\x01\x19minecraft:stacked_by_data\x01\n\x0Eminecraft:food\x03\ron_use_action\x01\x08\rcooldown_type\0\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x03\rcooldown_time\0\x08\x11using_converts_to\0\x05\x13saturation_modifier\xCD\xCC\xCC=\x03\tnutrition\x04\x01\x0Ecan_always_eat\0\0\x03\x16minecraft:use_duration@\0\0" } ;
pub const SALMON_BUCKET: Self = Self {
id: 368,
registry_key: "minecraft:salmon_bucket",
@ -78377,7 +78378,7 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const SPIDER_EYE : Self = Self { id : 278 , registry_key : "minecraft:spider_eye" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\n\x0Eminecraft:food\x08\x11using_converts_to\0\t\x07effects\n\x02\x08\rdescriptionId\rpotion.poison\x08\x04name\x06poison\x03\tamplifier\0\x03\x08duration\n\x03\x02id&\x05\x06chance\0\0\x80?\0\x03\rcooldown_time\0\x05\x13saturation_modifier\xCD\xCCL?\x03\ron_use_action\x01\x08\rcooldown_type\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\0" } ;
pub const SPIDER_EYE : Self = Self { id : 278 , registry_key : "minecraft:spider_eye" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\x03\x16minecraft:use_duration@\n\x0Eminecraft:food\x08\rcooldown_type\0\t\x07effects\n\x02\x05\x06chance\0\0\x80?\x03\x08duration\n\x08\x04name\x06poison\x03\x02id&\x08\rdescriptionId\rpotion.poison\x03\tamplifier\0\0\x05\x13saturation_modifier\xCD\xCCL?\x03\rcooldown_time\0\x03\tnutrition\x04\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\0" } ;
pub const SPIDER_SPAWN_EGG: Self = Self {
id: 450,
registry_key: "minecraft:spider_spawn_egg",
@ -78742,7 +78743,7 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const STONE_SPEAR : Self = Self { id : 855 , registry_key : "minecraft:stone_spear" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\ncomponents\n\x15minecraft:enchantable\x08\x04slot\x0Bmelee_spear\x01\x05value\x05\0\n\x14minecraft:durability\n\rdamage_chance\x03\x03max\xC8\x01\x03\x03min\0\0\x03\x0Emax_durability\x84\x02\0\n\x19minecraft:piercing_weapon\n\x05reach\x05\x03max\0\0\x90@\x05\x03min\0\0\0@\0\x05\rhitbox_margin\0\0\x80>\n\x0Ecreative_reach\x05\x03min\0\0\0@\x05\x03max\0\0\xF0@\0\0\t\titem_tags\x08\x04\x14minecraft:stone_tier\x12minecraft:is_spear\n\x18minecraft:kinetic_weapon\n\x18minecraft:kinetic_weapon\n\x0Ecreative_reach\x05\x03min\0\0\0@\x05\x03max\0\0\xF0@\0\n\x11damage_conditions\x02\x0Cmax_duration\x13\x01\x05\x12min_relative_speed33\x93@\x05\tmin_speed\0\0\0\0\0\x05\x0Fdamage_modifier\0\0\0\0\x05\x11damage_multiplier\x85\xEBQ?\x02\x05delay\x0E\0\n\x13dismount_conditions\x02\x0Cmax_durationZ\0\x05\x12min_relative_speed\0\0\0\0\x05\tmin_speed\0\0PA\0\x05\rhitbox_margin\0\0\x80>\n\x05reach\x05\x03max\0\0\x90@\x05\x03min\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\x10minecraft:damage\x02\x05value\x02\0\0\n\x17minecraft:use_modifiers\x05\x11movement_modifier\0\0\x80?\x08\x0Bstart_sound\x14item.stone_spear.use\x08\x0Bstart_using\x06always\x01\x0Femit_vibrations\0\x05\x0Cuse_duration\0\xA0\x8CG\0\n\x0Fitem_properties\x05\x0Cmining_speed\0\0\x80?\x08\x0Ecreative_group\0\x03\x06damage\x04\x01\x0Eallow_off_hand\0\x01\x12hidden_in_commands\x02\x08\x10enchantable_slot\x0Bmelee_spear\x03\x11creative_category\x06\x03\x0Bframe_count\x02\x03\x0Emax_stack_size\x02\n\x0Eminecraft:icon\n\x08textures\x08\x07default\x0Bstone_spear\0\0\x01\rhand_equipped\x01\x03\x0Cuse_duration\x80\xE4\xAF\x01\x03\ruse_animation\0\x03\x11enchantable_value\n\x01\x17can_destroy_in_creative\x01\x01\x04foil\0\x01\x0Eliquid_clipped\0\x01\x0Eshould_despawn\x01\x01\x0Fstacked_by_data\0\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\n\x12minecraft:cooldown\x08\x04type\x06attack\x05\x08duration\0\0@?\x08\x08category\x05spear\0\n\x14minecraft:repairable\t\x0Crepair_items\n\x04\x08\rrepair_amount)context.other->query.remaining_durability\t\x05items\n\x02\x08\x04name\x15minecraft:stone_spear\0\0\x08\rrepair_amount\x1Bquery.max_durability * 0.25\t\x05items\n\x02\x08\x04tags,q.all_tags('minecraft:stone_tool_materials')\0\0\0\n\x18minecraft:swing_duration\x05\x05value\0\0@?\0\n\x16minecraft:swing_sounds\x08\nattack_hit\x1Bitem.stone_spear.attack_hit\x08\x0Battack_miss\x1Citem.stone_spear.attack_miss\0\n\x0Eminecraft:tags\t\x04tags\x08\x04\x14minecraft:stone_tier\x12minecraft:is_spear\0\n\x17minecraft:hand_equipped\x01\x05value\x01\0\n\x16minecraft:display_name\x08\x05value\x15item.stone_spear.name\0\0\0" } ;
pub const STONE_SPEAR : Self = Self { id : 855 , registry_key : "minecraft:stone_spear" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\ncomponents\n\x16minecraft:swing_sounds\x08\nattack_hit\x1Bitem.stone_spear.attack_hit\x08\x0Battack_miss\x1Citem.stone_spear.attack_miss\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\n\x17minecraft:hand_equipped\x01\x05value\x01\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\x18minecraft:swing_duration\x05\x05value\0\0@?\0\n\x14minecraft:repairable\t\x0Crepair_items\n\x04\x08\rrepair_amount)context.other->query.remaining_durability\t\x05items\n\x02\x08\x04name\x15minecraft:stone_spear\0\0\t\x05items\n\x02\x08\x04tags,q.all_tags('minecraft:stone_tool_materials')\0\x08\rrepair_amount\x1Bquery.max_durability * 0.25\0\0\n\x10minecraft:damage\x02\x05value\x02\0\0\n\x17minecraft:use_modifiers\x08\x0Bstart_using\x06always\x05\x0Cuse_duration\0\xA0\x8CG\x01\x0Femit_vibrations\0\x08\x0Bstart_sound\x14item.stone_spear.use\x05\x11movement_modifier\0\0\x80?\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\t\titem_tags\x08\x04\x14minecraft:stone_tier\x12minecraft:is_spear\n\x12minecraft:cooldown\x08\x08category\x05spear\x05\x08duration\0\0@?\x08\x04type\x06attack\0\n\x18minecraft:kinetic_weapon\n\x18minecraft:kinetic_weapon\n\x14knockback_conditions\x05\x12min_relative_speed\0\0\0\0\x02\x0Cmax_duration\xB4\0\x05\tmin_speed33\xA3@\0\n\x05reach\x05\x03max\0\0\x90@\x05\x03min\0\0\0@\0\n\x13dismount_conditions\x05\tmin_speed\0\0PA\x02\x0Cmax_durationZ\0\x05\x12min_relative_speed\0\0\0\0\0\x05\x0Fdamage_modifier\0\0\0\0\n\x11damage_conditions\x05\x12min_relative_speed33\x93@\x05\tmin_speed\0\0\0\0\x02\x0Cmax_duration\x13\x01\0\x05\x11damage_multiplier\x85\xEBQ?\x02\x05delay\x0E\0\x05\rhitbox_margin\0\0\x80>\n\x0Ecreative_reach\x05\x03min\0\0\0@\x05\x03max\0\0\xF0@\0\0\0\n\x0Fitem_properties\x03\x0Emax_stack_size\x02\x03\x0Cuse_duration\x80\xE4\xAF\x01\x01\x0Eshould_despawn\x01\x01\x0Fstacked_by_data\0\x01\x0Eliquid_clipped\0\x01\rhand_equipped\x01\x01\x12hidden_in_commands\x02\x01\x04foil\0\x03\x11enchantable_value\n\x03\ruse_animation\0\x01\x0Eallow_off_hand\0\x03\x11creative_category\x06\x08\x10enchantable_slot\x0Bmelee_spear\x03\x06damage\x04\x05\x0Cmining_speed\0\0\x80?\x01\x17can_destroy_in_creative\x01\x08\x0Ecreative_group\0\n\x0Eminecraft:icon\n\x08textures\x08\x07default\x0Bstone_spear\0\0\x03\x0Bframe_count\x02\0\n\x16minecraft:display_name\x08\x05value\x15item.stone_spear.name\0\n\x14minecraft:durability\x03\x0Emax_durability\x84\x02\n\rdamage_chance\x03\x03max\xC8\x01\x03\x03min\0\0\0\0\0" } ;
pub const STONE_STAIRS: Self = Self {
id: 67,
registry_key: "minecraft:stone_stairs",
@ -79121,8 +79122,8 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const SUSPICIOUS_STEW : Self = Self { id : 602 , registry_key : "minecraft:suspicious_stew" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\x03\x16minecraft:use_duration@\n\x0Eminecraft:food\x08\rcooldown_type\0\x01\x0Ecan_always_eat\x01\x03\tnutrition\x0C\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x03\ron_use_action\x02\x03\rcooldown_time\0\x08\x11using_converts_to\x04bowl\x05\x13saturation_modifier\x9A\x99\x19?\0\x03\x18minecraft:max_stack_size\x02\0\0" } ;
pub const SWEET_BERRIES : Self = Self { id : 287 , registry_key : "minecraft:sweet_berries" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\x03\x16minecraft:use_duration@\n\x0Eminecraft:seed\x08\rplant_at_face\x02up\x08\x0Bcrop_result\x1Aminecraft:sweet_berry_bush\x01\x1Aplant_at_any_solid_surface\0\t\x08plant_at\x08\x14\x08farmland\x05grass\x04dirt\x0Bcoarse_dirt\x06podzol\nmoss_block\x08mycelium\x03mud\x14muddy_mangrove_roots\x0Fdirt_with_roots\0\n\x0Eminecraft:food\x08\x11using_converts_to\0\x03\tnutrition\x04\x05\x13saturation_modifier\x9A\x99\x99>\x01\x0Ecan_always_eat\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\x08\rcooldown_type\0\0\0\0" } ;
pub const SUSPICIOUS_STEW : Self = Self { id : 602 , registry_key : "minecraft:suspicious_stew" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\n\x0Eminecraft:food\t\x0Con_use_range\x05\x06\0\0\0A\0\0\0A\0\0\0A\x03\ron_use_action\x02\x03\tnutrition\x0C\x03\rcooldown_time\0\x05\x13saturation_modifier\x9A\x99\x19?\x08\rcooldown_type\0\x01\x0Ecan_always_eat\x01\x08\x11using_converts_to\x04bowl\0\x03\x18minecraft:max_stack_size\x02\x03\x16minecraft:use_duration@\0\0" } ;
pub const SWEET_BERRIES : Self = Self { id : 287 , registry_key : "minecraft:sweet_berries" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\n\x0Eminecraft:seed\x08\rplant_at_face\x02up\x01\x1Aplant_at_any_solid_surface\0\x08\x0Bcrop_result\x1Aminecraft:sweet_berry_bush\t\x08plant_at\x08\x14\x08farmland\x05grass\x04dirt\x0Bcoarse_dirt\x06podzol\nmoss_block\x08mycelium\x03mud\x14muddy_mangrove_roots\x0Fdirt_with_roots\0\n\x0Eminecraft:food\x03\ron_use_action\x01\x01\x0Ecan_always_eat\0\x08\rcooldown_type\0\x03\tnutrition\x04\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\rcooldown_time\0\0\x03\x16minecraft:use_duration@\0\0" } ;
pub const SWEET_BERRY_BUSH: Self = Self {
id: -207,
registry_key: "minecraft:sweet_berry_bush",
@ -79221,7 +79222,7 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const TORCHFLOWER_SEEDS : Self = Self { id : 296 , registry_key : "minecraft:torchflower_seeds" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\n\x0Eminecraft:seed\x08\x0Bcrop_result\x1Aminecraft:torchflower_crop\t\x08plant_at\x08\x02\x12minecraft:farmland\x01\x1Aplant_at_any_solid_surface\0\x08\rplant_at_face\x02up\0\0\0" } ;
pub const TORCHFLOWER_SEEDS : Self = Self { id : 296 , registry_key : "minecraft:torchflower_seeds" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\n\x0Eminecraft:seed\x08\x0Bcrop_result\x1Aminecraft:torchflower_crop\t\x08plant_at\x08\x02\x12minecraft:farmland\x08\rplant_at_face\x02up\x01\x1Aplant_at_any_solid_surface\0\0\0\0" } ;
pub const TOTEM_OF_UNDYING: Self = Self {
id: 578,
registry_key: "minecraft:totem_of_undying",
@ -79250,7 +79251,7 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const TRIAL_KEY : Self = Self { id : 876 , registry_key : "minecraft:trial_key" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\ncomponents\n\x0Fitem_properties\x03\x0Cuse_duration\0\x01\x0Eallow_off_hand\0\x03\x11enchantable_value\0\x01\x12hidden_in_commands\x02\x08\x10enchantable_slot\x04none\n\x0Eminecraft:icon\n\x08textures\x08\x07default\ttrial_key\0\0\x03\ruse_animation\0\x03\x06damage\0\x05\x0Cmining_speed\0\0\x80?\x01\x0Fstacked_by_data\0\x01\x17can_destroy_in_creative\x01\x01\x04foil\0\x08\x0Ecreative_group\0\x01\rhand_equipped\0\x03\x11creative_category\x08\x03\x0Bframe_count\x02\x01\x0Eliquid_clipped\0\x01\x0Eshould_despawn\x01\x03\x0Emax_stack_size\x80\x01\0\n\x16minecraft:display_name\x08\x05value\x13item.trial_key.name\0\t\titem_tags\0\0\0\0" } ;
pub const TRIAL_KEY : Self = Self { id : 876 , registry_key : "minecraft:trial_key" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\ncomponents\n\x0Fitem_properties\x01\x0Eshould_despawn\x01\x01\x12hidden_in_commands\x02\x03\x11creative_category\x08\x01\rhand_equipped\0\x03\x0Cuse_duration\0\n\x0Eminecraft:icon\n\x08textures\x08\x07default\ttrial_key\0\0\x01\x0Fstacked_by_data\0\x03\x0Bframe_count\x02\x08\x10enchantable_slot\x04none\x01\x17can_destroy_in_creative\x01\x03\x11enchantable_value\0\x01\x0Eallow_off_hand\0\x01\x0Eliquid_clipped\0\x05\x0Cmining_speed\0\0\x80?\x08\x0Ecreative_group\0\x03\x06damage\0\x03\ruse_animation\0\x03\x0Emax_stack_size\x80\x01\x01\x04foil\0\0\t\titem_tags\0\0\n\x16minecraft:display_name\x08\x05value\x13item.trial_key.name\0\0\0" } ;
pub const TRIAL_SPAWNER: Self = Self {
id: -315,
registry_key: "minecraft:trial_spawner",
@ -79279,7 +79280,7 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const TROPICAL_FISH : Self = Self { id : 266 , registry_key : "minecraft:tropical_fish" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\x01\x19minecraft:stacked_by_data\x01\n\x0Eminecraft:food\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\rcooldown_type\0\x08\x11using_converts_to\0\x01\x0Ecan_always_eat\0\x03\tnutrition\x02\x03\ron_use_action\x01\0\x03\x16minecraft:use_duration@\0\0" } ;
pub const TROPICAL_FISH : Self = Self { id : 266 , registry_key : "minecraft:tropical_fish" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\x01\x19minecraft:stacked_by_data\x01\n\x0Eminecraft:food\x03\rcooldown_time\0\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\x03\tnutrition\x02\x08\rcooldown_type\0\x05\x13saturation_modifier\xCD\xCC\xCC=\0\x03\x16minecraft:use_duration@\0\0" } ;
pub const TROPICAL_FISH_BUCKET: Self = Self {
id: 369,
registry_key: "minecraft:tropical_fish_bucket",
@ -80330,8 +80331,8 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const WHEAT_SEEDS : Self = Self { id : 291 , registry_key : "minecraft:wheat_seeds" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\n\x0Eminecraft:seed\x08\rplant_at_face\x02up\x01\x1Aplant_at_any_solid_surface\0\x08\x0Bcrop_result\x0Fminecraft:wheat\t\x08plant_at\x08\x02\x12minecraft:farmland\0\0\0" } ;
pub const WHITE_BUNDLE : Self = Self { id : 872 , registry_key : "minecraft:white_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\ncomponents\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\x03\tmax_slots\x80\x01\x01\x1Aallow_nested_storage_items\x01\t\rallowed_items\0\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\t\titem_tags\0\0\n\x1Cminecraft:bundle_interaction\x03\x12num_viewable_slots\x18\0\n\x0Fitem_properties\x01\x0Fstacked_by_data\0\x01\x0Eallow_off_hand\0\x01\x04foil\0\x05\x0Cmining_speed\0\0\x80?\x03\x0Bframe_count\x02\x03\x06damage\0\x03\x0Cuse_duration\0\x01\x12hidden_in_commands\x02\x01\x17can_destroy_in_creative\x01\x08\x0Ecreative_group\0\x01\x0Eliquid_clipped\0\x03\x11creative_category\x06\x01\rhand_equipped\0\n\x0Eminecraft:icon\n\x08textures\x08\x10bundle_open_back\x16bundle_white_open_back\x08\x11bundle_open_front\x17bundle_white_open_front\x08\x07default\x0Cbundle_white\0\0\x03\ruse_animation\0\x03\x11enchantable_value\0\x01\x0Eshould_despawn\x01\x08\x10enchantable_slot\x04none\x03\x0Emax_stack_size\x02\0\0\0" } ;
pub const WHEAT_SEEDS : Self = Self { id : 291 , registry_key : "minecraft:wheat_seeds" , version : BedrockItemVersion :: Legacy , component_based : false , definition_components : b"\n\0\n\ncomponents\n\x0Eminecraft:seed\x08\x0Bcrop_result\x0Fminecraft:wheat\x08\rplant_at_face\x02up\x01\x1Aplant_at_any_solid_surface\0\t\x08plant_at\x08\x02\x12minecraft:farmland\0\0\0" } ;
pub const WHITE_BUNDLE : Self = Self { id : 872 , registry_key : "minecraft:white_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\ncomponents\t\titem_tags\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\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\n\x18minecraft:max_stack_size\x01\x05value\x01\0\n!minecraft:storage_weight_modifier\x03\x16weight_in_storage_item\x08\0\n\x0Fitem_properties\x08\x0Ecreative_group\0\x01\rhand_equipped\0\x01\x0Eliquid_clipped\0\n\x0Eminecraft:icon\n\x08textures\x08\x07default\x0Cbundle_white\x08\x10bundle_open_back\x16bundle_white_open_back\x08\x11bundle_open_front\x17bundle_white_open_front\0\0\x03\x11creative_category\x06\x03\ruse_animation\0\x01\x0Eallow_off_hand\0\x03\x11enchantable_value\0\x05\x0Cmining_speed\0\0\x80?\x01\x12hidden_in_commands\x02\x01\x0Eshould_despawn\x01\x01\x17can_destroy_in_creative\x01\x01\x04foil\0\x03\x0Emax_stack_size\x02\x03\x06damage\0\x08\x10enchantable_slot\x04none\x03\x0Bframe_count\x02\x01\x0Fstacked_by_data\0\x03\x0Cuse_duration\0\0\0\0" } ;
pub const WHITE_CANDLE: Self = Self {
id: -413,
registry_key: "minecraft:white_candle",
@ -80451,7 +80452,7 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const WIND_CHARGE : Self = Self { id : 877 , registry_key : "minecraft:wind_charge" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\ncomponents\n\x13minecraft:throwable\x05\x11max_draw_duration\0\0\0\0\x01\x12do_swing_animation\x01\x05\x10max_launch_power\0\0\xC0?\x05\x11min_draw_duration\0\0\0\0\x01\x1Cscale_power_by_draw_duration\0\x05\x12launch_power_scale\0\0\xC0?\0\n\x16minecraft:display_name\x08\x05value\x15item.wind_charge.name\0\n\x0Fitem_properties\x03\x0Emax_stack_size\x80\x01\x01\x0Eallow_off_hand\0\x01\x0Fstacked_by_data\0\x01\x04foil\0\x01\rhand_equipped\0\x03\ruse_animation\0\x03\x0Cuse_duration\0\x01\x0Eshould_despawn\x01\x03\x11creative_category\x06\x08\x10enchantable_slot\x04none\x05\x0Cmining_speed\0\0\x80?\x08\x0Ecreative_group\0\x03\x0Bframe_count\x02\x03\x11enchantable_value\0\x01\x12hidden_in_commands\x02\x01\x0Eliquid_clipped\0\x03\x06damage\0\x01\x17can_destroy_in_creative\x01\n\x0Eminecraft:icon\n\x08textures\x08\x07default\x0Bwind_charge\0\0\0\n\x14minecraft:projectile\x05\x16minimum_critical_power\0\0\0\0\x08\x11projectile_entity\"minecraft:wind_charge_projectile<>\0\n\x12minecraft:cooldown\x08\x08category\x0Bwind_charge\x05\x08duration\0\0\0?\x08\x04type\x03use\0\t\titem_tags\0\0\0\0" } ;
pub const WIND_CHARGE : Self = Self { id : 877 , registry_key : "minecraft:wind_charge" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\ncomponents\n\x16minecraft:display_name\x08\x05value\x15item.wind_charge.name\0\n\x12minecraft:cooldown\x05\x08duration\0\0\0?\x08\x08category\x0Bwind_charge\x08\x04type\x03use\0\n\x0Fitem_properties\x08\x10enchantable_slot\x04none\x03\ruse_animation\0\n\x0Eminecraft:icon\n\x08textures\x08\x07default\x0Bwind_charge\0\0\x03\x06damage\0\x03\x0Bframe_count\x02\x01\x0Eallow_off_hand\0\x01\x17can_destroy_in_creative\x01\x03\x11creative_category\x06\x01\x12hidden_in_commands\x02\x01\rhand_equipped\0\x05\x0Cmining_speed\0\0\x80?\x08\x0Ecreative_group\0\x01\x0Eshould_despawn\x01\x01\x0Fstacked_by_data\0\x03\x0Cuse_duration\0\x03\x11enchantable_value\0\x01\x04foil\0\x03\x0Emax_stack_size\x80\x01\x01\x0Eliquid_clipped\0\0\n\x14minecraft:projectile\x08\x11projectile_entity\"minecraft:wind_charge_projectile<>\x05\x16minimum_critical_power\0\0\0\0\0\n\x13minecraft:throwable\x05\x12launch_power_scale\0\0\xC0?\x05\x10max_launch_power\0\0\xC0?\x05\x11min_draw_duration\0\0\0\0\x01\x1Cscale_power_by_draw_duration\0\x05\x11max_draw_duration\0\0\0\0\x01\x12do_swing_animation\x01\0\t\titem_tags\0\0\0\0" } ;
pub const WITCH_SPAWN_EGG: Self = Self {
id: 456,
registry_key: "minecraft:witch_spawn_egg",
@ -80564,7 +80565,7 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const WOODEN_SPEAR : Self = Self { id : 856 , registry_key : "minecraft:wooden_spear" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\ncomponents\n\x16minecraft:swing_sounds\x08\nattack_hit\x1Citem.wooden_spear.attack_hit\x08\x0Battack_miss\x1Ditem.wooden_spear.attack_miss\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\n\x0Fitem_properties\x01\x04foil\0\x03\x11creative_category\x06\x03\x0Bframe_count\x02\x01\x0Eshould_despawn\x01\x03\x06damage\x02\x08\x10enchantable_slot\x0Bmelee_spear\x01\rhand_equipped\x01\x03\x11enchantable_value\x1E\x01\x0Eliquid_clipped\0\x01\x12hidden_in_commands\x02\x03\x0Emax_stack_size\x02\n\x0Eminecraft:icon\n\x08textures\x08\x07default\nwood_spear\0\0\x01\x17can_destroy_in_creative\x01\x08\x0Ecreative_group\0\x01\x0Fstacked_by_data\0\x03\x0Cuse_duration\x80\xE4\xAF\x01\x05\x0Cmining_speed\0\0\x80?\x01\x0Eallow_off_hand\0\x03\ruse_animation\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\x16item.wooden_spear.name\0\t\titem_tags\x08\x04\x15minecraft:wooden_tier\x12minecraft:is_spear\n\x0Eminecraft:tags\t\x04tags\x08\x04\x15minecraft:wooden_tier\x12minecraft:is_spear\0\n\x14minecraft:repairable\t\x0Crepair_items\n\x04\t\x05items\n\x02\x08\x04name\x16minecraft:wooden_spear\0\x08\rrepair_amount)context.other->query.remaining_durability\0\x08\rrepair_amount\x1Bquery.max_durability * 0.25\t\x05items\n\x02\x08\x04tags\x1Eq.all_tags('minecraft:planks')\0\0\0\n\x12minecraft:cooldown\x05\x08durationff&?\x08\x04type\x06attack\x08\x08category\x05spear\0\n\x14minecraft:durability\n\rdamage_chance\x03\x03min\0\x03\x03max\xC8\x01\0\x03\x0Emax_durabilityx\0\n\x17minecraft:hand_equipped\x01\x05value\x01\0\n\x15minecraft:enchantable\x08\x04slot\x0Bmelee_spear\x01\x05value\x0F\0\n\x18minecraft:kinetic_weapon\n\x18minecraft:kinetic_weapon\n\x14knockback_conditions\x02\x0Cmax_duration\xC8\0\x05\x12min_relative_speed\0\0\0\0\x05\tmin_speed33\xA3@\0\x05\rhitbox_margin\0\0\x80>\n\x05reach\x05\x03max\0\0\x90@\x05\x03min\0\0\0@\0\x05\x11damage_multiplier333?\n\x13dismount_conditions\x02\x0Cmax_durationd\0\x05\x12min_relative_speed\0\0\0\0\x05\tmin_speed\0\0`A\0\n\x0Ecreative_reach\x05\x03max\0\0\xF0@\x05\x03min\0\0\0@\0\x02\x05delay\x0F\0\n\x11damage_conditions\x05\x12min_relative_speed33\x93@\x02\x0Cmax_duration,\x01\x05\tmin_speed\0\0\0\0\0\x05\x0Fdamage_modifier\0\0\0\0\0\0\n\x17minecraft:use_modifiers\x08\x0Bstart_sound\x15item.wooden_spear.use\x05\x0Cuse_duration\0\xA0\x8CG\x01\x0Femit_vibrations\0\x05\x11movement_modifier\0\0\x80?\x08\x0Bstart_using\x06always\0\n\x10minecraft:damage\x02\x05value\x01\0\0\n\x18minecraft:swing_duration\x05\x05valueff&?\0\n\x0Eminecraft:fuel\x05\x08duration\0\0 A\0\0\0" } ;
pub const WOODEN_SPEAR : Self = Self { id : 856 , registry_key : "minecraft:wooden_spear" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\ncomponents\n\x16minecraft:display_name\x08\x05value\x16item.wooden_spear.name\0\n\x17minecraft:use_modifiers\x05\x0Cuse_duration\0\xA0\x8CG\x08\x0Bstart_sound\x15item.wooden_spear.use\x01\x0Femit_vibrations\0\x08\x0Bstart_using\x06always\x05\x11movement_modifier\0\0\x80?\0\n\x17minecraft:hand_equipped\x01\x05value\x01\0\n\x14minecraft:durability\x03\x0Emax_durabilityx\n\rdamage_chance\x03\x03min\0\x03\x03max\xC8\x01\0\0\n\x16minecraft:swing_sounds\x08\nattack_hit\x1Citem.wooden_spear.attack_hit\x08\x0Battack_miss\x1Ditem.wooden_spear.attack_miss\0\n\x0Eminecraft:tags\t\x04tags\x08\x04\x15minecraft:wooden_tier\x12minecraft:is_spear\0\n\x15minecraft:enchantable\x01\x05value\x0F\x08\x04slot\x0Bmelee_spear\0\n\x18minecraft:swing_duration\x05\x05valueff&?\0\t\titem_tags\x08\x04\x15minecraft:wooden_tier\x12minecraft:is_spear\n\x12minecraft:cooldown\x08\x04type\x06attack\x08\x08category\x05spear\x05\x08durationff&?\0\n\x10minecraft:damage\x02\x05value\x01\0\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\x0Eminecraft:fuel\x05\x08duration\0\0 A\0\n\x18minecraft:max_stack_size\x01\x05value\x01\0\n\x0Fitem_properties\x01\x0Eallow_off_hand\0\x05\x0Cmining_speed\0\0\x80?\n\x0Eminecraft:icon\n\x08textures\x08\x07default\nwood_spear\0\0\x03\ruse_animation\0\x08\x10enchantable_slot\x0Bmelee_spear\x08\x0Ecreative_group\0\x03\x11creative_category\x06\x03\x0Bframe_count\x02\x01\x0Fstacked_by_data\0\x03\x06damage\x02\x01\x0Eshould_despawn\x01\x01\x0Eliquid_clipped\0\x01\x17can_destroy_in_creative\x01\x03\x0Emax_stack_size\x02\x03\x0Cuse_duration\x80\xE4\xAF\x01\x03\x11enchantable_value\x1E\x01\x12hidden_in_commands\x02\x01\rhand_equipped\x01\x01\x04foil\0\0\n\x18minecraft:kinetic_weapon\n\x18minecraft:kinetic_weapon\n\x05reach\x05\x03min\0\0\0@\x05\x03max\0\0\x90@\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,\x01\0\x05\x0Fdamage_modifier\0\0\0\0\x05\x11damage_multiplier333?\n\x14knockback_conditions\x05\x12min_relative_speed\0\0\0\0\x05\tmin_speed33\xA3@\x02\x0Cmax_duration\xC8\0\0\x02\x05delay\x0F\0\n\x13dismount_conditions\x05\tmin_speed\0\0`A\x02\x0Cmax_durationd\0\x05\x12min_relative_speed\0\0\0\0\0\n\x0Ecreative_reach\x05\x03max\0\0\xF0@\x05\x03min\0\0\0@\0\0\0\n\x14minecraft:repairable\t\x0Crepair_items\n\x04\x08\rrepair_amount)context.other->query.remaining_durability\t\x05items\n\x02\x08\x04name\x16minecraft:wooden_spear\0\0\x08\rrepair_amount\x1Bquery.max_durability * 0.25\t\x05items\n\x02\x08\x04tags\x1Eq.all_tags('minecraft:planks')\0\0\0\0\0" } ;
pub const WOODEN_SWORD: Self = Self {
id: 310,
registry_key: "minecraft:wooden_sword",
@ -80593,7 +80594,7 @@ impl BedrockItem {
component_based: false,
definition_components: b"\n\0\0",
};
pub const YELLOW_BUNDLE : Self = Self { id : 873 , registry_key : "minecraft:yellow_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\ncomponents\n\x0Fitem_properties\x03\x11creative_category\x06\x03\x06damage\0\x01\x0Eallow_off_hand\0\x08\x0Ecreative_group\0\x08\x10enchantable_slot\x04none\x05\x0Cmining_speed\0\0\x80?\x01\x0Eliquid_clipped\0\x03\x0Emax_stack_size\x02\x01\x04foil\0\x01\x17can_destroy_in_creative\x01\n\x0Eminecraft:icon\n\x08textures\x08\x11bundle_open_front\x18bundle_yellow_open_front\x08\x10bundle_open_back\x17bundle_yellow_open_back\x08\x07default\rbundle_yellow\0\0\x03\x0Bframe_count\x02\x01\x0Eshould_despawn\x01\x01\rhand_equipped\0\x03\x0Cuse_duration\0\x03\ruse_animation\0\x03\x11enchantable_value\0\x01\x0Fstacked_by_data\0\x01\x12hidden_in_commands\x02\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\x1Eminecraft:storage_weight_limit\x03\x10max_weight_limit\x80\x01\0\t\titem_tags\0\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\x01\x1Aallow_nested_storage_items\x01\t\rallowed_items\0\0\0\0\0" } ;
pub const YELLOW_BUNDLE : Self = Self { id : 873 , registry_key : "minecraft:yellow_bundle" , version : BedrockItemVersion :: DataDriven , component_based : true , definition_components : b"\n\0\n\ncomponents\n\x1Cminecraft:bundle_interaction\x03\x12num_viewable_slots\x18\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\x0Fitem_properties\x03\x06damage\0\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\x08\x0Ecreative_group\0\x08\x10enchantable_slot\x04none\x01\x12hidden_in_commands\x02\x01\x0Eshould_despawn\x01\x01\x04foil\0\x03\ruse_animation\0\x01\rhand_equipped\0\x03\x11creative_category\x06\x01\x0Eallow_off_hand\0\x01\x0Eliquid_clipped\0\x03\x0Emax_stack_size\x02\x03\x0Cuse_duration\0\x01\x0Fstacked_by_data\0\x01\x17can_destroy_in_creative\x01\x05\x0Cmining_speed\0\0\x80?\x03\x11enchantable_value\0\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\0\0" } ;
pub const YELLOW_CANDLE: Self = Self {
id: -417,
registry_key: "minecraft:yellow_candle",

File diff suppressed because it is too large Load Diff

View File

@ -121,7 +121,7 @@ pub mod overworld_noise_evaluator {
pos: &pumpkin_util::math::vector3::Vector3<i32>,
ctx: &mut C,
) -> f64 {
-overworld_node_5(pos, ctx)
overworld_node_5(pos, ctx) * -1f64
}
#[inline(always)]
pub fn overworld_node_7<C: NoiseEvaluationContext>(
@ -1299,7 +1299,7 @@ pub mod overworld_noise_evaluator {
pos: &pumpkin_util::math::vector3::Vector3<i32>,
ctx: &mut C,
) -> f64 {
-overworld_node_142(pos, ctx)
overworld_node_142(pos, ctx) * -1f64
}
#[inline(always)]
pub fn overworld_node_144<C: NoiseEvaluationContext>(
@ -1377,7 +1377,7 @@ pub mod overworld_noise_evaluator {
ctx: &mut C,
) -> f64 {
let val = overworld_node_151(pos, ctx);
if (-1000000f64..0.03f64).contains(&val) {
if val >= -1000000f64 && val < 0.03f64 {
overworld_node_152(pos, ctx)
} else {
overworld_node_151(pos, ctx)
@ -1396,7 +1396,7 @@ pub mod overworld_noise_evaluator {
ctx: &mut C,
) -> f64 {
let val = overworld_node_54(pos, ctx);
if (-1000000f64..1.5625f64).contains(&val) {
if val >= -1000000f64 && val < 1.5625f64 {
overworld_node_97(pos, ctx)
} else {
overworld_node_154(pos, ctx)
@ -1516,7 +1516,7 @@ pub mod overworld_noise_evaluator {
ctx: &mut C,
) -> f64 {
let val = overworld_node_166(pos, ctx);
if (-60f64..321f64).contains(&val) {
if val >= -60f64 && val < 321f64 {
overworld_node_167(pos, ctx)
} else {
overworld_node_168(pos, ctx)
@ -1574,7 +1574,7 @@ pub mod overworld_noise_evaluator {
ctx: &mut C,
) -> f64 {
let val = overworld_node_166(pos, ctx);
if (-60f64..321f64).contains(&val) {
if val >= -60f64 && val < 321f64 {
overworld_node_174(pos, ctx)
} else {
overworld_node_12(pos, ctx)
@ -1610,7 +1610,7 @@ pub mod overworld_noise_evaluator {
ctx: &mut C,
) -> f64 {
let val = overworld_node_166(pos, ctx);
if (-60f64..321f64).contains(&val) {
if val >= -60f64 && val < 321f64 {
overworld_node_177(pos, ctx)
} else {
overworld_node_12(pos, ctx)
@ -1653,7 +1653,7 @@ pub mod overworld_noise_evaluator {
ctx: &mut C,
) -> f64 {
let val = overworld_node_166(pos, ctx);
if (-60f64..321f64).contains(&val) {
if val >= -60f64 && val < 321f64 {
overworld_node_181(pos, ctx)
} else {
overworld_node_12(pos, ctx)
@ -1705,7 +1705,7 @@ pub mod overworld_noise_evaluator {
ctx: &mut C,
) -> f64 {
let val = overworld_node_170(pos, ctx);
if (-1000000f64..0f64).contains(&val) {
if val >= -1000000f64 && val < 0f64 {
overworld_node_171(pos, ctx)
} else {
overworld_node_187(pos, ctx)
@ -1805,7 +1805,7 @@ pub mod overworld_noise_evaluator {
ctx: &mut C,
) -> f64 {
let val = overworld_node_166(pos, ctx);
if (-60f64..51f64).contains(&val) {
if val >= -60f64 && val < 51f64 {
overworld_node_197(pos, ctx)
} else {
overworld_node_12(pos, ctx)
@ -1841,7 +1841,7 @@ pub mod overworld_noise_evaluator {
ctx: &mut C,
) -> f64 {
let val = overworld_node_166(pos, ctx);
if (-60f64..51f64).contains(&val) {
if val >= -60f64 && val < 51f64 {
overworld_node_200(pos, ctx)
} else {
overworld_node_12(pos, ctx)
@ -1884,7 +1884,7 @@ pub mod overworld_noise_evaluator {
ctx: &mut C,
) -> f64 {
let val = overworld_node_166(pos, ctx);
if (-60f64..51f64).contains(&val) {
if val >= -60f64 && val < 51f64 {
overworld_node_204(pos, ctx)
} else {
overworld_node_12(pos, ctx)

View File

@ -2,7 +2,7 @@
use pumpkin_util::version::JavaMinecraftVersion;
pub const CURRENT_MC_VERSION: JavaMinecraftVersion =
pumpkin_util::version::JavaMinecraftVersion::V_26_2;
pub const LOWEST_SUPPORTED_MC_VERSION: JavaMinecraftVersion = JavaMinecraftVersion::V_1_20_5;
pub const LOWEST_SUPPORTED_MC_VERSION: JavaMinecraftVersion = JavaMinecraftVersion::V_1_7_2;
#[derive(Clone, Copy, Debug)]
pub struct PacketId {
pub v1_20_5: i32,

View File

@ -1,9 +1,161 @@
/* This file is generated. Do not edit manually. */
use pumpkin_util::version::JavaMinecraftVersion;
const PARTICLE_ID_REMAP_V_26_2_TO_V_1_7_6: &[u16] = &[
1, 3, 2, 4, 47, 5, 5, 5, 1, 1, 1, 5, 23, 6, 7, 8, 9, 9, 9, 10, 10, 11, 11, 12, 13, 14, 15, 16,
17, 18, 19, 19, 32, 18, 18, 14, 20, 21, 22, 23, 32, 9, 9, 24, 37, 0, 45, 23, 37, 19, 24, 24,
25, 26, 27, 0, 17, 24, 24, 28, 5, 29, 30, 31, 32, 33, 34, 35, 36, 37, 37, 38, 38, 39, 40, 41,
42, 43, 44, 45, 46, 47, 48, 49, 5, 5, 9, 9, 9, 10, 10, 32, 32, 32, 32, 9, 9, 9, 35, 32, 23, 5,
9, 9, 10, 10, 39, 24, 24, 24, 24, 24, 0, 24, 32, 23, 23, 15, 20, 24, 37, 37, 3, 32, 28,
];
const PARTICLE_ID_REMAP_V_26_2_TO_V_1_8: &[u16] = &[
1, 3, 2, 4, 47, 5, 5, 5, 1, 1, 1, 5, 23, 6, 7, 8, 9, 9, 9, 10, 10, 11, 11, 12, 13, 14, 15, 16,
17, 18, 19, 19, 32, 18, 18, 14, 20, 21, 22, 23, 32, 9, 9, 24, 37, 0, 45, 23, 37, 19, 24, 24,
25, 26, 27, 0, 17, 24, 24, 28, 5, 29, 30, 31, 32, 33, 34, 35, 36, 37, 37, 38, 38, 39, 40, 41,
42, 43, 44, 45, 46, 47, 48, 49, 5, 5, 9, 9, 9, 10, 10, 32, 32, 32, 32, 9, 9, 9, 35, 32, 23, 5,
9, 9, 10, 10, 39, 24, 24, 24, 24, 24, 0, 24, 32, 23, 23, 15, 20, 24, 37, 37, 3, 32, 28,
];
const PARTICLE_ID_REMAP_V_26_2_TO_V_1_9: &[u16] = &[
1, 3, 2, 4, 47, 5, 5, 5, 1, 1, 1, 5, 23, 6, 7, 8, 9, 9, 9, 10, 10, 11, 11, 12, 13, 14, 15, 16,
17, 18, 19, 19, 32, 18, 18, 14, 20, 21, 22, 23, 32, 9, 9, 24, 37, 0, 45, 23, 37, 19, 24, 24,
25, 26, 27, 0, 17, 24, 24, 28, 5, 29, 30, 31, 32, 33, 34, 35, 36, 37, 37, 38, 38, 39, 40, 41,
42, 43, 44, 45, 46, 47, 48, 49, 5, 5, 9, 9, 9, 10, 10, 32, 32, 32, 32, 9, 9, 9, 35, 32, 23, 5,
9, 9, 10, 10, 39, 24, 24, 24, 24, 24, 0, 24, 32, 23, 23, 15, 20, 24, 37, 37, 3, 32, 28,
];
const PARTICLE_ID_REMAP_V_26_2_TO_V_1_10: &[u16] = &[
1, 3, 2, 4, 47, 5, 5, 5, 1, 1, 1, 5, 23, 6, 7, 8, 9, 9, 9, 10, 10, 11, 11, 12, 13, 14, 15, 16,
17, 18, 19, 19, 32, 18, 18, 14, 20, 21, 22, 23, 32, 9, 9, 24, 37, 0, 45, 23, 37, 19, 24, 24,
25, 26, 27, 0, 17, 24, 24, 28, 5, 29, 30, 31, 32, 33, 34, 35, 36, 37, 37, 38, 38, 39, 40, 41,
42, 43, 44, 45, 46, 47, 48, 49, 5, 5, 9, 9, 9, 10, 10, 32, 32, 32, 32, 9, 9, 9, 35, 32, 23, 5,
9, 9, 10, 10, 39, 24, 24, 24, 24, 24, 0, 24, 32, 23, 23, 15, 20, 24, 37, 37, 3, 32, 28,
];
const PARTICLE_ID_REMAP_V_26_2_TO_V_1_11: &[u16] = &[
1, 3, 2, 4, 47, 5, 5, 5, 1, 1, 1, 5, 23, 6, 7, 8, 9, 9, 9, 10, 10, 11, 11, 12, 13, 14, 15, 16,
17, 18, 19, 19, 32, 18, 18, 14, 20, 21, 22, 23, 32, 9, 9, 24, 37, 0, 45, 23, 37, 19, 24, 24,
25, 26, 27, 0, 17, 24, 24, 28, 5, 29, 30, 31, 32, 33, 34, 35, 36, 37, 37, 38, 38, 39, 40, 41,
42, 43, 44, 45, 46, 47, 48, 49, 5, 5, 9, 9, 9, 10, 10, 32, 32, 32, 32, 9, 9, 9, 35, 32, 23, 5,
9, 9, 10, 10, 39, 24, 24, 24, 24, 24, 0, 24, 32, 23, 23, 15, 20, 24, 37, 37, 3, 32, 28,
];
const PARTICLE_ID_REMAP_V_26_2_TO_V_1_12: &[u16] = &[
1, 3, 2, 4, 47, 5, 5, 5, 1, 1, 1, 5, 23, 6, 7, 8, 9, 9, 9, 10, 10, 11, 11, 12, 13, 14, 15, 16,
17, 18, 19, 19, 32, 18, 18, 14, 20, 21, 22, 23, 32, 9, 9, 24, 37, 0, 45, 23, 37, 19, 24, 24,
25, 26, 27, 0, 17, 24, 24, 28, 5, 29, 30, 31, 32, 33, 34, 35, 36, 37, 37, 38, 38, 39, 40, 41,
42, 43, 44, 45, 46, 47, 48, 49, 5, 5, 9, 9, 9, 10, 10, 32, 32, 32, 32, 9, 9, 9, 35, 32, 23, 5,
9, 9, 10, 10, 39, 24, 24, 24, 24, 24, 0, 24, 32, 23, 23, 15, 20, 24, 37, 37, 3, 32, 28,
];
const PARTICLE_ID_REMAP_V_26_2_TO_V_1_13: &[u16] = &[
1, 3, 2, 4, 47, 5, 5, 5, 1, 1, 1, 5, 23, 6, 7, 8, 9, 9, 9, 10, 10, 11, 11, 12, 13, 14, 15, 16,
17, 18, 19, 19, 32, 18, 18, 14, 20, 21, 22, 23, 32, 9, 9, 24, 37, 0, 45, 23, 37, 19, 24, 24,
25, 26, 27, 0, 17, 24, 24, 28, 5, 29, 30, 31, 32, 33, 34, 35, 36, 37, 37, 38, 38, 39, 40, 41,
42, 43, 44, 45, 46, 47, 48, 49, 5, 5, 9, 9, 9, 10, 10, 32, 32, 32, 32, 9, 9, 9, 35, 32, 23, 5,
9, 9, 10, 10, 39, 24, 24, 24, 24, 24, 0, 24, 32, 23, 23, 15, 20, 24, 37, 37, 3, 32, 28,
];
const PARTICLE_ID_REMAP_V_26_2_TO_V_1_13_2: &[u16] = &[
1, 3, 2, 4, 47, 5, 5, 5, 1, 1, 1, 5, 23, 6, 7, 8, 9, 9, 9, 10, 10, 11, 11, 12, 13, 14, 15, 16,
17, 18, 19, 19, 32, 18, 18, 14, 20, 21, 22, 23, 32, 9, 9, 24, 37, 0, 45, 23, 37, 19, 24, 24,
25, 26, 27, 0, 17, 24, 24, 28, 5, 29, 30, 31, 32, 33, 34, 35, 36, 37, 37, 38, 38, 39, 40, 41,
42, 43, 44, 45, 46, 47, 48, 49, 5, 5, 9, 9, 9, 10, 10, 32, 32, 32, 32, 9, 9, 9, 35, 32, 23, 5,
9, 9, 10, 10, 39, 24, 24, 24, 24, 24, 0, 24, 32, 23, 23, 15, 20, 24, 37, 37, 3, 32, 28,
];
const PARTICLE_ID_REMAP_V_26_2_TO_V_1_14: &[u16] = &[
1, 3, 2, 4, 53, 56, 5, 5, 1, 1, 1, 5, 26, 6, 7, 8, 9, 10, 11, 12, 13, 14, 14, 15, 16, 17, 18,
19, 20, 21, 22, 22, 37, 21, 21, 17, 23, 24, 25, 26, 37, 10, 10, 29, 42, 0, 51, 26, 42, 27, 28,
29, 30, 31, 32, 0, 20, 28, 28, 33, 5, 34, 35, 36, 37, 38, 39, 40, 41, 42, 42, 43, 44, 45, 46,
47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 9, 10, 11, 13, 13, 37, 37, 37, 37, 9, 10, 11, 40,
37, 26, 5, 9, 10, 12, 13, 45, 28, 28, 28, 28, 28, 0, 28, 37, 26, 26, 18, 23, 28, 42, 42, 3, 37,
33,
];
const PARTICLE_ID_REMAP_V_26_2_TO_V_1_15: &[u16] = &[
1, 3, 2, 4, 53, 56, 5, 5, 1, 1, 1, 5, 26, 6, 7, 8, 9, 10, 11, 12, 13, 14, 14, 15, 16, 17, 18,
19, 20, 21, 22, 22, 37, 21, 21, 17, 23, 24, 25, 26, 37, 59, 59, 29, 42, 0, 51, 26, 42, 27, 28,
29, 30, 31, 32, 0, 20, 28, 28, 33, 5, 34, 35, 36, 37, 38, 39, 40, 41, 42, 42, 43, 44, 45, 46,
47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 13, 37, 37, 37, 37, 9, 10, 11, 40,
37, 26, 5, 9, 10, 12, 13, 45, 28, 28, 28, 28, 28, 0, 28, 37, 26, 26, 18, 23, 28, 42, 42, 3, 37,
33,
];
const PARTICLE_ID_REMAP_V_26_2_TO_V_1_16: &[u16] = &[
1, 3, 2, 4, 55, 58, 5, 5, 1, 1, 1, 5, 27, 6, 7, 8, 9, 10, 11, 12, 13, 14, 14, 15, 16, 17, 18,
19, 20, 21, 22, 22, 64, 21, 21, 17, 23, 24, 25, 26, 39, 61, 61, 31, 28, 0, 53, 27, 28, 29, 30,
31, 32, 33, 34, 0, 20, 30, 30, 35, 5, 36, 37, 38, 39, 40, 41, 42, 43, 44, 44, 45, 46, 47, 48,
49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 13, 64, 65, 66, 39, 67, 68, 69, 70,
71, 26, 5, 9, 10, 12, 13, 47, 30, 30, 30, 30, 30, 0, 30, 64, 26, 27, 18, 23, 30, 28, 28, 3, 64,
35,
];
const PARTICLE_ID_REMAP_V_26_2_TO_V_1_16_2: &[u16] = &[
1, 3, 2, 4, 55, 58, 5, 5, 1, 1, 1, 5, 27, 6, 7, 8, 9, 10, 11, 12, 13, 14, 14, 15, 16, 17, 18,
19, 20, 21, 22, 22, 64, 21, 21, 17, 23, 24, 25, 26, 39, 61, 61, 31, 28, 0, 53, 27, 28, 29, 30,
31, 32, 33, 34, 0, 20, 30, 30, 35, 5, 36, 37, 38, 39, 40, 41, 42, 43, 44, 44, 45, 46, 47, 48,
49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 13, 64, 65, 66, 39, 67, 68, 69, 70,
71, 26, 5, 9, 10, 12, 13, 47, 30, 30, 30, 30, 30, 0, 30, 64, 26, 27, 18, 23, 30, 28, 28, 3, 64,
35,
];
const PARTICLE_ID_REMAP_V_26_2_TO_V_1_17: &[u16] = &[
1, 4, 2, 5, 58, 61, 6, 6, 1, 1, 1, 6, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 23, 24, 24, 68, 23, 23, 19, 25, 26, 27, 28, 42, 64, 64, 33, 30, 0, 56, 29, 30, 31, 32,
33, 34, 35, 36, 37, 22, 88, 32, 38, 78, 39, 40, 41, 42, 43, 44, 45, 46, 47, 47, 48, 49, 50, 51,
52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 0, 32, 68, 28, 29, 20, 25, 86, 30, 30, 4,
68, 38,
];
const PARTICLE_ID_REMAP_V_26_2_TO_V_1_18: &[u16] = &[
1, 2, 3, 4, 57, 60, 5, 5, 1, 1, 1, 5, 28, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
20, 21, 22, 23, 23, 67, 22, 22, 18, 24, 25, 26, 27, 41, 63, 63, 32, 29, 0, 55, 28, 29, 30, 31,
32, 33, 34, 35, 36, 21, 87, 31, 37, 77, 38, 39, 40, 41, 42, 43, 44, 45, 46, 46, 47, 48, 49, 50,
51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 0, 31, 67, 27, 28, 19, 24, 85, 29, 29, 2,
67, 37,
];
const PARTICLE_ID_REMAP_V_26_2_TO_V_1_19: &[u16] = &[
1, 2, 3, 4, 61, 64, 5, 5, 1, 1, 1, 5, 32, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
20, 21, 22, 23, 23, 71, 22, 22, 24, 25, 26, 27, 28, 45, 67, 67, 36, 29, 30, 31, 32, 33, 34, 35,
36, 37, 38, 39, 40, 21, 91, 35, 41, 81, 42, 43, 44, 45, 46, 47, 48, 49, 50, 50, 51, 52, 53, 54,
55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 35, 71, 28, 32, 19, 25, 89, 33, 33, 2,
71, 41,
];
const PARTICLE_ID_REMAP_V_26_2_TO_V_1_19_3: &[u16] = &[
1, 2, 3, 4, 61, 64, 5, 5, 1, 1, 1, 5, 32, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
20, 21, 22, 23, 23, 71, 22, 22, 24, 25, 26, 27, 28, 45, 67, 67, 36, 29, 30, 31, 32, 33, 34, 35,
36, 37, 38, 39, 40, 21, 91, 35, 41, 81, 42, 43, 44, 45, 46, 47, 48, 49, 50, 50, 51, 52, 53, 54,
55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 35, 71, 28, 32, 19, 25, 89, 33, 33, 2,
71, 41,
];
const PARTICLE_ID_REMAP_V_26_2_TO_V_1_19_4: &[u16] = &[
1, 2, 3, 4, 64, 67, 5, 5, 1, 1, 1, 5, 35, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
20, 21, 22, 23, 23, 74, 22, 22, 24, 25, 26, 27, 28, 48, 30, 30, 39, 32, 33, 34, 35, 36, 37, 38,
39, 40, 41, 42, 43, 21, 94, 38, 44, 84, 45, 46, 47, 48, 49, 50, 51, 52, 53, 53, 54, 55, 56, 57,
58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 38, 74, 28, 35, 19, 25, 92, 36, 36, 2,
74, 44,
];
const PARTICLE_ID_REMAP_V_26_2_TO_V_1_20: &[u16] = &[
1, 2, 3, 4, 62, 65, 5, 5, 1, 1, 1, 5, 33, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
20, 21, 22, 23, 23, 72, 22, 22, 24, 25, 26, 27, 28, 46, 29, 29, 37, 30, 31, 32, 33, 34, 35, 36,
37, 38, 39, 40, 41, 21, 92, 36, 42, 82, 43, 44, 45, 46, 47, 48, 49, 50, 51, 51, 52, 53, 54, 55,
56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 72, 28, 33, 19, 25, 90, 34, 34, 2,
72, 42,
];
const PARTICLE_ID_REMAP_V_26_2_TO_V_1_20_2: &[u16] = &[
1, 2, 3, 4, 62, 65, 5, 5, 1, 1, 1, 5, 33, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
20, 21, 22, 23, 23, 72, 22, 22, 24, 25, 26, 27, 28, 46, 29, 29, 37, 30, 31, 32, 33, 34, 35, 36,
37, 38, 39, 40, 41, 21, 92, 36, 42, 82, 43, 44, 45, 46, 47, 48, 49, 50, 51, 51, 52, 53, 54, 55,
56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 72, 28, 33, 19, 25, 90, 34, 34, 2,
72, 42,
];
const PARTICLE_ID_REMAP_V_26_2_TO_V_1_20_3: &[u16] = &[
1, 2, 3, 4, 65, 68, 5, 5, 1, 1, 1, 5, 35, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
20, 21, 22, 23, 24, 98, 25, 25, 26, 27, 28, 29, 30, 48, 31, 31, 39, 32, 33, 34, 35, 36, 37, 38,
39, 40, 41, 42, 43, 21, 95, 38, 44, 85, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 100, 35, 19, 27, 93, 36, 36, 2,
75, 44,
];
const PARTICLE_ID_REMAP_V_26_2_TO_V_1_20_5: &[u16] = &[
0, 1, 2, 3, 68, 71, 4, 4, 0, 0, 0, 4, 37, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 33, 41, 34, 35, 36, 37, 38, 39, 40,
41, 42, 43, 44, 45, 20, 40, 40, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
41, 42, 43, 44, 45, 20, 98, 40, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
108, 1, 78, 46,
@ -11,7 +163,7 @@ const PARTICLE_ID_REMAP_V_26_2_TO_V_1_20_5: &[u16] = &[
const PARTICLE_ID_REMAP_V_26_2_TO_V_1_21: &[u16] = &[
0, 1, 2, 3, 68, 71, 4, 4, 0, 0, 0, 4, 37, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 33, 41, 34, 35, 36, 37, 38, 39, 40,
41, 42, 43, 44, 45, 20, 40, 40, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
41, 42, 43, 44, 45, 20, 98, 40, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
108, 1, 78, 46,
@ -19,7 +171,7 @@ const PARTICLE_ID_REMAP_V_26_2_TO_V_1_21: &[u16] = &[
const PARTICLE_ID_REMAP_V_26_2_TO_V_1_21_2: &[u16] = &[
0, 1, 2, 3, 69, 72, 4, 4, 0, 0, 0, 4, 37, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 33, 41, 34, 35, 36, 37, 38, 39, 40,
41, 42, 43, 44, 45, 46, 40, 40, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
41, 42, 43, 44, 45, 46, 99, 40, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
108, 109, 110, 79, 47,
@ -27,50 +179,50 @@ const PARTICLE_ID_REMAP_V_26_2_TO_V_1_21_2: &[u16] = &[
const PARTICLE_ID_REMAP_V_26_2_TO_V_1_21_4: &[u16] = &[
0, 1, 2, 3, 70, 73, 4, 4, 0, 0, 0, 4, 38, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 42, 35, 36, 37, 38, 39, 40, 41,
42, 43, 44, 45, 46, 47, 41, 41, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
109, 110, 111, 80, 48,
42, 43, 44, 45, 46, 47, 100, 41, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
108, 109, 110, 111, 80, 48,
];
const PARTICLE_ID_REMAP_V_26_2_TO_V_1_21_5: &[u16] = &[
0, 1, 2, 3, 71, 74, 4, 4, 0, 0, 0, 4, 39, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
43, 44, 45, 46, 47, 48, 42, 42, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
110, 111, 112, 113, 49,
43, 44, 45, 46, 47, 48, 101, 42, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
109, 110, 111, 112, 113, 49,
];
const PARTICLE_ID_REMAP_V_26_2_TO_V_1_21_6: &[u16] = &[
0, 1, 2, 3, 71, 74, 4, 4, 0, 0, 0, 4, 39, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
43, 44, 45, 46, 47, 48, 42, 42, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
110, 111, 112, 113, 49,
43, 44, 45, 46, 47, 48, 101, 42, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
109, 110, 111, 112, 113, 49,
];
const PARTICLE_ID_REMAP_V_26_2_TO_V_1_21_7: &[u16] = &[
0, 1, 2, 3, 71, 74, 4, 4, 0, 0, 0, 4, 39, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
43, 44, 45, 46, 47, 48, 42, 42, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
110, 111, 112, 113, 49,
43, 44, 45, 46, 47, 48, 101, 42, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
109, 110, 111, 112, 113, 49,
];
const PARTICLE_ID_REMAP_V_26_2_TO_V_1_21_9: &[u16] = &[
0, 1, 2, 3, 72, 75, 4, 4, 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
44, 45, 46, 47, 48, 49, 43, 43, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
111, 112, 113, 114, 50,
44, 45, 46, 47, 48, 49, 102, 43, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
110, 111, 112, 113, 114, 50,
];
const PARTICLE_ID_REMAP_V_26_2_TO_V_1_21_11: &[u16] = &[
0, 1, 2, 3, 72, 75, 4, 4, 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
44, 45, 46, 47, 48, 49, 43, 43, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
111, 112, 113, 114, 50,
44, 45, 46, 47, 48, 49, 102, 43, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
110, 111, 112, 113, 114, 50,
];
const PARTICLE_ID_REMAP_V_26_2_TO_V_26_1: &[u16] = &[
0, 1, 2, 3, 74, 77, 4, 4, 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
@ -83,6 +235,98 @@ const PARTICLE_ID_REMAP_V_26_2_TO_V_26_1: &[u16] = &[
#[must_use]
pub fn remap_particle_id_for_version(particle_id: u16, version: JavaMinecraftVersion) -> u16 {
match version {
pumpkin_util::version::JavaMinecraftVersion::V_1_7_6 => PARTICLE_ID_REMAP_V_26_2_TO_V_1_7_6
.get(usize::from(particle_id))
.copied()
.unwrap_or(particle_id),
pumpkin_util::version::JavaMinecraftVersion::V_1_8 => PARTICLE_ID_REMAP_V_26_2_TO_V_1_8
.get(usize::from(particle_id))
.copied()
.unwrap_or(particle_id),
pumpkin_util::version::JavaMinecraftVersion::V_1_9 => PARTICLE_ID_REMAP_V_26_2_TO_V_1_9
.get(usize::from(particle_id))
.copied()
.unwrap_or(particle_id),
pumpkin_util::version::JavaMinecraftVersion::V_1_10 => PARTICLE_ID_REMAP_V_26_2_TO_V_1_10
.get(usize::from(particle_id))
.copied()
.unwrap_or(particle_id),
pumpkin_util::version::JavaMinecraftVersion::V_1_11 => PARTICLE_ID_REMAP_V_26_2_TO_V_1_11
.get(usize::from(particle_id))
.copied()
.unwrap_or(particle_id),
pumpkin_util::version::JavaMinecraftVersion::V_1_12 => PARTICLE_ID_REMAP_V_26_2_TO_V_1_12
.get(usize::from(particle_id))
.copied()
.unwrap_or(particle_id),
pumpkin_util::version::JavaMinecraftVersion::V_1_13 => PARTICLE_ID_REMAP_V_26_2_TO_V_1_13
.get(usize::from(particle_id))
.copied()
.unwrap_or(particle_id),
pumpkin_util::version::JavaMinecraftVersion::V_1_13_2 => {
PARTICLE_ID_REMAP_V_26_2_TO_V_1_13_2
.get(usize::from(particle_id))
.copied()
.unwrap_or(particle_id)
}
pumpkin_util::version::JavaMinecraftVersion::V_1_14 => PARTICLE_ID_REMAP_V_26_2_TO_V_1_14
.get(usize::from(particle_id))
.copied()
.unwrap_or(particle_id),
pumpkin_util::version::JavaMinecraftVersion::V_1_15 => PARTICLE_ID_REMAP_V_26_2_TO_V_1_15
.get(usize::from(particle_id))
.copied()
.unwrap_or(particle_id),
pumpkin_util::version::JavaMinecraftVersion::V_1_16 => PARTICLE_ID_REMAP_V_26_2_TO_V_1_16
.get(usize::from(particle_id))
.copied()
.unwrap_or(particle_id),
pumpkin_util::version::JavaMinecraftVersion::V_1_16_2 => {
PARTICLE_ID_REMAP_V_26_2_TO_V_1_16_2
.get(usize::from(particle_id))
.copied()
.unwrap_or(particle_id)
}
pumpkin_util::version::JavaMinecraftVersion::V_1_17 => PARTICLE_ID_REMAP_V_26_2_TO_V_1_17
.get(usize::from(particle_id))
.copied()
.unwrap_or(particle_id),
pumpkin_util::version::JavaMinecraftVersion::V_1_18 => PARTICLE_ID_REMAP_V_26_2_TO_V_1_18
.get(usize::from(particle_id))
.copied()
.unwrap_or(particle_id),
pumpkin_util::version::JavaMinecraftVersion::V_1_19 => PARTICLE_ID_REMAP_V_26_2_TO_V_1_19
.get(usize::from(particle_id))
.copied()
.unwrap_or(particle_id),
pumpkin_util::version::JavaMinecraftVersion::V_1_19_3 => {
PARTICLE_ID_REMAP_V_26_2_TO_V_1_19_3
.get(usize::from(particle_id))
.copied()
.unwrap_or(particle_id)
}
pumpkin_util::version::JavaMinecraftVersion::V_1_19_4 => {
PARTICLE_ID_REMAP_V_26_2_TO_V_1_19_4
.get(usize::from(particle_id))
.copied()
.unwrap_or(particle_id)
}
pumpkin_util::version::JavaMinecraftVersion::V_1_20 => PARTICLE_ID_REMAP_V_26_2_TO_V_1_20
.get(usize::from(particle_id))
.copied()
.unwrap_or(particle_id),
pumpkin_util::version::JavaMinecraftVersion::V_1_20_2 => {
PARTICLE_ID_REMAP_V_26_2_TO_V_1_20_2
.get(usize::from(particle_id))
.copied()
.unwrap_or(particle_id)
}
pumpkin_util::version::JavaMinecraftVersion::V_1_20_3 => {
PARTICLE_ID_REMAP_V_26_2_TO_V_1_20_3
.get(usize::from(particle_id))
.copied()
.unwrap_or(particle_id)
}
pumpkin_util::version::JavaMinecraftVersion::V_1_20_5 => {
PARTICLE_ID_REMAP_V_26_2_TO_V_1_20_5
.get(usize::from(particle_id))

View File

@ -1,5 +1,6 @@
/* This file is generated. Do not edit manually. */
use crate::effect::StatusEffect;
use std::hash::Hash;
pub struct Potion {
pub id: u8,
pub name: &'static str,

View File

@ -1,7 +1,7 @@
/* This file is generated. Do not edit manually. */
use crate::item::Item;
use crate::tag::Taggable;
use serde::Serialize;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, Serialize)]
pub enum CraftingRecipeTypes {
CraftingShaped {

File diff suppressed because one or more lines are too long

View File

@ -1,3 +1,4 @@
/* This file is generated. Do not edit manually. */
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
pub enum ScoreboardDisplaySlot {
List,

File diff suppressed because it is too large Load Diff

View File

@ -55,165 +55,165 @@ impl TryFrom<i32> for StatisticCategory {
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
#[repr(i32)]
pub enum CustomStatistic {
AviateOneCm = 19i32,
DamageDealt = 25i32,
CleanBanner = 43i32,
InspectDispenser = 49i32,
PotFlower = 52i32,
TradedWithVillager = 38i32,
PlayNoteblock = 50i32,
WalkOnWaterOneCm = 9i32,
OpenShulkerBox = 61i32,
DamageResisted = 31i32,
InteractWithLectern = 65i32,
BellRing = 70i32,
UseCauldron = 41i32,
InteractWithAnvil = 73i32,
FallOneCm = 10i32,
PigOneCm = 16i32,
EnchantItem = 55i32,
SleepInBed = 60i32,
FlyOneCm = 12i32,
RaidTrigger = 71i32,
DamageDealtResisted = 27i32,
InteractWithBrewingstand = 45i32,
InspectHopper = 48i32,
PlayRecord = 56i32,
WalkOneCm = 6i32,
CleanArmor = 42i32,
InteractWithCartographyTable = 67i32,
OpenEnderchest = 54i32,
InteractWithFurnace = 57i32,
SwimOneCm = 20i32,
DamageAbsorbed = 30i32,
OpenBarrel = 62i32,
TimeSinceRest = 4i32,
DamageBlockedByShield = 29i32,
NautilusOneCm = 22i32,
TimeSinceDeath = 3i32,
InteractWithBlastFurnace = 63i32,
ClimbOneCm = 11i32,
HappyGhastOneCm = 17i32,
TotalWorldTime = 2i32,
Deaths = 32i32,
InteractWithBeacon = 46i32,
PlayTime = 1i32,
InteractWithCraftingTable = 58i32,
MinecartOneCm = 14i32,
TalkedToVillager = 37i32,
PlayerKills = 35i32,
InteractWithStonecutter = 69i32,
InteractWithSmithingTable = 76i32,
Jump = 23i32,
FillCauldron = 40i32,
RaidWin = 72i32,
TriggerTrappedChest = 53i32,
BoatOneCm = 15i32,
DamageDealtAbsorbed = 26i32,
CleanShulkerBox = 44i32,
TuneNoteblock = 51i32,
InteractWithCampfire = 66i32,
SprintOneCm = 8i32,
InteractWithLoom = 68i32,
FishCaught = 36i32,
InteractWithGrindstone = 74i32,
DamageTaken = 28i32,
InspectDropper = 47i32,
AnimalsBred = 34i32,
WalkUnderWaterOneCm = 13i32,
HorseOneCm = 18i32,
OpenChest = 59i32,
MobKills = 33i32,
SneakTime = 5i32,
EatCakeSlice = 39i32,
CrouchOneCm = 7i32,
InteractWithSmoker = 64i32,
TargetHit = 75i32,
StriderOneCm = 21i32,
LeaveGame = 0i32,
TimeSinceDeath = 3i32,
OpenShulkerBox = 61i32,
OpenBarrel = 62i32,
InteractWithSmithingTable = 76i32,
DamageAbsorbed = 30i32,
PigOneCm = 16i32,
DamageTaken = 28i32,
EatCakeSlice = 39i32,
CleanBanner = 43i32,
WalkOnWaterOneCm = 9i32,
InspectHopper = 48i32,
TuneNoteblock = 51i32,
AviateOneCm = 19i32,
BellRing = 70i32,
MobKills = 33i32,
TradedWithVillager = 38i32,
EnchantItem = 55i32,
InspectDispenser = 49i32,
PlayRecord = 56i32,
SneakTime = 5i32,
Jump = 23i32,
DamageDealtAbsorbed = 26i32,
AnimalsBred = 34i32,
SwimOneCm = 20i32,
InteractWithBrewingstand = 45i32,
InteractWithCraftingTable = 58i32,
InteractWithLoom = 68i32,
Deaths = 32i32,
PlayerKills = 35i32,
InteractWithAnvil = 73i32,
SprintOneCm = 8i32,
FillCauldron = 40i32,
InteractWithLectern = 65i32,
SleepInBed = 60i32,
TargetHit = 75i32,
CrouchOneCm = 7i32,
InteractWithCartographyTable = 67i32,
InteractWithBlastFurnace = 63i32,
UseCauldron = 41i32,
RaidWin = 72i32,
InteractWithCampfire = 66i32,
FallOneCm = 10i32,
Drop = 24i32,
FishCaught = 36i32,
InteractWithStonecutter = 69i32,
BoatOneCm = 15i32,
RaidTrigger = 71i32,
WalkUnderWaterOneCm = 13i32,
InspectDropper = 47i32,
OpenEnderchest = 54i32,
PlayTime = 1i32,
LeaveGame = 0i32,
HorseOneCm = 18i32,
PlayNoteblock = 50i32,
DamageResisted = 31i32,
TimeSinceRest = 4i32,
NautilusOneCm = 22i32,
InteractWithSmoker = 64i32,
DamageBlockedByShield = 29i32,
CleanShulkerBox = 44i32,
InteractWithBeacon = 46i32,
PotFlower = 52i32,
MinecartOneCm = 14i32,
WalkOneCm = 6i32,
DamageDealt = 25i32,
FlyOneCm = 12i32,
OpenChest = 59i32,
TalkedToVillager = 37i32,
InteractWithGrindstone = 74i32,
ClimbOneCm = 11i32,
InteractWithFurnace = 57i32,
HappyGhastOneCm = 17i32,
CleanArmor = 42i32,
TriggerTrappedChest = 53i32,
DamageDealtResisted = 27i32,
TotalWorldTime = 2i32,
}
impl CustomStatistic {
#[must_use]
pub const fn from_i32(id: i32) -> Option<Self> {
match id {
19i32 => Some(Self::AviateOneCm),
25i32 => Some(Self::DamageDealt),
43i32 => Some(Self::CleanBanner),
49i32 => Some(Self::InspectDispenser),
52i32 => Some(Self::PotFlower),
38i32 => Some(Self::TradedWithVillager),
50i32 => Some(Self::PlayNoteblock),
9i32 => Some(Self::WalkOnWaterOneCm),
61i32 => Some(Self::OpenShulkerBox),
31i32 => Some(Self::DamageResisted),
65i32 => Some(Self::InteractWithLectern),
70i32 => Some(Self::BellRing),
41i32 => Some(Self::UseCauldron),
73i32 => Some(Self::InteractWithAnvil),
10i32 => Some(Self::FallOneCm),
16i32 => Some(Self::PigOneCm),
55i32 => Some(Self::EnchantItem),
60i32 => Some(Self::SleepInBed),
12i32 => Some(Self::FlyOneCm),
71i32 => Some(Self::RaidTrigger),
27i32 => Some(Self::DamageDealtResisted),
45i32 => Some(Self::InteractWithBrewingstand),
48i32 => Some(Self::InspectHopper),
56i32 => Some(Self::PlayRecord),
6i32 => Some(Self::WalkOneCm),
42i32 => Some(Self::CleanArmor),
67i32 => Some(Self::InteractWithCartographyTable),
54i32 => Some(Self::OpenEnderchest),
57i32 => Some(Self::InteractWithFurnace),
20i32 => Some(Self::SwimOneCm),
30i32 => Some(Self::DamageAbsorbed),
62i32 => Some(Self::OpenBarrel),
4i32 => Some(Self::TimeSinceRest),
29i32 => Some(Self::DamageBlockedByShield),
22i32 => Some(Self::NautilusOneCm),
3i32 => Some(Self::TimeSinceDeath),
63i32 => Some(Self::InteractWithBlastFurnace),
11i32 => Some(Self::ClimbOneCm),
17i32 => Some(Self::HappyGhastOneCm),
2i32 => Some(Self::TotalWorldTime),
32i32 => Some(Self::Deaths),
46i32 => Some(Self::InteractWithBeacon),
1i32 => Some(Self::PlayTime),
58i32 => Some(Self::InteractWithCraftingTable),
14i32 => Some(Self::MinecartOneCm),
37i32 => Some(Self::TalkedToVillager),
35i32 => Some(Self::PlayerKills),
69i32 => Some(Self::InteractWithStonecutter),
76i32 => Some(Self::InteractWithSmithingTable),
23i32 => Some(Self::Jump),
40i32 => Some(Self::FillCauldron),
72i32 => Some(Self::RaidWin),
53i32 => Some(Self::TriggerTrappedChest),
15i32 => Some(Self::BoatOneCm),
26i32 => Some(Self::DamageDealtAbsorbed),
44i32 => Some(Self::CleanShulkerBox),
51i32 => Some(Self::TuneNoteblock),
66i32 => Some(Self::InteractWithCampfire),
8i32 => Some(Self::SprintOneCm),
68i32 => Some(Self::InteractWithLoom),
36i32 => Some(Self::FishCaught),
74i32 => Some(Self::InteractWithGrindstone),
28i32 => Some(Self::DamageTaken),
47i32 => Some(Self::InspectDropper),
34i32 => Some(Self::AnimalsBred),
13i32 => Some(Self::WalkUnderWaterOneCm),
18i32 => Some(Self::HorseOneCm),
59i32 => Some(Self::OpenChest),
33i32 => Some(Self::MobKills),
5i32 => Some(Self::SneakTime),
39i32 => Some(Self::EatCakeSlice),
7i32 => Some(Self::CrouchOneCm),
64i32 => Some(Self::InteractWithSmoker),
75i32 => Some(Self::TargetHit),
21i32 => Some(Self::StriderOneCm),
0i32 => Some(Self::LeaveGame),
3i32 => Some(Self::TimeSinceDeath),
61i32 => Some(Self::OpenShulkerBox),
62i32 => Some(Self::OpenBarrel),
76i32 => Some(Self::InteractWithSmithingTable),
30i32 => Some(Self::DamageAbsorbed),
16i32 => Some(Self::PigOneCm),
28i32 => Some(Self::DamageTaken),
39i32 => Some(Self::EatCakeSlice),
43i32 => Some(Self::CleanBanner),
9i32 => Some(Self::WalkOnWaterOneCm),
48i32 => Some(Self::InspectHopper),
51i32 => Some(Self::TuneNoteblock),
19i32 => Some(Self::AviateOneCm),
70i32 => Some(Self::BellRing),
33i32 => Some(Self::MobKills),
38i32 => Some(Self::TradedWithVillager),
55i32 => Some(Self::EnchantItem),
49i32 => Some(Self::InspectDispenser),
56i32 => Some(Self::PlayRecord),
5i32 => Some(Self::SneakTime),
23i32 => Some(Self::Jump),
26i32 => Some(Self::DamageDealtAbsorbed),
34i32 => Some(Self::AnimalsBred),
20i32 => Some(Self::SwimOneCm),
45i32 => Some(Self::InteractWithBrewingstand),
58i32 => Some(Self::InteractWithCraftingTable),
68i32 => Some(Self::InteractWithLoom),
32i32 => Some(Self::Deaths),
35i32 => Some(Self::PlayerKills),
73i32 => Some(Self::InteractWithAnvil),
8i32 => Some(Self::SprintOneCm),
40i32 => Some(Self::FillCauldron),
65i32 => Some(Self::InteractWithLectern),
60i32 => Some(Self::SleepInBed),
75i32 => Some(Self::TargetHit),
7i32 => Some(Self::CrouchOneCm),
67i32 => Some(Self::InteractWithCartographyTable),
63i32 => Some(Self::InteractWithBlastFurnace),
41i32 => Some(Self::UseCauldron),
72i32 => Some(Self::RaidWin),
66i32 => Some(Self::InteractWithCampfire),
10i32 => Some(Self::FallOneCm),
24i32 => Some(Self::Drop),
36i32 => Some(Self::FishCaught),
69i32 => Some(Self::InteractWithStonecutter),
15i32 => Some(Self::BoatOneCm),
71i32 => Some(Self::RaidTrigger),
13i32 => Some(Self::WalkUnderWaterOneCm),
47i32 => Some(Self::InspectDropper),
54i32 => Some(Self::OpenEnderchest),
1i32 => Some(Self::PlayTime),
0i32 => Some(Self::LeaveGame),
18i32 => Some(Self::HorseOneCm),
50i32 => Some(Self::PlayNoteblock),
31i32 => Some(Self::DamageResisted),
4i32 => Some(Self::TimeSinceRest),
22i32 => Some(Self::NautilusOneCm),
64i32 => Some(Self::InteractWithSmoker),
29i32 => Some(Self::DamageBlockedByShield),
44i32 => Some(Self::CleanShulkerBox),
46i32 => Some(Self::InteractWithBeacon),
52i32 => Some(Self::PotFlower),
14i32 => Some(Self::MinecartOneCm),
6i32 => Some(Self::WalkOneCm),
25i32 => Some(Self::DamageDealt),
12i32 => Some(Self::FlyOneCm),
59i32 => Some(Self::OpenChest),
37i32 => Some(Self::TalkedToVillager),
74i32 => Some(Self::InteractWithGrindstone),
11i32 => Some(Self::ClimbOneCm),
57i32 => Some(Self::InteractWithFurnace),
17i32 => Some(Self::HappyGhastOneCm),
42i32 => Some(Self::CleanArmor),
53i32 => Some(Self::TriggerTrappedChest),
27i32 => Some(Self::DamageDealtResisted),
2i32 => Some(Self::TotalWorldTime),
_ => None,
}
}

View File

@ -1,6 +1,8 @@
/* This file is generated. Do not edit manually. */
use pumpkin_util::math::floor_div;
use pumpkin_util::random::{
RandomGenerator, RandomImpl,
RandomGenerator, RandomImpl, get_carver_seed, get_region_seed, legacy_rand::LegacyRand,
xoroshiro128::Xoroshiro,
};
#[derive(Clone, Copy, PartialEq, Eq, Hash, Debug)]
pub enum StructureKeys {

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,5 @@
#![allow(
unused,
clippy::all,
clippy::pedantic,
clippy::nursery,

View File

@ -279,6 +279,12 @@ impl NbtCompound {
self.get(name).and_then(|tag| tag.extract_compound())
}
/// Returns the named byte array, or `None` if the tag is absent or has another type.
#[must_use]
pub fn get_byte_array(&self, name: &str) -> Option<&[i8]> {
self.get(name).and_then(|tag| tag.extract_byte_array())
}
/// Returns the named integer array, or `None` if the tag is absent or has another type.
#[must_use]
pub fn get_int_array(&self, name: &str) -> Option<&[i32]> {

@ -1 +1 @@
Subproject commit 952c0a65b21c1b934d678cb9b8eef6cbfec2a695
Subproject commit 2f91c555a4e902bf3e69d5cd0a60835232b2a92d

View File

@ -46,9 +46,9 @@ impl ClientPacket for CConfigAddResourcePack<'_> {
write.write_string(self.url)?;
write.write_string(self.hash)?;
write.write_bool(self.forced)?;
if let Some(_prompt) = &self.prompt_message {
if let Some(prompt) = &self.prompt_message {
write.write_bool(true)?;
// TODO
write.write_slice(&prompt.encode())?;
} else {
write.write_bool(false)?;
}

View File

@ -0,0 +1,29 @@
use pumpkin_data::packet::clientbound::CONFIG_CODE_OF_CONDUCT;
use pumpkin_macros::java_packet;
use crate::ClientPacket;
use crate::ser::NetworkWriteExt;
use pumpkin_util::version::JavaMinecraftVersion;
#[java_packet(CONFIG_CODE_OF_CONDUCT)]
pub struct CCodeOfConduct<'a> {
pub code_of_conduct: &'a str,
}
impl<'a> CCodeOfConduct<'a> {
#[must_use]
pub const fn new(code_of_conduct: &'a str) -> Self {
Self { code_of_conduct }
}
}
impl ClientPacket for CCodeOfConduct<'_> {
fn write_packet_data(
&self,
mut write: impl std::io::Write,
_version: &JavaMinecraftVersion,
) -> Result<(), crate::ser::WritingError> {
write.write_string(self.code_of_conduct)?;
Ok(())
}
}

View File

@ -0,0 +1,34 @@
use pumpkin_data::packet::clientbound::CONFIG_CUSTOM_REPORT_DETAILS;
use pumpkin_macros::java_packet;
use crate::ClientPacket;
use crate::codec::var_int::VarInt;
use crate::ser::NetworkWriteExt;
use pumpkin_util::version::JavaMinecraftVersion;
#[java_packet(CONFIG_CUSTOM_REPORT_DETAILS)]
pub struct CConfigCustomReportDetails<'a> {
pub details: &'a [(&'a str, &'a str)],
}
impl<'a> CConfigCustomReportDetails<'a> {
#[must_use]
pub const fn new(details: &'a [(&'a str, &'a str)]) -> Self {
Self { details }
}
}
impl ClientPacket for CConfigCustomReportDetails<'_> {
fn write_packet_data(
&self,
mut write: impl std::io::Write,
_version: &JavaMinecraftVersion,
) -> Result<(), crate::ser::WritingError> {
write.write_var_int(&VarInt(self.details.len() as i32))?;
for (key, value) in self.details {
write.write_string(key)?;
write.write_string(value)?;
}
Ok(())
}
}

View File

@ -1,12 +1,17 @@
mod add_resource_pack;
mod clear_dialog;
mod code_of_conduct;
mod config_disconnect;
mod cookie_request;
mod custom_report_details;
mod feature_flags;
mod finish_config;
mod known_packs;
mod ping;
mod plugin_message;
mod registry_data;
mod remove_resource_pack;
mod reset_chat;
mod server_links;
mod show_dialog;
mod store_cookie;
@ -15,13 +20,18 @@ mod update_tags;
pub use add_resource_pack::*;
pub use clear_dialog::*;
pub use code_of_conduct::*;
pub use config_disconnect::*;
pub use cookie_request::*;
pub use custom_report_details::*;
pub use feature_flags::*;
pub use finish_config::*;
pub use known_packs::*;
pub use ping::*;
pub use plugin_message::*;
pub use registry_data::*;
pub use remove_resource_pack::*;
pub use reset_chat::*;
pub use server_links::*;
pub use show_dialog::*;
pub use store_cookie::*;

View File

@ -0,0 +1,29 @@
use pumpkin_data::packet::clientbound::CONFIG_PING;
use pumpkin_macros::java_packet;
use crate::ClientPacket;
use crate::ser::NetworkWriteExt;
use pumpkin_util::version::JavaMinecraftVersion;
#[java_packet(CONFIG_PING)]
pub struct CConfigPing {
pub id: i32,
}
impl CConfigPing {
#[must_use]
pub const fn new(id: i32) -> Self {
Self { id }
}
}
impl ClientPacket for CConfigPing {
fn write_packet_data(
&self,
mut write: impl std::io::Write,
_version: &JavaMinecraftVersion,
) -> Result<(), crate::ser::WritingError> {
write.write_i32_be(self.id)?;
Ok(())
}
}

View File

@ -0,0 +1,34 @@
use pumpkin_data::packet::clientbound::CONFIG_RESOURCE_PACK_POP;
use pumpkin_macros::java_packet;
use crate::ClientPacket;
use crate::ser::NetworkWriteExt;
use pumpkin_util::version::JavaMinecraftVersion;
#[java_packet(CONFIG_RESOURCE_PACK_POP)]
pub struct CConfigRemoveResourcePack<'a> {
pub uuid: Option<&'a uuid::Uuid>,
}
impl<'a> CConfigRemoveResourcePack<'a> {
#[must_use]
pub const fn new(uuid: Option<&'a uuid::Uuid>) -> Self {
Self { uuid }
}
}
impl ClientPacket for CConfigRemoveResourcePack<'_> {
fn write_packet_data(
&self,
mut write: impl std::io::Write,
_version: &JavaMinecraftVersion,
) -> Result<(), crate::ser::WritingError> {
if let Some(uuid) = self.uuid {
write.write_bool(true)?;
write.write_uuid(uuid)?;
} else {
write.write_bool(false)?;
}
Ok(())
}
}

View File

@ -0,0 +1,18 @@
use pumpkin_data::packet::clientbound::CONFIG_RESET_CHAT;
use pumpkin_macros::java_packet;
use crate::ClientPacket;
use pumpkin_util::version::JavaMinecraftVersion;
#[java_packet(CONFIG_RESET_CHAT)]
pub struct CConfigResetChat;
impl ClientPacket for CConfigResetChat {
fn write_packet_data(
&self,
_write: impl std::io::Write,
_version: &JavaMinecraftVersion,
) -> Result<(), crate::ser::WritingError> {
Ok(())
}
}

View File

@ -0,0 +1,56 @@
use pumpkin_data::packet::clientbound::PLAY_RESOURCE_PACK_PUSH;
use pumpkin_util::text::TextComponent;
use pumpkin_macros::java_packet;
use crate::ClientPacket;
use crate::ser::NetworkWriteExt;
use pumpkin_util::version::JavaMinecraftVersion;
#[java_packet(PLAY_RESOURCE_PACK_PUSH)]
pub struct CAddResourcePack<'a> {
pub uuid: &'a uuid::Uuid,
pub url: &'a str,
pub hash: &'a str,
pub forced: bool,
pub prompt_message: Option<TextComponent>,
}
impl<'a> CAddResourcePack<'a> {
#[must_use]
pub const fn new(
uuid: &'a uuid::Uuid,
url: &'a str,
hash: &'a str,
forced: bool,
prompt_message: Option<TextComponent>,
) -> Self {
Self {
uuid,
url,
hash,
forced,
prompt_message,
}
}
}
impl ClientPacket for CAddResourcePack<'_> {
fn write_packet_data(
&self,
mut write: impl std::io::Write,
_version: &JavaMinecraftVersion,
) -> Result<(), crate::ser::WritingError> {
write.write_uuid(self.uuid)?;
write.write_string(self.url)?;
write.write_string(self.hash)?;
write.write_bool(self.forced)?;
if let Some(prompt) = &self.prompt_message {
write.write_bool(true)?;
write.write_slice(&prompt.encode())?;
} else {
write.write_bool(false)?;
}
Ok(())
}
}

View File

@ -0,0 +1,18 @@
use pumpkin_data::packet::clientbound::PLAY_BUNDLE_DELIMITER;
use pumpkin_macros::java_packet;
use crate::ClientPacket;
use pumpkin_util::version::JavaMinecraftVersion;
#[java_packet(PLAY_BUNDLE_DELIMITER)]
pub struct CBundleDelimiter;
impl ClientPacket for CBundleDelimiter {
fn write_packet_data(
&self,
_write: impl std::io::Write,
_version: &JavaMinecraftVersion,
) -> Result<(), crate::ser::WritingError> {
Ok(())
}
}

View File

@ -0,0 +1,39 @@
use pumpkin_data::packet::clientbound::PLAY_CHUNKS_BIOMES;
use pumpkin_macros::java_packet;
use crate::{ClientPacket, codec::var_int::VarInt, ser::NetworkWriteExt};
use pumpkin_util::version::JavaMinecraftVersion;
pub struct ChunkBiomeEntry<'a> {
pub chunk_x: i32,
pub chunk_z: i32,
pub data: &'a [u8],
}
#[java_packet(PLAY_CHUNKS_BIOMES)]
pub struct CChunksBiomes<'a> {
pub chunks: &'a [ChunkBiomeEntry<'a>],
}
impl<'a> CChunksBiomes<'a> {
#[must_use]
pub const fn new(chunks: &'a [ChunkBiomeEntry<'a>]) -> Self {
Self { chunks }
}
}
impl ClientPacket for CChunksBiomes<'_> {
fn write_packet_data(
&self,
mut write: impl std::io::Write,
_version: &JavaMinecraftVersion,
) -> Result<(), crate::ser::WritingError> {
write.write_var_int(&VarInt(self.chunks.len() as i32))?;
for chunk in self.chunks {
write.write_i32_be(chunk.chunk_x)?;
write.write_i32_be(chunk.chunk_z)?;
write.write_slice(chunk.data)?;
}
Ok(())
}
}

View File

@ -0,0 +1,41 @@
use pumpkin_data::packet::clientbound::{PLAY_PLAYER_COMBAT_END, PLAY_PLAYER_COMBAT_ENTER};
use pumpkin_macros::java_packet;
use crate::{ClientPacket, codec::var_int::VarInt, ser::NetworkWriteExt};
use pumpkin_util::version::JavaMinecraftVersion;
#[java_packet(PLAY_PLAYER_COMBAT_ENTER)]
pub struct CCombatEnter;
impl ClientPacket for CCombatEnter {
fn write_packet_data(
&self,
_write: impl std::io::Write,
_version: &JavaMinecraftVersion,
) -> Result<(), crate::ser::WritingError> {
Ok(())
}
}
#[java_packet(PLAY_PLAYER_COMBAT_END)]
pub struct CCombatEnd {
pub duration_ticks: VarInt,
}
impl CCombatEnd {
#[must_use]
pub const fn new(duration_ticks: VarInt) -> Self {
Self { duration_ticks }
}
}
impl ClientPacket for CCombatEnd {
fn write_packet_data(
&self,
mut write: impl std::io::Write,
_version: &JavaMinecraftVersion,
) -> Result<(), crate::ser::WritingError> {
write.write_var_int(&self.duration_ticks)?;
Ok(())
}
}

View File

@ -0,0 +1,33 @@
use pumpkin_data::packet::clientbound::PLAY_CUSTOM_CHAT_COMPLETIONS;
use pumpkin_macros::java_packet;
use crate::{ClientPacket, codec::var_int::VarInt, ser::NetworkWriteExt};
use pumpkin_util::version::JavaMinecraftVersion;
#[java_packet(PLAY_CUSTOM_CHAT_COMPLETIONS)]
pub struct CCustomChatCompletions<'a> {
pub action: VarInt,
pub entries: &'a [&'a str],
}
impl<'a> CCustomChatCompletions<'a> {
#[must_use]
pub const fn new(action: VarInt, entries: &'a [&'a str]) -> Self {
Self { action, entries }
}
}
impl ClientPacket for CCustomChatCompletions<'_> {
fn write_packet_data(
&self,
mut write: impl std::io::Write,
_version: &JavaMinecraftVersion,
) -> Result<(), crate::ser::WritingError> {
write.write_var_int(&self.action)?;
write.write_var_int(&VarInt(self.entries.len() as i32))?;
for entry in self.entries {
write.write_string(entry)?;
}
Ok(())
}
}

View File

@ -0,0 +1,32 @@
use pumpkin_data::packet::clientbound::PLAY_CUSTOM_REPORT_DETAILS;
use pumpkin_macros::java_packet;
use crate::{ClientPacket, codec::var_int::VarInt, ser::NetworkWriteExt};
use pumpkin_util::version::JavaMinecraftVersion;
#[java_packet(PLAY_CUSTOM_REPORT_DETAILS)]
pub struct CPlayCustomReportDetails<'a> {
pub details: &'a [(&'a str, &'a str)],
}
impl<'a> CPlayCustomReportDetails<'a> {
#[must_use]
pub const fn new(details: &'a [(&'a str, &'a str)]) -> Self {
Self { details }
}
}
impl ClientPacket for CPlayCustomReportDetails<'_> {
fn write_packet_data(
&self,
mut write: impl std::io::Write,
_version: &JavaMinecraftVersion,
) -> Result<(), crate::ser::WritingError> {
write.write_var_int(&VarInt(self.details.len() as i32))?;
for (key, value) in self.details {
write.write_string(key)?;
write.write_string(value)?;
}
Ok(())
}
}

View File

@ -0,0 +1,43 @@
use pumpkin_data::packet::clientbound::PLAY_DELETE_CHAT;
use pumpkin_macros::java_packet;
use crate::{ClientPacket, codec::var_int::VarInt, ser::NetworkWriteExt};
use pumpkin_util::version::JavaMinecraftVersion;
#[java_packet(PLAY_DELETE_CHAT)]
pub struct CDeleteChat<'a> {
pub signature_id: VarInt,
pub signature: Option<&'a [u8]>,
}
impl<'a> CDeleteChat<'a> {
#[must_use]
pub const fn from_id(signature_id: VarInt) -> Self {
Self {
signature_id,
signature: None,
}
}
#[must_use]
pub const fn from_signature(signature: &'a [u8]) -> Self {
Self {
signature_id: VarInt(0),
signature: Some(signature),
}
}
}
impl ClientPacket for CDeleteChat<'_> {
fn write_packet_data(
&self,
mut write: impl std::io::Write,
_version: &JavaMinecraftVersion,
) -> Result<(), crate::ser::WritingError> {
write.write_var_int(&self.signature_id)?;
if let Some(signature) = self.signature {
write.write_slice(signature)?;
}
Ok(())
}
}

View File

@ -0,0 +1,32 @@
use pumpkin_data::packet::clientbound::PLAY_GAME_RULE_VALUES;
use pumpkin_macros::java_packet;
use crate::{ClientPacket, codec::var_int::VarInt, ser::NetworkWriteExt};
use pumpkin_util::version::JavaMinecraftVersion;
#[java_packet(PLAY_GAME_RULE_VALUES)]
pub struct CGameRuleValues<'a> {
pub rules: &'a [(&'a str, &'a str)],
}
impl<'a> CGameRuleValues<'a> {
#[must_use]
pub const fn new(rules: &'a [(&'a str, &'a str)]) -> Self {
Self { rules }
}
}
impl ClientPacket for CGameRuleValues<'_> {
fn write_packet_data(
&self,
mut write: impl std::io::Write,
_version: &JavaMinecraftVersion,
) -> Result<(), crate::ser::WritingError> {
write.write_var_int(&VarInt(self.rules.len() as i32))?;
for (key, value) in self.rules {
write.write_string(key)?;
write.write_string(value)?;
}
Ok(())
}
}

View File

@ -0,0 +1,18 @@
use pumpkin_data::packet::clientbound::PLAY_LOW_DISK_SPACE_WARNING;
use pumpkin_macros::java_packet;
use crate::ClientPacket;
use pumpkin_util::version::JavaMinecraftVersion;
#[java_packet(PLAY_LOW_DISK_SPACE_WARNING)]
pub struct CLowDiskSpaceWarning;
impl ClientPacket for CLowDiskSpaceWarning {
fn write_packet_data(
&self,
_write: impl std::io::Write,
_version: &JavaMinecraftVersion,
) -> Result<(), crate::ser::WritingError> {
Ok(())
}
}

View File

@ -2,6 +2,10 @@ mod award_stats;
pub use award_stats::*;
mod acknowledge_block;
mod actionbar;
mod add_resource_pack;
pub use add_resource_pack::*;
mod remove_resource_pack;
pub use remove_resource_pack::*;
mod block_destroy_stage;
mod block_entity_data;
mod block_event;
@ -226,3 +230,57 @@ pub use waypoint::*;
mod debug_sample;
pub use debug_sample::*;
mod bundle_delimiter;
pub use bundle_delimiter::*;
mod chunks_biomes;
pub use chunks_biomes::*;
mod combat_event;
pub use combat_event::*;
mod custom_chat_completions;
pub use custom_chat_completions::*;
mod custom_report_details;
pub use custom_report_details::*;
mod delete_chat;
pub use delete_chat::*;
mod game_rule_values;
pub use game_rule_values::*;
mod low_disk_space_warning;
pub use low_disk_space_warning::*;
mod move_minecart_along_track;
pub use move_minecart_along_track::*;
mod open_mount_screen;
pub use open_mount_screen::*;
mod ping;
pub use ping::*;
mod place_ghost_recipe;
pub use place_ghost_recipe::*;
mod player_look_at;
pub use player_look_at::*;
mod player_rotation;
pub use player_rotation::*;
mod projectile_power;
pub use projectile_power::*;
mod server_data;
pub use server_data::*;
mod start_configuration;
pub use start_configuration::*;
mod tag_query;
pub use tag_query::*;

View File

@ -0,0 +1,49 @@
use pumpkin_data::packet::clientbound::PLAY_MOVE_MINECART_ALONG_TRACK;
use pumpkin_macros::java_packet;
use crate::{ClientPacket, codec::var_int::VarInt, ser::NetworkWriteExt};
use pumpkin_util::{math::vector3::Vector3, version::JavaMinecraftVersion};
pub struct MinecartStep {
pub position: Vector3<f64>,
pub movement: Vector3<f64>,
pub yaw: f32,
pub pitch: f32,
pub weight: f32,
}
#[java_packet(PLAY_MOVE_MINECART_ALONG_TRACK)]
pub struct CMoveMinecartAlongTrack<'a> {
pub entity_id: VarInt,
pub steps: &'a [MinecartStep],
}
impl<'a> CMoveMinecartAlongTrack<'a> {
#[must_use]
pub const fn new(entity_id: VarInt, steps: &'a [MinecartStep]) -> Self {
Self { entity_id, steps }
}
}
impl ClientPacket for CMoveMinecartAlongTrack<'_> {
fn write_packet_data(
&self,
mut write: impl std::io::Write,
_version: &JavaMinecraftVersion,
) -> Result<(), crate::ser::WritingError> {
write.write_var_int(&self.entity_id)?;
write.write_var_int(&VarInt(self.steps.len() as i32))?;
for step in self.steps {
write.write_f64_be(step.position.x)?;
write.write_f64_be(step.position.y)?;
write.write_f64_be(step.position.z)?;
write.write_f64_be(step.movement.x)?;
write.write_f64_be(step.movement.y)?;
write.write_f64_be(step.movement.z)?;
write.write_f32_be(step.yaw)?;
write.write_f32_be(step.pitch)?;
write.write_f32_be(step.weight)?;
}
Ok(())
}
}

View File

@ -0,0 +1,36 @@
use pumpkin_data::packet::clientbound::PLAY_MOUNT_SCREEN_OPEN;
use pumpkin_macros::java_packet;
use crate::{ClientPacket, codec::var_int::VarInt, ser::NetworkWriteExt};
use pumpkin_util::version::JavaMinecraftVersion;
#[java_packet(PLAY_MOUNT_SCREEN_OPEN)]
pub struct COpenMountScreen {
pub window_id: u8,
pub slot_count: VarInt,
pub entity_id: i32,
}
impl COpenMountScreen {
#[must_use]
pub const fn new(window_id: u8, slot_count: VarInt, entity_id: i32) -> Self {
Self {
window_id,
slot_count,
entity_id,
}
}
}
impl ClientPacket for COpenMountScreen {
fn write_packet_data(
&self,
mut write: impl std::io::Write,
_version: &JavaMinecraftVersion,
) -> Result<(), crate::ser::WritingError> {
write.write_u8(self.window_id)?;
write.write_var_int(&self.slot_count)?;
write.write_i32_be(self.entity_id)?;
Ok(())
}
}

View File

@ -0,0 +1,28 @@
use pumpkin_data::packet::clientbound::PLAY_PING;
use pumpkin_macros::java_packet;
use crate::{ClientPacket, ser::NetworkWriteExt};
use pumpkin_util::version::JavaMinecraftVersion;
#[java_packet(PLAY_PING)]
pub struct CPlayPing {
pub id: i32,
}
impl CPlayPing {
#[must_use]
pub const fn new(id: i32) -> Self {
Self { id }
}
}
impl ClientPacket for CPlayPing {
fn write_packet_data(
&self,
mut write: impl std::io::Write,
_version: &JavaMinecraftVersion,
) -> Result<(), crate::ser::WritingError> {
write.write_i32_be(self.id)?;
Ok(())
}
}

View File

@ -0,0 +1,33 @@
use pumpkin_data::packet::clientbound::PLAY_PLACE_GHOST_RECIPE;
use pumpkin_macros::java_packet;
use crate::{ClientPacket, ser::NetworkWriteExt};
use pumpkin_util::version::JavaMinecraftVersion;
#[java_packet(PLAY_PLACE_GHOST_RECIPE)]
pub struct CPlaceGhostRecipe<'a> {
pub window_id: u8,
pub recipe_id: &'a str,
}
impl<'a> CPlaceGhostRecipe<'a> {
#[must_use]
pub const fn new(window_id: u8, recipe_id: &'a str) -> Self {
Self {
window_id,
recipe_id,
}
}
}
impl ClientPacket for CPlaceGhostRecipe<'_> {
fn write_packet_data(
&self,
mut write: impl std::io::Write,
_version: &JavaMinecraftVersion,
) -> Result<(), crate::ser::WritingError> {
write.write_u8(self.window_id)?;
write.write_string(self.recipe_id)?;
Ok(())
}
}

View File

@ -0,0 +1,71 @@
use pumpkin_data::packet::clientbound::PLAY_PLAYER_LOOK_AT;
use pumpkin_macros::java_packet;
use crate::{ClientPacket, codec::var_int::VarInt, ser::NetworkWriteExt};
use pumpkin_util::version::JavaMinecraftVersion;
#[java_packet(PLAY_PLAYER_LOOK_AT)]
pub struct CPlayerLookAt {
pub from_anchor: VarInt,
pub target_x: f64,
pub target_y: f64,
pub target_z: f64,
pub entity: Option<(VarInt, VarInt)>,
}
impl CPlayerLookAt {
#[must_use]
pub const fn at_position(
from_anchor: VarInt,
target_x: f64,
target_y: f64,
target_z: f64,
) -> Self {
Self {
from_anchor,
target_x,
target_y,
target_z,
entity: None,
}
}
#[must_use]
pub const fn at_entity(
from_anchor: VarInt,
target_x: f64,
target_y: f64,
target_z: f64,
entity_id: VarInt,
to_anchor: VarInt,
) -> Self {
Self {
from_anchor,
target_x,
target_y,
target_z,
entity: Some((entity_id, to_anchor)),
}
}
}
impl ClientPacket for CPlayerLookAt {
fn write_packet_data(
&self,
mut write: impl std::io::Write,
_version: &JavaMinecraftVersion,
) -> Result<(), crate::ser::WritingError> {
write.write_var_int(&self.from_anchor)?;
write.write_f64_be(self.target_x)?;
write.write_f64_be(self.target_y)?;
write.write_f64_be(self.target_z)?;
if let Some((entity_id, to_anchor)) = self.entity {
write.write_bool(true)?;
write.write_var_int(&entity_id)?;
write.write_var_int(&to_anchor)?;
} else {
write.write_bool(false)?;
}
Ok(())
}
}

View File

@ -0,0 +1,30 @@
use pumpkin_data::packet::clientbound::PLAY_PLAYER_ROTATION;
use pumpkin_macros::java_packet;
use crate::{ClientPacket, ser::NetworkWriteExt};
use pumpkin_util::version::JavaMinecraftVersion;
#[java_packet(PLAY_PLAYER_ROTATION)]
pub struct CPlayerRotation {
pub yaw: f32,
pub pitch: f32,
}
impl CPlayerRotation {
#[must_use]
pub const fn new(yaw: f32, pitch: f32) -> Self {
Self { yaw, pitch }
}
}
impl ClientPacket for CPlayerRotation {
fn write_packet_data(
&self,
mut write: impl std::io::Write,
_version: &JavaMinecraftVersion,
) -> Result<(), crate::ser::WritingError> {
write.write_f32_be(self.yaw)?;
write.write_f32_be(self.pitch)?;
Ok(())
}
}

View File

@ -0,0 +1,39 @@
use pumpkin_data::packet::clientbound::PLAY_PROJECTILE_POWER;
use pumpkin_macros::java_packet;
use crate::{ClientPacket, codec::var_int::VarInt, ser::NetworkWriteExt};
use pumpkin_util::version::JavaMinecraftVersion;
#[java_packet(PLAY_PROJECTILE_POWER)]
pub struct CProjectilePower {
pub entity_id: VarInt,
pub x_power: f64,
pub y_power: f64,
pub z_power: f64,
}
impl CProjectilePower {
#[must_use]
pub const fn new(entity_id: VarInt, x_power: f64, y_power: f64, z_power: f64) -> Self {
Self {
entity_id,
x_power,
y_power,
z_power,
}
}
}
impl ClientPacket for CProjectilePower {
fn write_packet_data(
&self,
mut write: impl std::io::Write,
_version: &JavaMinecraftVersion,
) -> Result<(), crate::ser::WritingError> {
write.write_var_int(&self.entity_id)?;
write.write_f64_be(self.x_power)?;
write.write_f64_be(self.y_power)?;
write.write_f64_be(self.z_power)?;
Ok(())
}
}

View File

@ -0,0 +1,35 @@
use pumpkin_data::packet::clientbound::PLAY_RESOURCE_PACK_POP;
use pumpkin_macros::java_packet;
use crate::ClientPacket;
use crate::ser::NetworkWriteExt;
use pumpkin_util::version::JavaMinecraftVersion;
#[java_packet(PLAY_RESOURCE_PACK_POP)]
pub struct CRemoveResourcePack<'a> {
pub uuid: Option<&'a uuid::Uuid>,
}
impl<'a> CRemoveResourcePack<'a> {
#[must_use]
pub const fn new(uuid: Option<&'a uuid::Uuid>) -> Self {
Self { uuid }
}
}
impl ClientPacket for CRemoveResourcePack<'_> {
fn write_packet_data(
&self,
mut write: impl std::io::Write,
_version: &JavaMinecraftVersion,
) -> Result<(), crate::ser::WritingError> {
if let Some(uuid) = self.uuid {
write.write_bool(true)?;
write.write_uuid(uuid)?;
} else {
write.write_bool(false)?;
}
Ok(())
}
}

View File

@ -0,0 +1,36 @@
use pumpkin_data::packet::clientbound::PLAY_SERVER_DATA;
use pumpkin_macros::java_packet;
use pumpkin_util::text::TextComponent;
use crate::{ClientPacket, ser::NetworkWriteExt};
use pumpkin_util::version::JavaMinecraftVersion;
#[java_packet(PLAY_SERVER_DATA)]
pub struct CServerData<'a> {
pub motd: &'a TextComponent,
pub icon_base64: Option<&'a str>,
}
impl<'a> CServerData<'a> {
#[must_use]
pub const fn new(motd: &'a TextComponent, icon_base64: Option<&'a str>) -> Self {
Self { motd, icon_base64 }
}
}
impl ClientPacket for CServerData<'_> {
fn write_packet_data(
&self,
mut write: impl std::io::Write,
_version: &JavaMinecraftVersion,
) -> Result<(), crate::ser::WritingError> {
write.write_slice(&self.motd.encode())?;
if let Some(icon) = self.icon_base64 {
write.write_bool(true)?;
write.write_string(icon)?;
} else {
write.write_bool(false)?;
}
Ok(())
}
}

View File

@ -1,10 +1,10 @@
use pumpkin_data::packet::clientbound::PLAY_SET_CAMERA;
use pumpkin_macros::java_packet;
use crate::{ClientPacket, codec::var_int::VarInt, ser::NetworkWriteExt};
use pumpkin_util::version::JavaMinecraftVersion;
use crate::ClientPacket;
use crate::ser::NetworkWriteExt;
use crate::{VarInt, packet::MultiVersionJavaPacket};
#[java_packet(PLAY_SET_CAMERA)]
pub struct CSetCamera {
pub camera_id: VarInt,
}
@ -26,9 +26,3 @@ impl ClientPacket for CSetCamera {
Ok(())
}
}
impl MultiVersionJavaPacket for CSetCamera {
fn to_id(version: JavaMinecraftVersion) -> i32 {
PLAY_SET_CAMERA.to_id(version)
}
}

View File

@ -0,0 +1,18 @@
use pumpkin_data::packet::clientbound::PLAY_START_CONFIGURATION;
use pumpkin_macros::java_packet;
use crate::ClientPacket;
use pumpkin_util::version::JavaMinecraftVersion;
#[java_packet(PLAY_START_CONFIGURATION)]
pub struct CStartConfiguration;
impl ClientPacket for CStartConfiguration {
fn write_packet_data(
&self,
_write: impl std::io::Write,
_version: &JavaMinecraftVersion,
) -> Result<(), crate::ser::WritingError> {
Ok(())
}
}

View File

@ -0,0 +1,33 @@
use pumpkin_data::packet::clientbound::PLAY_TAG_QUERY;
use pumpkin_macros::java_packet;
use crate::{ClientPacket, codec::var_int::VarInt, ser::NetworkWriteExt};
use pumpkin_util::version::JavaMinecraftVersion;
#[java_packet(PLAY_TAG_QUERY)]
pub struct CTagQueryResponse<'a> {
pub transaction_id: VarInt,
pub nbt_bytes: &'a [u8],
}
impl<'a> CTagQueryResponse<'a> {
#[must_use]
pub const fn new(transaction_id: VarInt, nbt_bytes: &'a [u8]) -> Self {
Self {
transaction_id,
nbt_bytes,
}
}
}
impl ClientPacket for CTagQueryResponse<'_> {
fn write_packet_data(
&self,
mut write: impl std::io::Write,
_version: &JavaMinecraftVersion,
) -> Result<(), crate::ser::WritingError> {
write.write_var_int(&self.transaction_id)?;
write.write_slice(self.nbt_bytes)?;
Ok(())
}
}

View File

@ -0,0 +1,17 @@
use pumpkin_data::packet::serverbound::CONFIG_ACCEPT_CODE_OF_CONDUCT;
use pumpkin_macros::java_packet;
use crate::{ServerPacket, ser::ReadingError};
use pumpkin_util::version::JavaMinecraftVersion;
#[java_packet(CONFIG_ACCEPT_CODE_OF_CONDUCT)]
pub struct SAcceptCodeOfConduct;
impl<'a> ServerPacket<'a> for SAcceptCodeOfConduct {
fn read(
_bytebuf: &mut &'a [u8],
_version: &JavaMinecraftVersion,
) -> Result<Self, ReadingError> {
Ok(Self)
}
}

View File

@ -1,3 +1,4 @@
mod accept_code_of_conduct;
mod acknowledge_finish_config;
mod client_information;
mod cookie_response;
@ -5,8 +6,10 @@ mod custom_click_action;
mod keep_alive;
mod known_packs;
mod plugin_message;
mod pong;
mod resource_pack_response;
pub use accept_code_of_conduct::*;
pub use acknowledge_finish_config::*;
pub use client_information::*;
pub use cookie_response::*;
@ -14,4 +17,5 @@ pub use custom_click_action::*;
pub use keep_alive::*;
pub use known_packs::*;
pub use plugin_message::*;
pub use pong::*;
pub use resource_pack_response::*;

View File

@ -0,0 +1,18 @@
use pumpkin_data::packet::serverbound::CONFIG_PONG;
use pumpkin_macros::java_packet;
use crate::{ServerPacket, ser::NetworkReadExt, ser::ReadingError};
use pumpkin_util::version::JavaMinecraftVersion;
#[java_packet(CONFIG_PONG)]
pub struct SConfigPong {
pub id: i32,
}
impl<'a> ServerPacket<'a> for SConfigPong {
fn read(bytebuf: &mut &'a [u8], _version: &JavaMinecraftVersion) -> Result<Self, ReadingError> {
Ok(Self {
id: bytebuf.get_i32_be()?,
})
}
}

View File

@ -0,0 +1,24 @@
use pumpkin_data::packet::serverbound::PLAY_BLOCK_ENTITY_TAG_QUERY;
use pumpkin_macros::java_packet;
use crate::{
ServerPacket,
codec::var_int::VarInt,
ser::{NetworkReadExt, ReadingError},
};
use pumpkin_util::{math::position::BlockPos, version::JavaMinecraftVersion};
#[java_packet(PLAY_BLOCK_ENTITY_TAG_QUERY)]
pub struct SBlockEntityTagQuery {
pub transaction_id: VarInt,
pub location: BlockPos,
}
impl<'a> ServerPacket<'a> for SBlockEntityTagQuery {
fn read(bytebuf: &mut &'a [u8], _version: &JavaMinecraftVersion) -> Result<Self, ReadingError> {
Ok(Self {
transaction_id: bytebuf.get_var_int()?,
location: BlockPos::from_i64(bytebuf.get_i64_be()?),
})
}
}

View File

@ -0,0 +1,17 @@
use pumpkin_data::packet::serverbound::PLAY_CONFIGURATION_ACKNOWLEDGED;
use pumpkin_macros::java_packet;
use crate::{ServerPacket, ser::ReadingError};
use pumpkin_util::version::JavaMinecraftVersion;
#[java_packet(PLAY_CONFIGURATION_ACKNOWLEDGED)]
pub struct SConfigurationAcknowledged;
impl<'a> ServerPacket<'a> for SConfigurationAcknowledged {
fn read(
_bytebuf: &mut &'a [u8],
_version: &JavaMinecraftVersion,
) -> Result<Self, ReadingError> {
Ok(Self)
}
}

View File

@ -0,0 +1,26 @@
use pumpkin_data::packet::serverbound::PLAY_CONTAINER_SLOT_STATE_CHANGED;
use pumpkin_macros::java_packet;
use crate::{
ServerPacket,
codec::var_int::VarInt,
ser::{NetworkReadExt, ReadingError},
};
use pumpkin_util::version::JavaMinecraftVersion;
#[java_packet(PLAY_CONTAINER_SLOT_STATE_CHANGED)]
pub struct SContainerSlotStateChanged {
pub slot_id: VarInt,
pub container_id: VarInt,
pub new_state: bool,
}
impl<'a> ServerPacket<'a> for SContainerSlotStateChanged {
fn read(bytebuf: &mut &'a [u8], _version: &JavaMinecraftVersion) -> Result<Self, ReadingError> {
Ok(Self {
slot_id: bytebuf.get_var_int()?,
container_id: bytebuf.get_var_int()?,
new_state: bytebuf.get_bool()?,
})
}
}

View File

@ -0,0 +1,24 @@
use pumpkin_data::packet::serverbound::PLAY_ENTITY_TAG_QUERY;
use pumpkin_macros::java_packet;
use crate::{
ServerPacket,
codec::var_int::VarInt,
ser::{NetworkReadExt, ReadingError},
};
use pumpkin_util::version::JavaMinecraftVersion;
#[java_packet(PLAY_ENTITY_TAG_QUERY)]
pub struct SEntityTagQuery {
pub transaction_id: VarInt,
pub entity_id: VarInt,
}
impl<'a> ServerPacket<'a> for SEntityTagQuery {
fn read(bytebuf: &mut &'a [u8], _version: &JavaMinecraftVersion) -> Result<Self, ReadingError> {
Ok(Self {
transaction_id: bytebuf.get_var_int()?,
entity_id: bytebuf.get_var_int()?,
})
}
}

View File

@ -0,0 +1,21 @@
use pumpkin_data::packet::serverbound::PLAY_LOCK_DIFFICULTY;
use pumpkin_macros::java_packet;
use crate::{
ServerPacket,
ser::{NetworkReadExt, ReadingError},
};
use pumpkin_util::version::JavaMinecraftVersion;
#[java_packet(PLAY_LOCK_DIFFICULTY)]
pub struct SLockDifficulty {
pub locked: bool,
}
impl<'a> ServerPacket<'a> for SLockDifficulty {
fn read(bytebuf: &mut &'a [u8], _version: &JavaMinecraftVersion) -> Result<Self, ReadingError> {
Ok(Self {
locked: bytebuf.get_bool()?,
})
}
}

View File

@ -113,3 +113,36 @@ pub use debug_subscription_request::*;
mod debug_sample_subscription;
pub use debug_sample_subscription::*;
mod block_entity_tag_query;
pub use block_entity_tag_query::*;
mod configuration_acknowledged;
pub use configuration_acknowledged::*;
mod container_slot_state_changed;
pub use container_slot_state_changed::*;
mod entity_tag_query;
pub use entity_tag_query::*;
mod lock_difficulty;
pub use lock_difficulty::*;
mod pong;
pub use pong::*;
mod resource_pack_response;
pub use resource_pack_response::*;
mod set_command_minecart;
pub use set_command_minecart::*;
mod set_game_rule;
pub use set_game_rule::*;
mod set_structure_block;
pub use set_structure_block::*;
mod spectate_entity;
pub use spectate_entity::*;

View File

@ -0,0 +1,21 @@
use pumpkin_data::packet::serverbound::PLAY_PONG;
use pumpkin_macros::java_packet;
use crate::{
ServerPacket,
ser::{NetworkReadExt, ReadingError},
};
use pumpkin_util::version::JavaMinecraftVersion;
#[java_packet(PLAY_PONG)]
pub struct SPlayPong {
pub id: i32,
}
impl<'a> ServerPacket<'a> for SPlayPong {
fn read(bytebuf: &mut &'a [u8], _version: &JavaMinecraftVersion) -> Result<Self, ReadingError> {
Ok(Self {
id: bytebuf.get_i32_be()?,
})
}
}

View File

@ -0,0 +1,54 @@
use pumpkin_data::packet::serverbound::PLAY_RESOURCE_PACK;
use pumpkin_macros::java_packet;
use crate::{
ServerPacket,
codec::var_int::VarInt,
ser::{NetworkReadExt, ReadingError},
};
use pumpkin_util::version::JavaMinecraftVersion;
#[derive(Debug, PartialEq, Eq)]
pub enum PlayResourcePackResult {
DownloadSuccess,
Declined,
DownloadFail,
Accepted,
Downloaded,
InvalidUrl,
ReloadFailed,
Discarded,
Unknown(i32),
}
#[java_packet(PLAY_RESOURCE_PACK)]
pub struct SPlayResourcePack {
pub uuid: uuid::Uuid,
pub result: VarInt,
}
impl SPlayResourcePack {
#[must_use]
pub const fn response_result(&self) -> PlayResourcePackResult {
match self.result.0 {
0 => PlayResourcePackResult::DownloadSuccess,
1 => PlayResourcePackResult::Declined,
2 => PlayResourcePackResult::DownloadFail,
3 => PlayResourcePackResult::Accepted,
4 => PlayResourcePackResult::Downloaded,
5 => PlayResourcePackResult::InvalidUrl,
6 => PlayResourcePackResult::ReloadFailed,
7 => PlayResourcePackResult::Discarded,
v => PlayResourcePackResult::Unknown(v),
}
}
}
impl<'a> ServerPacket<'a> for SPlayResourcePack {
fn read(bytebuf: &mut &'a [u8], _version: &JavaMinecraftVersion) -> Result<Self, ReadingError> {
Ok(Self {
uuid: bytebuf.get_uuid()?,
result: bytebuf.get_var_int()?,
})
}
}

View File

@ -0,0 +1,26 @@
use pumpkin_data::packet::serverbound::PLAY_SET_COMMAND_MINECART;
use pumpkin_macros::java_packet;
use crate::{
ServerPacket,
codec::var_int::VarInt,
ser::{NetworkReadExt, NetworkReadSliceExt, ReadingError},
};
use pumpkin_util::version::JavaMinecraftVersion;
#[java_packet(PLAY_SET_COMMAND_MINECART)]
pub struct SSetCommandMinecart<'a> {
pub entity_id: VarInt,
pub command: &'a str,
pub track_output: bool,
}
impl<'a> ServerPacket<'a> for SSetCommandMinecart<'a> {
fn read(bytebuf: &mut &'a [u8], _version: &JavaMinecraftVersion) -> Result<Self, ReadingError> {
Ok(Self {
entity_id: bytebuf.get_var_int()?,
command: bytebuf.get_str_borrowed()?,
track_output: bytebuf.get_bool()?,
})
}
}

View File

@ -0,0 +1,23 @@
use pumpkin_data::packet::serverbound::PLAY_SET_GAME_RULE;
use pumpkin_macros::java_packet;
use crate::{
ServerPacket,
ser::{NetworkReadSliceExt, ReadingError},
};
use pumpkin_util::version::JavaMinecraftVersion;
#[java_packet(PLAY_SET_GAME_RULE)]
pub struct SSetGameRule<'a> {
pub rule: &'a str,
pub value: &'a str,
}
impl<'a> ServerPacket<'a> for SSetGameRule<'a> {
fn read(bytebuf: &mut &'a [u8], _version: &JavaMinecraftVersion) -> Result<Self, ReadingError> {
Ok(Self {
rule: bytebuf.get_str_borrowed()?,
value: bytebuf.get_str_borrowed()?,
})
}
}

View File

@ -0,0 +1,52 @@
use pumpkin_data::packet::serverbound::PLAY_SET_STRUCTURE_BLOCK;
use pumpkin_macros::java_packet;
use crate::{
ServerPacket,
codec::{var_int::VarInt, var_long::VarLong},
ser::{NetworkReadExt, NetworkReadSliceExt, ReadingError},
};
use pumpkin_util::{math::position::BlockPos, version::JavaMinecraftVersion};
#[java_packet(PLAY_SET_STRUCTURE_BLOCK)]
pub struct SSetStructureBlock<'a> {
pub location: BlockPos,
pub action: VarInt,
pub mode: VarInt,
pub name: &'a str,
pub offset_x: i8,
pub offset_y: i8,
pub offset_z: i8,
pub size_x: u8,
pub size_y: u8,
pub size_z: u8,
pub mirror: VarInt,
pub rotation: VarInt,
pub metadata: &'a str,
pub integrity: f32,
pub seed: VarLong,
pub flags: u8,
}
impl<'a> ServerPacket<'a> for SSetStructureBlock<'a> {
fn read(bytebuf: &mut &'a [u8], _version: &JavaMinecraftVersion) -> Result<Self, ReadingError> {
Ok(Self {
location: BlockPos::from_i64(bytebuf.get_i64_be()?),
action: bytebuf.get_var_int()?,
mode: bytebuf.get_var_int()?,
name: bytebuf.get_str_borrowed()?,
offset_x: bytebuf.get_i8()?,
offset_y: bytebuf.get_i8()?,
offset_z: bytebuf.get_i8()?,
size_x: bytebuf.get_u8()?,
size_y: bytebuf.get_u8()?,
size_z: bytebuf.get_u8()?,
mirror: bytebuf.get_var_int()?,
rotation: bytebuf.get_var_int()?,
metadata: bytebuf.get_str_borrowed()?,
integrity: bytebuf.get_f32()?,
seed: bytebuf.get_var_long()?,
flags: bytebuf.get_u8()?,
})
}
}

View File

@ -0,0 +1,21 @@
use pumpkin_data::packet::serverbound::PLAY_SPECTATE_ENTITY;
use pumpkin_macros::java_packet;
use crate::{
ServerPacket,
ser::{NetworkReadExt, ReadingError},
};
use pumpkin_util::version::JavaMinecraftVersion;
#[java_packet(PLAY_SPECTATE_ENTITY)]
pub struct SSpectateEntity {
pub target: uuid::Uuid,
}
impl<'a> ServerPacket<'a> for SSpectateEntity {
fn read(bytebuf: &mut &'a [u8], _version: &JavaMinecraftVersion) -> Result<Self, ReadingError> {
Ok(Self {
target: bytebuf.get_uuid()?,
})
}
}

View File

@ -12,17 +12,19 @@ use crossbeam::atomic::AtomicCell;
use pumpkin_data::packet::CURRENT_MC_VERSION;
use pumpkin_data::translation;
use pumpkin_protocol::java::server::play::{
SAttack, SBundleItemSelected, SChangeGameMode, SChatCommand, SChatMessage, SChunkBatch,
SClickSlot, SClientCommand, SClientInformationPlay, SClientTickEnd, SCloseContainer,
SCommandSuggestion, SConfirmTeleport, SContainerButtonClick,
SCookieResponse as SPCookieResponse, SCustomPayload, SDebugSampleSubscription,
SDebugSubscriptionRequest, SEditBook, SInteract, SJigsawGenerate, SMoveVehicle, SPaddleBoat,
SPickItemFromBlock, SPlaceRecipe, SPlayPingRequest, SPlayerAbilities, SPlayerAction,
SPlayerCommand, SPlayerInput, SPlayerLoaded, SPlayerPosition, SPlayerPositionRotation,
SPlayerRotation, SPlayerSession, SRecipeBookChangeSettings, SRecipeBookSeenRecipe, SRenameItem,
SSeenAdvancement, SSelectTrade, SSetCommandBlock, SSetCreativeSlot, SSetHeldItem,
SSetJigsawBlock, SSetPlayerGround, SSetTestBlock, SSwingArm, STeleportToEntity,
STestInstanceBlockAction, SUpdateSign, SUseItem, SUseItemOn,
SAttack, SBlockEntityTagQuery, SBundleItemSelected, SChangeGameMode, SChatCommand,
SChatMessage, SChunkBatch, SClickSlot, SClientCommand, SClientInformationPlay, SClientTickEnd,
SCloseContainer, SCommandSuggestion, SConfigurationAcknowledged, SConfirmTeleport,
SContainerButtonClick, SContainerSlotStateChanged, SCookieResponse as SPCookieResponse,
SCustomPayload, SDebugSampleSubscription, SDebugSubscriptionRequest, SEditBook,
SEntityTagQuery, SInteract, SJigsawGenerate, SLockDifficulty, SMoveVehicle, SPaddleBoat,
SPickItemFromBlock, SPlaceRecipe, SPlayPingRequest, SPlayPong, SPlayResourcePack,
SPlayerAbilities, SPlayerAction, SPlayerCommand, SPlayerInput, SPlayerLoaded, SPlayerPosition,
SPlayerPositionRotation, SPlayerRotation, SPlayerSession, SRecipeBookChangeSettings,
SRecipeBookSeenRecipe, SRenameItem, SSeenAdvancement, SSelectTrade, SSetCommandBlock,
SSetCommandMinecart, SSetCreativeSlot, SSetGameRule, SSetHeldItem, SSetJigsawBlock,
SSetPlayerGround, SSetStructureBlock, SSetTestBlock, SSpectateEntity, SSwingArm,
STeleportToEntity, STestInstanceBlockAction, SUpdateSign, SUseItem, SUseItemOn,
};
use pumpkin_protocol::packet::MultiVersionJavaPacket;
use pumpkin_protocol::{
@ -999,6 +1001,70 @@ impl JavaClient {
)
.await;
}
id if id == SPlayResourcePack::to_id(version) => {
self.handle_play_resource_pack_response(
server,
player,
SPlayResourcePack::read(&mut payload, &version)?,
)
.await;
}
id if id == SPlayPong::to_id(version) => {
self.handle_play_pong(player, &SPlayPong::read(&mut payload, &version)?);
}
id if id == SLockDifficulty::to_id(version) => {
self.handle_lock_difficulty(
server,
player,
&SLockDifficulty::read(&mut payload, &version)?,
);
}
id if id == SContainerSlotStateChanged::to_id(version) => {
self.handle_container_slot_state_changed(
player,
&SContainerSlotStateChanged::read(&mut payload, &version)?,
);
}
id if id == SSpectateEntity::to_id(version) => {
self.handle_spectate_entity(
player,
server,
SSpectateEntity::read(&mut payload, &version)?,
)
.await;
}
id if id == SSetCommandMinecart::to_id(version) => {
self.handle_set_command_minecart(
player,
&SSetCommandMinecart::read(&mut payload, &version)?,
);
}
id if id == SSetStructureBlock::to_id(version) => {
self.handle_set_structure_block(
player,
&SSetStructureBlock::read(&mut payload, &version)?,
);
}
id if id == SSetGameRule::to_id(version) => {
self.handle_set_game_rule(player, &SSetGameRule::read(&mut payload, &version)?);
}
id if id == SBlockEntityTagQuery::to_id(version) => {
self.handle_block_entity_tag_query(
player,
SBlockEntityTagQuery::read(&mut payload, &version)?,
)
.await;
}
id if id == SEntityTagQuery::to_id(version) => {
self.handle_entity_tag_query(
player,
SEntityTagQuery::read(&mut payload, &version)?,
)
.await;
}
id if id == SConfigurationAcknowledged::to_id(version) => {
self.handle_configuration_acknowledged(player);
}
_ => {
warn!("Failed to handle player packet id {}", event.packet_id);
}

View File

@ -13,8 +13,8 @@ use pumpkin_protocol::{
packet_decoder::TCPNetworkDecoder,
packet_encoder::TCPNetworkEncoder,
server::config::{
SAcknowledgeFinishConfig, SClientInformationConfig, SConfigCookieResponse,
SConfigResourcePack, SKnownPacks, SPluginMessage,
SAcceptCodeOfConduct, SAcknowledgeFinishConfig, SClientInformationConfig,
SConfigCookieResponse, SConfigPong, SConfigResourcePack, SKnownPacks, SPluginMessage,
},
},
packet::MultiVersionJavaPacket,
@ -389,6 +389,14 @@ impl PendingConnection {
)?);
Ok(None)
}
id if id == SConfigPong::to_id(version) => {
let _pong = SConfigPong::read(&mut payload, &version)?;
Ok(None)
}
id if id == SAcceptCodeOfConduct::to_id(version) => {
let _accept = SAcceptCodeOfConduct::read(&mut payload, &version)?;
Ok(None)
}
_ => Err(ReadingError::Message(format!(
"Failed to handle packet id {} in Config State",
packet.id

View File

@ -0,0 +1,13 @@
#[allow(clippy::wildcard_imports)]
use super::*;
use pumpkin_protocol::ConnectionState;
impl JavaClient {
pub fn handle_configuration_acknowledged(&self, player: &Player) {
debug!(
"Player {} acknowledged configuration switch",
player.gameprofile.name
);
self.connection_state.store(ConnectionState::Config);
}
}

View File

@ -0,0 +1,17 @@
#[allow(clippy::wildcard_imports)]
use super::*;
use pumpkin_protocol::java::server::play::SContainerSlotStateChanged;
impl JavaClient {
pub fn handle_container_slot_state_changed(
&self,
player: &Player,
packet: &SContainerSlotStateChanged,
) {
debug!(
"Player {} container {} slot {} state changed to {}",
player.gameprofile.name, packet.container_id.0, packet.slot_id.0, packet.new_state
);
let _ = player;
}
}

View File

@ -0,0 +1,20 @@
#[allow(clippy::wildcard_imports)]
use super::*;
use pumpkin_protocol::java::server::play::SLockDifficulty;
impl JavaClient {
pub fn handle_lock_difficulty(
&self,
server: &Server,
player: &Player,
packet: &SLockDifficulty,
) {
if player.permission_lvl.load() >= PermissionLvl::Two {
info!(
"Player {} requested difficulty lock: {}",
player.gameprofile.name, packet.locked
);
let _ = server;
}
}
}

View File

@ -227,7 +227,9 @@ pub mod client_command;
pub mod client_information;
pub mod close_container;
pub mod command_suggestion;
pub mod configuration_acknowledged;
pub mod confirm_teleport;
pub mod container_slot_state_changed;
pub mod cookie_response;
pub mod debug_sample_subscription;
pub mod debug_subscription_request;
@ -235,6 +237,7 @@ pub mod edit_book;
pub mod interact;
pub mod jigsaw_generate;
pub mod keep_alive;
pub mod lock_difficulty;
pub mod move_vehicle;
pub mod paddle_boat;
pub mod pick_item;
@ -248,16 +251,23 @@ pub mod player_input;
pub mod player_loaded;
pub mod player_position;
pub mod player_rotation;
pub mod pong;
pub mod recipe_book_change_settings;
pub mod recipe_book_seen_recipe;
pub mod resource_pack_response;
pub mod seen_advancement;
pub mod select_trade;
pub mod set_command_block;
pub mod set_command_minecart;
pub mod set_creative_slot;
pub mod set_game_rule;
pub mod set_held_item;
pub mod set_jigsaw_block;
pub mod set_structure_block;
pub mod set_test_block;
pub mod spectate_entity;
pub mod swing_arm;
pub mod tag_query;
pub mod teleport_to_entity;
pub mod test_instance_block_action;
pub mod update_sign;

View File

@ -0,0 +1,12 @@
#[allow(clippy::wildcard_imports)]
use super::*;
use pumpkin_protocol::java::server::play::SPlayPong;
impl JavaClient {
pub fn handle_play_pong(&self, player: &Player, packet: &SPlayPong) {
debug!(
"Received pong from player {} with id {}",
player.gameprofile.name, packet.id
);
}
}

View File

@ -0,0 +1,38 @@
#[allow(clippy::wildcard_imports)]
use super::*;
use pumpkin_protocol::java::server::play::{PlayResourcePackResult, SPlayResourcePack};
use pumpkin_util::text::TextComponent;
use crate::plugin::api::events::player::player_resource_pack_status::PlayerResourcePackStatusEvent;
impl JavaClient {
pub async fn handle_play_resource_pack_response(
&self,
server: &Arc<Server>,
player: &Arc<Player>,
packet: SPlayResourcePack,
) {
let result = packet.response_result();
debug!(
"Player {} resource pack response for {}: {:?}",
player.gameprofile.name, packet.uuid, result
);
let mut event = PlayerResourcePackStatusEvent::new(
player.clone(),
packet.uuid.to_string(),
format!("{result:?}"),
);
server.plugin_manager.fire(server, &mut event).await;
if server.advanced_config.resource_pack.java.force
&& (result == PlayResourcePackResult::Declined
|| result == PlayResourcePackResult::DownloadFail)
{
self.kick(TextComponent::text(
"You must accept the resource pack to play on this server.",
))
.await;
}
}
}

View File

@ -0,0 +1,21 @@
#[allow(clippy::wildcard_imports)]
use super::*;
use pumpkin_protocol::java::server::play::SSetCommandMinecart;
impl JavaClient {
pub fn handle_set_command_minecart(&self, player: &Player, packet: &SSetCommandMinecart<'_>) {
if player.permission_lvl.load() < PermissionLvl::Two {
return;
}
let world = player.world();
if let Some(entity) = world.get_entity_by_id(packet.entity_id.0) {
debug!(
"Player {} updated command minecart {} command to: {}",
player.gameprofile.name,
entity.get_entity().entity_id,
packet.command
);
}
}
}

View File

@ -0,0 +1,16 @@
#[allow(clippy::wildcard_imports)]
use super::*;
use pumpkin_protocol::java::server::play::SSetGameRule;
impl JavaClient {
pub fn handle_set_game_rule(&self, player: &Player, packet: &SSetGameRule<'_>) {
if player.permission_lvl.load() < PermissionLvl::Two {
return;
}
info!(
"Player {} set gamerule {} to {}",
player.gameprofile.name, packet.rule, packet.value
);
}
}

View File

@ -0,0 +1,16 @@
#[allow(clippy::wildcard_imports)]
use super::*;
use pumpkin_protocol::java::server::play::SSetStructureBlock;
impl JavaClient {
pub fn handle_set_structure_block(&self, player: &Player, packet: &SSetStructureBlock<'_>) {
if player.permission_lvl.load() < PermissionLvl::Two {
return;
}
debug!(
"Player {} set structure block at {:?}, name: {}, mode: {}",
player.gameprofile.name, packet.location, packet.name, packet.mode.0
);
}
}

View File

@ -0,0 +1,55 @@
#[allow(clippy::wildcard_imports)]
use super::*;
use pumpkin_protocol::java::{client::play::CSetCamera, server::play::SSpectateEntity};
use pumpkin_util::GameMode;
impl JavaClient {
pub async fn handle_spectate_entity(
&self,
player: &Arc<Player>,
server: &Server,
packet: SSpectateEntity,
) {
if !player.has_client_loaded() {
return;
}
player.update_last_action_time();
if player.gamemode.load() != GameMode::Spectator {
return;
}
let world = player.world();
if let Some(target) = world.get_entity_by_uuid(packet.target) {
let target_pos = target.get_entity().pos.load();
let target_yaw = target.get_entity().yaw.load();
let target_pitch = target.get_entity().pitch.load();
let target_id = target.get_entity().entity_id;
player.camera_target_id.store(Some(target_id));
player
.client
.send_packet_now(&CSetCamera::new(target_id.into()))
.await;
player
.request_teleport(target_pos, target_yaw, target_pitch)
.await;
} else if let Some(target_player) = server.get_player_by_uuid(packet.target) {
let target_pos = target_player.living_entity.entity.pos.load();
let target_yaw = target_player.living_entity.entity.yaw.load();
let target_pitch = target_player.living_entity.entity.pitch.load();
let target_id = target_player.living_entity.entity.entity_id;
player.camera_target_id.store(Some(target_id));
player
.client
.send_packet_now(&CSetCamera::new(target_id.into()))
.await;
player
.request_teleport(target_pos, target_yaw, target_pitch)
.await;
}
}
}

View File

@ -0,0 +1,34 @@
#[allow(clippy::wildcard_imports)]
use super::*;
use pumpkin_protocol::java::{
client::play::CTagQueryResponse,
server::play::{SBlockEntityTagQuery, SEntityTagQuery},
};
impl JavaClient {
pub async fn handle_block_entity_tag_query(
&self,
player: &Player,
packet: SBlockEntityTagQuery,
) {
if player.permission_lvl.load() < PermissionLvl::Two {
return;
}
// Empty NBT compound (TAG_End = 0)
let empty_nbt = [0u8];
self.send_packet_now(&CTagQueryResponse::new(packet.transaction_id, &empty_nbt))
.await;
}
pub async fn handle_entity_tag_query(&self, player: &Player, packet: SEntityTagQuery) {
if player.permission_lvl.load() < PermissionLvl::Two {
return;
}
// Empty NBT compound (TAG_End = 0)
let empty_nbt = [0u8];
self.send_packet_now(&CTagQueryResponse::new(packet.transaction_id, &empty_nbt))
.await;
}
}

Some files were not shown because too many files have changed in this diff Show More