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" name = "pumpkin-fuzzer"
version = "0.1.0-dev+26.2-26.40" version = "0.1.0-dev+26.2-26.40"
dependencies = [ dependencies = [
"bytes",
"clap", "clap",
"colored", "colored",
"pumpkin-protocol",
"pumpkin-util",
"rand 0.9.5", "rand 0.9.5",
"tokio", "tokio",
] ]

View File

@ -4,7 +4,7 @@ use crate::item::Item;
use crate::item_stack::ItemStack; use crate::item_stack::ItemStack;
use pumpkin_util::identifier::Identifier; use pumpkin_util::identifier::Identifier;
use pumpkin_util::text::TextComponent; 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::collections::BTreeMap;
use std::fmt::Display; use std::fmt::Display;
use std::hash::{Hash, Hasher}; use std::hash::{Hash, Hasher};

View File

@ -1,5 +1,6 @@
/* This file is generated. Do not edit manually. */ /* This file is generated. Do not edit manually. */
use crate::biome::de::Deserialize; use crate::biome::de::Deserialize;
use crate::entity_type::EntityType;
use crate::tag::RegistryKey; use crate::tag::RegistryKey;
use crate::tag::Taggable; use crate::tag::Taggable;
use pumpkin_util::biome::{TemperatureModifier, Weather}; 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. */ /* This file is generated. Do not edit manually. */
use pumpkin_util::math::float_provider::{ use pumpkin_util::math::float_provider::{
FloatProvider, NormalFloatProvider, ClampedNormalFloatProvider, ConstantFloatProvider, FloatProvider, NormalFloatProvider,
TrapezoidFloatProvider, UniformFloatProvider, TrapezoidFloatProvider, UniformFloatProvider,
}; };
use pumpkin_util::y_offset::{AboveBottom, Absolute, BelowTop, YOffset}; use pumpkin_util::y_offset::{AboveBottom, Absolute, BelowTop, YOffset};
@ -63,6 +63,7 @@ pub struct CarverConfig {
pub replaceable: crate::tag::Tag, pub replaceable: crate::tag::Tag,
pub additional: CarverAdditionalConfig, pub additional: CarverAdditionalConfig,
} }
use super::*;
pub const CANYON: CarverConfig = CarverConfig { pub const CANYON: CarverConfig = CarverConfig {
probability: 0.01f32, probability: 0.01f32,
y: HeightProvider::Uniform(UniformHeightProvider { y: HeightProvider::Uniform(UniformHeightProvider {

View File

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

View File

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

View File

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

View File

@ -1,6 +1,8 @@
/* This file is generated. Do not edit manually. */ /* This file is generated. Do not edit manually. */
use pumpkin_util::math::int_provider::{ use pumpkin_util::math::int_provider::{
IntProvider, NormalIntProvider, UniformIntProvider, BiasedToBottomIntProvider, ClampedIntProvider, ClampedNormalIntProvider, ConstantIntProvider,
IntProvider, NormalIntProvider, TrapezoidIntProvider, UniformIntProvider, WeightedEntry,
WeightedListIntProvider,
}; };
#[derive(Debug, Clone)] #[derive(Debug, Clone)]
pub struct Dimension { 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> { pub fn from_name(name: &str) -> Option<&'static Self> {
let name = if name.contains(':') { match name {
std::borrow::Cow::Borrowed(name) "minecraft:aqua_affinity" | "aqua_affinity" => Some(&Self::AQUA_AFFINITY),
} else { "minecraft:bane_of_arthropods" | "bane_of_arthropods" => {
std::borrow::Cow::Owned(format!("minecraft:{name}")) Some(&Self::BANE_OF_ARTHROPODS)
}; }
match name.as_ref() { "minecraft:binding_curse" | "binding_curse" => Some(&Self::BINDING_CURSE),
"minecraft:aqua_affinity" => Some(&Self::AQUA_AFFINITY), "minecraft:blast_protection" | "blast_protection" => Some(&Self::BLAST_PROTECTION),
"minecraft:bane_of_arthropods" => Some(&Self::BANE_OF_ARTHROPODS), "minecraft:breach" | "breach" => Some(&Self::BREACH),
"minecraft:binding_curse" => Some(&Self::BINDING_CURSE), "minecraft:channeling" | "channeling" => Some(&Self::CHANNELING),
"minecraft:blast_protection" => Some(&Self::BLAST_PROTECTION), "minecraft:density" | "density" => Some(&Self::DENSITY),
"minecraft:breach" => Some(&Self::BREACH), "minecraft:depth_strider" | "depth_strider" => Some(&Self::DEPTH_STRIDER),
"minecraft:channeling" => Some(&Self::CHANNELING), "minecraft:efficiency" | "efficiency" => Some(&Self::EFFICIENCY),
"minecraft:density" => Some(&Self::DENSITY), "minecraft:feather_falling" | "feather_falling" => Some(&Self::FEATHER_FALLING),
"minecraft:depth_strider" => Some(&Self::DEPTH_STRIDER), "minecraft:fire_aspect" | "fire_aspect" => Some(&Self::FIRE_ASPECT),
"minecraft:efficiency" => Some(&Self::EFFICIENCY), "minecraft:fire_protection" | "fire_protection" => Some(&Self::FIRE_PROTECTION),
"minecraft:feather_falling" => Some(&Self::FEATHER_FALLING), "minecraft:flame" | "flame" => Some(&Self::FLAME),
"minecraft:fire_aspect" => Some(&Self::FIRE_ASPECT), "minecraft:fortune" | "fortune" => Some(&Self::FORTUNE),
"minecraft:fire_protection" => Some(&Self::FIRE_PROTECTION), "minecraft:frost_walker" | "frost_walker" => Some(&Self::FROST_WALKER),
"minecraft:flame" => Some(&Self::FLAME), "minecraft:impaling" | "impaling" => Some(&Self::IMPALING),
"minecraft:fortune" => Some(&Self::FORTUNE), "minecraft:infinity" | "infinity" => Some(&Self::INFINITY),
"minecraft:frost_walker" => Some(&Self::FROST_WALKER), "minecraft:knockback" | "knockback" => Some(&Self::KNOCKBACK),
"minecraft:impaling" => Some(&Self::IMPALING), "minecraft:looting" | "looting" => Some(&Self::LOOTING),
"minecraft:infinity" => Some(&Self::INFINITY), "minecraft:loyalty" | "loyalty" => Some(&Self::LOYALTY),
"minecraft:knockback" => Some(&Self::KNOCKBACK), "minecraft:luck_of_the_sea" | "luck_of_the_sea" => Some(&Self::LUCK_OF_THE_SEA),
"minecraft:looting" => Some(&Self::LOOTING), "minecraft:lunge" | "lunge" => Some(&Self::LUNGE),
"minecraft:loyalty" => Some(&Self::LOYALTY), "minecraft:lure" | "lure" => Some(&Self::LURE),
"minecraft:luck_of_the_sea" => Some(&Self::LUCK_OF_THE_SEA), "minecraft:mending" | "mending" => Some(&Self::MENDING),
"minecraft:lunge" => Some(&Self::LUNGE), "minecraft:multishot" | "multishot" => Some(&Self::MULTISHOT),
"minecraft:lure" => Some(&Self::LURE), "minecraft:piercing" | "piercing" => Some(&Self::PIERCING),
"minecraft:mending" => Some(&Self::MENDING), "minecraft:power" | "power" => Some(&Self::POWER),
"minecraft:multishot" => Some(&Self::MULTISHOT), "minecraft:projectile_protection" | "projectile_protection" => {
"minecraft:piercing" => Some(&Self::PIERCING), Some(&Self::PROJECTILE_PROTECTION)
"minecraft:power" => Some(&Self::POWER), }
"minecraft:projectile_protection" => Some(&Self::PROJECTILE_PROTECTION), "minecraft:protection" | "protection" => Some(&Self::PROTECTION),
"minecraft:protection" => Some(&Self::PROTECTION), "minecraft:punch" | "punch" => Some(&Self::PUNCH),
"minecraft:punch" => Some(&Self::PUNCH), "minecraft:quick_charge" | "quick_charge" => Some(&Self::QUICK_CHARGE),
"minecraft:quick_charge" => Some(&Self::QUICK_CHARGE), "minecraft:respiration" | "respiration" => Some(&Self::RESPIRATION),
"minecraft:respiration" => Some(&Self::RESPIRATION), "minecraft:riptide" | "riptide" => Some(&Self::RIPTIDE),
"minecraft:riptide" => Some(&Self::RIPTIDE), "minecraft:sharpness" | "sharpness" => Some(&Self::SHARPNESS),
"minecraft:sharpness" => Some(&Self::SHARPNESS), "minecraft:silk_touch" | "silk_touch" => Some(&Self::SILK_TOUCH),
"minecraft:silk_touch" => Some(&Self::SILK_TOUCH), "minecraft:smite" | "smite" => Some(&Self::SMITE),
"minecraft:smite" => Some(&Self::SMITE), "minecraft:soul_speed" | "soul_speed" => Some(&Self::SOUL_SPEED),
"minecraft:soul_speed" => Some(&Self::SOUL_SPEED), "minecraft:sweeping_edge" | "sweeping_edge" => Some(&Self::SWEEPING_EDGE),
"minecraft:sweeping_edge" => Some(&Self::SWEEPING_EDGE), "minecraft:swift_sneak" | "swift_sneak" => Some(&Self::SWIFT_SNEAK),
"minecraft:swift_sneak" => Some(&Self::SWIFT_SNEAK), "minecraft:thorns" | "thorns" => Some(&Self::THORNS),
"minecraft:thorns" => Some(&Self::THORNS), "minecraft:unbreaking" | "unbreaking" => Some(&Self::UNBREAKING),
"minecraft:unbreaking" => Some(&Self::UNBREAKING), "minecraft:vanishing_curse" | "vanishing_curse" => Some(&Self::VANISHING_CURSE),
"minecraft:vanishing_curse" => Some(&Self::VANISHING_CURSE), "minecraft:wind_burst" | "wind_burst" => Some(&Self::WIND_BURST),
"minecraft:wind_burst" => Some(&Self::WIND_BURST),
_ => None, _ => None,
} }
} }

View File

@ -1,4 +1,184 @@
/* This file is generated. Do not edit manually. */ /* 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] = &[ 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, 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, 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, version: pumpkin_util::version::JavaMinecraftVersion,
) -> u16 { ) -> u16 {
match version { 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 pumpkin_util::version::JavaMinecraftVersion::V_1_20_5 => ENTITY_ID_REMAP_V_26_2_TO_V_1_20_5
.get(usize::from(entity_id)) .get(usize::from(entity_id))
.copied() .copied()

View File

@ -301,7 +301,7 @@ impl EntityType {
(Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64), (Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64),
(Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64), (Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64),
], ],
experience_reward: 1u32, experience_reward: 2u32,
hurt_sound: None, hurt_sound: None,
attackable: Some(true), attackable: Some(true),
mob: true, mob: true,
@ -432,7 +432,7 @@ impl EntityType {
(Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64), (Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64),
(Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64), (Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64),
], ],
experience_reward: 1u32, experience_reward: 3u32,
hurt_sound: None, hurt_sound: None,
attackable: Some(true), attackable: Some(true),
mob: true, mob: true,
@ -1140,7 +1140,7 @@ impl EntityType {
(Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64), (Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64),
(Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64), (Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64),
], ],
experience_reward: 2u32, experience_reward: 1u32,
hurt_sound: None, hurt_sound: None,
attackable: Some(true), attackable: Some(true),
mob: true, mob: true,
@ -1506,7 +1506,7 @@ impl EntityType {
(Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64), (Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64),
(Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64), (Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64),
], ],
experience_reward: 2u32, experience_reward: 1u32,
hurt_sound: None, hurt_sound: None,
attackable: Some(true), attackable: Some(true),
mob: true, mob: true,
@ -1856,7 +1856,7 @@ impl EntityType {
(Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64), (Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64),
(Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64), (Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64),
], ],
experience_reward: 3u32, experience_reward: 2u32,
hurt_sound: None, hurt_sound: None,
attackable: Some(true), attackable: Some(true),
mob: true, mob: true,
@ -2216,7 +2216,7 @@ impl EntityType {
(Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64), (Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64),
(Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64), (Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64),
], ],
experience_reward: 2u32, experience_reward: 1u32,
hurt_sound: None, hurt_sound: None,
attackable: Some(true), attackable: Some(true),
mob: true, mob: true,
@ -2324,7 +2324,7 @@ impl EntityType {
(Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64), (Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64),
(Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64), (Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64),
], ],
experience_reward: 2u32, experience_reward: 3u32,
hurt_sound: None, hurt_sound: None,
attackable: Some(true), attackable: Some(true),
mob: true, mob: true,
@ -3346,7 +3346,7 @@ impl EntityType {
(Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64), (Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64),
(Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64), (Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64),
], ],
experience_reward: 1u32, experience_reward: 3u32,
hurt_sound: None, hurt_sound: None,
attackable: Some(true), attackable: Some(true),
mob: true, mob: true,
@ -3712,7 +3712,7 @@ impl EntityType {
(Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64), (Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64),
(Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64), (Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64),
], ],
experience_reward: 2u32, experience_reward: 3u32,
hurt_sound: None, hurt_sound: None,
attackable: Some(true), attackable: Some(true),
mob: true, mob: true,
@ -3804,7 +3804,7 @@ impl EntityType {
(Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64), (Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64),
(Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64), (Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64),
], ],
experience_reward: 1u32, experience_reward: 3u32,
hurt_sound: None, hurt_sound: None,
attackable: Some(true), attackable: Some(true),
mob: true, mob: true,
@ -4288,7 +4288,7 @@ impl EntityType {
(Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64), (Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64),
(Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64), (Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64),
], ],
experience_reward: 2u32, experience_reward: 1u32,
hurt_sound: None, hurt_sound: None,
attackable: Some(true), attackable: Some(true),
mob: true, mob: true,
@ -4929,7 +4929,7 @@ impl EntityType {
(Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64), (Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64),
(Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64), (Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64),
], ],
experience_reward: 3u32, experience_reward: 2u32,
hurt_sound: None, hurt_sound: None,
attackable: Some(true), attackable: Some(true),
mob: true, mob: true,
@ -5488,7 +5488,7 @@ impl EntityType {
(Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64), (Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64),
(Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64), (Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64),
], ],
experience_reward: 1u32, experience_reward: 2u32,
hurt_sound: None, hurt_sound: None,
attackable: Some(true), attackable: Some(true),
mob: true, mob: true,
@ -5580,7 +5580,7 @@ impl EntityType {
(Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64), (Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64),
(Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64), (Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64),
], ],
experience_reward: 3u32, experience_reward: 1u32,
hurt_sound: None, hurt_sound: None,
attackable: Some(true), attackable: Some(true),
mob: true, mob: true,
@ -6094,7 +6094,7 @@ impl EntityType {
(Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64), (Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64),
(Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64), (Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64),
], ],
experience_reward: 2u32, experience_reward: 3u32,
hurt_sound: None, hurt_sound: None,
attackable: Some(true), attackable: Some(true),
mob: true, mob: true,
@ -6276,7 +6276,7 @@ impl EntityType {
(Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64), (Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64),
(Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64), (Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64),
], ],
experience_reward: 1u32, experience_reward: 2u32,
hurt_sound: None, hurt_sound: None,
attackable: Some(true), attackable: Some(true),
mob: true, mob: true,
@ -6857,7 +6857,7 @@ impl EntityType {
(Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64), (Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64),
(Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64), (Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64),
], ],
experience_reward: 3u32, experience_reward: 2u32,
hurt_sound: None, hurt_sound: None,
attackable: Some(true), attackable: Some(true),
mob: true, mob: true,
@ -7096,7 +7096,7 @@ impl EntityType {
(Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64), (Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64),
(Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64), (Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64),
], ],
experience_reward: 1u32, experience_reward: 2u32,
hurt_sound: None, hurt_sound: None,
attackable: Some(true), attackable: Some(true),
mob: true, mob: true,
@ -7198,7 +7198,7 @@ impl EntityType {
(Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64), (Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64),
(Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64), (Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64),
], ],
experience_reward: 1u32, experience_reward: 2u32,
hurt_sound: None, hurt_sound: None,
attackable: Some(true), attackable: Some(true),
mob: true, mob: true,
@ -7826,7 +7826,7 @@ impl EntityType {
(Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64), (Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64),
(Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64), (Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64),
], ],
experience_reward: 3u32, experience_reward: 2u32,
hurt_sound: None, hurt_sound: None,
attackable: Some(true), attackable: Some(true),
mob: true, mob: true,
@ -8453,7 +8453,7 @@ impl EntityType {
(Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64), (Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64),
(Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64), (Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64),
], ],
experience_reward: 3u32, experience_reward: 1u32,
hurt_sound: None, hurt_sound: None,
attackable: Some(true), attackable: Some(true),
mob: true, mob: true,
@ -8717,7 +8717,7 @@ impl EntityType {
(Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64), (Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64),
(Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64), (Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64),
], ],
experience_reward: 1u32, experience_reward: 2u32,
hurt_sound: None, hurt_sound: None,
attackable: Some(true), attackable: Some(true),
mob: true, mob: true,
@ -9096,7 +9096,7 @@ impl EntityType {
(Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64), (Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64),
(Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64), (Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64),
], ],
experience_reward: 1u32, experience_reward: 2u32,
hurt_sound: None, hurt_sound: None,
attackable: Some(true), attackable: Some(true),
mob: true, mob: true,
@ -9188,7 +9188,7 @@ impl EntityType {
(Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64), (Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64),
(Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64), (Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64),
], ],
experience_reward: 1u32, experience_reward: 2u32,
hurt_sound: None, hurt_sound: None,
attackable: Some(true), attackable: Some(true),
mob: true, mob: true,
@ -10528,7 +10528,7 @@ impl EntityType {
(Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64), (Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64),
(Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64), (Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64),
], ],
experience_reward: 3u32, experience_reward: 2u32,
hurt_sound: None, hurt_sound: None,
attackable: Some(true), attackable: Some(true),
mob: true, mob: true,
@ -10620,7 +10620,7 @@ impl EntityType {
(Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64), (Attributes::WATER_MOVEMENT_EFFICIENCY, 0f64),
(Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64), (Attributes::WAYPOINT_TRANSMIT_RANGE, 0f64),
], ],
experience_reward: 3u32, experience_reward: 2u32,
hurt_sound: None, hurt_sound: None,
attackable: Some(true), attackable: Some(true),
mob: 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_LEVEL_FLOWING_MAX: i32 = 8;
pub const FLUID_MIN_HEIGHT: f32 = 0.0; pub const FLUID_MIN_HEIGHT: f32 = 0.0;
pub const FLUID_MAX_HEIGHT: f32 = 1.0; pub const FLUID_MAX_HEIGHT: f32 = 1.0;
#[derive(Clone, Copy, Debug, Eq, PartialEq)] #[derive(Clone, Copy, Eq, PartialEq)]
pub enum Falling { pub enum Falling {
True, True,
False, False,
@ -809,7 +809,7 @@ impl EnumVariants for Falling {
} }
} }
} }
#[derive(Clone, Copy, Debug, Eq, PartialEq)] #[derive(Clone, Copy, Eq, PartialEq)]
pub enum Level { pub enum Level {
L1, L1,
L2, L2,
@ -875,7 +875,7 @@ impl EnumVariants for Level {
} }
} }
} }
#[derive(Clone, Copy, Debug, Eq, PartialEq)] #[derive(Clone, Copy, Eq, PartialEq)]
pub struct WaterLikeFluidProperties { pub struct WaterLikeFluidProperties {
pub r#falling: Falling, pub r#falling: Falling,
} }
@ -916,7 +916,7 @@ impl FluidProperties for WaterLikeFluidProperties {
if !["water", "lava"].contains(&fluid.name) { if !["water", "lava"].contains(&fluid.name) {
panic!( panic!(
"{} is not a valid fluid for {}", "{} is not a valid fluid for {}",
fluid.name, "WaterLikeFluidProperties" &fluid.name, "WaterLikeFluidProperties"
); );
} }
for (idx, state) in fluid.states.iter().enumerate() { for (idx, state) in fluid.states.iter().enumerate() {
@ -930,7 +930,7 @@ impl FluidProperties for WaterLikeFluidProperties {
if !["water", "lava"].contains(&fluid.name) { if !["water", "lava"].contains(&fluid.name) {
panic!( panic!(
"{} is not a valid fluid for {}", "{} is not a valid fluid for {}",
fluid.name, "WaterLikeFluidProperties" &fluid.name, "WaterLikeFluidProperties"
); );
} }
Self::from_index(fluid.default_state_index) Self::from_index(fluid.default_state_index)
@ -942,7 +942,7 @@ impl FluidProperties for WaterLikeFluidProperties {
if !["water", "lava"].contains(&fluid.name) { if !["water", "lava"].contains(&fluid.name) {
panic!( panic!(
"{} is not a valid fluid for {}", "{} is not a valid fluid for {}",
fluid.name, "WaterLikeFluidProperties" &fluid.name, "WaterLikeFluidProperties"
); );
} }
let mut fluid_props = Self::default(fluid); let mut fluid_props = Self::default(fluid);
@ -955,7 +955,7 @@ impl FluidProperties for WaterLikeFluidProperties {
fluid_props fluid_props
} }
} }
#[derive(Clone, Copy, Debug, Eq, PartialEq)] #[derive(Clone, Copy, Eq, PartialEq)]
pub struct FlowingWaterLikeFluidProperties { pub struct FlowingWaterLikeFluidProperties {
pub r#falling: Falling, pub r#falling: Falling,
pub r#level: Level, pub r#level: Level,
@ -1004,7 +1004,7 @@ impl FluidProperties for FlowingWaterLikeFluidProperties {
if !["flowing_water", "flowing_lava"].contains(&fluid.name) { if !["flowing_water", "flowing_lava"].contains(&fluid.name) {
panic!( panic!(
"{} is not a valid fluid for {}", "{} is not a valid fluid for {}",
fluid.name, "FlowingWaterLikeFluidProperties" &fluid.name, "FlowingWaterLikeFluidProperties"
); );
} }
for (idx, state) in fluid.states.iter().enumerate() { for (idx, state) in fluid.states.iter().enumerate() {
@ -1018,7 +1018,7 @@ impl FluidProperties for FlowingWaterLikeFluidProperties {
if !["flowing_water", "flowing_lava"].contains(&fluid.name) { if !["flowing_water", "flowing_lava"].contains(&fluid.name) {
panic!( panic!(
"{} is not a valid fluid for {}", "{} is not a valid fluid for {}",
fluid.name, "FlowingWaterLikeFluidProperties" &fluid.name, "FlowingWaterLikeFluidProperties"
); );
} }
Self::from_index(fluid.default_state_index) Self::from_index(fluid.default_state_index)
@ -1033,7 +1033,7 @@ impl FluidProperties for FlowingWaterLikeFluidProperties {
if !["flowing_water", "flowing_lava"].contains(&fluid.name) { if !["flowing_water", "flowing_lava"].contains(&fluid.name) {
panic!( panic!(
"{} is not a valid fluid for {}", "{} is not a valid fluid for {}",
fluid.name, "FlowingWaterLikeFluidProperties" &fluid.name, "FlowingWaterLikeFluidProperties"
); );
} }
let mut fluid_props = Self::default(fluid); let mut fluid_props = Self::default(fluid);

View File

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

View File

@ -13,7 +13,8 @@ use crate::data_component_impl::*;
use crate::effect::StatusEffect; use crate::effect::StatusEffect;
use crate::sound::Sound; use crate::sound::Sound;
use crate::tag::{RegistryKey, Taggable}; 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 pumpkin_util::text::TextComponent;
use std::borrow::Cow; use std::borrow::Cow;
use std::hash::{Hash, Hasher}; use std::hash::{Hash, Hasher};
@ -64238,6 +64239,7 @@ impl Item {
], ],
}; };
#[must_use] #[must_use]
#[allow(deprecated)]
pub fn translated_name(&self) -> TextComponent { pub fn translated_name(&self) -> TextComponent {
let name = self let name = self
.components .components
@ -64250,7 +64252,6 @@ impl Item {
} }
}) })
.unwrap_or(self.registry_key); .unwrap_or(self.registry_key);
#[allow(deprecated)]
TextComponent::translate(name, &[]) TextComponent::translate(name, &[])
} }
#[doc = "Try to parse an item from a resource location string."] #[doc = "Try to parse an item from a resource location string."]
@ -67638,7 +67639,7 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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 { pub const ARCHER_POTTERY_SHERD: Self = Self {
id: 671, id: 671,
registry_key: "minecraft:archer_pottery_sherd", registry_key: "minecraft:archer_pottery_sherd",
@ -67723,7 +67724,7 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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 { pub const BALLOON: Self = Self {
id: 612, id: 612,
registry_key: "minecraft:balloon", registry_key: "minecraft:balloon",
@ -67976,7 +67977,7 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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 { pub const BEEHIVE: Self = Self {
id: -219, id: -219,
registry_key: "minecraft:beehive", registry_key: "minecraft:beehive",
@ -67984,9 +67985,9 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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 : 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\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_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\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_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 { pub const BELL: Self = Self {
id: -206, id: -206,
registry_key: "minecraft:bell", registry_key: "minecraft:bell",
@ -68148,7 +68149,7 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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 { pub const BLACK_CANDLE: Self = Self {
id: -428, id: -428,
registry_key: "minecraft:black_candle", registry_key: "minecraft:black_candle",
@ -68324,7 +68325,7 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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 { pub const BLUE_CANDLE: Self = Self {
id: -424, id: -424,
registry_key: "minecraft:blue_candle", registry_key: "minecraft:blue_candle",
@ -68563,8 +68564,8 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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 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\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 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 { pub const BREEZE_SPAWN_EGG: Self = Self {
id: 506, id: 506,
registry_key: "minecraft:breeze_spawn_egg", registry_key: "minecraft:breeze_spawn_egg",
@ -68628,7 +68629,7 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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 { pub const BROWN_CANDLE: Self = Self {
id: -425, id: -425,
registry_key: "minecraft:brown_candle", registry_key: "minecraft:brown_candle",
@ -68804,7 +68805,7 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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 { pub const BURN_POTTERY_SHERD: Self = Self {
id: 675, id: 675,
registry_key: "minecraft:burn_pottery_sherd", registry_key: "minecraft:burn_pottery_sherd",
@ -68868,7 +68869,7 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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 { pub const CAMPFIRE: Self = Self {
id: 601, id: 601,
registry_key: "minecraft:campfire", registry_key: "minecraft:campfire",
@ -68897,7 +68898,7 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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 { pub const CARROT_ON_A_STICK: Self = Self {
id: 527, id: 527,
registry_key: "minecraft:carrot_on_a_stick", registry_key: "minecraft:carrot_on_a_stick",
@ -69199,7 +69200,7 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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 { pub const CHICKEN_SPAWN_EGG: Self = Self {
id: 439, id: 439,
registry_key: "minecraft:chicken_spawn_egg", registry_key: "minecraft:chicken_spawn_egg",
@ -69319,7 +69320,7 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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 { pub const CHORUS_PLANT: Self = Self {
id: 240, id: 240,
registry_key: "minecraft:chorus_plant", registry_key: "minecraft:chorus_plant",
@ -69544,7 +69545,7 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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 { pub const COD_BUCKET: Self = Self {
id: 367, id: 367,
registry_key: "minecraft:cod_bucket", registry_key: "minecraft:cod_bucket",
@ -69671,14 +69672,14 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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_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\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_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\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_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\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_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\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_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\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_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\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 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\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 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 { pub const COPPER_AXE: Self = Self {
id: 750, id: 750,
registry_key: "minecraft:copper_axe", registry_key: "minecraft:copper_axe",
@ -69840,7 +69841,7 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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 { pub const COPPER_SWORD: Self = Self {
id: 747, id: 747,
registry_key: "minecraft:copper_sword", registry_key: "minecraft:copper_sword",
@ -70205,7 +70206,7 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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 { pub const CYAN_CANDLE: Self = Self {
id: -422, id: -422,
registry_key: "minecraft:cyan_candle", registry_key: "minecraft:cyan_candle",
@ -70927,7 +70928,7 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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 { pub const DIAMOND_SWORD: Self = Self {
id: 318, id: 318,
registry_key: "minecraft:diamond_sword", registry_key: "minecraft:diamond_sword",
@ -71082,7 +71083,7 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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 { pub const DRIED_KELP_BLOCK: Self = Self {
id: -139, id: -139,
registry_key: "minecraft:dried_kelp_block", registry_key: "minecraft:dried_kelp_block",
@ -72028,7 +72029,7 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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 { pub const ENCHANTING_TABLE: Self = Self {
id: 116, id: 116,
registry_key: "minecraft:enchanting_table", registry_key: "minecraft:enchanting_table",
@ -72603,7 +72604,7 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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 { pub const GLOW_FRAME: Self = Self {
id: 636, id: 636,
registry_key: "minecraft:glow_frame", registry_key: "minecraft:glow_frame",
@ -72702,7 +72703,7 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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 { pub const GOLDEN_AXE: Self = Self {
id: 328, id: 328,
registry_key: "minecraft:golden_axe", registry_key: "minecraft:golden_axe",
@ -72717,7 +72718,7 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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 { pub const GOLDEN_CHESTPLATE: Self = Self {
id: 355, id: 355,
registry_key: "minecraft:golden_chestplate", registry_key: "minecraft:golden_chestplate",
@ -72788,7 +72789,7 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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 { pub const GOLDEN_SWORD: Self = Self {
id: 325, id: 325,
registry_key: "minecraft:golden_sword", registry_key: "minecraft:golden_sword",
@ -72852,7 +72853,7 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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 { pub const GRAY_CANDLE: Self = Self {
id: -420, id: -420,
registry_key: "minecraft:gray_candle", registry_key: "minecraft:gray_candle",
@ -72951,7 +72952,7 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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 { pub const GREEN_CANDLE: Self = Self {
id: -426, id: -426,
registry_key: "minecraft:green_candle", registry_key: "minecraft:green_candle",
@ -73414,7 +73415,7 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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 { pub const HONEYCOMB: Self = Self {
id: 603, id: 603,
registry_key: "minecraft:honeycomb", registry_key: "minecraft:honeycomb",
@ -73716,7 +73717,7 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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 { pub const IRON_SWORD: Self = Self {
id: 309, id: 309,
registry_key: "minecraft:iron_sword", registry_key: "minecraft:iron_sword",
@ -74298,7 +74299,7 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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 { pub const LIGHT_BLUE_CANDLE: Self = Self {
id: -416, id: -416,
registry_key: "minecraft:light_blue_candle", registry_key: "minecraft:light_blue_candle",
@ -74397,7 +74398,7 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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 { pub const LIGHT_GRAY_CANDLE: Self = Self {
id: -421, id: -421,
registry_key: "minecraft:light_gray_candle", registry_key: "minecraft:light_gray_candle",
@ -74517,7 +74518,7 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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 { pub const LIME_CANDLE: Self = Self {
id: -418, id: -418,
registry_key: "minecraft:lime_candle", registry_key: "minecraft:lime_candle",
@ -74721,7 +74722,7 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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 { pub const MAGENTA_CANDLE: Self = Self {
id: -415, id: -415,
registry_key: "minecraft:magenta_candle", registry_key: "minecraft:magenta_candle",
@ -75023,8 +75024,8 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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_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\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_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 { pub const MELON_STEM: Self = Self {
id: 105, id: 105,
registry_key: "minecraft:melon_stem", registry_key: "minecraft:melon_stem",
@ -75242,7 +75243,7 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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 { pub const MUSIC_DISC_11: Self = Self {
id: 554, id: 554,
registry_key: "minecraft:music_disc_11", registry_key: "minecraft:music_disc_11",
@ -75397,7 +75398,7 @@ impl BedrockItem {
component_based: true, component_based: true,
definition_components: b"\n\0\0", 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 { pub const MYCELIUM: Self = Self {
id: 110, id: 110,
registry_key: "minecraft:mycelium", registry_key: "minecraft:mycelium",
@ -75489,7 +75490,7 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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 { pub const NETHER_WART_BLOCK: Self = Self {
id: 214, id: 214,
registry_key: "minecraft:nether_wart_block", registry_key: "minecraft:nether_wart_block",
@ -75595,7 +75596,7 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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 { pub const NETHERITE_SWORD: Self = Self {
id: 617, id: 617,
registry_key: "minecraft:netherite_sword", registry_key: "minecraft:netherite_sword",
@ -75792,7 +75793,7 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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 { pub const OPEN_EYEBLOSSOM: Self = Self {
id: -1018, id: -1018,
registry_key: "minecraft:open_eyeblossom", registry_key: "minecraft:open_eyeblossom",
@ -75800,7 +75801,7 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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 { pub const ORANGE_CANDLE: Self = Self {
id: -414, id: -414,
registry_key: "minecraft:orange_candle", registry_key: "minecraft:orange_candle",
@ -76333,7 +76334,7 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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 { pub const PINK_CANDLE: Self = Self {
id: -419, id: -419,
registry_key: "minecraft:pink_candle", registry_key: "minecraft:pink_candle",
@ -76510,7 +76511,7 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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 { pub const POLAR_BEAR_SPAWN_EGG: Self = Self {
id: 477, id: 477,
registry_key: "minecraft:polar_bear_spawn_egg", registry_key: "minecraft:polar_bear_spawn_egg",
@ -76987,7 +76988,7 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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 { pub const PORTAL: Self = Self {
id: 90, id: 90,
registry_key: "minecraft:portal", registry_key: "minecraft:portal",
@ -76995,7 +76996,7 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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 { pub const POTATOES: Self = Self {
id: 142, id: 142,
registry_key: "minecraft:potatoes", registry_key: "minecraft:potatoes",
@ -77129,7 +77130,7 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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 { pub const PUFFERFISH_BUCKET: Self = Self {
id: 370, id: 370,
registry_key: "minecraft:pufferfish_bucket", registry_key: "minecraft:pufferfish_bucket",
@ -77151,8 +77152,8 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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_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\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_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 { pub const PUMPKIN_STEM: Self = Self {
id: 104, id: 104,
registry_key: "minecraft:pumpkin_stem", registry_key: "minecraft:pumpkin_stem",
@ -77160,7 +77161,7 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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 { pub const PURPLE_CANDLE: Self = Self {
id: -423, id: -423,
registry_key: "minecraft:purple_candle", registry_key: "minecraft:purple_candle",
@ -77350,7 +77351,7 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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 { pub const RABBIT_FOOT: Self = Self {
id: 538, id: 538,
registry_key: "minecraft:rabbit_foot", registry_key: "minecraft:rabbit_foot",
@ -77372,7 +77373,7 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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 { pub const RAIL: Self = Self {
id: 66, id: 66,
registry_key: "minecraft:rail", registry_key: "minecraft:rail",
@ -77450,7 +77451,7 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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 { pub const RED_CANDLE: Self = Self {
id: -427, id: -427,
registry_key: "minecraft:red_candle", registry_key: "minecraft:red_candle",
@ -77808,7 +77809,7 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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 { pub const SADDLE: Self = Self {
id: 374, id: 374,
registry_key: "minecraft:saddle", registry_key: "minecraft:saddle",
@ -77816,7 +77817,7 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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 { pub const SALMON_BUCKET: Self = Self {
id: 368, id: 368,
registry_key: "minecraft:salmon_bucket", registry_key: "minecraft:salmon_bucket",
@ -78377,7 +78378,7 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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 { pub const SPIDER_SPAWN_EGG: Self = Self {
id: 450, id: 450,
registry_key: "minecraft:spider_spawn_egg", registry_key: "minecraft:spider_spawn_egg",
@ -78742,7 +78743,7 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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 { pub const STONE_STAIRS: Self = Self {
id: 67, id: 67,
registry_key: "minecraft:stone_stairs", registry_key: "minecraft:stone_stairs",
@ -79121,8 +79122,8 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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 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\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 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 { pub const SWEET_BERRY_BUSH: Self = Self {
id: -207, id: -207,
registry_key: "minecraft:sweet_berry_bush", registry_key: "minecraft:sweet_berry_bush",
@ -79221,7 +79222,7 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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 { pub const TOTEM_OF_UNDYING: Self = Self {
id: 578, id: 578,
registry_key: "minecraft:totem_of_undying", registry_key: "minecraft:totem_of_undying",
@ -79250,7 +79251,7 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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 { pub const TRIAL_SPAWNER: Self = Self {
id: -315, id: -315,
registry_key: "minecraft:trial_spawner", registry_key: "minecraft:trial_spawner",
@ -79279,7 +79280,7 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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 { pub const TROPICAL_FISH_BUCKET: Self = Self {
id: 369, id: 369,
registry_key: "minecraft:tropical_fish_bucket", registry_key: "minecraft:tropical_fish_bucket",
@ -80330,8 +80331,8 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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 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\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 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 { pub const WHITE_CANDLE: Self = Self {
id: -413, id: -413,
registry_key: "minecraft:white_candle", registry_key: "minecraft:white_candle",
@ -80451,7 +80452,7 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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 { pub const WITCH_SPAWN_EGG: Self = Self {
id: 456, id: 456,
registry_key: "minecraft:witch_spawn_egg", registry_key: "minecraft:witch_spawn_egg",
@ -80564,7 +80565,7 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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 { pub const WOODEN_SWORD: Self = Self {
id: 310, id: 310,
registry_key: "minecraft:wooden_sword", registry_key: "minecraft:wooden_sword",
@ -80593,7 +80594,7 @@ impl BedrockItem {
component_based: false, component_based: false,
definition_components: b"\n\0\0", 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 { pub const YELLOW_CANDLE: Self = Self {
id: -417, id: -417,
registry_key: "minecraft:yellow_candle", 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>, pos: &pumpkin_util::math::vector3::Vector3<i32>,
ctx: &mut C, ctx: &mut C,
) -> f64 { ) -> f64 {
-overworld_node_5(pos, ctx) overworld_node_5(pos, ctx) * -1f64
} }
#[inline(always)] #[inline(always)]
pub fn overworld_node_7<C: NoiseEvaluationContext>( pub fn overworld_node_7<C: NoiseEvaluationContext>(
@ -1299,7 +1299,7 @@ pub mod overworld_noise_evaluator {
pos: &pumpkin_util::math::vector3::Vector3<i32>, pos: &pumpkin_util::math::vector3::Vector3<i32>,
ctx: &mut C, ctx: &mut C,
) -> f64 { ) -> f64 {
-overworld_node_142(pos, ctx) overworld_node_142(pos, ctx) * -1f64
} }
#[inline(always)] #[inline(always)]
pub fn overworld_node_144<C: NoiseEvaluationContext>( pub fn overworld_node_144<C: NoiseEvaluationContext>(
@ -1377,7 +1377,7 @@ pub mod overworld_noise_evaluator {
ctx: &mut C, ctx: &mut C,
) -> f64 { ) -> f64 {
let val = overworld_node_151(pos, ctx); let val = overworld_node_151(pos, ctx);
if (-1000000f64..0.03f64).contains(&val) { if val >= -1000000f64 && val < 0.03f64 {
overworld_node_152(pos, ctx) overworld_node_152(pos, ctx)
} else { } else {
overworld_node_151(pos, ctx) overworld_node_151(pos, ctx)
@ -1396,7 +1396,7 @@ pub mod overworld_noise_evaluator {
ctx: &mut C, ctx: &mut C,
) -> f64 { ) -> f64 {
let val = overworld_node_54(pos, ctx); let val = overworld_node_54(pos, ctx);
if (-1000000f64..1.5625f64).contains(&val) { if val >= -1000000f64 && val < 1.5625f64 {
overworld_node_97(pos, ctx) overworld_node_97(pos, ctx)
} else { } else {
overworld_node_154(pos, ctx) overworld_node_154(pos, ctx)
@ -1516,7 +1516,7 @@ pub mod overworld_noise_evaluator {
ctx: &mut C, ctx: &mut C,
) -> f64 { ) -> f64 {
let val = overworld_node_166(pos, ctx); let val = overworld_node_166(pos, ctx);
if (-60f64..321f64).contains(&val) { if val >= -60f64 && val < 321f64 {
overworld_node_167(pos, ctx) overworld_node_167(pos, ctx)
} else { } else {
overworld_node_168(pos, ctx) overworld_node_168(pos, ctx)
@ -1574,7 +1574,7 @@ pub mod overworld_noise_evaluator {
ctx: &mut C, ctx: &mut C,
) -> f64 { ) -> f64 {
let val = overworld_node_166(pos, ctx); let val = overworld_node_166(pos, ctx);
if (-60f64..321f64).contains(&val) { if val >= -60f64 && val < 321f64 {
overworld_node_174(pos, ctx) overworld_node_174(pos, ctx)
} else { } else {
overworld_node_12(pos, ctx) overworld_node_12(pos, ctx)
@ -1610,7 +1610,7 @@ pub mod overworld_noise_evaluator {
ctx: &mut C, ctx: &mut C,
) -> f64 { ) -> f64 {
let val = overworld_node_166(pos, ctx); let val = overworld_node_166(pos, ctx);
if (-60f64..321f64).contains(&val) { if val >= -60f64 && val < 321f64 {
overworld_node_177(pos, ctx) overworld_node_177(pos, ctx)
} else { } else {
overworld_node_12(pos, ctx) overworld_node_12(pos, ctx)
@ -1653,7 +1653,7 @@ pub mod overworld_noise_evaluator {
ctx: &mut C, ctx: &mut C,
) -> f64 { ) -> f64 {
let val = overworld_node_166(pos, ctx); let val = overworld_node_166(pos, ctx);
if (-60f64..321f64).contains(&val) { if val >= -60f64 && val < 321f64 {
overworld_node_181(pos, ctx) overworld_node_181(pos, ctx)
} else { } else {
overworld_node_12(pos, ctx) overworld_node_12(pos, ctx)
@ -1705,7 +1705,7 @@ pub mod overworld_noise_evaluator {
ctx: &mut C, ctx: &mut C,
) -> f64 { ) -> f64 {
let val = overworld_node_170(pos, ctx); let val = overworld_node_170(pos, ctx);
if (-1000000f64..0f64).contains(&val) { if val >= -1000000f64 && val < 0f64 {
overworld_node_171(pos, ctx) overworld_node_171(pos, ctx)
} else { } else {
overworld_node_187(pos, ctx) overworld_node_187(pos, ctx)
@ -1805,7 +1805,7 @@ pub mod overworld_noise_evaluator {
ctx: &mut C, ctx: &mut C,
) -> f64 { ) -> f64 {
let val = overworld_node_166(pos, ctx); let val = overworld_node_166(pos, ctx);
if (-60f64..51f64).contains(&val) { if val >= -60f64 && val < 51f64 {
overworld_node_197(pos, ctx) overworld_node_197(pos, ctx)
} else { } else {
overworld_node_12(pos, ctx) overworld_node_12(pos, ctx)
@ -1841,7 +1841,7 @@ pub mod overworld_noise_evaluator {
ctx: &mut C, ctx: &mut C,
) -> f64 { ) -> f64 {
let val = overworld_node_166(pos, ctx); let val = overworld_node_166(pos, ctx);
if (-60f64..51f64).contains(&val) { if val >= -60f64 && val < 51f64 {
overworld_node_200(pos, ctx) overworld_node_200(pos, ctx)
} else { } else {
overworld_node_12(pos, ctx) overworld_node_12(pos, ctx)
@ -1884,7 +1884,7 @@ pub mod overworld_noise_evaluator {
ctx: &mut C, ctx: &mut C,
) -> f64 { ) -> f64 {
let val = overworld_node_166(pos, ctx); let val = overworld_node_166(pos, ctx);
if (-60f64..51f64).contains(&val) { if val >= -60f64 && val < 51f64 {
overworld_node_204(pos, ctx) overworld_node_204(pos, ctx)
} else { } else {
overworld_node_12(pos, ctx) overworld_node_12(pos, ctx)

View File

@ -2,7 +2,7 @@
use pumpkin_util::version::JavaMinecraftVersion; use pumpkin_util::version::JavaMinecraftVersion;
pub const CURRENT_MC_VERSION: JavaMinecraftVersion = pub const CURRENT_MC_VERSION: JavaMinecraftVersion =
pumpkin_util::version::JavaMinecraftVersion::V_26_2; 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)] #[derive(Clone, Copy, Debug)]
pub struct PacketId { pub struct PacketId {
pub v1_20_5: i32, pub v1_20_5: i32,

View File

@ -1,9 +1,161 @@
/* This file is generated. Do not edit manually. */ /* This file is generated. Do not edit manually. */
use pumpkin_util::version::JavaMinecraftVersion; 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] = &[ 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, 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, 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, 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, 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, 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] = &[ 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, 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, 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, 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, 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, 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] = &[ 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, 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, 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, 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, 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, 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] = &[ 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, 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, 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, 42, 43, 44, 45, 46, 47, 100, 41, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
109, 110, 111, 80, 48, 108, 109, 110, 111, 80, 48,
]; ];
const PARTICLE_ID_REMAP_V_26_2_TO_V_1_21_5: &[u16] = &[ 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, 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, 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, 43, 44, 45, 46, 47, 48, 101, 42, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
110, 111, 112, 113, 49, 109, 110, 111, 112, 113, 49,
]; ];
const PARTICLE_ID_REMAP_V_26_2_TO_V_1_21_6: &[u16] = &[ 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, 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, 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, 43, 44, 45, 46, 47, 48, 101, 42, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
110, 111, 112, 113, 49, 109, 110, 111, 112, 113, 49,
]; ];
const PARTICLE_ID_REMAP_V_26_2_TO_V_1_21_7: &[u16] = &[ 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, 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, 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, 43, 44, 45, 46, 47, 48, 101, 42, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
110, 111, 112, 113, 49, 109, 110, 111, 112, 113, 49,
]; ];
const PARTICLE_ID_REMAP_V_26_2_TO_V_1_21_9: &[u16] = &[ 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, 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, 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, 44, 45, 46, 47, 48, 49, 102, 43, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
111, 112, 113, 114, 50, 110, 111, 112, 113, 114, 50,
]; ];
const PARTICLE_ID_REMAP_V_26_2_TO_V_1_21_11: &[u16] = &[ 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, 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, 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, 44, 45, 46, 47, 48, 49, 102, 43, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
111, 112, 113, 114, 50, 110, 111, 112, 113, 114, 50,
]; ];
const PARTICLE_ID_REMAP_V_26_2_TO_V_26_1: &[u16] = &[ 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, 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] #[must_use]
pub fn remap_particle_id_for_version(particle_id: u16, version: JavaMinecraftVersion) -> u16 { pub fn remap_particle_id_for_version(particle_id: u16, version: JavaMinecraftVersion) -> u16 {
match version { 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 => { pumpkin_util::version::JavaMinecraftVersion::V_1_20_5 => {
PARTICLE_ID_REMAP_V_26_2_TO_V_1_20_5 PARTICLE_ID_REMAP_V_26_2_TO_V_1_20_5
.get(usize::from(particle_id)) .get(usize::from(particle_id))

View File

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

View File

@ -1,7 +1,7 @@
/* This file is generated. Do not edit manually. */ /* This file is generated. Do not edit manually. */
use crate::item::Item; use crate::item::Item;
use crate::tag::Taggable; use crate::tag::Taggable;
use serde::Serialize; use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, Serialize)] #[derive(Clone, Debug, Serialize)]
pub enum CraftingRecipeTypes { pub enum CraftingRecipeTypes {
CraftingShaped { 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)] #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
pub enum ScoreboardDisplaySlot { pub enum ScoreboardDisplaySlot {
List, 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)] #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
#[repr(i32)] #[repr(i32)]
pub enum CustomStatistic { 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, 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, 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 { impl CustomStatistic {
#[must_use] #[must_use]
pub const fn from_i32(id: i32) -> Option<Self> { pub const fn from_i32(id: i32) -> Option<Self> {
match id { 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), 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), 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, _ => None,
} }
} }

View File

@ -1,6 +1,8 @@
/* This file is generated. Do not edit manually. */ /* This file is generated. Do not edit manually. */
use pumpkin_util::math::floor_div;
use pumpkin_util::random::{ 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)] #[derive(Clone, Copy, PartialEq, Eq, Hash, Debug)]
pub enum StructureKeys { pub enum StructureKeys {

File diff suppressed because one or more lines are too long

View File

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

View File

@ -279,6 +279,12 @@ impl NbtCompound {
self.get(name).and_then(|tag| tag.extract_compound()) 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. /// Returns the named integer array, or `None` if the tag is absent or has another type.
#[must_use] #[must_use]
pub fn get_int_array(&self, name: &str) -> Option<&[i32]> { 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.url)?;
write.write_string(self.hash)?; write.write_string(self.hash)?;
write.write_bool(self.forced)?; write.write_bool(self.forced)?;
if let Some(_prompt) = &self.prompt_message { if let Some(prompt) = &self.prompt_message {
write.write_bool(true)?; write.write_bool(true)?;
// TODO write.write_slice(&prompt.encode())?;
} else { } else {
write.write_bool(false)?; 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 add_resource_pack;
mod clear_dialog; mod clear_dialog;
mod code_of_conduct;
mod config_disconnect; mod config_disconnect;
mod cookie_request; mod cookie_request;
mod custom_report_details;
mod feature_flags; mod feature_flags;
mod finish_config; mod finish_config;
mod known_packs; mod known_packs;
mod ping;
mod plugin_message; mod plugin_message;
mod registry_data; mod registry_data;
mod remove_resource_pack;
mod reset_chat;
mod server_links; mod server_links;
mod show_dialog; mod show_dialog;
mod store_cookie; mod store_cookie;
@ -15,13 +20,18 @@ mod update_tags;
pub use add_resource_pack::*; pub use add_resource_pack::*;
pub use clear_dialog::*; pub use clear_dialog::*;
pub use code_of_conduct::*;
pub use config_disconnect::*; pub use config_disconnect::*;
pub use cookie_request::*; pub use cookie_request::*;
pub use custom_report_details::*;
pub use feature_flags::*; pub use feature_flags::*;
pub use finish_config::*; pub use finish_config::*;
pub use known_packs::*; pub use known_packs::*;
pub use ping::*;
pub use plugin_message::*; pub use plugin_message::*;
pub use registry_data::*; pub use registry_data::*;
pub use remove_resource_pack::*;
pub use reset_chat::*;
pub use server_links::*; pub use server_links::*;
pub use show_dialog::*; pub use show_dialog::*;
pub use store_cookie::*; 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::*; pub use award_stats::*;
mod acknowledge_block; mod acknowledge_block;
mod actionbar; 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_destroy_stage;
mod block_entity_data; mod block_entity_data;
mod block_event; mod block_event;
@ -226,3 +230,57 @@ pub use waypoint::*;
mod debug_sample; mod debug_sample;
pub use 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_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 pumpkin_util::version::JavaMinecraftVersion;
use crate::ClientPacket; #[java_packet(PLAY_SET_CAMERA)]
use crate::ser::NetworkWriteExt;
use crate::{VarInt, packet::MultiVersionJavaPacket};
pub struct CSetCamera { pub struct CSetCamera {
pub camera_id: VarInt, pub camera_id: VarInt,
} }
@ -26,9 +26,3 @@ impl ClientPacket for CSetCamera {
Ok(()) 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 acknowledge_finish_config;
mod client_information; mod client_information;
mod cookie_response; mod cookie_response;
@ -5,8 +6,10 @@ mod custom_click_action;
mod keep_alive; mod keep_alive;
mod known_packs; mod known_packs;
mod plugin_message; mod plugin_message;
mod pong;
mod resource_pack_response; mod resource_pack_response;
pub use accept_code_of_conduct::*;
pub use acknowledge_finish_config::*; pub use acknowledge_finish_config::*;
pub use client_information::*; pub use client_information::*;
pub use cookie_response::*; pub use cookie_response::*;
@ -14,4 +17,5 @@ pub use custom_click_action::*;
pub use keep_alive::*; pub use keep_alive::*;
pub use known_packs::*; pub use known_packs::*;
pub use plugin_message::*; pub use plugin_message::*;
pub use pong::*;
pub use resource_pack_response::*; 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; mod debug_sample_subscription;
pub use 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::packet::CURRENT_MC_VERSION;
use pumpkin_data::translation; use pumpkin_data::translation;
use pumpkin_protocol::java::server::play::{ use pumpkin_protocol::java::server::play::{
SAttack, SBundleItemSelected, SChangeGameMode, SChatCommand, SChatMessage, SChunkBatch, SAttack, SBlockEntityTagQuery, SBundleItemSelected, SChangeGameMode, SChatCommand,
SClickSlot, SClientCommand, SClientInformationPlay, SClientTickEnd, SCloseContainer, SChatMessage, SChunkBatch, SClickSlot, SClientCommand, SClientInformationPlay, SClientTickEnd,
SCommandSuggestion, SConfirmTeleport, SContainerButtonClick, SCloseContainer, SCommandSuggestion, SConfigurationAcknowledged, SConfirmTeleport,
SCookieResponse as SPCookieResponse, SCustomPayload, SDebugSampleSubscription, SContainerButtonClick, SContainerSlotStateChanged, SCookieResponse as SPCookieResponse,
SDebugSubscriptionRequest, SEditBook, SInteract, SJigsawGenerate, SMoveVehicle, SPaddleBoat, SCustomPayload, SDebugSampleSubscription, SDebugSubscriptionRequest, SEditBook,
SPickItemFromBlock, SPlaceRecipe, SPlayPingRequest, SPlayerAbilities, SPlayerAction, SEntityTagQuery, SInteract, SJigsawGenerate, SLockDifficulty, SMoveVehicle, SPaddleBoat,
SPlayerCommand, SPlayerInput, SPlayerLoaded, SPlayerPosition, SPlayerPositionRotation, SPickItemFromBlock, SPlaceRecipe, SPlayPingRequest, SPlayPong, SPlayResourcePack,
SPlayerRotation, SPlayerSession, SRecipeBookChangeSettings, SRecipeBookSeenRecipe, SRenameItem, SPlayerAbilities, SPlayerAction, SPlayerCommand, SPlayerInput, SPlayerLoaded, SPlayerPosition,
SSeenAdvancement, SSelectTrade, SSetCommandBlock, SSetCreativeSlot, SSetHeldItem, SPlayerPositionRotation, SPlayerRotation, SPlayerSession, SRecipeBookChangeSettings,
SSetJigsawBlock, SSetPlayerGround, SSetTestBlock, SSwingArm, STeleportToEntity, SRecipeBookSeenRecipe, SRenameItem, SSeenAdvancement, SSelectTrade, SSetCommandBlock,
STestInstanceBlockAction, SUpdateSign, SUseItem, SUseItemOn, SSetCommandMinecart, SSetCreativeSlot, SSetGameRule, SSetHeldItem, SSetJigsawBlock,
SSetPlayerGround, SSetStructureBlock, SSetTestBlock, SSpectateEntity, SSwingArm,
STeleportToEntity, STestInstanceBlockAction, SUpdateSign, SUseItem, SUseItemOn,
}; };
use pumpkin_protocol::packet::MultiVersionJavaPacket; use pumpkin_protocol::packet::MultiVersionJavaPacket;
use pumpkin_protocol::{ use pumpkin_protocol::{
@ -999,6 +1001,70 @@ impl JavaClient {
) )
.await; .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); warn!("Failed to handle player packet id {}", event.packet_id);
} }

View File

@ -13,8 +13,8 @@ use pumpkin_protocol::{
packet_decoder::TCPNetworkDecoder, packet_decoder::TCPNetworkDecoder,
packet_encoder::TCPNetworkEncoder, packet_encoder::TCPNetworkEncoder,
server::config::{ server::config::{
SAcknowledgeFinishConfig, SClientInformationConfig, SConfigCookieResponse, SAcceptCodeOfConduct, SAcknowledgeFinishConfig, SClientInformationConfig,
SConfigResourcePack, SKnownPacks, SPluginMessage, SConfigCookieResponse, SConfigPong, SConfigResourcePack, SKnownPacks, SPluginMessage,
}, },
}, },
packet::MultiVersionJavaPacket, packet::MultiVersionJavaPacket,
@ -389,6 +389,14 @@ impl PendingConnection {
)?); )?);
Ok(None) 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!( _ => Err(ReadingError::Message(format!(
"Failed to handle packet id {} in Config State", "Failed to handle packet id {} in Config State",
packet.id 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 client_information;
pub mod close_container; pub mod close_container;
pub mod command_suggestion; pub mod command_suggestion;
pub mod configuration_acknowledged;
pub mod confirm_teleport; pub mod confirm_teleport;
pub mod container_slot_state_changed;
pub mod cookie_response; pub mod cookie_response;
pub mod debug_sample_subscription; pub mod debug_sample_subscription;
pub mod debug_subscription_request; pub mod debug_subscription_request;
@ -235,6 +237,7 @@ pub mod edit_book;
pub mod interact; pub mod interact;
pub mod jigsaw_generate; pub mod jigsaw_generate;
pub mod keep_alive; pub mod keep_alive;
pub mod lock_difficulty;
pub mod move_vehicle; pub mod move_vehicle;
pub mod paddle_boat; pub mod paddle_boat;
pub mod pick_item; pub mod pick_item;
@ -248,16 +251,23 @@ pub mod player_input;
pub mod player_loaded; pub mod player_loaded;
pub mod player_position; pub mod player_position;
pub mod player_rotation; pub mod player_rotation;
pub mod pong;
pub mod recipe_book_change_settings; pub mod recipe_book_change_settings;
pub mod recipe_book_seen_recipe; pub mod recipe_book_seen_recipe;
pub mod resource_pack_response;
pub mod seen_advancement; pub mod seen_advancement;
pub mod select_trade; pub mod select_trade;
pub mod set_command_block; pub mod set_command_block;
pub mod set_command_minecart;
pub mod set_creative_slot; pub mod set_creative_slot;
pub mod set_game_rule;
pub mod set_held_item; pub mod set_held_item;
pub mod set_jigsaw_block; pub mod set_jigsaw_block;
pub mod set_structure_block;
pub mod set_test_block; pub mod set_test_block;
pub mod spectate_entity;
pub mod swing_arm; pub mod swing_arm;
pub mod tag_query;
pub mod teleport_to_entity; pub mod teleport_to_entity;
pub mod test_instance_block_action; pub mod test_instance_block_action;
pub mod update_sign; 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