From e8a11adb534eced67275a784995ff7ce24497934 Mon Sep 17 00:00:00 2001 From: mat Date: Thu, 30 Oct 2025 09:02:18 -0630 Subject: [PATCH 01/11] run codegen for 25w44a --- Cargo.toml | 2 +- README.md | 2 +- azalea-entity/src/dimensions.rs | 4 + azalea-entity/src/metadata.rs | 385 ++++++++++- azalea-inventory/src/components/mod.rs | 36 + .../src/default_components/generated.rs | 637 +++++++++++++++++- azalea-language/src/en_us.json | 150 +++++ azalea-protocol/src/packets/mod.rs | 4 +- azalea-registry/src/lib.rs | 252 ++++++- azalea-registry/src/tags/blocks.rs | 11 + azalea-registry/src/tags/entities.rs | 62 +- azalea-registry/src/tags/items.rs | 135 +++- 12 files changed, 1630 insertions(+), 50 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index b9e7bcbef..50bd25e36 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -22,7 +22,7 @@ resolver = "2" # --- Workspace Settings --- [workspace.package] -version = "0.14.0+mc1.21.10" +version = "0.14.0+mc25w44a" edition = "2024" license = "MIT" repository = "https://github.com/azalea-rs/azalea" diff --git a/README.md b/README.md index 443895782..237b8a580 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ A collection of Rust crates for making Minecraft bots, clients, and tools. -_Currently supported Minecraft version: `1.21.10`._ +_Currently supported Minecraft version: `25w44a`._ > [!WARNING] > Many parts of Azalea are still unfinished and will receive breaking changes in the future. Most breaking changes will be listed in the [changelog](CHANGELOG.md). diff --git a/azalea-entity/src/dimensions.rs b/azalea-entity/src/dimensions.rs index 3a6cef8ab..c5118d559 100644 --- a/azalea-entity/src/dimensions.rs +++ b/azalea-entity/src/dimensions.rs @@ -79,6 +79,7 @@ impl From for EntityDimensions { EntityKind::Breeze => EntityDimensions::new(0.6, 1.77).eye_height(1.3452), EntityKind::BreezeWindCharge => EntityDimensions::new(0.3125, 0.3125).eye_height(0.0), EntityKind::Camel => EntityDimensions::new(1.7, 2.375).eye_height(2.275), + EntityKind::CamelHusk => EntityDimensions::new(1.7, 2.375).eye_height(2.275), EntityKind::Cat => EntityDimensions::new(0.6, 0.7).eye_height(0.35), EntityKind::CaveSpider => EntityDimensions::new(0.7, 0.5).eye_height(0.45), EntityKind::CherryBoat => EntityDimensions::new(1.375, 0.5625).eye_height(0.5625), @@ -150,6 +151,7 @@ impl From for EntityDimensions { EntityKind::Minecart => EntityDimensions::new(0.98, 0.7), EntityKind::Mooshroom => EntityDimensions::new(0.9, 1.4).eye_height(1.3), EntityKind::Mule => EntityDimensions::new(1.39648, 1.6).eye_height(1.52), + EntityKind::Nautilus => EntityDimensions::new(0.875, 0.95).eye_height(0.2751), EntityKind::OakBoat => EntityDimensions::new(1.375, 0.5625).eye_height(0.5625), EntityKind::OakChestBoat => EntityDimensions::new(1.375, 0.5625).eye_height(0.5625), EntityKind::Ocelot => EntityDimensions::new(0.6, 0.7), @@ -158,6 +160,7 @@ impl From for EntityDimensions { EntityKind::PaleOakBoat => EntityDimensions::new(1.375, 0.5625).eye_height(0.5625), EntityKind::PaleOakChestBoat => EntityDimensions::new(1.375, 0.5625).eye_height(0.5625), EntityKind::Panda => EntityDimensions::new(1.3, 1.25), + EntityKind::Parched => EntityDimensions::new(0.6, 1.99).eye_height(1.74), EntityKind::Parrot => EntityDimensions::new(0.5, 0.9).eye_height(0.54), EntityKind::Phantom => EntityDimensions::new(0.9, 0.5).eye_height(0.175), EntityKind::Pig => EntityDimensions::new(0.9, 0.9), @@ -212,6 +215,7 @@ impl From for EntityDimensions { EntityKind::Zoglin => EntityDimensions::new(1.39648, 1.4), EntityKind::Zombie => EntityDimensions::new(0.6, 1.95).eye_height(1.74), EntityKind::ZombieHorse => EntityDimensions::new(1.39648, 1.6).eye_height(1.52), + EntityKind::ZombieNautilus => EntityDimensions::new(0.875, 0.95).eye_height(0.2751), EntityKind::ZombieVillager => EntityDimensions::new(0.6, 1.95).eye_height(1.74), EntityKind::ZombifiedPiglin => EntityDimensions::new(0.6, 1.95).eye_height(1.79), } diff --git a/azalea-entity/src/metadata.rs b/azalea-entity/src/metadata.rs index 6af78de34..fa815faf5 100644 --- a/azalea-entity/src/metadata.rs +++ b/azalea-entity/src/metadata.rs @@ -906,7 +906,7 @@ pub struct HasStung(pub bool); #[derive(Component, Deref, DerefMut, Clone, Copy, PartialEq)] pub struct BeeRolling(pub bool); #[derive(Component, Deref, DerefMut, Clone, PartialEq)] -pub struct BeeRemainingAngerTime(pub i32); +pub struct BeeAngerEndTime(pub i64); #[derive(Component)] pub struct Bee; impl Bee { @@ -923,7 +923,7 @@ impl Bee { entity.insert(BeeRolling(bitfield & 0x2 != 0)); } 18 => { - entity.insert(BeeRemainingAngerTime(d.value.into_int()?)); + entity.insert(BeeAngerEndTime(d.value.into_long()?)); } _ => {} } @@ -938,7 +938,7 @@ pub struct BeeMetadataBundle { has_nectar: HasNectar, has_stung: HasStung, bee_rolling: BeeRolling, - bee_remaining_anger_time: BeeRemainingAngerTime, + bee_anger_end_time: BeeAngerEndTime, } impl Default for BeeMetadataBundle { fn default() -> Self { @@ -993,7 +993,7 @@ impl Default for BeeMetadataBundle { has_nectar: HasNectar(false), has_stung: HasStung(false), bee_rolling: BeeRolling(false), - bee_remaining_anger_time: BeeRemainingAngerTime(0), + bee_anger_end_time: BeeAngerEndTime(-1), } } } @@ -1504,7 +1504,7 @@ pub struct AbstractHorseStanding(pub bool); #[derive(Component, Deref, DerefMut, Clone, Copy, PartialEq)] pub struct Bred(pub bool); #[derive(Component, Deref, DerefMut, Clone, PartialEq)] -pub struct Dash(pub bool); +pub struct CamelDash(pub bool); #[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct LastPoseChangeTick(pub i64); #[derive(Component)] @@ -1517,7 +1517,7 @@ impl Camel { match d.index { 0..=17 => AbstractHorse::apply_metadata(entity, d)?, 18 => { - entity.insert(Dash(d.value.into_boolean()?)); + entity.insert(CamelDash(d.value.into_boolean()?)); } 19 => { entity.insert(LastPoseChangeTick(d.value.into_long()?)); @@ -1532,7 +1532,7 @@ impl Camel { pub struct CamelMetadataBundle { _marker: Camel, parent: AbstractHorseMetadataBundle, - dash: Dash, + camel_dash: CamelDash, last_pose_change_tick: LastPoseChangeTick, } impl Default for CamelMetadataBundle { @@ -1592,12 +1592,99 @@ impl Default for CamelMetadataBundle { abstract_horse_standing: AbstractHorseStanding(false), bred: Bred(false), }, - dash: Dash(false), + camel_dash: CamelDash(false), last_pose_change_tick: LastPoseChangeTick(0), } } } +#[derive(Component)] +pub struct CamelHusk; +impl CamelHusk { + pub fn apply_metadata( + entity: &mut bevy_ecs::system::EntityCommands, + d: EntityDataItem, + ) -> Result<(), UpdateMetadataError> { + match d.index { + 0..=19 => Camel::apply_metadata(entity, d)?, + _ => {} + } + Ok(()) + } +} + +#[derive(Bundle)] +pub struct CamelHuskMetadataBundle { + _marker: CamelHusk, + parent: CamelMetadataBundle, +} +impl Default for CamelHuskMetadataBundle { + fn default() -> Self { + Self { + _marker: CamelHusk, + parent: CamelMetadataBundle { + _marker: Camel, + parent: AbstractHorseMetadataBundle { + _marker: AbstractHorse, + parent: AbstractAnimalMetadataBundle { + _marker: AbstractAnimal, + parent: AbstractAgeableMetadataBundle { + _marker: AbstractAgeable, + parent: AbstractCreatureMetadataBundle { + _marker: AbstractCreature, + parent: AbstractInsentientMetadataBundle { + _marker: AbstractInsentient, + parent: AbstractLivingMetadataBundle { + _marker: AbstractLiving, + parent: AbstractEntityMetadataBundle { + _marker: AbstractEntity, + on_fire: OnFire(false), + abstract_entity_shift_key_down: + AbstractEntityShiftKeyDown(false), + sprinting: Sprinting(false), + swimming: Swimming(false), + currently_glowing: CurrentlyGlowing(false), + invisible: Invisible(false), + fall_flying: FallFlying(false), + air_supply: AirSupply(Default::default()), + custom_name: CustomName(Default::default()), + custom_name_visible: CustomNameVisible( + Default::default(), + ), + silent: Silent(Default::default()), + no_gravity: NoGravity(Default::default()), + pose: Pose::default(), + ticks_frozen: TicksFrozen(Default::default()), + }, + auto_spin_attack: AutoSpinAttack(false), + abstract_living_using_item: AbstractLivingUsingItem(false), + health: Health(1.0), + effect_particles: EffectParticles(Default::default()), + effect_ambience: EffectAmbience(false), + arrow_count: ArrowCount(0), + stinger_count: StingerCount(0), + sleeping_pos: SleepingPos(None), + }, + no_ai: NoAi(false), + left_handed: LeftHanded(false), + aggressive: Aggressive(false), + }, + }, + abstract_ageable_baby: AbstractAgeableBaby(false), + }, + }, + tamed: Tamed(false), + eating: Eating(false), + abstract_horse_standing: AbstractHorseStanding(false), + bred: Bred(false), + }, + camel_dash: CamelDash(false), + last_pose_change_tick: LastPoseChangeTick(0), + }, + } + } +} + #[derive(Component, Deref, DerefMut, Clone, Copy, PartialEq)] pub struct Tame(pub bool); #[derive(Component, Deref, DerefMut, Clone, Copy, PartialEq)] @@ -6402,6 +6489,93 @@ impl Default for MuleMetadataBundle { } } +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] +pub struct NautilusDash(pub bool); +#[derive(Component)] +pub struct Nautilus; +impl Nautilus { + pub fn apply_metadata( + entity: &mut bevy_ecs::system::EntityCommands, + d: EntityDataItem, + ) -> Result<(), UpdateMetadataError> { + match d.index { + 0..=18 => AbstractTameable::apply_metadata(entity, d)?, + 19 => { + entity.insert(NautilusDash(d.value.into_boolean()?)); + } + _ => {} + } + Ok(()) + } +} + +#[derive(Bundle)] +pub struct NautilusMetadataBundle { + _marker: Nautilus, + parent: AbstractTameableMetadataBundle, + nautilus_dash: NautilusDash, +} +impl Default for NautilusMetadataBundle { + fn default() -> Self { + Self { + _marker: Nautilus, + parent: AbstractTameableMetadataBundle { + _marker: AbstractTameable, + parent: AbstractAnimalMetadataBundle { + _marker: AbstractAnimal, + parent: AbstractAgeableMetadataBundle { + _marker: AbstractAgeable, + parent: AbstractCreatureMetadataBundle { + _marker: AbstractCreature, + parent: AbstractInsentientMetadataBundle { + _marker: AbstractInsentient, + parent: AbstractLivingMetadataBundle { + _marker: AbstractLiving, + parent: AbstractEntityMetadataBundle { + _marker: AbstractEntity, + on_fire: OnFire(false), + abstract_entity_shift_key_down: AbstractEntityShiftKeyDown( + false, + ), + sprinting: Sprinting(false), + swimming: Swimming(false), + currently_glowing: CurrentlyGlowing(false), + invisible: Invisible(false), + fall_flying: FallFlying(false), + air_supply: AirSupply(Default::default()), + custom_name: CustomName(Default::default()), + custom_name_visible: CustomNameVisible(Default::default()), + silent: Silent(Default::default()), + no_gravity: NoGravity(Default::default()), + pose: Pose::default(), + ticks_frozen: TicksFrozen(Default::default()), + }, + auto_spin_attack: AutoSpinAttack(false), + abstract_living_using_item: AbstractLivingUsingItem(false), + health: Health(1.0), + effect_particles: EffectParticles(Default::default()), + effect_ambience: EffectAmbience(false), + arrow_count: ArrowCount(0), + stinger_count: StingerCount(0), + sleeping_pos: SleepingPos(None), + }, + no_ai: NoAi(false), + left_handed: LeftHanded(false), + aggressive: Aggressive(false), + }, + }, + abstract_ageable_baby: AbstractAgeableBaby(false), + }, + }, + tame: Tame(false), + in_sitting_pose: InSittingPose(false), + owneruuid: Owneruuid(None), + }, + nautilus_dash: NautilusDash(false), + } + } +} + #[derive(Component)] pub struct OakBoat; impl OakBoat { @@ -6954,6 +7128,74 @@ impl Default for PandaMetadataBundle { } } +#[derive(Component)] +pub struct Parched; +impl Parched { + pub fn apply_metadata( + entity: &mut bevy_ecs::system::EntityCommands, + d: EntityDataItem, + ) -> Result<(), UpdateMetadataError> { + match d.index { + 0..=15 => AbstractMonster::apply_metadata(entity, d)?, + _ => {} + } + Ok(()) + } +} + +#[derive(Bundle)] +pub struct ParchedMetadataBundle { + _marker: Parched, + parent: AbstractMonsterMetadataBundle, +} +impl Default for ParchedMetadataBundle { + fn default() -> Self { + Self { + _marker: Parched, + parent: AbstractMonsterMetadataBundle { + _marker: AbstractMonster, + parent: AbstractCreatureMetadataBundle { + _marker: AbstractCreature, + parent: AbstractInsentientMetadataBundle { + _marker: AbstractInsentient, + parent: AbstractLivingMetadataBundle { + _marker: AbstractLiving, + parent: AbstractEntityMetadataBundle { + _marker: AbstractEntity, + on_fire: OnFire(false), + abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false), + sprinting: Sprinting(false), + swimming: Swimming(false), + currently_glowing: CurrentlyGlowing(false), + invisible: Invisible(false), + fall_flying: FallFlying(false), + air_supply: AirSupply(Default::default()), + custom_name: CustomName(Default::default()), + custom_name_visible: CustomNameVisible(Default::default()), + silent: Silent(Default::default()), + no_gravity: NoGravity(Default::default()), + pose: Pose::default(), + ticks_frozen: TicksFrozen(Default::default()), + }, + auto_spin_attack: AutoSpinAttack(false), + abstract_living_using_item: AbstractLivingUsingItem(false), + health: Health(1.0), + effect_particles: EffectParticles(Default::default()), + effect_ambience: EffectAmbience(false), + arrow_count: ArrowCount(0), + stinger_count: StingerCount(0), + sleeping_pos: SleepingPos(None), + }, + no_ai: NoAi(false), + left_handed: LeftHanded(false), + aggressive: Aggressive(false), + }, + }, + }, + } + } +} + #[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct ParrotVariant(pub i32); #[derive(Component)] @@ -10631,7 +10873,7 @@ pub struct WolfInterested(pub bool); #[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct WolfCollarColor(pub i32); #[derive(Component, Deref, DerefMut, Clone, PartialEq)] -pub struct WolfRemainingAngerTime(pub i32); +pub struct WolfAngerEndTime(pub i64); #[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct WolfVariant(pub azalea_registry::CowVariant); #[derive(Component, Deref, DerefMut, Clone, PartialEq)] @@ -10652,7 +10894,7 @@ impl Wolf { entity.insert(WolfCollarColor(d.value.into_int()?)); } 21 => { - entity.insert(WolfRemainingAngerTime(d.value.into_int()?)); + entity.insert(WolfAngerEndTime(d.value.into_long()?)); } 22 => { entity.insert(WolfVariant(d.value.into_cow_variant()?)); @@ -10672,7 +10914,7 @@ pub struct WolfMetadataBundle { parent: AbstractTameableMetadataBundle, wolf_interested: WolfInterested, wolf_collar_color: WolfCollarColor, - wolf_remaining_anger_time: WolfRemainingAngerTime, + wolf_anger_end_time: WolfAngerEndTime, wolf_variant: WolfVariant, sound_variant: SoundVariant, } @@ -10734,7 +10976,7 @@ impl Default for WolfMetadataBundle { }, wolf_interested: WolfInterested(false), wolf_collar_color: WolfCollarColor(Default::default()), - wolf_remaining_anger_time: WolfRemainingAngerTime(0), + wolf_anger_end_time: WolfAngerEndTime(-1), wolf_variant: WolfVariant(azalea_registry::CowVariant::new_raw(0)), sound_variant: SoundVariant(azalea_registry::WolfVariant::new_raw(0)), } @@ -10980,6 +11222,93 @@ impl Default for ZombieHorseMetadataBundle { } } +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] +pub struct ZombieNautilusDash(pub bool); +#[derive(Component)] +pub struct ZombieNautilus; +impl ZombieNautilus { + pub fn apply_metadata( + entity: &mut bevy_ecs::system::EntityCommands, + d: EntityDataItem, + ) -> Result<(), UpdateMetadataError> { + match d.index { + 0..=18 => AbstractTameable::apply_metadata(entity, d)?, + 19 => { + entity.insert(ZombieNautilusDash(d.value.into_boolean()?)); + } + _ => {} + } + Ok(()) + } +} + +#[derive(Bundle)] +pub struct ZombieNautilusMetadataBundle { + _marker: ZombieNautilus, + parent: AbstractTameableMetadataBundle, + zombie_nautilus_dash: ZombieNautilusDash, +} +impl Default for ZombieNautilusMetadataBundle { + fn default() -> Self { + Self { + _marker: ZombieNautilus, + parent: AbstractTameableMetadataBundle { + _marker: AbstractTameable, + parent: AbstractAnimalMetadataBundle { + _marker: AbstractAnimal, + parent: AbstractAgeableMetadataBundle { + _marker: AbstractAgeable, + parent: AbstractCreatureMetadataBundle { + _marker: AbstractCreature, + parent: AbstractInsentientMetadataBundle { + _marker: AbstractInsentient, + parent: AbstractLivingMetadataBundle { + _marker: AbstractLiving, + parent: AbstractEntityMetadataBundle { + _marker: AbstractEntity, + on_fire: OnFire(false), + abstract_entity_shift_key_down: AbstractEntityShiftKeyDown( + false, + ), + sprinting: Sprinting(false), + swimming: Swimming(false), + currently_glowing: CurrentlyGlowing(false), + invisible: Invisible(false), + fall_flying: FallFlying(false), + air_supply: AirSupply(Default::default()), + custom_name: CustomName(Default::default()), + custom_name_visible: CustomNameVisible(Default::default()), + silent: Silent(Default::default()), + no_gravity: NoGravity(Default::default()), + pose: Pose::default(), + ticks_frozen: TicksFrozen(Default::default()), + }, + auto_spin_attack: AutoSpinAttack(false), + abstract_living_using_item: AbstractLivingUsingItem(false), + health: Health(1.0), + effect_particles: EffectParticles(Default::default()), + effect_ambience: EffectAmbience(false), + arrow_count: ArrowCount(0), + stinger_count: StingerCount(0), + sleeping_pos: SleepingPos(None), + }, + no_ai: NoAi(false), + left_handed: LeftHanded(false), + aggressive: Aggressive(false), + }, + }, + abstract_ageable_baby: AbstractAgeableBaby(false), + }, + }, + tame: Tame(false), + in_sitting_pose: InSittingPose(false), + owneruuid: Owneruuid(None), + }, + zombie_nautilus_dash: ZombieNautilusDash(false), + } + } +} + #[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct Converting(pub bool); #[derive(Component, Deref, DerefMut, Clone, PartialEq)] @@ -12903,6 +13232,11 @@ pub fn apply_metadata( Camel::apply_metadata(entity, d)?; } } + azalea_registry::EntityKind::CamelHusk => { + for d in items { + CamelHusk::apply_metadata(entity, d)?; + } + } azalea_registry::EntityKind::Cat => { for d in items { Cat::apply_metadata(entity, d)?; @@ -13248,6 +13582,11 @@ pub fn apply_metadata( Mule::apply_metadata(entity, d)?; } } + azalea_registry::EntityKind::Nautilus => { + for d in items { + Nautilus::apply_metadata(entity, d)?; + } + } azalea_registry::EntityKind::OakBoat => { for d in items { OakBoat::apply_metadata(entity, d)?; @@ -13288,6 +13627,11 @@ pub fn apply_metadata( Panda::apply_metadata(entity, d)?; } } + azalea_registry::EntityKind::Parched => { + for d in items { + Parched::apply_metadata(entity, d)?; + } + } azalea_registry::EntityKind::Parrot => { for d in items { Parrot::apply_metadata(entity, d)?; @@ -13558,6 +13902,11 @@ pub fn apply_metadata( ZombieHorse::apply_metadata(entity, d)?; } } + azalea_registry::EntityKind::ZombieNautilus => { + for d in items { + ZombieNautilus::apply_metadata(entity, d)?; + } + } azalea_registry::EntityKind::ZombieVillager => { for d in items { ZombieVillager::apply_metadata(entity, d)?; @@ -13637,6 +13986,9 @@ pub fn apply_default_metadata( azalea_registry::EntityKind::Camel => { entity.insert(CamelMetadataBundle::default()); } + azalea_registry::EntityKind::CamelHusk => { + entity.insert(CamelHuskMetadataBundle::default()); + } azalea_registry::EntityKind::Cat => { entity.insert(CatMetadataBundle::default()); } @@ -13844,6 +14196,9 @@ pub fn apply_default_metadata( azalea_registry::EntityKind::Mule => { entity.insert(MuleMetadataBundle::default()); } + azalea_registry::EntityKind::Nautilus => { + entity.insert(NautilusMetadataBundle::default()); + } azalea_registry::EntityKind::OakBoat => { entity.insert(OakBoatMetadataBundle::default()); } @@ -13868,6 +14223,9 @@ pub fn apply_default_metadata( azalea_registry::EntityKind::Panda => { entity.insert(PandaMetadataBundle::default()); } + azalea_registry::EntityKind::Parched => { + entity.insert(ParchedMetadataBundle::default()); + } azalea_registry::EntityKind::Parrot => { entity.insert(ParrotMetadataBundle::default()); } @@ -14030,6 +14388,9 @@ pub fn apply_default_metadata( azalea_registry::EntityKind::ZombieHorse => { entity.insert(ZombieHorseMetadataBundle::default()); } + azalea_registry::EntityKind::ZombieNautilus => { + entity.insert(ZombieNautilusMetadataBundle::default()); + } azalea_registry::EntityKind::ZombieVillager => { entity.insert(ZombieVillagerMetadataBundle::default()); } diff --git a/azalea-inventory/src/components/mod.rs b/azalea-inventory/src/components/mod.rs index 7f3fa831e..0ab9bdf4d 100644 --- a/azalea-inventory/src/components/mod.rs +++ b/azalea-inventory/src/components/mod.rs @@ -285,6 +285,12 @@ define_data_components!( CatCollar, SheepColor, ShulkerColor, + UseEffects, + MinimumAttackCharge, + DamageType, + PiercingWeapon, + KineticWeapon, + SwingAnimation, ); #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] @@ -1465,3 +1471,33 @@ pub enum ChickenVariant { pub struct ChickenVariantData { pub registry: azalea_registry::ChickenVariant, } + +#[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] +pub struct UseEffects { + pub todo: todo!(), // see DataComponents.java +} + +#[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] +pub struct MinimumAttackCharge { + pub todo: todo!(), // see DataComponents.java +} + +#[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] +pub struct DamageType { + pub todo: todo!(), // see DataComponents.java +} + +#[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] +pub struct PiercingWeapon { + pub todo: todo!(), // see DataComponents.java +} + +#[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] +pub struct KineticWeapon { + pub todo: todo!(), // see DataComponents.java +} + +#[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] +pub struct SwingAnimation { + pub todo: todo!(), // see DataComponents.java +} diff --git a/azalea-inventory/src/default_components/generated.rs b/azalea-inventory/src/default_components/generated.rs index 155d1a83a..ddb2d6e30 100644 --- a/azalea-inventory/src/default_components/generated.rs +++ b/azalea-inventory/src/default_components/generated.rs @@ -269,6 +269,28 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], + Item::CopperNautilusArmor => vec![ + AttributeModifiersEntry { + slot: EquipmentSlotGroup::Body, + kind: Attribute::Armor, + display: AttributeModifierDisplay::Default, + modifier: AttributeModifier { + id: "minecraft:armor.body".into(), + amount: 4.0, + operation: AttributeModifierOperation::AddValue, + }, + }, + AttributeModifiersEntry { + slot: EquipmentSlotGroup::Body, + kind: Attribute::ArmorToughness, + display: AttributeModifierDisplay::Default, + modifier: AttributeModifier { + id: "minecraft:armor.body".into(), + amount: 0.0, + operation: AttributeModifierOperation::AddValue, + }, + }, + ], Item::CopperPickaxe => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, @@ -313,6 +335,28 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], + Item::CopperSpear => vec![ + AttributeModifiersEntry { + slot: EquipmentSlotGroup::Mainhand, + kind: Attribute::AttackDamage, + display: AttributeModifierDisplay::Default, + modifier: AttributeModifier { + id: "minecraft:base_attack_damage".into(), + amount: 1.0, + operation: AttributeModifierOperation::AddValue, + }, + }, + AttributeModifiersEntry { + slot: EquipmentSlotGroup::Mainhand, + kind: Attribute::AttackSpeed, + display: AttributeModifierDisplay::Default, + modifier: AttributeModifier { + id: "minecraft:base_attack_speed".into(), + amount: -2.8235294818878174, + operation: AttributeModifierOperation::AddValue, + }, + }, + ], Item::CopperSword => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, @@ -499,6 +543,28 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], + Item::DiamondNautilusArmor => vec![ + AttributeModifiersEntry { + slot: EquipmentSlotGroup::Body, + kind: Attribute::Armor, + display: AttributeModifierDisplay::Default, + modifier: AttributeModifier { + id: "minecraft:armor.body".into(), + amount: 11.0, + operation: AttributeModifierOperation::AddValue, + }, + }, + AttributeModifiersEntry { + slot: EquipmentSlotGroup::Body, + kind: Attribute::ArmorToughness, + display: AttributeModifierDisplay::Default, + modifier: AttributeModifier { + id: "minecraft:armor.body".into(), + amount: 2.0, + operation: AttributeModifierOperation::AddValue, + }, + }, + ], Item::DiamondPickaxe => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, @@ -543,6 +609,28 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], + Item::DiamondSpear => vec![ + AttributeModifiersEntry { + slot: EquipmentSlotGroup::Mainhand, + kind: Attribute::AttackDamage, + display: AttributeModifierDisplay::Default, + modifier: AttributeModifier { + id: "minecraft:base_attack_damage".into(), + amount: 3.0, + operation: AttributeModifierOperation::AddValue, + }, + }, + AttributeModifiersEntry { + slot: EquipmentSlotGroup::Mainhand, + kind: Attribute::AttackSpeed, + display: AttributeModifierDisplay::Default, + modifier: AttributeModifier { + id: "minecraft:base_attack_speed".into(), + amount: -3.0476189851760864, + operation: AttributeModifierOperation::AddValue, + }, + }, + ], Item::DiamondSword => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, @@ -729,6 +817,28 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], + Item::GoldenNautilusArmor => vec![ + AttributeModifiersEntry { + slot: EquipmentSlotGroup::Body, + kind: Attribute::Armor, + display: AttributeModifierDisplay::Default, + modifier: AttributeModifier { + id: "minecraft:armor.body".into(), + amount: 7.0, + operation: AttributeModifierOperation::AddValue, + }, + }, + AttributeModifiersEntry { + slot: EquipmentSlotGroup::Body, + kind: Attribute::ArmorToughness, + display: AttributeModifierDisplay::Default, + modifier: AttributeModifier { + id: "minecraft:armor.body".into(), + amount: 0.0, + operation: AttributeModifierOperation::AddValue, + }, + }, + ], Item::GoldenPickaxe => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, @@ -773,6 +883,28 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], + Item::GoldenSpear => vec![ + AttributeModifiersEntry { + slot: EquipmentSlotGroup::Mainhand, + kind: Attribute::AttackDamage, + display: AttributeModifierDisplay::Default, + modifier: AttributeModifier { + id: "minecraft:base_attack_damage".into(), + amount: 0.0, + operation: AttributeModifierOperation::AddValue, + }, + }, + AttributeModifiersEntry { + slot: EquipmentSlotGroup::Mainhand, + kind: Attribute::AttackSpeed, + display: AttributeModifierDisplay::Default, + modifier: AttributeModifier { + id: "minecraft:base_attack_speed".into(), + amount: -2.9473683834075928, + operation: AttributeModifierOperation::AddValue, + }, + }, + ], Item::GoldenSword => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, @@ -949,6 +1081,28 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], + Item::IronNautilusArmor => vec![ + AttributeModifiersEntry { + slot: EquipmentSlotGroup::Body, + kind: Attribute::Armor, + display: AttributeModifierDisplay::Default, + modifier: AttributeModifier { + id: "minecraft:armor.body".into(), + amount: 5.0, + operation: AttributeModifierOperation::AddValue, + }, + }, + AttributeModifiersEntry { + slot: EquipmentSlotGroup::Body, + kind: Attribute::ArmorToughness, + display: AttributeModifierDisplay::Default, + modifier: AttributeModifier { + id: "minecraft:armor.body".into(), + amount: 0.0, + operation: AttributeModifierOperation::AddValue, + }, + }, + ], Item::IronPickaxe => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, @@ -993,6 +1147,28 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], + Item::IronSpear => vec![ + AttributeModifiersEntry { + slot: EquipmentSlotGroup::Mainhand, + kind: Attribute::AttackDamage, + display: AttributeModifierDisplay::Default, + modifier: AttributeModifier { + id: "minecraft:base_attack_damage".into(), + amount: 2.0, + operation: AttributeModifierOperation::AddValue, + }, + }, + AttributeModifiersEntry { + slot: EquipmentSlotGroup::Mainhand, + kind: Attribute::AttackSpeed, + display: AttributeModifierDisplay::Default, + modifier: AttributeModifier { + id: "minecraft:base_attack_speed".into(), + amount: -2.9473683834075928, + operation: AttributeModifierOperation::AddValue, + }, + }, + ], Item::IronSword => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, @@ -1319,6 +1495,38 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], + Item::NetheriteNautilusArmor => vec![ + AttributeModifiersEntry { + slot: EquipmentSlotGroup::Body, + kind: Attribute::Armor, + display: AttributeModifierDisplay::Default, + modifier: AttributeModifier { + id: "minecraft:armor.body".into(), + amount: 19.0, + operation: AttributeModifierOperation::AddValue, + }, + }, + AttributeModifiersEntry { + slot: EquipmentSlotGroup::Body, + kind: Attribute::ArmorToughness, + display: AttributeModifierDisplay::Default, + modifier: AttributeModifier { + id: "minecraft:armor.body".into(), + amount: 3.0, + operation: AttributeModifierOperation::AddValue, + }, + }, + AttributeModifiersEntry { + slot: EquipmentSlotGroup::Body, + kind: Attribute::KnockbackResistance, + display: AttributeModifierDisplay::Default, + modifier: AttributeModifier { + id: "minecraft:armor.body".into(), + amount: 0.10000000149011612, + operation: AttributeModifierOperation::AddValue, + }, + }, + ], Item::NetheritePickaxe => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, @@ -1363,6 +1571,28 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], + Item::NetheriteSpear => vec![ + AttributeModifiersEntry { + slot: EquipmentSlotGroup::Mainhand, + kind: Attribute::AttackDamage, + display: AttributeModifierDisplay::Default, + modifier: AttributeModifier { + id: "minecraft:base_attack_damage".into(), + amount: 4.0, + operation: AttributeModifierOperation::AddValue, + }, + }, + AttributeModifiersEntry { + slot: EquipmentSlotGroup::Mainhand, + kind: Attribute::AttackSpeed, + display: AttributeModifierDisplay::Default, + modifier: AttributeModifier { + id: "minecraft:base_attack_speed".into(), + amount: -3.13043475151062, + operation: AttributeModifierOperation::AddValue, + }, + }, + ], Item::NetheriteSword => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, @@ -1503,6 +1733,28 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], + Item::StoneSpear => vec![ + AttributeModifiersEntry { + slot: EquipmentSlotGroup::Mainhand, + kind: Attribute::AttackDamage, + display: AttributeModifierDisplay::Default, + modifier: AttributeModifier { + id: "minecraft:base_attack_damage".into(), + amount: 1.0, + operation: AttributeModifierOperation::AddValue, + }, + }, + AttributeModifiersEntry { + slot: EquipmentSlotGroup::Mainhand, + kind: Attribute::AttackSpeed, + display: AttributeModifierDisplay::Default, + modifier: AttributeModifier { + id: "minecraft:base_attack_speed".into(), + amount: -2.666666626930237, + operation: AttributeModifierOperation::AddValue, + }, + }, + ], Item::StoneSword => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, @@ -1689,6 +1941,28 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], + Item::WoodenSpear => vec![ + AttributeModifiersEntry { + slot: EquipmentSlotGroup::Mainhand, + kind: Attribute::AttackDamage, + display: AttributeModifierDisplay::Default, + modifier: AttributeModifier { + id: "minecraft:base_attack_damage".into(), + amount: 0.0, + operation: AttributeModifierOperation::AddValue, + }, + }, + AttributeModifiersEntry { + slot: EquipmentSlotGroup::Mainhand, + kind: Attribute::AttackSpeed, + display: AttributeModifierDisplay::Default, + modifier: AttributeModifier { + id: "minecraft:base_attack_speed".into(), + amount: -2.4615384340286255, + operation: AttributeModifierOperation::AddValue, + }, + }, + ], Item::WoodenSword => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, @@ -1744,7 +2018,7 @@ impl DefaultableComponent for Enchantments { } } #[rustfmt::skip] -static ITEM_MODEL_VALUES: [&str; 1488] = ["minecraft:air","minecraft:stone","minecraft:granite","minecraft:polished_granite","minecraft:diorite","minecraft:polished_diorite","minecraft:andesite","minecraft:polished_andesite","minecraft:deepslate","minecraft:cobbled_deepslate","minecraft:polished_deepslate","minecraft:calcite","minecraft:tuff","minecraft:tuff_slab","minecraft:tuff_stairs","minecraft:tuff_wall","minecraft:chiseled_tuff","minecraft:polished_tuff","minecraft:polished_tuff_slab","minecraft:polished_tuff_stairs","minecraft:polished_tuff_wall","minecraft:tuff_bricks","minecraft:tuff_brick_slab","minecraft:tuff_brick_stairs","minecraft:tuff_brick_wall","minecraft:chiseled_tuff_bricks","minecraft:dripstone_block","minecraft:grass_block","minecraft:dirt","minecraft:coarse_dirt","minecraft:podzol","minecraft:rooted_dirt","minecraft:mud","minecraft:crimson_nylium","minecraft:warped_nylium","minecraft:cobblestone","minecraft:oak_planks","minecraft:spruce_planks","minecraft:birch_planks","minecraft:jungle_planks","minecraft:acacia_planks","minecraft:cherry_planks","minecraft:dark_oak_planks","minecraft:pale_oak_planks","minecraft:mangrove_planks","minecraft:bamboo_planks","minecraft:crimson_planks","minecraft:warped_planks","minecraft:bamboo_mosaic","minecraft:oak_sapling","minecraft:spruce_sapling","minecraft:birch_sapling","minecraft:jungle_sapling","minecraft:acacia_sapling","minecraft:cherry_sapling","minecraft:dark_oak_sapling","minecraft:pale_oak_sapling","minecraft:mangrove_propagule","minecraft:bedrock","minecraft:sand","minecraft:suspicious_sand","minecraft:suspicious_gravel","minecraft:red_sand","minecraft:gravel","minecraft:coal_ore","minecraft:deepslate_coal_ore","minecraft:iron_ore","minecraft:deepslate_iron_ore","minecraft:copper_ore","minecraft:deepslate_copper_ore","minecraft:gold_ore","minecraft:deepslate_gold_ore","minecraft:redstone_ore","minecraft:deepslate_redstone_ore","minecraft:emerald_ore","minecraft:deepslate_emerald_ore","minecraft:lapis_ore","minecraft:deepslate_lapis_ore","minecraft:diamond_ore","minecraft:deepslate_diamond_ore","minecraft:nether_gold_ore","minecraft:nether_quartz_ore","minecraft:ancient_debris","minecraft:coal_block","minecraft:raw_iron_block","minecraft:raw_copper_block","minecraft:raw_gold_block","minecraft:heavy_core","minecraft:amethyst_block","minecraft:budding_amethyst","minecraft:iron_block","minecraft:copper_block","minecraft:gold_block","minecraft:diamond_block","minecraft:netherite_block","minecraft:exposed_copper","minecraft:weathered_copper","minecraft:oxidized_copper","minecraft:chiseled_copper","minecraft:exposed_chiseled_copper","minecraft:weathered_chiseled_copper","minecraft:oxidized_chiseled_copper","minecraft:cut_copper","minecraft:exposed_cut_copper","minecraft:weathered_cut_copper","minecraft:oxidized_cut_copper","minecraft:cut_copper_stairs","minecraft:exposed_cut_copper_stairs","minecraft:weathered_cut_copper_stairs","minecraft:oxidized_cut_copper_stairs","minecraft:cut_copper_slab","minecraft:exposed_cut_copper_slab","minecraft:weathered_cut_copper_slab","minecraft:oxidized_cut_copper_slab","minecraft:waxed_copper_block","minecraft:waxed_exposed_copper","minecraft:waxed_weathered_copper","minecraft:waxed_oxidized_copper","minecraft:waxed_chiseled_copper","minecraft:waxed_exposed_chiseled_copper","minecraft:waxed_weathered_chiseled_copper","minecraft:waxed_oxidized_chiseled_copper","minecraft:waxed_cut_copper","minecraft:waxed_exposed_cut_copper","minecraft:waxed_weathered_cut_copper","minecraft:waxed_oxidized_cut_copper","minecraft:waxed_cut_copper_stairs","minecraft:waxed_exposed_cut_copper_stairs","minecraft:waxed_weathered_cut_copper_stairs","minecraft:waxed_oxidized_cut_copper_stairs","minecraft:waxed_cut_copper_slab","minecraft:waxed_exposed_cut_copper_slab","minecraft:waxed_weathered_cut_copper_slab","minecraft:waxed_oxidized_cut_copper_slab","minecraft:oak_log","minecraft:spruce_log","minecraft:birch_log","minecraft:jungle_log","minecraft:acacia_log","minecraft:cherry_log","minecraft:pale_oak_log","minecraft:dark_oak_log","minecraft:mangrove_log","minecraft:mangrove_roots","minecraft:muddy_mangrove_roots","minecraft:crimson_stem","minecraft:warped_stem","minecraft:bamboo_block","minecraft:stripped_oak_log","minecraft:stripped_spruce_log","minecraft:stripped_birch_log","minecraft:stripped_jungle_log","minecraft:stripped_acacia_log","minecraft:stripped_cherry_log","minecraft:stripped_dark_oak_log","minecraft:stripped_pale_oak_log","minecraft:stripped_mangrove_log","minecraft:stripped_crimson_stem","minecraft:stripped_warped_stem","minecraft:stripped_oak_wood","minecraft:stripped_spruce_wood","minecraft:stripped_birch_wood","minecraft:stripped_jungle_wood","minecraft:stripped_acacia_wood","minecraft:stripped_cherry_wood","minecraft:stripped_dark_oak_wood","minecraft:stripped_pale_oak_wood","minecraft:stripped_mangrove_wood","minecraft:stripped_crimson_hyphae","minecraft:stripped_warped_hyphae","minecraft:stripped_bamboo_block","minecraft:oak_wood","minecraft:spruce_wood","minecraft:birch_wood","minecraft:jungle_wood","minecraft:acacia_wood","minecraft:cherry_wood","minecraft:pale_oak_wood","minecraft:dark_oak_wood","minecraft:mangrove_wood","minecraft:crimson_hyphae","minecraft:warped_hyphae","minecraft:oak_leaves","minecraft:spruce_leaves","minecraft:birch_leaves","minecraft:jungle_leaves","minecraft:acacia_leaves","minecraft:cherry_leaves","minecraft:dark_oak_leaves","minecraft:pale_oak_leaves","minecraft:mangrove_leaves","minecraft:azalea_leaves","minecraft:flowering_azalea_leaves","minecraft:sponge","minecraft:wet_sponge","minecraft:glass","minecraft:tinted_glass","minecraft:lapis_block","minecraft:sandstone","minecraft:chiseled_sandstone","minecraft:cut_sandstone","minecraft:cobweb","minecraft:short_grass","minecraft:fern","minecraft:bush","minecraft:azalea","minecraft:flowering_azalea","minecraft:dead_bush","minecraft:firefly_bush","minecraft:short_dry_grass","minecraft:tall_dry_grass","minecraft:seagrass","minecraft:sea_pickle","minecraft:white_wool","minecraft:orange_wool","minecraft:magenta_wool","minecraft:light_blue_wool","minecraft:yellow_wool","minecraft:lime_wool","minecraft:pink_wool","minecraft:gray_wool","minecraft:light_gray_wool","minecraft:cyan_wool","minecraft:purple_wool","minecraft:blue_wool","minecraft:brown_wool","minecraft:green_wool","minecraft:red_wool","minecraft:black_wool","minecraft:dandelion","minecraft:open_eyeblossom","minecraft:closed_eyeblossom","minecraft:poppy","minecraft:blue_orchid","minecraft:allium","minecraft:azure_bluet","minecraft:red_tulip","minecraft:orange_tulip","minecraft:white_tulip","minecraft:pink_tulip","minecraft:oxeye_daisy","minecraft:cornflower","minecraft:lily_of_the_valley","minecraft:wither_rose","minecraft:torchflower","minecraft:pitcher_plant","minecraft:spore_blossom","minecraft:brown_mushroom","minecraft:red_mushroom","minecraft:crimson_fungus","minecraft:warped_fungus","minecraft:crimson_roots","minecraft:warped_roots","minecraft:nether_sprouts","minecraft:weeping_vines","minecraft:twisting_vines","minecraft:sugar_cane","minecraft:kelp","minecraft:pink_petals","minecraft:wildflowers","minecraft:leaf_litter","minecraft:moss_carpet","minecraft:moss_block","minecraft:pale_moss_carpet","minecraft:pale_hanging_moss","minecraft:pale_moss_block","minecraft:hanging_roots","minecraft:big_dripleaf","minecraft:small_dripleaf","minecraft:bamboo","minecraft:oak_slab","minecraft:spruce_slab","minecraft:birch_slab","minecraft:jungle_slab","minecraft:acacia_slab","minecraft:cherry_slab","minecraft:dark_oak_slab","minecraft:pale_oak_slab","minecraft:mangrove_slab","minecraft:bamboo_slab","minecraft:bamboo_mosaic_slab","minecraft:crimson_slab","minecraft:warped_slab","minecraft:stone_slab","minecraft:smooth_stone_slab","minecraft:sandstone_slab","minecraft:cut_sandstone_slab","minecraft:petrified_oak_slab","minecraft:cobblestone_slab","minecraft:brick_slab","minecraft:stone_brick_slab","minecraft:mud_brick_slab","minecraft:nether_brick_slab","minecraft:quartz_slab","minecraft:red_sandstone_slab","minecraft:cut_red_sandstone_slab","minecraft:purpur_slab","minecraft:prismarine_slab","minecraft:prismarine_brick_slab","minecraft:dark_prismarine_slab","minecraft:smooth_quartz","minecraft:smooth_red_sandstone","minecraft:smooth_sandstone","minecraft:smooth_stone","minecraft:bricks","minecraft:acacia_shelf","minecraft:bamboo_shelf","minecraft:birch_shelf","minecraft:cherry_shelf","minecraft:crimson_shelf","minecraft:dark_oak_shelf","minecraft:jungle_shelf","minecraft:mangrove_shelf","minecraft:oak_shelf","minecraft:pale_oak_shelf","minecraft:spruce_shelf","minecraft:warped_shelf","minecraft:bookshelf","minecraft:chiseled_bookshelf","minecraft:decorated_pot","minecraft:mossy_cobblestone","minecraft:obsidian","minecraft:torch","minecraft:end_rod","minecraft:chorus_plant","minecraft:chorus_flower","minecraft:purpur_block","minecraft:purpur_pillar","minecraft:purpur_stairs","minecraft:spawner","minecraft:creaking_heart","minecraft:chest","minecraft:crafting_table","minecraft:farmland","minecraft:furnace","minecraft:ladder","minecraft:cobblestone_stairs","minecraft:snow","minecraft:ice","minecraft:snow_block","minecraft:cactus","minecraft:cactus_flower","minecraft:clay","minecraft:jukebox","minecraft:oak_fence","minecraft:spruce_fence","minecraft:birch_fence","minecraft:jungle_fence","minecraft:acacia_fence","minecraft:cherry_fence","minecraft:dark_oak_fence","minecraft:pale_oak_fence","minecraft:mangrove_fence","minecraft:bamboo_fence","minecraft:crimson_fence","minecraft:warped_fence","minecraft:pumpkin","minecraft:carved_pumpkin","minecraft:jack_o_lantern","minecraft:netherrack","minecraft:soul_sand","minecraft:soul_soil","minecraft:basalt","minecraft:polished_basalt","minecraft:smooth_basalt","minecraft:soul_torch","minecraft:copper_torch","minecraft:glowstone","minecraft:infested_stone","minecraft:infested_cobblestone","minecraft:infested_stone_bricks","minecraft:infested_mossy_stone_bricks","minecraft:infested_cracked_stone_bricks","minecraft:infested_chiseled_stone_bricks","minecraft:infested_deepslate","minecraft:stone_bricks","minecraft:mossy_stone_bricks","minecraft:cracked_stone_bricks","minecraft:chiseled_stone_bricks","minecraft:packed_mud","minecraft:mud_bricks","minecraft:deepslate_bricks","minecraft:cracked_deepslate_bricks","minecraft:deepslate_tiles","minecraft:cracked_deepslate_tiles","minecraft:chiseled_deepslate","minecraft:reinforced_deepslate","minecraft:brown_mushroom_block","minecraft:red_mushroom_block","minecraft:mushroom_stem","minecraft:iron_bars","minecraft:copper_bars","minecraft:exposed_copper_bars","minecraft:weathered_copper_bars","minecraft:oxidized_copper_bars","minecraft:waxed_copper_bars","minecraft:waxed_exposed_copper_bars","minecraft:waxed_weathered_copper_bars","minecraft:waxed_oxidized_copper_bars","minecraft:iron_chain","minecraft:copper_chain","minecraft:exposed_copper_chain","minecraft:weathered_copper_chain","minecraft:oxidized_copper_chain","minecraft:waxed_copper_chain","minecraft:waxed_exposed_copper_chain","minecraft:waxed_weathered_copper_chain","minecraft:waxed_oxidized_copper_chain","minecraft:glass_pane","minecraft:melon","minecraft:vine","minecraft:glow_lichen","minecraft:resin_clump","minecraft:resin_block","minecraft:resin_bricks","minecraft:resin_brick_stairs","minecraft:resin_brick_slab","minecraft:resin_brick_wall","minecraft:chiseled_resin_bricks","minecraft:brick_stairs","minecraft:stone_brick_stairs","minecraft:mud_brick_stairs","minecraft:mycelium","minecraft:lily_pad","minecraft:nether_bricks","minecraft:cracked_nether_bricks","minecraft:chiseled_nether_bricks","minecraft:nether_brick_fence","minecraft:nether_brick_stairs","minecraft:sculk","minecraft:sculk_vein","minecraft:sculk_catalyst","minecraft:sculk_shrieker","minecraft:enchanting_table","minecraft:end_portal_frame","minecraft:end_stone","minecraft:end_stone_bricks","minecraft:dragon_egg","minecraft:sandstone_stairs","minecraft:ender_chest","minecraft:emerald_block","minecraft:oak_stairs","minecraft:spruce_stairs","minecraft:birch_stairs","minecraft:jungle_stairs","minecraft:acacia_stairs","minecraft:cherry_stairs","minecraft:dark_oak_stairs","minecraft:pale_oak_stairs","minecraft:mangrove_stairs","minecraft:bamboo_stairs","minecraft:bamboo_mosaic_stairs","minecraft:crimson_stairs","minecraft:warped_stairs","minecraft:command_block","minecraft:beacon","minecraft:cobblestone_wall","minecraft:mossy_cobblestone_wall","minecraft:brick_wall","minecraft:prismarine_wall","minecraft:red_sandstone_wall","minecraft:mossy_stone_brick_wall","minecraft:granite_wall","minecraft:stone_brick_wall","minecraft:mud_brick_wall","minecraft:nether_brick_wall","minecraft:andesite_wall","minecraft:red_nether_brick_wall","minecraft:sandstone_wall","minecraft:end_stone_brick_wall","minecraft:diorite_wall","minecraft:blackstone_wall","minecraft:polished_blackstone_wall","minecraft:polished_blackstone_brick_wall","minecraft:cobbled_deepslate_wall","minecraft:polished_deepslate_wall","minecraft:deepslate_brick_wall","minecraft:deepslate_tile_wall","minecraft:anvil","minecraft:chipped_anvil","minecraft:damaged_anvil","minecraft:chiseled_quartz_block","minecraft:quartz_block","minecraft:quartz_bricks","minecraft:quartz_pillar","minecraft:quartz_stairs","minecraft:white_terracotta","minecraft:orange_terracotta","minecraft:magenta_terracotta","minecraft:light_blue_terracotta","minecraft:yellow_terracotta","minecraft:lime_terracotta","minecraft:pink_terracotta","minecraft:gray_terracotta","minecraft:light_gray_terracotta","minecraft:cyan_terracotta","minecraft:purple_terracotta","minecraft:blue_terracotta","minecraft:brown_terracotta","minecraft:green_terracotta","minecraft:red_terracotta","minecraft:black_terracotta","minecraft:barrier","minecraft:light","minecraft:hay_block","minecraft:white_carpet","minecraft:orange_carpet","minecraft:magenta_carpet","minecraft:light_blue_carpet","minecraft:yellow_carpet","minecraft:lime_carpet","minecraft:pink_carpet","minecraft:gray_carpet","minecraft:light_gray_carpet","minecraft:cyan_carpet","minecraft:purple_carpet","minecraft:blue_carpet","minecraft:brown_carpet","minecraft:green_carpet","minecraft:red_carpet","minecraft:black_carpet","minecraft:terracotta","minecraft:packed_ice","minecraft:dirt_path","minecraft:sunflower","minecraft:lilac","minecraft:rose_bush","minecraft:peony","minecraft:tall_grass","minecraft:large_fern","minecraft:white_stained_glass","minecraft:orange_stained_glass","minecraft:magenta_stained_glass","minecraft:light_blue_stained_glass","minecraft:yellow_stained_glass","minecraft:lime_stained_glass","minecraft:pink_stained_glass","minecraft:gray_stained_glass","minecraft:light_gray_stained_glass","minecraft:cyan_stained_glass","minecraft:purple_stained_glass","minecraft:blue_stained_glass","minecraft:brown_stained_glass","minecraft:green_stained_glass","minecraft:red_stained_glass","minecraft:black_stained_glass","minecraft:white_stained_glass_pane","minecraft:orange_stained_glass_pane","minecraft:magenta_stained_glass_pane","minecraft:light_blue_stained_glass_pane","minecraft:yellow_stained_glass_pane","minecraft:lime_stained_glass_pane","minecraft:pink_stained_glass_pane","minecraft:gray_stained_glass_pane","minecraft:light_gray_stained_glass_pane","minecraft:cyan_stained_glass_pane","minecraft:purple_stained_glass_pane","minecraft:blue_stained_glass_pane","minecraft:brown_stained_glass_pane","minecraft:green_stained_glass_pane","minecraft:red_stained_glass_pane","minecraft:black_stained_glass_pane","minecraft:prismarine","minecraft:prismarine_bricks","minecraft:dark_prismarine","minecraft:prismarine_stairs","minecraft:prismarine_brick_stairs","minecraft:dark_prismarine_stairs","minecraft:sea_lantern","minecraft:red_sandstone","minecraft:chiseled_red_sandstone","minecraft:cut_red_sandstone","minecraft:red_sandstone_stairs","minecraft:repeating_command_block","minecraft:chain_command_block","minecraft:magma_block","minecraft:nether_wart_block","minecraft:warped_wart_block","minecraft:red_nether_bricks","minecraft:bone_block","minecraft:structure_void","minecraft:shulker_box","minecraft:white_shulker_box","minecraft:orange_shulker_box","minecraft:magenta_shulker_box","minecraft:light_blue_shulker_box","minecraft:yellow_shulker_box","minecraft:lime_shulker_box","minecraft:pink_shulker_box","minecraft:gray_shulker_box","minecraft:light_gray_shulker_box","minecraft:cyan_shulker_box","minecraft:purple_shulker_box","minecraft:blue_shulker_box","minecraft:brown_shulker_box","minecraft:green_shulker_box","minecraft:red_shulker_box","minecraft:black_shulker_box","minecraft:white_glazed_terracotta","minecraft:orange_glazed_terracotta","minecraft:magenta_glazed_terracotta","minecraft:light_blue_glazed_terracotta","minecraft:yellow_glazed_terracotta","minecraft:lime_glazed_terracotta","minecraft:pink_glazed_terracotta","minecraft:gray_glazed_terracotta","minecraft:light_gray_glazed_terracotta","minecraft:cyan_glazed_terracotta","minecraft:purple_glazed_terracotta","minecraft:blue_glazed_terracotta","minecraft:brown_glazed_terracotta","minecraft:green_glazed_terracotta","minecraft:red_glazed_terracotta","minecraft:black_glazed_terracotta","minecraft:white_concrete","minecraft:orange_concrete","minecraft:magenta_concrete","minecraft:light_blue_concrete","minecraft:yellow_concrete","minecraft:lime_concrete","minecraft:pink_concrete","minecraft:gray_concrete","minecraft:light_gray_concrete","minecraft:cyan_concrete","minecraft:purple_concrete","minecraft:blue_concrete","minecraft:brown_concrete","minecraft:green_concrete","minecraft:red_concrete","minecraft:black_concrete","minecraft:white_concrete_powder","minecraft:orange_concrete_powder","minecraft:magenta_concrete_powder","minecraft:light_blue_concrete_powder","minecraft:yellow_concrete_powder","minecraft:lime_concrete_powder","minecraft:pink_concrete_powder","minecraft:gray_concrete_powder","minecraft:light_gray_concrete_powder","minecraft:cyan_concrete_powder","minecraft:purple_concrete_powder","minecraft:blue_concrete_powder","minecraft:brown_concrete_powder","minecraft:green_concrete_powder","minecraft:red_concrete_powder","minecraft:black_concrete_powder","minecraft:turtle_egg","minecraft:sniffer_egg","minecraft:dried_ghast","minecraft:dead_tube_coral_block","minecraft:dead_brain_coral_block","minecraft:dead_bubble_coral_block","minecraft:dead_fire_coral_block","minecraft:dead_horn_coral_block","minecraft:tube_coral_block","minecraft:brain_coral_block","minecraft:bubble_coral_block","minecraft:fire_coral_block","minecraft:horn_coral_block","minecraft:tube_coral","minecraft:brain_coral","minecraft:bubble_coral","minecraft:fire_coral","minecraft:horn_coral","minecraft:dead_brain_coral","minecraft:dead_bubble_coral","minecraft:dead_fire_coral","minecraft:dead_horn_coral","minecraft:dead_tube_coral","minecraft:tube_coral_fan","minecraft:brain_coral_fan","minecraft:bubble_coral_fan","minecraft:fire_coral_fan","minecraft:horn_coral_fan","minecraft:dead_tube_coral_fan","minecraft:dead_brain_coral_fan","minecraft:dead_bubble_coral_fan","minecraft:dead_fire_coral_fan","minecraft:dead_horn_coral_fan","minecraft:blue_ice","minecraft:conduit","minecraft:polished_granite_stairs","minecraft:smooth_red_sandstone_stairs","minecraft:mossy_stone_brick_stairs","minecraft:polished_diorite_stairs","minecraft:mossy_cobblestone_stairs","minecraft:end_stone_brick_stairs","minecraft:stone_stairs","minecraft:smooth_sandstone_stairs","minecraft:smooth_quartz_stairs","minecraft:granite_stairs","minecraft:andesite_stairs","minecraft:red_nether_brick_stairs","minecraft:polished_andesite_stairs","minecraft:diorite_stairs","minecraft:cobbled_deepslate_stairs","minecraft:polished_deepslate_stairs","minecraft:deepslate_brick_stairs","minecraft:deepslate_tile_stairs","minecraft:polished_granite_slab","minecraft:smooth_red_sandstone_slab","minecraft:mossy_stone_brick_slab","minecraft:polished_diorite_slab","minecraft:mossy_cobblestone_slab","minecraft:end_stone_brick_slab","minecraft:smooth_sandstone_slab","minecraft:smooth_quartz_slab","minecraft:granite_slab","minecraft:andesite_slab","minecraft:red_nether_brick_slab","minecraft:polished_andesite_slab","minecraft:diorite_slab","minecraft:cobbled_deepslate_slab","minecraft:polished_deepslate_slab","minecraft:deepslate_brick_slab","minecraft:deepslate_tile_slab","minecraft:scaffolding","minecraft:redstone","minecraft:redstone_torch","minecraft:redstone_block","minecraft:repeater","minecraft:comparator","minecraft:piston","minecraft:sticky_piston","minecraft:slime_block","minecraft:honey_block","minecraft:observer","minecraft:hopper","minecraft:dispenser","minecraft:dropper","minecraft:lectern","minecraft:target","minecraft:lever","minecraft:lightning_rod","minecraft:exposed_lightning_rod","minecraft:weathered_lightning_rod","minecraft:oxidized_lightning_rod","minecraft:waxed_lightning_rod","minecraft:waxed_exposed_lightning_rod","minecraft:waxed_weathered_lightning_rod","minecraft:waxed_oxidized_lightning_rod","minecraft:daylight_detector","minecraft:sculk_sensor","minecraft:calibrated_sculk_sensor","minecraft:tripwire_hook","minecraft:trapped_chest","minecraft:tnt","minecraft:redstone_lamp","minecraft:note_block","minecraft:stone_button","minecraft:polished_blackstone_button","minecraft:oak_button","minecraft:spruce_button","minecraft:birch_button","minecraft:jungle_button","minecraft:acacia_button","minecraft:cherry_button","minecraft:dark_oak_button","minecraft:pale_oak_button","minecraft:mangrove_button","minecraft:bamboo_button","minecraft:crimson_button","minecraft:warped_button","minecraft:stone_pressure_plate","minecraft:polished_blackstone_pressure_plate","minecraft:light_weighted_pressure_plate","minecraft:heavy_weighted_pressure_plate","minecraft:oak_pressure_plate","minecraft:spruce_pressure_plate","minecraft:birch_pressure_plate","minecraft:jungle_pressure_plate","minecraft:acacia_pressure_plate","minecraft:cherry_pressure_plate","minecraft:dark_oak_pressure_plate","minecraft:pale_oak_pressure_plate","minecraft:mangrove_pressure_plate","minecraft:bamboo_pressure_plate","minecraft:crimson_pressure_plate","minecraft:warped_pressure_plate","minecraft:iron_door","minecraft:oak_door","minecraft:spruce_door","minecraft:birch_door","minecraft:jungle_door","minecraft:acacia_door","minecraft:cherry_door","minecraft:dark_oak_door","minecraft:pale_oak_door","minecraft:mangrove_door","minecraft:bamboo_door","minecraft:crimson_door","minecraft:warped_door","minecraft:copper_door","minecraft:exposed_copper_door","minecraft:weathered_copper_door","minecraft:oxidized_copper_door","minecraft:waxed_copper_door","minecraft:waxed_exposed_copper_door","minecraft:waxed_weathered_copper_door","minecraft:waxed_oxidized_copper_door","minecraft:iron_trapdoor","minecraft:oak_trapdoor","minecraft:spruce_trapdoor","minecraft:birch_trapdoor","minecraft:jungle_trapdoor","minecraft:acacia_trapdoor","minecraft:cherry_trapdoor","minecraft:dark_oak_trapdoor","minecraft:pale_oak_trapdoor","minecraft:mangrove_trapdoor","minecraft:bamboo_trapdoor","minecraft:crimson_trapdoor","minecraft:warped_trapdoor","minecraft:copper_trapdoor","minecraft:exposed_copper_trapdoor","minecraft:weathered_copper_trapdoor","minecraft:oxidized_copper_trapdoor","minecraft:waxed_copper_trapdoor","minecraft:waxed_exposed_copper_trapdoor","minecraft:waxed_weathered_copper_trapdoor","minecraft:waxed_oxidized_copper_trapdoor","minecraft:oak_fence_gate","minecraft:spruce_fence_gate","minecraft:birch_fence_gate","minecraft:jungle_fence_gate","minecraft:acacia_fence_gate","minecraft:cherry_fence_gate","minecraft:dark_oak_fence_gate","minecraft:pale_oak_fence_gate","minecraft:mangrove_fence_gate","minecraft:bamboo_fence_gate","minecraft:crimson_fence_gate","minecraft:warped_fence_gate","minecraft:powered_rail","minecraft:detector_rail","minecraft:rail","minecraft:activator_rail","minecraft:saddle","minecraft:white_harness","minecraft:orange_harness","minecraft:magenta_harness","minecraft:light_blue_harness","minecraft:yellow_harness","minecraft:lime_harness","minecraft:pink_harness","minecraft:gray_harness","minecraft:light_gray_harness","minecraft:cyan_harness","minecraft:purple_harness","minecraft:blue_harness","minecraft:brown_harness","minecraft:green_harness","minecraft:red_harness","minecraft:black_harness","minecraft:minecart","minecraft:chest_minecart","minecraft:furnace_minecart","minecraft:tnt_minecart","minecraft:hopper_minecart","minecraft:carrot_on_a_stick","minecraft:warped_fungus_on_a_stick","minecraft:phantom_membrane","minecraft:elytra","minecraft:oak_boat","minecraft:oak_chest_boat","minecraft:spruce_boat","minecraft:spruce_chest_boat","minecraft:birch_boat","minecraft:birch_chest_boat","minecraft:jungle_boat","minecraft:jungle_chest_boat","minecraft:acacia_boat","minecraft:acacia_chest_boat","minecraft:cherry_boat","minecraft:cherry_chest_boat","minecraft:dark_oak_boat","minecraft:dark_oak_chest_boat","minecraft:pale_oak_boat","minecraft:pale_oak_chest_boat","minecraft:mangrove_boat","minecraft:mangrove_chest_boat","minecraft:bamboo_raft","minecraft:bamboo_chest_raft","minecraft:structure_block","minecraft:jigsaw","minecraft:test_block","minecraft:test_instance_block","minecraft:turtle_helmet","minecraft:turtle_scute","minecraft:armadillo_scute","minecraft:wolf_armor","minecraft:flint_and_steel","minecraft:bowl","minecraft:apple","minecraft:bow","minecraft:arrow","minecraft:coal","minecraft:charcoal","minecraft:diamond","minecraft:emerald","minecraft:lapis_lazuli","minecraft:quartz","minecraft:amethyst_shard","minecraft:raw_iron","minecraft:iron_ingot","minecraft:raw_copper","minecraft:copper_ingot","minecraft:raw_gold","minecraft:gold_ingot","minecraft:netherite_ingot","minecraft:netherite_scrap","minecraft:wooden_sword","minecraft:wooden_shovel","minecraft:wooden_pickaxe","minecraft:wooden_axe","minecraft:wooden_hoe","minecraft:copper_sword","minecraft:copper_shovel","minecraft:copper_pickaxe","minecraft:copper_axe","minecraft:copper_hoe","minecraft:stone_sword","minecraft:stone_shovel","minecraft:stone_pickaxe","minecraft:stone_axe","minecraft:stone_hoe","minecraft:golden_sword","minecraft:golden_shovel","minecraft:golden_pickaxe","minecraft:golden_axe","minecraft:golden_hoe","minecraft:iron_sword","minecraft:iron_shovel","minecraft:iron_pickaxe","minecraft:iron_axe","minecraft:iron_hoe","minecraft:diamond_sword","minecraft:diamond_shovel","minecraft:diamond_pickaxe","minecraft:diamond_axe","minecraft:diamond_hoe","minecraft:netherite_sword","minecraft:netherite_shovel","minecraft:netherite_pickaxe","minecraft:netherite_axe","minecraft:netherite_hoe","minecraft:stick","minecraft:mushroom_stew","minecraft:string","minecraft:feather","minecraft:gunpowder","minecraft:wheat_seeds","minecraft:wheat","minecraft:bread","minecraft:leather_helmet","minecraft:leather_chestplate","minecraft:leather_leggings","minecraft:leather_boots","minecraft:copper_helmet","minecraft:copper_chestplate","minecraft:copper_leggings","minecraft:copper_boots","minecraft:chainmail_helmet","minecraft:chainmail_chestplate","minecraft:chainmail_leggings","minecraft:chainmail_boots","minecraft:iron_helmet","minecraft:iron_chestplate","minecraft:iron_leggings","minecraft:iron_boots","minecraft:diamond_helmet","minecraft:diamond_chestplate","minecraft:diamond_leggings","minecraft:diamond_boots","minecraft:golden_helmet","minecraft:golden_chestplate","minecraft:golden_leggings","minecraft:golden_boots","minecraft:netherite_helmet","minecraft:netherite_chestplate","minecraft:netherite_leggings","minecraft:netherite_boots","minecraft:flint","minecraft:porkchop","minecraft:cooked_porkchop","minecraft:painting","minecraft:golden_apple","minecraft:enchanted_golden_apple","minecraft:oak_sign","minecraft:spruce_sign","minecraft:birch_sign","minecraft:jungle_sign","minecraft:acacia_sign","minecraft:cherry_sign","minecraft:dark_oak_sign","minecraft:pale_oak_sign","minecraft:mangrove_sign","minecraft:bamboo_sign","minecraft:crimson_sign","minecraft:warped_sign","minecraft:oak_hanging_sign","minecraft:spruce_hanging_sign","minecraft:birch_hanging_sign","minecraft:jungle_hanging_sign","minecraft:acacia_hanging_sign","minecraft:cherry_hanging_sign","minecraft:dark_oak_hanging_sign","minecraft:pale_oak_hanging_sign","minecraft:mangrove_hanging_sign","minecraft:bamboo_hanging_sign","minecraft:crimson_hanging_sign","minecraft:warped_hanging_sign","minecraft:bucket","minecraft:water_bucket","minecraft:lava_bucket","minecraft:powder_snow_bucket","minecraft:snowball","minecraft:leather","minecraft:milk_bucket","minecraft:pufferfish_bucket","minecraft:salmon_bucket","minecraft:cod_bucket","minecraft:tropical_fish_bucket","minecraft:axolotl_bucket","minecraft:tadpole_bucket","minecraft:brick","minecraft:clay_ball","minecraft:dried_kelp_block","minecraft:paper","minecraft:book","minecraft:slime_ball","minecraft:egg","minecraft:blue_egg","minecraft:brown_egg","minecraft:compass","minecraft:recovery_compass","minecraft:bundle","minecraft:white_bundle","minecraft:orange_bundle","minecraft:magenta_bundle","minecraft:light_blue_bundle","minecraft:yellow_bundle","minecraft:lime_bundle","minecraft:pink_bundle","minecraft:gray_bundle","minecraft:light_gray_bundle","minecraft:cyan_bundle","minecraft:purple_bundle","minecraft:blue_bundle","minecraft:brown_bundle","minecraft:green_bundle","minecraft:red_bundle","minecraft:black_bundle","minecraft:fishing_rod","minecraft:clock","minecraft:spyglass","minecraft:glowstone_dust","minecraft:cod","minecraft:salmon","minecraft:tropical_fish","minecraft:pufferfish","minecraft:cooked_cod","minecraft:cooked_salmon","minecraft:ink_sac","minecraft:glow_ink_sac","minecraft:cocoa_beans","minecraft:white_dye","minecraft:orange_dye","minecraft:magenta_dye","minecraft:light_blue_dye","minecraft:yellow_dye","minecraft:lime_dye","minecraft:pink_dye","minecraft:gray_dye","minecraft:light_gray_dye","minecraft:cyan_dye","minecraft:purple_dye","minecraft:blue_dye","minecraft:brown_dye","minecraft:green_dye","minecraft:red_dye","minecraft:black_dye","minecraft:bone_meal","minecraft:bone","minecraft:sugar","minecraft:cake","minecraft:white_bed","minecraft:orange_bed","minecraft:magenta_bed","minecraft:light_blue_bed","minecraft:yellow_bed","minecraft:lime_bed","minecraft:pink_bed","minecraft:gray_bed","minecraft:light_gray_bed","minecraft:cyan_bed","minecraft:purple_bed","minecraft:blue_bed","minecraft:brown_bed","minecraft:green_bed","minecraft:red_bed","minecraft:black_bed","minecraft:cookie","minecraft:crafter","minecraft:filled_map","minecraft:shears","minecraft:melon_slice","minecraft:dried_kelp","minecraft:pumpkin_seeds","minecraft:melon_seeds","minecraft:beef","minecraft:cooked_beef","minecraft:chicken","minecraft:cooked_chicken","minecraft:rotten_flesh","minecraft:ender_pearl","minecraft:blaze_rod","minecraft:ghast_tear","minecraft:gold_nugget","minecraft:nether_wart","minecraft:glass_bottle","minecraft:potion","minecraft:spider_eye","minecraft:fermented_spider_eye","minecraft:blaze_powder","minecraft:magma_cream","minecraft:brewing_stand","minecraft:cauldron","minecraft:ender_eye","minecraft:glistering_melon_slice","minecraft:armadillo_spawn_egg","minecraft:allay_spawn_egg","minecraft:axolotl_spawn_egg","minecraft:bat_spawn_egg","minecraft:bee_spawn_egg","minecraft:blaze_spawn_egg","minecraft:bogged_spawn_egg","minecraft:breeze_spawn_egg","minecraft:cat_spawn_egg","minecraft:camel_spawn_egg","minecraft:cave_spider_spawn_egg","minecraft:chicken_spawn_egg","minecraft:cod_spawn_egg","minecraft:copper_golem_spawn_egg","minecraft:cow_spawn_egg","minecraft:creeper_spawn_egg","minecraft:dolphin_spawn_egg","minecraft:donkey_spawn_egg","minecraft:drowned_spawn_egg","minecraft:elder_guardian_spawn_egg","minecraft:ender_dragon_spawn_egg","minecraft:enderman_spawn_egg","minecraft:endermite_spawn_egg","minecraft:evoker_spawn_egg","minecraft:fox_spawn_egg","minecraft:frog_spawn_egg","minecraft:ghast_spawn_egg","minecraft:happy_ghast_spawn_egg","minecraft:glow_squid_spawn_egg","minecraft:goat_spawn_egg","minecraft:guardian_spawn_egg","minecraft:hoglin_spawn_egg","minecraft:horse_spawn_egg","minecraft:husk_spawn_egg","minecraft:iron_golem_spawn_egg","minecraft:llama_spawn_egg","minecraft:magma_cube_spawn_egg","minecraft:mooshroom_spawn_egg","minecraft:mule_spawn_egg","minecraft:ocelot_spawn_egg","minecraft:panda_spawn_egg","minecraft:parrot_spawn_egg","minecraft:phantom_spawn_egg","minecraft:pig_spawn_egg","minecraft:piglin_spawn_egg","minecraft:piglin_brute_spawn_egg","minecraft:pillager_spawn_egg","minecraft:polar_bear_spawn_egg","minecraft:pufferfish_spawn_egg","minecraft:rabbit_spawn_egg","minecraft:ravager_spawn_egg","minecraft:salmon_spawn_egg","minecraft:sheep_spawn_egg","minecraft:shulker_spawn_egg","minecraft:silverfish_spawn_egg","minecraft:skeleton_spawn_egg","minecraft:skeleton_horse_spawn_egg","minecraft:slime_spawn_egg","minecraft:sniffer_spawn_egg","minecraft:snow_golem_spawn_egg","minecraft:spider_spawn_egg","minecraft:squid_spawn_egg","minecraft:stray_spawn_egg","minecraft:strider_spawn_egg","minecraft:tadpole_spawn_egg","minecraft:trader_llama_spawn_egg","minecraft:tropical_fish_spawn_egg","minecraft:turtle_spawn_egg","minecraft:vex_spawn_egg","minecraft:villager_spawn_egg","minecraft:vindicator_spawn_egg","minecraft:wandering_trader_spawn_egg","minecraft:warden_spawn_egg","minecraft:witch_spawn_egg","minecraft:wither_spawn_egg","minecraft:wither_skeleton_spawn_egg","minecraft:wolf_spawn_egg","minecraft:zoglin_spawn_egg","minecraft:creaking_spawn_egg","minecraft:zombie_spawn_egg","minecraft:zombie_horse_spawn_egg","minecraft:zombie_villager_spawn_egg","minecraft:zombified_piglin_spawn_egg","minecraft:experience_bottle","minecraft:fire_charge","minecraft:wind_charge","minecraft:writable_book","minecraft:written_book","minecraft:breeze_rod","minecraft:mace","minecraft:item_frame","minecraft:glow_item_frame","minecraft:flower_pot","minecraft:carrot","minecraft:potato","minecraft:baked_potato","minecraft:poisonous_potato","minecraft:map","minecraft:golden_carrot","minecraft:skeleton_skull","minecraft:wither_skeleton_skull","minecraft:player_head","minecraft:zombie_head","minecraft:creeper_head","minecraft:dragon_head","minecraft:piglin_head","minecraft:nether_star","minecraft:pumpkin_pie","minecraft:firework_rocket","minecraft:firework_star","minecraft:enchanted_book","minecraft:nether_brick","minecraft:resin_brick","minecraft:prismarine_shard","minecraft:prismarine_crystals","minecraft:rabbit","minecraft:cooked_rabbit","minecraft:rabbit_stew","minecraft:rabbit_foot","minecraft:rabbit_hide","minecraft:armor_stand","minecraft:copper_horse_armor","minecraft:iron_horse_armor","minecraft:golden_horse_armor","minecraft:diamond_horse_armor","minecraft:leather_horse_armor","minecraft:lead","minecraft:name_tag","minecraft:command_block_minecart","minecraft:mutton","minecraft:cooked_mutton","minecraft:white_banner","minecraft:orange_banner","minecraft:magenta_banner","minecraft:light_blue_banner","minecraft:yellow_banner","minecraft:lime_banner","minecraft:pink_banner","minecraft:gray_banner","minecraft:light_gray_banner","minecraft:cyan_banner","minecraft:purple_banner","minecraft:blue_banner","minecraft:brown_banner","minecraft:green_banner","minecraft:red_banner","minecraft:black_banner","minecraft:end_crystal","minecraft:chorus_fruit","minecraft:popped_chorus_fruit","minecraft:torchflower_seeds","minecraft:pitcher_pod","minecraft:beetroot","minecraft:beetroot_seeds","minecraft:beetroot_soup","minecraft:dragon_breath","minecraft:splash_potion","minecraft:spectral_arrow","minecraft:tipped_arrow","minecraft:lingering_potion","minecraft:shield","minecraft:totem_of_undying","minecraft:shulker_shell","minecraft:iron_nugget","minecraft:copper_nugget","minecraft:knowledge_book","minecraft:debug_stick","minecraft:music_disc_13","minecraft:music_disc_cat","minecraft:music_disc_blocks","minecraft:music_disc_chirp","minecraft:music_disc_creator","minecraft:music_disc_creator_music_box","minecraft:music_disc_far","minecraft:music_disc_lava_chicken","minecraft:music_disc_mall","minecraft:music_disc_mellohi","minecraft:music_disc_stal","minecraft:music_disc_strad","minecraft:music_disc_ward","minecraft:music_disc_11","minecraft:music_disc_wait","minecraft:music_disc_otherside","minecraft:music_disc_relic","minecraft:music_disc_5","minecraft:music_disc_pigstep","minecraft:music_disc_precipice","minecraft:music_disc_tears","minecraft:disc_fragment_5","minecraft:trident","minecraft:nautilus_shell","minecraft:heart_of_the_sea","minecraft:crossbow","minecraft:suspicious_stew","minecraft:loom","minecraft:flower_banner_pattern","minecraft:creeper_banner_pattern","minecraft:skull_banner_pattern","minecraft:mojang_banner_pattern","minecraft:globe_banner_pattern","minecraft:piglin_banner_pattern","minecraft:flow_banner_pattern","minecraft:guster_banner_pattern","minecraft:field_masoned_banner_pattern","minecraft:bordure_indented_banner_pattern","minecraft:goat_horn","minecraft:composter","minecraft:barrel","minecraft:smoker","minecraft:blast_furnace","minecraft:cartography_table","minecraft:fletching_table","minecraft:grindstone","minecraft:smithing_table","minecraft:stonecutter","minecraft:bell","minecraft:lantern","minecraft:soul_lantern","minecraft:copper_lantern","minecraft:exposed_copper_lantern","minecraft:weathered_copper_lantern","minecraft:oxidized_copper_lantern","minecraft:waxed_copper_lantern","minecraft:waxed_exposed_copper_lantern","minecraft:waxed_weathered_copper_lantern","minecraft:waxed_oxidized_copper_lantern","minecraft:sweet_berries","minecraft:glow_berries","minecraft:campfire","minecraft:soul_campfire","minecraft:shroomlight","minecraft:honeycomb","minecraft:bee_nest","minecraft:beehive","minecraft:honey_bottle","minecraft:honeycomb_block","minecraft:lodestone","minecraft:crying_obsidian","minecraft:blackstone","minecraft:blackstone_slab","minecraft:blackstone_stairs","minecraft:gilded_blackstone","minecraft:polished_blackstone","minecraft:polished_blackstone_slab","minecraft:polished_blackstone_stairs","minecraft:chiseled_polished_blackstone","minecraft:polished_blackstone_bricks","minecraft:polished_blackstone_brick_slab","minecraft:polished_blackstone_brick_stairs","minecraft:cracked_polished_blackstone_bricks","minecraft:respawn_anchor","minecraft:candle","minecraft:white_candle","minecraft:orange_candle","minecraft:magenta_candle","minecraft:light_blue_candle","minecraft:yellow_candle","minecraft:lime_candle","minecraft:pink_candle","minecraft:gray_candle","minecraft:light_gray_candle","minecraft:cyan_candle","minecraft:purple_candle","minecraft:blue_candle","minecraft:brown_candle","minecraft:green_candle","minecraft:red_candle","minecraft:black_candle","minecraft:small_amethyst_bud","minecraft:medium_amethyst_bud","minecraft:large_amethyst_bud","minecraft:amethyst_cluster","minecraft:pointed_dripstone","minecraft:ochre_froglight","minecraft:verdant_froglight","minecraft:pearlescent_froglight","minecraft:frogspawn","minecraft:echo_shard","minecraft:brush","minecraft:netherite_upgrade_smithing_template","minecraft:sentry_armor_trim_smithing_template","minecraft:dune_armor_trim_smithing_template","minecraft:coast_armor_trim_smithing_template","minecraft:wild_armor_trim_smithing_template","minecraft:ward_armor_trim_smithing_template","minecraft:eye_armor_trim_smithing_template","minecraft:vex_armor_trim_smithing_template","minecraft:tide_armor_trim_smithing_template","minecraft:snout_armor_trim_smithing_template","minecraft:rib_armor_trim_smithing_template","minecraft:spire_armor_trim_smithing_template","minecraft:wayfinder_armor_trim_smithing_template","minecraft:shaper_armor_trim_smithing_template","minecraft:silence_armor_trim_smithing_template","minecraft:raiser_armor_trim_smithing_template","minecraft:host_armor_trim_smithing_template","minecraft:flow_armor_trim_smithing_template","minecraft:bolt_armor_trim_smithing_template","minecraft:angler_pottery_sherd","minecraft:archer_pottery_sherd","minecraft:arms_up_pottery_sherd","minecraft:blade_pottery_sherd","minecraft:brewer_pottery_sherd","minecraft:burn_pottery_sherd","minecraft:danger_pottery_sherd","minecraft:explorer_pottery_sherd","minecraft:flow_pottery_sherd","minecraft:friend_pottery_sherd","minecraft:guster_pottery_sherd","minecraft:heart_pottery_sherd","minecraft:heartbreak_pottery_sherd","minecraft:howl_pottery_sherd","minecraft:miner_pottery_sherd","minecraft:mourner_pottery_sherd","minecraft:plenty_pottery_sherd","minecraft:prize_pottery_sherd","minecraft:scrape_pottery_sherd","minecraft:sheaf_pottery_sherd","minecraft:shelter_pottery_sherd","minecraft:skull_pottery_sherd","minecraft:snort_pottery_sherd","minecraft:copper_grate","minecraft:exposed_copper_grate","minecraft:weathered_copper_grate","minecraft:oxidized_copper_grate","minecraft:waxed_copper_grate","minecraft:waxed_exposed_copper_grate","minecraft:waxed_weathered_copper_grate","minecraft:waxed_oxidized_copper_grate","minecraft:copper_bulb","minecraft:exposed_copper_bulb","minecraft:weathered_copper_bulb","minecraft:oxidized_copper_bulb","minecraft:waxed_copper_bulb","minecraft:waxed_exposed_copper_bulb","minecraft:waxed_weathered_copper_bulb","minecraft:waxed_oxidized_copper_bulb","minecraft:copper_chest","minecraft:exposed_copper_chest","minecraft:weathered_copper_chest","minecraft:oxidized_copper_chest","minecraft:waxed_copper_chest","minecraft:waxed_exposed_copper_chest","minecraft:waxed_weathered_copper_chest","minecraft:waxed_oxidized_copper_chest","minecraft:copper_golem_statue","minecraft:exposed_copper_golem_statue","minecraft:weathered_copper_golem_statue","minecraft:oxidized_copper_golem_statue","minecraft:waxed_copper_golem_statue","minecraft:waxed_exposed_copper_golem_statue","minecraft:waxed_weathered_copper_golem_statue","minecraft:waxed_oxidized_copper_golem_statue","minecraft:trial_spawner","minecraft:trial_key","minecraft:ominous_trial_key","minecraft:vault","minecraft:ominous_bottle"]; +static ITEM_MODEL_VALUES: [&str; 1504] = ["minecraft:air","minecraft:stone","minecraft:granite","minecraft:polished_granite","minecraft:diorite","minecraft:polished_diorite","minecraft:andesite","minecraft:polished_andesite","minecraft:deepslate","minecraft:cobbled_deepslate","minecraft:polished_deepslate","minecraft:calcite","minecraft:tuff","minecraft:tuff_slab","minecraft:tuff_stairs","minecraft:tuff_wall","minecraft:chiseled_tuff","minecraft:polished_tuff","minecraft:polished_tuff_slab","minecraft:polished_tuff_stairs","minecraft:polished_tuff_wall","minecraft:tuff_bricks","minecraft:tuff_brick_slab","minecraft:tuff_brick_stairs","minecraft:tuff_brick_wall","minecraft:chiseled_tuff_bricks","minecraft:dripstone_block","minecraft:grass_block","minecraft:dirt","minecraft:coarse_dirt","minecraft:podzol","minecraft:rooted_dirt","minecraft:mud","minecraft:crimson_nylium","minecraft:warped_nylium","minecraft:cobblestone","minecraft:oak_planks","minecraft:spruce_planks","minecraft:birch_planks","minecraft:jungle_planks","minecraft:acacia_planks","minecraft:cherry_planks","minecraft:dark_oak_planks","minecraft:pale_oak_planks","minecraft:mangrove_planks","minecraft:bamboo_planks","minecraft:crimson_planks","minecraft:warped_planks","minecraft:bamboo_mosaic","minecraft:oak_sapling","minecraft:spruce_sapling","minecraft:birch_sapling","minecraft:jungle_sapling","minecraft:acacia_sapling","minecraft:cherry_sapling","minecraft:dark_oak_sapling","minecraft:pale_oak_sapling","minecraft:mangrove_propagule","minecraft:bedrock","minecraft:sand","minecraft:suspicious_sand","minecraft:suspicious_gravel","minecraft:red_sand","minecraft:gravel","minecraft:coal_ore","minecraft:deepslate_coal_ore","minecraft:iron_ore","minecraft:deepslate_iron_ore","minecraft:copper_ore","minecraft:deepslate_copper_ore","minecraft:gold_ore","minecraft:deepslate_gold_ore","minecraft:redstone_ore","minecraft:deepslate_redstone_ore","minecraft:emerald_ore","minecraft:deepslate_emerald_ore","minecraft:lapis_ore","minecraft:deepslate_lapis_ore","minecraft:diamond_ore","minecraft:deepslate_diamond_ore","minecraft:nether_gold_ore","minecraft:nether_quartz_ore","minecraft:ancient_debris","minecraft:coal_block","minecraft:raw_iron_block","minecraft:raw_copper_block","minecraft:raw_gold_block","minecraft:heavy_core","minecraft:amethyst_block","minecraft:budding_amethyst","minecraft:iron_block","minecraft:copper_block","minecraft:gold_block","minecraft:diamond_block","minecraft:netherite_block","minecraft:exposed_copper","minecraft:weathered_copper","minecraft:oxidized_copper","minecraft:chiseled_copper","minecraft:exposed_chiseled_copper","minecraft:weathered_chiseled_copper","minecraft:oxidized_chiseled_copper","minecraft:cut_copper","minecraft:exposed_cut_copper","minecraft:weathered_cut_copper","minecraft:oxidized_cut_copper","minecraft:cut_copper_stairs","minecraft:exposed_cut_copper_stairs","minecraft:weathered_cut_copper_stairs","minecraft:oxidized_cut_copper_stairs","minecraft:cut_copper_slab","minecraft:exposed_cut_copper_slab","minecraft:weathered_cut_copper_slab","minecraft:oxidized_cut_copper_slab","minecraft:waxed_copper_block","minecraft:waxed_exposed_copper","minecraft:waxed_weathered_copper","minecraft:waxed_oxidized_copper","minecraft:waxed_chiseled_copper","minecraft:waxed_exposed_chiseled_copper","minecraft:waxed_weathered_chiseled_copper","minecraft:waxed_oxidized_chiseled_copper","minecraft:waxed_cut_copper","minecraft:waxed_exposed_cut_copper","minecraft:waxed_weathered_cut_copper","minecraft:waxed_oxidized_cut_copper","minecraft:waxed_cut_copper_stairs","minecraft:waxed_exposed_cut_copper_stairs","minecraft:waxed_weathered_cut_copper_stairs","minecraft:waxed_oxidized_cut_copper_stairs","minecraft:waxed_cut_copper_slab","minecraft:waxed_exposed_cut_copper_slab","minecraft:waxed_weathered_cut_copper_slab","minecraft:waxed_oxidized_cut_copper_slab","minecraft:oak_log","minecraft:spruce_log","minecraft:birch_log","minecraft:jungle_log","minecraft:acacia_log","minecraft:cherry_log","minecraft:pale_oak_log","minecraft:dark_oak_log","minecraft:mangrove_log","minecraft:mangrove_roots","minecraft:muddy_mangrove_roots","minecraft:crimson_stem","minecraft:warped_stem","minecraft:bamboo_block","minecraft:stripped_oak_log","minecraft:stripped_spruce_log","minecraft:stripped_birch_log","minecraft:stripped_jungle_log","minecraft:stripped_acacia_log","minecraft:stripped_cherry_log","minecraft:stripped_dark_oak_log","minecraft:stripped_pale_oak_log","minecraft:stripped_mangrove_log","minecraft:stripped_crimson_stem","minecraft:stripped_warped_stem","minecraft:stripped_oak_wood","minecraft:stripped_spruce_wood","minecraft:stripped_birch_wood","minecraft:stripped_jungle_wood","minecraft:stripped_acacia_wood","minecraft:stripped_cherry_wood","minecraft:stripped_dark_oak_wood","minecraft:stripped_pale_oak_wood","minecraft:stripped_mangrove_wood","minecraft:stripped_crimson_hyphae","minecraft:stripped_warped_hyphae","minecraft:stripped_bamboo_block","minecraft:oak_wood","minecraft:spruce_wood","minecraft:birch_wood","minecraft:jungle_wood","minecraft:acacia_wood","minecraft:cherry_wood","minecraft:pale_oak_wood","minecraft:dark_oak_wood","minecraft:mangrove_wood","minecraft:crimson_hyphae","minecraft:warped_hyphae","minecraft:oak_leaves","minecraft:spruce_leaves","minecraft:birch_leaves","minecraft:jungle_leaves","minecraft:acacia_leaves","minecraft:cherry_leaves","minecraft:dark_oak_leaves","minecraft:pale_oak_leaves","minecraft:mangrove_leaves","minecraft:azalea_leaves","minecraft:flowering_azalea_leaves","minecraft:sponge","minecraft:wet_sponge","minecraft:glass","minecraft:tinted_glass","minecraft:lapis_block","minecraft:sandstone","minecraft:chiseled_sandstone","minecraft:cut_sandstone","minecraft:cobweb","minecraft:short_grass","minecraft:fern","minecraft:bush","minecraft:azalea","minecraft:flowering_azalea","minecraft:dead_bush","minecraft:firefly_bush","minecraft:short_dry_grass","minecraft:tall_dry_grass","minecraft:seagrass","minecraft:sea_pickle","minecraft:white_wool","minecraft:orange_wool","minecraft:magenta_wool","minecraft:light_blue_wool","minecraft:yellow_wool","minecraft:lime_wool","minecraft:pink_wool","minecraft:gray_wool","minecraft:light_gray_wool","minecraft:cyan_wool","minecraft:purple_wool","minecraft:blue_wool","minecraft:brown_wool","minecraft:green_wool","minecraft:red_wool","minecraft:black_wool","minecraft:dandelion","minecraft:open_eyeblossom","minecraft:closed_eyeblossom","minecraft:poppy","minecraft:blue_orchid","minecraft:allium","minecraft:azure_bluet","minecraft:red_tulip","minecraft:orange_tulip","minecraft:white_tulip","minecraft:pink_tulip","minecraft:oxeye_daisy","minecraft:cornflower","minecraft:lily_of_the_valley","minecraft:wither_rose","minecraft:torchflower","minecraft:pitcher_plant","minecraft:spore_blossom","minecraft:brown_mushroom","minecraft:red_mushroom","minecraft:crimson_fungus","minecraft:warped_fungus","minecraft:crimson_roots","minecraft:warped_roots","minecraft:nether_sprouts","minecraft:weeping_vines","minecraft:twisting_vines","minecraft:sugar_cane","minecraft:kelp","minecraft:pink_petals","minecraft:wildflowers","minecraft:leaf_litter","minecraft:moss_carpet","minecraft:moss_block","minecraft:pale_moss_carpet","minecraft:pale_hanging_moss","minecraft:pale_moss_block","minecraft:hanging_roots","minecraft:big_dripleaf","minecraft:small_dripleaf","minecraft:bamboo","minecraft:oak_slab","minecraft:spruce_slab","minecraft:birch_slab","minecraft:jungle_slab","minecraft:acacia_slab","minecraft:cherry_slab","minecraft:dark_oak_slab","minecraft:pale_oak_slab","minecraft:mangrove_slab","minecraft:bamboo_slab","minecraft:bamboo_mosaic_slab","minecraft:crimson_slab","minecraft:warped_slab","minecraft:stone_slab","minecraft:smooth_stone_slab","minecraft:sandstone_slab","minecraft:cut_sandstone_slab","minecraft:petrified_oak_slab","minecraft:cobblestone_slab","minecraft:brick_slab","minecraft:stone_brick_slab","minecraft:mud_brick_slab","minecraft:nether_brick_slab","minecraft:quartz_slab","minecraft:red_sandstone_slab","minecraft:cut_red_sandstone_slab","minecraft:purpur_slab","minecraft:prismarine_slab","minecraft:prismarine_brick_slab","minecraft:dark_prismarine_slab","minecraft:smooth_quartz","minecraft:smooth_red_sandstone","minecraft:smooth_sandstone","minecraft:smooth_stone","minecraft:bricks","minecraft:acacia_shelf","minecraft:bamboo_shelf","minecraft:birch_shelf","minecraft:cherry_shelf","minecraft:crimson_shelf","minecraft:dark_oak_shelf","minecraft:jungle_shelf","minecraft:mangrove_shelf","minecraft:oak_shelf","minecraft:pale_oak_shelf","minecraft:spruce_shelf","minecraft:warped_shelf","minecraft:bookshelf","minecraft:chiseled_bookshelf","minecraft:decorated_pot","minecraft:mossy_cobblestone","minecraft:obsidian","minecraft:torch","minecraft:end_rod","minecraft:chorus_plant","minecraft:chorus_flower","minecraft:purpur_block","minecraft:purpur_pillar","minecraft:purpur_stairs","minecraft:spawner","minecraft:creaking_heart","minecraft:chest","minecraft:crafting_table","minecraft:farmland","minecraft:furnace","minecraft:ladder","minecraft:cobblestone_stairs","minecraft:snow","minecraft:ice","minecraft:snow_block","minecraft:cactus","minecraft:cactus_flower","minecraft:clay","minecraft:jukebox","minecraft:oak_fence","minecraft:spruce_fence","minecraft:birch_fence","minecraft:jungle_fence","minecraft:acacia_fence","minecraft:cherry_fence","minecraft:dark_oak_fence","minecraft:pale_oak_fence","minecraft:mangrove_fence","minecraft:bamboo_fence","minecraft:crimson_fence","minecraft:warped_fence","minecraft:pumpkin","minecraft:carved_pumpkin","minecraft:jack_o_lantern","minecraft:netherrack","minecraft:soul_sand","minecraft:soul_soil","minecraft:basalt","minecraft:polished_basalt","minecraft:smooth_basalt","minecraft:soul_torch","minecraft:copper_torch","minecraft:glowstone","minecraft:infested_stone","minecraft:infested_cobblestone","minecraft:infested_stone_bricks","minecraft:infested_mossy_stone_bricks","minecraft:infested_cracked_stone_bricks","minecraft:infested_chiseled_stone_bricks","minecraft:infested_deepslate","minecraft:stone_bricks","minecraft:mossy_stone_bricks","minecraft:cracked_stone_bricks","minecraft:chiseled_stone_bricks","minecraft:packed_mud","minecraft:mud_bricks","minecraft:deepslate_bricks","minecraft:cracked_deepslate_bricks","minecraft:deepslate_tiles","minecraft:cracked_deepslate_tiles","minecraft:chiseled_deepslate","minecraft:reinforced_deepslate","minecraft:brown_mushroom_block","minecraft:red_mushroom_block","minecraft:mushroom_stem","minecraft:iron_bars","minecraft:copper_bars","minecraft:exposed_copper_bars","minecraft:weathered_copper_bars","minecraft:oxidized_copper_bars","minecraft:waxed_copper_bars","minecraft:waxed_exposed_copper_bars","minecraft:waxed_weathered_copper_bars","minecraft:waxed_oxidized_copper_bars","minecraft:iron_chain","minecraft:copper_chain","minecraft:exposed_copper_chain","minecraft:weathered_copper_chain","minecraft:oxidized_copper_chain","minecraft:waxed_copper_chain","minecraft:waxed_exposed_copper_chain","minecraft:waxed_weathered_copper_chain","minecraft:waxed_oxidized_copper_chain","minecraft:glass_pane","minecraft:melon","minecraft:vine","minecraft:glow_lichen","minecraft:resin_clump","minecraft:resin_block","minecraft:resin_bricks","minecraft:resin_brick_stairs","minecraft:resin_brick_slab","minecraft:resin_brick_wall","minecraft:chiseled_resin_bricks","minecraft:brick_stairs","minecraft:stone_brick_stairs","minecraft:mud_brick_stairs","minecraft:mycelium","minecraft:lily_pad","minecraft:nether_bricks","minecraft:cracked_nether_bricks","minecraft:chiseled_nether_bricks","minecraft:nether_brick_fence","minecraft:nether_brick_stairs","minecraft:sculk","minecraft:sculk_vein","minecraft:sculk_catalyst","minecraft:sculk_shrieker","minecraft:enchanting_table","minecraft:end_portal_frame","minecraft:end_stone","minecraft:end_stone_bricks","minecraft:dragon_egg","minecraft:sandstone_stairs","minecraft:ender_chest","minecraft:emerald_block","minecraft:oak_stairs","minecraft:spruce_stairs","minecraft:birch_stairs","minecraft:jungle_stairs","minecraft:acacia_stairs","minecraft:cherry_stairs","minecraft:dark_oak_stairs","minecraft:pale_oak_stairs","minecraft:mangrove_stairs","minecraft:bamboo_stairs","minecraft:bamboo_mosaic_stairs","minecraft:crimson_stairs","minecraft:warped_stairs","minecraft:command_block","minecraft:beacon","minecraft:cobblestone_wall","minecraft:mossy_cobblestone_wall","minecraft:brick_wall","minecraft:prismarine_wall","minecraft:red_sandstone_wall","minecraft:mossy_stone_brick_wall","minecraft:granite_wall","minecraft:stone_brick_wall","minecraft:mud_brick_wall","minecraft:nether_brick_wall","minecraft:andesite_wall","minecraft:red_nether_brick_wall","minecraft:sandstone_wall","minecraft:end_stone_brick_wall","minecraft:diorite_wall","minecraft:blackstone_wall","minecraft:polished_blackstone_wall","minecraft:polished_blackstone_brick_wall","minecraft:cobbled_deepslate_wall","minecraft:polished_deepslate_wall","minecraft:deepslate_brick_wall","minecraft:deepslate_tile_wall","minecraft:anvil","minecraft:chipped_anvil","minecraft:damaged_anvil","minecraft:chiseled_quartz_block","minecraft:quartz_block","minecraft:quartz_bricks","minecraft:quartz_pillar","minecraft:quartz_stairs","minecraft:white_terracotta","minecraft:orange_terracotta","minecraft:magenta_terracotta","minecraft:light_blue_terracotta","minecraft:yellow_terracotta","minecraft:lime_terracotta","minecraft:pink_terracotta","minecraft:gray_terracotta","minecraft:light_gray_terracotta","minecraft:cyan_terracotta","minecraft:purple_terracotta","minecraft:blue_terracotta","minecraft:brown_terracotta","minecraft:green_terracotta","minecraft:red_terracotta","minecraft:black_terracotta","minecraft:barrier","minecraft:light","minecraft:hay_block","minecraft:white_carpet","minecraft:orange_carpet","minecraft:magenta_carpet","minecraft:light_blue_carpet","minecraft:yellow_carpet","minecraft:lime_carpet","minecraft:pink_carpet","minecraft:gray_carpet","minecraft:light_gray_carpet","minecraft:cyan_carpet","minecraft:purple_carpet","minecraft:blue_carpet","minecraft:brown_carpet","minecraft:green_carpet","minecraft:red_carpet","minecraft:black_carpet","minecraft:terracotta","minecraft:packed_ice","minecraft:dirt_path","minecraft:sunflower","minecraft:lilac","minecraft:rose_bush","minecraft:peony","minecraft:tall_grass","minecraft:large_fern","minecraft:white_stained_glass","minecraft:orange_stained_glass","minecraft:magenta_stained_glass","minecraft:light_blue_stained_glass","minecraft:yellow_stained_glass","minecraft:lime_stained_glass","minecraft:pink_stained_glass","minecraft:gray_stained_glass","minecraft:light_gray_stained_glass","minecraft:cyan_stained_glass","minecraft:purple_stained_glass","minecraft:blue_stained_glass","minecraft:brown_stained_glass","minecraft:green_stained_glass","minecraft:red_stained_glass","minecraft:black_stained_glass","minecraft:white_stained_glass_pane","minecraft:orange_stained_glass_pane","minecraft:magenta_stained_glass_pane","minecraft:light_blue_stained_glass_pane","minecraft:yellow_stained_glass_pane","minecraft:lime_stained_glass_pane","minecraft:pink_stained_glass_pane","minecraft:gray_stained_glass_pane","minecraft:light_gray_stained_glass_pane","minecraft:cyan_stained_glass_pane","minecraft:purple_stained_glass_pane","minecraft:blue_stained_glass_pane","minecraft:brown_stained_glass_pane","minecraft:green_stained_glass_pane","minecraft:red_stained_glass_pane","minecraft:black_stained_glass_pane","minecraft:prismarine","minecraft:prismarine_bricks","minecraft:dark_prismarine","minecraft:prismarine_stairs","minecraft:prismarine_brick_stairs","minecraft:dark_prismarine_stairs","minecraft:sea_lantern","minecraft:red_sandstone","minecraft:chiseled_red_sandstone","minecraft:cut_red_sandstone","minecraft:red_sandstone_stairs","minecraft:repeating_command_block","minecraft:chain_command_block","minecraft:magma_block","minecraft:nether_wart_block","minecraft:warped_wart_block","minecraft:red_nether_bricks","minecraft:bone_block","minecraft:structure_void","minecraft:shulker_box","minecraft:white_shulker_box","minecraft:orange_shulker_box","minecraft:magenta_shulker_box","minecraft:light_blue_shulker_box","minecraft:yellow_shulker_box","minecraft:lime_shulker_box","minecraft:pink_shulker_box","minecraft:gray_shulker_box","minecraft:light_gray_shulker_box","minecraft:cyan_shulker_box","minecraft:purple_shulker_box","minecraft:blue_shulker_box","minecraft:brown_shulker_box","minecraft:green_shulker_box","minecraft:red_shulker_box","minecraft:black_shulker_box","minecraft:white_glazed_terracotta","minecraft:orange_glazed_terracotta","minecraft:magenta_glazed_terracotta","minecraft:light_blue_glazed_terracotta","minecraft:yellow_glazed_terracotta","minecraft:lime_glazed_terracotta","minecraft:pink_glazed_terracotta","minecraft:gray_glazed_terracotta","minecraft:light_gray_glazed_terracotta","minecraft:cyan_glazed_terracotta","minecraft:purple_glazed_terracotta","minecraft:blue_glazed_terracotta","minecraft:brown_glazed_terracotta","minecraft:green_glazed_terracotta","minecraft:red_glazed_terracotta","minecraft:black_glazed_terracotta","minecraft:white_concrete","minecraft:orange_concrete","minecraft:magenta_concrete","minecraft:light_blue_concrete","minecraft:yellow_concrete","minecraft:lime_concrete","minecraft:pink_concrete","minecraft:gray_concrete","minecraft:light_gray_concrete","minecraft:cyan_concrete","minecraft:purple_concrete","minecraft:blue_concrete","minecraft:brown_concrete","minecraft:green_concrete","minecraft:red_concrete","minecraft:black_concrete","minecraft:white_concrete_powder","minecraft:orange_concrete_powder","minecraft:magenta_concrete_powder","minecraft:light_blue_concrete_powder","minecraft:yellow_concrete_powder","minecraft:lime_concrete_powder","minecraft:pink_concrete_powder","minecraft:gray_concrete_powder","minecraft:light_gray_concrete_powder","minecraft:cyan_concrete_powder","minecraft:purple_concrete_powder","minecraft:blue_concrete_powder","minecraft:brown_concrete_powder","minecraft:green_concrete_powder","minecraft:red_concrete_powder","minecraft:black_concrete_powder","minecraft:turtle_egg","minecraft:sniffer_egg","minecraft:dried_ghast","minecraft:dead_tube_coral_block","minecraft:dead_brain_coral_block","minecraft:dead_bubble_coral_block","minecraft:dead_fire_coral_block","minecraft:dead_horn_coral_block","minecraft:tube_coral_block","minecraft:brain_coral_block","minecraft:bubble_coral_block","minecraft:fire_coral_block","minecraft:horn_coral_block","minecraft:tube_coral","minecraft:brain_coral","minecraft:bubble_coral","minecraft:fire_coral","minecraft:horn_coral","minecraft:dead_brain_coral","minecraft:dead_bubble_coral","minecraft:dead_fire_coral","minecraft:dead_horn_coral","minecraft:dead_tube_coral","minecraft:tube_coral_fan","minecraft:brain_coral_fan","minecraft:bubble_coral_fan","minecraft:fire_coral_fan","minecraft:horn_coral_fan","minecraft:dead_tube_coral_fan","minecraft:dead_brain_coral_fan","minecraft:dead_bubble_coral_fan","minecraft:dead_fire_coral_fan","minecraft:dead_horn_coral_fan","minecraft:blue_ice","minecraft:conduit","minecraft:polished_granite_stairs","minecraft:smooth_red_sandstone_stairs","minecraft:mossy_stone_brick_stairs","minecraft:polished_diorite_stairs","minecraft:mossy_cobblestone_stairs","minecraft:end_stone_brick_stairs","minecraft:stone_stairs","minecraft:smooth_sandstone_stairs","minecraft:smooth_quartz_stairs","minecraft:granite_stairs","minecraft:andesite_stairs","minecraft:red_nether_brick_stairs","minecraft:polished_andesite_stairs","minecraft:diorite_stairs","minecraft:cobbled_deepslate_stairs","minecraft:polished_deepslate_stairs","minecraft:deepslate_brick_stairs","minecraft:deepslate_tile_stairs","minecraft:polished_granite_slab","minecraft:smooth_red_sandstone_slab","minecraft:mossy_stone_brick_slab","minecraft:polished_diorite_slab","minecraft:mossy_cobblestone_slab","minecraft:end_stone_brick_slab","minecraft:smooth_sandstone_slab","minecraft:smooth_quartz_slab","minecraft:granite_slab","minecraft:andesite_slab","minecraft:red_nether_brick_slab","minecraft:polished_andesite_slab","minecraft:diorite_slab","minecraft:cobbled_deepslate_slab","minecraft:polished_deepslate_slab","minecraft:deepslate_brick_slab","minecraft:deepslate_tile_slab","minecraft:scaffolding","minecraft:redstone","minecraft:redstone_torch","minecraft:redstone_block","minecraft:repeater","minecraft:comparator","minecraft:piston","minecraft:sticky_piston","minecraft:slime_block","minecraft:honey_block","minecraft:observer","minecraft:hopper","minecraft:dispenser","minecraft:dropper","minecraft:lectern","minecraft:target","minecraft:lever","minecraft:lightning_rod","minecraft:exposed_lightning_rod","minecraft:weathered_lightning_rod","minecraft:oxidized_lightning_rod","minecraft:waxed_lightning_rod","minecraft:waxed_exposed_lightning_rod","minecraft:waxed_weathered_lightning_rod","minecraft:waxed_oxidized_lightning_rod","minecraft:daylight_detector","minecraft:sculk_sensor","minecraft:calibrated_sculk_sensor","minecraft:tripwire_hook","minecraft:trapped_chest","minecraft:tnt","minecraft:redstone_lamp","minecraft:note_block","minecraft:stone_button","minecraft:polished_blackstone_button","minecraft:oak_button","minecraft:spruce_button","minecraft:birch_button","minecraft:jungle_button","minecraft:acacia_button","minecraft:cherry_button","minecraft:dark_oak_button","minecraft:pale_oak_button","minecraft:mangrove_button","minecraft:bamboo_button","minecraft:crimson_button","minecraft:warped_button","minecraft:stone_pressure_plate","minecraft:polished_blackstone_pressure_plate","minecraft:light_weighted_pressure_plate","minecraft:heavy_weighted_pressure_plate","minecraft:oak_pressure_plate","minecraft:spruce_pressure_plate","minecraft:birch_pressure_plate","minecraft:jungle_pressure_plate","minecraft:acacia_pressure_plate","minecraft:cherry_pressure_plate","minecraft:dark_oak_pressure_plate","minecraft:pale_oak_pressure_plate","minecraft:mangrove_pressure_plate","minecraft:bamboo_pressure_plate","minecraft:crimson_pressure_plate","minecraft:warped_pressure_plate","minecraft:iron_door","minecraft:oak_door","minecraft:spruce_door","minecraft:birch_door","minecraft:jungle_door","minecraft:acacia_door","minecraft:cherry_door","minecraft:dark_oak_door","minecraft:pale_oak_door","minecraft:mangrove_door","minecraft:bamboo_door","minecraft:crimson_door","minecraft:warped_door","minecraft:copper_door","minecraft:exposed_copper_door","minecraft:weathered_copper_door","minecraft:oxidized_copper_door","minecraft:waxed_copper_door","minecraft:waxed_exposed_copper_door","minecraft:waxed_weathered_copper_door","minecraft:waxed_oxidized_copper_door","minecraft:iron_trapdoor","minecraft:oak_trapdoor","minecraft:spruce_trapdoor","minecraft:birch_trapdoor","minecraft:jungle_trapdoor","minecraft:acacia_trapdoor","minecraft:cherry_trapdoor","minecraft:dark_oak_trapdoor","minecraft:pale_oak_trapdoor","minecraft:mangrove_trapdoor","minecraft:bamboo_trapdoor","minecraft:crimson_trapdoor","minecraft:warped_trapdoor","minecraft:copper_trapdoor","minecraft:exposed_copper_trapdoor","minecraft:weathered_copper_trapdoor","minecraft:oxidized_copper_trapdoor","minecraft:waxed_copper_trapdoor","minecraft:waxed_exposed_copper_trapdoor","minecraft:waxed_weathered_copper_trapdoor","minecraft:waxed_oxidized_copper_trapdoor","minecraft:oak_fence_gate","minecraft:spruce_fence_gate","minecraft:birch_fence_gate","minecraft:jungle_fence_gate","minecraft:acacia_fence_gate","minecraft:cherry_fence_gate","minecraft:dark_oak_fence_gate","minecraft:pale_oak_fence_gate","minecraft:mangrove_fence_gate","minecraft:bamboo_fence_gate","minecraft:crimson_fence_gate","minecraft:warped_fence_gate","minecraft:powered_rail","minecraft:detector_rail","minecraft:rail","minecraft:activator_rail","minecraft:saddle","minecraft:white_harness","minecraft:orange_harness","minecraft:magenta_harness","minecraft:light_blue_harness","minecraft:yellow_harness","minecraft:lime_harness","minecraft:pink_harness","minecraft:gray_harness","minecraft:light_gray_harness","minecraft:cyan_harness","minecraft:purple_harness","minecraft:blue_harness","minecraft:brown_harness","minecraft:green_harness","minecraft:red_harness","minecraft:black_harness","minecraft:minecart","minecraft:chest_minecart","minecraft:furnace_minecart","minecraft:tnt_minecart","minecraft:hopper_minecart","minecraft:carrot_on_a_stick","minecraft:warped_fungus_on_a_stick","minecraft:phantom_membrane","minecraft:elytra","minecraft:oak_boat","minecraft:oak_chest_boat","minecraft:spruce_boat","minecraft:spruce_chest_boat","minecraft:birch_boat","minecraft:birch_chest_boat","minecraft:jungle_boat","minecraft:jungle_chest_boat","minecraft:acacia_boat","minecraft:acacia_chest_boat","minecraft:cherry_boat","minecraft:cherry_chest_boat","minecraft:dark_oak_boat","minecraft:dark_oak_chest_boat","minecraft:pale_oak_boat","minecraft:pale_oak_chest_boat","minecraft:mangrove_boat","minecraft:mangrove_chest_boat","minecraft:bamboo_raft","minecraft:bamboo_chest_raft","minecraft:structure_block","minecraft:jigsaw","minecraft:test_block","minecraft:test_instance_block","minecraft:turtle_helmet","minecraft:turtle_scute","minecraft:armadillo_scute","minecraft:wolf_armor","minecraft:flint_and_steel","minecraft:bowl","minecraft:apple","minecraft:bow","minecraft:arrow","minecraft:coal","minecraft:charcoal","minecraft:diamond","minecraft:emerald","minecraft:lapis_lazuli","minecraft:quartz","minecraft:amethyst_shard","minecraft:raw_iron","minecraft:iron_ingot","minecraft:raw_copper","minecraft:copper_ingot","minecraft:raw_gold","minecraft:gold_ingot","minecraft:netherite_ingot","minecraft:netherite_scrap","minecraft:wooden_sword","minecraft:wooden_shovel","minecraft:wooden_pickaxe","minecraft:wooden_axe","minecraft:wooden_hoe","minecraft:copper_sword","minecraft:copper_shovel","minecraft:copper_pickaxe","minecraft:copper_axe","minecraft:copper_hoe","minecraft:stone_sword","minecraft:stone_shovel","minecraft:stone_pickaxe","minecraft:stone_axe","minecraft:stone_hoe","minecraft:golden_sword","minecraft:golden_shovel","minecraft:golden_pickaxe","minecraft:golden_axe","minecraft:golden_hoe","minecraft:iron_sword","minecraft:iron_shovel","minecraft:iron_pickaxe","minecraft:iron_axe","minecraft:iron_hoe","minecraft:diamond_sword","minecraft:diamond_shovel","minecraft:diamond_pickaxe","minecraft:diamond_axe","minecraft:diamond_hoe","minecraft:netherite_sword","minecraft:netherite_shovel","minecraft:netherite_pickaxe","minecraft:netherite_axe","minecraft:netherite_hoe","minecraft:stick","minecraft:mushroom_stew","minecraft:string","minecraft:feather","minecraft:gunpowder","minecraft:wheat_seeds","minecraft:wheat","minecraft:bread","minecraft:leather_helmet","minecraft:leather_chestplate","minecraft:leather_leggings","minecraft:leather_boots","minecraft:copper_helmet","minecraft:copper_chestplate","minecraft:copper_leggings","minecraft:copper_boots","minecraft:chainmail_helmet","minecraft:chainmail_chestplate","minecraft:chainmail_leggings","minecraft:chainmail_boots","minecraft:iron_helmet","minecraft:iron_chestplate","minecraft:iron_leggings","minecraft:iron_boots","minecraft:diamond_helmet","minecraft:diamond_chestplate","minecraft:diamond_leggings","minecraft:diamond_boots","minecraft:golden_helmet","minecraft:golden_chestplate","minecraft:golden_leggings","minecraft:golden_boots","minecraft:netherite_helmet","minecraft:netherite_chestplate","minecraft:netherite_leggings","minecraft:netherite_boots","minecraft:flint","minecraft:porkchop","minecraft:cooked_porkchop","minecraft:painting","minecraft:golden_apple","minecraft:enchanted_golden_apple","minecraft:oak_sign","minecraft:spruce_sign","minecraft:birch_sign","minecraft:jungle_sign","minecraft:acacia_sign","minecraft:cherry_sign","minecraft:dark_oak_sign","minecraft:pale_oak_sign","minecraft:mangrove_sign","minecraft:bamboo_sign","minecraft:crimson_sign","minecraft:warped_sign","minecraft:oak_hanging_sign","minecraft:spruce_hanging_sign","minecraft:birch_hanging_sign","minecraft:jungle_hanging_sign","minecraft:acacia_hanging_sign","minecraft:cherry_hanging_sign","minecraft:dark_oak_hanging_sign","minecraft:pale_oak_hanging_sign","minecraft:mangrove_hanging_sign","minecraft:bamboo_hanging_sign","minecraft:crimson_hanging_sign","minecraft:warped_hanging_sign","minecraft:bucket","minecraft:water_bucket","minecraft:lava_bucket","minecraft:powder_snow_bucket","minecraft:snowball","minecraft:leather","minecraft:milk_bucket","minecraft:pufferfish_bucket","minecraft:salmon_bucket","minecraft:cod_bucket","minecraft:tropical_fish_bucket","minecraft:axolotl_bucket","minecraft:tadpole_bucket","minecraft:brick","minecraft:clay_ball","minecraft:dried_kelp_block","minecraft:paper","minecraft:book","minecraft:slime_ball","minecraft:egg","minecraft:blue_egg","minecraft:brown_egg","minecraft:compass","minecraft:recovery_compass","minecraft:bundle","minecraft:white_bundle","minecraft:orange_bundle","minecraft:magenta_bundle","minecraft:light_blue_bundle","minecraft:yellow_bundle","minecraft:lime_bundle","minecraft:pink_bundle","minecraft:gray_bundle","minecraft:light_gray_bundle","minecraft:cyan_bundle","minecraft:purple_bundle","minecraft:blue_bundle","minecraft:brown_bundle","minecraft:green_bundle","minecraft:red_bundle","minecraft:black_bundle","minecraft:fishing_rod","minecraft:clock","minecraft:spyglass","minecraft:glowstone_dust","minecraft:cod","minecraft:salmon","minecraft:tropical_fish","minecraft:pufferfish","minecraft:cooked_cod","minecraft:cooked_salmon","minecraft:ink_sac","minecraft:glow_ink_sac","minecraft:cocoa_beans","minecraft:white_dye","minecraft:orange_dye","minecraft:magenta_dye","minecraft:light_blue_dye","minecraft:yellow_dye","minecraft:lime_dye","minecraft:pink_dye","minecraft:gray_dye","minecraft:light_gray_dye","minecraft:cyan_dye","minecraft:purple_dye","minecraft:blue_dye","minecraft:brown_dye","minecraft:green_dye","minecraft:red_dye","minecraft:black_dye","minecraft:bone_meal","minecraft:bone","minecraft:sugar","minecraft:cake","minecraft:white_bed","minecraft:orange_bed","minecraft:magenta_bed","minecraft:light_blue_bed","minecraft:yellow_bed","minecraft:lime_bed","minecraft:pink_bed","minecraft:gray_bed","minecraft:light_gray_bed","minecraft:cyan_bed","minecraft:purple_bed","minecraft:blue_bed","minecraft:brown_bed","minecraft:green_bed","minecraft:red_bed","minecraft:black_bed","minecraft:cookie","minecraft:crafter","minecraft:filled_map","minecraft:shears","minecraft:melon_slice","minecraft:dried_kelp","minecraft:pumpkin_seeds","minecraft:melon_seeds","minecraft:beef","minecraft:cooked_beef","minecraft:chicken","minecraft:cooked_chicken","minecraft:rotten_flesh","minecraft:ender_pearl","minecraft:blaze_rod","minecraft:ghast_tear","minecraft:gold_nugget","minecraft:nether_wart","minecraft:glass_bottle","minecraft:potion","minecraft:spider_eye","minecraft:fermented_spider_eye","minecraft:blaze_powder","minecraft:magma_cream","minecraft:brewing_stand","minecraft:cauldron","minecraft:ender_eye","minecraft:glistering_melon_slice","minecraft:armadillo_spawn_egg","minecraft:allay_spawn_egg","minecraft:axolotl_spawn_egg","minecraft:bat_spawn_egg","minecraft:bee_spawn_egg","minecraft:blaze_spawn_egg","minecraft:bogged_spawn_egg","minecraft:breeze_spawn_egg","minecraft:cat_spawn_egg","minecraft:camel_spawn_egg","minecraft:camel_husk_spawn_egg","minecraft:cave_spider_spawn_egg","minecraft:chicken_spawn_egg","minecraft:cod_spawn_egg","minecraft:copper_golem_spawn_egg","minecraft:cow_spawn_egg","minecraft:creeper_spawn_egg","minecraft:dolphin_spawn_egg","minecraft:donkey_spawn_egg","minecraft:drowned_spawn_egg","minecraft:elder_guardian_spawn_egg","minecraft:ender_dragon_spawn_egg","minecraft:enderman_spawn_egg","minecraft:endermite_spawn_egg","minecraft:evoker_spawn_egg","minecraft:fox_spawn_egg","minecraft:frog_spawn_egg","minecraft:ghast_spawn_egg","minecraft:happy_ghast_spawn_egg","minecraft:glow_squid_spawn_egg","minecraft:goat_spawn_egg","minecraft:guardian_spawn_egg","minecraft:hoglin_spawn_egg","minecraft:horse_spawn_egg","minecraft:husk_spawn_egg","minecraft:iron_golem_spawn_egg","minecraft:llama_spawn_egg","minecraft:magma_cube_spawn_egg","minecraft:mooshroom_spawn_egg","minecraft:mule_spawn_egg","minecraft:nautilus_spawn_egg","minecraft:ocelot_spawn_egg","minecraft:panda_spawn_egg","minecraft:parched_spawn_egg","minecraft:parrot_spawn_egg","minecraft:phantom_spawn_egg","minecraft:pig_spawn_egg","minecraft:piglin_spawn_egg","minecraft:piglin_brute_spawn_egg","minecraft:pillager_spawn_egg","minecraft:polar_bear_spawn_egg","minecraft:pufferfish_spawn_egg","minecraft:rabbit_spawn_egg","minecraft:ravager_spawn_egg","minecraft:salmon_spawn_egg","minecraft:sheep_spawn_egg","minecraft:shulker_spawn_egg","minecraft:silverfish_spawn_egg","minecraft:skeleton_spawn_egg","minecraft:skeleton_horse_spawn_egg","minecraft:slime_spawn_egg","minecraft:sniffer_spawn_egg","minecraft:snow_golem_spawn_egg","minecraft:spider_spawn_egg","minecraft:squid_spawn_egg","minecraft:stray_spawn_egg","minecraft:strider_spawn_egg","minecraft:tadpole_spawn_egg","minecraft:trader_llama_spawn_egg","minecraft:tropical_fish_spawn_egg","minecraft:turtle_spawn_egg","minecraft:vex_spawn_egg","minecraft:villager_spawn_egg","minecraft:vindicator_spawn_egg","minecraft:wandering_trader_spawn_egg","minecraft:warden_spawn_egg","minecraft:witch_spawn_egg","minecraft:wither_spawn_egg","minecraft:wither_skeleton_spawn_egg","minecraft:wolf_spawn_egg","minecraft:zoglin_spawn_egg","minecraft:creaking_spawn_egg","minecraft:zombie_spawn_egg","minecraft:zombie_horse_spawn_egg","minecraft:zombie_villager_spawn_egg","minecraft:zombified_piglin_spawn_egg","minecraft:zombie_nautilus_spawn_egg","minecraft:experience_bottle","minecraft:fire_charge","minecraft:wind_charge","minecraft:writable_book","minecraft:written_book","minecraft:breeze_rod","minecraft:mace","minecraft:item_frame","minecraft:glow_item_frame","minecraft:flower_pot","minecraft:carrot","minecraft:potato","minecraft:baked_potato","minecraft:poisonous_potato","minecraft:map","minecraft:golden_carrot","minecraft:skeleton_skull","minecraft:wither_skeleton_skull","minecraft:player_head","minecraft:zombie_head","minecraft:creeper_head","minecraft:dragon_head","minecraft:piglin_head","minecraft:nether_star","minecraft:pumpkin_pie","minecraft:firework_rocket","minecraft:firework_star","minecraft:enchanted_book","minecraft:nether_brick","minecraft:resin_brick","minecraft:prismarine_shard","minecraft:prismarine_crystals","minecraft:rabbit","minecraft:cooked_rabbit","minecraft:rabbit_stew","minecraft:rabbit_foot","minecraft:rabbit_hide","minecraft:armor_stand","minecraft:copper_horse_armor","minecraft:iron_horse_armor","minecraft:golden_horse_armor","minecraft:diamond_horse_armor","minecraft:leather_horse_armor","minecraft:lead","minecraft:name_tag","minecraft:command_block_minecart","minecraft:mutton","minecraft:cooked_mutton","minecraft:white_banner","minecraft:orange_banner","minecraft:magenta_banner","minecraft:light_blue_banner","minecraft:yellow_banner","minecraft:lime_banner","minecraft:pink_banner","minecraft:gray_banner","minecraft:light_gray_banner","minecraft:cyan_banner","minecraft:purple_banner","minecraft:blue_banner","minecraft:brown_banner","minecraft:green_banner","minecraft:red_banner","minecraft:black_banner","minecraft:end_crystal","minecraft:chorus_fruit","minecraft:popped_chorus_fruit","minecraft:torchflower_seeds","minecraft:pitcher_pod","minecraft:beetroot","minecraft:beetroot_seeds","minecraft:beetroot_soup","minecraft:dragon_breath","minecraft:splash_potion","minecraft:spectral_arrow","minecraft:tipped_arrow","minecraft:lingering_potion","minecraft:shield","minecraft:wooden_spear","minecraft:stone_spear","minecraft:copper_spear","minecraft:iron_spear","minecraft:golden_spear","minecraft:diamond_spear","minecraft:netherite_spear","minecraft:totem_of_undying","minecraft:shulker_shell","minecraft:iron_nugget","minecraft:copper_nugget","minecraft:knowledge_book","minecraft:debug_stick","minecraft:music_disc_13","minecraft:music_disc_cat","minecraft:music_disc_blocks","minecraft:music_disc_chirp","minecraft:music_disc_creator","minecraft:music_disc_creator_music_box","minecraft:music_disc_far","minecraft:music_disc_lava_chicken","minecraft:music_disc_mall","minecraft:music_disc_mellohi","minecraft:music_disc_stal","minecraft:music_disc_strad","minecraft:music_disc_ward","minecraft:music_disc_11","minecraft:music_disc_wait","minecraft:music_disc_otherside","minecraft:music_disc_relic","minecraft:music_disc_5","minecraft:music_disc_pigstep","minecraft:music_disc_precipice","minecraft:music_disc_tears","minecraft:disc_fragment_5","minecraft:trident","minecraft:nautilus_shell","minecraft:iron_nautilus_armor","minecraft:golden_nautilus_armor","minecraft:diamond_nautilus_armor","minecraft:netherite_nautilus_armor","minecraft:copper_nautilus_armor","minecraft:heart_of_the_sea","minecraft:crossbow","minecraft:suspicious_stew","minecraft:loom","minecraft:flower_banner_pattern","minecraft:creeper_banner_pattern","minecraft:skull_banner_pattern","minecraft:mojang_banner_pattern","minecraft:globe_banner_pattern","minecraft:piglin_banner_pattern","minecraft:flow_banner_pattern","minecraft:guster_banner_pattern","minecraft:field_masoned_banner_pattern","minecraft:bordure_indented_banner_pattern","minecraft:goat_horn","minecraft:composter","minecraft:barrel","minecraft:smoker","minecraft:blast_furnace","minecraft:cartography_table","minecraft:fletching_table","minecraft:grindstone","minecraft:smithing_table","minecraft:stonecutter","minecraft:bell","minecraft:lantern","minecraft:soul_lantern","minecraft:copper_lantern","minecraft:exposed_copper_lantern","minecraft:weathered_copper_lantern","minecraft:oxidized_copper_lantern","minecraft:waxed_copper_lantern","minecraft:waxed_exposed_copper_lantern","minecraft:waxed_weathered_copper_lantern","minecraft:waxed_oxidized_copper_lantern","minecraft:sweet_berries","minecraft:glow_berries","minecraft:campfire","minecraft:soul_campfire","minecraft:shroomlight","minecraft:honeycomb","minecraft:bee_nest","minecraft:beehive","minecraft:honey_bottle","minecraft:honeycomb_block","minecraft:lodestone","minecraft:crying_obsidian","minecraft:blackstone","minecraft:blackstone_slab","minecraft:blackstone_stairs","minecraft:gilded_blackstone","minecraft:polished_blackstone","minecraft:polished_blackstone_slab","minecraft:polished_blackstone_stairs","minecraft:chiseled_polished_blackstone","minecraft:polished_blackstone_bricks","minecraft:polished_blackstone_brick_slab","minecraft:polished_blackstone_brick_stairs","minecraft:cracked_polished_blackstone_bricks","minecraft:respawn_anchor","minecraft:candle","minecraft:white_candle","minecraft:orange_candle","minecraft:magenta_candle","minecraft:light_blue_candle","minecraft:yellow_candle","minecraft:lime_candle","minecraft:pink_candle","minecraft:gray_candle","minecraft:light_gray_candle","minecraft:cyan_candle","minecraft:purple_candle","minecraft:blue_candle","minecraft:brown_candle","minecraft:green_candle","minecraft:red_candle","minecraft:black_candle","minecraft:small_amethyst_bud","minecraft:medium_amethyst_bud","minecraft:large_amethyst_bud","minecraft:amethyst_cluster","minecraft:pointed_dripstone","minecraft:ochre_froglight","minecraft:verdant_froglight","minecraft:pearlescent_froglight","minecraft:frogspawn","minecraft:echo_shard","minecraft:brush","minecraft:netherite_upgrade_smithing_template","minecraft:sentry_armor_trim_smithing_template","minecraft:dune_armor_trim_smithing_template","minecraft:coast_armor_trim_smithing_template","minecraft:wild_armor_trim_smithing_template","minecraft:ward_armor_trim_smithing_template","minecraft:eye_armor_trim_smithing_template","minecraft:vex_armor_trim_smithing_template","minecraft:tide_armor_trim_smithing_template","minecraft:snout_armor_trim_smithing_template","minecraft:rib_armor_trim_smithing_template","minecraft:spire_armor_trim_smithing_template","minecraft:wayfinder_armor_trim_smithing_template","minecraft:shaper_armor_trim_smithing_template","minecraft:silence_armor_trim_smithing_template","minecraft:raiser_armor_trim_smithing_template","minecraft:host_armor_trim_smithing_template","minecraft:flow_armor_trim_smithing_template","minecraft:bolt_armor_trim_smithing_template","minecraft:angler_pottery_sherd","minecraft:archer_pottery_sherd","minecraft:arms_up_pottery_sherd","minecraft:blade_pottery_sherd","minecraft:brewer_pottery_sherd","minecraft:burn_pottery_sherd","minecraft:danger_pottery_sherd","minecraft:explorer_pottery_sherd","minecraft:flow_pottery_sherd","minecraft:friend_pottery_sherd","minecraft:guster_pottery_sherd","minecraft:heart_pottery_sherd","minecraft:heartbreak_pottery_sherd","minecraft:howl_pottery_sherd","minecraft:miner_pottery_sherd","minecraft:mourner_pottery_sherd","minecraft:plenty_pottery_sherd","minecraft:prize_pottery_sherd","minecraft:scrape_pottery_sherd","minecraft:sheaf_pottery_sherd","minecraft:shelter_pottery_sherd","minecraft:skull_pottery_sherd","minecraft:snort_pottery_sherd","minecraft:copper_grate","minecraft:exposed_copper_grate","minecraft:weathered_copper_grate","minecraft:oxidized_copper_grate","minecraft:waxed_copper_grate","minecraft:waxed_exposed_copper_grate","minecraft:waxed_weathered_copper_grate","minecraft:waxed_oxidized_copper_grate","minecraft:copper_bulb","minecraft:exposed_copper_bulb","minecraft:weathered_copper_bulb","minecraft:oxidized_copper_bulb","minecraft:waxed_copper_bulb","minecraft:waxed_exposed_copper_bulb","minecraft:waxed_weathered_copper_bulb","minecraft:waxed_oxidized_copper_bulb","minecraft:copper_chest","minecraft:exposed_copper_chest","minecraft:weathered_copper_chest","minecraft:oxidized_copper_chest","minecraft:waxed_copper_chest","minecraft:waxed_exposed_copper_chest","minecraft:waxed_weathered_copper_chest","minecraft:waxed_oxidized_copper_chest","minecraft:copper_golem_statue","minecraft:exposed_copper_golem_statue","minecraft:weathered_copper_golem_statue","minecraft:oxidized_copper_golem_statue","minecraft:waxed_copper_golem_statue","minecraft:waxed_exposed_copper_golem_statue","minecraft:waxed_weathered_copper_golem_statue","minecraft:waxed_oxidized_copper_golem_statue","minecraft:trial_spawner","minecraft:trial_key","minecraft:ominous_trial_key","minecraft:vault","minecraft:ominous_bottle"]; impl DefaultableComponent for ItemModel { fn default_for_item(item: Item) -> Option { let value = ITEM_MODEL_VALUES[item as usize]; @@ -1754,7 +2028,7 @@ impl DefaultableComponent for ItemModel { } } #[rustfmt::skip] -static ITEM_NAME_VALUES: [&str; 1488] = ["block.minecraft.air","block.minecraft.stone","block.minecraft.granite","block.minecraft.polished_granite","block.minecraft.diorite","block.minecraft.polished_diorite","block.minecraft.andesite","block.minecraft.polished_andesite","block.minecraft.deepslate","block.minecraft.cobbled_deepslate","block.minecraft.polished_deepslate","block.minecraft.calcite","block.minecraft.tuff","block.minecraft.tuff_slab","block.minecraft.tuff_stairs","block.minecraft.tuff_wall","block.minecraft.chiseled_tuff","block.minecraft.polished_tuff","block.minecraft.polished_tuff_slab","block.minecraft.polished_tuff_stairs","block.minecraft.polished_tuff_wall","block.minecraft.tuff_bricks","block.minecraft.tuff_brick_slab","block.minecraft.tuff_brick_stairs","block.minecraft.tuff_brick_wall","block.minecraft.chiseled_tuff_bricks","block.minecraft.dripstone_block","block.minecraft.grass_block","block.minecraft.dirt","block.minecraft.coarse_dirt","block.minecraft.podzol","block.minecraft.rooted_dirt","block.minecraft.mud","block.minecraft.crimson_nylium","block.minecraft.warped_nylium","block.minecraft.cobblestone","block.minecraft.oak_planks","block.minecraft.spruce_planks","block.minecraft.birch_planks","block.minecraft.jungle_planks","block.minecraft.acacia_planks","block.minecraft.cherry_planks","block.minecraft.dark_oak_planks","block.minecraft.pale_oak_planks","block.minecraft.mangrove_planks","block.minecraft.bamboo_planks","block.minecraft.crimson_planks","block.minecraft.warped_planks","block.minecraft.bamboo_mosaic","block.minecraft.oak_sapling","block.minecraft.spruce_sapling","block.minecraft.birch_sapling","block.minecraft.jungle_sapling","block.minecraft.acacia_sapling","block.minecraft.cherry_sapling","block.minecraft.dark_oak_sapling","block.minecraft.pale_oak_sapling","block.minecraft.mangrove_propagule","block.minecraft.bedrock","block.minecraft.sand","block.minecraft.suspicious_sand","block.minecraft.suspicious_gravel","block.minecraft.red_sand","block.minecraft.gravel","block.minecraft.coal_ore","block.minecraft.deepslate_coal_ore","block.minecraft.iron_ore","block.minecraft.deepslate_iron_ore","block.minecraft.copper_ore","block.minecraft.deepslate_copper_ore","block.minecraft.gold_ore","block.minecraft.deepslate_gold_ore","block.minecraft.redstone_ore","block.minecraft.deepslate_redstone_ore","block.minecraft.emerald_ore","block.minecraft.deepslate_emerald_ore","block.minecraft.lapis_ore","block.minecraft.deepslate_lapis_ore","block.minecraft.diamond_ore","block.minecraft.deepslate_diamond_ore","block.minecraft.nether_gold_ore","block.minecraft.nether_quartz_ore","block.minecraft.ancient_debris","block.minecraft.coal_block","block.minecraft.raw_iron_block","block.minecraft.raw_copper_block","block.minecraft.raw_gold_block","block.minecraft.heavy_core","block.minecraft.amethyst_block","block.minecraft.budding_amethyst","block.minecraft.iron_block","block.minecraft.copper_block","block.minecraft.gold_block","block.minecraft.diamond_block","block.minecraft.netherite_block","block.minecraft.exposed_copper","block.minecraft.weathered_copper","block.minecraft.oxidized_copper","block.minecraft.chiseled_copper","block.minecraft.exposed_chiseled_copper","block.minecraft.weathered_chiseled_copper","block.minecraft.oxidized_chiseled_copper","block.minecraft.cut_copper","block.minecraft.exposed_cut_copper","block.minecraft.weathered_cut_copper","block.minecraft.oxidized_cut_copper","block.minecraft.cut_copper_stairs","block.minecraft.exposed_cut_copper_stairs","block.minecraft.weathered_cut_copper_stairs","block.minecraft.oxidized_cut_copper_stairs","block.minecraft.cut_copper_slab","block.minecraft.exposed_cut_copper_slab","block.minecraft.weathered_cut_copper_slab","block.minecraft.oxidized_cut_copper_slab","block.minecraft.waxed_copper_block","block.minecraft.waxed_exposed_copper","block.minecraft.waxed_weathered_copper","block.minecraft.waxed_oxidized_copper","block.minecraft.waxed_chiseled_copper","block.minecraft.waxed_exposed_chiseled_copper","block.minecraft.waxed_weathered_chiseled_copper","block.minecraft.waxed_oxidized_chiseled_copper","block.minecraft.waxed_cut_copper","block.minecraft.waxed_exposed_cut_copper","block.minecraft.waxed_weathered_cut_copper","block.minecraft.waxed_oxidized_cut_copper","block.minecraft.waxed_cut_copper_stairs","block.minecraft.waxed_exposed_cut_copper_stairs","block.minecraft.waxed_weathered_cut_copper_stairs","block.minecraft.waxed_oxidized_cut_copper_stairs","block.minecraft.waxed_cut_copper_slab","block.minecraft.waxed_exposed_cut_copper_slab","block.minecraft.waxed_weathered_cut_copper_slab","block.minecraft.waxed_oxidized_cut_copper_slab","block.minecraft.oak_log","block.minecraft.spruce_log","block.minecraft.birch_log","block.minecraft.jungle_log","block.minecraft.acacia_log","block.minecraft.cherry_log","block.minecraft.pale_oak_log","block.minecraft.dark_oak_log","block.minecraft.mangrove_log","block.minecraft.mangrove_roots","block.minecraft.muddy_mangrove_roots","block.minecraft.crimson_stem","block.minecraft.warped_stem","block.minecraft.bamboo_block","block.minecraft.stripped_oak_log","block.minecraft.stripped_spruce_log","block.minecraft.stripped_birch_log","block.minecraft.stripped_jungle_log","block.minecraft.stripped_acacia_log","block.minecraft.stripped_cherry_log","block.minecraft.stripped_dark_oak_log","block.minecraft.stripped_pale_oak_log","block.minecraft.stripped_mangrove_log","block.minecraft.stripped_crimson_stem","block.minecraft.stripped_warped_stem","block.minecraft.stripped_oak_wood","block.minecraft.stripped_spruce_wood","block.minecraft.stripped_birch_wood","block.minecraft.stripped_jungle_wood","block.minecraft.stripped_acacia_wood","block.minecraft.stripped_cherry_wood","block.minecraft.stripped_dark_oak_wood","block.minecraft.stripped_pale_oak_wood","block.minecraft.stripped_mangrove_wood","block.minecraft.stripped_crimson_hyphae","block.minecraft.stripped_warped_hyphae","block.minecraft.stripped_bamboo_block","block.minecraft.oak_wood","block.minecraft.spruce_wood","block.minecraft.birch_wood","block.minecraft.jungle_wood","block.minecraft.acacia_wood","block.minecraft.cherry_wood","block.minecraft.pale_oak_wood","block.minecraft.dark_oak_wood","block.minecraft.mangrove_wood","block.minecraft.crimson_hyphae","block.minecraft.warped_hyphae","block.minecraft.oak_leaves","block.minecraft.spruce_leaves","block.minecraft.birch_leaves","block.minecraft.jungle_leaves","block.minecraft.acacia_leaves","block.minecraft.cherry_leaves","block.minecraft.dark_oak_leaves","block.minecraft.pale_oak_leaves","block.minecraft.mangrove_leaves","block.minecraft.azalea_leaves","block.minecraft.flowering_azalea_leaves","block.minecraft.sponge","block.minecraft.wet_sponge","block.minecraft.glass","block.minecraft.tinted_glass","block.minecraft.lapis_block","block.minecraft.sandstone","block.minecraft.chiseled_sandstone","block.minecraft.cut_sandstone","block.minecraft.cobweb","block.minecraft.short_grass","block.minecraft.fern","block.minecraft.bush","block.minecraft.azalea","block.minecraft.flowering_azalea","block.minecraft.dead_bush","block.minecraft.firefly_bush","block.minecraft.short_dry_grass","block.minecraft.tall_dry_grass","block.minecraft.seagrass","block.minecraft.sea_pickle","block.minecraft.white_wool","block.minecraft.orange_wool","block.minecraft.magenta_wool","block.minecraft.light_blue_wool","block.minecraft.yellow_wool","block.minecraft.lime_wool","block.minecraft.pink_wool","block.minecraft.gray_wool","block.minecraft.light_gray_wool","block.minecraft.cyan_wool","block.minecraft.purple_wool","block.minecraft.blue_wool","block.minecraft.brown_wool","block.minecraft.green_wool","block.minecraft.red_wool","block.minecraft.black_wool","block.minecraft.dandelion","block.minecraft.open_eyeblossom","block.minecraft.closed_eyeblossom","block.minecraft.poppy","block.minecraft.blue_orchid","block.minecraft.allium","block.minecraft.azure_bluet","block.minecraft.red_tulip","block.minecraft.orange_tulip","block.minecraft.white_tulip","block.minecraft.pink_tulip","block.minecraft.oxeye_daisy","block.minecraft.cornflower","block.minecraft.lily_of_the_valley","block.minecraft.wither_rose","block.minecraft.torchflower","block.minecraft.pitcher_plant","block.minecraft.spore_blossom","block.minecraft.brown_mushroom","block.minecraft.red_mushroom","block.minecraft.crimson_fungus","block.minecraft.warped_fungus","block.minecraft.crimson_roots","block.minecraft.warped_roots","block.minecraft.nether_sprouts","block.minecraft.weeping_vines","block.minecraft.twisting_vines","block.minecraft.sugar_cane","block.minecraft.kelp","block.minecraft.pink_petals","block.minecraft.wildflowers","block.minecraft.leaf_litter","block.minecraft.moss_carpet","block.minecraft.moss_block","block.minecraft.pale_moss_carpet","block.minecraft.pale_hanging_moss","block.minecraft.pale_moss_block","block.minecraft.hanging_roots","block.minecraft.big_dripleaf","block.minecraft.small_dripleaf","block.minecraft.bamboo","block.minecraft.oak_slab","block.minecraft.spruce_slab","block.minecraft.birch_slab","block.minecraft.jungle_slab","block.minecraft.acacia_slab","block.minecraft.cherry_slab","block.minecraft.dark_oak_slab","block.minecraft.pale_oak_slab","block.minecraft.mangrove_slab","block.minecraft.bamboo_slab","block.minecraft.bamboo_mosaic_slab","block.minecraft.crimson_slab","block.minecraft.warped_slab","block.minecraft.stone_slab","block.minecraft.smooth_stone_slab","block.minecraft.sandstone_slab","block.minecraft.cut_sandstone_slab","block.minecraft.petrified_oak_slab","block.minecraft.cobblestone_slab","block.minecraft.brick_slab","block.minecraft.stone_brick_slab","block.minecraft.mud_brick_slab","block.minecraft.nether_brick_slab","block.minecraft.quartz_slab","block.minecraft.red_sandstone_slab","block.minecraft.cut_red_sandstone_slab","block.minecraft.purpur_slab","block.minecraft.prismarine_slab","block.minecraft.prismarine_brick_slab","block.minecraft.dark_prismarine_slab","block.minecraft.smooth_quartz","block.minecraft.smooth_red_sandstone","block.minecraft.smooth_sandstone","block.minecraft.smooth_stone","block.minecraft.bricks","block.minecraft.acacia_shelf","block.minecraft.bamboo_shelf","block.minecraft.birch_shelf","block.minecraft.cherry_shelf","block.minecraft.crimson_shelf","block.minecraft.dark_oak_shelf","block.minecraft.jungle_shelf","block.minecraft.mangrove_shelf","block.minecraft.oak_shelf","block.minecraft.pale_oak_shelf","block.minecraft.spruce_shelf","block.minecraft.warped_shelf","block.minecraft.bookshelf","block.minecraft.chiseled_bookshelf","block.minecraft.decorated_pot","block.minecraft.mossy_cobblestone","block.minecraft.obsidian","block.minecraft.torch","block.minecraft.end_rod","block.minecraft.chorus_plant","block.minecraft.chorus_flower","block.minecraft.purpur_block","block.minecraft.purpur_pillar","block.minecraft.purpur_stairs","block.minecraft.spawner","block.minecraft.creaking_heart","block.minecraft.chest","block.minecraft.crafting_table","block.minecraft.farmland","block.minecraft.furnace","block.minecraft.ladder","block.minecraft.cobblestone_stairs","block.minecraft.snow","block.minecraft.ice","block.minecraft.snow_block","block.minecraft.cactus","block.minecraft.cactus_flower","block.minecraft.clay","block.minecraft.jukebox","block.minecraft.oak_fence","block.minecraft.spruce_fence","block.minecraft.birch_fence","block.minecraft.jungle_fence","block.minecraft.acacia_fence","block.minecraft.cherry_fence","block.minecraft.dark_oak_fence","block.minecraft.pale_oak_fence","block.minecraft.mangrove_fence","block.minecraft.bamboo_fence","block.minecraft.crimson_fence","block.minecraft.warped_fence","block.minecraft.pumpkin","block.minecraft.carved_pumpkin","block.minecraft.jack_o_lantern","block.minecraft.netherrack","block.minecraft.soul_sand","block.minecraft.soul_soil","block.minecraft.basalt","block.minecraft.polished_basalt","block.minecraft.smooth_basalt","block.minecraft.soul_torch","block.minecraft.copper_torch","block.minecraft.glowstone","block.minecraft.infested_stone","block.minecraft.infested_cobblestone","block.minecraft.infested_stone_bricks","block.minecraft.infested_mossy_stone_bricks","block.minecraft.infested_cracked_stone_bricks","block.minecraft.infested_chiseled_stone_bricks","block.minecraft.infested_deepslate","block.minecraft.stone_bricks","block.minecraft.mossy_stone_bricks","block.minecraft.cracked_stone_bricks","block.minecraft.chiseled_stone_bricks","block.minecraft.packed_mud","block.minecraft.mud_bricks","block.minecraft.deepslate_bricks","block.minecraft.cracked_deepslate_bricks","block.minecraft.deepslate_tiles","block.minecraft.cracked_deepslate_tiles","block.minecraft.chiseled_deepslate","block.minecraft.reinforced_deepslate","block.minecraft.brown_mushroom_block","block.minecraft.red_mushroom_block","block.minecraft.mushroom_stem","block.minecraft.iron_bars","block.minecraft.copper_bars","block.minecraft.exposed_copper_bars","block.minecraft.weathered_copper_bars","block.minecraft.oxidized_copper_bars","block.minecraft.waxed_copper_bars","block.minecraft.waxed_exposed_copper_bars","block.minecraft.waxed_weathered_copper_bars","block.minecraft.waxed_oxidized_copper_bars","block.minecraft.iron_chain","block.minecraft.copper_chain","block.minecraft.exposed_copper_chain","block.minecraft.weathered_copper_chain","block.minecraft.oxidized_copper_chain","block.minecraft.waxed_copper_chain","block.minecraft.waxed_exposed_copper_chain","block.minecraft.waxed_weathered_copper_chain","block.minecraft.waxed_oxidized_copper_chain","block.minecraft.glass_pane","block.minecraft.melon","block.minecraft.vine","block.minecraft.glow_lichen","item.minecraft.resin_clump","block.minecraft.resin_block","block.minecraft.resin_bricks","block.minecraft.resin_brick_stairs","block.minecraft.resin_brick_slab","block.minecraft.resin_brick_wall","block.minecraft.chiseled_resin_bricks","block.minecraft.brick_stairs","block.minecraft.stone_brick_stairs","block.minecraft.mud_brick_stairs","block.minecraft.mycelium","block.minecraft.lily_pad","block.minecraft.nether_bricks","block.minecraft.cracked_nether_bricks","block.minecraft.chiseled_nether_bricks","block.minecraft.nether_brick_fence","block.minecraft.nether_brick_stairs","block.minecraft.sculk","block.minecraft.sculk_vein","block.minecraft.sculk_catalyst","block.minecraft.sculk_shrieker","block.minecraft.enchanting_table","block.minecraft.end_portal_frame","block.minecraft.end_stone","block.minecraft.end_stone_bricks","block.minecraft.dragon_egg","block.minecraft.sandstone_stairs","block.minecraft.ender_chest","block.minecraft.emerald_block","block.minecraft.oak_stairs","block.minecraft.spruce_stairs","block.minecraft.birch_stairs","block.minecraft.jungle_stairs","block.minecraft.acacia_stairs","block.minecraft.cherry_stairs","block.minecraft.dark_oak_stairs","block.minecraft.pale_oak_stairs","block.minecraft.mangrove_stairs","block.minecraft.bamboo_stairs","block.minecraft.bamboo_mosaic_stairs","block.minecraft.crimson_stairs","block.minecraft.warped_stairs","block.minecraft.command_block","block.minecraft.beacon","block.minecraft.cobblestone_wall","block.minecraft.mossy_cobblestone_wall","block.minecraft.brick_wall","block.minecraft.prismarine_wall","block.minecraft.red_sandstone_wall","block.minecraft.mossy_stone_brick_wall","block.minecraft.granite_wall","block.minecraft.stone_brick_wall","block.minecraft.mud_brick_wall","block.minecraft.nether_brick_wall","block.minecraft.andesite_wall","block.minecraft.red_nether_brick_wall","block.minecraft.sandstone_wall","block.minecraft.end_stone_brick_wall","block.minecraft.diorite_wall","block.minecraft.blackstone_wall","block.minecraft.polished_blackstone_wall","block.minecraft.polished_blackstone_brick_wall","block.minecraft.cobbled_deepslate_wall","block.minecraft.polished_deepslate_wall","block.minecraft.deepslate_brick_wall","block.minecraft.deepslate_tile_wall","block.minecraft.anvil","block.minecraft.chipped_anvil","block.minecraft.damaged_anvil","block.minecraft.chiseled_quartz_block","block.minecraft.quartz_block","block.minecraft.quartz_bricks","block.minecraft.quartz_pillar","block.minecraft.quartz_stairs","block.minecraft.white_terracotta","block.minecraft.orange_terracotta","block.minecraft.magenta_terracotta","block.minecraft.light_blue_terracotta","block.minecraft.yellow_terracotta","block.minecraft.lime_terracotta","block.minecraft.pink_terracotta","block.minecraft.gray_terracotta","block.minecraft.light_gray_terracotta","block.minecraft.cyan_terracotta","block.minecraft.purple_terracotta","block.minecraft.blue_terracotta","block.minecraft.brown_terracotta","block.minecraft.green_terracotta","block.minecraft.red_terracotta","block.minecraft.black_terracotta","block.minecraft.barrier","block.minecraft.light","block.minecraft.hay_block","block.minecraft.white_carpet","block.minecraft.orange_carpet","block.minecraft.magenta_carpet","block.minecraft.light_blue_carpet","block.minecraft.yellow_carpet","block.minecraft.lime_carpet","block.minecraft.pink_carpet","block.minecraft.gray_carpet","block.minecraft.light_gray_carpet","block.minecraft.cyan_carpet","block.minecraft.purple_carpet","block.minecraft.blue_carpet","block.minecraft.brown_carpet","block.minecraft.green_carpet","block.minecraft.red_carpet","block.minecraft.black_carpet","block.minecraft.terracotta","block.minecraft.packed_ice","block.minecraft.dirt_path","block.minecraft.sunflower","block.minecraft.lilac","block.minecraft.rose_bush","block.minecraft.peony","block.minecraft.tall_grass","block.minecraft.large_fern","block.minecraft.white_stained_glass","block.minecraft.orange_stained_glass","block.minecraft.magenta_stained_glass","block.minecraft.light_blue_stained_glass","block.minecraft.yellow_stained_glass","block.minecraft.lime_stained_glass","block.minecraft.pink_stained_glass","block.minecraft.gray_stained_glass","block.minecraft.light_gray_stained_glass","block.minecraft.cyan_stained_glass","block.minecraft.purple_stained_glass","block.minecraft.blue_stained_glass","block.minecraft.brown_stained_glass","block.minecraft.green_stained_glass","block.minecraft.red_stained_glass","block.minecraft.black_stained_glass","block.minecraft.white_stained_glass_pane","block.minecraft.orange_stained_glass_pane","block.minecraft.magenta_stained_glass_pane","block.minecraft.light_blue_stained_glass_pane","block.minecraft.yellow_stained_glass_pane","block.minecraft.lime_stained_glass_pane","block.minecraft.pink_stained_glass_pane","block.minecraft.gray_stained_glass_pane","block.minecraft.light_gray_stained_glass_pane","block.minecraft.cyan_stained_glass_pane","block.minecraft.purple_stained_glass_pane","block.minecraft.blue_stained_glass_pane","block.minecraft.brown_stained_glass_pane","block.minecraft.green_stained_glass_pane","block.minecraft.red_stained_glass_pane","block.minecraft.black_stained_glass_pane","block.minecraft.prismarine","block.minecraft.prismarine_bricks","block.minecraft.dark_prismarine","block.minecraft.prismarine_stairs","block.minecraft.prismarine_brick_stairs","block.minecraft.dark_prismarine_stairs","block.minecraft.sea_lantern","block.minecraft.red_sandstone","block.minecraft.chiseled_red_sandstone","block.minecraft.cut_red_sandstone","block.minecraft.red_sandstone_stairs","block.minecraft.repeating_command_block","block.minecraft.chain_command_block","block.minecraft.magma_block","block.minecraft.nether_wart_block","block.minecraft.warped_wart_block","block.minecraft.red_nether_bricks","block.minecraft.bone_block","block.minecraft.structure_void","block.minecraft.shulker_box","block.minecraft.white_shulker_box","block.minecraft.orange_shulker_box","block.minecraft.magenta_shulker_box","block.minecraft.light_blue_shulker_box","block.minecraft.yellow_shulker_box","block.minecraft.lime_shulker_box","block.minecraft.pink_shulker_box","block.minecraft.gray_shulker_box","block.minecraft.light_gray_shulker_box","block.minecraft.cyan_shulker_box","block.minecraft.purple_shulker_box","block.minecraft.blue_shulker_box","block.minecraft.brown_shulker_box","block.minecraft.green_shulker_box","block.minecraft.red_shulker_box","block.minecraft.black_shulker_box","block.minecraft.white_glazed_terracotta","block.minecraft.orange_glazed_terracotta","block.minecraft.magenta_glazed_terracotta","block.minecraft.light_blue_glazed_terracotta","block.minecraft.yellow_glazed_terracotta","block.minecraft.lime_glazed_terracotta","block.minecraft.pink_glazed_terracotta","block.minecraft.gray_glazed_terracotta","block.minecraft.light_gray_glazed_terracotta","block.minecraft.cyan_glazed_terracotta","block.minecraft.purple_glazed_terracotta","block.minecraft.blue_glazed_terracotta","block.minecraft.brown_glazed_terracotta","block.minecraft.green_glazed_terracotta","block.minecraft.red_glazed_terracotta","block.minecraft.black_glazed_terracotta","block.minecraft.white_concrete","block.minecraft.orange_concrete","block.minecraft.magenta_concrete","block.minecraft.light_blue_concrete","block.minecraft.yellow_concrete","block.minecraft.lime_concrete","block.minecraft.pink_concrete","block.minecraft.gray_concrete","block.minecraft.light_gray_concrete","block.minecraft.cyan_concrete","block.minecraft.purple_concrete","block.minecraft.blue_concrete","block.minecraft.brown_concrete","block.minecraft.green_concrete","block.minecraft.red_concrete","block.minecraft.black_concrete","block.minecraft.white_concrete_powder","block.minecraft.orange_concrete_powder","block.minecraft.magenta_concrete_powder","block.minecraft.light_blue_concrete_powder","block.minecraft.yellow_concrete_powder","block.minecraft.lime_concrete_powder","block.minecraft.pink_concrete_powder","block.minecraft.gray_concrete_powder","block.minecraft.light_gray_concrete_powder","block.minecraft.cyan_concrete_powder","block.minecraft.purple_concrete_powder","block.minecraft.blue_concrete_powder","block.minecraft.brown_concrete_powder","block.minecraft.green_concrete_powder","block.minecraft.red_concrete_powder","block.minecraft.black_concrete_powder","block.minecraft.turtle_egg","block.minecraft.sniffer_egg","block.minecraft.dried_ghast","block.minecraft.dead_tube_coral_block","block.minecraft.dead_brain_coral_block","block.minecraft.dead_bubble_coral_block","block.minecraft.dead_fire_coral_block","block.minecraft.dead_horn_coral_block","block.minecraft.tube_coral_block","block.minecraft.brain_coral_block","block.minecraft.bubble_coral_block","block.minecraft.fire_coral_block","block.minecraft.horn_coral_block","block.minecraft.tube_coral","block.minecraft.brain_coral","block.minecraft.bubble_coral","block.minecraft.fire_coral","block.minecraft.horn_coral","block.minecraft.dead_brain_coral","block.minecraft.dead_bubble_coral","block.minecraft.dead_fire_coral","block.minecraft.dead_horn_coral","block.minecraft.dead_tube_coral","block.minecraft.tube_coral_fan","block.minecraft.brain_coral_fan","block.minecraft.bubble_coral_fan","block.minecraft.fire_coral_fan","block.minecraft.horn_coral_fan","block.minecraft.dead_tube_coral_fan","block.minecraft.dead_brain_coral_fan","block.minecraft.dead_bubble_coral_fan","block.minecraft.dead_fire_coral_fan","block.minecraft.dead_horn_coral_fan","block.minecraft.blue_ice","block.minecraft.conduit","block.minecraft.polished_granite_stairs","block.minecraft.smooth_red_sandstone_stairs","block.minecraft.mossy_stone_brick_stairs","block.minecraft.polished_diorite_stairs","block.minecraft.mossy_cobblestone_stairs","block.minecraft.end_stone_brick_stairs","block.minecraft.stone_stairs","block.minecraft.smooth_sandstone_stairs","block.minecraft.smooth_quartz_stairs","block.minecraft.granite_stairs","block.minecraft.andesite_stairs","block.minecraft.red_nether_brick_stairs","block.minecraft.polished_andesite_stairs","block.minecraft.diorite_stairs","block.minecraft.cobbled_deepslate_stairs","block.minecraft.polished_deepslate_stairs","block.minecraft.deepslate_brick_stairs","block.minecraft.deepslate_tile_stairs","block.minecraft.polished_granite_slab","block.minecraft.smooth_red_sandstone_slab","block.minecraft.mossy_stone_brick_slab","block.minecraft.polished_diorite_slab","block.minecraft.mossy_cobblestone_slab","block.minecraft.end_stone_brick_slab","block.minecraft.smooth_sandstone_slab","block.minecraft.smooth_quartz_slab","block.minecraft.granite_slab","block.minecraft.andesite_slab","block.minecraft.red_nether_brick_slab","block.minecraft.polished_andesite_slab","block.minecraft.diorite_slab","block.minecraft.cobbled_deepslate_slab","block.minecraft.polished_deepslate_slab","block.minecraft.deepslate_brick_slab","block.minecraft.deepslate_tile_slab","block.minecraft.scaffolding","item.minecraft.redstone","block.minecraft.redstone_torch","block.minecraft.redstone_block","block.minecraft.repeater","block.minecraft.comparator","block.minecraft.piston","block.minecraft.sticky_piston","block.minecraft.slime_block","block.minecraft.honey_block","block.minecraft.observer","block.minecraft.hopper","block.minecraft.dispenser","block.minecraft.dropper","block.minecraft.lectern","block.minecraft.target","block.minecraft.lever","block.minecraft.lightning_rod","block.minecraft.exposed_lightning_rod","block.minecraft.weathered_lightning_rod","block.minecraft.oxidized_lightning_rod","block.minecraft.waxed_lightning_rod","block.minecraft.waxed_exposed_lightning_rod","block.minecraft.waxed_weathered_lightning_rod","block.minecraft.waxed_oxidized_lightning_rod","block.minecraft.daylight_detector","block.minecraft.sculk_sensor","block.minecraft.calibrated_sculk_sensor","block.minecraft.tripwire_hook","block.minecraft.trapped_chest","block.minecraft.tnt","block.minecraft.redstone_lamp","block.minecraft.note_block","block.minecraft.stone_button","block.minecraft.polished_blackstone_button","block.minecraft.oak_button","block.minecraft.spruce_button","block.minecraft.birch_button","block.minecraft.jungle_button","block.minecraft.acacia_button","block.minecraft.cherry_button","block.minecraft.dark_oak_button","block.minecraft.pale_oak_button","block.minecraft.mangrove_button","block.minecraft.bamboo_button","block.minecraft.crimson_button","block.minecraft.warped_button","block.minecraft.stone_pressure_plate","block.minecraft.polished_blackstone_pressure_plate","block.minecraft.light_weighted_pressure_plate","block.minecraft.heavy_weighted_pressure_plate","block.minecraft.oak_pressure_plate","block.minecraft.spruce_pressure_plate","block.minecraft.birch_pressure_plate","block.minecraft.jungle_pressure_plate","block.minecraft.acacia_pressure_plate","block.minecraft.cherry_pressure_plate","block.minecraft.dark_oak_pressure_plate","block.minecraft.pale_oak_pressure_plate","block.minecraft.mangrove_pressure_plate","block.minecraft.bamboo_pressure_plate","block.minecraft.crimson_pressure_plate","block.minecraft.warped_pressure_plate","block.minecraft.iron_door","block.minecraft.oak_door","block.minecraft.spruce_door","block.minecraft.birch_door","block.minecraft.jungle_door","block.minecraft.acacia_door","block.minecraft.cherry_door","block.minecraft.dark_oak_door","block.minecraft.pale_oak_door","block.minecraft.mangrove_door","block.minecraft.bamboo_door","block.minecraft.crimson_door","block.minecraft.warped_door","block.minecraft.copper_door","block.minecraft.exposed_copper_door","block.minecraft.weathered_copper_door","block.minecraft.oxidized_copper_door","block.minecraft.waxed_copper_door","block.minecraft.waxed_exposed_copper_door","block.minecraft.waxed_weathered_copper_door","block.minecraft.waxed_oxidized_copper_door","block.minecraft.iron_trapdoor","block.minecraft.oak_trapdoor","block.minecraft.spruce_trapdoor","block.minecraft.birch_trapdoor","block.minecraft.jungle_trapdoor","block.minecraft.acacia_trapdoor","block.minecraft.cherry_trapdoor","block.minecraft.dark_oak_trapdoor","block.minecraft.pale_oak_trapdoor","block.minecraft.mangrove_trapdoor","block.minecraft.bamboo_trapdoor","block.minecraft.crimson_trapdoor","block.minecraft.warped_trapdoor","block.minecraft.copper_trapdoor","block.minecraft.exposed_copper_trapdoor","block.minecraft.weathered_copper_trapdoor","block.minecraft.oxidized_copper_trapdoor","block.minecraft.waxed_copper_trapdoor","block.minecraft.waxed_exposed_copper_trapdoor","block.minecraft.waxed_weathered_copper_trapdoor","block.minecraft.waxed_oxidized_copper_trapdoor","block.minecraft.oak_fence_gate","block.minecraft.spruce_fence_gate","block.minecraft.birch_fence_gate","block.minecraft.jungle_fence_gate","block.minecraft.acacia_fence_gate","block.minecraft.cherry_fence_gate","block.minecraft.dark_oak_fence_gate","block.minecraft.pale_oak_fence_gate","block.minecraft.mangrove_fence_gate","block.minecraft.bamboo_fence_gate","block.minecraft.crimson_fence_gate","block.minecraft.warped_fence_gate","block.minecraft.powered_rail","block.minecraft.detector_rail","block.minecraft.rail","block.minecraft.activator_rail","item.minecraft.saddle","item.minecraft.white_harness","item.minecraft.orange_harness","item.minecraft.magenta_harness","item.minecraft.light_blue_harness","item.minecraft.yellow_harness","item.minecraft.lime_harness","item.minecraft.pink_harness","item.minecraft.gray_harness","item.minecraft.light_gray_harness","item.minecraft.cyan_harness","item.minecraft.purple_harness","item.minecraft.blue_harness","item.minecraft.brown_harness","item.minecraft.green_harness","item.minecraft.red_harness","item.minecraft.black_harness","item.minecraft.minecart","item.minecraft.chest_minecart","item.minecraft.furnace_minecart","item.minecraft.tnt_minecart","item.minecraft.hopper_minecart","item.minecraft.carrot_on_a_stick","item.minecraft.warped_fungus_on_a_stick","item.minecraft.phantom_membrane","item.minecraft.elytra","item.minecraft.oak_boat","item.minecraft.oak_chest_boat","item.minecraft.spruce_boat","item.minecraft.spruce_chest_boat","item.minecraft.birch_boat","item.minecraft.birch_chest_boat","item.minecraft.jungle_boat","item.minecraft.jungle_chest_boat","item.minecraft.acacia_boat","item.minecraft.acacia_chest_boat","item.minecraft.cherry_boat","item.minecraft.cherry_chest_boat","item.minecraft.dark_oak_boat","item.minecraft.dark_oak_chest_boat","item.minecraft.pale_oak_boat","item.minecraft.pale_oak_chest_boat","item.minecraft.mangrove_boat","item.minecraft.mangrove_chest_boat","item.minecraft.bamboo_raft","item.minecraft.bamboo_chest_raft","block.minecraft.structure_block","block.minecraft.jigsaw","block.minecraft.test_block","block.minecraft.test_instance_block","item.minecraft.turtle_helmet","item.minecraft.turtle_scute","item.minecraft.armadillo_scute","item.minecraft.wolf_armor","item.minecraft.flint_and_steel","item.minecraft.bowl","item.minecraft.apple","item.minecraft.bow","item.minecraft.arrow","item.minecraft.coal","item.minecraft.charcoal","item.minecraft.diamond","item.minecraft.emerald","item.minecraft.lapis_lazuli","item.minecraft.quartz","item.minecraft.amethyst_shard","item.minecraft.raw_iron","item.minecraft.iron_ingot","item.minecraft.raw_copper","item.minecraft.copper_ingot","item.minecraft.raw_gold","item.minecraft.gold_ingot","item.minecraft.netherite_ingot","item.minecraft.netherite_scrap","item.minecraft.wooden_sword","item.minecraft.wooden_shovel","item.minecraft.wooden_pickaxe","item.minecraft.wooden_axe","item.minecraft.wooden_hoe","item.minecraft.copper_sword","item.minecraft.copper_shovel","item.minecraft.copper_pickaxe","item.minecraft.copper_axe","item.minecraft.copper_hoe","item.minecraft.stone_sword","item.minecraft.stone_shovel","item.minecraft.stone_pickaxe","item.minecraft.stone_axe","item.minecraft.stone_hoe","item.minecraft.golden_sword","item.minecraft.golden_shovel","item.minecraft.golden_pickaxe","item.minecraft.golden_axe","item.minecraft.golden_hoe","item.minecraft.iron_sword","item.minecraft.iron_shovel","item.minecraft.iron_pickaxe","item.minecraft.iron_axe","item.minecraft.iron_hoe","item.minecraft.diamond_sword","item.minecraft.diamond_shovel","item.minecraft.diamond_pickaxe","item.minecraft.diamond_axe","item.minecraft.diamond_hoe","item.minecraft.netherite_sword","item.minecraft.netherite_shovel","item.minecraft.netherite_pickaxe","item.minecraft.netherite_axe","item.minecraft.netherite_hoe","item.minecraft.stick","item.minecraft.mushroom_stew","item.minecraft.string","item.minecraft.feather","item.minecraft.gunpowder","item.minecraft.wheat_seeds","item.minecraft.wheat","item.minecraft.bread","item.minecraft.leather_helmet","item.minecraft.leather_chestplate","item.minecraft.leather_leggings","item.minecraft.leather_boots","item.minecraft.copper_helmet","item.minecraft.copper_chestplate","item.minecraft.copper_leggings","item.minecraft.copper_boots","item.minecraft.chainmail_helmet","item.minecraft.chainmail_chestplate","item.minecraft.chainmail_leggings","item.minecraft.chainmail_boots","item.minecraft.iron_helmet","item.minecraft.iron_chestplate","item.minecraft.iron_leggings","item.minecraft.iron_boots","item.minecraft.diamond_helmet","item.minecraft.diamond_chestplate","item.minecraft.diamond_leggings","item.minecraft.diamond_boots","item.minecraft.golden_helmet","item.minecraft.golden_chestplate","item.minecraft.golden_leggings","item.minecraft.golden_boots","item.minecraft.netherite_helmet","item.minecraft.netherite_chestplate","item.minecraft.netherite_leggings","item.minecraft.netherite_boots","item.minecraft.flint","item.minecraft.porkchop","item.minecraft.cooked_porkchop","item.minecraft.painting","item.minecraft.golden_apple","item.minecraft.enchanted_golden_apple","block.minecraft.oak_sign","block.minecraft.spruce_sign","block.minecraft.birch_sign","block.minecraft.jungle_sign","block.minecraft.acacia_sign","block.minecraft.cherry_sign","block.minecraft.dark_oak_sign","block.minecraft.pale_oak_sign","block.minecraft.mangrove_sign","block.minecraft.bamboo_sign","block.minecraft.crimson_sign","block.minecraft.warped_sign","block.minecraft.oak_hanging_sign","block.minecraft.spruce_hanging_sign","block.minecraft.birch_hanging_sign","block.minecraft.jungle_hanging_sign","block.minecraft.acacia_hanging_sign","block.minecraft.cherry_hanging_sign","block.minecraft.dark_oak_hanging_sign","block.minecraft.pale_oak_hanging_sign","block.minecraft.mangrove_hanging_sign","block.minecraft.bamboo_hanging_sign","block.minecraft.crimson_hanging_sign","block.minecraft.warped_hanging_sign","item.minecraft.bucket","item.minecraft.water_bucket","item.minecraft.lava_bucket","item.minecraft.powder_snow_bucket","item.minecraft.snowball","item.minecraft.leather","item.minecraft.milk_bucket","item.minecraft.pufferfish_bucket","item.minecraft.salmon_bucket","item.minecraft.cod_bucket","item.minecraft.tropical_fish_bucket","item.minecraft.axolotl_bucket","item.minecraft.tadpole_bucket","item.minecraft.brick","item.minecraft.clay_ball","block.minecraft.dried_kelp_block","item.minecraft.paper","item.minecraft.book","item.minecraft.slime_ball","item.minecraft.egg","item.minecraft.blue_egg","item.minecraft.brown_egg","item.minecraft.compass","item.minecraft.recovery_compass","item.minecraft.bundle","item.minecraft.white_bundle","item.minecraft.orange_bundle","item.minecraft.magenta_bundle","item.minecraft.light_blue_bundle","item.minecraft.yellow_bundle","item.minecraft.lime_bundle","item.minecraft.pink_bundle","item.minecraft.gray_bundle","item.minecraft.light_gray_bundle","item.minecraft.cyan_bundle","item.minecraft.purple_bundle","item.minecraft.blue_bundle","item.minecraft.brown_bundle","item.minecraft.green_bundle","item.minecraft.red_bundle","item.minecraft.black_bundle","item.minecraft.fishing_rod","item.minecraft.clock","item.minecraft.spyglass","item.minecraft.glowstone_dust","item.minecraft.cod","item.minecraft.salmon","item.minecraft.tropical_fish","item.minecraft.pufferfish","item.minecraft.cooked_cod","item.minecraft.cooked_salmon","item.minecraft.ink_sac","item.minecraft.glow_ink_sac","item.minecraft.cocoa_beans","item.minecraft.white_dye","item.minecraft.orange_dye","item.minecraft.magenta_dye","item.minecraft.light_blue_dye","item.minecraft.yellow_dye","item.minecraft.lime_dye","item.minecraft.pink_dye","item.minecraft.gray_dye","item.minecraft.light_gray_dye","item.minecraft.cyan_dye","item.minecraft.purple_dye","item.minecraft.blue_dye","item.minecraft.brown_dye","item.minecraft.green_dye","item.minecraft.red_dye","item.minecraft.black_dye","item.minecraft.bone_meal","item.minecraft.bone","item.minecraft.sugar","block.minecraft.cake","block.minecraft.white_bed","block.minecraft.orange_bed","block.minecraft.magenta_bed","block.minecraft.light_blue_bed","block.minecraft.yellow_bed","block.minecraft.lime_bed","block.minecraft.pink_bed","block.minecraft.gray_bed","block.minecraft.light_gray_bed","block.minecraft.cyan_bed","block.minecraft.purple_bed","block.minecraft.blue_bed","block.minecraft.brown_bed","block.minecraft.green_bed","block.minecraft.red_bed","block.minecraft.black_bed","item.minecraft.cookie","block.minecraft.crafter","item.minecraft.filled_map","item.minecraft.shears","item.minecraft.melon_slice","item.minecraft.dried_kelp","item.minecraft.pumpkin_seeds","item.minecraft.melon_seeds","item.minecraft.beef","item.minecraft.cooked_beef","item.minecraft.chicken","item.minecraft.cooked_chicken","item.minecraft.rotten_flesh","item.minecraft.ender_pearl","item.minecraft.blaze_rod","item.minecraft.ghast_tear","item.minecraft.gold_nugget","item.minecraft.nether_wart","item.minecraft.glass_bottle","item.minecraft.potion","item.minecraft.spider_eye","item.minecraft.fermented_spider_eye","item.minecraft.blaze_powder","item.minecraft.magma_cream","block.minecraft.brewing_stand","block.minecraft.cauldron","item.minecraft.ender_eye","item.minecraft.glistering_melon_slice","item.minecraft.armadillo_spawn_egg","item.minecraft.allay_spawn_egg","item.minecraft.axolotl_spawn_egg","item.minecraft.bat_spawn_egg","item.minecraft.bee_spawn_egg","item.minecraft.blaze_spawn_egg","item.minecraft.bogged_spawn_egg","item.minecraft.breeze_spawn_egg","item.minecraft.cat_spawn_egg","item.minecraft.camel_spawn_egg","item.minecraft.cave_spider_spawn_egg","item.minecraft.chicken_spawn_egg","item.minecraft.cod_spawn_egg","item.minecraft.copper_golem_spawn_egg","item.minecraft.cow_spawn_egg","item.minecraft.creeper_spawn_egg","item.minecraft.dolphin_spawn_egg","item.minecraft.donkey_spawn_egg","item.minecraft.drowned_spawn_egg","item.minecraft.elder_guardian_spawn_egg","item.minecraft.ender_dragon_spawn_egg","item.minecraft.enderman_spawn_egg","item.minecraft.endermite_spawn_egg","item.minecraft.evoker_spawn_egg","item.minecraft.fox_spawn_egg","item.minecraft.frog_spawn_egg","item.minecraft.ghast_spawn_egg","item.minecraft.happy_ghast_spawn_egg","item.minecraft.glow_squid_spawn_egg","item.minecraft.goat_spawn_egg","item.minecraft.guardian_spawn_egg","item.minecraft.hoglin_spawn_egg","item.minecraft.horse_spawn_egg","item.minecraft.husk_spawn_egg","item.minecraft.iron_golem_spawn_egg","item.minecraft.llama_spawn_egg","item.minecraft.magma_cube_spawn_egg","item.minecraft.mooshroom_spawn_egg","item.minecraft.mule_spawn_egg","item.minecraft.ocelot_spawn_egg","item.minecraft.panda_spawn_egg","item.minecraft.parrot_spawn_egg","item.minecraft.phantom_spawn_egg","item.minecraft.pig_spawn_egg","item.minecraft.piglin_spawn_egg","item.minecraft.piglin_brute_spawn_egg","item.minecraft.pillager_spawn_egg","item.minecraft.polar_bear_spawn_egg","item.minecraft.pufferfish_spawn_egg","item.minecraft.rabbit_spawn_egg","item.minecraft.ravager_spawn_egg","item.minecraft.salmon_spawn_egg","item.minecraft.sheep_spawn_egg","item.minecraft.shulker_spawn_egg","item.minecraft.silverfish_spawn_egg","item.minecraft.skeleton_spawn_egg","item.minecraft.skeleton_horse_spawn_egg","item.minecraft.slime_spawn_egg","item.minecraft.sniffer_spawn_egg","item.minecraft.snow_golem_spawn_egg","item.minecraft.spider_spawn_egg","item.minecraft.squid_spawn_egg","item.minecraft.stray_spawn_egg","item.minecraft.strider_spawn_egg","item.minecraft.tadpole_spawn_egg","item.minecraft.trader_llama_spawn_egg","item.minecraft.tropical_fish_spawn_egg","item.minecraft.turtle_spawn_egg","item.minecraft.vex_spawn_egg","item.minecraft.villager_spawn_egg","item.minecraft.vindicator_spawn_egg","item.minecraft.wandering_trader_spawn_egg","item.minecraft.warden_spawn_egg","item.minecraft.witch_spawn_egg","item.minecraft.wither_spawn_egg","item.minecraft.wither_skeleton_spawn_egg","item.minecraft.wolf_spawn_egg","item.minecraft.zoglin_spawn_egg","item.minecraft.creaking_spawn_egg","item.minecraft.zombie_spawn_egg","item.minecraft.zombie_horse_spawn_egg","item.minecraft.zombie_villager_spawn_egg","item.minecraft.zombified_piglin_spawn_egg","item.minecraft.experience_bottle","item.minecraft.fire_charge","item.minecraft.wind_charge","item.minecraft.writable_book","item.minecraft.written_book","item.minecraft.breeze_rod","item.minecraft.mace","item.minecraft.item_frame","item.minecraft.glow_item_frame","block.minecraft.flower_pot","item.minecraft.carrot","item.minecraft.potato","item.minecraft.baked_potato","item.minecraft.poisonous_potato","item.minecraft.map","item.minecraft.golden_carrot","block.minecraft.skeleton_skull","block.minecraft.wither_skeleton_skull","block.minecraft.player_head","block.minecraft.zombie_head","block.minecraft.creeper_head","block.minecraft.dragon_head","block.minecraft.piglin_head","item.minecraft.nether_star","item.minecraft.pumpkin_pie","item.minecraft.firework_rocket","item.minecraft.firework_star","item.minecraft.enchanted_book","item.minecraft.nether_brick","item.minecraft.resin_brick","item.minecraft.prismarine_shard","item.minecraft.prismarine_crystals","item.minecraft.rabbit","item.minecraft.cooked_rabbit","item.minecraft.rabbit_stew","item.minecraft.rabbit_foot","item.minecraft.rabbit_hide","item.minecraft.armor_stand","item.minecraft.copper_horse_armor","item.minecraft.iron_horse_armor","item.minecraft.golden_horse_armor","item.minecraft.diamond_horse_armor","item.minecraft.leather_horse_armor","item.minecraft.lead","item.minecraft.name_tag","item.minecraft.command_block_minecart","item.minecraft.mutton","item.minecraft.cooked_mutton","block.minecraft.white_banner","block.minecraft.orange_banner","block.minecraft.magenta_banner","block.minecraft.light_blue_banner","block.minecraft.yellow_banner","block.minecraft.lime_banner","block.minecraft.pink_banner","block.minecraft.gray_banner","block.minecraft.light_gray_banner","block.minecraft.cyan_banner","block.minecraft.purple_banner","block.minecraft.blue_banner","block.minecraft.brown_banner","block.minecraft.green_banner","block.minecraft.red_banner","block.minecraft.black_banner","item.minecraft.end_crystal","item.minecraft.chorus_fruit","item.minecraft.popped_chorus_fruit","item.minecraft.torchflower_seeds","item.minecraft.pitcher_pod","item.minecraft.beetroot","item.minecraft.beetroot_seeds","item.minecraft.beetroot_soup","item.minecraft.dragon_breath","item.minecraft.splash_potion","item.minecraft.spectral_arrow","item.minecraft.tipped_arrow","item.minecraft.lingering_potion","item.minecraft.shield","item.minecraft.totem_of_undying","item.minecraft.shulker_shell","item.minecraft.iron_nugget","item.minecraft.copper_nugget","item.minecraft.knowledge_book","item.minecraft.debug_stick","item.minecraft.music_disc_13","item.minecraft.music_disc_cat","item.minecraft.music_disc_blocks","item.minecraft.music_disc_chirp","item.minecraft.music_disc_creator","item.minecraft.music_disc_creator_music_box","item.minecraft.music_disc_far","item.minecraft.music_disc_lava_chicken","item.minecraft.music_disc_mall","item.minecraft.music_disc_mellohi","item.minecraft.music_disc_stal","item.minecraft.music_disc_strad","item.minecraft.music_disc_ward","item.minecraft.music_disc_11","item.minecraft.music_disc_wait","item.minecraft.music_disc_otherside","item.minecraft.music_disc_relic","item.minecraft.music_disc_5","item.minecraft.music_disc_pigstep","item.minecraft.music_disc_precipice","item.minecraft.music_disc_tears","item.minecraft.disc_fragment_5","item.minecraft.trident","item.minecraft.nautilus_shell","item.minecraft.heart_of_the_sea","item.minecraft.crossbow","item.minecraft.suspicious_stew","block.minecraft.loom","item.minecraft.flower_banner_pattern","item.minecraft.creeper_banner_pattern","item.minecraft.skull_banner_pattern","item.minecraft.mojang_banner_pattern","item.minecraft.globe_banner_pattern","item.minecraft.piglin_banner_pattern","item.minecraft.flow_banner_pattern","item.minecraft.guster_banner_pattern","item.minecraft.field_masoned_banner_pattern","item.minecraft.bordure_indented_banner_pattern","item.minecraft.goat_horn","block.minecraft.composter","block.minecraft.barrel","block.minecraft.smoker","block.minecraft.blast_furnace","block.minecraft.cartography_table","block.minecraft.fletching_table","block.minecraft.grindstone","block.minecraft.smithing_table","block.minecraft.stonecutter","block.minecraft.bell","block.minecraft.lantern","block.minecraft.soul_lantern","block.minecraft.copper_lantern","block.minecraft.exposed_copper_lantern","block.minecraft.weathered_copper_lantern","block.minecraft.oxidized_copper_lantern","block.minecraft.waxed_copper_lantern","block.minecraft.waxed_exposed_copper_lantern","block.minecraft.waxed_weathered_copper_lantern","block.minecraft.waxed_oxidized_copper_lantern","item.minecraft.sweet_berries","item.minecraft.glow_berries","block.minecraft.campfire","block.minecraft.soul_campfire","block.minecraft.shroomlight","item.minecraft.honeycomb","block.minecraft.bee_nest","block.minecraft.beehive","item.minecraft.honey_bottle","block.minecraft.honeycomb_block","block.minecraft.lodestone","block.minecraft.crying_obsidian","block.minecraft.blackstone","block.minecraft.blackstone_slab","block.minecraft.blackstone_stairs","block.minecraft.gilded_blackstone","block.minecraft.polished_blackstone","block.minecraft.polished_blackstone_slab","block.minecraft.polished_blackstone_stairs","block.minecraft.chiseled_polished_blackstone","block.minecraft.polished_blackstone_bricks","block.minecraft.polished_blackstone_brick_slab","block.minecraft.polished_blackstone_brick_stairs","block.minecraft.cracked_polished_blackstone_bricks","block.minecraft.respawn_anchor","block.minecraft.candle","block.minecraft.white_candle","block.minecraft.orange_candle","block.minecraft.magenta_candle","block.minecraft.light_blue_candle","block.minecraft.yellow_candle","block.minecraft.lime_candle","block.minecraft.pink_candle","block.minecraft.gray_candle","block.minecraft.light_gray_candle","block.minecraft.cyan_candle","block.minecraft.purple_candle","block.minecraft.blue_candle","block.minecraft.brown_candle","block.minecraft.green_candle","block.minecraft.red_candle","block.minecraft.black_candle","block.minecraft.small_amethyst_bud","block.minecraft.medium_amethyst_bud","block.minecraft.large_amethyst_bud","block.minecraft.amethyst_cluster","block.minecraft.pointed_dripstone","block.minecraft.ochre_froglight","block.minecraft.verdant_froglight","block.minecraft.pearlescent_froglight","block.minecraft.frogspawn","item.minecraft.echo_shard","item.minecraft.brush","item.minecraft.netherite_upgrade_smithing_template","item.minecraft.sentry_armor_trim_smithing_template","item.minecraft.dune_armor_trim_smithing_template","item.minecraft.coast_armor_trim_smithing_template","item.minecraft.wild_armor_trim_smithing_template","item.minecraft.ward_armor_trim_smithing_template","item.minecraft.eye_armor_trim_smithing_template","item.minecraft.vex_armor_trim_smithing_template","item.minecraft.tide_armor_trim_smithing_template","item.minecraft.snout_armor_trim_smithing_template","item.minecraft.rib_armor_trim_smithing_template","item.minecraft.spire_armor_trim_smithing_template","item.minecraft.wayfinder_armor_trim_smithing_template","item.minecraft.shaper_armor_trim_smithing_template","item.minecraft.silence_armor_trim_smithing_template","item.minecraft.raiser_armor_trim_smithing_template","item.minecraft.host_armor_trim_smithing_template","item.minecraft.flow_armor_trim_smithing_template","item.minecraft.bolt_armor_trim_smithing_template","item.minecraft.angler_pottery_sherd","item.minecraft.archer_pottery_sherd","item.minecraft.arms_up_pottery_sherd","item.minecraft.blade_pottery_sherd","item.minecraft.brewer_pottery_sherd","item.minecraft.burn_pottery_sherd","item.minecraft.danger_pottery_sherd","item.minecraft.explorer_pottery_sherd","item.minecraft.flow_pottery_sherd","item.minecraft.friend_pottery_sherd","item.minecraft.guster_pottery_sherd","item.minecraft.heart_pottery_sherd","item.minecraft.heartbreak_pottery_sherd","item.minecraft.howl_pottery_sherd","item.minecraft.miner_pottery_sherd","item.minecraft.mourner_pottery_sherd","item.minecraft.plenty_pottery_sherd","item.minecraft.prize_pottery_sherd","item.minecraft.scrape_pottery_sherd","item.minecraft.sheaf_pottery_sherd","item.minecraft.shelter_pottery_sherd","item.minecraft.skull_pottery_sherd","item.minecraft.snort_pottery_sherd","block.minecraft.copper_grate","block.minecraft.exposed_copper_grate","block.minecraft.weathered_copper_grate","block.minecraft.oxidized_copper_grate","block.minecraft.waxed_copper_grate","block.minecraft.waxed_exposed_copper_grate","block.minecraft.waxed_weathered_copper_grate","block.minecraft.waxed_oxidized_copper_grate","block.minecraft.copper_bulb","block.minecraft.exposed_copper_bulb","block.minecraft.weathered_copper_bulb","block.minecraft.oxidized_copper_bulb","block.minecraft.waxed_copper_bulb","block.minecraft.waxed_exposed_copper_bulb","block.minecraft.waxed_weathered_copper_bulb","block.minecraft.waxed_oxidized_copper_bulb","block.minecraft.copper_chest","block.minecraft.exposed_copper_chest","block.minecraft.weathered_copper_chest","block.minecraft.oxidized_copper_chest","block.minecraft.waxed_copper_chest","block.minecraft.waxed_exposed_copper_chest","block.minecraft.waxed_weathered_copper_chest","block.minecraft.waxed_oxidized_copper_chest","block.minecraft.copper_golem_statue","block.minecraft.exposed_copper_golem_statue","block.minecraft.weathered_copper_golem_statue","block.minecraft.oxidized_copper_golem_statue","block.minecraft.waxed_copper_golem_statue","block.minecraft.waxed_exposed_copper_golem_statue","block.minecraft.waxed_weathered_copper_golem_statue","block.minecraft.waxed_oxidized_copper_golem_statue","block.minecraft.trial_spawner","item.minecraft.trial_key","item.minecraft.ominous_trial_key","block.minecraft.vault","item.minecraft.ominous_bottle"]; +static ITEM_NAME_VALUES: [&str; 1504] = ["block.minecraft.air","block.minecraft.stone","block.minecraft.granite","block.minecraft.polished_granite","block.minecraft.diorite","block.minecraft.polished_diorite","block.minecraft.andesite","block.minecraft.polished_andesite","block.minecraft.deepslate","block.minecraft.cobbled_deepslate","block.minecraft.polished_deepslate","block.minecraft.calcite","block.minecraft.tuff","block.minecraft.tuff_slab","block.minecraft.tuff_stairs","block.minecraft.tuff_wall","block.minecraft.chiseled_tuff","block.minecraft.polished_tuff","block.minecraft.polished_tuff_slab","block.minecraft.polished_tuff_stairs","block.minecraft.polished_tuff_wall","block.minecraft.tuff_bricks","block.minecraft.tuff_brick_slab","block.minecraft.tuff_brick_stairs","block.minecraft.tuff_brick_wall","block.minecraft.chiseled_tuff_bricks","block.minecraft.dripstone_block","block.minecraft.grass_block","block.minecraft.dirt","block.minecraft.coarse_dirt","block.minecraft.podzol","block.minecraft.rooted_dirt","block.minecraft.mud","block.minecraft.crimson_nylium","block.minecraft.warped_nylium","block.minecraft.cobblestone","block.minecraft.oak_planks","block.minecraft.spruce_planks","block.minecraft.birch_planks","block.minecraft.jungle_planks","block.minecraft.acacia_planks","block.minecraft.cherry_planks","block.minecraft.dark_oak_planks","block.minecraft.pale_oak_planks","block.minecraft.mangrove_planks","block.minecraft.bamboo_planks","block.minecraft.crimson_planks","block.minecraft.warped_planks","block.minecraft.bamboo_mosaic","block.minecraft.oak_sapling","block.minecraft.spruce_sapling","block.minecraft.birch_sapling","block.minecraft.jungle_sapling","block.minecraft.acacia_sapling","block.minecraft.cherry_sapling","block.minecraft.dark_oak_sapling","block.minecraft.pale_oak_sapling","block.minecraft.mangrove_propagule","block.minecraft.bedrock","block.minecraft.sand","block.minecraft.suspicious_sand","block.minecraft.suspicious_gravel","block.minecraft.red_sand","block.minecraft.gravel","block.minecraft.coal_ore","block.minecraft.deepslate_coal_ore","block.minecraft.iron_ore","block.minecraft.deepslate_iron_ore","block.minecraft.copper_ore","block.minecraft.deepslate_copper_ore","block.minecraft.gold_ore","block.minecraft.deepslate_gold_ore","block.minecraft.redstone_ore","block.minecraft.deepslate_redstone_ore","block.minecraft.emerald_ore","block.minecraft.deepslate_emerald_ore","block.minecraft.lapis_ore","block.minecraft.deepslate_lapis_ore","block.minecraft.diamond_ore","block.minecraft.deepslate_diamond_ore","block.minecraft.nether_gold_ore","block.minecraft.nether_quartz_ore","block.minecraft.ancient_debris","block.minecraft.coal_block","block.minecraft.raw_iron_block","block.minecraft.raw_copper_block","block.minecraft.raw_gold_block","block.minecraft.heavy_core","block.minecraft.amethyst_block","block.minecraft.budding_amethyst","block.minecraft.iron_block","block.minecraft.copper_block","block.minecraft.gold_block","block.minecraft.diamond_block","block.minecraft.netherite_block","block.minecraft.exposed_copper","block.minecraft.weathered_copper","block.minecraft.oxidized_copper","block.minecraft.chiseled_copper","block.minecraft.exposed_chiseled_copper","block.minecraft.weathered_chiseled_copper","block.minecraft.oxidized_chiseled_copper","block.minecraft.cut_copper","block.minecraft.exposed_cut_copper","block.minecraft.weathered_cut_copper","block.minecraft.oxidized_cut_copper","block.minecraft.cut_copper_stairs","block.minecraft.exposed_cut_copper_stairs","block.minecraft.weathered_cut_copper_stairs","block.minecraft.oxidized_cut_copper_stairs","block.minecraft.cut_copper_slab","block.minecraft.exposed_cut_copper_slab","block.minecraft.weathered_cut_copper_slab","block.minecraft.oxidized_cut_copper_slab","block.minecraft.waxed_copper_block","block.minecraft.waxed_exposed_copper","block.minecraft.waxed_weathered_copper","block.minecraft.waxed_oxidized_copper","block.minecraft.waxed_chiseled_copper","block.minecraft.waxed_exposed_chiseled_copper","block.minecraft.waxed_weathered_chiseled_copper","block.minecraft.waxed_oxidized_chiseled_copper","block.minecraft.waxed_cut_copper","block.minecraft.waxed_exposed_cut_copper","block.minecraft.waxed_weathered_cut_copper","block.minecraft.waxed_oxidized_cut_copper","block.minecraft.waxed_cut_copper_stairs","block.minecraft.waxed_exposed_cut_copper_stairs","block.minecraft.waxed_weathered_cut_copper_stairs","block.minecraft.waxed_oxidized_cut_copper_stairs","block.minecraft.waxed_cut_copper_slab","block.minecraft.waxed_exposed_cut_copper_slab","block.minecraft.waxed_weathered_cut_copper_slab","block.minecraft.waxed_oxidized_cut_copper_slab","block.minecraft.oak_log","block.minecraft.spruce_log","block.minecraft.birch_log","block.minecraft.jungle_log","block.minecraft.acacia_log","block.minecraft.cherry_log","block.minecraft.pale_oak_log","block.minecraft.dark_oak_log","block.minecraft.mangrove_log","block.minecraft.mangrove_roots","block.minecraft.muddy_mangrove_roots","block.minecraft.crimson_stem","block.minecraft.warped_stem","block.minecraft.bamboo_block","block.minecraft.stripped_oak_log","block.minecraft.stripped_spruce_log","block.minecraft.stripped_birch_log","block.minecraft.stripped_jungle_log","block.minecraft.stripped_acacia_log","block.minecraft.stripped_cherry_log","block.minecraft.stripped_dark_oak_log","block.minecraft.stripped_pale_oak_log","block.minecraft.stripped_mangrove_log","block.minecraft.stripped_crimson_stem","block.minecraft.stripped_warped_stem","block.minecraft.stripped_oak_wood","block.minecraft.stripped_spruce_wood","block.minecraft.stripped_birch_wood","block.minecraft.stripped_jungle_wood","block.minecraft.stripped_acacia_wood","block.minecraft.stripped_cherry_wood","block.minecraft.stripped_dark_oak_wood","block.minecraft.stripped_pale_oak_wood","block.minecraft.stripped_mangrove_wood","block.minecraft.stripped_crimson_hyphae","block.minecraft.stripped_warped_hyphae","block.minecraft.stripped_bamboo_block","block.minecraft.oak_wood","block.minecraft.spruce_wood","block.minecraft.birch_wood","block.minecraft.jungle_wood","block.minecraft.acacia_wood","block.minecraft.cherry_wood","block.minecraft.pale_oak_wood","block.minecraft.dark_oak_wood","block.minecraft.mangrove_wood","block.minecraft.crimson_hyphae","block.minecraft.warped_hyphae","block.minecraft.oak_leaves","block.minecraft.spruce_leaves","block.minecraft.birch_leaves","block.minecraft.jungle_leaves","block.minecraft.acacia_leaves","block.minecraft.cherry_leaves","block.minecraft.dark_oak_leaves","block.minecraft.pale_oak_leaves","block.minecraft.mangrove_leaves","block.minecraft.azalea_leaves","block.minecraft.flowering_azalea_leaves","block.minecraft.sponge","block.minecraft.wet_sponge","block.minecraft.glass","block.minecraft.tinted_glass","block.minecraft.lapis_block","block.minecraft.sandstone","block.minecraft.chiseled_sandstone","block.minecraft.cut_sandstone","block.minecraft.cobweb","block.minecraft.short_grass","block.minecraft.fern","block.minecraft.bush","block.minecraft.azalea","block.minecraft.flowering_azalea","block.minecraft.dead_bush","block.minecraft.firefly_bush","block.minecraft.short_dry_grass","block.minecraft.tall_dry_grass","block.minecraft.seagrass","block.minecraft.sea_pickle","block.minecraft.white_wool","block.minecraft.orange_wool","block.minecraft.magenta_wool","block.minecraft.light_blue_wool","block.minecraft.yellow_wool","block.minecraft.lime_wool","block.minecraft.pink_wool","block.minecraft.gray_wool","block.minecraft.light_gray_wool","block.minecraft.cyan_wool","block.minecraft.purple_wool","block.minecraft.blue_wool","block.minecraft.brown_wool","block.minecraft.green_wool","block.minecraft.red_wool","block.minecraft.black_wool","block.minecraft.dandelion","block.minecraft.open_eyeblossom","block.minecraft.closed_eyeblossom","block.minecraft.poppy","block.minecraft.blue_orchid","block.minecraft.allium","block.minecraft.azure_bluet","block.minecraft.red_tulip","block.minecraft.orange_tulip","block.minecraft.white_tulip","block.minecraft.pink_tulip","block.minecraft.oxeye_daisy","block.minecraft.cornflower","block.minecraft.lily_of_the_valley","block.minecraft.wither_rose","block.minecraft.torchflower","block.minecraft.pitcher_plant","block.minecraft.spore_blossom","block.minecraft.brown_mushroom","block.minecraft.red_mushroom","block.minecraft.crimson_fungus","block.minecraft.warped_fungus","block.minecraft.crimson_roots","block.minecraft.warped_roots","block.minecraft.nether_sprouts","block.minecraft.weeping_vines","block.minecraft.twisting_vines","block.minecraft.sugar_cane","block.minecraft.kelp","block.minecraft.pink_petals","block.minecraft.wildflowers","block.minecraft.leaf_litter","block.minecraft.moss_carpet","block.minecraft.moss_block","block.minecraft.pale_moss_carpet","block.minecraft.pale_hanging_moss","block.minecraft.pale_moss_block","block.minecraft.hanging_roots","block.minecraft.big_dripleaf","block.minecraft.small_dripleaf","block.minecraft.bamboo","block.minecraft.oak_slab","block.minecraft.spruce_slab","block.minecraft.birch_slab","block.minecraft.jungle_slab","block.minecraft.acacia_slab","block.minecraft.cherry_slab","block.minecraft.dark_oak_slab","block.minecraft.pale_oak_slab","block.minecraft.mangrove_slab","block.minecraft.bamboo_slab","block.minecraft.bamboo_mosaic_slab","block.minecraft.crimson_slab","block.minecraft.warped_slab","block.minecraft.stone_slab","block.minecraft.smooth_stone_slab","block.minecraft.sandstone_slab","block.minecraft.cut_sandstone_slab","block.minecraft.petrified_oak_slab","block.minecraft.cobblestone_slab","block.minecraft.brick_slab","block.minecraft.stone_brick_slab","block.minecraft.mud_brick_slab","block.minecraft.nether_brick_slab","block.minecraft.quartz_slab","block.minecraft.red_sandstone_slab","block.minecraft.cut_red_sandstone_slab","block.minecraft.purpur_slab","block.minecraft.prismarine_slab","block.minecraft.prismarine_brick_slab","block.minecraft.dark_prismarine_slab","block.minecraft.smooth_quartz","block.minecraft.smooth_red_sandstone","block.minecraft.smooth_sandstone","block.minecraft.smooth_stone","block.minecraft.bricks","block.minecraft.acacia_shelf","block.minecraft.bamboo_shelf","block.minecraft.birch_shelf","block.minecraft.cherry_shelf","block.minecraft.crimson_shelf","block.minecraft.dark_oak_shelf","block.minecraft.jungle_shelf","block.minecraft.mangrove_shelf","block.minecraft.oak_shelf","block.minecraft.pale_oak_shelf","block.minecraft.spruce_shelf","block.minecraft.warped_shelf","block.minecraft.bookshelf","block.minecraft.chiseled_bookshelf","block.minecraft.decorated_pot","block.minecraft.mossy_cobblestone","block.minecraft.obsidian","block.minecraft.torch","block.minecraft.end_rod","block.minecraft.chorus_plant","block.minecraft.chorus_flower","block.minecraft.purpur_block","block.minecraft.purpur_pillar","block.minecraft.purpur_stairs","block.minecraft.spawner","block.minecraft.creaking_heart","block.minecraft.chest","block.minecraft.crafting_table","block.minecraft.farmland","block.minecraft.furnace","block.minecraft.ladder","block.minecraft.cobblestone_stairs","block.minecraft.snow","block.minecraft.ice","block.minecraft.snow_block","block.minecraft.cactus","block.minecraft.cactus_flower","block.minecraft.clay","block.minecraft.jukebox","block.minecraft.oak_fence","block.minecraft.spruce_fence","block.minecraft.birch_fence","block.minecraft.jungle_fence","block.minecraft.acacia_fence","block.minecraft.cherry_fence","block.minecraft.dark_oak_fence","block.minecraft.pale_oak_fence","block.minecraft.mangrove_fence","block.minecraft.bamboo_fence","block.minecraft.crimson_fence","block.minecraft.warped_fence","block.minecraft.pumpkin","block.minecraft.carved_pumpkin","block.minecraft.jack_o_lantern","block.minecraft.netherrack","block.minecraft.soul_sand","block.minecraft.soul_soil","block.minecraft.basalt","block.minecraft.polished_basalt","block.minecraft.smooth_basalt","block.minecraft.soul_torch","block.minecraft.copper_torch","block.minecraft.glowstone","block.minecraft.infested_stone","block.minecraft.infested_cobblestone","block.minecraft.infested_stone_bricks","block.minecraft.infested_mossy_stone_bricks","block.minecraft.infested_cracked_stone_bricks","block.minecraft.infested_chiseled_stone_bricks","block.minecraft.infested_deepslate","block.minecraft.stone_bricks","block.minecraft.mossy_stone_bricks","block.minecraft.cracked_stone_bricks","block.minecraft.chiseled_stone_bricks","block.minecraft.packed_mud","block.minecraft.mud_bricks","block.minecraft.deepslate_bricks","block.minecraft.cracked_deepslate_bricks","block.minecraft.deepslate_tiles","block.minecraft.cracked_deepslate_tiles","block.minecraft.chiseled_deepslate","block.minecraft.reinforced_deepslate","block.minecraft.brown_mushroom_block","block.minecraft.red_mushroom_block","block.minecraft.mushroom_stem","block.minecraft.iron_bars","block.minecraft.copper_bars","block.minecraft.exposed_copper_bars","block.minecraft.weathered_copper_bars","block.minecraft.oxidized_copper_bars","block.minecraft.waxed_copper_bars","block.minecraft.waxed_exposed_copper_bars","block.minecraft.waxed_weathered_copper_bars","block.minecraft.waxed_oxidized_copper_bars","block.minecraft.iron_chain","block.minecraft.copper_chain","block.minecraft.exposed_copper_chain","block.minecraft.weathered_copper_chain","block.minecraft.oxidized_copper_chain","block.minecraft.waxed_copper_chain","block.minecraft.waxed_exposed_copper_chain","block.minecraft.waxed_weathered_copper_chain","block.minecraft.waxed_oxidized_copper_chain","block.minecraft.glass_pane","block.minecraft.melon","block.minecraft.vine","block.minecraft.glow_lichen","item.minecraft.resin_clump","block.minecraft.resin_block","block.minecraft.resin_bricks","block.minecraft.resin_brick_stairs","block.minecraft.resin_brick_slab","block.minecraft.resin_brick_wall","block.minecraft.chiseled_resin_bricks","block.minecraft.brick_stairs","block.minecraft.stone_brick_stairs","block.minecraft.mud_brick_stairs","block.minecraft.mycelium","block.minecraft.lily_pad","block.minecraft.nether_bricks","block.minecraft.cracked_nether_bricks","block.minecraft.chiseled_nether_bricks","block.minecraft.nether_brick_fence","block.minecraft.nether_brick_stairs","block.minecraft.sculk","block.minecraft.sculk_vein","block.minecraft.sculk_catalyst","block.minecraft.sculk_shrieker","block.minecraft.enchanting_table","block.minecraft.end_portal_frame","block.minecraft.end_stone","block.minecraft.end_stone_bricks","block.minecraft.dragon_egg","block.minecraft.sandstone_stairs","block.minecraft.ender_chest","block.minecraft.emerald_block","block.minecraft.oak_stairs","block.minecraft.spruce_stairs","block.minecraft.birch_stairs","block.minecraft.jungle_stairs","block.minecraft.acacia_stairs","block.minecraft.cherry_stairs","block.minecraft.dark_oak_stairs","block.minecraft.pale_oak_stairs","block.minecraft.mangrove_stairs","block.minecraft.bamboo_stairs","block.minecraft.bamboo_mosaic_stairs","block.minecraft.crimson_stairs","block.minecraft.warped_stairs","block.minecraft.command_block","block.minecraft.beacon","block.minecraft.cobblestone_wall","block.minecraft.mossy_cobblestone_wall","block.minecraft.brick_wall","block.minecraft.prismarine_wall","block.minecraft.red_sandstone_wall","block.minecraft.mossy_stone_brick_wall","block.minecraft.granite_wall","block.minecraft.stone_brick_wall","block.minecraft.mud_brick_wall","block.minecraft.nether_brick_wall","block.minecraft.andesite_wall","block.minecraft.red_nether_brick_wall","block.minecraft.sandstone_wall","block.minecraft.end_stone_brick_wall","block.minecraft.diorite_wall","block.minecraft.blackstone_wall","block.minecraft.polished_blackstone_wall","block.minecraft.polished_blackstone_brick_wall","block.minecraft.cobbled_deepslate_wall","block.minecraft.polished_deepslate_wall","block.minecraft.deepslate_brick_wall","block.minecraft.deepslate_tile_wall","block.minecraft.anvil","block.minecraft.chipped_anvil","block.minecraft.damaged_anvil","block.minecraft.chiseled_quartz_block","block.minecraft.quartz_block","block.minecraft.quartz_bricks","block.minecraft.quartz_pillar","block.minecraft.quartz_stairs","block.minecraft.white_terracotta","block.minecraft.orange_terracotta","block.minecraft.magenta_terracotta","block.minecraft.light_blue_terracotta","block.minecraft.yellow_terracotta","block.minecraft.lime_terracotta","block.minecraft.pink_terracotta","block.minecraft.gray_terracotta","block.minecraft.light_gray_terracotta","block.minecraft.cyan_terracotta","block.minecraft.purple_terracotta","block.minecraft.blue_terracotta","block.minecraft.brown_terracotta","block.minecraft.green_terracotta","block.minecraft.red_terracotta","block.minecraft.black_terracotta","block.minecraft.barrier","block.minecraft.light","block.minecraft.hay_block","block.minecraft.white_carpet","block.minecraft.orange_carpet","block.minecraft.magenta_carpet","block.minecraft.light_blue_carpet","block.minecraft.yellow_carpet","block.minecraft.lime_carpet","block.minecraft.pink_carpet","block.minecraft.gray_carpet","block.minecraft.light_gray_carpet","block.minecraft.cyan_carpet","block.minecraft.purple_carpet","block.minecraft.blue_carpet","block.minecraft.brown_carpet","block.minecraft.green_carpet","block.minecraft.red_carpet","block.minecraft.black_carpet","block.minecraft.terracotta","block.minecraft.packed_ice","block.minecraft.dirt_path","block.minecraft.sunflower","block.minecraft.lilac","block.minecraft.rose_bush","block.minecraft.peony","block.minecraft.tall_grass","block.minecraft.large_fern","block.minecraft.white_stained_glass","block.minecraft.orange_stained_glass","block.minecraft.magenta_stained_glass","block.minecraft.light_blue_stained_glass","block.minecraft.yellow_stained_glass","block.minecraft.lime_stained_glass","block.minecraft.pink_stained_glass","block.minecraft.gray_stained_glass","block.minecraft.light_gray_stained_glass","block.minecraft.cyan_stained_glass","block.minecraft.purple_stained_glass","block.minecraft.blue_stained_glass","block.minecraft.brown_stained_glass","block.minecraft.green_stained_glass","block.minecraft.red_stained_glass","block.minecraft.black_stained_glass","block.minecraft.white_stained_glass_pane","block.minecraft.orange_stained_glass_pane","block.minecraft.magenta_stained_glass_pane","block.minecraft.light_blue_stained_glass_pane","block.minecraft.yellow_stained_glass_pane","block.minecraft.lime_stained_glass_pane","block.minecraft.pink_stained_glass_pane","block.minecraft.gray_stained_glass_pane","block.minecraft.light_gray_stained_glass_pane","block.minecraft.cyan_stained_glass_pane","block.minecraft.purple_stained_glass_pane","block.minecraft.blue_stained_glass_pane","block.minecraft.brown_stained_glass_pane","block.minecraft.green_stained_glass_pane","block.minecraft.red_stained_glass_pane","block.minecraft.black_stained_glass_pane","block.minecraft.prismarine","block.minecraft.prismarine_bricks","block.minecraft.dark_prismarine","block.minecraft.prismarine_stairs","block.minecraft.prismarine_brick_stairs","block.minecraft.dark_prismarine_stairs","block.minecraft.sea_lantern","block.minecraft.red_sandstone","block.minecraft.chiseled_red_sandstone","block.minecraft.cut_red_sandstone","block.minecraft.red_sandstone_stairs","block.minecraft.repeating_command_block","block.minecraft.chain_command_block","block.minecraft.magma_block","block.minecraft.nether_wart_block","block.minecraft.warped_wart_block","block.minecraft.red_nether_bricks","block.minecraft.bone_block","block.minecraft.structure_void","block.minecraft.shulker_box","block.minecraft.white_shulker_box","block.minecraft.orange_shulker_box","block.minecraft.magenta_shulker_box","block.minecraft.light_blue_shulker_box","block.minecraft.yellow_shulker_box","block.minecraft.lime_shulker_box","block.minecraft.pink_shulker_box","block.minecraft.gray_shulker_box","block.minecraft.light_gray_shulker_box","block.minecraft.cyan_shulker_box","block.minecraft.purple_shulker_box","block.minecraft.blue_shulker_box","block.minecraft.brown_shulker_box","block.minecraft.green_shulker_box","block.minecraft.red_shulker_box","block.minecraft.black_shulker_box","block.minecraft.white_glazed_terracotta","block.minecraft.orange_glazed_terracotta","block.minecraft.magenta_glazed_terracotta","block.minecraft.light_blue_glazed_terracotta","block.minecraft.yellow_glazed_terracotta","block.minecraft.lime_glazed_terracotta","block.minecraft.pink_glazed_terracotta","block.minecraft.gray_glazed_terracotta","block.minecraft.light_gray_glazed_terracotta","block.minecraft.cyan_glazed_terracotta","block.minecraft.purple_glazed_terracotta","block.minecraft.blue_glazed_terracotta","block.minecraft.brown_glazed_terracotta","block.minecraft.green_glazed_terracotta","block.minecraft.red_glazed_terracotta","block.minecraft.black_glazed_terracotta","block.minecraft.white_concrete","block.minecraft.orange_concrete","block.minecraft.magenta_concrete","block.minecraft.light_blue_concrete","block.minecraft.yellow_concrete","block.minecraft.lime_concrete","block.minecraft.pink_concrete","block.minecraft.gray_concrete","block.minecraft.light_gray_concrete","block.minecraft.cyan_concrete","block.minecraft.purple_concrete","block.minecraft.blue_concrete","block.minecraft.brown_concrete","block.minecraft.green_concrete","block.minecraft.red_concrete","block.minecraft.black_concrete","block.minecraft.white_concrete_powder","block.minecraft.orange_concrete_powder","block.minecraft.magenta_concrete_powder","block.minecraft.light_blue_concrete_powder","block.minecraft.yellow_concrete_powder","block.minecraft.lime_concrete_powder","block.minecraft.pink_concrete_powder","block.minecraft.gray_concrete_powder","block.minecraft.light_gray_concrete_powder","block.minecraft.cyan_concrete_powder","block.minecraft.purple_concrete_powder","block.minecraft.blue_concrete_powder","block.minecraft.brown_concrete_powder","block.minecraft.green_concrete_powder","block.minecraft.red_concrete_powder","block.minecraft.black_concrete_powder","block.minecraft.turtle_egg","block.minecraft.sniffer_egg","block.minecraft.dried_ghast","block.minecraft.dead_tube_coral_block","block.minecraft.dead_brain_coral_block","block.minecraft.dead_bubble_coral_block","block.minecraft.dead_fire_coral_block","block.minecraft.dead_horn_coral_block","block.minecraft.tube_coral_block","block.minecraft.brain_coral_block","block.minecraft.bubble_coral_block","block.minecraft.fire_coral_block","block.minecraft.horn_coral_block","block.minecraft.tube_coral","block.minecraft.brain_coral","block.minecraft.bubble_coral","block.minecraft.fire_coral","block.minecraft.horn_coral","block.minecraft.dead_brain_coral","block.minecraft.dead_bubble_coral","block.minecraft.dead_fire_coral","block.minecraft.dead_horn_coral","block.minecraft.dead_tube_coral","block.minecraft.tube_coral_fan","block.minecraft.brain_coral_fan","block.minecraft.bubble_coral_fan","block.minecraft.fire_coral_fan","block.minecraft.horn_coral_fan","block.minecraft.dead_tube_coral_fan","block.minecraft.dead_brain_coral_fan","block.minecraft.dead_bubble_coral_fan","block.minecraft.dead_fire_coral_fan","block.minecraft.dead_horn_coral_fan","block.minecraft.blue_ice","block.minecraft.conduit","block.minecraft.polished_granite_stairs","block.minecraft.smooth_red_sandstone_stairs","block.minecraft.mossy_stone_brick_stairs","block.minecraft.polished_diorite_stairs","block.minecraft.mossy_cobblestone_stairs","block.minecraft.end_stone_brick_stairs","block.minecraft.stone_stairs","block.minecraft.smooth_sandstone_stairs","block.minecraft.smooth_quartz_stairs","block.minecraft.granite_stairs","block.minecraft.andesite_stairs","block.minecraft.red_nether_brick_stairs","block.minecraft.polished_andesite_stairs","block.minecraft.diorite_stairs","block.minecraft.cobbled_deepslate_stairs","block.minecraft.polished_deepslate_stairs","block.minecraft.deepslate_brick_stairs","block.minecraft.deepslate_tile_stairs","block.minecraft.polished_granite_slab","block.minecraft.smooth_red_sandstone_slab","block.minecraft.mossy_stone_brick_slab","block.minecraft.polished_diorite_slab","block.minecraft.mossy_cobblestone_slab","block.minecraft.end_stone_brick_slab","block.minecraft.smooth_sandstone_slab","block.minecraft.smooth_quartz_slab","block.minecraft.granite_slab","block.minecraft.andesite_slab","block.minecraft.red_nether_brick_slab","block.minecraft.polished_andesite_slab","block.minecraft.diorite_slab","block.minecraft.cobbled_deepslate_slab","block.minecraft.polished_deepslate_slab","block.minecraft.deepslate_brick_slab","block.minecraft.deepslate_tile_slab","block.minecraft.scaffolding","item.minecraft.redstone","block.minecraft.redstone_torch","block.minecraft.redstone_block","block.minecraft.repeater","block.minecraft.comparator","block.minecraft.piston","block.minecraft.sticky_piston","block.minecraft.slime_block","block.minecraft.honey_block","block.minecraft.observer","block.minecraft.hopper","block.minecraft.dispenser","block.minecraft.dropper","block.minecraft.lectern","block.minecraft.target","block.minecraft.lever","block.minecraft.lightning_rod","block.minecraft.exposed_lightning_rod","block.minecraft.weathered_lightning_rod","block.minecraft.oxidized_lightning_rod","block.minecraft.waxed_lightning_rod","block.minecraft.waxed_exposed_lightning_rod","block.minecraft.waxed_weathered_lightning_rod","block.minecraft.waxed_oxidized_lightning_rod","block.minecraft.daylight_detector","block.minecraft.sculk_sensor","block.minecraft.calibrated_sculk_sensor","block.minecraft.tripwire_hook","block.minecraft.trapped_chest","block.minecraft.tnt","block.minecraft.redstone_lamp","block.minecraft.note_block","block.minecraft.stone_button","block.minecraft.polished_blackstone_button","block.minecraft.oak_button","block.minecraft.spruce_button","block.minecraft.birch_button","block.minecraft.jungle_button","block.minecraft.acacia_button","block.minecraft.cherry_button","block.minecraft.dark_oak_button","block.minecraft.pale_oak_button","block.minecraft.mangrove_button","block.minecraft.bamboo_button","block.minecraft.crimson_button","block.minecraft.warped_button","block.minecraft.stone_pressure_plate","block.minecraft.polished_blackstone_pressure_plate","block.minecraft.light_weighted_pressure_plate","block.minecraft.heavy_weighted_pressure_plate","block.minecraft.oak_pressure_plate","block.minecraft.spruce_pressure_plate","block.minecraft.birch_pressure_plate","block.minecraft.jungle_pressure_plate","block.minecraft.acacia_pressure_plate","block.minecraft.cherry_pressure_plate","block.minecraft.dark_oak_pressure_plate","block.minecraft.pale_oak_pressure_plate","block.minecraft.mangrove_pressure_plate","block.minecraft.bamboo_pressure_plate","block.minecraft.crimson_pressure_plate","block.minecraft.warped_pressure_plate","block.minecraft.iron_door","block.minecraft.oak_door","block.minecraft.spruce_door","block.minecraft.birch_door","block.minecraft.jungle_door","block.minecraft.acacia_door","block.minecraft.cherry_door","block.minecraft.dark_oak_door","block.minecraft.pale_oak_door","block.minecraft.mangrove_door","block.minecraft.bamboo_door","block.minecraft.crimson_door","block.minecraft.warped_door","block.minecraft.copper_door","block.minecraft.exposed_copper_door","block.minecraft.weathered_copper_door","block.minecraft.oxidized_copper_door","block.minecraft.waxed_copper_door","block.minecraft.waxed_exposed_copper_door","block.minecraft.waxed_weathered_copper_door","block.minecraft.waxed_oxidized_copper_door","block.minecraft.iron_trapdoor","block.minecraft.oak_trapdoor","block.minecraft.spruce_trapdoor","block.minecraft.birch_trapdoor","block.minecraft.jungle_trapdoor","block.minecraft.acacia_trapdoor","block.minecraft.cherry_trapdoor","block.minecraft.dark_oak_trapdoor","block.minecraft.pale_oak_trapdoor","block.minecraft.mangrove_trapdoor","block.minecraft.bamboo_trapdoor","block.minecraft.crimson_trapdoor","block.minecraft.warped_trapdoor","block.minecraft.copper_trapdoor","block.minecraft.exposed_copper_trapdoor","block.minecraft.weathered_copper_trapdoor","block.minecraft.oxidized_copper_trapdoor","block.minecraft.waxed_copper_trapdoor","block.minecraft.waxed_exposed_copper_trapdoor","block.minecraft.waxed_weathered_copper_trapdoor","block.minecraft.waxed_oxidized_copper_trapdoor","block.minecraft.oak_fence_gate","block.minecraft.spruce_fence_gate","block.minecraft.birch_fence_gate","block.minecraft.jungle_fence_gate","block.minecraft.acacia_fence_gate","block.minecraft.cherry_fence_gate","block.minecraft.dark_oak_fence_gate","block.minecraft.pale_oak_fence_gate","block.minecraft.mangrove_fence_gate","block.minecraft.bamboo_fence_gate","block.minecraft.crimson_fence_gate","block.minecraft.warped_fence_gate","block.minecraft.powered_rail","block.minecraft.detector_rail","block.minecraft.rail","block.minecraft.activator_rail","item.minecraft.saddle","item.minecraft.white_harness","item.minecraft.orange_harness","item.minecraft.magenta_harness","item.minecraft.light_blue_harness","item.minecraft.yellow_harness","item.minecraft.lime_harness","item.minecraft.pink_harness","item.minecraft.gray_harness","item.minecraft.light_gray_harness","item.minecraft.cyan_harness","item.minecraft.purple_harness","item.minecraft.blue_harness","item.minecraft.brown_harness","item.minecraft.green_harness","item.minecraft.red_harness","item.minecraft.black_harness","item.minecraft.minecart","item.minecraft.chest_minecart","item.minecraft.furnace_minecart","item.minecraft.tnt_minecart","item.minecraft.hopper_minecart","item.minecraft.carrot_on_a_stick","item.minecraft.warped_fungus_on_a_stick","item.minecraft.phantom_membrane","item.minecraft.elytra","item.minecraft.oak_boat","item.minecraft.oak_chest_boat","item.minecraft.spruce_boat","item.minecraft.spruce_chest_boat","item.minecraft.birch_boat","item.minecraft.birch_chest_boat","item.minecraft.jungle_boat","item.minecraft.jungle_chest_boat","item.minecraft.acacia_boat","item.minecraft.acacia_chest_boat","item.minecraft.cherry_boat","item.minecraft.cherry_chest_boat","item.minecraft.dark_oak_boat","item.minecraft.dark_oak_chest_boat","item.minecraft.pale_oak_boat","item.minecraft.pale_oak_chest_boat","item.minecraft.mangrove_boat","item.minecraft.mangrove_chest_boat","item.minecraft.bamboo_raft","item.minecraft.bamboo_chest_raft","block.minecraft.structure_block","block.minecraft.jigsaw","block.minecraft.test_block","block.minecraft.test_instance_block","item.minecraft.turtle_helmet","item.minecraft.turtle_scute","item.minecraft.armadillo_scute","item.minecraft.wolf_armor","item.minecraft.flint_and_steel","item.minecraft.bowl","item.minecraft.apple","item.minecraft.bow","item.minecraft.arrow","item.minecraft.coal","item.minecraft.charcoal","item.minecraft.diamond","item.minecraft.emerald","item.minecraft.lapis_lazuli","item.minecraft.quartz","item.minecraft.amethyst_shard","item.minecraft.raw_iron","item.minecraft.iron_ingot","item.minecraft.raw_copper","item.minecraft.copper_ingot","item.minecraft.raw_gold","item.minecraft.gold_ingot","item.minecraft.netherite_ingot","item.minecraft.netherite_scrap","item.minecraft.wooden_sword","item.minecraft.wooden_shovel","item.minecraft.wooden_pickaxe","item.minecraft.wooden_axe","item.minecraft.wooden_hoe","item.minecraft.copper_sword","item.minecraft.copper_shovel","item.minecraft.copper_pickaxe","item.minecraft.copper_axe","item.minecraft.copper_hoe","item.minecraft.stone_sword","item.minecraft.stone_shovel","item.minecraft.stone_pickaxe","item.minecraft.stone_axe","item.minecraft.stone_hoe","item.minecraft.golden_sword","item.minecraft.golden_shovel","item.minecraft.golden_pickaxe","item.minecraft.golden_axe","item.minecraft.golden_hoe","item.minecraft.iron_sword","item.minecraft.iron_shovel","item.minecraft.iron_pickaxe","item.minecraft.iron_axe","item.minecraft.iron_hoe","item.minecraft.diamond_sword","item.minecraft.diamond_shovel","item.minecraft.diamond_pickaxe","item.minecraft.diamond_axe","item.minecraft.diamond_hoe","item.minecraft.netherite_sword","item.minecraft.netherite_shovel","item.minecraft.netherite_pickaxe","item.minecraft.netherite_axe","item.minecraft.netherite_hoe","item.minecraft.stick","item.minecraft.mushroom_stew","item.minecraft.string","item.minecraft.feather","item.minecraft.gunpowder","item.minecraft.wheat_seeds","item.minecraft.wheat","item.minecraft.bread","item.minecraft.leather_helmet","item.minecraft.leather_chestplate","item.minecraft.leather_leggings","item.minecraft.leather_boots","item.minecraft.copper_helmet","item.minecraft.copper_chestplate","item.minecraft.copper_leggings","item.minecraft.copper_boots","item.minecraft.chainmail_helmet","item.minecraft.chainmail_chestplate","item.minecraft.chainmail_leggings","item.minecraft.chainmail_boots","item.minecraft.iron_helmet","item.minecraft.iron_chestplate","item.minecraft.iron_leggings","item.minecraft.iron_boots","item.minecraft.diamond_helmet","item.minecraft.diamond_chestplate","item.minecraft.diamond_leggings","item.minecraft.diamond_boots","item.minecraft.golden_helmet","item.minecraft.golden_chestplate","item.minecraft.golden_leggings","item.minecraft.golden_boots","item.minecraft.netherite_helmet","item.minecraft.netherite_chestplate","item.minecraft.netherite_leggings","item.minecraft.netherite_boots","item.minecraft.flint","item.minecraft.porkchop","item.minecraft.cooked_porkchop","item.minecraft.painting","item.minecraft.golden_apple","item.minecraft.enchanted_golden_apple","block.minecraft.oak_sign","block.minecraft.spruce_sign","block.minecraft.birch_sign","block.minecraft.jungle_sign","block.minecraft.acacia_sign","block.minecraft.cherry_sign","block.minecraft.dark_oak_sign","block.minecraft.pale_oak_sign","block.minecraft.mangrove_sign","block.minecraft.bamboo_sign","block.minecraft.crimson_sign","block.minecraft.warped_sign","block.minecraft.oak_hanging_sign","block.minecraft.spruce_hanging_sign","block.minecraft.birch_hanging_sign","block.minecraft.jungle_hanging_sign","block.minecraft.acacia_hanging_sign","block.minecraft.cherry_hanging_sign","block.minecraft.dark_oak_hanging_sign","block.minecraft.pale_oak_hanging_sign","block.minecraft.mangrove_hanging_sign","block.minecraft.bamboo_hanging_sign","block.minecraft.crimson_hanging_sign","block.minecraft.warped_hanging_sign","item.minecraft.bucket","item.minecraft.water_bucket","item.minecraft.lava_bucket","item.minecraft.powder_snow_bucket","item.minecraft.snowball","item.minecraft.leather","item.minecraft.milk_bucket","item.minecraft.pufferfish_bucket","item.minecraft.salmon_bucket","item.minecraft.cod_bucket","item.minecraft.tropical_fish_bucket","item.minecraft.axolotl_bucket","item.minecraft.tadpole_bucket","item.minecraft.brick","item.minecraft.clay_ball","block.minecraft.dried_kelp_block","item.minecraft.paper","item.minecraft.book","item.minecraft.slime_ball","item.minecraft.egg","item.minecraft.blue_egg","item.minecraft.brown_egg","item.minecraft.compass","item.minecraft.recovery_compass","item.minecraft.bundle","item.minecraft.white_bundle","item.minecraft.orange_bundle","item.minecraft.magenta_bundle","item.minecraft.light_blue_bundle","item.minecraft.yellow_bundle","item.minecraft.lime_bundle","item.minecraft.pink_bundle","item.minecraft.gray_bundle","item.minecraft.light_gray_bundle","item.minecraft.cyan_bundle","item.minecraft.purple_bundle","item.minecraft.blue_bundle","item.minecraft.brown_bundle","item.minecraft.green_bundle","item.minecraft.red_bundle","item.minecraft.black_bundle","item.minecraft.fishing_rod","item.minecraft.clock","item.minecraft.spyglass","item.minecraft.glowstone_dust","item.minecraft.cod","item.minecraft.salmon","item.minecraft.tropical_fish","item.minecraft.pufferfish","item.minecraft.cooked_cod","item.minecraft.cooked_salmon","item.minecraft.ink_sac","item.minecraft.glow_ink_sac","item.minecraft.cocoa_beans","item.minecraft.white_dye","item.minecraft.orange_dye","item.minecraft.magenta_dye","item.minecraft.light_blue_dye","item.minecraft.yellow_dye","item.minecraft.lime_dye","item.minecraft.pink_dye","item.minecraft.gray_dye","item.minecraft.light_gray_dye","item.minecraft.cyan_dye","item.minecraft.purple_dye","item.minecraft.blue_dye","item.minecraft.brown_dye","item.minecraft.green_dye","item.minecraft.red_dye","item.minecraft.black_dye","item.minecraft.bone_meal","item.minecraft.bone","item.minecraft.sugar","block.minecraft.cake","block.minecraft.white_bed","block.minecraft.orange_bed","block.minecraft.magenta_bed","block.minecraft.light_blue_bed","block.minecraft.yellow_bed","block.minecraft.lime_bed","block.minecraft.pink_bed","block.minecraft.gray_bed","block.minecraft.light_gray_bed","block.minecraft.cyan_bed","block.minecraft.purple_bed","block.minecraft.blue_bed","block.minecraft.brown_bed","block.minecraft.green_bed","block.minecraft.red_bed","block.minecraft.black_bed","item.minecraft.cookie","block.minecraft.crafter","item.minecraft.filled_map","item.minecraft.shears","item.minecraft.melon_slice","item.minecraft.dried_kelp","item.minecraft.pumpkin_seeds","item.minecraft.melon_seeds","item.minecraft.beef","item.minecraft.cooked_beef","item.minecraft.chicken","item.minecraft.cooked_chicken","item.minecraft.rotten_flesh","item.minecraft.ender_pearl","item.minecraft.blaze_rod","item.minecraft.ghast_tear","item.minecraft.gold_nugget","item.minecraft.nether_wart","item.minecraft.glass_bottle","item.minecraft.potion","item.minecraft.spider_eye","item.minecraft.fermented_spider_eye","item.minecraft.blaze_powder","item.minecraft.magma_cream","block.minecraft.brewing_stand","block.minecraft.cauldron","item.minecraft.ender_eye","item.minecraft.glistering_melon_slice","item.minecraft.armadillo_spawn_egg","item.minecraft.allay_spawn_egg","item.minecraft.axolotl_spawn_egg","item.minecraft.bat_spawn_egg","item.minecraft.bee_spawn_egg","item.minecraft.blaze_spawn_egg","item.minecraft.bogged_spawn_egg","item.minecraft.breeze_spawn_egg","item.minecraft.cat_spawn_egg","item.minecraft.camel_spawn_egg","item.minecraft.camel_husk_spawn_egg","item.minecraft.cave_spider_spawn_egg","item.minecraft.chicken_spawn_egg","item.minecraft.cod_spawn_egg","item.minecraft.copper_golem_spawn_egg","item.minecraft.cow_spawn_egg","item.minecraft.creeper_spawn_egg","item.minecraft.dolphin_spawn_egg","item.minecraft.donkey_spawn_egg","item.minecraft.drowned_spawn_egg","item.minecraft.elder_guardian_spawn_egg","item.minecraft.ender_dragon_spawn_egg","item.minecraft.enderman_spawn_egg","item.minecraft.endermite_spawn_egg","item.minecraft.evoker_spawn_egg","item.minecraft.fox_spawn_egg","item.minecraft.frog_spawn_egg","item.minecraft.ghast_spawn_egg","item.minecraft.happy_ghast_spawn_egg","item.minecraft.glow_squid_spawn_egg","item.minecraft.goat_spawn_egg","item.minecraft.guardian_spawn_egg","item.minecraft.hoglin_spawn_egg","item.minecraft.horse_spawn_egg","item.minecraft.husk_spawn_egg","item.minecraft.iron_golem_spawn_egg","item.minecraft.llama_spawn_egg","item.minecraft.magma_cube_spawn_egg","item.minecraft.mooshroom_spawn_egg","item.minecraft.mule_spawn_egg","item.minecraft.nautilus_spawn_egg","item.minecraft.ocelot_spawn_egg","item.minecraft.panda_spawn_egg","item.minecraft.parched_spawn_egg","item.minecraft.parrot_spawn_egg","item.minecraft.phantom_spawn_egg","item.minecraft.pig_spawn_egg","item.minecraft.piglin_spawn_egg","item.minecraft.piglin_brute_spawn_egg","item.minecraft.pillager_spawn_egg","item.minecraft.polar_bear_spawn_egg","item.minecraft.pufferfish_spawn_egg","item.minecraft.rabbit_spawn_egg","item.minecraft.ravager_spawn_egg","item.minecraft.salmon_spawn_egg","item.minecraft.sheep_spawn_egg","item.minecraft.shulker_spawn_egg","item.minecraft.silverfish_spawn_egg","item.minecraft.skeleton_spawn_egg","item.minecraft.skeleton_horse_spawn_egg","item.minecraft.slime_spawn_egg","item.minecraft.sniffer_spawn_egg","item.minecraft.snow_golem_spawn_egg","item.minecraft.spider_spawn_egg","item.minecraft.squid_spawn_egg","item.minecraft.stray_spawn_egg","item.minecraft.strider_spawn_egg","item.minecraft.tadpole_spawn_egg","item.minecraft.trader_llama_spawn_egg","item.minecraft.tropical_fish_spawn_egg","item.minecraft.turtle_spawn_egg","item.minecraft.vex_spawn_egg","item.minecraft.villager_spawn_egg","item.minecraft.vindicator_spawn_egg","item.minecraft.wandering_trader_spawn_egg","item.minecraft.warden_spawn_egg","item.minecraft.witch_spawn_egg","item.minecraft.wither_spawn_egg","item.minecraft.wither_skeleton_spawn_egg","item.minecraft.wolf_spawn_egg","item.minecraft.zoglin_spawn_egg","item.minecraft.creaking_spawn_egg","item.minecraft.zombie_spawn_egg","item.minecraft.zombie_horse_spawn_egg","item.minecraft.zombie_villager_spawn_egg","item.minecraft.zombified_piglin_spawn_egg","item.minecraft.zombie_nautilus_spawn_egg","item.minecraft.experience_bottle","item.minecraft.fire_charge","item.minecraft.wind_charge","item.minecraft.writable_book","item.minecraft.written_book","item.minecraft.breeze_rod","item.minecraft.mace","item.minecraft.item_frame","item.minecraft.glow_item_frame","block.minecraft.flower_pot","item.minecraft.carrot","item.minecraft.potato","item.minecraft.baked_potato","item.minecraft.poisonous_potato","item.minecraft.map","item.minecraft.golden_carrot","block.minecraft.skeleton_skull","block.minecraft.wither_skeleton_skull","block.minecraft.player_head","block.minecraft.zombie_head","block.minecraft.creeper_head","block.minecraft.dragon_head","block.minecraft.piglin_head","item.minecraft.nether_star","item.minecraft.pumpkin_pie","item.minecraft.firework_rocket","item.minecraft.firework_star","item.minecraft.enchanted_book","item.minecraft.nether_brick","item.minecraft.resin_brick","item.minecraft.prismarine_shard","item.minecraft.prismarine_crystals","item.minecraft.rabbit","item.minecraft.cooked_rabbit","item.minecraft.rabbit_stew","item.minecraft.rabbit_foot","item.minecraft.rabbit_hide","item.minecraft.armor_stand","item.minecraft.copper_horse_armor","item.minecraft.iron_horse_armor","item.minecraft.golden_horse_armor","item.minecraft.diamond_horse_armor","item.minecraft.leather_horse_armor","item.minecraft.lead","item.minecraft.name_tag","item.minecraft.command_block_minecart","item.minecraft.mutton","item.minecraft.cooked_mutton","block.minecraft.white_banner","block.minecraft.orange_banner","block.minecraft.magenta_banner","block.minecraft.light_blue_banner","block.minecraft.yellow_banner","block.minecraft.lime_banner","block.minecraft.pink_banner","block.minecraft.gray_banner","block.minecraft.light_gray_banner","block.minecraft.cyan_banner","block.minecraft.purple_banner","block.minecraft.blue_banner","block.minecraft.brown_banner","block.minecraft.green_banner","block.minecraft.red_banner","block.minecraft.black_banner","item.minecraft.end_crystal","item.minecraft.chorus_fruit","item.minecraft.popped_chorus_fruit","item.minecraft.torchflower_seeds","item.minecraft.pitcher_pod","item.minecraft.beetroot","item.minecraft.beetroot_seeds","item.minecraft.beetroot_soup","item.minecraft.dragon_breath","item.minecraft.splash_potion","item.minecraft.spectral_arrow","item.minecraft.tipped_arrow","item.minecraft.lingering_potion","item.minecraft.shield","item.minecraft.wooden_spear","item.minecraft.stone_spear","item.minecraft.copper_spear","item.minecraft.iron_spear","item.minecraft.golden_spear","item.minecraft.diamond_spear","item.minecraft.netherite_spear","item.minecraft.totem_of_undying","item.minecraft.shulker_shell","item.minecraft.iron_nugget","item.minecraft.copper_nugget","item.minecraft.knowledge_book","item.minecraft.debug_stick","item.minecraft.music_disc_13","item.minecraft.music_disc_cat","item.minecraft.music_disc_blocks","item.minecraft.music_disc_chirp","item.minecraft.music_disc_creator","item.minecraft.music_disc_creator_music_box","item.minecraft.music_disc_far","item.minecraft.music_disc_lava_chicken","item.minecraft.music_disc_mall","item.minecraft.music_disc_mellohi","item.minecraft.music_disc_stal","item.minecraft.music_disc_strad","item.minecraft.music_disc_ward","item.minecraft.music_disc_11","item.minecraft.music_disc_wait","item.minecraft.music_disc_otherside","item.minecraft.music_disc_relic","item.minecraft.music_disc_5","item.minecraft.music_disc_pigstep","item.minecraft.music_disc_precipice","item.minecraft.music_disc_tears","item.minecraft.disc_fragment_5","item.minecraft.trident","item.minecraft.nautilus_shell","item.minecraft.iron_nautilus_armor","item.minecraft.golden_nautilus_armor","item.minecraft.diamond_nautilus_armor","item.minecraft.netherite_nautilus_armor","item.minecraft.copper_nautilus_armor","item.minecraft.heart_of_the_sea","item.minecraft.crossbow","item.minecraft.suspicious_stew","block.minecraft.loom","item.minecraft.flower_banner_pattern","item.minecraft.creeper_banner_pattern","item.minecraft.skull_banner_pattern","item.minecraft.mojang_banner_pattern","item.minecraft.globe_banner_pattern","item.minecraft.piglin_banner_pattern","item.minecraft.flow_banner_pattern","item.minecraft.guster_banner_pattern","item.minecraft.field_masoned_banner_pattern","item.minecraft.bordure_indented_banner_pattern","item.minecraft.goat_horn","block.minecraft.composter","block.minecraft.barrel","block.minecraft.smoker","block.minecraft.blast_furnace","block.minecraft.cartography_table","block.minecraft.fletching_table","block.minecraft.grindstone","block.minecraft.smithing_table","block.minecraft.stonecutter","block.minecraft.bell","block.minecraft.lantern","block.minecraft.soul_lantern","block.minecraft.copper_lantern","block.minecraft.exposed_copper_lantern","block.minecraft.weathered_copper_lantern","block.minecraft.oxidized_copper_lantern","block.minecraft.waxed_copper_lantern","block.minecraft.waxed_exposed_copper_lantern","block.minecraft.waxed_weathered_copper_lantern","block.minecraft.waxed_oxidized_copper_lantern","item.minecraft.sweet_berries","item.minecraft.glow_berries","block.minecraft.campfire","block.minecraft.soul_campfire","block.minecraft.shroomlight","item.minecraft.honeycomb","block.minecraft.bee_nest","block.minecraft.beehive","item.minecraft.honey_bottle","block.minecraft.honeycomb_block","block.minecraft.lodestone","block.minecraft.crying_obsidian","block.minecraft.blackstone","block.minecraft.blackstone_slab","block.minecraft.blackstone_stairs","block.minecraft.gilded_blackstone","block.minecraft.polished_blackstone","block.minecraft.polished_blackstone_slab","block.minecraft.polished_blackstone_stairs","block.minecraft.chiseled_polished_blackstone","block.minecraft.polished_blackstone_bricks","block.minecraft.polished_blackstone_brick_slab","block.minecraft.polished_blackstone_brick_stairs","block.minecraft.cracked_polished_blackstone_bricks","block.minecraft.respawn_anchor","block.minecraft.candle","block.minecraft.white_candle","block.minecraft.orange_candle","block.minecraft.magenta_candle","block.minecraft.light_blue_candle","block.minecraft.yellow_candle","block.minecraft.lime_candle","block.minecraft.pink_candle","block.minecraft.gray_candle","block.minecraft.light_gray_candle","block.minecraft.cyan_candle","block.minecraft.purple_candle","block.minecraft.blue_candle","block.minecraft.brown_candle","block.minecraft.green_candle","block.minecraft.red_candle","block.minecraft.black_candle","block.minecraft.small_amethyst_bud","block.minecraft.medium_amethyst_bud","block.minecraft.large_amethyst_bud","block.minecraft.amethyst_cluster","block.minecraft.pointed_dripstone","block.minecraft.ochre_froglight","block.minecraft.verdant_froglight","block.minecraft.pearlescent_froglight","block.minecraft.frogspawn","item.minecraft.echo_shard","item.minecraft.brush","item.minecraft.netherite_upgrade_smithing_template","item.minecraft.sentry_armor_trim_smithing_template","item.minecraft.dune_armor_trim_smithing_template","item.minecraft.coast_armor_trim_smithing_template","item.minecraft.wild_armor_trim_smithing_template","item.minecraft.ward_armor_trim_smithing_template","item.minecraft.eye_armor_trim_smithing_template","item.minecraft.vex_armor_trim_smithing_template","item.minecraft.tide_armor_trim_smithing_template","item.minecraft.snout_armor_trim_smithing_template","item.minecraft.rib_armor_trim_smithing_template","item.minecraft.spire_armor_trim_smithing_template","item.minecraft.wayfinder_armor_trim_smithing_template","item.minecraft.shaper_armor_trim_smithing_template","item.minecraft.silence_armor_trim_smithing_template","item.minecraft.raiser_armor_trim_smithing_template","item.minecraft.host_armor_trim_smithing_template","item.minecraft.flow_armor_trim_smithing_template","item.minecraft.bolt_armor_trim_smithing_template","item.minecraft.angler_pottery_sherd","item.minecraft.archer_pottery_sherd","item.minecraft.arms_up_pottery_sherd","item.minecraft.blade_pottery_sherd","item.minecraft.brewer_pottery_sherd","item.minecraft.burn_pottery_sherd","item.minecraft.danger_pottery_sherd","item.minecraft.explorer_pottery_sherd","item.minecraft.flow_pottery_sherd","item.minecraft.friend_pottery_sherd","item.minecraft.guster_pottery_sherd","item.minecraft.heart_pottery_sherd","item.minecraft.heartbreak_pottery_sherd","item.minecraft.howl_pottery_sherd","item.minecraft.miner_pottery_sherd","item.minecraft.mourner_pottery_sherd","item.minecraft.plenty_pottery_sherd","item.minecraft.prize_pottery_sherd","item.minecraft.scrape_pottery_sherd","item.minecraft.sheaf_pottery_sherd","item.minecraft.shelter_pottery_sherd","item.minecraft.skull_pottery_sherd","item.minecraft.snort_pottery_sherd","block.minecraft.copper_grate","block.minecraft.exposed_copper_grate","block.minecraft.weathered_copper_grate","block.minecraft.oxidized_copper_grate","block.minecraft.waxed_copper_grate","block.minecraft.waxed_exposed_copper_grate","block.minecraft.waxed_weathered_copper_grate","block.minecraft.waxed_oxidized_copper_grate","block.minecraft.copper_bulb","block.minecraft.exposed_copper_bulb","block.minecraft.weathered_copper_bulb","block.minecraft.oxidized_copper_bulb","block.minecraft.waxed_copper_bulb","block.minecraft.waxed_exposed_copper_bulb","block.minecraft.waxed_weathered_copper_bulb","block.minecraft.waxed_oxidized_copper_bulb","block.minecraft.copper_chest","block.minecraft.exposed_copper_chest","block.minecraft.weathered_copper_chest","block.minecraft.oxidized_copper_chest","block.minecraft.waxed_copper_chest","block.minecraft.waxed_exposed_copper_chest","block.minecraft.waxed_weathered_copper_chest","block.minecraft.waxed_oxidized_copper_chest","block.minecraft.copper_golem_statue","block.minecraft.exposed_copper_golem_statue","block.minecraft.weathered_copper_golem_statue","block.minecraft.oxidized_copper_golem_statue","block.minecraft.waxed_copper_golem_statue","block.minecraft.waxed_exposed_copper_golem_statue","block.minecraft.waxed_weathered_copper_golem_statue","block.minecraft.waxed_oxidized_copper_golem_statue","block.minecraft.trial_spawner","item.minecraft.trial_key","item.minecraft.ominous_trial_key","block.minecraft.vault","item.minecraft.ominous_bottle"]; impl DefaultableComponent for ItemName { fn default_for_item(item: Item) -> Option { let value = ITEM_NAME_VALUES[item as usize]; @@ -1769,7 +2043,7 @@ impl DefaultableComponent for Lore { } } #[rustfmt::skip] -static MAX_STACK_SIZE_VALUES: [i32; 1488] = [64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,64,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,64,64,64,64,1,64,64,1,1,64,64,1,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,64,1,64,64,64,64,64,64,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,64,64,64,64,64,64,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,1,1,1,16,64,1,1,1,1,1,1,1,64,64,64,64,64,64,16,16,16,64,64,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,64,1,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,64,64,64,1,64,64,64,64,64,64,64,64,64,16,64,64,64,64,64,1,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,1,16,64,1,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,1,64,64,64,64,64,64,1,64,64,16,1,1,1,1,1,64,64,1,64,64,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,64,64,64,64,64,64,64,1,64,1,64,64,1,1,1,64,64,64,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,64,1,64,64,1,1,64,1,1,1,1,1,1,1,1,1,1,1,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,16,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,1,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64]; +static MAX_STACK_SIZE_VALUES: [i32; 1504] = [64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,64,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,64,64,64,64,1,64,64,1,1,64,64,1,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,64,1,64,64,64,64,64,64,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,64,64,64,64,64,64,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,1,1,1,16,64,1,1,1,1,1,1,1,64,64,64,64,64,64,16,16,16,64,64,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,64,1,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,64,64,64,1,64,64,64,64,64,64,64,64,64,16,64,64,64,64,64,1,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,1,16,64,1,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,1,64,64,64,64,64,64,1,64,64,16,1,1,1,1,1,64,64,1,64,64,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,64,64,64,64,64,64,64,1,64,1,64,64,1,1,1,1,1,1,1,1,1,1,64,64,64,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,64,1,64,1,1,1,1,1,64,1,1,64,1,1,1,1,1,1,1,1,1,1,1,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,16,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,1,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64]; impl DefaultableComponent for MaxStackSize { fn default_for_item(item: Item) -> Option { let value = MAX_STACK_SIZE_VALUES[item as usize]; @@ -1903,11 +2177,55 @@ impl DefaultableComponent for RepairCost { Some(RepairCost { cost: 0 }) } } +impl DefaultableComponent for SwingAnimation { + fn default_for_item(item: Item) -> Option { + let value = match item { + Item::CopperSpear => todo!(), /* see DataComponents.java {type: */ + // FIXME_UNKNOWN_TYPE::Stab,duration: 17,}, + Item::DiamondSpear => todo!(), /* see DataComponents.java {type: */ + // FIXME_UNKNOWN_TYPE::Stab,duration: 21,}, + Item::GoldenSpear => todo!(), /* see DataComponents.java {type: */ + // FIXME_UNKNOWN_TYPE::Stab,duration: 19,}, + Item::IronSpear => todo!(), /* see DataComponents.java {type: */ + // FIXME_UNKNOWN_TYPE::Stab,duration: 19,}, + Item::NetheriteSpear => todo!(), /* see DataComponents.java {type: */ + // FIXME_UNKNOWN_TYPE::Stab,duration: 23,}, + Item::StoneSpear => todo!(), /* see DataComponents.java {type: */ + // FIXME_UNKNOWN_TYPE::Stab,duration: 15,}, + Item::WoodenSpear => todo!(), /* see DataComponents.java {type: */ + // FIXME_UNKNOWN_TYPE::Stab,duration: 13,}, + _ => todo!(), // see DataComponents.java::new(), + }; + Some(SwingAnimation { todo: value }) + } +} impl DefaultableComponent for TooltipDisplay { fn default_for_item(_item: Item) -> Option { Some(TooltipDisplay::new()) } } +impl DefaultableComponent for UseEffects { + fn default_for_item(item: Item) -> Option { + let value = match item { + Item::CopperSpear => todo!(), /* see DataComponents.java {can_sprint: */ + // true,speed_multiplier: 1.0,}, + Item::DiamondSpear => todo!(), /* see DataComponents.java {can_sprint: */ + // true,speed_multiplier: 1.0,}, + Item::GoldenSpear => todo!(), /* see DataComponents.java {can_sprint: */ + // true,speed_multiplier: 1.0,}, + Item::IronSpear => todo!(), /* see DataComponents.java {can_sprint: */ + // true,speed_multiplier: 1.0,}, + Item::NetheriteSpear => todo!(), /* see DataComponents.java {can_sprint: */ + // true,speed_multiplier: 1.0,}, + Item::StoneSpear => todo!(), /* see DataComponents.java {can_sprint: */ + // true,speed_multiplier: 1.0,}, + Item::WoodenSpear => todo!(), /* see DataComponents.java {can_sprint: */ + // true,speed_multiplier: 1.0,}, + _ => todo!(), // see DataComponents.java::new(), + }; + Some(UseEffects { todo: value }) + } +} impl DefaultableComponent for Container { fn default_for_item(item: Item) -> Option { let value = match item { @@ -1971,6 +2289,7 @@ impl DefaultableComponent for EntityData { Item::BlazeSpawnEgg => EntityKind::Blaze, Item::BoggedSpawnEgg => EntityKind::Bogged, Item::BreezeSpawnEgg => EntityKind::Breeze, + Item::CamelHuskSpawnEgg => EntityKind::CamelHusk, Item::CamelSpawnEgg => EntityKind::Camel, Item::CatSpawnEgg => EntityKind::Cat, Item::CaveSpiderSpawnEgg => EntityKind::CaveSpider, @@ -2003,8 +2322,10 @@ impl DefaultableComponent for EntityData { Item::MagmaCubeSpawnEgg => EntityKind::MagmaCube, Item::MooshroomSpawnEgg => EntityKind::Mooshroom, Item::MuleSpawnEgg => EntityKind::Mule, + Item::NautilusSpawnEgg => EntityKind::Nautilus, Item::OcelotSpawnEgg => EntityKind::Ocelot, Item::PandaSpawnEgg => EntityKind::Panda, + Item::ParchedSpawnEgg => EntityKind::Parched, Item::ParrotSpawnEgg => EntityKind::Parrot, Item::PhantomSpawnEgg => EntityKind::Phantom, Item::PigSpawnEgg => EntityKind::Pig, @@ -2043,6 +2364,7 @@ impl DefaultableComponent for EntityData { Item::WolfSpawnEgg => EntityKind::Wolf, Item::ZoglinSpawnEgg => EntityKind::Zoglin, Item::ZombieHorseSpawnEgg => EntityKind::ZombieHorse, + Item::ZombieNautilusSpawnEgg => EntityKind::ZombieNautilus, Item::ZombieSpawnEgg => EntityKind::Zombie, Item::ZombieVillagerSpawnEgg => EntityKind::ZombieVillager, Item::ZombifiedPiglinSpawnEgg => EntityKind::ZombifiedPiglin, @@ -2086,9 +2408,11 @@ impl DefaultableComponent for DamageResistant { Item::NetheriteHoe => "#minecraft:is_fire".into(), Item::NetheriteIngot => "#minecraft:is_fire".into(), Item::NetheriteLeggings => "#minecraft:is_fire".into(), + Item::NetheriteNautilusArmor => "#minecraft:is_fire".into(), Item::NetheritePickaxe => "#minecraft:is_fire".into(), Item::NetheriteScrap => "#minecraft:is_fire".into(), Item::NetheriteShovel => "#minecraft:is_fire".into(), + Item::NetheriteSpear => "#minecraft:is_fire".into(), Item::NetheriteSword => "#minecraft:is_fire".into(), _ => return None, }; @@ -2816,6 +3140,22 @@ impl DefaultableComponent for Equippable { slot: EquipmentSlot::Legs, ..Equippable::new() }, + Item::CopperNautilusArmor => Equippable { + allowed_entities: Some(HolderSet::Direct { + contents: azalea_registry::tags::entities::CAN_WEAR_NAUTILUS_ARMOR + .clone() + .into_iter() + .collect(), + }), + asset_id: Some("minecraft:copper".into()), + can_be_sheared: true, + damage_on_hurt: false, + equip_on_interact: true, + equip_sound: SoundEvent::ItemArmorEquipNautilus, + shearing_sound: SoundEvent::ItemArmorUnequipNautilus, + slot: EquipmentSlot::Body, + ..Equippable::new() + }, Item::CreeperHead => Equippable { slot: EquipmentSlot::Head, swappable: false, @@ -2886,6 +3226,22 @@ impl DefaultableComponent for Equippable { slot: EquipmentSlot::Legs, ..Equippable::new() }, + Item::DiamondNautilusArmor => Equippable { + allowed_entities: Some(HolderSet::Direct { + contents: azalea_registry::tags::entities::CAN_WEAR_NAUTILUS_ARMOR + .clone() + .into_iter() + .collect(), + }), + asset_id: Some("minecraft:diamond".into()), + can_be_sheared: true, + damage_on_hurt: false, + equip_on_interact: true, + equip_sound: SoundEvent::ItemArmorEquipNautilus, + shearing_sound: SoundEvent::ItemArmorUnequipNautilus, + slot: EquipmentSlot::Body, + ..Equippable::new() + }, Item::DragonHead => Equippable { slot: EquipmentSlot::Head, swappable: false, @@ -2937,6 +3293,22 @@ impl DefaultableComponent for Equippable { slot: EquipmentSlot::Legs, ..Equippable::new() }, + Item::GoldenNautilusArmor => Equippable { + allowed_entities: Some(HolderSet::Direct { + contents: azalea_registry::tags::entities::CAN_WEAR_NAUTILUS_ARMOR + .clone() + .into_iter() + .collect(), + }), + asset_id: Some("minecraft:gold".into()), + can_be_sheared: true, + damage_on_hurt: false, + equip_on_interact: true, + equip_sound: SoundEvent::ItemArmorEquipNautilus, + shearing_sound: SoundEvent::ItemArmorUnequipNautilus, + slot: EquipmentSlot::Body, + ..Equippable::new() + }, Item::GrayCarpet => Equippable { allowed_entities: Some(HolderSet::Direct { contents: vec![EntityKind::Llama, EntityKind::TraderLlama], @@ -3028,6 +3400,22 @@ impl DefaultableComponent for Equippable { slot: EquipmentSlot::Legs, ..Equippable::new() }, + Item::IronNautilusArmor => Equippable { + allowed_entities: Some(HolderSet::Direct { + contents: azalea_registry::tags::entities::CAN_WEAR_NAUTILUS_ARMOR + .clone() + .into_iter() + .collect(), + }), + asset_id: Some("minecraft:iron".into()), + can_be_sheared: true, + damage_on_hurt: false, + equip_on_interact: true, + equip_sound: SoundEvent::ItemArmorEquipNautilus, + shearing_sound: SoundEvent::ItemArmorUnequipNautilus, + slot: EquipmentSlot::Body, + ..Equippable::new() + }, Item::LeatherBoots => Equippable { asset_id: Some("minecraft:leather".into()), equip_sound: SoundEvent::ItemArmorEquipLeather, @@ -3195,6 +3583,22 @@ impl DefaultableComponent for Equippable { slot: EquipmentSlot::Legs, ..Equippable::new() }, + Item::NetheriteNautilusArmor => Equippable { + allowed_entities: Some(HolderSet::Direct { + contents: azalea_registry::tags::entities::CAN_WEAR_NAUTILUS_ARMOR + .clone() + .into_iter() + .collect(), + }), + asset_id: Some("minecraft:netherite".into()), + can_be_sheared: true, + damage_on_hurt: false, + equip_on_interact: true, + equip_sound: SoundEvent::ItemArmorEquipNautilus, + shearing_sound: SoundEvent::ItemArmorUnequipNautilus, + slot: EquipmentSlot::Body, + ..Equippable::new() + }, Item::OrangeCarpet => Equippable { allowed_entities: Some(HolderSet::Direct { contents: vec![EntityKind::Llama, EntityKind::TraderLlama], @@ -3446,6 +3850,7 @@ impl DefaultableComponent for Enchantable { Item::CopperLeggings => 8, Item::CopperPickaxe => 13, Item::CopperShovel => 13, + Item::CopperSpear => 13, Item::CopperSword => 13, Item::Crossbow => 1, Item::DiamondAxe => 10, @@ -3456,6 +3861,7 @@ impl DefaultableComponent for Enchantable { Item::DiamondLeggings => 10, Item::DiamondPickaxe => 10, Item::DiamondShovel => 10, + Item::DiamondSpear => 10, Item::DiamondSword => 10, Item::FishingRod => 1, Item::GoldenAxe => 22, @@ -3466,6 +3872,7 @@ impl DefaultableComponent for Enchantable { Item::GoldenLeggings => 25, Item::GoldenPickaxe => 22, Item::GoldenShovel => 22, + Item::GoldenSpear => 22, Item::GoldenSword => 22, Item::IronAxe => 14, Item::IronBoots => 9, @@ -3475,6 +3882,7 @@ impl DefaultableComponent for Enchantable { Item::IronLeggings => 9, Item::IronPickaxe => 14, Item::IronShovel => 14, + Item::IronSpear => 14, Item::IronSword => 14, Item::LeatherBoots => 15, Item::LeatherChestplate => 15, @@ -3489,11 +3897,13 @@ impl DefaultableComponent for Enchantable { Item::NetheriteLeggings => 15, Item::NetheritePickaxe => 15, Item::NetheriteShovel => 15, + Item::NetheriteSpear => 15, Item::NetheriteSword => 15, Item::StoneAxe => 5, Item::StoneHoe => 5, Item::StonePickaxe => 5, Item::StoneShovel => 5, + Item::StoneSpear => 5, Item::StoneSword => 5, Item::Trident => 1, Item::TurtleHelmet => 9, @@ -3501,6 +3911,7 @@ impl DefaultableComponent for Enchantable { Item::WoodenHoe => 15, Item::WoodenPickaxe => 15, Item::WoodenShovel => 15, + Item::WoodenSpear => 15, Item::WoodenSword => 15, _ => return None, }; @@ -3543,6 +3954,7 @@ impl DefaultableComponent for Damage { Item::CopperLeggings => 0, Item::CopperPickaxe => 0, Item::CopperShovel => 0, + Item::CopperSpear => 0, Item::CopperSword => 0, Item::Crossbow => 0, Item::DiamondAxe => 0, @@ -3553,6 +3965,7 @@ impl DefaultableComponent for Damage { Item::DiamondLeggings => 0, Item::DiamondPickaxe => 0, Item::DiamondShovel => 0, + Item::DiamondSpear => 0, Item::DiamondSword => 0, Item::Elytra => 0, Item::FishingRod => 0, @@ -3565,6 +3978,7 @@ impl DefaultableComponent for Damage { Item::GoldenLeggings => 0, Item::GoldenPickaxe => 0, Item::GoldenShovel => 0, + Item::GoldenSpear => 0, Item::GoldenSword => 0, Item::IronAxe => 0, Item::IronBoots => 0, @@ -3574,6 +3988,7 @@ impl DefaultableComponent for Damage { Item::IronLeggings => 0, Item::IronPickaxe => 0, Item::IronShovel => 0, + Item::IronSpear => 0, Item::IronSword => 0, Item::LeatherBoots => 0, Item::LeatherChestplate => 0, @@ -3588,6 +4003,7 @@ impl DefaultableComponent for Damage { Item::NetheriteLeggings => 0, Item::NetheritePickaxe => 0, Item::NetheriteShovel => 0, + Item::NetheriteSpear => 0, Item::NetheriteSword => 0, Item::Shears => 0, Item::Shield => 0, @@ -3595,6 +4011,7 @@ impl DefaultableComponent for Damage { Item::StoneHoe => 0, Item::StonePickaxe => 0, Item::StoneShovel => 0, + Item::StoneSpear => 0, Item::StoneSword => 0, Item::Trident => 0, Item::TurtleHelmet => 0, @@ -3604,6 +4021,7 @@ impl DefaultableComponent for Damage { Item::WoodenHoe => 0, Item::WoodenPickaxe => 0, Item::WoodenShovel => 0, + Item::WoodenSpear => 0, Item::WoodenSword => 0, _ => return None, }; @@ -3628,6 +4046,7 @@ impl DefaultableComponent for MaxDamage { Item::CopperLeggings => 165, Item::CopperPickaxe => 190, Item::CopperShovel => 190, + Item::CopperSpear => 190, Item::CopperSword => 190, Item::Crossbow => 465, Item::DiamondAxe => 1561, @@ -3638,6 +4057,7 @@ impl DefaultableComponent for MaxDamage { Item::DiamondLeggings => 495, Item::DiamondPickaxe => 1561, Item::DiamondShovel => 1561, + Item::DiamondSpear => 1561, Item::DiamondSword => 1561, Item::Elytra => 432, Item::FishingRod => 64, @@ -3650,6 +4070,7 @@ impl DefaultableComponent for MaxDamage { Item::GoldenLeggings => 105, Item::GoldenPickaxe => 32, Item::GoldenShovel => 32, + Item::GoldenSpear => 32, Item::GoldenSword => 32, Item::IronAxe => 250, Item::IronBoots => 195, @@ -3659,6 +4080,7 @@ impl DefaultableComponent for MaxDamage { Item::IronLeggings => 225, Item::IronPickaxe => 250, Item::IronShovel => 250, + Item::IronSpear => 250, Item::IronSword => 250, Item::LeatherBoots => 65, Item::LeatherChestplate => 80, @@ -3673,6 +4095,7 @@ impl DefaultableComponent for MaxDamage { Item::NetheriteLeggings => 555, Item::NetheritePickaxe => 2031, Item::NetheriteShovel => 2031, + Item::NetheriteSpear => 2031, Item::NetheriteSword => 2031, Item::Shears => 238, Item::Shield => 336, @@ -3680,6 +4103,7 @@ impl DefaultableComponent for MaxDamage { Item::StoneHoe => 131, Item::StonePickaxe => 131, Item::StoneShovel => 131, + Item::StoneSpear => 131, Item::StoneSword => 131, Item::Trident => 250, Item::TurtleHelmet => 275, @@ -3689,6 +4113,7 @@ impl DefaultableComponent for MaxDamage { Item::WoodenHoe => 59, Item::WoodenPickaxe => 59, Item::WoodenShovel => 59, + Item::WoodenSpear => 59, Item::WoodenSword => 59, _ => return None, }; @@ -3770,6 +4195,12 @@ impl DefaultableComponent for Repairable { .into_iter() .collect(), }, + Item::CopperSpear => HolderSet::Direct { + contents: azalea_registry::tags::items::COPPER_TOOL_MATERIALS + .clone() + .into_iter() + .collect(), + }, Item::CopperSword => HolderSet::Direct { contents: azalea_registry::tags::items::COPPER_TOOL_MATERIALS .clone() @@ -3824,6 +4255,12 @@ impl DefaultableComponent for Repairable { .into_iter() .collect(), }, + Item::DiamondSpear => HolderSet::Direct { + contents: azalea_registry::tags::items::DIAMOND_TOOL_MATERIALS + .clone() + .into_iter() + .collect(), + }, Item::DiamondSword => HolderSet::Direct { contents: azalea_registry::tags::items::DIAMOND_TOOL_MATERIALS .clone() @@ -3881,6 +4318,12 @@ impl DefaultableComponent for Repairable { .into_iter() .collect(), }, + Item::GoldenSpear => HolderSet::Direct { + contents: azalea_registry::tags::items::GOLD_TOOL_MATERIALS + .clone() + .into_iter() + .collect(), + }, Item::GoldenSword => HolderSet::Direct { contents: azalea_registry::tags::items::GOLD_TOOL_MATERIALS .clone() @@ -3935,6 +4378,12 @@ impl DefaultableComponent for Repairable { .into_iter() .collect(), }, + Item::IronSpear => HolderSet::Direct { + contents: azalea_registry::tags::items::IRON_TOOL_MATERIALS + .clone() + .into_iter() + .collect(), + }, Item::IronSword => HolderSet::Direct { contents: azalea_registry::tags::items::IRON_TOOL_MATERIALS .clone() @@ -4016,6 +4465,12 @@ impl DefaultableComponent for Repairable { .into_iter() .collect(), }, + Item::NetheriteSpear => HolderSet::Direct { + contents: azalea_registry::tags::items::NETHERITE_TOOL_MATERIALS + .clone() + .into_iter() + .collect(), + }, Item::NetheriteSword => HolderSet::Direct { contents: azalea_registry::tags::items::NETHERITE_TOOL_MATERIALS .clone() @@ -4052,6 +4507,12 @@ impl DefaultableComponent for Repairable { .into_iter() .collect(), }, + Item::StoneSpear => HolderSet::Direct { + contents: azalea_registry::tags::items::STONE_TOOL_MATERIALS + .clone() + .into_iter() + .collect(), + }, Item::StoneSword => HolderSet::Direct { contents: azalea_registry::tags::items::STONE_TOOL_MATERIALS .clone() @@ -4094,6 +4555,12 @@ impl DefaultableComponent for Repairable { .into_iter() .collect(), }, + Item::WoodenSpear => HolderSet::Direct { + contents: azalea_registry::tags::items::WOODEN_TOOL_MATERIALS + .clone() + .into_iter() + .collect(), + }, Item::WoodenSword => HolderSet::Direct { contents: azalea_registry::tags::items::WOODEN_TOOL_MATERIALS .clone() @@ -5141,6 +5608,7 @@ impl DefaultableComponent for Weapon { item_damage_per_attack: 2, ..Weapon::new() }, + Item::CopperSpear => Weapon::new(), Item::CopperSword => Weapon::new(), Item::DiamondAxe => Weapon { disable_blocking_for_seconds: 5.0, @@ -5158,6 +5626,7 @@ impl DefaultableComponent for Weapon { item_damage_per_attack: 2, ..Weapon::new() }, + Item::DiamondSpear => Weapon::new(), Item::DiamondSword => Weapon::new(), Item::GoldenAxe => Weapon { disable_blocking_for_seconds: 5.0, @@ -5175,6 +5644,7 @@ impl DefaultableComponent for Weapon { item_damage_per_attack: 2, ..Weapon::new() }, + Item::GoldenSpear => Weapon::new(), Item::GoldenSword => Weapon::new(), Item::IronAxe => Weapon { disable_blocking_for_seconds: 5.0, @@ -5192,6 +5662,7 @@ impl DefaultableComponent for Weapon { item_damage_per_attack: 2, ..Weapon::new() }, + Item::IronSpear => Weapon::new(), Item::IronSword => Weapon::new(), Item::Mace => Weapon::new(), Item::NetheriteAxe => Weapon { @@ -5210,6 +5681,7 @@ impl DefaultableComponent for Weapon { item_damage_per_attack: 2, ..Weapon::new() }, + Item::NetheriteSpear => Weapon::new(), Item::NetheriteSword => Weapon::new(), Item::StoneAxe => Weapon { disable_blocking_for_seconds: 5.0, @@ -5227,6 +5699,7 @@ impl DefaultableComponent for Weapon { item_damage_per_attack: 2, ..Weapon::new() }, + Item::StoneSpear => Weapon::new(), Item::StoneSword => Weapon::new(), Item::Trident => Weapon::new(), Item::WoodenAxe => Weapon { @@ -5245,12 +5718,170 @@ impl DefaultableComponent for Weapon { item_damage_per_attack: 2, ..Weapon::new() }, + Item::WoodenSpear => Weapon::new(), Item::WoodenSword => Weapon::new(), _ => return None, }; Some(value) } } +impl DefaultableComponent for DamageType { + fn default_for_item(item: Item) -> Option { + let value = match item { + Item::CopperSpear => todo!(), // see DataComponents.java::Spear, + Item::DiamondSpear => todo!(), // see DataComponents.java::Spear, + Item::GoldenSpear => todo!(), // see DataComponents.java::Spear, + Item::IronSpear => todo!(), // see DataComponents.java::Spear, + Item::NetheriteSpear => todo!(), // see DataComponents.java::Spear, + Item::StoneSpear => todo!(), // see DataComponents.java::Spear, + Item::WoodenSpear => todo!(), // see DataComponents.java::Spear, + _ => return None, + }; + Some(DamageType { todo: value }) + } +} +impl DefaultableComponent for KineticWeapon { + fn default_for_item(item: Item) -> Option { + let value = match item { + Item::CopperSpear => todo!(), /* see DataComponents.java {damage_conditions: */ + // FIXME_UNKNOWN_TYPE {max_duration_ticks: + // 250,min_relative_speed: 4.6,},damage_multiplier: + // 0.82,delay_ticks: 13,dismount_conditions: + // FIXME_UNKNOWN_TYPE {max_duration_ticks: + // 80,min_speed: 9.0,},forward_movement: + // 0.38,hit_sound: + // FIXME_UNKNOWN_TYPE::ItemSpearHit,hitbox_margin: + // 0.25,knockback_conditions: FIXME_UNKNOWN_TYPE + // {max_duration_ticks: 100,min_speed: + // 5.1,},max_reach: 4.5,min_reach: 2.0,sound: + // FIXME_UNKNOWN_TYPE::ItemSpearUse,}, + Item::DiamondSpear => todo!(), /* see DataComponents.java {damage_conditions: */ + // FIXME_UNKNOWN_TYPE {max_duration_ticks: + // 200,min_relative_speed: 4.6,},damage_multiplier: + // 1.075,delay_ticks: 10,dismount_conditions: + // FIXME_UNKNOWN_TYPE {max_duration_ticks: + // 60,min_speed: 7.5,},forward_movement: + // 0.38,hit_sound: + // FIXME_UNKNOWN_TYPE::ItemSpearHit,hitbox_margin: + // 0.25,knockback_conditions: FIXME_UNKNOWN_TYPE + // {max_duration_ticks: 80,min_speed: + // 5.1,},max_reach: 4.5,min_reach: 2.0,sound: + // FIXME_UNKNOWN_TYPE::ItemSpearUse,}, + Item::GoldenSpear => todo!(), /* see DataComponents.java {damage_conditions: */ + // FIXME_UNKNOWN_TYPE {max_duration_ticks: + // 275,min_relative_speed: 4.6,},damage_multiplier: + // 0.7,delay_ticks: 14,dismount_conditions: + // FIXME_UNKNOWN_TYPE {max_duration_ticks: + // 70,min_speed: 10.0,},forward_movement: + // 0.38,hit_sound: + // FIXME_UNKNOWN_TYPE::ItemSpearHit,hitbox_margin: + // 0.25,knockback_conditions: FIXME_UNKNOWN_TYPE + // {max_duration_ticks: 110,min_speed: + // 5.1,},max_reach: 4.5,min_reach: 2.0,sound: + // FIXME_UNKNOWN_TYPE::ItemSpearUse,}, + Item::IronSpear => todo!(), /* see DataComponents.java {damage_conditions: */ + // FIXME_UNKNOWN_TYPE {max_duration_ticks: + // 225,min_relative_speed: 4.6,},damage_multiplier: + // 0.95,delay_ticks: 12,dismount_conditions: + // FIXME_UNKNOWN_TYPE {max_duration_ticks: 50,min_speed: + // 8.0,},forward_movement: 0.38,hit_sound: + // FIXME_UNKNOWN_TYPE::ItemSpearHit,hitbox_margin: + // 0.25,knockback_conditions: FIXME_UNKNOWN_TYPE + // {max_duration_ticks: 90,min_speed: 5.1,},max_reach: + // 4.5,min_reach: 2.0,sound: + // FIXME_UNKNOWN_TYPE::ItemSpearUse,}, + Item::NetheriteSpear => todo!(), /* see DataComponents.java {damage_conditions: */ + // FIXME_UNKNOWN_TYPE {max_duration_ticks: + // 175,min_relative_speed: 4.6,},damage_multiplier: + // 1.2,delay_ticks: 8,dismount_conditions: + // FIXME_UNKNOWN_TYPE {max_duration_ticks: + // 50,min_speed: 7.0,},forward_movement: + // 0.38,hit_sound: + // FIXME_UNKNOWN_TYPE::ItemSpearHit,hitbox_margin: + // 0.25,knockback_conditions: FIXME_UNKNOWN_TYPE + // {max_duration_ticks: 70,min_speed: + // 5.1,},max_reach: 4.5,min_reach: 2.0,sound: + // FIXME_UNKNOWN_TYPE::ItemSpearUse,}, + Item::StoneSpear => todo!(), /* see DataComponents.java {damage_conditions: */ + // FIXME_UNKNOWN_TYPE {max_duration_ticks: + // 275,min_relative_speed: 4.6,},damage_multiplier: + // 0.82,delay_ticks: 14,dismount_conditions: + // FIXME_UNKNOWN_TYPE {max_duration_ticks: + // 90,min_speed: 10.0,},forward_movement: + // 0.38,hit_sound: + // FIXME_UNKNOWN_TYPE::ItemSpearHit,hitbox_margin: + // 0.25,knockback_conditions: FIXME_UNKNOWN_TYPE + // {max_duration_ticks: 110,min_speed: 5.1,},max_reach: + // 4.5,min_reach: 2.0,sound: + // FIXME_UNKNOWN_TYPE::ItemSpearUse,}, + Item::WoodenSpear => todo!(), /* see DataComponents.java {damage_conditions: */ + // FIXME_UNKNOWN_TYPE {max_duration_ticks: + // 300,min_relative_speed: 4.6,},damage_multiplier: + // 0.7,delay_ticks: 15,dismount_conditions: + // FIXME_UNKNOWN_TYPE {max_duration_ticks: + // 100,min_speed: 14.0,},forward_movement: + // 0.38,hit_sound: + // FIXME_UNKNOWN_TYPE::ItemSpearWoodHit,hitbox_margin: + // 0.25,knockback_conditions: FIXME_UNKNOWN_TYPE + // {max_duration_ticks: 120,min_speed: + // 5.1,},max_reach: 4.5,min_reach: 2.0,sound: + // FIXME_UNKNOWN_TYPE::ItemSpearWoodUse,}, + _ => return None, + }; + Some(KineticWeapon { todo: value }) + } +} +impl DefaultableComponent for MinimumAttackCharge { + fn default_for_item(item: Item) -> Option { + let value = match item { + Item::CopperSpear => 1.0, + Item::DiamondSpear => 1.0, + Item::GoldenSpear => 1.0, + Item::IronSpear => 1.0, + Item::NetheriteSpear => 1.0, + Item::StoneSpear => 1.0, + Item::WoodenSpear => 1.0, + _ => return None, + }; + Some(MinimumAttackCharge { todo: value }) + } +} +impl DefaultableComponent for PiercingWeapon { + fn default_for_item(item: Item) -> Option { + let value = match item { + Item::CopperSpear => todo!(), /* see DataComponents.java {hit_sound: */ + // FIXME_UNKNOWN_TYPE::ItemSpearHit,hitbox_margin: + // 0.25,max_reach: 4.5,min_reach: 2.0,sound: + // FIXME_UNKNOWN_TYPE::ItemSpearAttack,}, + Item::DiamondSpear => todo!(), /* see DataComponents.java {hit_sound: */ + // FIXME_UNKNOWN_TYPE::ItemSpearHit,hitbox_margin: + // 0.25,max_reach: 4.5,min_reach: 2.0,sound: + // FIXME_UNKNOWN_TYPE::ItemSpearAttack,}, + Item::GoldenSpear => todo!(), /* see DataComponents.java {hit_sound: */ + // FIXME_UNKNOWN_TYPE::ItemSpearHit,hitbox_margin: + // 0.25,max_reach: 4.5,min_reach: 2.0,sound: + // FIXME_UNKNOWN_TYPE::ItemSpearAttack,}, + Item::IronSpear => todo!(), /* see DataComponents.java {hit_sound: */ + // FIXME_UNKNOWN_TYPE::ItemSpearHit,hitbox_margin: + // 0.25,max_reach: 4.5,min_reach: 2.0,sound: + // FIXME_UNKNOWN_TYPE::ItemSpearAttack,}, + Item::NetheriteSpear => todo!(), /* see DataComponents.java {hit_sound: */ + // FIXME_UNKNOWN_TYPE::ItemSpearHit,hitbox_margin: + // 0.25,max_reach: 4.5,min_reach: 2.0,sound: + // FIXME_UNKNOWN_TYPE::ItemSpearAttack,}, + Item::StoneSpear => todo!(), /* see DataComponents.java {hit_sound: */ + // FIXME_UNKNOWN_TYPE::ItemSpearHit,hitbox_margin: + // 0.25,max_reach: 4.5,min_reach: 2.0,sound: + // FIXME_UNKNOWN_TYPE::ItemSpearAttack,}, + Item::WoodenSpear => todo!(), /* see DataComponents.java {hit_sound: */ + // FIXME_UNKNOWN_TYPE::ItemSpearWoodHit,hitbox_margin: + // 0.25,max_reach: 4.5,min_reach: 2.0,sound: + // FIXME_UNKNOWN_TYPE::ItemSpearWoodAttack,}, + _ => return None, + }; + Some(PiercingWeapon { todo: value }) + } +} impl DefaultableComponent for ChargedProjectiles { fn default_for_item(item: Item) -> Option { let value = match item { diff --git a/azalea-language/src/en_us.json b/azalea-language/src/en_us.json index aad18358b..7ad8e62ff 100644 --- a/azalea-language/src/en_us.json +++ b/azalea-language/src/en_us.json @@ -281,6 +281,7 @@ "advMode.notEnabled.spawner": "Spawner blocks are not enabled", "advMode.previousOutput": "Previous Output", "advMode.setCommand": "Set Console Command for Block", + "advMode.setCommand.disabled": "Command set: %s, but command blocks are still disabled", "advMode.setCommand.success": "Command set: %s", "advMode.trackOutput": "Track output", "advMode.triggering": "Triggering", @@ -2461,6 +2462,7 @@ "chat.link.open": "Open in Browser", "chat.link.warning": "Never open links from people that you don't trust!", "chat.queue": "[+%s pending line(s)]", + "chat.queue.tooltip": "Click to display next message", "chat.square_brackets": "[%s]", "chat.tag.error": "Server sent invalid message.", "chat.tag.modified": "Message modified by the server. Original:", @@ -2919,6 +2921,12 @@ "commands.stopsound.success.source.sound": "Stopped sound '%s' on source '%s'", "commands.stopsound.success.sourceless.any": "Stopped all sounds", "commands.stopsound.success.sourceless.sound": "Stopped sound '%s'", + "commands.stopwatch.already_exists": "Stopwatch '%s' already exists", + "commands.stopwatch.create.success": "Created Stopwatch '%s'", + "commands.stopwatch.does_not_exist": "Stopwatch '%s' does not exist", + "commands.stopwatch.query": "Stopwatch '%s' has run for %ss", + "commands.stopwatch.remove.success": "Removed Stopwatch '%s'", + "commands.stopwatch.restart.success": "Restarted Stopwatch '%s'", "commands.summon.failed": "Unable to summon entity", "commands.summon.failed.peaceful": "Monsters cannot be summoned in Peaceful difficulty", "commands.summon.failed.uuid": "Unable to summon entity due to duplicate UUIDs", @@ -3148,6 +3156,7 @@ "controls.resetAll": "Reset Keys", "controls.title": "Controls", "createWorld.customize.buffet.biome": "Please select a biome", + "createWorld.customize.buffet.search": "Search...", "createWorld.customize.buffet.title": "Single Biome Customization", "createWorld.customize.flat.height": "Height", "createWorld.customize.flat.layer": "%s", @@ -3266,6 +3275,8 @@ "death.attack.sonic_boom": "%1$s was obliterated by a sonically-charged shriek", "death.attack.sonic_boom.item": "%1$s was obliterated by a sonically-charged shriek while trying to escape %2$s wielding %3$s", "death.attack.sonic_boom.player": "%1$s was obliterated by a sonically-charged shriek while trying to escape %2$s", + "death.attack.spear": "%1$s was speared by %2$s", + "death.attack.spear.item": "%1$s was speared by %2$s using %3$s", "death.attack.stalagmite": "%1$s was impaled on a stalagmite", "death.attack.stalagmite.player": "%1$s was impaled on a stalagmite while fighting %2$s", "death.attack.starve": "%1$s starved to death", @@ -3315,6 +3326,7 @@ "debug.copy_location.help": "F3 + C = Copy location as /tp command, or hold for 10 seconds to crash the game", "debug.copy_location.message": "Copied location to clipboard", "debug.crash.message": "F3 + C is held down. This will crash the game unless released.", + "debug.crash.message.rebindable": "%s + %s is held down. This will crash the game unless released.", "debug.crash.warning": "Crashing in %s...", "debug.creative_spectator.error": "Unable to switch game mode; no permission", "debug.creative_spectator.help": "F3 + N = Cycle previous game mode <-> spectator", @@ -3323,8 +3335,10 @@ "debug.entry.always": "Always", "debug.entry.currently.alwaysOn": "%s: Currently always on", "debug.entry.currently.inF3": "%s: Currently only in F3", + "debug.entry.currently.inOverlay": "%s: Currently only in debug overlay", "debug.entry.currently.never": "%s: Currently off", "debug.entry.f3": "In F3", + "debug.entry.overlay": "In Overlay", "debug.gamemodes.error": "Unable to open game mode switcher; no permission", "debug.gamemodes.help": "F3 + F4 = Open game mode switcher", "debug.gamemodes.press_f4": "[ F4 ]", @@ -3352,6 +3366,7 @@ "debug.prefix": "[Debug]:", "debug.profiling.help": "F3 + L = Start/stop profiling", "debug.profiling.start": "Profiling started for %s seconds. Use F3 + L to stop early", + "debug.profiling.start.rebindable": "Profiling started for %s seconds. Use %s + %s to stop early", "debug.profiling.stop": "Profiling ended. Saved results to %s", "debug.reload_chunks.help": "F3 + A = Reload chunks", "debug.reload_chunks.message": "Reloading all chunks", @@ -3408,6 +3423,7 @@ "effect.minecraft.absorption": "Absorption", "effect.minecraft.bad_omen": "Bad Omen", "effect.minecraft.blindness": "Blindness", + "effect.minecraft.breath_of_the_nautilus": "Breath of the Nautilus", "effect.minecraft.conduit_power": "Conduit Power", "effect.minecraft.darkness": "Darkness", "effect.minecraft.dolphins_grace": "Dolphin's Grace", @@ -3476,6 +3492,7 @@ "enchantment.minecraft.looting": "Looting", "enchantment.minecraft.loyalty": "Loyalty", "enchantment.minecraft.luck_of_the_sea": "Luck of the Sea", + "enchantment.minecraft.lunge": "Lunge", "enchantment.minecraft.lure": "Lure", "enchantment.minecraft.mending": "Mending", "enchantment.minecraft.multishot": "Multishot", @@ -3519,6 +3536,7 @@ "entity.minecraft.breeze": "Breeze", "entity.minecraft.breeze_wind_charge": "Wind Charge", "entity.minecraft.camel": "Camel", + "entity.minecraft.camel_husk": "Camel Husk", "entity.minecraft.cat": "Cat", "entity.minecraft.cave_spider": "Cave Spider", "entity.minecraft.cherry_boat": "Cherry Boat", @@ -3593,6 +3611,7 @@ "entity.minecraft.minecart": "Minecart", "entity.minecraft.mooshroom": "Mooshroom", "entity.minecraft.mule": "Mule", + "entity.minecraft.nautilus": "Nautilus", "entity.minecraft.oak_boat": "Oak Boat", "entity.minecraft.oak_chest_boat": "Oak Boat with Chest", "entity.minecraft.ocelot": "Ocelot", @@ -3601,6 +3620,7 @@ "entity.minecraft.pale_oak_boat": "Pale Oak Boat", "entity.minecraft.pale_oak_chest_boat": "Pale Oak Boat with Chest", "entity.minecraft.panda": "Panda", + "entity.minecraft.parched": "Parched", "entity.minecraft.parrot": "Parrot", "entity.minecraft.phantom": "Phantom", "entity.minecraft.pig": "Pig", @@ -3705,6 +3725,7 @@ "entity.minecraft.zoglin": "Zoglin", "entity.minecraft.zombie": "Zombie", "entity.minecraft.zombie_horse": "Zombie Horse", + "entity.minecraft.zombie_nautilus": "Zombie Nautilus", "entity.minecraft.zombie_villager": "Zombie Villager", "entity.minecraft.zombified_piglin": "Zombified Piglin", "entity.not_summonable": "Can't summon entity of type %s", @@ -3813,6 +3834,11 @@ "gamerule.maxEntityCramming": "Entity cramming threshold", "gamerule.minecartMaxSpeed": "Minecart max speed", "gamerule.minecartMaxSpeed.description": "Maximum default speed of a moving Minecart on land.", + "gamerule.minecraft.elytra_movement_check": "Do elytra movement check", + "gamerule.minecraft.fire_spread_radius_around_player": "Fire spread radius", + "gamerule.minecraft.fire_spread_radius_around_player.description": "The radius in blocks around a player in which fire can spread", + "gamerule.minecraft.player_movement_check": "Do player movement check", + "gamerule.minecraft.raids": "Do raids", "gamerule.mobExplosionDropDecay": "In mob explosions, some blocks won't drop their loot", "gamerule.mobExplosionDropDecay.description": "Some of the drops from blocks destroyed by explosions caused by mobs are lost in the explosion.", "gamerule.mobGriefing": "Allow destructive mob actions", @@ -4001,6 +4027,7 @@ "gui.fileDropFailure.detail": "Rejected %s files", "gui.fileDropFailure.title": "Failed to add files", "gui.hours": "%s hour(s)", + "gui.language.search": "Search...", "gui.loadingMinecraft": "Loading Minecraft", "gui.minutes": "%s minute(s)", "gui.multiLineEditBox.character_limit": "%s/%s", @@ -4085,6 +4112,7 @@ "item.disabled": "Disabled item", "item.durability": "Durability: %s / %s", "item.dyed": "Dyed", + "item.intangible": "Intangible", "item.minecraft.acacia_boat": "Acacia Boat", "item.minecraft.acacia_chest_boat": "Acacia Boat with Chest", "item.minecraft.allay_spawn_egg": "Allay Spawn Egg", @@ -4154,6 +4182,7 @@ "item.minecraft.bundle.fullness": "%s/%s", "item.minecraft.burn_pottery_shard": "Burn Pottery Shard", "item.minecraft.burn_pottery_sherd": "Burn Pottery Sherd", + "item.minecraft.camel_husk_spawn_egg": "Camel Husk Spawn Egg", "item.minecraft.camel_spawn_egg": "Camel Spawn Egg", "item.minecraft.carrot": "Carrot", "item.minecraft.carrot_on_a_stick": "Carrot on a Stick", @@ -4199,9 +4228,11 @@ "item.minecraft.copper_horse_armor": "Copper Horse Armor", "item.minecraft.copper_ingot": "Copper Ingot", "item.minecraft.copper_leggings": "Copper Leggings", + "item.minecraft.copper_nautilus_armor": "Copper Nautilus Armor", "item.minecraft.copper_nugget": "Copper Nugget", "item.minecraft.copper_pickaxe": "Copper Pickaxe", "item.minecraft.copper_shovel": "Copper Shovel", + "item.minecraft.copper_spear": "Copper Spear", "item.minecraft.copper_sword": "Copper Sword", "item.minecraft.cow_spawn_egg": "Cow Spawn Egg", "item.minecraft.creaking_spawn_egg": "Creaking Spawn Egg", @@ -4232,8 +4263,10 @@ "item.minecraft.diamond_hoe": "Diamond Hoe", "item.minecraft.diamond_horse_armor": "Diamond Horse Armor", "item.minecraft.diamond_leggings": "Diamond Leggings", + "item.minecraft.diamond_nautilus_armor": "Diamond Nautilus Armor", "item.minecraft.diamond_pickaxe": "Diamond Pickaxe", "item.minecraft.diamond_shovel": "Diamond Shovel", + "item.minecraft.diamond_spear": "Diamond Spear", "item.minecraft.diamond_sword": "Diamond Sword", "item.minecraft.disc_fragment_5": "Disc Fragment", "item.minecraft.disc_fragment_5.desc": "Music Disc - 5", @@ -4342,8 +4375,10 @@ "item.minecraft.golden_hoe": "Golden Hoe", "item.minecraft.golden_horse_armor": "Golden Horse Armor", "item.minecraft.golden_leggings": "Golden Leggings", + "item.minecraft.golden_nautilus_armor": "Golden Nautilus Armor", "item.minecraft.golden_pickaxe": "Golden Pickaxe", "item.minecraft.golden_shovel": "Golden Shovel", + "item.minecraft.golden_spear": "Golden Spear", "item.minecraft.golden_sword": "Golden Sword", "item.minecraft.gray_bundle": "Gray Bundle", "item.minecraft.gray_dye": "Gray Dye", @@ -4384,9 +4419,11 @@ "item.minecraft.iron_horse_armor": "Iron Horse Armor", "item.minecraft.iron_ingot": "Iron Ingot", "item.minecraft.iron_leggings": "Iron Leggings", + "item.minecraft.iron_nautilus_armor": "Iron Nautilus Armor", "item.minecraft.iron_nugget": "Iron Nugget", "item.minecraft.iron_pickaxe": "Iron Pickaxe", "item.minecraft.iron_shovel": "Iron Shovel", + "item.minecraft.iron_spear": "Iron Spear", "item.minecraft.iron_sword": "Iron Sword", "item.minecraft.item_frame": "Item Frame", "item.minecraft.jungle_boat": "Jungle Boat", @@ -4507,6 +4544,7 @@ "item.minecraft.mutton": "Raw Mutton", "item.minecraft.name_tag": "Name Tag", "item.minecraft.nautilus_shell": "Nautilus Shell", + "item.minecraft.nautilus_spawn_egg": "Nautilus Spawn Egg", "item.minecraft.nether_brick": "Nether Brick", "item.minecraft.nether_star": "Nether Star", "item.minecraft.nether_wart": "Nether Wart", @@ -4517,9 +4555,11 @@ "item.minecraft.netherite_hoe": "Netherite Hoe", "item.minecraft.netherite_ingot": "Netherite Ingot", "item.minecraft.netherite_leggings": "Netherite Leggings", + "item.minecraft.netherite_nautilus_armor": "Netherite Nautilus Armor", "item.minecraft.netherite_pickaxe": "Netherite Pickaxe", "item.minecraft.netherite_scrap": "Netherite Scrap", "item.minecraft.netherite_shovel": "Netherite Shovel", + "item.minecraft.netherite_spear": "Netherite Spear", "item.minecraft.netherite_sword": "Netherite Sword", "item.minecraft.netherite_upgrade_smithing_template": "Smithing Template", "item.minecraft.netherite_upgrade_smithing_template.new": "Netherite Upgrade", @@ -4536,6 +4576,7 @@ "item.minecraft.pale_oak_chest_boat": "Pale Oak Boat with Chest", "item.minecraft.panda_spawn_egg": "Panda Spawn Egg", "item.minecraft.paper": "Paper", + "item.minecraft.parched_spawn_egg": "Parched Spawn Egg", "item.minecraft.parrot_spawn_egg": "Parrot Spawn Egg", "item.minecraft.phantom_membrane": "Phantom Membrane", "item.minecraft.phantom_spawn_egg": "Phantom Spawn Egg", @@ -4732,6 +4773,7 @@ "item.minecraft.stone_hoe": "Stone Hoe", "item.minecraft.stone_pickaxe": "Stone Pickaxe", "item.minecraft.stone_shovel": "Stone Shovel", + "item.minecraft.stone_spear": "Stone Spear", "item.minecraft.stone_sword": "Stone Sword", "item.minecraft.stray_spawn_egg": "Stray Spawn Egg", "item.minecraft.strider_spawn_egg": "Strider Spawn Egg", @@ -4812,6 +4854,7 @@ "item.minecraft.wooden_hoe": "Wooden Hoe", "item.minecraft.wooden_pickaxe": "Wooden Pickaxe", "item.minecraft.wooden_shovel": "Wooden Shovel", + "item.minecraft.wooden_spear": "Wooden Spear", "item.minecraft.wooden_sword": "Wooden Sword", "item.minecraft.writable_book": "Book and Quill", "item.minecraft.written_book": "Written Book", @@ -4820,6 +4863,7 @@ "item.minecraft.yellow_harness": "Yellow Harness", "item.minecraft.zoglin_spawn_egg": "Zoglin Spawn Egg", "item.minecraft.zombie_horse_spawn_egg": "Zombie Horse Spawn Egg", + "item.minecraft.zombie_nautilus_spawn_egg": "Zombie Nautilus Spawn Egg", "item.minecraft.zombie_spawn_egg": "Zombie Spawn Egg", "item.minecraft.zombie_villager_spawn_egg": "Zombie Villager Spawn Egg", "item.minecraft.zombified_piglin_spawn_egg": "Zombified Piglin Spawn Egg", @@ -4903,6 +4947,7 @@ "key.categories.spectator": "Spectator", "key.categories.ui": "Game Interface", "key.category.minecraft.creative": "Creative Mode", + "key.category.minecraft.debug": "Debug", "key.category.minecraft.gameplay": "Gameplay", "key.category.minecraft.inventory": "Inventory", "key.category.minecraft.misc": "Miscellaneous", @@ -4911,6 +4956,27 @@ "key.category.minecraft.spectator": "Spectator", "key.chat": "Open Chat", "key.command": "Open Command", + "key.debug.clearChat": "Clear Chat", + "key.debug.copyLocation": "Copy Location", + "key.debug.copyRecreateCommand": "Copy Data", + "key.debug.crash": "Debug Crash", + "key.debug.debugOptions": "Debug Options", + "key.debug.dumpDynamicTextures": "Dump Dynamic Textures", + "key.debug.dumpVersion": "Dump Version Info", + "key.debug.focusPause": "Toggle Lost Focus Pause", + "key.debug.fpsCharts": "FPS Charts", + "key.debug.modifier": "Debug Modifier Key", + "key.debug.networkCharts": "Network Charts", + "key.debug.overlay": "Toggle Overlay", + "key.debug.profiling": "Start/Stop Profiling", + "key.debug.profilingChart": "Profiling Chart", + "key.debug.reloadChunk": "Reload Chunks", + "key.debug.reloadResourcePacks": "Reload Resource Packs", + "key.debug.showAdvancedTooltips": "Show Advanced Tooltips", + "key.debug.showChunkBorders": "Show Chunk Boundaries", + "key.debug.showHitboxes": "Show Hitboxes", + "key.debug.spectate": "Cycle Spectator", + "key.debug.switchGameMode": "Game Mode Switcher", "key.drop": "Drop Selected Item", "key.forward": "Walk Forward", "key.fullscreen": "Toggle Fullscreen", @@ -5029,7 +5095,9 @@ "key.spectatorOutlines": "Highlight Players", "key.sprint": "Sprint", "key.swapOffhand": "Swap Item With Off Hand", + "key.toggleGui": "Toggle GUI", "key.togglePerspective": "Toggle Perspective", + "key.toggleSpectatorShaderEffects": "Toggle Spectator Shader Effects", "key.use": "Use Item/Place Block", "known_server_link.announcements": "Announcements", "known_server_link.community": "Community", @@ -5087,6 +5155,12 @@ "mco.backup.entry.undefined": "Undefined Change", "mco.backup.entry.uploaded": "Uploaded", "mco.backup.entry.worldType": "World Type", + "mco.backup.entry.worldType.adventureMap": "Adventure Map", + "mco.backup.entry.worldType.experience": "Experience", + "mco.backup.entry.worldType.inspiration": "Inspiration", + "mco.backup.entry.worldType.minigame": "Minigame", + "mco.backup.entry.worldType.normal": "Normal", + "mco.backup.entry.worldType.unknown": "Unknown", "mco.backup.generate.world": "Generate world", "mco.backup.info.title": "Changes From Last Backup", "mco.backup.narration": "Backup from %s", @@ -5167,6 +5241,7 @@ "mco.configure.world.location": "Location", "mco.configure.world.minigame": "Current: %s", "mco.configure.world.name": "Realm Name", + "mco.configure.world.name.validation.whitespace": "Must not start or end with whitespace. It will be trimmed.", "mco.configure.world.opening": "Opening the Realm...", "mco.configure.world.players.error": "A player with the provided name does not exist", "mco.configure.world.players.invite.duplicate": "A player with the provided name has already been invited to the Realm", @@ -5622,7 +5697,11 @@ "narration.button.usage.hovered": "Left click to activate", "narration.checkbox": "Checkbox: %s", "narration.checkbox.usage.focused": "Press Enter to toggle", + "narration.checkbox.usage.focused.check": "Press Enter to check", + "narration.checkbox.usage.focused.uncheck": "Press Enter to uncheck", "narration.checkbox.usage.hovered": "Left click to toggle", + "narration.checkbox.usage.hovered.check": "Left click to check", + "narration.checkbox.usage.hovered.uncheck": "Left click to uncheck", "narration.component_list.usage": "Press Tab to navigate to the next element", "narration.cycle_button.usage.focused": "Press Enter to switch to %s", "narration.cycle_button.usage.hovered": "Left click to switch to %s", @@ -5727,6 +5806,7 @@ "options.biomeBlendRadius.11": "11x11 (Extreme)", "options.biomeBlendRadius.13": "13x13 (Showoff)", "options.biomeBlendRadius.15": "15x15 (Maximum)", + "options.blocks": "%s Blocks", "options.chat": "Chat Settings...", "options.chat.color": "Colors", "options.chat.delay": "Chat Delay: %s second(s)", @@ -5746,11 +5826,17 @@ "options.chat.visibility.hidden": "Hidden", "options.chat.visibility.system": "Commands Only", "options.chat.width": "Width", + "options.chunkFade": "Chunk Fade Time", + "options.chunkFade.none": "Chunk Fade: None", + "options.chunkFade.seconds": "Chunk Fade: %s second(s)", + "options.chunkFade.tooltip": "How long in seconds chunks should fade in when they're first rendered, if at all.", "options.chunks": "%s Chunks", "options.clouds.fancy": "Fancy", "options.clouds.fast": "Fast", "options.controls": "Controls...", "options.credits_and_attribution": "Credits & Attribution...", + "options.cutoutLeaves": "See-Through Leaves", + "options.cutoutLeaves.tooltip": "Allows to see through gaps in leaves. Disabling may improve performance.", "options.damageTiltStrength": "Damage Tilt", "options.damageTiltStrength.tooltip": "The amount of camera shake caused by being hurt.", "options.darkMojangStudiosBackgroundColor": "Monochrome Logo", @@ -5800,12 +5886,15 @@ "options.glintStrength": "Glint Strength", "options.glintStrength.tooltip": "Controls how transparent the visual glint is on enchanted items.", "options.graphics": "Graphics", + "options.graphics.custom": "Custom", "options.graphics.fabulous": "Fabulous!", "options.graphics.fabulous.tooltip": "%s graphics uses screen shaders for drawing weather, clouds, and particles behind translucent blocks and water.\nThis may severely impact performance for portable devices and 4K displays.", "options.graphics.fancy": "Fancy", "options.graphics.fancy.tooltip": "Fancy graphics balances performance and quality for the majority of machines.\nWeather, clouds, and particles may not appear behind translucent blocks or water.", "options.graphics.fast": "Fast", "options.graphics.fast.tooltip": "Fast graphics reduces the amount of visible rain and snow.\nTransparency effects are disabled for various blocks such as leaves.", + "options.graphics.preset": "Preset", + "options.graphics.preset.tooltip": "Sets \"Quality & Performance\" settings to reasonable defaults corresponding to the desired quality.", "options.graphics.warning.accept": "Continue Without Support", "options.graphics.warning.cancel": "Take Me Back", "options.graphics.warning.message": "Your graphics device is detected as unsupported for the %s graphics option.\n\nYou may ignore this and continue, however support will not be provided for your device if you choose to use %s graphics.", @@ -5822,6 +5911,8 @@ "options.hideMatchedNames.tooltip": "3rd-party Servers may send chat messages in non-standard formats.\nWith this option on, hidden players will be matched based on chat sender names.", "options.hideSplashTexts": "Hide Splash Texts", "options.hideSplashTexts.tooltip": "Hides the yellow splash text in the main menu.", + "options.improvedTransparency": "Improved Transparency", + "options.improvedTransparency.tooltip": "An experimental approach that uses screen shaders for drawing weather, clouds, and particles behind translucent blocks and water.\nThis will impact GPU performance.", "options.inactivityFpsLimit": "Reduce FPS when", "options.inactivityFpsLimit.afk": "AFK", "options.inactivityFpsLimit.afk.tooltip": "Limits framerate to 30 when the game is not getting any player input for more than a minute. Further limits it to 10 after 9 more minutes.", @@ -5841,6 +5932,8 @@ "options.mainHand": "Main Hand", "options.mainHand.left": "Left", "options.mainHand.right": "Right", + "options.maxAnisotropy": "Anisotropic Filtering", + "options.maxAnisotropy.tooltip": "Significantly improves how smooth textures look, but impacts performance and significantly impacts video memory usage. May not be supported on all hardware.", "options.mipmapLevels": "Mipmap Levels", "options.modelPart.cape": "Cape", "options.modelPart.hat": "Hat", @@ -5927,10 +6020,18 @@ "options.touchscreen": "Touchscreen Mode", "options.value": "%s", "options.video": "Video Settings...", + "options.video.display.header": "Display", + "options.video.interface.header": "Interface", + "options.video.preferences.header": "Preferences", + "options.video.quality.header": "Quality & Performance", "options.videoTitle": "Video Settings", "options.viewBobbing": "View Bobbing", + "options.vignette": "Show Vignette", + "options.vignette.tooltip": "This is a subtle texture over the game screen used for reducing brightness towards the edges of the screen and warning about the world border.", "options.visible": "Shown", "options.vsync": "VSync", + "options.weatherRadius": "Weather Effect Radius", + "options.weatherRadius.tooltip": "Radius of the area where rain and snow effects are visible. Very low performance impact.", "outOfMemory.message": "Minecraft has run out of memory.\n\nThis could be caused by a bug in the game or by the Java Virtual Machine not being allocated enough memory.\n\nTo prevent world corruption, the current game has quit. We've tried to free up enough memory to let you go back to the main menu and back to playing, but this may not have worked.\n\nPlease restart the game if you see this message again.", "outOfMemory.title": "Out of memory!", "pack.available.title": "Available", @@ -6390,6 +6491,7 @@ "stat.minecraft.leave_game": "Games Quit", "stat.minecraft.minecart_one_cm": "Distance by Minecart", "stat.minecraft.mob_kills": "Mob Kills", + "stat.minecraft.nautilus_one_cm": "Distance by Nautilus", "stat.minecraft.open_barrel": "Barrels Opened", "stat.minecraft.open_chest": "Chests Opened", "stat.minecraft.open_enderchest": "Ender Chests Opened", @@ -6665,6 +6767,11 @@ "subtitles.entity.axolotl.idle_water": "Axolotl chirps", "subtitles.entity.axolotl.splash": "Axolotl splashes", "subtitles.entity.axolotl.swim": "Axolotl swims", + "subtitles.entity.baby_nautilus.ambient": "Baby Nautilus chitters", + "subtitles.entity.baby_nautilus.death": "Baby Nautilus dies", + "subtitles.entity.baby_nautilus.eat": "Baby Nautilus eats", + "subtitles.entity.baby_nautilus.hurt": "Baby Nautilus hurts", + "subtitles.entity.baby_nautilus.swim": "Baby Nautilus swims", "subtitles.entity.bat.ambient": "Bat screeches", "subtitles.entity.bat.death": "Bat dies", "subtitles.entity.bat.hurt": "Bat hurts", @@ -6699,6 +6806,15 @@ "subtitles.entity.breeze.slide": "Breeze slides", "subtitles.entity.breeze.whirl": "Breeze whirls", "subtitles.entity.breeze.wind_burst": "Wind Charge bursts", + "subtitles.entity.camel_husk.ambient": "Camel Husk grumphs", + "subtitles.entity.camel_husk.dash": "Camel Husk yeets", + "subtitles.entity.camel_husk.dash_ready": "Camel Husk recovers", + "subtitles.entity.camel_husk.death": "Camel Husk dies", + "subtitles.entity.camel_husk.eat": "Camel Husk eats", + "subtitles.entity.camel_husk.hurt": "Camel Husk hurts", + "subtitles.entity.camel_husk.saddle": "Saddle equips", + "subtitles.entity.camel_husk.sit": "Camel Husk sits down", + "subtitles.entity.camel_husk.stand": "Camel Husk stands up", "subtitles.entity.camel.ambient": "Camel grunts", "subtitles.entity.camel.dash": "Camel yeets", "subtitles.entity.camel.dash_ready": "Camel recovers", @@ -6963,6 +7079,13 @@ "subtitles.entity.mule.eat": "Mule eats", "subtitles.entity.mule.hurt": "Mule hurts", "subtitles.entity.mule.jump": "Mule jumps", + "subtitles.entity.nautilus.ambient": "Nautilus clacks", + "subtitles.entity.nautilus.dash": "Nautilus jets", + "subtitles.entity.nautilus.dash_ready": "Nautilus recovers", + "subtitles.entity.nautilus.death": "Nautilus dies", + "subtitles.entity.nautilus.eat": "Nautilus eats", + "subtitles.entity.nautilus.hurt": "Nautilus hurts", + "subtitles.entity.nautilus.swim": "Nautilus swims", "subtitles.entity.painting.break": "Painting broken", "subtitles.entity.painting.place": "Painting placed", "subtitles.entity.panda.aggressive_ambient": "Panda huffs", @@ -6976,6 +7099,9 @@ "subtitles.entity.panda.sneeze": "Panda sneezes", "subtitles.entity.panda.step": "Panda steps", "subtitles.entity.panda.worried_ambient": "Panda whimpers", + "subtitles.entity.parched.ambient": "Stray rattles", + "subtitles.entity.parched.death": "Stray dies", + "subtitles.entity.parched.hurt": "Stray hurts", "subtitles.entity.parrot.ambient": "Parrot talks", "subtitles.entity.parrot.death": "Parrot dies", "subtitles.entity.parrot.eats": "Parrot eats", @@ -6984,6 +7110,7 @@ "subtitles.entity.parrot.imitate.blaze": "Parrot breathes", "subtitles.entity.parrot.imitate.bogged": "Parrot rattles", "subtitles.entity.parrot.imitate.breeze": "Parrot whirs", + "subtitles.entity.parrot.imitate.camel_husk": "Parrot grumphs", "subtitles.entity.parrot.imitate.creaking": "Parrot creaks", "subtitles.entity.parrot.imitate.creeper": "Parrot hisses", "subtitles.entity.parrot.imitate.drowned": "Parrot gurgles", @@ -6997,6 +7124,7 @@ "subtitles.entity.parrot.imitate.husk": "Parrot groans", "subtitles.entity.parrot.imitate.illusioner": "Parrot murmurs", "subtitles.entity.parrot.imitate.magma_cube": "Parrot squishes", + "subtitles.entity.parrot.imitate.parched": "Parrot crackles", "subtitles.entity.parrot.imitate.phantom": "Parrot screeches", "subtitles.entity.parrot.imitate.piglin": "Parrot snorts", "subtitles.entity.parrot.imitate.piglin_brute": "Parrot snorts", @@ -7016,6 +7144,8 @@ "subtitles.entity.parrot.imitate.wither_skeleton": "Parrot rattles", "subtitles.entity.parrot.imitate.zoglin": "Parrot growls", "subtitles.entity.parrot.imitate.zombie": "Parrot groans", + "subtitles.entity.parrot.imitate.zombie_horse": "Parrot groans", + "subtitles.entity.parrot.imitate.zombie_nautilus": "Parrot gargles", "subtitles.entity.parrot.imitate.zombie_villager": "Parrot groans", "subtitles.entity.phantom.ambient": "Phantom screeches", "subtitles.entity.phantom.bite": "Phantom bites", @@ -7260,8 +7390,16 @@ "subtitles.entity.zoglin.hurt": "Zoglin hurts", "subtitles.entity.zoglin.step": "Zoglin steps", "subtitles.entity.zombie_horse.ambient": "Zombie Horse cries", + "subtitles.entity.zombie_horse.angry": "Zombie Horse neighs", "subtitles.entity.zombie_horse.death": "Zombie Horse dies", "subtitles.entity.zombie_horse.hurt": "Zombie Horse hurts", + "subtitles.entity.zombie_nautilus.ambient": "Zombie Nautilus burbles", + "subtitles.entity.zombie_nautilus.dash": "Zombie Nautilus jets", + "subtitles.entity.zombie_nautilus.dash_ready": "Zombie Nautilus recovers", + "subtitles.entity.zombie_nautilus.death": "Zombie Nautilus dies", + "subtitles.entity.zombie_nautilus.eat": "Zombie Nautilus eats", + "subtitles.entity.zombie_nautilus.hurt": "Zombie Nautilus hurts", + "subtitles.entity.zombie_nautilus.swim": "Zombie Nautilus swims", "subtitles.entity.zombie_villager.ambient": "Zombie Villager groans", "subtitles.entity.zombie_villager.converted": "Zombie Villager vociferates", "subtitles.entity.zombie_villager.cure": "Zombie Villager snuffles", @@ -7291,9 +7429,11 @@ "subtitles.item.armor.equip_gold": "Gold armor clinks", "subtitles.item.armor.equip_iron": "Iron armor clanks", "subtitles.item.armor.equip_leather": "Leather armor rustles", + "subtitles.item.armor.equip_nautilus": "Nautilus Armor equips", "subtitles.item.armor.equip_netherite": "Netherite armor clanks", "subtitles.item.armor.equip_turtle": "Turtle Shell thunks", "subtitles.item.armor.equip_wolf": "Wolf Armor is fastened", + "subtitles.item.armor.unequip_nautilus": "Nautilus Armor unequips", "subtitles.item.armor.unequip_wolf": "Wolf Armor snips away", "subtitles.item.axe.scrape": "Axe scrapes", "subtitles.item.axe.strip": "Axe strips", @@ -7341,6 +7481,8 @@ "subtitles.item.lodestone_compass.lock": "Lodestone Compass locks onto Lodestone", "subtitles.item.mace.smash_air": "Mace smashes", "subtitles.item.mace.smash_ground": "Mace smashes", + "subtitles.item.nautilus_saddle_equip": "Saddle equips", + "subtitles.item.nautilus_saddle_underwater_equip": "Saddle equips", "subtitles.item.nether_wart.plant": "Crop planted", "subtitles.item.ominous_bottle.dispose": "Bottle breaks", "subtitles.item.saddle.unequip": "Saddle snips away", @@ -7348,6 +7490,13 @@ "subtitles.item.shears.snip": "Shears snip", "subtitles.item.shield.block": "Shield blocks", "subtitles.item.shovel.flatten": "Shovel flattens", + "subtitles.item.spear_wood.attack": "Spear jabs", + "subtitles.item.spear_wood.hit": "Spear hits", + "subtitles.item.spear_wood.use": "Charges with Spear", + "subtitles.item.spear.attack": "Spear jabs", + "subtitles.item.spear.hit": "Spear hits", + "subtitles.item.spear.lunge": "Spear lunges", + "subtitles.item.spear.use": "Charges with Spear", "subtitles.item.spyglass.stop_using": "Spyglass retracts", "subtitles.item.spyglass.use": "Spyglass expands", "subtitles.item.totem.use": "Totem activates", @@ -7357,6 +7506,7 @@ "subtitles.item.trident.riptide": "Trident zooms", "subtitles.item.trident.throw": "Trident clangs", "subtitles.item.trident.thunder": "Trident thunder cracks", + "subtitles.item.underwater_saddle.equip": "Saddle equips", "subtitles.item.wolf_armor.break": "Wolf Armor breaks", "subtitles.item.wolf_armor.crack": "Wolf Armor cracks", "subtitles.item.wolf_armor.damage": "Wolf Armor takes damage", diff --git a/azalea-protocol/src/packets/mod.rs b/azalea-protocol/src/packets/mod.rs index cbcf4d6dd..3c08a64b6 100644 --- a/azalea-protocol/src/packets/mod.rs +++ b/azalea-protocol/src/packets/mod.rs @@ -11,8 +11,8 @@ use azalea_buf::{AzaleaReadVar, AzaleaWrite, AzaleaWriteVar, BufReadError}; use crate::read::ReadPacketError; -pub const PROTOCOL_VERSION: i32 = 773; -pub const VERSION_NAME: &str = "1.21.10"; +pub const PROTOCOL_VERSION: i32 = 1073742100; +pub const VERSION_NAME: &str = "25w44a"; #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] pub enum ConnectionProtocol { diff --git a/azalea-registry/src/lib.rs b/azalea-registry/src/lib.rs index 88b154a24..92814db9f 100644 --- a/azalea-registry/src/lib.rs +++ b/azalea-registry/src/lib.rs @@ -1694,6 +1694,7 @@ enum CustomStat { AviateOneCm => "minecraft:aviate_one_cm", SwimOneCm => "minecraft:swim_one_cm", StriderOneCm => "minecraft:strider_one_cm", + NautilusOneCm => "minecraft:nautilus_one_cm", Jump => "minecraft:jump", Drop => "minecraft:drop", DamageDealt => "minecraft:damage_dealt", @@ -1774,6 +1775,7 @@ enum EntityKind { Breeze => "minecraft:breeze", BreezeWindCharge => "minecraft:breeze_wind_charge", Camel => "minecraft:camel", + CamelHusk => "minecraft:camel_husk", Cat => "minecraft:cat", CaveSpider => "minecraft:cave_spider", CherryBoat => "minecraft:cherry_boat", @@ -1841,6 +1843,7 @@ enum EntityKind { Minecart => "minecraft:minecart", Mooshroom => "minecraft:mooshroom", Mule => "minecraft:mule", + Nautilus => "minecraft:nautilus", OakBoat => "minecraft:oak_boat", OakChestBoat => "minecraft:oak_chest_boat", Ocelot => "minecraft:ocelot", @@ -1849,6 +1852,7 @@ enum EntityKind { PaleOakBoat => "minecraft:pale_oak_boat", PaleOakChestBoat => "minecraft:pale_oak_chest_boat", Panda => "minecraft:panda", + Parched => "minecraft:parched", Parrot => "minecraft:parrot", Phantom => "minecraft:phantom", Pig => "minecraft:pig", @@ -1903,6 +1907,7 @@ enum EntityKind { Zoglin => "minecraft:zoglin", Zombie => "minecraft:zombie", ZombieHorse => "minecraft:zombie_horse", + ZombieNautilus => "minecraft:zombie_nautilus", ZombieVillager => "minecraft:zombie_villager", ZombifiedPiglin => "minecraft:zombified_piglin", Player => "minecraft:player", @@ -3168,6 +3173,7 @@ enum Item { BreezeSpawnEgg => "minecraft:breeze_spawn_egg", CatSpawnEgg => "minecraft:cat_spawn_egg", CamelSpawnEgg => "minecraft:camel_spawn_egg", + CamelHuskSpawnEgg => "minecraft:camel_husk_spawn_egg", CaveSpiderSpawnEgg => "minecraft:cave_spider_spawn_egg", ChickenSpawnEgg => "minecraft:chicken_spawn_egg", CodSpawnEgg => "minecraft:cod_spawn_egg", @@ -3197,8 +3203,10 @@ enum Item { MagmaCubeSpawnEgg => "minecraft:magma_cube_spawn_egg", MooshroomSpawnEgg => "minecraft:mooshroom_spawn_egg", MuleSpawnEgg => "minecraft:mule_spawn_egg", + NautilusSpawnEgg => "minecraft:nautilus_spawn_egg", OcelotSpawnEgg => "minecraft:ocelot_spawn_egg", PandaSpawnEgg => "minecraft:panda_spawn_egg", + ParchedSpawnEgg => "minecraft:parched_spawn_egg", ParrotSpawnEgg => "minecraft:parrot_spawn_egg", PhantomSpawnEgg => "minecraft:phantom_spawn_egg", PigSpawnEgg => "minecraft:pig_spawn_egg", @@ -3241,6 +3249,7 @@ enum Item { ZombieHorseSpawnEgg => "minecraft:zombie_horse_spawn_egg", ZombieVillagerSpawnEgg => "minecraft:zombie_villager_spawn_egg", ZombifiedPiglinSpawnEgg => "minecraft:zombified_piglin_spawn_egg", + ZombieNautilusSpawnEgg => "minecraft:zombie_nautilus_spawn_egg", ExperienceBottle => "minecraft:experience_bottle", FireCharge => "minecraft:fire_charge", WindCharge => "minecraft:wind_charge", @@ -3319,6 +3328,13 @@ enum Item { TippedArrow => "minecraft:tipped_arrow", LingeringPotion => "minecraft:lingering_potion", Shield => "minecraft:shield", + WoodenSpear => "minecraft:wooden_spear", + StoneSpear => "minecraft:stone_spear", + CopperSpear => "minecraft:copper_spear", + IronSpear => "minecraft:iron_spear", + GoldenSpear => "minecraft:golden_spear", + DiamondSpear => "minecraft:diamond_spear", + NetheriteSpear => "minecraft:netherite_spear", TotemOfUndying => "minecraft:totem_of_undying", ShulkerShell => "minecraft:shulker_shell", IronNugget => "minecraft:iron_nugget", @@ -3349,6 +3365,11 @@ enum Item { DiscFragment5 => "minecraft:disc_fragment_5", Trident => "minecraft:trident", NautilusShell => "minecraft:nautilus_shell", + IronNautilusArmor => "minecraft:iron_nautilus_armor", + GoldenNautilusArmor => "minecraft:golden_nautilus_armor", + DiamondNautilusArmor => "minecraft:diamond_nautilus_armor", + NetheriteNautilusArmor => "minecraft:netherite_nautilus_armor", + CopperNautilusArmor => "minecraft:copper_nautilus_armor", HeartOfTheSea => "minecraft:heart_of_the_sea", Crossbow => "minecraft:crossbow", SuspiciousStew => "minecraft:suspicious_stew", @@ -3585,6 +3606,7 @@ enum LootFunctionKind { ToggleTooltips => "minecraft:toggle_tooltips", SetOminousBottleAmplifier => "minecraft:set_ominous_bottle_amplifier", SetCustomModelData => "minecraft:set_custom_model_data", + Discard => "minecraft:discard", } } @@ -3613,6 +3635,7 @@ enum LootPoolEntryKind { LootTable => "minecraft:loot_table", Dynamic => "minecraft:dynamic", Tag => "minecraft:tag", + Slots => "minecraft:slots", Alternatives => "minecraft:alternatives", Sequence => "minecraft:sequence", Group => "minecraft:group", @@ -3685,6 +3708,8 @@ enum MemoryModuleKind { VisitedBlockPositions => "minecraft:visited_block_positions", UnreachableTransportBlockPositions => "minecraft:unreachable_transport_block_positions", TransportItemsCooldownTicks => "minecraft:transport_items_cooldown_ticks", + ChargeCooldownTicks => "minecraft:charge_cooldown_ticks", + AttackTargetCooldown => "minecraft:attack_target_cooldown", AngryAt => "minecraft:angry_at", UniversalAnger => "minecraft:universal_anger", AdmiringItem => "minecraft:admiring_item", @@ -3782,6 +3807,7 @@ enum MobEffect { Weaving => "minecraft:weaving", Oozing => "minecraft:oozing", Infested => "minecraft:infested", + BreathOfTheNautilus => "minecraft:breath_of_the_nautilus", } } @@ -4075,16 +4101,12 @@ enum SensorKind { NearestAdult => "minecraft:nearest_adult", NearestAdultAnyType => "minecraft:nearest_adult_any_type", AxolotlAttackables => "minecraft:axolotl_attackables", - AxolotlTemptations => "minecraft:axolotl_temptations", - GoatTemptations => "minecraft:goat_temptations", + FoodTemptations => "minecraft:food_temptations", FrogTemptations => "minecraft:frog_temptations", - CamelTemptations => "minecraft:camel_temptations", - ArmadilloTemptations => "minecraft:armadillo_temptations", - HappyGhastTemptations => "minecraft:happy_ghast_temptations", + NautilusTemptations => "minecraft:nautilus_temptations", FrogAttackables => "minecraft:frog_attackables", IsInWater => "minecraft:is_in_water", WardenEntitySensor => "minecraft:warden_entity_sensor", - SnifferTemptations => "minecraft:sniffer_temptations", BreezeAttackEntitySensor => "minecraft:breeze_attack_entity_sensor", } } @@ -4174,6 +4196,8 @@ enum SoundEvent { ItemArmorEquipTurtle => "minecraft:item.armor.equip_turtle", ItemArmorEquipWolf => "minecraft:item.armor.equip_wolf", ItemArmorUnequipWolf => "minecraft:item.armor.unequip_wolf", + ItemArmorEquipNautilus => "minecraft:item.armor.equip_nautilus", + ItemArmorUnequipNautilus => "minecraft:item.armor.unequip_nautilus", EntityArmorStandBreak => "minecraft:entity.armor_stand.break", EntityArmorStandFall => "minecraft:entity.armor_stand.fall", EntityArmorStandHit => "minecraft:entity.armor_stand.hit", @@ -4201,6 +4225,12 @@ enum SoundEvent { BlockAzaleaLeavesHit => "minecraft:block.azalea_leaves.hit", BlockAzaleaLeavesPlace => "minecraft:block.azalea_leaves.place", BlockAzaleaLeavesStep => "minecraft:block.azalea_leaves.step", + EntityBabyNautilusAmbient => "minecraft:entity.baby_nautilus.ambient", + EntityBabyNautilusDeath => "minecraft:entity.baby_nautilus.death", + EntityBabyNautilusEat => "minecraft:entity.baby_nautilus.eat", + EntityBabyNautilusHurt => "minecraft:entity.baby_nautilus.hurt", + EntityNautilusRiding => "minecraft:entity.nautilus.riding", + EntityBabyNautilusSwim => "minecraft:entity.baby_nautilus.swim", BlockBambooBreak => "minecraft:block.bamboo.break", BlockBambooFall => "minecraft:block.bamboo.fall", BlockBambooHit => "minecraft:block.bamboo.hit", @@ -4331,6 +4361,17 @@ enum SoundEvent { BlockCalcitePlace => "minecraft:block.calcite.place", BlockCalciteHit => "minecraft:block.calcite.hit", BlockCalciteFall => "minecraft:block.calcite.fall", + EntityCamelHuskAmbient => "minecraft:entity.camel_husk.ambient", + EntityCamelHuskDash => "minecraft:entity.camel_husk.dash", + EntityCamelHuskDashReady => "minecraft:entity.camel_husk.dash_ready", + EntityCamelHuskDeath => "minecraft:entity.camel_husk.death", + EntityCamelHuskEat => "minecraft:entity.camel_husk.eat", + EntityCamelHuskHurt => "minecraft:entity.camel_husk.hurt", + EntityCamelHuskSaddle => "minecraft:entity.camel_husk.saddle", + EntityCamelHuskSit => "minecraft:entity.camel_husk.sit", + EntityCamelHuskStand => "minecraft:entity.camel_husk.stand", + EntityCamelHuskStep => "minecraft:entity.camel_husk.step", + EntityCamelHuskStepSand => "minecraft:entity.camel_husk.step_sand", EntityCamelAmbient => "minecraft:entity.camel.ambient", EntityCamelDash => "minecraft:entity.camel.dash", EntityCamelDashReady => "minecraft:entity.camel.dash_ready", @@ -4988,6 +5029,9 @@ enum SoundEvent { BlockLodestoneHit => "minecraft:block.lodestone.hit", BlockLodestoneFall => "minecraft:block.lodestone.fall", ItemLodestoneCompassLock => "minecraft:item.lodestone_compass.lock", + ItemSpearLunge1 => "minecraft:item.spear.lunge_1", + ItemSpearLunge2 => "minecraft:item.spear.lunge_2", + ItemSpearLunge3 => "minecraft:item.spear.lunge_3", ItemMaceSmashAir => "minecraft:item.mace.smash_air", ItemMaceSmashGround => "minecraft:item.mace.smash_ground", ItemMaceSmashGroundHeavy => "minecraft:item.mace.smash_ground_heavy", @@ -5108,6 +5152,13 @@ enum SoundEvent { MusicOverworldSparseJungle => "minecraft:music.overworld.sparse_jungle", MusicOverworldBambooJungle => "minecraft:music.overworld.bamboo_jungle", MusicUnderWater => "minecraft:music.under_water", + EntityNautilusAmbient => "minecraft:entity.nautilus.ambient", + EntityNautilusDash => "minecraft:entity.nautilus.dash", + EntityNautilusDashReady => "minecraft:entity.nautilus.dash_ready", + EntityNautilusDeath => "minecraft:entity.nautilus.death", + EntityNautilusEat => "minecraft:entity.nautilus.eat", + EntityNautilusHurt => "minecraft:entity.nautilus.hurt", + EntityNautilusSwim => "minecraft:entity.nautilus.swim", BlockNetherBricksBreak => "minecraft:block.nether_bricks.break", BlockNetherBricksStep => "minecraft:block.nether_bricks.step", BlockNetherBricksPlace => "minecraft:block.nether_bricks.place", @@ -5216,6 +5267,10 @@ enum SoundEvent { EntityPandaWorriedAmbient => "minecraft:entity.panda.worried_ambient", EntityPandaHurt => "minecraft:entity.panda.hurt", EntityPandaBite => "minecraft:entity.panda.bite", + EntityParchedAmbient => "minecraft:entity.parched.ambient", + EntityParchedDeath => "minecraft:entity.parched.death", + EntityParchedHurt => "minecraft:entity.parched.hurt", + EntityParchedStep => "minecraft:entity.parched.step", EntityParrotAmbient => "minecraft:entity.parrot.ambient", EntityParrotDeath => "minecraft:entity.parrot.death", EntityParrotEat => "minecraft:entity.parrot.eat", @@ -5224,6 +5279,7 @@ enum SoundEvent { EntityParrotImitateBlaze => "minecraft:entity.parrot.imitate.blaze", EntityParrotImitateBogged => "minecraft:entity.parrot.imitate.bogged", EntityParrotImitateBreeze => "minecraft:entity.parrot.imitate.breeze", + EntityParrotImitateCamelHusk => "minecraft:entity.parrot.imitate.camel_husk", EntityParrotImitateCreaking => "minecraft:entity.parrot.imitate.creaking", EntityParrotImitateCreeper => "minecraft:entity.parrot.imitate.creeper", EntityParrotImitateDrowned => "minecraft:entity.parrot.imitate.drowned", @@ -5238,6 +5294,7 @@ enum SoundEvent { EntityParrotImitateIllusioner => "minecraft:entity.parrot.imitate.illusioner", EntityParrotImitateMagmaCube => "minecraft:entity.parrot.imitate.magma_cube", EntityParrotImitatePhantom => "minecraft:entity.parrot.imitate.phantom", + EntityParrotImitateParched => "minecraft:entity.parrot.imitate.parched", EntityParrotImitatePiglin => "minecraft:entity.parrot.imitate.piglin", EntityParrotImitatePiglinBrute => "minecraft:entity.parrot.imitate.piglin_brute", EntityParrotImitatePillager => "minecraft:entity.parrot.imitate.pillager", @@ -5256,6 +5313,8 @@ enum SoundEvent { EntityParrotImitateWitherSkeleton => "minecraft:entity.parrot.imitate.wither_skeleton", EntityParrotImitateZoglin => "minecraft:entity.parrot.imitate.zoglin", EntityParrotImitateZombie => "minecraft:entity.parrot.imitate.zombie", + EntityParrotImitateZombieHorse => "minecraft:entity.parrot.imitate.zombie_horse", + EntityParrotImitateZombieNautilus => "minecraft:entity.parrot.imitate.zombie_nautilus", EntityParrotImitateZombieVillager => "minecraft:entity.parrot.imitate.zombie_villager", EntityParrotStep => "minecraft:entity.parrot.step", EntityPhantomAmbient => "minecraft:entity.phantom.ambient", @@ -5363,6 +5422,15 @@ enum SoundEvent { BlockNetherOrePlace => "minecraft:block.nether_ore.place", BlockNetherOreStep => "minecraft:block.nether_ore.step", BlockRedstoneTorchBurnout => "minecraft:block.redstone_torch.burnout", + BlockResinBreak => "minecraft:block.resin.break", + BlockResinFall => "minecraft:block.resin.fall", + BlockResinPlace => "minecraft:block.resin.place", + BlockResinStep => "minecraft:block.resin.step", + BlockResinBricksBreak => "minecraft:block.resin_bricks.break", + BlockResinBricksFall => "minecraft:block.resin_bricks.fall", + BlockResinBricksHit => "minecraft:block.resin_bricks.hit", + BlockResinBricksPlace => "minecraft:block.resin_bricks.place", + BlockResinBricksStep => "minecraft:block.resin_bricks.step", BlockRespawnAnchorAmbient => "minecraft:block.respawn_anchor.ambient", BlockRespawnAnchorCharge => "minecraft:block.respawn_anchor.charge", BlockRespawnAnchorDeplete => "minecraft:block.respawn_anchor.deplete", @@ -5506,15 +5574,12 @@ enum SoundEvent { BlockSpawnerHit => "minecraft:block.spawner.hit", BlockSpawnerPlace => "minecraft:block.spawner.place", BlockSpawnerStep => "minecraft:block.spawner.step", - BlockResinBreak => "minecraft:block.resin.break", - BlockResinFall => "minecraft:block.resin.fall", - BlockResinPlace => "minecraft:block.resin.place", - BlockResinStep => "minecraft:block.resin.step", - BlockResinBricksBreak => "minecraft:block.resin_bricks.break", - BlockResinBricksFall => "minecraft:block.resin_bricks.fall", - BlockResinBricksHit => "minecraft:block.resin_bricks.hit", - BlockResinBricksPlace => "minecraft:block.resin_bricks.place", - BlockResinBricksStep => "minecraft:block.resin_bricks.step", + ItemSpearUse => "minecraft:item.spear.use", + ItemSpearHit => "minecraft:item.spear.hit", + ItemSpearAttack => "minecraft:item.spear.attack", + ItemSpearWoodUse => "minecraft:item.spear_wood.use", + ItemSpearWoodHit => "minecraft:item.spear_wood.hit", + ItemSpearWoodAttack => "minecraft:item.spear_wood.attack", BlockSporeBlossomBreak => "minecraft:block.spore_blossom.break", BlockSporeBlossomFall => "minecraft:block.spore_blossom.fall", BlockSporeBlossomHit => "minecraft:block.spore_blossom.hit", @@ -5847,10 +5912,18 @@ enum SoundEvent { EntityZombieDeath => "minecraft:entity.zombie.death", EntityZombieDestroyEgg => "minecraft:entity.zombie.destroy_egg", EntityZombieHorseAmbient => "minecraft:entity.zombie_horse.ambient", + EntityZombieHorseAngry => "minecraft:entity.zombie_horse.angry", EntityZombieHorseDeath => "minecraft:entity.zombie_horse.death", EntityZombieHorseHurt => "minecraft:entity.zombie_horse.hurt", EntityZombieHurt => "minecraft:entity.zombie.hurt", EntityZombieInfect => "minecraft:entity.zombie.infect", + EntityZombieNautilusAmbient => "minecraft:entity.zombie_nautilus.ambient", + EntityZombieNautilusDash => "minecraft:entity.zombie_nautilus.dash", + EntityZombieNautilusDashReady => "minecraft:entity.zombie_nautilus.dash_ready", + EntityZombieNautilusDeath => "minecraft:entity.zombie_nautilus.death", + EntityZombieNautilusEat => "minecraft:entity.zombie_nautilus.eat", + EntityZombieNautilusHurt => "minecraft:entity.zombie_nautilus.hurt", + EntityZombieNautilusSwim => "minecraft:entity.zombie_nautilus.swim", EntityZombifiedPiglinAmbient => "minecraft:entity.zombified_piglin.ambient", EntityZombifiedPiglinAngry => "minecraft:entity.zombified_piglin.angry", EntityZombifiedPiglinDeath => "minecraft:entity.zombified_piglin.death", @@ -5866,6 +5939,8 @@ enum SoundEvent { EventMobEffectTrialOmen => "minecraft:event.mob_effect.trial_omen", EventMobEffectRaidOmen => "minecraft:event.mob_effect.raid_omen", ItemSaddleUnequip => "minecraft:item.saddle.unequip", + ItemNautilusSaddleUnderwaterEquip => "minecraft:item.nautilus_saddle_underwater_equip", + ItemNautilusSaddleEquip => "minecraft:item.nautilus_saddle_equip", } } @@ -6688,7 +6763,10 @@ enum DataComponentKind { MaxDamage => "minecraft:max_damage", Damage => "minecraft:damage", Unbreakable => "minecraft:unbreakable", + UseEffects => "minecraft:use_effects", CustomName => "minecraft:custom_name", + MinimumAttackCharge => "minecraft:minimum_attack_charge", + DamageType => "minecraft:damage_type", ItemName => "minecraft:item_name", ItemModel => "minecraft:item_model", Lore => "minecraft:lore", @@ -6717,6 +6795,9 @@ enum DataComponentKind { TooltipStyle => "minecraft:tooltip_style", DeathProtection => "minecraft:death_protection", BlocksAttacks => "minecraft:blocks_attacks", + PiercingWeapon => "minecraft:piercing_weapon", + KineticWeapon => "minecraft:kinetic_weapon", + SwingAnimation => "minecraft:swing_animation", StoredEnchantments => "minecraft:stored_enchantments", DyedColor => "minecraft:dyed_color", MapColor => "minecraft:map_color", @@ -6842,6 +6923,7 @@ enum EnchantmentEffectComponentKind { Knockback => "minecraft:knockback", ArmorEffectiveness => "minecraft:armor_effectiveness", PostAttack => "minecraft:post_attack", + PostPiercingAttack => "minecraft:post_piercing_attack", HitBlock => "minecraft:hit_block", ItemDamage => "minecraft:item_damage", Attributes => "minecraft:attributes", @@ -6876,6 +6958,8 @@ enum EnchantmentEntityEffectKind { DamageEntity => "minecraft:damage_entity", Explode => "minecraft:explode", Ignite => "minecraft:ignite", + ApplyImpulse => "minecraft:apply_impulse", + ApplyExhaustion => "minecraft:apply_exhaustion", PlaySound => "minecraft:play_sound", ReplaceBlock => "minecraft:replace_block", ReplaceDisk => "minecraft:replace_disk", @@ -6892,6 +6976,7 @@ enum EnchantmentLevelBasedValueKind { Fraction => "minecraft:fraction", LevelsSquared => "minecraft:levels_squared", Linear => "minecraft:linear", + Exponent => "minecraft:exponent", Lookup => "minecraft:lookup", } } @@ -6905,6 +6990,8 @@ enum EnchantmentLocationBasedEffectKind { DamageEntity => "minecraft:damage_entity", Explode => "minecraft:explode", Ignite => "minecraft:ignite", + ApplyImpulse => "minecraft:apply_impulse", + ApplyExhaustion => "minecraft:apply_exhaustion", PlaySound => "minecraft:play_sound", ReplaceBlock => "minecraft:replace_block", ReplaceDisk => "minecraft:replace_disk", @@ -6929,6 +7016,7 @@ enum EnchantmentValueEffectKind { AllOf => "minecraft:all_of", Multiply => "minecraft:multiply", RemoveBinomial => "minecraft:remove_binomial", + Exponential => "minecraft:exponential", Set => "minecraft:set", } } @@ -7218,6 +7306,7 @@ enum OutgoingRpcMethods { NotificationServerStopping => "minecraft:notification/server/stopping", NotificationServerSaving => "minecraft:notification/server/saving", NotificationServerSaved => "minecraft:notification/server/saved", + NotificationServerActivity => "minecraft:notification/server/activity", NotificationPlayersJoined => "minecraft:notification/players/joined", NotificationPlayersLeft => "minecraft:notification/players/left", NotificationOperatorsAdded => "minecraft:notification/operators/added", @@ -7232,3 +7321,136 @@ enum OutgoingRpcMethods { NotificationServerStatus => "minecraft:notification/server/status", } } + +registry! { +enum AttributeKind { + Boolean => "minecraft:boolean", + Float => "minecraft:float", + RgbColor => "minecraft:rgb_color", + ArgbColor => "minecraft:argb_color", + BedRule => "minecraft:bed_rule", + Particle => "minecraft:particle", + AmbientParticles => "minecraft:ambient_particles", + BackgroundMusic => "minecraft:background_music", + AmbientSounds => "minecraft:ambient_sounds", +} +} + +registry! { +enum EnvironmentAttribute { + VisualFogColor => "minecraft:visual/fog_color", + VisualFogStartDistance => "minecraft:visual/fog_start_distance", + VisualFogEndDistance => "minecraft:visual/fog_end_distance", + VisualSkyFogEndDistance => "minecraft:visual/sky_fog_end_distance", + VisualCloudFogEndDistance => "minecraft:visual/cloud_fog_end_distance", + VisualWaterFogColor => "minecraft:visual/water_fog_color", + VisualWaterFogStartDistance => "minecraft:visual/water_fog_start_distance", + VisualWaterFogEndDistance => "minecraft:visual/water_fog_end_distance", + VisualSkyColor => "minecraft:visual/sky_color", + VisualCloudColor => "minecraft:visual/cloud_color", + VisualCloudHeight => "minecraft:visual/cloud_height", + VisualDefaultDripstoneParticle => "minecraft:visual/default_dripstone_particle", + VisualAmbientParticles => "minecraft:visual/ambient_particles", + AudioBackgroundMusic => "minecraft:audio/background_music", + AudioMusicVolume => "minecraft:audio/music_volume", + AudioAmbientSounds => "minecraft:audio/ambient_sounds", + GameplayCanStartRaid => "minecraft:gameplay/can_start_raid", + GameplayWaterEvaporates => "minecraft:gameplay/water_evaporates", + GameplayBedRule => "minecraft:gameplay/bed_rule", + GameplayRespawnAnchorWorks => "minecraft:gameplay/respawn_anchor_works", + GameplayNetherPortalSpawnsPiglin => "minecraft:gameplay/nether_portal_spawns_piglin", + GameplayFastLava => "minecraft:gameplay/fast_lava", + GameplayIncreasedFireBurnout => "minecraft:gameplay/increased_fire_burnout", + GameplayPiglinsZombify => "minecraft:gameplay/piglins_zombify", + GameplaySnowGolemMelts => "minecraft:gameplay/snow_golem_melts", +} +} + +registry! { +enum GameRule { + AdvanceTime => "minecraft:advance_time", + AdvanceWeather => "minecraft:advance_weather", + AllowEnteringNetherUsingPortals => "minecraft:allow_entering_nether_using_portals", + BlockDrops => "minecraft:block_drops", + BlockExplosionDropDecay => "minecraft:block_explosion_drop_decay", + CommandBlocksWork => "minecraft:command_blocks_work", + CommandBlockOutput => "minecraft:command_block_output", + DrowningDamage => "minecraft:drowning_damage", + ElytraMovementCheck => "minecraft:elytra_movement_check", + EnderPearlsVanishOnDeath => "minecraft:ender_pearls_vanish_on_death", + EntityDrops => "minecraft:entity_drops", + FallDamage => "minecraft:fall_damage", + FireDamage => "minecraft:fire_damage", + FireSpreadRadiusAroundPlayer => "minecraft:fire_spread_radius_around_player", + ForgiveDeadPlayers => "minecraft:forgive_dead_players", + FreezeDamage => "minecraft:freeze_damage", + GlobalSoundEvents => "minecraft:global_sound_events", + ImmediateRespawn => "minecraft:immediate_respawn", + KeepInventory => "minecraft:keep_inventory", + LavaSourceConversion => "minecraft:lava_source_conversion", + LimitedCrafting => "minecraft:limited_crafting", + LocatorBar => "minecraft:locator_bar", + LogAdminCommands => "minecraft:log_admin_commands", + MaxBlockModifications => "minecraft:max_block_modifications", + MaxCommandForks => "minecraft:max_command_forks", + MaxCommandSequenceLength => "minecraft:max_command_sequence_length", + MaxEntityCramming => "minecraft:max_entity_cramming", + MaxMinecartSpeed => "minecraft:max_minecart_speed", + MaxSnowAccumulationHeight => "minecraft:max_snow_accumulation_height", + MobDrops => "minecraft:mob_drops", + MobExplosionDropDecay => "minecraft:mob_explosion_drop_decay", + MobGriefing => "minecraft:mob_griefing", + NaturalHealthRegeneration => "minecraft:natural_health_regeneration", + PlayerMovementCheck => "minecraft:player_movement_check", + PlayersNetherPortalCreativeDelay => "minecraft:players_nether_portal_creative_delay", + PlayersNetherPortalDefaultDelay => "minecraft:players_nether_portal_default_delay", + PlayersSleepingPercentage => "minecraft:players_sleeping_percentage", + ProjectilesCanBreakBlocks => "minecraft:projectiles_can_break_blocks", + Pvp => "minecraft:pvp", + Raids => "minecraft:raids", + RandomTickSpeed => "minecraft:random_tick_speed", + ReducedDebugInfo => "minecraft:reduced_debug_info", + RespawnRadius => "minecraft:respawn_radius", + SendCommandFeedback => "minecraft:send_command_feedback", + ShowAdvancementMessages => "minecraft:show_advancement_messages", + ShowDeathMessages => "minecraft:show_death_messages", + SpawnerBlocksWork => "minecraft:spawner_blocks_work", + SpawnMobs => "minecraft:spawn_mobs", + SpawnMonsters => "minecraft:spawn_monsters", + SpawnPatrols => "minecraft:spawn_patrols", + SpawnPhantoms => "minecraft:spawn_phantoms", + SpawnWanderingTraders => "minecraft:spawn_wandering_traders", + SpawnWardens => "minecraft:spawn_wardens", + SpectatorsGenerateChunks => "minecraft:spectators_generate_chunks", + SpreadVines => "minecraft:spread_vines", + TntExplodes => "minecraft:tnt_explodes", + TntExplosionDropDecay => "minecraft:tnt_explosion_drop_decay", + UniversalAnger => "minecraft:universal_anger", + WaterSourceConversion => "minecraft:water_source_conversion", +} +} + +registry! { +enum PermissionCheckKind { + AlwaysPass => "minecraft:always_pass", + Require => "minecraft:require", +} +} + +registry! { +enum PermissionKind { + Atom => "minecraft:atom", + CommandLevel => "minecraft:command_level", +} +} + +registry! { +enum SlotSourceKind { + Group => "minecraft:group", + Filtered => "minecraft:filtered", + LimitSlots => "minecraft:limit_slots", + SlotRange => "minecraft:slot_range", + Contents => "minecraft:contents", + Empty => "minecraft:empty", +} +} diff --git a/azalea-registry/src/tags/blocks.rs b/azalea-registry/src/tags/blocks.rs index d54ae50f8..e27441644 100644 --- a/azalea-registry/src/tags/blocks.rs +++ b/azalea-registry/src/tags/blocks.rs @@ -465,6 +465,17 @@ pub static CAMELS_SPAWNABLE_ON: LazyLock> = LazyLock::new(|| HashSet::from_iter(vec![Block::Sand, Block::RedSand, Block::SuspiciousSand])); pub static CAMPFIRES: LazyLock> = LazyLock::new(|| HashSet::from_iter(vec![Block::Campfire, Block::SoulCampfire])); +pub static CAN_GLIDE_THROUGH: LazyLock> = LazyLock::new(|| { + HashSet::from_iter(vec![ + Block::Vine, + Block::TwistingVines, + Block::TwistingVinesPlant, + Block::WeepingVines, + Block::WeepingVinesPlant, + Block::CaveVinesPlant, + Block::CaveVines, + ]) +}); pub static CANDLE_CAKES: LazyLock> = LazyLock::new(|| { HashSet::from_iter(vec![ Block::CandleCake, diff --git a/azalea-registry/src/tags/entities.rs b/azalea-registry/src/tags/entities.rs index 4410471cb..2df9dcafa 100644 --- a/azalea-registry/src/tags/entities.rs +++ b/azalea-registry/src/tags/entities.rs @@ -20,6 +20,8 @@ pub static AQUATIC: LazyLock> = LazyLock::new(|| { EntityKind::Squid, EntityKind::GlowSquid, EntityKind::Tadpole, + EntityKind::Nautilus, + EntityKind::ZombieNautilus, ]) }); pub static ARROWS: LazyLock> = @@ -67,6 +69,20 @@ pub static BOAT: LazyLock> = LazyLock::new(|| { EntityKind::BambooRaft, ]) }); +pub static BURN_IN_DAYLIGHT: LazyLock> = LazyLock::new(|| { + HashSet::from_iter(vec![ + EntityKind::Skeleton, + EntityKind::Stray, + EntityKind::WitherSkeleton, + EntityKind::Bogged, + EntityKind::Zombie, + EntityKind::ZombieHorse, + EntityKind::ZombieVillager, + EntityKind::Drowned, + EntityKind::ZombieNautilus, + EntityKind::Phantom, + ]) +}); pub static CAN_BREATHE_UNDER_WATER: LazyLock> = LazyLock::new(|| { HashSet::from_iter(vec![ EntityKind::Axolotl, @@ -83,6 +99,7 @@ pub static CAN_BREATHE_UNDER_WATER: LazyLock> = LazyLock::ne EntityKind::Tadpole, EntityKind::ArmorStand, EntityKind::CopperGolem, + EntityKind::Nautilus, EntityKind::Wither, EntityKind::Phantom, EntityKind::Skeleton, @@ -90,13 +107,16 @@ pub static CAN_BREATHE_UNDER_WATER: LazyLock> = LazyLock::ne EntityKind::WitherSkeleton, EntityKind::SkeletonHorse, EntityKind::Bogged, + EntityKind::Parched, EntityKind::ZombieHorse, + EntityKind::CamelHusk, EntityKind::Zombie, EntityKind::ZombieVillager, EntityKind::ZombifiedPiglin, EntityKind::Zoglin, EntityKind::Drowned, EntityKind::Husk, + EntityKind::ZombieNautilus, ]) }); pub static CAN_EQUIP_HARNESS: LazyLock> = @@ -111,12 +131,26 @@ pub static CAN_EQUIP_SADDLE: LazyLock> = LazyLock::new(|| { EntityKind::Pig, EntityKind::Strider, EntityKind::Camel, + EntityKind::CamelHusk, + EntityKind::Nautilus, + EntityKind::ZombieNautilus, + ]) +}); +pub static CAN_FLOAT_WHILE_RIDDEN: LazyLock> = LazyLock::new(|| { + HashSet::from_iter(vec![ + EntityKind::Horse, + EntityKind::ZombieHorse, + EntityKind::Mule, + EntityKind::Donkey, + EntityKind::Camel, ]) }); pub static CAN_TURN_IN_BOATS: LazyLock> = LazyLock::new(|| HashSet::from_iter(vec![EntityKind::Breeze])); pub static CAN_WEAR_HORSE_ARMOR: LazyLock> = - LazyLock::new(|| HashSet::from_iter(vec![EntityKind::Horse])); + LazyLock::new(|| HashSet::from_iter(vec![EntityKind::Horse, EntityKind::ZombieHorse])); +pub static CAN_WEAR_NAUTILUS_ARMOR: LazyLock> = + LazyLock::new(|| HashSet::from_iter(vec![EntityKind::Nautilus, EntityKind::ZombieNautilus])); pub static CANDIDATE_FOR_IRON_GOLEM_GIFT: LazyLock> = LazyLock::new(|| HashSet::from_iter(vec![EntityKind::Villager, EntityKind::CopperGolem])); pub static CANNOT_BE_PUSHED_ONTO_BOATS: LazyLock> = LazyLock::new(|| { @@ -132,6 +166,8 @@ pub static CANNOT_BE_PUSHED_ONTO_BOATS: LazyLock> = LazyLock EntityKind::GlowSquid, EntityKind::Tadpole, EntityKind::Creaking, + EntityKind::Nautilus, + EntityKind::ZombieNautilus, ]) }); pub static DEFLECTS_PROJECTILES: LazyLock> = @@ -230,13 +266,16 @@ pub static IGNORES_POISON_AND_REGEN: LazyLock> = LazyLock::n EntityKind::WitherSkeleton, EntityKind::SkeletonHorse, EntityKind::Bogged, + EntityKind::Parched, EntityKind::ZombieHorse, + EntityKind::CamelHusk, EntityKind::Zombie, EntityKind::ZombieVillager, EntityKind::ZombifiedPiglin, EntityKind::Zoglin, EntityKind::Drowned, EntityKind::Husk, + EntityKind::ZombieNautilus, ]) }); pub static ILLAGER: LazyLock> = LazyLock::new(|| { @@ -284,15 +323,20 @@ pub static INVERTED_HEALING_AND_HARM: LazyLock> = LazyLock:: EntityKind::WitherSkeleton, EntityKind::SkeletonHorse, EntityKind::Bogged, + EntityKind::Parched, EntityKind::ZombieHorse, + EntityKind::CamelHusk, EntityKind::Zombie, EntityKind::ZombieVillager, EntityKind::ZombifiedPiglin, EntityKind::Zoglin, EntityKind::Drowned, EntityKind::Husk, + EntityKind::ZombieNautilus, ]) }); +pub static NAUTILUS_HOSTILES: LazyLock> = + LazyLock::new(|| HashSet::from_iter(vec![EntityKind::Pufferfish])); pub static NO_ANGER_FROM_WIND_CHARGE: LazyLock> = LazyLock::new(|| { HashSet::from_iter(vec![ EntityKind::Breeze, @@ -321,6 +365,8 @@ pub static NOT_SCARY_FOR_PUFFERFISH: LazyLock> = LazyLock::n EntityKind::Squid, EntityKind::GlowSquid, EntityKind::Tadpole, + EntityKind::Nautilus, + EntityKind::ZombieNautilus, ]) }); pub static POWDER_SNOW_WALKABLE_MOBS: LazyLock> = LazyLock::new(|| { @@ -371,6 +417,8 @@ pub static SENSITIVE_TO_IMPALING: LazyLock> = LazyLock::new( EntityKind::Squid, EntityKind::GlowSquid, EntityKind::Tadpole, + EntityKind::Nautilus, + EntityKind::ZombieNautilus, ]) }); pub static SENSITIVE_TO_SMITE: LazyLock> = LazyLock::new(|| { @@ -382,13 +430,16 @@ pub static SENSITIVE_TO_SMITE: LazyLock> = LazyLock::new(|| EntityKind::WitherSkeleton, EntityKind::SkeletonHorse, EntityKind::Bogged, + EntityKind::Parched, EntityKind::ZombieHorse, + EntityKind::CamelHusk, EntityKind::Zombie, EntityKind::ZombieVillager, EntityKind::ZombifiedPiglin, EntityKind::Zoglin, EntityKind::Drowned, EntityKind::Husk, + EntityKind::ZombieNautilus, ]) }); pub static SKELETONS: LazyLock> = LazyLock::new(|| { @@ -398,6 +449,7 @@ pub static SKELETONS: LazyLock> = LazyLock::new(|| { EntityKind::WitherSkeleton, EntityKind::SkeletonHorse, EntityKind::Bogged, + EntityKind::Parched, ]) }); pub static UNDEAD: LazyLock> = LazyLock::new(|| { @@ -409,13 +461,16 @@ pub static UNDEAD: LazyLock> = LazyLock::new(|| { EntityKind::WitherSkeleton, EntityKind::SkeletonHorse, EntityKind::Bogged, + EntityKind::Parched, EntityKind::ZombieHorse, + EntityKind::CamelHusk, EntityKind::Zombie, EntityKind::ZombieVillager, EntityKind::ZombifiedPiglin, EntityKind::Zoglin, EntityKind::Drowned, EntityKind::Husk, + EntityKind::ZombieNautilus, ]) }); pub static WITHER_FRIENDS: LazyLock> = LazyLock::new(|| { @@ -427,23 +482,28 @@ pub static WITHER_FRIENDS: LazyLock> = LazyLock::new(|| { EntityKind::WitherSkeleton, EntityKind::SkeletonHorse, EntityKind::Bogged, + EntityKind::Parched, EntityKind::ZombieHorse, + EntityKind::CamelHusk, EntityKind::Zombie, EntityKind::ZombieVillager, EntityKind::ZombifiedPiglin, EntityKind::Zoglin, EntityKind::Drowned, EntityKind::Husk, + EntityKind::ZombieNautilus, ]) }); pub static ZOMBIES: LazyLock> = LazyLock::new(|| { HashSet::from_iter(vec![ EntityKind::ZombieHorse, + EntityKind::CamelHusk, EntityKind::Zombie, EntityKind::ZombieVillager, EntityKind::ZombifiedPiglin, EntityKind::Zoglin, EntityKind::Drowned, EntityKind::Husk, + EntityKind::ZombieNautilus, ]) }); diff --git a/azalea-registry/src/tags/items.rs b/azalea-registry/src/tags/items.rs index 2b317c7b8..0b0930ba6 100644 --- a/azalea-registry/src/tags/items.rs +++ b/azalea-registry/src/tags/items.rs @@ -255,6 +255,8 @@ pub static BUTTONS: LazyLock> = LazyLock::new(|| { }); pub static CAMEL_FOOD: LazyLock> = LazyLock::new(|| HashSet::from_iter(vec![Item::Cactus])); +pub static CAMEL_HUSK_FOOD: LazyLock> = + LazyLock::new(|| HashSet::from_iter(vec![Item::RabbitFoot])); pub static CANDLES: LazyLock> = LazyLock::new(|| { HashSet::from_iter(vec![ Item::Candle, @@ -766,6 +768,13 @@ pub static ENCHANTABLE_DURABILITY: LazyLock> = LazyLock::new(|| { Item::WoodenHoe, Item::IronHoe, Item::CopperHoe, + Item::DiamondSpear, + Item::StoneSpear, + Item::GoldenSpear, + Item::NetheriteSpear, + Item::WoodenSpear, + Item::IronSpear, + Item::CopperSpear, ]) }); pub static ENCHANTABLE_EQUIPPABLE: LazyLock> = LazyLock::new(|| { @@ -820,6 +829,13 @@ pub static ENCHANTABLE_FIRE_ASPECT: LazyLock> = LazyLock::new(|| { Item::WoodenSword, Item::IronSword, Item::CopperSword, + Item::DiamondSpear, + Item::StoneSpear, + Item::GoldenSpear, + Item::NetheriteSpear, + Item::WoodenSpear, + Item::IronSpear, + Item::CopperSpear, ]) }); pub static ENCHANTABLE_FISHING: LazyLock> = @@ -858,8 +874,37 @@ pub static ENCHANTABLE_LEG_ARMOR: LazyLock> = LazyLock::new(|| { Item::NetheriteLeggings, ]) }); +pub static ENCHANTABLE_LUNGE: LazyLock> = LazyLock::new(|| { + HashSet::from_iter(vec![ + Item::DiamondSpear, + Item::StoneSpear, + Item::GoldenSpear, + Item::NetheriteSpear, + Item::WoodenSpear, + Item::IronSpear, + Item::CopperSpear, + ]) +}); pub static ENCHANTABLE_MACE: LazyLock> = LazyLock::new(|| HashSet::from_iter(vec![Item::Mace])); +pub static ENCHANTABLE_MELEE_WEAPON: LazyLock> = LazyLock::new(|| { + HashSet::from_iter(vec![ + Item::DiamondSword, + Item::StoneSword, + Item::GoldenSword, + Item::NetheriteSword, + Item::WoodenSword, + Item::IronSword, + Item::CopperSword, + Item::DiamondSpear, + Item::StoneSpear, + Item::GoldenSpear, + Item::NetheriteSpear, + Item::WoodenSpear, + Item::IronSpear, + Item::CopperSpear, + ]) +}); pub static ENCHANTABLE_MINING: LazyLock> = LazyLock::new(|| { HashSet::from_iter(vec![ Item::Shears, @@ -927,13 +972,6 @@ pub static ENCHANTABLE_MINING_LOOT: LazyLock> = LazyLock::new(|| { }); pub static ENCHANTABLE_SHARP_WEAPON: LazyLock> = LazyLock::new(|| { HashSet::from_iter(vec![ - Item::DiamondSword, - Item::StoneSword, - Item::GoldenSword, - Item::NetheriteSword, - Item::WoodenSword, - Item::IronSword, - Item::CopperSword, Item::DiamondAxe, Item::StoneAxe, Item::GoldenAxe, @@ -941,9 +979,23 @@ pub static ENCHANTABLE_SHARP_WEAPON: LazyLock> = LazyLock::new(|| Item::WoodenAxe, Item::IronAxe, Item::CopperAxe, + Item::DiamondSword, + Item::StoneSword, + Item::GoldenSword, + Item::NetheriteSword, + Item::WoodenSword, + Item::IronSword, + Item::CopperSword, + Item::DiamondSpear, + Item::StoneSpear, + Item::GoldenSpear, + Item::NetheriteSpear, + Item::WoodenSpear, + Item::IronSpear, + Item::CopperSpear, ]) }); -pub static ENCHANTABLE_SWORD: LazyLock> = LazyLock::new(|| { +pub static ENCHANTABLE_SWEEPING: LazyLock> = LazyLock::new(|| { HashSet::from_iter(vec![ Item::DiamondSword, Item::StoneSword, @@ -1043,18 +1095,18 @@ pub static ENCHANTABLE_VANISHING: LazyLock> = LazyLock::new(|| { Item::WoodenHoe, Item::IronHoe, Item::CopperHoe, + Item::DiamondSpear, + Item::StoneSpear, + Item::GoldenSpear, + Item::NetheriteSpear, + Item::WoodenSpear, + Item::IronSpear, + Item::CopperSpear, ]) }); pub static ENCHANTABLE_WEAPON: LazyLock> = LazyLock::new(|| { HashSet::from_iter(vec![ Item::Mace, - Item::DiamondSword, - Item::StoneSword, - Item::GoldenSword, - Item::NetheriteSword, - Item::WoodenSword, - Item::IronSword, - Item::CopperSword, Item::DiamondAxe, Item::StoneAxe, Item::GoldenAxe, @@ -1062,6 +1114,20 @@ pub static ENCHANTABLE_WEAPON: LazyLock> = LazyLock::new(|| { Item::WoodenAxe, Item::IronAxe, Item::CopperAxe, + Item::DiamondSword, + Item::StoneSword, + Item::GoldenSword, + Item::NetheriteSword, + Item::WoodenSword, + Item::IronSword, + Item::CopperSword, + Item::DiamondSpear, + Item::StoneSpear, + Item::GoldenSpear, + Item::NetheriteSpear, + Item::WoodenSpear, + Item::IronSpear, + Item::CopperSpear, ]) }); pub static FENCE_GATES: LazyLock> = LazyLock::new(|| { @@ -1470,6 +1536,30 @@ pub static MEAT: LazyLock> = LazyLock::new(|| { Item::RottenFlesh, ]) }); +pub static NAUTILUS_BUCKET_FOOD: LazyLock> = LazyLock::new(|| { + HashSet::from_iter(vec![ + Item::PufferfishBucket, + Item::CodBucket, + Item::SalmonBucket, + Item::TropicalFishBucket, + ]) +}); +pub static NAUTILUS_FOOD: LazyLock> = LazyLock::new(|| { + HashSet::from_iter(vec![ + Item::Cod, + Item::CookedCod, + Item::Salmon, + Item::CookedSalmon, + Item::Pufferfish, + Item::TropicalFish, + Item::PufferfishBucket, + Item::CodBucket, + Item::SalmonBucket, + Item::TropicalFishBucket, + ]) +}); +pub static NAUTILUS_TAMING_ITEMS: LazyLock> = + LazyLock::new(|| HashSet::from_iter(vec![Item::PufferfishBucket, Item::Pufferfish])); pub static NETHERITE_TOOL_MATERIALS: LazyLock> = LazyLock::new(|| HashSet::from_iter(vec![Item::NetheriteIngot])); pub static NON_FLAMMABLE_WOOD: LazyLock> = LazyLock::new(|| { @@ -1585,7 +1675,9 @@ pub static PIGLIN_LOVED: LazyLock> = LazyLock::new(|| { Item::GoldenLeggings, Item::GoldenBoots, Item::GoldenHorseArmor, + Item::GoldenNautilusArmor, Item::GoldenSword, + Item::GoldenSpear, Item::GoldenPickaxe, Item::GoldenShovel, Item::GoldenAxe, @@ -1832,6 +1924,17 @@ pub static SNIFFER_FOOD: LazyLock> = LazyLock::new(|| HashSet::from_iter(vec![Item::TorchflowerSeeds])); pub static SOUL_FIRE_BASE_BLOCKS: LazyLock> = LazyLock::new(|| HashSet::from_iter(vec![Item::SoulSand, Item::SoulSoil])); +pub static SPEARS: LazyLock> = LazyLock::new(|| { + HashSet::from_iter(vec![ + Item::DiamondSpear, + Item::StoneSpear, + Item::GoldenSpear, + Item::NetheriteSpear, + Item::WoodenSpear, + Item::IronSpear, + Item::CopperSpear, + ]) +}); pub static SPRUCE_LOGS: LazyLock> = LazyLock::new(|| { HashSet::from_iter(vec![ Item::SpruceLog, @@ -2308,3 +2411,5 @@ pub static WOOL_CARPETS: LazyLock> = LazyLock::new(|| { Item::BlackCarpet, ]) }); +pub static ZOMBIE_HORSE_FOOD: LazyLock> = + LazyLock::new(|| HashSet::from_iter(vec![Item::RedMushroom])); From 4a3728e8a8f160fd7eb5f0220dfc362dc23b3d7d Mon Sep 17 00:00:00 2001 From: mat Date: Tue, 11 Nov 2025 09:00:40 -1400 Subject: [PATCH 02/11] 25w44a --- Cargo.lock | 42 +- azalea-core/src/registry_holder.rs | 9 +- azalea-core/src/resource_location.rs | 2 +- azalea-core/src/sound.rs | 4 +- azalea-inventory/src/components/mod.rs | 137 ++++- .../src/default_components/generated.rs | 494 ++++++++++++------ .../src/packets/game/c_set_entity_data.rs | 17 - azalea-registry/src/data.rs | 4 + azalea-registry/src/lib.rs | 2 +- codegen/lib/code/data_components.py | 14 +- 10 files changed, 516 insertions(+), 209 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index fcd91de42..feaae36e3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -209,7 +209,7 @@ checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "azalea" -version = "0.14.0+mc1.21.10" +version = "0.14.0+mc25w44a" dependencies = [ "anyhow", "azalea-auth", @@ -249,7 +249,7 @@ dependencies = [ [[package]] name = "azalea-auth" -version = "0.14.0+mc1.21.10" +version = "0.14.0+mc25w44a" dependencies = [ "azalea-buf", "azalea-crypto", @@ -271,7 +271,7 @@ dependencies = [ [[package]] name = "azalea-block" -version = "0.14.0+mc1.21.10" +version = "0.14.0+mc25w44a" dependencies = [ "azalea-block-macros", "azalea-buf", @@ -280,7 +280,7 @@ dependencies = [ [[package]] name = "azalea-block-macros" -version = "0.14.0+mc1.21.10" +version = "0.14.0+mc25w44a" dependencies = [ "proc-macro2", "quote", @@ -289,7 +289,7 @@ dependencies = [ [[package]] name = "azalea-brigadier" -version = "0.14.0+mc1.21.10" +version = "0.14.0+mc25w44a" dependencies = [ "azalea-buf", "azalea-chat", @@ -300,7 +300,7 @@ dependencies = [ [[package]] name = "azalea-buf" -version = "0.14.0+mc1.21.10" +version = "0.14.0+mc25w44a" dependencies = [ "azalea-buf-macros", "byteorder", @@ -314,7 +314,7 @@ dependencies = [ [[package]] name = "azalea-buf-macros" -version = "0.14.0+mc1.21.10" +version = "0.14.0+mc25w44a" dependencies = [ "proc-macro2", "quote", @@ -323,7 +323,7 @@ dependencies = [ [[package]] name = "azalea-chat" -version = "0.14.0+mc1.21.10" +version = "0.14.0+mc25w44a" dependencies = [ "azalea-buf", "azalea-language", @@ -336,7 +336,7 @@ dependencies = [ [[package]] name = "azalea-client" -version = "0.14.0+mc1.21.10" +version = "0.14.0+mc25w44a" dependencies = [ "anyhow", "async-compat", @@ -374,7 +374,7 @@ dependencies = [ [[package]] name = "azalea-core" -version = "0.14.0+mc1.21.10" +version = "0.14.0+mc25w44a" dependencies = [ "azalea-buf", "azalea-chat", @@ -393,7 +393,7 @@ dependencies = [ [[package]] name = "azalea-crypto" -version = "0.14.0+mc1.21.10" +version = "0.14.0+mc25w44a" dependencies = [ "aes", "azalea-buf", @@ -410,7 +410,7 @@ dependencies = [ [[package]] name = "azalea-entity" -version = "0.14.0+mc1.21.10" +version = "0.14.0+mc25w44a" dependencies = [ "azalea-auth", "azalea-block", @@ -434,7 +434,7 @@ dependencies = [ [[package]] name = "azalea-inventory" -version = "0.14.0+mc1.21.10" +version = "0.14.0+mc25w44a" dependencies = [ "azalea-auth", "azalea-buf", @@ -451,7 +451,7 @@ dependencies = [ [[package]] name = "azalea-inventory-macros" -version = "0.14.0+mc1.21.10" +version = "0.14.0+mc25w44a" dependencies = [ "proc-macro2", "quote", @@ -460,7 +460,7 @@ dependencies = [ [[package]] name = "azalea-language" -version = "0.14.0+mc1.21.10" +version = "0.14.0+mc25w44a" dependencies = [ "compact_str", "serde_json", @@ -468,7 +468,7 @@ dependencies = [ [[package]] name = "azalea-physics" -version = "0.14.0+mc1.21.10" +version = "0.14.0+mc25w44a" dependencies = [ "azalea-block", "azalea-core", @@ -485,7 +485,7 @@ dependencies = [ [[package]] name = "azalea-protocol" -version = "0.14.0+mc1.21.10" +version = "0.14.0+mc25w44a" dependencies = [ "anyhow", "async-recursion", @@ -521,7 +521,7 @@ dependencies = [ [[package]] name = "azalea-protocol-macros" -version = "0.14.0+mc1.21.10" +version = "0.14.0+mc25w44a" dependencies = [ "proc-macro2", "quote", @@ -530,7 +530,7 @@ dependencies = [ [[package]] name = "azalea-registry" -version = "0.14.0+mc1.21.10" +version = "0.14.0+mc25w44a" dependencies = [ "azalea-buf", "azalea-registry-macros", @@ -540,7 +540,7 @@ dependencies = [ [[package]] name = "azalea-registry-macros" -version = "0.14.0+mc1.21.10" +version = "0.14.0+mc25w44a" dependencies = [ "quote", "syn", @@ -548,7 +548,7 @@ dependencies = [ [[package]] name = "azalea-world" -version = "0.14.0+mc1.21.10" +version = "0.14.0+mc25w44a" dependencies = [ "azalea-block", "azalea-buf", diff --git a/azalea-core/src/registry_holder.rs b/azalea-core/src/registry_holder.rs index 7c5bfede8..d7d5375f1 100644 --- a/azalea-core/src/registry_holder.rs +++ b/azalea-core/src/registry_holder.rs @@ -7,6 +7,7 @@ use std::{collections::HashMap, io::Cursor}; +use azalea_buf::AzBuf; use indexmap::IndexMap; use simdnbt::{ Deserialize, FromNbtTag, Serialize, ToNbtTag, @@ -14,7 +15,7 @@ use simdnbt::{ }; use tracing::error; -use crate::resource_location::ResourceLocation; +use crate::{codec_utils::*, resource_location::ResourceLocation}; /// The base of the registry. /// @@ -334,12 +335,16 @@ pub struct TrimPatternElement { pub pattern: HashMap, } -#[derive(Debug, Clone, Serialize, Deserialize)] +#[derive( + Debug, Clone, serde::Serialize, simdnbt::Serialize, simdnbt::Deserialize, AzBuf, PartialEq, +)] #[cfg_attr(feature = "strict_registry", simdnbt(deny_unknown_fields))] pub struct DamageTypeElement { pub message_id: String, pub scaling: String, pub exhaustion: f32, + #[serde(skip_serializing_if = "is_default")] pub effects: Option, + #[serde(skip_serializing_if = "is_default")] pub death_message_type: Option, } diff --git a/azalea-core/src/resource_location.rs b/azalea-core/src/resource_location.rs index 1591f6785..86dba1280 100644 --- a/azalea-core/src/resource_location.rs +++ b/azalea-core/src/resource_location.rs @@ -1,4 +1,4 @@ -//! A resource, like minecraft:stone +//! A resource identifier, like minecraft:stone use std::{ fmt, diff --git a/azalea-core/src/sound.rs b/azalea-core/src/sound.rs index 3f7b86c35..c2aa1ef3f 100644 --- a/azalea-core/src/sound.rs +++ b/azalea-core/src/sound.rs @@ -5,6 +5,6 @@ use crate::resource_location::ResourceLocation; #[derive(Clone, Debug, PartialEq, AzBuf, Serialize)] pub struct CustomSound { - pub location: ResourceLocation, - pub fixed_range: Option, + pub sound_id: ResourceLocation, + pub range: Option, } diff --git a/azalea-inventory/src/components/mod.rs b/azalea-inventory/src/components/mod.rs index 0ab9bdf4d..ce9a0fac0 100644 --- a/azalea-inventory/src/components/mod.rs +++ b/azalea-inventory/src/components/mod.rs @@ -15,7 +15,7 @@ use azalea_core::{ codec_utils::*, filterable::Filterable, position::GlobalPos, - registry_holder::RegistryHolder, + registry_holder::{DamageTypeElement, RegistryHolder}, resource_location::ResourceLocation, sound::CustomSound, }; @@ -1474,30 +1474,151 @@ pub struct ChickenVariantData { #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] pub struct UseEffects { - pub todo: todo!(), // see DataComponents.java + pub can_sprint: bool, + pub interact_vibrations: bool, + pub speed_multiplier: f32, +} +impl UseEffects { + pub const fn new() -> Self { + Self { + can_sprint: false, + interact_vibrations: true, + speed_multiplier: 0.2, + } + } +} +impl Default for UseEffects { + fn default() -> Self { + Self::new() + } } #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] +#[serde(transparent)] pub struct MinimumAttackCharge { - pub todo: todo!(), // see DataComponents.java + pub value: f32, } +// TODO: this is probably wrong, check in-game #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] -pub struct DamageType { - pub todo: todo!(), // see DataComponents.java +#[serde(untagged)] +pub enum DamageType { + Registry(registry::DamageKind), + Holder(Holder), } #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] pub struct PiercingWeapon { - pub todo: todo!(), // see DataComponents.java + pub min_reach: f32, + pub max_reach: f32, + pub hitbox_margin: f32, + pub deals_knockback: bool, + pub dismounts: bool, + pub sound: Option>, + pub hit_sound: Option>, +} +impl PiercingWeapon { + pub const fn new() -> Self { + Self { + min_reach: 0., + max_reach: 3., + hitbox_margin: 0., + deals_knockback: true, + dismounts: false, + sound: None, + hit_sound: None, + } + } } #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] pub struct KineticWeapon { - pub todo: todo!(), // see DataComponents.java + pub min_reach: f32, + pub max_reach: f32, + pub hitbox_margin: f32, + #[var] + pub contact_cooldown_ticks: i32, + #[var] + pub delay_ticks: i32, + pub dismount_conditions: Option, + pub knockback_conditions: Option, + pub damage_conditions: Option, + pub forward_movement: f32, + pub damage_multiplier: f32, + pub sound: Option>, + pub hit_sound: Option>, +} +impl KineticWeapon { + pub const fn new() -> Self { + Self { + min_reach: 0., + max_reach: 3., + hitbox_margin: 0.3, + contact_cooldown_ticks: 10, + delay_ticks: 0, + dismount_conditions: None, + knockback_conditions: None, + damage_conditions: None, + forward_movement: 0., + damage_multiplier: 1., + sound: None, + hit_sound: None, + } + } +} +impl Default for KineticWeapon { + fn default() -> Self { + Self::new() + } +} + +#[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] +pub struct KineticWeaponCondition { + #[var] + pub max_duration_ticks: i32, + pub min_speed: f32, + pub min_relative_speed: f32, +} +impl KineticWeaponCondition { + pub const fn new() -> Self { + Self { + max_duration_ticks: 0, + min_speed: 0., + min_relative_speed: 0., + } + } +} +impl Default for KineticWeaponCondition { + fn default() -> Self { + Self::new() + } } #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] pub struct SwingAnimation { - pub todo: todo!(), // see DataComponents.java + #[serde(rename = "type")] + pub kind: SwingAnimationKind, + #[var] + pub duration: i32, +} +impl SwingAnimation { + pub const fn new() -> Self { + Self { + kind: SwingAnimationKind::Whack, + duration: 6, + } + } +} +impl Default for SwingAnimation { + fn default() -> Self { + Self::new() + } +} + +#[derive(Clone, Copy, PartialEq, AzBuf, Debug, Serialize)] +#[serde(rename_all = "snake_case")] +pub enum SwingAnimationKind { + None, + Whack, + Stab, } diff --git a/azalea-inventory/src/default_components/generated.rs b/azalea-inventory/src/default_components/generated.rs index ddb2d6e30..ceb257767 100644 --- a/azalea-inventory/src/default_components/generated.rs +++ b/azalea-inventory/src/default_components/generated.rs @@ -6,7 +6,9 @@ use std::collections::HashMap; use azalea_chat::translatable_component::TranslatableComponent; -use azalea_registry::{Attribute, Block, EntityKind, HolderSet, Item, MobEffect, SoundEvent}; +use azalea_registry::{ + Attribute, Block, DataRegistry, EntityKind, HolderSet, Item, MobEffect, SoundEvent, +}; use simdnbt::owned::NbtCompound; use crate::{ @@ -2180,23 +2182,37 @@ impl DefaultableComponent for RepairCost { impl DefaultableComponent for SwingAnimation { fn default_for_item(item: Item) -> Option { let value = match item { - Item::CopperSpear => todo!(), /* see DataComponents.java {type: */ - // FIXME_UNKNOWN_TYPE::Stab,duration: 17,}, - Item::DiamondSpear => todo!(), /* see DataComponents.java {type: */ - // FIXME_UNKNOWN_TYPE::Stab,duration: 21,}, - Item::GoldenSpear => todo!(), /* see DataComponents.java {type: */ - // FIXME_UNKNOWN_TYPE::Stab,duration: 19,}, - Item::IronSpear => todo!(), /* see DataComponents.java {type: */ - // FIXME_UNKNOWN_TYPE::Stab,duration: 19,}, - Item::NetheriteSpear => todo!(), /* see DataComponents.java {type: */ - // FIXME_UNKNOWN_TYPE::Stab,duration: 23,}, - Item::StoneSpear => todo!(), /* see DataComponents.java {type: */ - // FIXME_UNKNOWN_TYPE::Stab,duration: 15,}, - Item::WoodenSpear => todo!(), /* see DataComponents.java {type: */ - // FIXME_UNKNOWN_TYPE::Stab,duration: 13,}, - _ => todo!(), // see DataComponents.java::new(), + Item::CopperSpear => SwingAnimation { + kind: SwingAnimationKind::Stab, + duration: 17, + }, + Item::DiamondSpear => SwingAnimation { + kind: SwingAnimationKind::Stab, + duration: 21, + }, + Item::GoldenSpear => SwingAnimation { + kind: SwingAnimationKind::Stab, + duration: 19, + }, + Item::IronSpear => SwingAnimation { + kind: SwingAnimationKind::Stab, + duration: 19, + }, + Item::NetheriteSpear => SwingAnimation { + kind: SwingAnimationKind::Stab, + duration: 23, + }, + Item::StoneSpear => SwingAnimation { + kind: SwingAnimationKind::Stab, + duration: 15, + }, + Item::WoodenSpear => SwingAnimation { + kind: SwingAnimationKind::Stab, + duration: 13, + }, + _ => SwingAnimation::new(), }; - Some(SwingAnimation { todo: value }) + Some(value) } } impl DefaultableComponent for TooltipDisplay { @@ -2207,23 +2223,44 @@ impl DefaultableComponent for TooltipDisplay { impl DefaultableComponent for UseEffects { fn default_for_item(item: Item) -> Option { let value = match item { - Item::CopperSpear => todo!(), /* see DataComponents.java {can_sprint: */ - // true,speed_multiplier: 1.0,}, - Item::DiamondSpear => todo!(), /* see DataComponents.java {can_sprint: */ - // true,speed_multiplier: 1.0,}, - Item::GoldenSpear => todo!(), /* see DataComponents.java {can_sprint: */ - // true,speed_multiplier: 1.0,}, - Item::IronSpear => todo!(), /* see DataComponents.java {can_sprint: */ - // true,speed_multiplier: 1.0,}, - Item::NetheriteSpear => todo!(), /* see DataComponents.java {can_sprint: */ - // true,speed_multiplier: 1.0,}, - Item::StoneSpear => todo!(), /* see DataComponents.java {can_sprint: */ - // true,speed_multiplier: 1.0,}, - Item::WoodenSpear => todo!(), /* see DataComponents.java {can_sprint: */ - // true,speed_multiplier: 1.0,}, - _ => todo!(), // see DataComponents.java::new(), + Item::CopperSpear => UseEffects { + can_sprint: true, + speed_multiplier: 1.0, + ..UseEffects::new() + }, + Item::DiamondSpear => UseEffects { + can_sprint: true, + speed_multiplier: 1.0, + ..UseEffects::new() + }, + Item::GoldenSpear => UseEffects { + can_sprint: true, + speed_multiplier: 1.0, + ..UseEffects::new() + }, + Item::IronSpear => UseEffects { + can_sprint: true, + speed_multiplier: 1.0, + ..UseEffects::new() + }, + Item::NetheriteSpear => UseEffects { + can_sprint: true, + speed_multiplier: 1.0, + ..UseEffects::new() + }, + Item::StoneSpear => UseEffects { + can_sprint: true, + speed_multiplier: 1.0, + ..UseEffects::new() + }, + Item::WoodenSpear => UseEffects { + can_sprint: true, + speed_multiplier: 1.0, + ..UseEffects::new() + }, + _ => UseEffects::new(), }; - Some(UseEffects { todo: value }) + Some(value) } } impl DefaultableComponent for Container { @@ -5728,107 +5765,210 @@ impl DefaultableComponent for Weapon { impl DefaultableComponent for DamageType { fn default_for_item(item: Item) -> Option { let value = match item { - Item::CopperSpear => todo!(), // see DataComponents.java::Spear, - Item::DiamondSpear => todo!(), // see DataComponents.java::Spear, - Item::GoldenSpear => todo!(), // see DataComponents.java::Spear, - Item::IronSpear => todo!(), // see DataComponents.java::Spear, - Item::NetheriteSpear => todo!(), // see DataComponents.java::Spear, - Item::StoneSpear => todo!(), // see DataComponents.java::Spear, - Item::WoodenSpear => todo!(), // see DataComponents.java::Spear, + Item::CopperSpear => DamageType::Registry(azalea_registry::DamageKind::new_raw(0)), + Item::DiamondSpear => DamageType::Registry(azalea_registry::DamageKind::new_raw(0)), + Item::GoldenSpear => DamageType::Registry(azalea_registry::DamageKind::new_raw(0)), + Item::IronSpear => DamageType::Registry(azalea_registry::DamageKind::new_raw(0)), + Item::NetheriteSpear => DamageType::Registry(azalea_registry::DamageKind::new_raw(0)), + Item::StoneSpear => DamageType::Registry(azalea_registry::DamageKind::new_raw(0)), + Item::WoodenSpear => DamageType::Registry(azalea_registry::DamageKind::new_raw(0)), _ => return None, }; - Some(DamageType { todo: value }) + Some(value) } } impl DefaultableComponent for KineticWeapon { fn default_for_item(item: Item) -> Option { let value = match item { - Item::CopperSpear => todo!(), /* see DataComponents.java {damage_conditions: */ - // FIXME_UNKNOWN_TYPE {max_duration_ticks: - // 250,min_relative_speed: 4.6,},damage_multiplier: - // 0.82,delay_ticks: 13,dismount_conditions: - // FIXME_UNKNOWN_TYPE {max_duration_ticks: - // 80,min_speed: 9.0,},forward_movement: - // 0.38,hit_sound: - // FIXME_UNKNOWN_TYPE::ItemSpearHit,hitbox_margin: - // 0.25,knockback_conditions: FIXME_UNKNOWN_TYPE - // {max_duration_ticks: 100,min_speed: - // 5.1,},max_reach: 4.5,min_reach: 2.0,sound: - // FIXME_UNKNOWN_TYPE::ItemSpearUse,}, - Item::DiamondSpear => todo!(), /* see DataComponents.java {damage_conditions: */ - // FIXME_UNKNOWN_TYPE {max_duration_ticks: - // 200,min_relative_speed: 4.6,},damage_multiplier: - // 1.075,delay_ticks: 10,dismount_conditions: - // FIXME_UNKNOWN_TYPE {max_duration_ticks: - // 60,min_speed: 7.5,},forward_movement: - // 0.38,hit_sound: - // FIXME_UNKNOWN_TYPE::ItemSpearHit,hitbox_margin: - // 0.25,knockback_conditions: FIXME_UNKNOWN_TYPE - // {max_duration_ticks: 80,min_speed: - // 5.1,},max_reach: 4.5,min_reach: 2.0,sound: - // FIXME_UNKNOWN_TYPE::ItemSpearUse,}, - Item::GoldenSpear => todo!(), /* see DataComponents.java {damage_conditions: */ - // FIXME_UNKNOWN_TYPE {max_duration_ticks: - // 275,min_relative_speed: 4.6,},damage_multiplier: - // 0.7,delay_ticks: 14,dismount_conditions: - // FIXME_UNKNOWN_TYPE {max_duration_ticks: - // 70,min_speed: 10.0,},forward_movement: - // 0.38,hit_sound: - // FIXME_UNKNOWN_TYPE::ItemSpearHit,hitbox_margin: - // 0.25,knockback_conditions: FIXME_UNKNOWN_TYPE - // {max_duration_ticks: 110,min_speed: - // 5.1,},max_reach: 4.5,min_reach: 2.0,sound: - // FIXME_UNKNOWN_TYPE::ItemSpearUse,}, - Item::IronSpear => todo!(), /* see DataComponents.java {damage_conditions: */ - // FIXME_UNKNOWN_TYPE {max_duration_ticks: - // 225,min_relative_speed: 4.6,},damage_multiplier: - // 0.95,delay_ticks: 12,dismount_conditions: - // FIXME_UNKNOWN_TYPE {max_duration_ticks: 50,min_speed: - // 8.0,},forward_movement: 0.38,hit_sound: - // FIXME_UNKNOWN_TYPE::ItemSpearHit,hitbox_margin: - // 0.25,knockback_conditions: FIXME_UNKNOWN_TYPE - // {max_duration_ticks: 90,min_speed: 5.1,},max_reach: - // 4.5,min_reach: 2.0,sound: - // FIXME_UNKNOWN_TYPE::ItemSpearUse,}, - Item::NetheriteSpear => todo!(), /* see DataComponents.java {damage_conditions: */ - // FIXME_UNKNOWN_TYPE {max_duration_ticks: - // 175,min_relative_speed: 4.6,},damage_multiplier: - // 1.2,delay_ticks: 8,dismount_conditions: - // FIXME_UNKNOWN_TYPE {max_duration_ticks: - // 50,min_speed: 7.0,},forward_movement: - // 0.38,hit_sound: - // FIXME_UNKNOWN_TYPE::ItemSpearHit,hitbox_margin: - // 0.25,knockback_conditions: FIXME_UNKNOWN_TYPE - // {max_duration_ticks: 70,min_speed: - // 5.1,},max_reach: 4.5,min_reach: 2.0,sound: - // FIXME_UNKNOWN_TYPE::ItemSpearUse,}, - Item::StoneSpear => todo!(), /* see DataComponents.java {damage_conditions: */ - // FIXME_UNKNOWN_TYPE {max_duration_ticks: - // 275,min_relative_speed: 4.6,},damage_multiplier: - // 0.82,delay_ticks: 14,dismount_conditions: - // FIXME_UNKNOWN_TYPE {max_duration_ticks: - // 90,min_speed: 10.0,},forward_movement: - // 0.38,hit_sound: - // FIXME_UNKNOWN_TYPE::ItemSpearHit,hitbox_margin: - // 0.25,knockback_conditions: FIXME_UNKNOWN_TYPE - // {max_duration_ticks: 110,min_speed: 5.1,},max_reach: - // 4.5,min_reach: 2.0,sound: - // FIXME_UNKNOWN_TYPE::ItemSpearUse,}, - Item::WoodenSpear => todo!(), /* see DataComponents.java {damage_conditions: */ - // FIXME_UNKNOWN_TYPE {max_duration_ticks: - // 300,min_relative_speed: 4.6,},damage_multiplier: - // 0.7,delay_ticks: 15,dismount_conditions: - // FIXME_UNKNOWN_TYPE {max_duration_ticks: - // 100,min_speed: 14.0,},forward_movement: - // 0.38,hit_sound: - // FIXME_UNKNOWN_TYPE::ItemSpearWoodHit,hitbox_margin: - // 0.25,knockback_conditions: FIXME_UNKNOWN_TYPE - // {max_duration_ticks: 120,min_speed: - // 5.1,},max_reach: 4.5,min_reach: 2.0,sound: - // FIXME_UNKNOWN_TYPE::ItemSpearWoodUse,}, + Item::CopperSpear => KineticWeapon { + damage_conditions: Some(KineticWeaponCondition { + max_duration_ticks: 250, + min_relative_speed: 4.6, + ..KineticWeaponCondition::new() + }), + damage_multiplier: 0.82, + delay_ticks: 13, + dismount_conditions: Some(KineticWeaponCondition { + max_duration_ticks: 80, + min_speed: 9.0, + ..KineticWeaponCondition::new() + }), + forward_movement: 0.38, + hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)), + hitbox_margin: 0.25, + knockback_conditions: Some(KineticWeaponCondition { + max_duration_ticks: 100, + min_speed: 5.1, + ..KineticWeaponCondition::new() + }), + max_reach: 4.5, + min_reach: 2.0, + sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearUse)), + ..KineticWeapon::new() + }, + Item::DiamondSpear => KineticWeapon { + damage_conditions: Some(KineticWeaponCondition { + max_duration_ticks: 200, + min_relative_speed: 4.6, + ..KineticWeaponCondition::new() + }), + damage_multiplier: 1.075, + delay_ticks: 10, + dismount_conditions: Some(KineticWeaponCondition { + max_duration_ticks: 60, + min_speed: 7.5, + ..KineticWeaponCondition::new() + }), + forward_movement: 0.38, + hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)), + hitbox_margin: 0.25, + knockback_conditions: Some(KineticWeaponCondition { + max_duration_ticks: 80, + min_speed: 5.1, + ..KineticWeaponCondition::new() + }), + max_reach: 4.5, + min_reach: 2.0, + sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearUse)), + ..KineticWeapon::new() + }, + Item::GoldenSpear => KineticWeapon { + damage_conditions: Some(KineticWeaponCondition { + max_duration_ticks: 275, + min_relative_speed: 4.6, + ..KineticWeaponCondition::new() + }), + damage_multiplier: 0.7, + delay_ticks: 14, + dismount_conditions: Some(KineticWeaponCondition { + max_duration_ticks: 70, + min_speed: 10.0, + ..KineticWeaponCondition::new() + }), + forward_movement: 0.38, + hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)), + hitbox_margin: 0.25, + knockback_conditions: Some(KineticWeaponCondition { + max_duration_ticks: 110, + min_speed: 5.1, + ..KineticWeaponCondition::new() + }), + max_reach: 4.5, + min_reach: 2.0, + sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearUse)), + ..KineticWeapon::new() + }, + Item::IronSpear => KineticWeapon { + damage_conditions: Some(KineticWeaponCondition { + max_duration_ticks: 225, + min_relative_speed: 4.6, + ..KineticWeaponCondition::new() + }), + damage_multiplier: 0.95, + delay_ticks: 12, + dismount_conditions: Some(KineticWeaponCondition { + max_duration_ticks: 50, + min_speed: 8.0, + ..KineticWeaponCondition::new() + }), + forward_movement: 0.38, + hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)), + hitbox_margin: 0.25, + knockback_conditions: Some(KineticWeaponCondition { + max_duration_ticks: 90, + min_speed: 5.1, + ..KineticWeaponCondition::new() + }), + max_reach: 4.5, + min_reach: 2.0, + sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearUse)), + ..KineticWeapon::new() + }, + Item::NetheriteSpear => KineticWeapon { + damage_conditions: Some(KineticWeaponCondition { + max_duration_ticks: 175, + min_relative_speed: 4.6, + ..KineticWeaponCondition::new() + }), + damage_multiplier: 1.2, + delay_ticks: 8, + dismount_conditions: Some(KineticWeaponCondition { + max_duration_ticks: 50, + min_speed: 7.0, + ..KineticWeaponCondition::new() + }), + forward_movement: 0.38, + hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)), + hitbox_margin: 0.25, + knockback_conditions: Some(KineticWeaponCondition { + max_duration_ticks: 70, + min_speed: 5.1, + ..KineticWeaponCondition::new() + }), + max_reach: 4.5, + min_reach: 2.0, + sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearUse)), + ..KineticWeapon::new() + }, + Item::StoneSpear => KineticWeapon { + damage_conditions: Some(KineticWeaponCondition { + max_duration_ticks: 275, + min_relative_speed: 4.6, + ..KineticWeaponCondition::new() + }), + damage_multiplier: 0.82, + delay_ticks: 14, + dismount_conditions: Some(KineticWeaponCondition { + max_duration_ticks: 90, + min_speed: 10.0, + ..KineticWeaponCondition::new() + }), + forward_movement: 0.38, + hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)), + hitbox_margin: 0.25, + knockback_conditions: Some(KineticWeaponCondition { + max_duration_ticks: 110, + min_speed: 5.1, + ..KineticWeaponCondition::new() + }), + max_reach: 4.5, + min_reach: 2.0, + sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearUse)), + ..KineticWeapon::new() + }, + Item::WoodenSpear => KineticWeapon { + damage_conditions: Some(KineticWeaponCondition { + max_duration_ticks: 300, + min_relative_speed: 4.6, + ..KineticWeaponCondition::new() + }), + damage_multiplier: 0.7, + delay_ticks: 15, + dismount_conditions: Some(KineticWeaponCondition { + max_duration_ticks: 100, + min_speed: 14.0, + ..KineticWeaponCondition::new() + }), + forward_movement: 0.38, + hit_sound: Some(azalea_registry::Holder::Reference( + SoundEvent::ItemSpearWoodHit, + )), + hitbox_margin: 0.25, + knockback_conditions: Some(KineticWeaponCondition { + max_duration_ticks: 120, + min_speed: 5.1, + ..KineticWeaponCondition::new() + }), + max_reach: 4.5, + min_reach: 2.0, + sound: Some(azalea_registry::Holder::Reference( + SoundEvent::ItemSpearWoodUse, + )), + ..KineticWeapon::new() + }, _ => return None, }; - Some(KineticWeapon { todo: value }) + Some(value) } } impl DefaultableComponent for MinimumAttackCharge { @@ -5843,43 +5983,87 @@ impl DefaultableComponent for MinimumAttackCharge { Item::WoodenSpear => 1.0, _ => return None, }; - Some(MinimumAttackCharge { todo: value }) + Some(MinimumAttackCharge { value: value }) } } impl DefaultableComponent for PiercingWeapon { fn default_for_item(item: Item) -> Option { let value = match item { - Item::CopperSpear => todo!(), /* see DataComponents.java {hit_sound: */ - // FIXME_UNKNOWN_TYPE::ItemSpearHit,hitbox_margin: - // 0.25,max_reach: 4.5,min_reach: 2.0,sound: - // FIXME_UNKNOWN_TYPE::ItemSpearAttack,}, - Item::DiamondSpear => todo!(), /* see DataComponents.java {hit_sound: */ - // FIXME_UNKNOWN_TYPE::ItemSpearHit,hitbox_margin: - // 0.25,max_reach: 4.5,min_reach: 2.0,sound: - // FIXME_UNKNOWN_TYPE::ItemSpearAttack,}, - Item::GoldenSpear => todo!(), /* see DataComponents.java {hit_sound: */ - // FIXME_UNKNOWN_TYPE::ItemSpearHit,hitbox_margin: - // 0.25,max_reach: 4.5,min_reach: 2.0,sound: - // FIXME_UNKNOWN_TYPE::ItemSpearAttack,}, - Item::IronSpear => todo!(), /* see DataComponents.java {hit_sound: */ - // FIXME_UNKNOWN_TYPE::ItemSpearHit,hitbox_margin: - // 0.25,max_reach: 4.5,min_reach: 2.0,sound: - // FIXME_UNKNOWN_TYPE::ItemSpearAttack,}, - Item::NetheriteSpear => todo!(), /* see DataComponents.java {hit_sound: */ - // FIXME_UNKNOWN_TYPE::ItemSpearHit,hitbox_margin: - // 0.25,max_reach: 4.5,min_reach: 2.0,sound: - // FIXME_UNKNOWN_TYPE::ItemSpearAttack,}, - Item::StoneSpear => todo!(), /* see DataComponents.java {hit_sound: */ - // FIXME_UNKNOWN_TYPE::ItemSpearHit,hitbox_margin: - // 0.25,max_reach: 4.5,min_reach: 2.0,sound: - // FIXME_UNKNOWN_TYPE::ItemSpearAttack,}, - Item::WoodenSpear => todo!(), /* see DataComponents.java {hit_sound: */ - // FIXME_UNKNOWN_TYPE::ItemSpearWoodHit,hitbox_margin: - // 0.25,max_reach: 4.5,min_reach: 2.0,sound: - // FIXME_UNKNOWN_TYPE::ItemSpearWoodAttack,}, + Item::CopperSpear => PiercingWeapon { + hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)), + hitbox_margin: 0.25, + max_reach: 4.5, + min_reach: 2.0, + sound: Some(azalea_registry::Holder::Reference( + SoundEvent::ItemSpearAttack, + )), + ..PiercingWeapon::new() + }, + Item::DiamondSpear => PiercingWeapon { + hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)), + hitbox_margin: 0.25, + max_reach: 4.5, + min_reach: 2.0, + sound: Some(azalea_registry::Holder::Reference( + SoundEvent::ItemSpearAttack, + )), + ..PiercingWeapon::new() + }, + Item::GoldenSpear => PiercingWeapon { + hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)), + hitbox_margin: 0.25, + max_reach: 4.5, + min_reach: 2.0, + sound: Some(azalea_registry::Holder::Reference( + SoundEvent::ItemSpearAttack, + )), + ..PiercingWeapon::new() + }, + Item::IronSpear => PiercingWeapon { + hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)), + hitbox_margin: 0.25, + max_reach: 4.5, + min_reach: 2.0, + sound: Some(azalea_registry::Holder::Reference( + SoundEvent::ItemSpearAttack, + )), + ..PiercingWeapon::new() + }, + Item::NetheriteSpear => PiercingWeapon { + hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)), + hitbox_margin: 0.25, + max_reach: 4.5, + min_reach: 2.0, + sound: Some(azalea_registry::Holder::Reference( + SoundEvent::ItemSpearAttack, + )), + ..PiercingWeapon::new() + }, + Item::StoneSpear => PiercingWeapon { + hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)), + hitbox_margin: 0.25, + max_reach: 4.5, + min_reach: 2.0, + sound: Some(azalea_registry::Holder::Reference( + SoundEvent::ItemSpearAttack, + )), + ..PiercingWeapon::new() + }, + Item::WoodenSpear => PiercingWeapon { + hit_sound: Some(azalea_registry::Holder::Reference( + SoundEvent::ItemSpearWoodHit, + )), + hitbox_margin: 0.25, + max_reach: 4.5, + min_reach: 2.0, + sound: Some(azalea_registry::Holder::Reference( + SoundEvent::ItemSpearWoodAttack, + )), + ..PiercingWeapon::new() + }, _ => return None, }; - Some(PiercingWeapon { todo: value }) + Some(value) } } impl DefaultableComponent for ChargedProjectiles { diff --git a/azalea-protocol/src/packets/game/c_set_entity_data.rs b/azalea-protocol/src/packets/game/c_set_entity_data.rs index f51a42a4c..88aa04d97 100644 --- a/azalea-protocol/src/packets/game/c_set_entity_data.rs +++ b/azalea-protocol/src/packets/game/c_set_entity_data.rs @@ -18,23 +18,6 @@ mod tests { use super::*; - #[test] - fn test_read_hypixel_entity_data_2() { - let contents = [ - 161, 21, 2, 6, 0, 5, 8, 0, 6, 21, 0, 7, 1, 0, 1, 1, 172, 2, 3, 8, 0, 4, 8, 0, 9, 1, 0, - 0, 0, 0, 8, 7, 1, 186, 9, 2, 0, 5, 10, 9, 0, 5, 101, 120, 116, 114, 97, 10, 0, 0, 0, 1, - 8, 0, 5, 99, 111, 108, 111, 114, 0, 9, 100, 97, 114, 107, 95, 97, 113, 117, 97, 1, 0, - 4, 98, 111, 108, 100, 1, 8, 0, 4, 116, 101, 120, 116, 0, 18, 67, 108, 111, 117, 100, - 32, 82, 101, 103, 101, 110, 101, 114, 97, 116, 105, 111, 110, 0, 8, 0, 4, 116, 101, - 120, 116, 0, 0, 1, 0, 6, 105, 116, 97, 108, 105, 99, 0, 0, 41, 1, 31, 0, 0, 0, 255, - ]; - let mut buf = Cursor::new(contents.as_slice()); - let packet = ClientboundSetEntityData::azalea_read(&mut buf).unwrap(); - println!("{packet:?}"); - - assert_eq!(buf.position(), contents.len() as u64); - } - #[test] fn test_read_6b6t_entity_data() { let contents = [ diff --git a/azalea-registry/src/data.rs b/azalea-registry/src/data.rs index c1c1efe5b..2e4cf3c18 100644 --- a/azalea-registry/src/data.rs +++ b/azalea-registry/src/data.rs @@ -54,6 +54,10 @@ macro_rules! data_registry { }; } +// TODO: these should be represented as an enum with like a "Custom(u32)" +// variant, this is necessary to have a correct `impl DefaultableComponent for +// DamageType` + data_registry! {Enchantment, "enchantment"} data_registry! {DimensionType, "dimension_type"} data_registry! {DamageKind, "damage_kind"} diff --git a/azalea-registry/src/lib.rs b/azalea-registry/src/lib.rs index 92814db9f..fa42c2592 100644 --- a/azalea-registry/src/lib.rs +++ b/azalea-registry/src/lib.rs @@ -188,7 +188,7 @@ impl Default } /// A reference to either a registry or a custom value (usually something with a -/// ResourceLocation). +/// `ResourceLocation`). pub enum Holder { Reference(R), Direct(Direct), diff --git a/codegen/lib/code/data_components.py b/codegen/lib/code/data_components.py index 89796a918..76f329d37 100644 --- a/codegen/lib/code/data_components.py +++ b/codegen/lib/code/data_components.py @@ -180,7 +180,9 @@ def update_default_variants(version_id: str): use std::collections::HashMap; use azalea_chat::translatable_component::TranslatableComponent; -use azalea_registry::{Attribute, Block, EntityKind, HolderSet, Item, MobEffect, SoundEvent}; +use azalea_registry::{ + Attribute, Block, DataRegistry, EntityKind, HolderSet, Item, MobEffect, SoundEvent, +}; use simdnbt::owned::NbtCompound; use crate::{ @@ -383,6 +385,10 @@ def python_to_rust_value(python_value: Any, target_rust_type: Optional[str]): # create a struct based on the defaults t = f"{target_rust_type} {{" for k, v in python_value.items(): + if k == 'type': + # azalea's convention is to use "kind" instead of "type" + k = 'kind' + # get the type of the fields inner_type = enum_and_struct_fields.get(target_rust_type, {}).get( k, "FIXME_UNKNOWN_TYPE" @@ -411,13 +417,17 @@ def python_to_rust_value(python_value: Any, target_rust_type: Optional[str]): [python_value], f"Vec<{holderset_type}>" ) return f"HolderSet::Direct {{ contents: {main_vec} }}" - elif target_rust_type.startswith("azalea_registry::Holder<"): + elif target_rust_type.startswith("azalea_registry::Holder<") or target_rust_type.startswith("Holder<"): holder_type = target_rust_type.split("<", 1)[1].split(",", 1)[0] inner_type = python_to_rust_value(python_value, holder_type) return f"azalea_registry::Holder::Reference({inner_type})" elif target_rust_type == "ResourceLocation": # convert minecraft:air into ResourceLocation::from_static("minecraft:air") return f'"{python_value}".into()' + elif target_rust_type == 'DamageType': + # TODO: this is intentionally incorrect, see the comment in + # azalea-registry/src/data.rs to see how to fix this properly + return 'DamageType::Registry(azalea_registry::DamageKind::new_raw(0))' else: # enum variant return f"{target_rust_type}::{lib.utils.to_camel_case(python_value.split(':')[-1])}" From e58c06549b4bd9fdb362a2e73a9926308eac52ff Mon Sep 17 00:00:00 2001 From: mat Date: Wed, 12 Nov 2025 03:42:43 +0400 Subject: [PATCH 03/11] 25w46a --- Cargo.lock | 42 ++--- Cargo.toml | 2 +- README.md | 2 +- azalea-client/src/plugins/packet/game/mod.rs | 4 +- azalea-entity/src/data.rs | 9 + azalea-entity/src/metadata.rs | 17 +- azalea-inventory/src/components/mod.rs | 18 ++ .../src/default_components/generated.rs | 106 +++++++++-- azalea-language/src/en_us.json | 20 ++- .../src/common/client_information.rs | 8 +- ..._screen_open.rs => c_mount_screen_open.rs} | 2 +- azalea-protocol/src/packets/game/mod.rs | 2 +- azalea-protocol/src/packets/mod.rs | 4 +- azalea-registry/src/data.rs | 1 + azalea-registry/src/lib.rs | 165 ++++++++++-------- codegen/lib/code/entity.py | 2 +- codegen/lib/download.py | 5 +- 17 files changed, 275 insertions(+), 134 deletions(-) rename azalea-protocol/src/packets/game/{c_horse_screen_open.rs => c_mount_screen_open.rs} (88%) diff --git a/Cargo.lock b/Cargo.lock index feaae36e3..43d7645b2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -209,7 +209,7 @@ checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "azalea" -version = "0.14.0+mc25w44a" +version = "0.14.0+mc25w46a" dependencies = [ "anyhow", "azalea-auth", @@ -249,7 +249,7 @@ dependencies = [ [[package]] name = "azalea-auth" -version = "0.14.0+mc25w44a" +version = "0.14.0+mc25w46a" dependencies = [ "azalea-buf", "azalea-crypto", @@ -271,7 +271,7 @@ dependencies = [ [[package]] name = "azalea-block" -version = "0.14.0+mc25w44a" +version = "0.14.0+mc25w46a" dependencies = [ "azalea-block-macros", "azalea-buf", @@ -280,7 +280,7 @@ dependencies = [ [[package]] name = "azalea-block-macros" -version = "0.14.0+mc25w44a" +version = "0.14.0+mc25w46a" dependencies = [ "proc-macro2", "quote", @@ -289,7 +289,7 @@ dependencies = [ [[package]] name = "azalea-brigadier" -version = "0.14.0+mc25w44a" +version = "0.14.0+mc25w46a" dependencies = [ "azalea-buf", "azalea-chat", @@ -300,7 +300,7 @@ dependencies = [ [[package]] name = "azalea-buf" -version = "0.14.0+mc25w44a" +version = "0.14.0+mc25w46a" dependencies = [ "azalea-buf-macros", "byteorder", @@ -314,7 +314,7 @@ dependencies = [ [[package]] name = "azalea-buf-macros" -version = "0.14.0+mc25w44a" +version = "0.14.0+mc25w46a" dependencies = [ "proc-macro2", "quote", @@ -323,7 +323,7 @@ dependencies = [ [[package]] name = "azalea-chat" -version = "0.14.0+mc25w44a" +version = "0.14.0+mc25w46a" dependencies = [ "azalea-buf", "azalea-language", @@ -336,7 +336,7 @@ dependencies = [ [[package]] name = "azalea-client" -version = "0.14.0+mc25w44a" +version = "0.14.0+mc25w46a" dependencies = [ "anyhow", "async-compat", @@ -374,7 +374,7 @@ dependencies = [ [[package]] name = "azalea-core" -version = "0.14.0+mc25w44a" +version = "0.14.0+mc25w46a" dependencies = [ "azalea-buf", "azalea-chat", @@ -393,7 +393,7 @@ dependencies = [ [[package]] name = "azalea-crypto" -version = "0.14.0+mc25w44a" +version = "0.14.0+mc25w46a" dependencies = [ "aes", "azalea-buf", @@ -410,7 +410,7 @@ dependencies = [ [[package]] name = "azalea-entity" -version = "0.14.0+mc25w44a" +version = "0.14.0+mc25w46a" dependencies = [ "azalea-auth", "azalea-block", @@ -434,7 +434,7 @@ dependencies = [ [[package]] name = "azalea-inventory" -version = "0.14.0+mc25w44a" +version = "0.14.0+mc25w46a" dependencies = [ "azalea-auth", "azalea-buf", @@ -451,7 +451,7 @@ dependencies = [ [[package]] name = "azalea-inventory-macros" -version = "0.14.0+mc25w44a" +version = "0.14.0+mc25w46a" dependencies = [ "proc-macro2", "quote", @@ -460,7 +460,7 @@ dependencies = [ [[package]] name = "azalea-language" -version = "0.14.0+mc25w44a" +version = "0.14.0+mc25w46a" dependencies = [ "compact_str", "serde_json", @@ -468,7 +468,7 @@ dependencies = [ [[package]] name = "azalea-physics" -version = "0.14.0+mc25w44a" +version = "0.14.0+mc25w46a" dependencies = [ "azalea-block", "azalea-core", @@ -485,7 +485,7 @@ dependencies = [ [[package]] name = "azalea-protocol" -version = "0.14.0+mc25w44a" +version = "0.14.0+mc25w46a" dependencies = [ "anyhow", "async-recursion", @@ -521,7 +521,7 @@ dependencies = [ [[package]] name = "azalea-protocol-macros" -version = "0.14.0+mc25w44a" +version = "0.14.0+mc25w46a" dependencies = [ "proc-macro2", "quote", @@ -530,7 +530,7 @@ dependencies = [ [[package]] name = "azalea-registry" -version = "0.14.0+mc25w44a" +version = "0.14.0+mc25w46a" dependencies = [ "azalea-buf", "azalea-registry-macros", @@ -540,7 +540,7 @@ dependencies = [ [[package]] name = "azalea-registry-macros" -version = "0.14.0+mc25w44a" +version = "0.14.0+mc25w46a" dependencies = [ "quote", "syn", @@ -548,7 +548,7 @@ dependencies = [ [[package]] name = "azalea-world" -version = "0.14.0+mc25w44a" +version = "0.14.0+mc25w46a" dependencies = [ "azalea-block", "azalea-buf", diff --git a/Cargo.toml b/Cargo.toml index 50bd25e36..dbbf44bbb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -22,7 +22,7 @@ resolver = "2" # --- Workspace Settings --- [workspace.package] -version = "0.14.0+mc25w44a" +version = "0.14.0+mc25w46a" edition = "2024" license = "MIT" repository = "https://github.com/azalea-rs/azalea" diff --git a/README.md b/README.md index 237b8a580..6d4933746 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ A collection of Rust crates for making Minecraft bots, clients, and tools. -_Currently supported Minecraft version: `25w44a`._ +_Currently supported Minecraft version: `25w46a`._ > [!WARNING] > Many parts of Azalea are still unfinished and will receive breaking changes in the future. Most breaking changes will be listed in the [changelog](CHANGELOG.md). diff --git a/azalea-client/src/plugins/packet/game/mod.rs b/azalea-client/src/plugins/packet/game/mod.rs index 46cfd5310..fa1268a85 100644 --- a/azalea-client/src/plugins/packet/game/mod.rs +++ b/azalea-client/src/plugins/packet/game/mod.rs @@ -115,7 +115,7 @@ pub fn process_packet(ecs: &mut World, player: Entity, packet: &ClientboundGameP delete_chat, explode, forget_level_chunk, - horse_screen_open, + mount_screen_open, map_item_data, merchant_offers, move_vehicle, @@ -1250,7 +1250,7 @@ impl GamePacketHandler<'_> { }); } - pub fn horse_screen_open(&mut self, _p: &ClientboundHorseScreenOpen) {} + pub fn mount_screen_open(&mut self, _p: &ClientboundMountScreenOpen) {} pub fn map_item_data(&mut self, _p: &ClientboundMapItemData) {} diff --git a/azalea-entity/src/data.rs b/azalea-entity/src/data.rs index 65267c4aa..e268ff004 100644 --- a/azalea-entity/src/data.rs +++ b/azalea-entity/src/data.rs @@ -87,6 +87,7 @@ pub enum EntityDataValue { WolfSoundVariant(azalea_registry::WolfSoundVariant), FrogVariant(azalea_registry::FrogVariant), PigVariant(azalea_registry::PigVariant), + ZombieNautilusVariant(azalea_registry::ZombieNautilusVariant), OptionalGlobalPos(Option), PaintingVariant(azalea_registry::PaintingVariant), SnifferState(SnifferStateKind), @@ -96,6 +97,7 @@ pub enum EntityDataValue { Vector3(Vec3f32), Quaternion(Quaternion), ResolvableProfile(components::Profile), + HumanoidArm(HumanoidArm), } #[derive(Clone, Debug, PartialEq)] @@ -206,3 +208,10 @@ pub enum WeatheringCopperStateKind { Weathered, Oxidized, } + +#[derive(AzBuf, Clone, Copy, Debug, PartialEq, Eq, Default)] +pub enum HumanoidArm { + Left = 0, + #[default] + Right = 1, +} diff --git a/azalea-entity/src/metadata.rs b/azalea-entity/src/metadata.rs index fa815faf5..e858a1707 100644 --- a/azalea-entity/src/metadata.rs +++ b/azalea-entity/src/metadata.rs @@ -19,7 +19,7 @@ use super::{ ArmadilloStateKind, CopperGolemStateKind, EntityDataItem, EntityDataValue, OptionalUnsignedInt, Pose, Quaternion, Rotations, SnifferStateKind, VillagerData, WeatheringCopperStateKind, }; -use crate::particle::Particle; +use crate::{HumanoidArm, particle::Particle}; #[derive(Error, Debug)] pub enum UpdateMetadataError { @@ -6136,7 +6136,7 @@ impl Default for MangroveChestBoatMetadataBundle { } #[derive(Component, Deref, DerefMut, Clone, PartialEq)] -pub struct PlayerMainHand(pub u8); +pub struct PlayerMainHand(pub HumanoidArm); #[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct PlayerModeCustomisation(pub u8); #[derive(Component, Deref, DerefMut, Clone, PartialEq)] @@ -11224,6 +11224,8 @@ impl Default for ZombieHorseMetadataBundle { #[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct ZombieNautilusDash(pub bool); +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] +pub struct ZombieNautilusVariant(pub azalea_registry::ZombieNautilusVariant); #[derive(Component)] pub struct ZombieNautilus; impl ZombieNautilus { @@ -11236,6 +11238,11 @@ impl ZombieNautilus { 19 => { entity.insert(ZombieNautilusDash(d.value.into_boolean()?)); } + 20 => { + entity.insert(ZombieNautilusVariant( + d.value.into_zombie_nautilus_variant()?, + )); + } _ => {} } Ok(()) @@ -11247,6 +11254,7 @@ pub struct ZombieNautilusMetadataBundle { _marker: ZombieNautilus, parent: AbstractTameableMetadataBundle, zombie_nautilus_dash: ZombieNautilusDash, + zombie_nautilus_variant: ZombieNautilusVariant, } impl Default for ZombieNautilusMetadataBundle { fn default() -> Self { @@ -11305,6 +11313,9 @@ impl Default for ZombieNautilusMetadataBundle { owneruuid: Owneruuid(None), }, zombie_nautilus_dash: ZombieNautilusDash(false), + zombie_nautilus_variant: ZombieNautilusVariant( + azalea_registry::ZombieNautilusVariant::new_raw(0), + ), } } } @@ -11692,7 +11703,7 @@ impl AbstractAvatar { match d.index { 0..=14 => AbstractLiving::apply_metadata(entity, d)?, 15 => { - entity.insert(PlayerMainHand(d.value.into_byte()?)); + entity.insert(PlayerMainHand(d.value.into_humanoid_arm()?)); } 16 => { entity.insert(PlayerModeCustomisation(d.value.into_byte()?)); diff --git a/azalea-inventory/src/components/mod.rs b/azalea-inventory/src/components/mod.rs index ce9a0fac0..e979b7bf6 100644 --- a/azalea-inventory/src/components/mod.rs +++ b/azalea-inventory/src/components/mod.rs @@ -291,6 +291,7 @@ define_data_components!( PiercingWeapon, KineticWeapon, SwingAnimation, + ZombieNautilusVariant, ); #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] @@ -1472,6 +1473,18 @@ pub struct ChickenVariantData { pub registry: azalea_registry::ChickenVariant, } +// TODO: check in-game if this is correct +#[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] +pub enum ZombieNautilusVariant { + Referenced(ResourceLocation), + Direct(ZombieNautilusVariantData), +} +#[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] +#[serde(transparent)] +pub struct ZombieNautilusVariantData { + pub value: azalea_registry::ZombieNautilusVariant, +} + #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] pub struct UseEffects { pub can_sprint: bool, @@ -1530,6 +1543,11 @@ impl PiercingWeapon { } } } +impl Default for PiercingWeapon { + fn default() -> Self { + Self::new() + } +} #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] pub struct KineticWeapon { diff --git a/azalea-inventory/src/default_components/generated.rs b/azalea-inventory/src/default_components/generated.rs index ceb257767..4821588db 100644 --- a/azalea-inventory/src/default_components/generated.rs +++ b/azalea-inventory/src/default_components/generated.rs @@ -1465,6 +1465,38 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], + Item::NetheriteHorseArmor => vec![ + AttributeModifiersEntry { + slot: EquipmentSlotGroup::Body, + kind: Attribute::Armor, + display: AttributeModifierDisplay::Default, + modifier: AttributeModifier { + id: "minecraft:armor.body".into(), + amount: 19.0, + operation: AttributeModifierOperation::AddValue, + }, + }, + AttributeModifiersEntry { + slot: EquipmentSlotGroup::Body, + kind: Attribute::ArmorToughness, + display: AttributeModifierDisplay::Default, + modifier: AttributeModifier { + id: "minecraft:armor.body".into(), + amount: 3.0, + operation: AttributeModifierOperation::AddValue, + }, + }, + AttributeModifiersEntry { + slot: EquipmentSlotGroup::Body, + kind: Attribute::KnockbackResistance, + display: AttributeModifierDisplay::Default, + modifier: AttributeModifier { + id: "minecraft:armor.body".into(), + amount: 0.10000000149011612, + operation: AttributeModifierOperation::AddValue, + }, + }, + ], Item::NetheriteLeggings => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Legs, @@ -2020,7 +2052,7 @@ impl DefaultableComponent for Enchantments { } } #[rustfmt::skip] -static ITEM_MODEL_VALUES: [&str; 1504] = ["minecraft:air","minecraft:stone","minecraft:granite","minecraft:polished_granite","minecraft:diorite","minecraft:polished_diorite","minecraft:andesite","minecraft:polished_andesite","minecraft:deepslate","minecraft:cobbled_deepslate","minecraft:polished_deepslate","minecraft:calcite","minecraft:tuff","minecraft:tuff_slab","minecraft:tuff_stairs","minecraft:tuff_wall","minecraft:chiseled_tuff","minecraft:polished_tuff","minecraft:polished_tuff_slab","minecraft:polished_tuff_stairs","minecraft:polished_tuff_wall","minecraft:tuff_bricks","minecraft:tuff_brick_slab","minecraft:tuff_brick_stairs","minecraft:tuff_brick_wall","minecraft:chiseled_tuff_bricks","minecraft:dripstone_block","minecraft:grass_block","minecraft:dirt","minecraft:coarse_dirt","minecraft:podzol","minecraft:rooted_dirt","minecraft:mud","minecraft:crimson_nylium","minecraft:warped_nylium","minecraft:cobblestone","minecraft:oak_planks","minecraft:spruce_planks","minecraft:birch_planks","minecraft:jungle_planks","minecraft:acacia_planks","minecraft:cherry_planks","minecraft:dark_oak_planks","minecraft:pale_oak_planks","minecraft:mangrove_planks","minecraft:bamboo_planks","minecraft:crimson_planks","minecraft:warped_planks","minecraft:bamboo_mosaic","minecraft:oak_sapling","minecraft:spruce_sapling","minecraft:birch_sapling","minecraft:jungle_sapling","minecraft:acacia_sapling","minecraft:cherry_sapling","minecraft:dark_oak_sapling","minecraft:pale_oak_sapling","minecraft:mangrove_propagule","minecraft:bedrock","minecraft:sand","minecraft:suspicious_sand","minecraft:suspicious_gravel","minecraft:red_sand","minecraft:gravel","minecraft:coal_ore","minecraft:deepslate_coal_ore","minecraft:iron_ore","minecraft:deepslate_iron_ore","minecraft:copper_ore","minecraft:deepslate_copper_ore","minecraft:gold_ore","minecraft:deepslate_gold_ore","minecraft:redstone_ore","minecraft:deepslate_redstone_ore","minecraft:emerald_ore","minecraft:deepslate_emerald_ore","minecraft:lapis_ore","minecraft:deepslate_lapis_ore","minecraft:diamond_ore","minecraft:deepslate_diamond_ore","minecraft:nether_gold_ore","minecraft:nether_quartz_ore","minecraft:ancient_debris","minecraft:coal_block","minecraft:raw_iron_block","minecraft:raw_copper_block","minecraft:raw_gold_block","minecraft:heavy_core","minecraft:amethyst_block","minecraft:budding_amethyst","minecraft:iron_block","minecraft:copper_block","minecraft:gold_block","minecraft:diamond_block","minecraft:netherite_block","minecraft:exposed_copper","minecraft:weathered_copper","minecraft:oxidized_copper","minecraft:chiseled_copper","minecraft:exposed_chiseled_copper","minecraft:weathered_chiseled_copper","minecraft:oxidized_chiseled_copper","minecraft:cut_copper","minecraft:exposed_cut_copper","minecraft:weathered_cut_copper","minecraft:oxidized_cut_copper","minecraft:cut_copper_stairs","minecraft:exposed_cut_copper_stairs","minecraft:weathered_cut_copper_stairs","minecraft:oxidized_cut_copper_stairs","minecraft:cut_copper_slab","minecraft:exposed_cut_copper_slab","minecraft:weathered_cut_copper_slab","minecraft:oxidized_cut_copper_slab","minecraft:waxed_copper_block","minecraft:waxed_exposed_copper","minecraft:waxed_weathered_copper","minecraft:waxed_oxidized_copper","minecraft:waxed_chiseled_copper","minecraft:waxed_exposed_chiseled_copper","minecraft:waxed_weathered_chiseled_copper","minecraft:waxed_oxidized_chiseled_copper","minecraft:waxed_cut_copper","minecraft:waxed_exposed_cut_copper","minecraft:waxed_weathered_cut_copper","minecraft:waxed_oxidized_cut_copper","minecraft:waxed_cut_copper_stairs","minecraft:waxed_exposed_cut_copper_stairs","minecraft:waxed_weathered_cut_copper_stairs","minecraft:waxed_oxidized_cut_copper_stairs","minecraft:waxed_cut_copper_slab","minecraft:waxed_exposed_cut_copper_slab","minecraft:waxed_weathered_cut_copper_slab","minecraft:waxed_oxidized_cut_copper_slab","minecraft:oak_log","minecraft:spruce_log","minecraft:birch_log","minecraft:jungle_log","minecraft:acacia_log","minecraft:cherry_log","minecraft:pale_oak_log","minecraft:dark_oak_log","minecraft:mangrove_log","minecraft:mangrove_roots","minecraft:muddy_mangrove_roots","minecraft:crimson_stem","minecraft:warped_stem","minecraft:bamboo_block","minecraft:stripped_oak_log","minecraft:stripped_spruce_log","minecraft:stripped_birch_log","minecraft:stripped_jungle_log","minecraft:stripped_acacia_log","minecraft:stripped_cherry_log","minecraft:stripped_dark_oak_log","minecraft:stripped_pale_oak_log","minecraft:stripped_mangrove_log","minecraft:stripped_crimson_stem","minecraft:stripped_warped_stem","minecraft:stripped_oak_wood","minecraft:stripped_spruce_wood","minecraft:stripped_birch_wood","minecraft:stripped_jungle_wood","minecraft:stripped_acacia_wood","minecraft:stripped_cherry_wood","minecraft:stripped_dark_oak_wood","minecraft:stripped_pale_oak_wood","minecraft:stripped_mangrove_wood","minecraft:stripped_crimson_hyphae","minecraft:stripped_warped_hyphae","minecraft:stripped_bamboo_block","minecraft:oak_wood","minecraft:spruce_wood","minecraft:birch_wood","minecraft:jungle_wood","minecraft:acacia_wood","minecraft:cherry_wood","minecraft:pale_oak_wood","minecraft:dark_oak_wood","minecraft:mangrove_wood","minecraft:crimson_hyphae","minecraft:warped_hyphae","minecraft:oak_leaves","minecraft:spruce_leaves","minecraft:birch_leaves","minecraft:jungle_leaves","minecraft:acacia_leaves","minecraft:cherry_leaves","minecraft:dark_oak_leaves","minecraft:pale_oak_leaves","minecraft:mangrove_leaves","minecraft:azalea_leaves","minecraft:flowering_azalea_leaves","minecraft:sponge","minecraft:wet_sponge","minecraft:glass","minecraft:tinted_glass","minecraft:lapis_block","minecraft:sandstone","minecraft:chiseled_sandstone","minecraft:cut_sandstone","minecraft:cobweb","minecraft:short_grass","minecraft:fern","minecraft:bush","minecraft:azalea","minecraft:flowering_azalea","minecraft:dead_bush","minecraft:firefly_bush","minecraft:short_dry_grass","minecraft:tall_dry_grass","minecraft:seagrass","minecraft:sea_pickle","minecraft:white_wool","minecraft:orange_wool","minecraft:magenta_wool","minecraft:light_blue_wool","minecraft:yellow_wool","minecraft:lime_wool","minecraft:pink_wool","minecraft:gray_wool","minecraft:light_gray_wool","minecraft:cyan_wool","minecraft:purple_wool","minecraft:blue_wool","minecraft:brown_wool","minecraft:green_wool","minecraft:red_wool","minecraft:black_wool","minecraft:dandelion","minecraft:open_eyeblossom","minecraft:closed_eyeblossom","minecraft:poppy","minecraft:blue_orchid","minecraft:allium","minecraft:azure_bluet","minecraft:red_tulip","minecraft:orange_tulip","minecraft:white_tulip","minecraft:pink_tulip","minecraft:oxeye_daisy","minecraft:cornflower","minecraft:lily_of_the_valley","minecraft:wither_rose","minecraft:torchflower","minecraft:pitcher_plant","minecraft:spore_blossom","minecraft:brown_mushroom","minecraft:red_mushroom","minecraft:crimson_fungus","minecraft:warped_fungus","minecraft:crimson_roots","minecraft:warped_roots","minecraft:nether_sprouts","minecraft:weeping_vines","minecraft:twisting_vines","minecraft:sugar_cane","minecraft:kelp","minecraft:pink_petals","minecraft:wildflowers","minecraft:leaf_litter","minecraft:moss_carpet","minecraft:moss_block","minecraft:pale_moss_carpet","minecraft:pale_hanging_moss","minecraft:pale_moss_block","minecraft:hanging_roots","minecraft:big_dripleaf","minecraft:small_dripleaf","minecraft:bamboo","minecraft:oak_slab","minecraft:spruce_slab","minecraft:birch_slab","minecraft:jungle_slab","minecraft:acacia_slab","minecraft:cherry_slab","minecraft:dark_oak_slab","minecraft:pale_oak_slab","minecraft:mangrove_slab","minecraft:bamboo_slab","minecraft:bamboo_mosaic_slab","minecraft:crimson_slab","minecraft:warped_slab","minecraft:stone_slab","minecraft:smooth_stone_slab","minecraft:sandstone_slab","minecraft:cut_sandstone_slab","minecraft:petrified_oak_slab","minecraft:cobblestone_slab","minecraft:brick_slab","minecraft:stone_brick_slab","minecraft:mud_brick_slab","minecraft:nether_brick_slab","minecraft:quartz_slab","minecraft:red_sandstone_slab","minecraft:cut_red_sandstone_slab","minecraft:purpur_slab","minecraft:prismarine_slab","minecraft:prismarine_brick_slab","minecraft:dark_prismarine_slab","minecraft:smooth_quartz","minecraft:smooth_red_sandstone","minecraft:smooth_sandstone","minecraft:smooth_stone","minecraft:bricks","minecraft:acacia_shelf","minecraft:bamboo_shelf","minecraft:birch_shelf","minecraft:cherry_shelf","minecraft:crimson_shelf","minecraft:dark_oak_shelf","minecraft:jungle_shelf","minecraft:mangrove_shelf","minecraft:oak_shelf","minecraft:pale_oak_shelf","minecraft:spruce_shelf","minecraft:warped_shelf","minecraft:bookshelf","minecraft:chiseled_bookshelf","minecraft:decorated_pot","minecraft:mossy_cobblestone","minecraft:obsidian","minecraft:torch","minecraft:end_rod","minecraft:chorus_plant","minecraft:chorus_flower","minecraft:purpur_block","minecraft:purpur_pillar","minecraft:purpur_stairs","minecraft:spawner","minecraft:creaking_heart","minecraft:chest","minecraft:crafting_table","minecraft:farmland","minecraft:furnace","minecraft:ladder","minecraft:cobblestone_stairs","minecraft:snow","minecraft:ice","minecraft:snow_block","minecraft:cactus","minecraft:cactus_flower","minecraft:clay","minecraft:jukebox","minecraft:oak_fence","minecraft:spruce_fence","minecraft:birch_fence","minecraft:jungle_fence","minecraft:acacia_fence","minecraft:cherry_fence","minecraft:dark_oak_fence","minecraft:pale_oak_fence","minecraft:mangrove_fence","minecraft:bamboo_fence","minecraft:crimson_fence","minecraft:warped_fence","minecraft:pumpkin","minecraft:carved_pumpkin","minecraft:jack_o_lantern","minecraft:netherrack","minecraft:soul_sand","minecraft:soul_soil","minecraft:basalt","minecraft:polished_basalt","minecraft:smooth_basalt","minecraft:soul_torch","minecraft:copper_torch","minecraft:glowstone","minecraft:infested_stone","minecraft:infested_cobblestone","minecraft:infested_stone_bricks","minecraft:infested_mossy_stone_bricks","minecraft:infested_cracked_stone_bricks","minecraft:infested_chiseled_stone_bricks","minecraft:infested_deepslate","minecraft:stone_bricks","minecraft:mossy_stone_bricks","minecraft:cracked_stone_bricks","minecraft:chiseled_stone_bricks","minecraft:packed_mud","minecraft:mud_bricks","minecraft:deepslate_bricks","minecraft:cracked_deepslate_bricks","minecraft:deepslate_tiles","minecraft:cracked_deepslate_tiles","minecraft:chiseled_deepslate","minecraft:reinforced_deepslate","minecraft:brown_mushroom_block","minecraft:red_mushroom_block","minecraft:mushroom_stem","minecraft:iron_bars","minecraft:copper_bars","minecraft:exposed_copper_bars","minecraft:weathered_copper_bars","minecraft:oxidized_copper_bars","minecraft:waxed_copper_bars","minecraft:waxed_exposed_copper_bars","minecraft:waxed_weathered_copper_bars","minecraft:waxed_oxidized_copper_bars","minecraft:iron_chain","minecraft:copper_chain","minecraft:exposed_copper_chain","minecraft:weathered_copper_chain","minecraft:oxidized_copper_chain","minecraft:waxed_copper_chain","minecraft:waxed_exposed_copper_chain","minecraft:waxed_weathered_copper_chain","minecraft:waxed_oxidized_copper_chain","minecraft:glass_pane","minecraft:melon","minecraft:vine","minecraft:glow_lichen","minecraft:resin_clump","minecraft:resin_block","minecraft:resin_bricks","minecraft:resin_brick_stairs","minecraft:resin_brick_slab","minecraft:resin_brick_wall","minecraft:chiseled_resin_bricks","minecraft:brick_stairs","minecraft:stone_brick_stairs","minecraft:mud_brick_stairs","minecraft:mycelium","minecraft:lily_pad","minecraft:nether_bricks","minecraft:cracked_nether_bricks","minecraft:chiseled_nether_bricks","minecraft:nether_brick_fence","minecraft:nether_brick_stairs","minecraft:sculk","minecraft:sculk_vein","minecraft:sculk_catalyst","minecraft:sculk_shrieker","minecraft:enchanting_table","minecraft:end_portal_frame","minecraft:end_stone","minecraft:end_stone_bricks","minecraft:dragon_egg","minecraft:sandstone_stairs","minecraft:ender_chest","minecraft:emerald_block","minecraft:oak_stairs","minecraft:spruce_stairs","minecraft:birch_stairs","minecraft:jungle_stairs","minecraft:acacia_stairs","minecraft:cherry_stairs","minecraft:dark_oak_stairs","minecraft:pale_oak_stairs","minecraft:mangrove_stairs","minecraft:bamboo_stairs","minecraft:bamboo_mosaic_stairs","minecraft:crimson_stairs","minecraft:warped_stairs","minecraft:command_block","minecraft:beacon","minecraft:cobblestone_wall","minecraft:mossy_cobblestone_wall","minecraft:brick_wall","minecraft:prismarine_wall","minecraft:red_sandstone_wall","minecraft:mossy_stone_brick_wall","minecraft:granite_wall","minecraft:stone_brick_wall","minecraft:mud_brick_wall","minecraft:nether_brick_wall","minecraft:andesite_wall","minecraft:red_nether_brick_wall","minecraft:sandstone_wall","minecraft:end_stone_brick_wall","minecraft:diorite_wall","minecraft:blackstone_wall","minecraft:polished_blackstone_wall","minecraft:polished_blackstone_brick_wall","minecraft:cobbled_deepslate_wall","minecraft:polished_deepslate_wall","minecraft:deepslate_brick_wall","minecraft:deepslate_tile_wall","minecraft:anvil","minecraft:chipped_anvil","minecraft:damaged_anvil","minecraft:chiseled_quartz_block","minecraft:quartz_block","minecraft:quartz_bricks","minecraft:quartz_pillar","minecraft:quartz_stairs","minecraft:white_terracotta","minecraft:orange_terracotta","minecraft:magenta_terracotta","minecraft:light_blue_terracotta","minecraft:yellow_terracotta","minecraft:lime_terracotta","minecraft:pink_terracotta","minecraft:gray_terracotta","minecraft:light_gray_terracotta","minecraft:cyan_terracotta","minecraft:purple_terracotta","minecraft:blue_terracotta","minecraft:brown_terracotta","minecraft:green_terracotta","minecraft:red_terracotta","minecraft:black_terracotta","minecraft:barrier","minecraft:light","minecraft:hay_block","minecraft:white_carpet","minecraft:orange_carpet","minecraft:magenta_carpet","minecraft:light_blue_carpet","minecraft:yellow_carpet","minecraft:lime_carpet","minecraft:pink_carpet","minecraft:gray_carpet","minecraft:light_gray_carpet","minecraft:cyan_carpet","minecraft:purple_carpet","minecraft:blue_carpet","minecraft:brown_carpet","minecraft:green_carpet","minecraft:red_carpet","minecraft:black_carpet","minecraft:terracotta","minecraft:packed_ice","minecraft:dirt_path","minecraft:sunflower","minecraft:lilac","minecraft:rose_bush","minecraft:peony","minecraft:tall_grass","minecraft:large_fern","minecraft:white_stained_glass","minecraft:orange_stained_glass","minecraft:magenta_stained_glass","minecraft:light_blue_stained_glass","minecraft:yellow_stained_glass","minecraft:lime_stained_glass","minecraft:pink_stained_glass","minecraft:gray_stained_glass","minecraft:light_gray_stained_glass","minecraft:cyan_stained_glass","minecraft:purple_stained_glass","minecraft:blue_stained_glass","minecraft:brown_stained_glass","minecraft:green_stained_glass","minecraft:red_stained_glass","minecraft:black_stained_glass","minecraft:white_stained_glass_pane","minecraft:orange_stained_glass_pane","minecraft:magenta_stained_glass_pane","minecraft:light_blue_stained_glass_pane","minecraft:yellow_stained_glass_pane","minecraft:lime_stained_glass_pane","minecraft:pink_stained_glass_pane","minecraft:gray_stained_glass_pane","minecraft:light_gray_stained_glass_pane","minecraft:cyan_stained_glass_pane","minecraft:purple_stained_glass_pane","minecraft:blue_stained_glass_pane","minecraft:brown_stained_glass_pane","minecraft:green_stained_glass_pane","minecraft:red_stained_glass_pane","minecraft:black_stained_glass_pane","minecraft:prismarine","minecraft:prismarine_bricks","minecraft:dark_prismarine","minecraft:prismarine_stairs","minecraft:prismarine_brick_stairs","minecraft:dark_prismarine_stairs","minecraft:sea_lantern","minecraft:red_sandstone","minecraft:chiseled_red_sandstone","minecraft:cut_red_sandstone","minecraft:red_sandstone_stairs","minecraft:repeating_command_block","minecraft:chain_command_block","minecraft:magma_block","minecraft:nether_wart_block","minecraft:warped_wart_block","minecraft:red_nether_bricks","minecraft:bone_block","minecraft:structure_void","minecraft:shulker_box","minecraft:white_shulker_box","minecraft:orange_shulker_box","minecraft:magenta_shulker_box","minecraft:light_blue_shulker_box","minecraft:yellow_shulker_box","minecraft:lime_shulker_box","minecraft:pink_shulker_box","minecraft:gray_shulker_box","minecraft:light_gray_shulker_box","minecraft:cyan_shulker_box","minecraft:purple_shulker_box","minecraft:blue_shulker_box","minecraft:brown_shulker_box","minecraft:green_shulker_box","minecraft:red_shulker_box","minecraft:black_shulker_box","minecraft:white_glazed_terracotta","minecraft:orange_glazed_terracotta","minecraft:magenta_glazed_terracotta","minecraft:light_blue_glazed_terracotta","minecraft:yellow_glazed_terracotta","minecraft:lime_glazed_terracotta","minecraft:pink_glazed_terracotta","minecraft:gray_glazed_terracotta","minecraft:light_gray_glazed_terracotta","minecraft:cyan_glazed_terracotta","minecraft:purple_glazed_terracotta","minecraft:blue_glazed_terracotta","minecraft:brown_glazed_terracotta","minecraft:green_glazed_terracotta","minecraft:red_glazed_terracotta","minecraft:black_glazed_terracotta","minecraft:white_concrete","minecraft:orange_concrete","minecraft:magenta_concrete","minecraft:light_blue_concrete","minecraft:yellow_concrete","minecraft:lime_concrete","minecraft:pink_concrete","minecraft:gray_concrete","minecraft:light_gray_concrete","minecraft:cyan_concrete","minecraft:purple_concrete","minecraft:blue_concrete","minecraft:brown_concrete","minecraft:green_concrete","minecraft:red_concrete","minecraft:black_concrete","minecraft:white_concrete_powder","minecraft:orange_concrete_powder","minecraft:magenta_concrete_powder","minecraft:light_blue_concrete_powder","minecraft:yellow_concrete_powder","minecraft:lime_concrete_powder","minecraft:pink_concrete_powder","minecraft:gray_concrete_powder","minecraft:light_gray_concrete_powder","minecraft:cyan_concrete_powder","minecraft:purple_concrete_powder","minecraft:blue_concrete_powder","minecraft:brown_concrete_powder","minecraft:green_concrete_powder","minecraft:red_concrete_powder","minecraft:black_concrete_powder","minecraft:turtle_egg","minecraft:sniffer_egg","minecraft:dried_ghast","minecraft:dead_tube_coral_block","minecraft:dead_brain_coral_block","minecraft:dead_bubble_coral_block","minecraft:dead_fire_coral_block","minecraft:dead_horn_coral_block","minecraft:tube_coral_block","minecraft:brain_coral_block","minecraft:bubble_coral_block","minecraft:fire_coral_block","minecraft:horn_coral_block","minecraft:tube_coral","minecraft:brain_coral","minecraft:bubble_coral","minecraft:fire_coral","minecraft:horn_coral","minecraft:dead_brain_coral","minecraft:dead_bubble_coral","minecraft:dead_fire_coral","minecraft:dead_horn_coral","minecraft:dead_tube_coral","minecraft:tube_coral_fan","minecraft:brain_coral_fan","minecraft:bubble_coral_fan","minecraft:fire_coral_fan","minecraft:horn_coral_fan","minecraft:dead_tube_coral_fan","minecraft:dead_brain_coral_fan","minecraft:dead_bubble_coral_fan","minecraft:dead_fire_coral_fan","minecraft:dead_horn_coral_fan","minecraft:blue_ice","minecraft:conduit","minecraft:polished_granite_stairs","minecraft:smooth_red_sandstone_stairs","minecraft:mossy_stone_brick_stairs","minecraft:polished_diorite_stairs","minecraft:mossy_cobblestone_stairs","minecraft:end_stone_brick_stairs","minecraft:stone_stairs","minecraft:smooth_sandstone_stairs","minecraft:smooth_quartz_stairs","minecraft:granite_stairs","minecraft:andesite_stairs","minecraft:red_nether_brick_stairs","minecraft:polished_andesite_stairs","minecraft:diorite_stairs","minecraft:cobbled_deepslate_stairs","minecraft:polished_deepslate_stairs","minecraft:deepslate_brick_stairs","minecraft:deepslate_tile_stairs","minecraft:polished_granite_slab","minecraft:smooth_red_sandstone_slab","minecraft:mossy_stone_brick_slab","minecraft:polished_diorite_slab","minecraft:mossy_cobblestone_slab","minecraft:end_stone_brick_slab","minecraft:smooth_sandstone_slab","minecraft:smooth_quartz_slab","minecraft:granite_slab","minecraft:andesite_slab","minecraft:red_nether_brick_slab","minecraft:polished_andesite_slab","minecraft:diorite_slab","minecraft:cobbled_deepslate_slab","minecraft:polished_deepslate_slab","minecraft:deepslate_brick_slab","minecraft:deepslate_tile_slab","minecraft:scaffolding","minecraft:redstone","minecraft:redstone_torch","minecraft:redstone_block","minecraft:repeater","minecraft:comparator","minecraft:piston","minecraft:sticky_piston","minecraft:slime_block","minecraft:honey_block","minecraft:observer","minecraft:hopper","minecraft:dispenser","minecraft:dropper","minecraft:lectern","minecraft:target","minecraft:lever","minecraft:lightning_rod","minecraft:exposed_lightning_rod","minecraft:weathered_lightning_rod","minecraft:oxidized_lightning_rod","minecraft:waxed_lightning_rod","minecraft:waxed_exposed_lightning_rod","minecraft:waxed_weathered_lightning_rod","minecraft:waxed_oxidized_lightning_rod","minecraft:daylight_detector","minecraft:sculk_sensor","minecraft:calibrated_sculk_sensor","minecraft:tripwire_hook","minecraft:trapped_chest","minecraft:tnt","minecraft:redstone_lamp","minecraft:note_block","minecraft:stone_button","minecraft:polished_blackstone_button","minecraft:oak_button","minecraft:spruce_button","minecraft:birch_button","minecraft:jungle_button","minecraft:acacia_button","minecraft:cherry_button","minecraft:dark_oak_button","minecraft:pale_oak_button","minecraft:mangrove_button","minecraft:bamboo_button","minecraft:crimson_button","minecraft:warped_button","minecraft:stone_pressure_plate","minecraft:polished_blackstone_pressure_plate","minecraft:light_weighted_pressure_plate","minecraft:heavy_weighted_pressure_plate","minecraft:oak_pressure_plate","minecraft:spruce_pressure_plate","minecraft:birch_pressure_plate","minecraft:jungle_pressure_plate","minecraft:acacia_pressure_plate","minecraft:cherry_pressure_plate","minecraft:dark_oak_pressure_plate","minecraft:pale_oak_pressure_plate","minecraft:mangrove_pressure_plate","minecraft:bamboo_pressure_plate","minecraft:crimson_pressure_plate","minecraft:warped_pressure_plate","minecraft:iron_door","minecraft:oak_door","minecraft:spruce_door","minecraft:birch_door","minecraft:jungle_door","minecraft:acacia_door","minecraft:cherry_door","minecraft:dark_oak_door","minecraft:pale_oak_door","minecraft:mangrove_door","minecraft:bamboo_door","minecraft:crimson_door","minecraft:warped_door","minecraft:copper_door","minecraft:exposed_copper_door","minecraft:weathered_copper_door","minecraft:oxidized_copper_door","minecraft:waxed_copper_door","minecraft:waxed_exposed_copper_door","minecraft:waxed_weathered_copper_door","minecraft:waxed_oxidized_copper_door","minecraft:iron_trapdoor","minecraft:oak_trapdoor","minecraft:spruce_trapdoor","minecraft:birch_trapdoor","minecraft:jungle_trapdoor","minecraft:acacia_trapdoor","minecraft:cherry_trapdoor","minecraft:dark_oak_trapdoor","minecraft:pale_oak_trapdoor","minecraft:mangrove_trapdoor","minecraft:bamboo_trapdoor","minecraft:crimson_trapdoor","minecraft:warped_trapdoor","minecraft:copper_trapdoor","minecraft:exposed_copper_trapdoor","minecraft:weathered_copper_trapdoor","minecraft:oxidized_copper_trapdoor","minecraft:waxed_copper_trapdoor","minecraft:waxed_exposed_copper_trapdoor","minecraft:waxed_weathered_copper_trapdoor","minecraft:waxed_oxidized_copper_trapdoor","minecraft:oak_fence_gate","minecraft:spruce_fence_gate","minecraft:birch_fence_gate","minecraft:jungle_fence_gate","minecraft:acacia_fence_gate","minecraft:cherry_fence_gate","minecraft:dark_oak_fence_gate","minecraft:pale_oak_fence_gate","minecraft:mangrove_fence_gate","minecraft:bamboo_fence_gate","minecraft:crimson_fence_gate","minecraft:warped_fence_gate","minecraft:powered_rail","minecraft:detector_rail","minecraft:rail","minecraft:activator_rail","minecraft:saddle","minecraft:white_harness","minecraft:orange_harness","minecraft:magenta_harness","minecraft:light_blue_harness","minecraft:yellow_harness","minecraft:lime_harness","minecraft:pink_harness","minecraft:gray_harness","minecraft:light_gray_harness","minecraft:cyan_harness","minecraft:purple_harness","minecraft:blue_harness","minecraft:brown_harness","minecraft:green_harness","minecraft:red_harness","minecraft:black_harness","minecraft:minecart","minecraft:chest_minecart","minecraft:furnace_minecart","minecraft:tnt_minecart","minecraft:hopper_minecart","minecraft:carrot_on_a_stick","minecraft:warped_fungus_on_a_stick","minecraft:phantom_membrane","minecraft:elytra","minecraft:oak_boat","minecraft:oak_chest_boat","minecraft:spruce_boat","minecraft:spruce_chest_boat","minecraft:birch_boat","minecraft:birch_chest_boat","minecraft:jungle_boat","minecraft:jungle_chest_boat","minecraft:acacia_boat","minecraft:acacia_chest_boat","minecraft:cherry_boat","minecraft:cherry_chest_boat","minecraft:dark_oak_boat","minecraft:dark_oak_chest_boat","minecraft:pale_oak_boat","minecraft:pale_oak_chest_boat","minecraft:mangrove_boat","minecraft:mangrove_chest_boat","minecraft:bamboo_raft","minecraft:bamboo_chest_raft","minecraft:structure_block","minecraft:jigsaw","minecraft:test_block","minecraft:test_instance_block","minecraft:turtle_helmet","minecraft:turtle_scute","minecraft:armadillo_scute","minecraft:wolf_armor","minecraft:flint_and_steel","minecraft:bowl","minecraft:apple","minecraft:bow","minecraft:arrow","minecraft:coal","minecraft:charcoal","minecraft:diamond","minecraft:emerald","minecraft:lapis_lazuli","minecraft:quartz","minecraft:amethyst_shard","minecraft:raw_iron","minecraft:iron_ingot","minecraft:raw_copper","minecraft:copper_ingot","minecraft:raw_gold","minecraft:gold_ingot","minecraft:netherite_ingot","minecraft:netherite_scrap","minecraft:wooden_sword","minecraft:wooden_shovel","minecraft:wooden_pickaxe","minecraft:wooden_axe","minecraft:wooden_hoe","minecraft:copper_sword","minecraft:copper_shovel","minecraft:copper_pickaxe","minecraft:copper_axe","minecraft:copper_hoe","minecraft:stone_sword","minecraft:stone_shovel","minecraft:stone_pickaxe","minecraft:stone_axe","minecraft:stone_hoe","minecraft:golden_sword","minecraft:golden_shovel","minecraft:golden_pickaxe","minecraft:golden_axe","minecraft:golden_hoe","minecraft:iron_sword","minecraft:iron_shovel","minecraft:iron_pickaxe","minecraft:iron_axe","minecraft:iron_hoe","minecraft:diamond_sword","minecraft:diamond_shovel","minecraft:diamond_pickaxe","minecraft:diamond_axe","minecraft:diamond_hoe","minecraft:netherite_sword","minecraft:netherite_shovel","minecraft:netherite_pickaxe","minecraft:netherite_axe","minecraft:netherite_hoe","minecraft:stick","minecraft:mushroom_stew","minecraft:string","minecraft:feather","minecraft:gunpowder","minecraft:wheat_seeds","minecraft:wheat","minecraft:bread","minecraft:leather_helmet","minecraft:leather_chestplate","minecraft:leather_leggings","minecraft:leather_boots","minecraft:copper_helmet","minecraft:copper_chestplate","minecraft:copper_leggings","minecraft:copper_boots","minecraft:chainmail_helmet","minecraft:chainmail_chestplate","minecraft:chainmail_leggings","minecraft:chainmail_boots","minecraft:iron_helmet","minecraft:iron_chestplate","minecraft:iron_leggings","minecraft:iron_boots","minecraft:diamond_helmet","minecraft:diamond_chestplate","minecraft:diamond_leggings","minecraft:diamond_boots","minecraft:golden_helmet","minecraft:golden_chestplate","minecraft:golden_leggings","minecraft:golden_boots","minecraft:netherite_helmet","minecraft:netherite_chestplate","minecraft:netherite_leggings","minecraft:netherite_boots","minecraft:flint","minecraft:porkchop","minecraft:cooked_porkchop","minecraft:painting","minecraft:golden_apple","minecraft:enchanted_golden_apple","minecraft:oak_sign","minecraft:spruce_sign","minecraft:birch_sign","minecraft:jungle_sign","minecraft:acacia_sign","minecraft:cherry_sign","minecraft:dark_oak_sign","minecraft:pale_oak_sign","minecraft:mangrove_sign","minecraft:bamboo_sign","minecraft:crimson_sign","minecraft:warped_sign","minecraft:oak_hanging_sign","minecraft:spruce_hanging_sign","minecraft:birch_hanging_sign","minecraft:jungle_hanging_sign","minecraft:acacia_hanging_sign","minecraft:cherry_hanging_sign","minecraft:dark_oak_hanging_sign","minecraft:pale_oak_hanging_sign","minecraft:mangrove_hanging_sign","minecraft:bamboo_hanging_sign","minecraft:crimson_hanging_sign","minecraft:warped_hanging_sign","minecraft:bucket","minecraft:water_bucket","minecraft:lava_bucket","minecraft:powder_snow_bucket","minecraft:snowball","minecraft:leather","minecraft:milk_bucket","minecraft:pufferfish_bucket","minecraft:salmon_bucket","minecraft:cod_bucket","minecraft:tropical_fish_bucket","minecraft:axolotl_bucket","minecraft:tadpole_bucket","minecraft:brick","minecraft:clay_ball","minecraft:dried_kelp_block","minecraft:paper","minecraft:book","minecraft:slime_ball","minecraft:egg","minecraft:blue_egg","minecraft:brown_egg","minecraft:compass","minecraft:recovery_compass","minecraft:bundle","minecraft:white_bundle","minecraft:orange_bundle","minecraft:magenta_bundle","minecraft:light_blue_bundle","minecraft:yellow_bundle","minecraft:lime_bundle","minecraft:pink_bundle","minecraft:gray_bundle","minecraft:light_gray_bundle","minecraft:cyan_bundle","minecraft:purple_bundle","minecraft:blue_bundle","minecraft:brown_bundle","minecraft:green_bundle","minecraft:red_bundle","minecraft:black_bundle","minecraft:fishing_rod","minecraft:clock","minecraft:spyglass","minecraft:glowstone_dust","minecraft:cod","minecraft:salmon","minecraft:tropical_fish","minecraft:pufferfish","minecraft:cooked_cod","minecraft:cooked_salmon","minecraft:ink_sac","minecraft:glow_ink_sac","minecraft:cocoa_beans","minecraft:white_dye","minecraft:orange_dye","minecraft:magenta_dye","minecraft:light_blue_dye","minecraft:yellow_dye","minecraft:lime_dye","minecraft:pink_dye","minecraft:gray_dye","minecraft:light_gray_dye","minecraft:cyan_dye","minecraft:purple_dye","minecraft:blue_dye","minecraft:brown_dye","minecraft:green_dye","minecraft:red_dye","minecraft:black_dye","minecraft:bone_meal","minecraft:bone","minecraft:sugar","minecraft:cake","minecraft:white_bed","minecraft:orange_bed","minecraft:magenta_bed","minecraft:light_blue_bed","minecraft:yellow_bed","minecraft:lime_bed","minecraft:pink_bed","minecraft:gray_bed","minecraft:light_gray_bed","minecraft:cyan_bed","minecraft:purple_bed","minecraft:blue_bed","minecraft:brown_bed","minecraft:green_bed","minecraft:red_bed","minecraft:black_bed","minecraft:cookie","minecraft:crafter","minecraft:filled_map","minecraft:shears","minecraft:melon_slice","minecraft:dried_kelp","minecraft:pumpkin_seeds","minecraft:melon_seeds","minecraft:beef","minecraft:cooked_beef","minecraft:chicken","minecraft:cooked_chicken","minecraft:rotten_flesh","minecraft:ender_pearl","minecraft:blaze_rod","minecraft:ghast_tear","minecraft:gold_nugget","minecraft:nether_wart","minecraft:glass_bottle","minecraft:potion","minecraft:spider_eye","minecraft:fermented_spider_eye","minecraft:blaze_powder","minecraft:magma_cream","minecraft:brewing_stand","minecraft:cauldron","minecraft:ender_eye","minecraft:glistering_melon_slice","minecraft:armadillo_spawn_egg","minecraft:allay_spawn_egg","minecraft:axolotl_spawn_egg","minecraft:bat_spawn_egg","minecraft:bee_spawn_egg","minecraft:blaze_spawn_egg","minecraft:bogged_spawn_egg","minecraft:breeze_spawn_egg","minecraft:cat_spawn_egg","minecraft:camel_spawn_egg","minecraft:camel_husk_spawn_egg","minecraft:cave_spider_spawn_egg","minecraft:chicken_spawn_egg","minecraft:cod_spawn_egg","minecraft:copper_golem_spawn_egg","minecraft:cow_spawn_egg","minecraft:creeper_spawn_egg","minecraft:dolphin_spawn_egg","minecraft:donkey_spawn_egg","minecraft:drowned_spawn_egg","minecraft:elder_guardian_spawn_egg","minecraft:ender_dragon_spawn_egg","minecraft:enderman_spawn_egg","minecraft:endermite_spawn_egg","minecraft:evoker_spawn_egg","minecraft:fox_spawn_egg","minecraft:frog_spawn_egg","minecraft:ghast_spawn_egg","minecraft:happy_ghast_spawn_egg","minecraft:glow_squid_spawn_egg","minecraft:goat_spawn_egg","minecraft:guardian_spawn_egg","minecraft:hoglin_spawn_egg","minecraft:horse_spawn_egg","minecraft:husk_spawn_egg","minecraft:iron_golem_spawn_egg","minecraft:llama_spawn_egg","minecraft:magma_cube_spawn_egg","minecraft:mooshroom_spawn_egg","minecraft:mule_spawn_egg","minecraft:nautilus_spawn_egg","minecraft:ocelot_spawn_egg","minecraft:panda_spawn_egg","minecraft:parched_spawn_egg","minecraft:parrot_spawn_egg","minecraft:phantom_spawn_egg","minecraft:pig_spawn_egg","minecraft:piglin_spawn_egg","minecraft:piglin_brute_spawn_egg","minecraft:pillager_spawn_egg","minecraft:polar_bear_spawn_egg","minecraft:pufferfish_spawn_egg","minecraft:rabbit_spawn_egg","minecraft:ravager_spawn_egg","minecraft:salmon_spawn_egg","minecraft:sheep_spawn_egg","minecraft:shulker_spawn_egg","minecraft:silverfish_spawn_egg","minecraft:skeleton_spawn_egg","minecraft:skeleton_horse_spawn_egg","minecraft:slime_spawn_egg","minecraft:sniffer_spawn_egg","minecraft:snow_golem_spawn_egg","minecraft:spider_spawn_egg","minecraft:squid_spawn_egg","minecraft:stray_spawn_egg","minecraft:strider_spawn_egg","minecraft:tadpole_spawn_egg","minecraft:trader_llama_spawn_egg","minecraft:tropical_fish_spawn_egg","minecraft:turtle_spawn_egg","minecraft:vex_spawn_egg","minecraft:villager_spawn_egg","minecraft:vindicator_spawn_egg","minecraft:wandering_trader_spawn_egg","minecraft:warden_spawn_egg","minecraft:witch_spawn_egg","minecraft:wither_spawn_egg","minecraft:wither_skeleton_spawn_egg","minecraft:wolf_spawn_egg","minecraft:zoglin_spawn_egg","minecraft:creaking_spawn_egg","minecraft:zombie_spawn_egg","minecraft:zombie_horse_spawn_egg","minecraft:zombie_villager_spawn_egg","minecraft:zombified_piglin_spawn_egg","minecraft:zombie_nautilus_spawn_egg","minecraft:experience_bottle","minecraft:fire_charge","minecraft:wind_charge","minecraft:writable_book","minecraft:written_book","minecraft:breeze_rod","minecraft:mace","minecraft:item_frame","minecraft:glow_item_frame","minecraft:flower_pot","minecraft:carrot","minecraft:potato","minecraft:baked_potato","minecraft:poisonous_potato","minecraft:map","minecraft:golden_carrot","minecraft:skeleton_skull","minecraft:wither_skeleton_skull","minecraft:player_head","minecraft:zombie_head","minecraft:creeper_head","minecraft:dragon_head","minecraft:piglin_head","minecraft:nether_star","minecraft:pumpkin_pie","minecraft:firework_rocket","minecraft:firework_star","minecraft:enchanted_book","minecraft:nether_brick","minecraft:resin_brick","minecraft:prismarine_shard","minecraft:prismarine_crystals","minecraft:rabbit","minecraft:cooked_rabbit","minecraft:rabbit_stew","minecraft:rabbit_foot","minecraft:rabbit_hide","minecraft:armor_stand","minecraft:copper_horse_armor","minecraft:iron_horse_armor","minecraft:golden_horse_armor","minecraft:diamond_horse_armor","minecraft:leather_horse_armor","minecraft:lead","minecraft:name_tag","minecraft:command_block_minecart","minecraft:mutton","minecraft:cooked_mutton","minecraft:white_banner","minecraft:orange_banner","minecraft:magenta_banner","minecraft:light_blue_banner","minecraft:yellow_banner","minecraft:lime_banner","minecraft:pink_banner","minecraft:gray_banner","minecraft:light_gray_banner","minecraft:cyan_banner","minecraft:purple_banner","minecraft:blue_banner","minecraft:brown_banner","minecraft:green_banner","minecraft:red_banner","minecraft:black_banner","minecraft:end_crystal","minecraft:chorus_fruit","minecraft:popped_chorus_fruit","minecraft:torchflower_seeds","minecraft:pitcher_pod","minecraft:beetroot","minecraft:beetroot_seeds","minecraft:beetroot_soup","minecraft:dragon_breath","minecraft:splash_potion","minecraft:spectral_arrow","minecraft:tipped_arrow","minecraft:lingering_potion","minecraft:shield","minecraft:wooden_spear","minecraft:stone_spear","minecraft:copper_spear","minecraft:iron_spear","minecraft:golden_spear","minecraft:diamond_spear","minecraft:netherite_spear","minecraft:totem_of_undying","minecraft:shulker_shell","minecraft:iron_nugget","minecraft:copper_nugget","minecraft:knowledge_book","minecraft:debug_stick","minecraft:music_disc_13","minecraft:music_disc_cat","minecraft:music_disc_blocks","minecraft:music_disc_chirp","minecraft:music_disc_creator","minecraft:music_disc_creator_music_box","minecraft:music_disc_far","minecraft:music_disc_lava_chicken","minecraft:music_disc_mall","minecraft:music_disc_mellohi","minecraft:music_disc_stal","minecraft:music_disc_strad","minecraft:music_disc_ward","minecraft:music_disc_11","minecraft:music_disc_wait","minecraft:music_disc_otherside","minecraft:music_disc_relic","minecraft:music_disc_5","minecraft:music_disc_pigstep","minecraft:music_disc_precipice","minecraft:music_disc_tears","minecraft:disc_fragment_5","minecraft:trident","minecraft:nautilus_shell","minecraft:iron_nautilus_armor","minecraft:golden_nautilus_armor","minecraft:diamond_nautilus_armor","minecraft:netherite_nautilus_armor","minecraft:copper_nautilus_armor","minecraft:heart_of_the_sea","minecraft:crossbow","minecraft:suspicious_stew","minecraft:loom","minecraft:flower_banner_pattern","minecraft:creeper_banner_pattern","minecraft:skull_banner_pattern","minecraft:mojang_banner_pattern","minecraft:globe_banner_pattern","minecraft:piglin_banner_pattern","minecraft:flow_banner_pattern","minecraft:guster_banner_pattern","minecraft:field_masoned_banner_pattern","minecraft:bordure_indented_banner_pattern","minecraft:goat_horn","minecraft:composter","minecraft:barrel","minecraft:smoker","minecraft:blast_furnace","minecraft:cartography_table","minecraft:fletching_table","minecraft:grindstone","minecraft:smithing_table","minecraft:stonecutter","minecraft:bell","minecraft:lantern","minecraft:soul_lantern","minecraft:copper_lantern","minecraft:exposed_copper_lantern","minecraft:weathered_copper_lantern","minecraft:oxidized_copper_lantern","minecraft:waxed_copper_lantern","minecraft:waxed_exposed_copper_lantern","minecraft:waxed_weathered_copper_lantern","minecraft:waxed_oxidized_copper_lantern","minecraft:sweet_berries","minecraft:glow_berries","minecraft:campfire","minecraft:soul_campfire","minecraft:shroomlight","minecraft:honeycomb","minecraft:bee_nest","minecraft:beehive","minecraft:honey_bottle","minecraft:honeycomb_block","minecraft:lodestone","minecraft:crying_obsidian","minecraft:blackstone","minecraft:blackstone_slab","minecraft:blackstone_stairs","minecraft:gilded_blackstone","minecraft:polished_blackstone","minecraft:polished_blackstone_slab","minecraft:polished_blackstone_stairs","minecraft:chiseled_polished_blackstone","minecraft:polished_blackstone_bricks","minecraft:polished_blackstone_brick_slab","minecraft:polished_blackstone_brick_stairs","minecraft:cracked_polished_blackstone_bricks","minecraft:respawn_anchor","minecraft:candle","minecraft:white_candle","minecraft:orange_candle","minecraft:magenta_candle","minecraft:light_blue_candle","minecraft:yellow_candle","minecraft:lime_candle","minecraft:pink_candle","minecraft:gray_candle","minecraft:light_gray_candle","minecraft:cyan_candle","minecraft:purple_candle","minecraft:blue_candle","minecraft:brown_candle","minecraft:green_candle","minecraft:red_candle","minecraft:black_candle","minecraft:small_amethyst_bud","minecraft:medium_amethyst_bud","minecraft:large_amethyst_bud","minecraft:amethyst_cluster","minecraft:pointed_dripstone","minecraft:ochre_froglight","minecraft:verdant_froglight","minecraft:pearlescent_froglight","minecraft:frogspawn","minecraft:echo_shard","minecraft:brush","minecraft:netherite_upgrade_smithing_template","minecraft:sentry_armor_trim_smithing_template","minecraft:dune_armor_trim_smithing_template","minecraft:coast_armor_trim_smithing_template","minecraft:wild_armor_trim_smithing_template","minecraft:ward_armor_trim_smithing_template","minecraft:eye_armor_trim_smithing_template","minecraft:vex_armor_trim_smithing_template","minecraft:tide_armor_trim_smithing_template","minecraft:snout_armor_trim_smithing_template","minecraft:rib_armor_trim_smithing_template","minecraft:spire_armor_trim_smithing_template","minecraft:wayfinder_armor_trim_smithing_template","minecraft:shaper_armor_trim_smithing_template","minecraft:silence_armor_trim_smithing_template","minecraft:raiser_armor_trim_smithing_template","minecraft:host_armor_trim_smithing_template","minecraft:flow_armor_trim_smithing_template","minecraft:bolt_armor_trim_smithing_template","minecraft:angler_pottery_sherd","minecraft:archer_pottery_sherd","minecraft:arms_up_pottery_sherd","minecraft:blade_pottery_sherd","minecraft:brewer_pottery_sherd","minecraft:burn_pottery_sherd","minecraft:danger_pottery_sherd","minecraft:explorer_pottery_sherd","minecraft:flow_pottery_sherd","minecraft:friend_pottery_sherd","minecraft:guster_pottery_sherd","minecraft:heart_pottery_sherd","minecraft:heartbreak_pottery_sherd","minecraft:howl_pottery_sherd","minecraft:miner_pottery_sherd","minecraft:mourner_pottery_sherd","minecraft:plenty_pottery_sherd","minecraft:prize_pottery_sherd","minecraft:scrape_pottery_sherd","minecraft:sheaf_pottery_sherd","minecraft:shelter_pottery_sherd","minecraft:skull_pottery_sherd","minecraft:snort_pottery_sherd","minecraft:copper_grate","minecraft:exposed_copper_grate","minecraft:weathered_copper_grate","minecraft:oxidized_copper_grate","minecraft:waxed_copper_grate","minecraft:waxed_exposed_copper_grate","minecraft:waxed_weathered_copper_grate","minecraft:waxed_oxidized_copper_grate","minecraft:copper_bulb","minecraft:exposed_copper_bulb","minecraft:weathered_copper_bulb","minecraft:oxidized_copper_bulb","minecraft:waxed_copper_bulb","minecraft:waxed_exposed_copper_bulb","minecraft:waxed_weathered_copper_bulb","minecraft:waxed_oxidized_copper_bulb","minecraft:copper_chest","minecraft:exposed_copper_chest","minecraft:weathered_copper_chest","minecraft:oxidized_copper_chest","minecraft:waxed_copper_chest","minecraft:waxed_exposed_copper_chest","minecraft:waxed_weathered_copper_chest","minecraft:waxed_oxidized_copper_chest","minecraft:copper_golem_statue","minecraft:exposed_copper_golem_statue","minecraft:weathered_copper_golem_statue","minecraft:oxidized_copper_golem_statue","minecraft:waxed_copper_golem_statue","minecraft:waxed_exposed_copper_golem_statue","minecraft:waxed_weathered_copper_golem_statue","minecraft:waxed_oxidized_copper_golem_statue","minecraft:trial_spawner","minecraft:trial_key","minecraft:ominous_trial_key","minecraft:vault","minecraft:ominous_bottle"]; +static ITEM_MODEL_VALUES: [&str; 1505] = ["minecraft:air","minecraft:stone","minecraft:granite","minecraft:polished_granite","minecraft:diorite","minecraft:polished_diorite","minecraft:andesite","minecraft:polished_andesite","minecraft:deepslate","minecraft:cobbled_deepslate","minecraft:polished_deepslate","minecraft:calcite","minecraft:tuff","minecraft:tuff_slab","minecraft:tuff_stairs","minecraft:tuff_wall","minecraft:chiseled_tuff","minecraft:polished_tuff","minecraft:polished_tuff_slab","minecraft:polished_tuff_stairs","minecraft:polished_tuff_wall","minecraft:tuff_bricks","minecraft:tuff_brick_slab","minecraft:tuff_brick_stairs","minecraft:tuff_brick_wall","minecraft:chiseled_tuff_bricks","minecraft:dripstone_block","minecraft:grass_block","minecraft:dirt","minecraft:coarse_dirt","minecraft:podzol","minecraft:rooted_dirt","minecraft:mud","minecraft:crimson_nylium","minecraft:warped_nylium","minecraft:cobblestone","minecraft:oak_planks","minecraft:spruce_planks","minecraft:birch_planks","minecraft:jungle_planks","minecraft:acacia_planks","minecraft:cherry_planks","minecraft:dark_oak_planks","minecraft:pale_oak_planks","minecraft:mangrove_planks","minecraft:bamboo_planks","minecraft:crimson_planks","minecraft:warped_planks","minecraft:bamboo_mosaic","minecraft:oak_sapling","minecraft:spruce_sapling","minecraft:birch_sapling","minecraft:jungle_sapling","minecraft:acacia_sapling","minecraft:cherry_sapling","minecraft:dark_oak_sapling","minecraft:pale_oak_sapling","minecraft:mangrove_propagule","minecraft:bedrock","minecraft:sand","minecraft:suspicious_sand","minecraft:suspicious_gravel","minecraft:red_sand","minecraft:gravel","minecraft:coal_ore","minecraft:deepslate_coal_ore","minecraft:iron_ore","minecraft:deepslate_iron_ore","minecraft:copper_ore","minecraft:deepslate_copper_ore","minecraft:gold_ore","minecraft:deepslate_gold_ore","minecraft:redstone_ore","minecraft:deepslate_redstone_ore","minecraft:emerald_ore","minecraft:deepslate_emerald_ore","minecraft:lapis_ore","minecraft:deepslate_lapis_ore","minecraft:diamond_ore","minecraft:deepslate_diamond_ore","minecraft:nether_gold_ore","minecraft:nether_quartz_ore","minecraft:ancient_debris","minecraft:coal_block","minecraft:raw_iron_block","minecraft:raw_copper_block","minecraft:raw_gold_block","minecraft:heavy_core","minecraft:amethyst_block","minecraft:budding_amethyst","minecraft:iron_block","minecraft:copper_block","minecraft:gold_block","minecraft:diamond_block","minecraft:netherite_block","minecraft:exposed_copper","minecraft:weathered_copper","minecraft:oxidized_copper","minecraft:chiseled_copper","minecraft:exposed_chiseled_copper","minecraft:weathered_chiseled_copper","minecraft:oxidized_chiseled_copper","minecraft:cut_copper","minecraft:exposed_cut_copper","minecraft:weathered_cut_copper","minecraft:oxidized_cut_copper","minecraft:cut_copper_stairs","minecraft:exposed_cut_copper_stairs","minecraft:weathered_cut_copper_stairs","minecraft:oxidized_cut_copper_stairs","minecraft:cut_copper_slab","minecraft:exposed_cut_copper_slab","minecraft:weathered_cut_copper_slab","minecraft:oxidized_cut_copper_slab","minecraft:waxed_copper_block","minecraft:waxed_exposed_copper","minecraft:waxed_weathered_copper","minecraft:waxed_oxidized_copper","minecraft:waxed_chiseled_copper","minecraft:waxed_exposed_chiseled_copper","minecraft:waxed_weathered_chiseled_copper","minecraft:waxed_oxidized_chiseled_copper","minecraft:waxed_cut_copper","minecraft:waxed_exposed_cut_copper","minecraft:waxed_weathered_cut_copper","minecraft:waxed_oxidized_cut_copper","minecraft:waxed_cut_copper_stairs","minecraft:waxed_exposed_cut_copper_stairs","minecraft:waxed_weathered_cut_copper_stairs","minecraft:waxed_oxidized_cut_copper_stairs","minecraft:waxed_cut_copper_slab","minecraft:waxed_exposed_cut_copper_slab","minecraft:waxed_weathered_cut_copper_slab","minecraft:waxed_oxidized_cut_copper_slab","minecraft:oak_log","minecraft:spruce_log","minecraft:birch_log","minecraft:jungle_log","minecraft:acacia_log","minecraft:cherry_log","minecraft:pale_oak_log","minecraft:dark_oak_log","minecraft:mangrove_log","minecraft:mangrove_roots","minecraft:muddy_mangrove_roots","minecraft:crimson_stem","minecraft:warped_stem","minecraft:bamboo_block","minecraft:stripped_oak_log","minecraft:stripped_spruce_log","minecraft:stripped_birch_log","minecraft:stripped_jungle_log","minecraft:stripped_acacia_log","minecraft:stripped_cherry_log","minecraft:stripped_dark_oak_log","minecraft:stripped_pale_oak_log","minecraft:stripped_mangrove_log","minecraft:stripped_crimson_stem","minecraft:stripped_warped_stem","minecraft:stripped_oak_wood","minecraft:stripped_spruce_wood","minecraft:stripped_birch_wood","minecraft:stripped_jungle_wood","minecraft:stripped_acacia_wood","minecraft:stripped_cherry_wood","minecraft:stripped_dark_oak_wood","minecraft:stripped_pale_oak_wood","minecraft:stripped_mangrove_wood","minecraft:stripped_crimson_hyphae","minecraft:stripped_warped_hyphae","minecraft:stripped_bamboo_block","minecraft:oak_wood","minecraft:spruce_wood","minecraft:birch_wood","minecraft:jungle_wood","minecraft:acacia_wood","minecraft:cherry_wood","minecraft:pale_oak_wood","minecraft:dark_oak_wood","minecraft:mangrove_wood","minecraft:crimson_hyphae","minecraft:warped_hyphae","minecraft:oak_leaves","minecraft:spruce_leaves","minecraft:birch_leaves","minecraft:jungle_leaves","minecraft:acacia_leaves","minecraft:cherry_leaves","minecraft:dark_oak_leaves","minecraft:pale_oak_leaves","minecraft:mangrove_leaves","minecraft:azalea_leaves","minecraft:flowering_azalea_leaves","minecraft:sponge","minecraft:wet_sponge","minecraft:glass","minecraft:tinted_glass","minecraft:lapis_block","minecraft:sandstone","minecraft:chiseled_sandstone","minecraft:cut_sandstone","minecraft:cobweb","minecraft:short_grass","minecraft:fern","minecraft:bush","minecraft:azalea","minecraft:flowering_azalea","minecraft:dead_bush","minecraft:firefly_bush","minecraft:short_dry_grass","minecraft:tall_dry_grass","minecraft:seagrass","minecraft:sea_pickle","minecraft:white_wool","minecraft:orange_wool","minecraft:magenta_wool","minecraft:light_blue_wool","minecraft:yellow_wool","minecraft:lime_wool","minecraft:pink_wool","minecraft:gray_wool","minecraft:light_gray_wool","minecraft:cyan_wool","minecraft:purple_wool","minecraft:blue_wool","minecraft:brown_wool","minecraft:green_wool","minecraft:red_wool","minecraft:black_wool","minecraft:dandelion","minecraft:open_eyeblossom","minecraft:closed_eyeblossom","minecraft:poppy","minecraft:blue_orchid","minecraft:allium","minecraft:azure_bluet","minecraft:red_tulip","minecraft:orange_tulip","minecraft:white_tulip","minecraft:pink_tulip","minecraft:oxeye_daisy","minecraft:cornflower","minecraft:lily_of_the_valley","minecraft:wither_rose","minecraft:torchflower","minecraft:pitcher_plant","minecraft:spore_blossom","minecraft:brown_mushroom","minecraft:red_mushroom","minecraft:crimson_fungus","minecraft:warped_fungus","minecraft:crimson_roots","minecraft:warped_roots","minecraft:nether_sprouts","minecraft:weeping_vines","minecraft:twisting_vines","minecraft:sugar_cane","minecraft:kelp","minecraft:pink_petals","minecraft:wildflowers","minecraft:leaf_litter","minecraft:moss_carpet","minecraft:moss_block","minecraft:pale_moss_carpet","minecraft:pale_hanging_moss","minecraft:pale_moss_block","minecraft:hanging_roots","minecraft:big_dripleaf","minecraft:small_dripleaf","minecraft:bamboo","minecraft:oak_slab","minecraft:spruce_slab","minecraft:birch_slab","minecraft:jungle_slab","minecraft:acacia_slab","minecraft:cherry_slab","minecraft:dark_oak_slab","minecraft:pale_oak_slab","minecraft:mangrove_slab","minecraft:bamboo_slab","minecraft:bamboo_mosaic_slab","minecraft:crimson_slab","minecraft:warped_slab","minecraft:stone_slab","minecraft:smooth_stone_slab","minecraft:sandstone_slab","minecraft:cut_sandstone_slab","minecraft:petrified_oak_slab","minecraft:cobblestone_slab","minecraft:brick_slab","minecraft:stone_brick_slab","minecraft:mud_brick_slab","minecraft:nether_brick_slab","minecraft:quartz_slab","minecraft:red_sandstone_slab","minecraft:cut_red_sandstone_slab","minecraft:purpur_slab","minecraft:prismarine_slab","minecraft:prismarine_brick_slab","minecraft:dark_prismarine_slab","minecraft:smooth_quartz","minecraft:smooth_red_sandstone","minecraft:smooth_sandstone","minecraft:smooth_stone","minecraft:bricks","minecraft:acacia_shelf","minecraft:bamboo_shelf","minecraft:birch_shelf","minecraft:cherry_shelf","minecraft:crimson_shelf","minecraft:dark_oak_shelf","minecraft:jungle_shelf","minecraft:mangrove_shelf","minecraft:oak_shelf","minecraft:pale_oak_shelf","minecraft:spruce_shelf","minecraft:warped_shelf","minecraft:bookshelf","minecraft:chiseled_bookshelf","minecraft:decorated_pot","minecraft:mossy_cobblestone","minecraft:obsidian","minecraft:torch","minecraft:end_rod","minecraft:chorus_plant","minecraft:chorus_flower","minecraft:purpur_block","minecraft:purpur_pillar","minecraft:purpur_stairs","minecraft:spawner","minecraft:creaking_heart","minecraft:chest","minecraft:crafting_table","minecraft:farmland","minecraft:furnace","minecraft:ladder","minecraft:cobblestone_stairs","minecraft:snow","minecraft:ice","minecraft:snow_block","minecraft:cactus","minecraft:cactus_flower","minecraft:clay","minecraft:jukebox","minecraft:oak_fence","minecraft:spruce_fence","minecraft:birch_fence","minecraft:jungle_fence","minecraft:acacia_fence","minecraft:cherry_fence","minecraft:dark_oak_fence","minecraft:pale_oak_fence","minecraft:mangrove_fence","minecraft:bamboo_fence","minecraft:crimson_fence","minecraft:warped_fence","minecraft:pumpkin","minecraft:carved_pumpkin","minecraft:jack_o_lantern","minecraft:netherrack","minecraft:soul_sand","minecraft:soul_soil","minecraft:basalt","minecraft:polished_basalt","minecraft:smooth_basalt","minecraft:soul_torch","minecraft:copper_torch","minecraft:glowstone","minecraft:infested_stone","minecraft:infested_cobblestone","minecraft:infested_stone_bricks","minecraft:infested_mossy_stone_bricks","minecraft:infested_cracked_stone_bricks","minecraft:infested_chiseled_stone_bricks","minecraft:infested_deepslate","minecraft:stone_bricks","minecraft:mossy_stone_bricks","minecraft:cracked_stone_bricks","minecraft:chiseled_stone_bricks","minecraft:packed_mud","minecraft:mud_bricks","minecraft:deepslate_bricks","minecraft:cracked_deepslate_bricks","minecraft:deepslate_tiles","minecraft:cracked_deepslate_tiles","minecraft:chiseled_deepslate","minecraft:reinforced_deepslate","minecraft:brown_mushroom_block","minecraft:red_mushroom_block","minecraft:mushroom_stem","minecraft:iron_bars","minecraft:copper_bars","minecraft:exposed_copper_bars","minecraft:weathered_copper_bars","minecraft:oxidized_copper_bars","minecraft:waxed_copper_bars","minecraft:waxed_exposed_copper_bars","minecraft:waxed_weathered_copper_bars","minecraft:waxed_oxidized_copper_bars","minecraft:iron_chain","minecraft:copper_chain","minecraft:exposed_copper_chain","minecraft:weathered_copper_chain","minecraft:oxidized_copper_chain","minecraft:waxed_copper_chain","minecraft:waxed_exposed_copper_chain","minecraft:waxed_weathered_copper_chain","minecraft:waxed_oxidized_copper_chain","minecraft:glass_pane","minecraft:melon","minecraft:vine","minecraft:glow_lichen","minecraft:resin_clump","minecraft:resin_block","minecraft:resin_bricks","minecraft:resin_brick_stairs","minecraft:resin_brick_slab","minecraft:resin_brick_wall","minecraft:chiseled_resin_bricks","minecraft:brick_stairs","minecraft:stone_brick_stairs","minecraft:mud_brick_stairs","minecraft:mycelium","minecraft:lily_pad","minecraft:nether_bricks","minecraft:cracked_nether_bricks","minecraft:chiseled_nether_bricks","minecraft:nether_brick_fence","minecraft:nether_brick_stairs","minecraft:sculk","minecraft:sculk_vein","minecraft:sculk_catalyst","minecraft:sculk_shrieker","minecraft:enchanting_table","minecraft:end_portal_frame","minecraft:end_stone","minecraft:end_stone_bricks","minecraft:dragon_egg","minecraft:sandstone_stairs","minecraft:ender_chest","minecraft:emerald_block","minecraft:oak_stairs","minecraft:spruce_stairs","minecraft:birch_stairs","minecraft:jungle_stairs","minecraft:acacia_stairs","minecraft:cherry_stairs","minecraft:dark_oak_stairs","minecraft:pale_oak_stairs","minecraft:mangrove_stairs","minecraft:bamboo_stairs","minecraft:bamboo_mosaic_stairs","minecraft:crimson_stairs","minecraft:warped_stairs","minecraft:command_block","minecraft:beacon","minecraft:cobblestone_wall","minecraft:mossy_cobblestone_wall","minecraft:brick_wall","minecraft:prismarine_wall","minecraft:red_sandstone_wall","minecraft:mossy_stone_brick_wall","minecraft:granite_wall","minecraft:stone_brick_wall","minecraft:mud_brick_wall","minecraft:nether_brick_wall","minecraft:andesite_wall","minecraft:red_nether_brick_wall","minecraft:sandstone_wall","minecraft:end_stone_brick_wall","minecraft:diorite_wall","minecraft:blackstone_wall","minecraft:polished_blackstone_wall","minecraft:polished_blackstone_brick_wall","minecraft:cobbled_deepslate_wall","minecraft:polished_deepslate_wall","minecraft:deepslate_brick_wall","minecraft:deepslate_tile_wall","minecraft:anvil","minecraft:chipped_anvil","minecraft:damaged_anvil","minecraft:chiseled_quartz_block","minecraft:quartz_block","minecraft:quartz_bricks","minecraft:quartz_pillar","minecraft:quartz_stairs","minecraft:white_terracotta","minecraft:orange_terracotta","minecraft:magenta_terracotta","minecraft:light_blue_terracotta","minecraft:yellow_terracotta","minecraft:lime_terracotta","minecraft:pink_terracotta","minecraft:gray_terracotta","minecraft:light_gray_terracotta","minecraft:cyan_terracotta","minecraft:purple_terracotta","minecraft:blue_terracotta","minecraft:brown_terracotta","minecraft:green_terracotta","minecraft:red_terracotta","minecraft:black_terracotta","minecraft:barrier","minecraft:light","minecraft:hay_block","minecraft:white_carpet","minecraft:orange_carpet","minecraft:magenta_carpet","minecraft:light_blue_carpet","minecraft:yellow_carpet","minecraft:lime_carpet","minecraft:pink_carpet","minecraft:gray_carpet","minecraft:light_gray_carpet","minecraft:cyan_carpet","minecraft:purple_carpet","minecraft:blue_carpet","minecraft:brown_carpet","minecraft:green_carpet","minecraft:red_carpet","minecraft:black_carpet","minecraft:terracotta","minecraft:packed_ice","minecraft:dirt_path","minecraft:sunflower","minecraft:lilac","minecraft:rose_bush","minecraft:peony","minecraft:tall_grass","minecraft:large_fern","minecraft:white_stained_glass","minecraft:orange_stained_glass","minecraft:magenta_stained_glass","minecraft:light_blue_stained_glass","minecraft:yellow_stained_glass","minecraft:lime_stained_glass","minecraft:pink_stained_glass","minecraft:gray_stained_glass","minecraft:light_gray_stained_glass","minecraft:cyan_stained_glass","minecraft:purple_stained_glass","minecraft:blue_stained_glass","minecraft:brown_stained_glass","minecraft:green_stained_glass","minecraft:red_stained_glass","minecraft:black_stained_glass","minecraft:white_stained_glass_pane","minecraft:orange_stained_glass_pane","minecraft:magenta_stained_glass_pane","minecraft:light_blue_stained_glass_pane","minecraft:yellow_stained_glass_pane","minecraft:lime_stained_glass_pane","minecraft:pink_stained_glass_pane","minecraft:gray_stained_glass_pane","minecraft:light_gray_stained_glass_pane","minecraft:cyan_stained_glass_pane","minecraft:purple_stained_glass_pane","minecraft:blue_stained_glass_pane","minecraft:brown_stained_glass_pane","minecraft:green_stained_glass_pane","minecraft:red_stained_glass_pane","minecraft:black_stained_glass_pane","minecraft:prismarine","minecraft:prismarine_bricks","minecraft:dark_prismarine","minecraft:prismarine_stairs","minecraft:prismarine_brick_stairs","minecraft:dark_prismarine_stairs","minecraft:sea_lantern","minecraft:red_sandstone","minecraft:chiseled_red_sandstone","minecraft:cut_red_sandstone","minecraft:red_sandstone_stairs","minecraft:repeating_command_block","minecraft:chain_command_block","minecraft:magma_block","minecraft:nether_wart_block","minecraft:warped_wart_block","minecraft:red_nether_bricks","minecraft:bone_block","minecraft:structure_void","minecraft:shulker_box","minecraft:white_shulker_box","minecraft:orange_shulker_box","minecraft:magenta_shulker_box","minecraft:light_blue_shulker_box","minecraft:yellow_shulker_box","minecraft:lime_shulker_box","minecraft:pink_shulker_box","minecraft:gray_shulker_box","minecraft:light_gray_shulker_box","minecraft:cyan_shulker_box","minecraft:purple_shulker_box","minecraft:blue_shulker_box","minecraft:brown_shulker_box","minecraft:green_shulker_box","minecraft:red_shulker_box","minecraft:black_shulker_box","minecraft:white_glazed_terracotta","minecraft:orange_glazed_terracotta","minecraft:magenta_glazed_terracotta","minecraft:light_blue_glazed_terracotta","minecraft:yellow_glazed_terracotta","minecraft:lime_glazed_terracotta","minecraft:pink_glazed_terracotta","minecraft:gray_glazed_terracotta","minecraft:light_gray_glazed_terracotta","minecraft:cyan_glazed_terracotta","minecraft:purple_glazed_terracotta","minecraft:blue_glazed_terracotta","minecraft:brown_glazed_terracotta","minecraft:green_glazed_terracotta","minecraft:red_glazed_terracotta","minecraft:black_glazed_terracotta","minecraft:white_concrete","minecraft:orange_concrete","minecraft:magenta_concrete","minecraft:light_blue_concrete","minecraft:yellow_concrete","minecraft:lime_concrete","minecraft:pink_concrete","minecraft:gray_concrete","minecraft:light_gray_concrete","minecraft:cyan_concrete","minecraft:purple_concrete","minecraft:blue_concrete","minecraft:brown_concrete","minecraft:green_concrete","minecraft:red_concrete","minecraft:black_concrete","minecraft:white_concrete_powder","minecraft:orange_concrete_powder","minecraft:magenta_concrete_powder","minecraft:light_blue_concrete_powder","minecraft:yellow_concrete_powder","minecraft:lime_concrete_powder","minecraft:pink_concrete_powder","minecraft:gray_concrete_powder","minecraft:light_gray_concrete_powder","minecraft:cyan_concrete_powder","minecraft:purple_concrete_powder","minecraft:blue_concrete_powder","minecraft:brown_concrete_powder","minecraft:green_concrete_powder","minecraft:red_concrete_powder","minecraft:black_concrete_powder","minecraft:turtle_egg","minecraft:sniffer_egg","minecraft:dried_ghast","minecraft:dead_tube_coral_block","minecraft:dead_brain_coral_block","minecraft:dead_bubble_coral_block","minecraft:dead_fire_coral_block","minecraft:dead_horn_coral_block","minecraft:tube_coral_block","minecraft:brain_coral_block","minecraft:bubble_coral_block","minecraft:fire_coral_block","minecraft:horn_coral_block","minecraft:tube_coral","minecraft:brain_coral","minecraft:bubble_coral","minecraft:fire_coral","minecraft:horn_coral","minecraft:dead_brain_coral","minecraft:dead_bubble_coral","minecraft:dead_fire_coral","minecraft:dead_horn_coral","minecraft:dead_tube_coral","minecraft:tube_coral_fan","minecraft:brain_coral_fan","minecraft:bubble_coral_fan","minecraft:fire_coral_fan","minecraft:horn_coral_fan","minecraft:dead_tube_coral_fan","minecraft:dead_brain_coral_fan","minecraft:dead_bubble_coral_fan","minecraft:dead_fire_coral_fan","minecraft:dead_horn_coral_fan","minecraft:blue_ice","minecraft:conduit","minecraft:polished_granite_stairs","minecraft:smooth_red_sandstone_stairs","minecraft:mossy_stone_brick_stairs","minecraft:polished_diorite_stairs","minecraft:mossy_cobblestone_stairs","minecraft:end_stone_brick_stairs","minecraft:stone_stairs","minecraft:smooth_sandstone_stairs","minecraft:smooth_quartz_stairs","minecraft:granite_stairs","minecraft:andesite_stairs","minecraft:red_nether_brick_stairs","minecraft:polished_andesite_stairs","minecraft:diorite_stairs","minecraft:cobbled_deepslate_stairs","minecraft:polished_deepslate_stairs","minecraft:deepslate_brick_stairs","minecraft:deepslate_tile_stairs","minecraft:polished_granite_slab","minecraft:smooth_red_sandstone_slab","minecraft:mossy_stone_brick_slab","minecraft:polished_diorite_slab","minecraft:mossy_cobblestone_slab","minecraft:end_stone_brick_slab","minecraft:smooth_sandstone_slab","minecraft:smooth_quartz_slab","minecraft:granite_slab","minecraft:andesite_slab","minecraft:red_nether_brick_slab","minecraft:polished_andesite_slab","minecraft:diorite_slab","minecraft:cobbled_deepslate_slab","minecraft:polished_deepslate_slab","minecraft:deepslate_brick_slab","minecraft:deepslate_tile_slab","minecraft:scaffolding","minecraft:redstone","minecraft:redstone_torch","minecraft:redstone_block","minecraft:repeater","minecraft:comparator","minecraft:piston","minecraft:sticky_piston","minecraft:slime_block","minecraft:honey_block","minecraft:observer","minecraft:hopper","minecraft:dispenser","minecraft:dropper","minecraft:lectern","minecraft:target","minecraft:lever","minecraft:lightning_rod","minecraft:exposed_lightning_rod","minecraft:weathered_lightning_rod","minecraft:oxidized_lightning_rod","minecraft:waxed_lightning_rod","minecraft:waxed_exposed_lightning_rod","minecraft:waxed_weathered_lightning_rod","minecraft:waxed_oxidized_lightning_rod","minecraft:daylight_detector","minecraft:sculk_sensor","minecraft:calibrated_sculk_sensor","minecraft:tripwire_hook","minecraft:trapped_chest","minecraft:tnt","minecraft:redstone_lamp","minecraft:note_block","minecraft:stone_button","minecraft:polished_blackstone_button","minecraft:oak_button","minecraft:spruce_button","minecraft:birch_button","minecraft:jungle_button","minecraft:acacia_button","minecraft:cherry_button","minecraft:dark_oak_button","minecraft:pale_oak_button","minecraft:mangrove_button","minecraft:bamboo_button","minecraft:crimson_button","minecraft:warped_button","minecraft:stone_pressure_plate","minecraft:polished_blackstone_pressure_plate","minecraft:light_weighted_pressure_plate","minecraft:heavy_weighted_pressure_plate","minecraft:oak_pressure_plate","minecraft:spruce_pressure_plate","minecraft:birch_pressure_plate","minecraft:jungle_pressure_plate","minecraft:acacia_pressure_plate","minecraft:cherry_pressure_plate","minecraft:dark_oak_pressure_plate","minecraft:pale_oak_pressure_plate","minecraft:mangrove_pressure_plate","minecraft:bamboo_pressure_plate","minecraft:crimson_pressure_plate","minecraft:warped_pressure_plate","minecraft:iron_door","minecraft:oak_door","minecraft:spruce_door","minecraft:birch_door","minecraft:jungle_door","minecraft:acacia_door","minecraft:cherry_door","minecraft:dark_oak_door","minecraft:pale_oak_door","minecraft:mangrove_door","minecraft:bamboo_door","minecraft:crimson_door","minecraft:warped_door","minecraft:copper_door","minecraft:exposed_copper_door","minecraft:weathered_copper_door","minecraft:oxidized_copper_door","minecraft:waxed_copper_door","minecraft:waxed_exposed_copper_door","minecraft:waxed_weathered_copper_door","minecraft:waxed_oxidized_copper_door","minecraft:iron_trapdoor","minecraft:oak_trapdoor","minecraft:spruce_trapdoor","minecraft:birch_trapdoor","minecraft:jungle_trapdoor","minecraft:acacia_trapdoor","minecraft:cherry_trapdoor","minecraft:dark_oak_trapdoor","minecraft:pale_oak_trapdoor","minecraft:mangrove_trapdoor","minecraft:bamboo_trapdoor","minecraft:crimson_trapdoor","minecraft:warped_trapdoor","minecraft:copper_trapdoor","minecraft:exposed_copper_trapdoor","minecraft:weathered_copper_trapdoor","minecraft:oxidized_copper_trapdoor","minecraft:waxed_copper_trapdoor","minecraft:waxed_exposed_copper_trapdoor","minecraft:waxed_weathered_copper_trapdoor","minecraft:waxed_oxidized_copper_trapdoor","minecraft:oak_fence_gate","minecraft:spruce_fence_gate","minecraft:birch_fence_gate","minecraft:jungle_fence_gate","minecraft:acacia_fence_gate","minecraft:cherry_fence_gate","minecraft:dark_oak_fence_gate","minecraft:pale_oak_fence_gate","minecraft:mangrove_fence_gate","minecraft:bamboo_fence_gate","minecraft:crimson_fence_gate","minecraft:warped_fence_gate","minecraft:powered_rail","minecraft:detector_rail","minecraft:rail","minecraft:activator_rail","minecraft:saddle","minecraft:white_harness","minecraft:orange_harness","minecraft:magenta_harness","minecraft:light_blue_harness","minecraft:yellow_harness","minecraft:lime_harness","minecraft:pink_harness","minecraft:gray_harness","minecraft:light_gray_harness","minecraft:cyan_harness","minecraft:purple_harness","minecraft:blue_harness","minecraft:brown_harness","minecraft:green_harness","minecraft:red_harness","minecraft:black_harness","minecraft:minecart","minecraft:chest_minecart","minecraft:furnace_minecart","minecraft:tnt_minecart","minecraft:hopper_minecart","minecraft:carrot_on_a_stick","minecraft:warped_fungus_on_a_stick","minecraft:phantom_membrane","minecraft:elytra","minecraft:oak_boat","minecraft:oak_chest_boat","minecraft:spruce_boat","minecraft:spruce_chest_boat","minecraft:birch_boat","minecraft:birch_chest_boat","minecraft:jungle_boat","minecraft:jungle_chest_boat","minecraft:acacia_boat","minecraft:acacia_chest_boat","minecraft:cherry_boat","minecraft:cherry_chest_boat","minecraft:dark_oak_boat","minecraft:dark_oak_chest_boat","minecraft:pale_oak_boat","minecraft:pale_oak_chest_boat","minecraft:mangrove_boat","minecraft:mangrove_chest_boat","minecraft:bamboo_raft","minecraft:bamboo_chest_raft","minecraft:structure_block","minecraft:jigsaw","minecraft:test_block","minecraft:test_instance_block","minecraft:turtle_helmet","minecraft:turtle_scute","minecraft:armadillo_scute","minecraft:wolf_armor","minecraft:flint_and_steel","minecraft:bowl","minecraft:apple","minecraft:bow","minecraft:arrow","minecraft:coal","minecraft:charcoal","minecraft:diamond","minecraft:emerald","minecraft:lapis_lazuli","minecraft:quartz","minecraft:amethyst_shard","minecraft:raw_iron","minecraft:iron_ingot","minecraft:raw_copper","minecraft:copper_ingot","minecraft:raw_gold","minecraft:gold_ingot","minecraft:netherite_ingot","minecraft:netherite_scrap","minecraft:wooden_sword","minecraft:wooden_shovel","minecraft:wooden_pickaxe","minecraft:wooden_axe","minecraft:wooden_hoe","minecraft:copper_sword","minecraft:copper_shovel","minecraft:copper_pickaxe","minecraft:copper_axe","minecraft:copper_hoe","minecraft:stone_sword","minecraft:stone_shovel","minecraft:stone_pickaxe","minecraft:stone_axe","minecraft:stone_hoe","minecraft:golden_sword","minecraft:golden_shovel","minecraft:golden_pickaxe","minecraft:golden_axe","minecraft:golden_hoe","minecraft:iron_sword","minecraft:iron_shovel","minecraft:iron_pickaxe","minecraft:iron_axe","minecraft:iron_hoe","minecraft:diamond_sword","minecraft:diamond_shovel","minecraft:diamond_pickaxe","minecraft:diamond_axe","minecraft:diamond_hoe","minecraft:netherite_sword","minecraft:netherite_shovel","minecraft:netherite_pickaxe","minecraft:netherite_axe","minecraft:netherite_hoe","minecraft:stick","minecraft:mushroom_stew","minecraft:string","minecraft:feather","minecraft:gunpowder","minecraft:wheat_seeds","minecraft:wheat","minecraft:bread","minecraft:leather_helmet","minecraft:leather_chestplate","minecraft:leather_leggings","minecraft:leather_boots","minecraft:copper_helmet","minecraft:copper_chestplate","minecraft:copper_leggings","minecraft:copper_boots","minecraft:chainmail_helmet","minecraft:chainmail_chestplate","minecraft:chainmail_leggings","minecraft:chainmail_boots","minecraft:iron_helmet","minecraft:iron_chestplate","minecraft:iron_leggings","minecraft:iron_boots","minecraft:diamond_helmet","minecraft:diamond_chestplate","minecraft:diamond_leggings","minecraft:diamond_boots","minecraft:golden_helmet","minecraft:golden_chestplate","minecraft:golden_leggings","minecraft:golden_boots","minecraft:netherite_helmet","minecraft:netherite_chestplate","minecraft:netherite_leggings","minecraft:netherite_boots","minecraft:flint","minecraft:porkchop","minecraft:cooked_porkchop","minecraft:painting","minecraft:golden_apple","minecraft:enchanted_golden_apple","minecraft:oak_sign","minecraft:spruce_sign","minecraft:birch_sign","minecraft:jungle_sign","minecraft:acacia_sign","minecraft:cherry_sign","minecraft:dark_oak_sign","minecraft:pale_oak_sign","minecraft:mangrove_sign","minecraft:bamboo_sign","minecraft:crimson_sign","minecraft:warped_sign","minecraft:oak_hanging_sign","minecraft:spruce_hanging_sign","minecraft:birch_hanging_sign","minecraft:jungle_hanging_sign","minecraft:acacia_hanging_sign","minecraft:cherry_hanging_sign","minecraft:dark_oak_hanging_sign","minecraft:pale_oak_hanging_sign","minecraft:mangrove_hanging_sign","minecraft:bamboo_hanging_sign","minecraft:crimson_hanging_sign","minecraft:warped_hanging_sign","minecraft:bucket","minecraft:water_bucket","minecraft:lava_bucket","minecraft:powder_snow_bucket","minecraft:snowball","minecraft:leather","minecraft:milk_bucket","minecraft:pufferfish_bucket","minecraft:salmon_bucket","minecraft:cod_bucket","minecraft:tropical_fish_bucket","minecraft:axolotl_bucket","minecraft:tadpole_bucket","minecraft:brick","minecraft:clay_ball","minecraft:dried_kelp_block","minecraft:paper","minecraft:book","minecraft:slime_ball","minecraft:egg","minecraft:blue_egg","minecraft:brown_egg","minecraft:compass","minecraft:recovery_compass","minecraft:bundle","minecraft:white_bundle","minecraft:orange_bundle","minecraft:magenta_bundle","minecraft:light_blue_bundle","minecraft:yellow_bundle","minecraft:lime_bundle","minecraft:pink_bundle","minecraft:gray_bundle","minecraft:light_gray_bundle","minecraft:cyan_bundle","minecraft:purple_bundle","minecraft:blue_bundle","minecraft:brown_bundle","minecraft:green_bundle","minecraft:red_bundle","minecraft:black_bundle","minecraft:fishing_rod","minecraft:clock","minecraft:spyglass","minecraft:glowstone_dust","minecraft:cod","minecraft:salmon","minecraft:tropical_fish","minecraft:pufferfish","minecraft:cooked_cod","minecraft:cooked_salmon","minecraft:ink_sac","minecraft:glow_ink_sac","minecraft:cocoa_beans","minecraft:white_dye","minecraft:orange_dye","minecraft:magenta_dye","minecraft:light_blue_dye","minecraft:yellow_dye","minecraft:lime_dye","minecraft:pink_dye","minecraft:gray_dye","minecraft:light_gray_dye","minecraft:cyan_dye","minecraft:purple_dye","minecraft:blue_dye","minecraft:brown_dye","minecraft:green_dye","minecraft:red_dye","minecraft:black_dye","minecraft:bone_meal","minecraft:bone","minecraft:sugar","minecraft:cake","minecraft:white_bed","minecraft:orange_bed","minecraft:magenta_bed","minecraft:light_blue_bed","minecraft:yellow_bed","minecraft:lime_bed","minecraft:pink_bed","minecraft:gray_bed","minecraft:light_gray_bed","minecraft:cyan_bed","minecraft:purple_bed","minecraft:blue_bed","minecraft:brown_bed","minecraft:green_bed","minecraft:red_bed","minecraft:black_bed","minecraft:cookie","minecraft:crafter","minecraft:filled_map","minecraft:shears","minecraft:melon_slice","minecraft:dried_kelp","minecraft:pumpkin_seeds","minecraft:melon_seeds","minecraft:beef","minecraft:cooked_beef","minecraft:chicken","minecraft:cooked_chicken","minecraft:rotten_flesh","minecraft:ender_pearl","minecraft:blaze_rod","minecraft:ghast_tear","minecraft:gold_nugget","minecraft:nether_wart","minecraft:glass_bottle","minecraft:potion","minecraft:spider_eye","minecraft:fermented_spider_eye","minecraft:blaze_powder","minecraft:magma_cream","minecraft:brewing_stand","minecraft:cauldron","minecraft:ender_eye","minecraft:glistering_melon_slice","minecraft:chicken_spawn_egg","minecraft:cow_spawn_egg","minecraft:pig_spawn_egg","minecraft:sheep_spawn_egg","minecraft:camel_spawn_egg","minecraft:donkey_spawn_egg","minecraft:horse_spawn_egg","minecraft:mule_spawn_egg","minecraft:cat_spawn_egg","minecraft:parrot_spawn_egg","minecraft:wolf_spawn_egg","minecraft:armadillo_spawn_egg","minecraft:bat_spawn_egg","minecraft:bee_spawn_egg","minecraft:fox_spawn_egg","minecraft:goat_spawn_egg","minecraft:llama_spawn_egg","minecraft:ocelot_spawn_egg","minecraft:panda_spawn_egg","minecraft:polar_bear_spawn_egg","minecraft:rabbit_spawn_egg","minecraft:axolotl_spawn_egg","minecraft:cod_spawn_egg","minecraft:dolphin_spawn_egg","minecraft:frog_spawn_egg","minecraft:glow_squid_spawn_egg","minecraft:nautilus_spawn_egg","minecraft:pufferfish_spawn_egg","minecraft:salmon_spawn_egg","minecraft:squid_spawn_egg","minecraft:tadpole_spawn_egg","minecraft:tropical_fish_spawn_egg","minecraft:turtle_spawn_egg","minecraft:allay_spawn_egg","minecraft:mooshroom_spawn_egg","minecraft:sniffer_spawn_egg","minecraft:copper_golem_spawn_egg","minecraft:iron_golem_spawn_egg","minecraft:snow_golem_spawn_egg","minecraft:trader_llama_spawn_egg","minecraft:villager_spawn_egg","minecraft:wandering_trader_spawn_egg","minecraft:bogged_spawn_egg","minecraft:camel_husk_spawn_egg","minecraft:drowned_spawn_egg","minecraft:husk_spawn_egg","minecraft:parched_spawn_egg","minecraft:skeleton_spawn_egg","minecraft:skeleton_horse_spawn_egg","minecraft:stray_spawn_egg","minecraft:wither_spawn_egg","minecraft:wither_skeleton_spawn_egg","minecraft:zombie_spawn_egg","minecraft:zombie_horse_spawn_egg","minecraft:zombie_nautilus_spawn_egg","minecraft:zombie_villager_spawn_egg","minecraft:cave_spider_spawn_egg","minecraft:spider_spawn_egg","minecraft:breeze_spawn_egg","minecraft:creaking_spawn_egg","minecraft:creeper_spawn_egg","minecraft:elder_guardian_spawn_egg","minecraft:guardian_spawn_egg","minecraft:phantom_spawn_egg","minecraft:silverfish_spawn_egg","minecraft:slime_spawn_egg","minecraft:warden_spawn_egg","minecraft:witch_spawn_egg","minecraft:evoker_spawn_egg","minecraft:pillager_spawn_egg","minecraft:ravager_spawn_egg","minecraft:vindicator_spawn_egg","minecraft:vex_spawn_egg","minecraft:blaze_spawn_egg","minecraft:ghast_spawn_egg","minecraft:happy_ghast_spawn_egg","minecraft:hoglin_spawn_egg","minecraft:magma_cube_spawn_egg","minecraft:piglin_spawn_egg","minecraft:piglin_brute_spawn_egg","minecraft:strider_spawn_egg","minecraft:zoglin_spawn_egg","minecraft:zombified_piglin_spawn_egg","minecraft:ender_dragon_spawn_egg","minecraft:enderman_spawn_egg","minecraft:endermite_spawn_egg","minecraft:shulker_spawn_egg","minecraft:experience_bottle","minecraft:fire_charge","minecraft:wind_charge","minecraft:writable_book","minecraft:written_book","minecraft:breeze_rod","minecraft:mace","minecraft:item_frame","minecraft:glow_item_frame","minecraft:flower_pot","minecraft:carrot","minecraft:potato","minecraft:baked_potato","minecraft:poisonous_potato","minecraft:map","minecraft:golden_carrot","minecraft:skeleton_skull","minecraft:wither_skeleton_skull","minecraft:player_head","minecraft:zombie_head","minecraft:creeper_head","minecraft:dragon_head","minecraft:piglin_head","minecraft:nether_star","minecraft:pumpkin_pie","minecraft:firework_rocket","minecraft:firework_star","minecraft:enchanted_book","minecraft:nether_brick","minecraft:resin_brick","minecraft:prismarine_shard","minecraft:prismarine_crystals","minecraft:rabbit","minecraft:cooked_rabbit","minecraft:rabbit_stew","minecraft:rabbit_foot","minecraft:rabbit_hide","minecraft:armor_stand","minecraft:copper_horse_armor","minecraft:iron_horse_armor","minecraft:golden_horse_armor","minecraft:diamond_horse_armor","minecraft:netherite_horse_armor","minecraft:leather_horse_armor","minecraft:lead","minecraft:name_tag","minecraft:command_block_minecart","minecraft:mutton","minecraft:cooked_mutton","minecraft:white_banner","minecraft:orange_banner","minecraft:magenta_banner","minecraft:light_blue_banner","minecraft:yellow_banner","minecraft:lime_banner","minecraft:pink_banner","minecraft:gray_banner","minecraft:light_gray_banner","minecraft:cyan_banner","minecraft:purple_banner","minecraft:blue_banner","minecraft:brown_banner","minecraft:green_banner","minecraft:red_banner","minecraft:black_banner","minecraft:end_crystal","minecraft:chorus_fruit","minecraft:popped_chorus_fruit","minecraft:torchflower_seeds","minecraft:pitcher_pod","minecraft:beetroot","minecraft:beetroot_seeds","minecraft:beetroot_soup","minecraft:dragon_breath","minecraft:splash_potion","minecraft:spectral_arrow","minecraft:tipped_arrow","minecraft:lingering_potion","minecraft:shield","minecraft:wooden_spear","minecraft:stone_spear","minecraft:copper_spear","minecraft:iron_spear","minecraft:golden_spear","minecraft:diamond_spear","minecraft:netherite_spear","minecraft:totem_of_undying","minecraft:shulker_shell","minecraft:iron_nugget","minecraft:copper_nugget","minecraft:knowledge_book","minecraft:debug_stick","minecraft:music_disc_13","minecraft:music_disc_cat","minecraft:music_disc_blocks","minecraft:music_disc_chirp","minecraft:music_disc_creator","minecraft:music_disc_creator_music_box","minecraft:music_disc_far","minecraft:music_disc_lava_chicken","minecraft:music_disc_mall","minecraft:music_disc_mellohi","minecraft:music_disc_stal","minecraft:music_disc_strad","minecraft:music_disc_ward","minecraft:music_disc_11","minecraft:music_disc_wait","minecraft:music_disc_otherside","minecraft:music_disc_relic","minecraft:music_disc_5","minecraft:music_disc_pigstep","minecraft:music_disc_precipice","minecraft:music_disc_tears","minecraft:disc_fragment_5","minecraft:trident","minecraft:nautilus_shell","minecraft:iron_nautilus_armor","minecraft:golden_nautilus_armor","minecraft:diamond_nautilus_armor","minecraft:netherite_nautilus_armor","minecraft:copper_nautilus_armor","minecraft:heart_of_the_sea","minecraft:crossbow","minecraft:suspicious_stew","minecraft:loom","minecraft:flower_banner_pattern","minecraft:creeper_banner_pattern","minecraft:skull_banner_pattern","minecraft:mojang_banner_pattern","minecraft:globe_banner_pattern","minecraft:piglin_banner_pattern","minecraft:flow_banner_pattern","minecraft:guster_banner_pattern","minecraft:field_masoned_banner_pattern","minecraft:bordure_indented_banner_pattern","minecraft:goat_horn","minecraft:composter","minecraft:barrel","minecraft:smoker","minecraft:blast_furnace","minecraft:cartography_table","minecraft:fletching_table","minecraft:grindstone","minecraft:smithing_table","minecraft:stonecutter","minecraft:bell","minecraft:lantern","minecraft:soul_lantern","minecraft:copper_lantern","minecraft:exposed_copper_lantern","minecraft:weathered_copper_lantern","minecraft:oxidized_copper_lantern","minecraft:waxed_copper_lantern","minecraft:waxed_exposed_copper_lantern","minecraft:waxed_weathered_copper_lantern","minecraft:waxed_oxidized_copper_lantern","minecraft:sweet_berries","minecraft:glow_berries","minecraft:campfire","minecraft:soul_campfire","minecraft:shroomlight","minecraft:honeycomb","minecraft:bee_nest","minecraft:beehive","minecraft:honey_bottle","minecraft:honeycomb_block","minecraft:lodestone","minecraft:crying_obsidian","minecraft:blackstone","minecraft:blackstone_slab","minecraft:blackstone_stairs","minecraft:gilded_blackstone","minecraft:polished_blackstone","minecraft:polished_blackstone_slab","minecraft:polished_blackstone_stairs","minecraft:chiseled_polished_blackstone","minecraft:polished_blackstone_bricks","minecraft:polished_blackstone_brick_slab","minecraft:polished_blackstone_brick_stairs","minecraft:cracked_polished_blackstone_bricks","minecraft:respawn_anchor","minecraft:candle","minecraft:white_candle","minecraft:orange_candle","minecraft:magenta_candle","minecraft:light_blue_candle","minecraft:yellow_candle","minecraft:lime_candle","minecraft:pink_candle","minecraft:gray_candle","minecraft:light_gray_candle","minecraft:cyan_candle","minecraft:purple_candle","minecraft:blue_candle","minecraft:brown_candle","minecraft:green_candle","minecraft:red_candle","minecraft:black_candle","minecraft:small_amethyst_bud","minecraft:medium_amethyst_bud","minecraft:large_amethyst_bud","minecraft:amethyst_cluster","minecraft:pointed_dripstone","minecraft:ochre_froglight","minecraft:verdant_froglight","minecraft:pearlescent_froglight","minecraft:frogspawn","minecraft:echo_shard","minecraft:brush","minecraft:netherite_upgrade_smithing_template","minecraft:sentry_armor_trim_smithing_template","minecraft:dune_armor_trim_smithing_template","minecraft:coast_armor_trim_smithing_template","minecraft:wild_armor_trim_smithing_template","minecraft:ward_armor_trim_smithing_template","minecraft:eye_armor_trim_smithing_template","minecraft:vex_armor_trim_smithing_template","minecraft:tide_armor_trim_smithing_template","minecraft:snout_armor_trim_smithing_template","minecraft:rib_armor_trim_smithing_template","minecraft:spire_armor_trim_smithing_template","minecraft:wayfinder_armor_trim_smithing_template","minecraft:shaper_armor_trim_smithing_template","minecraft:silence_armor_trim_smithing_template","minecraft:raiser_armor_trim_smithing_template","minecraft:host_armor_trim_smithing_template","minecraft:flow_armor_trim_smithing_template","minecraft:bolt_armor_trim_smithing_template","minecraft:angler_pottery_sherd","minecraft:archer_pottery_sherd","minecraft:arms_up_pottery_sherd","minecraft:blade_pottery_sherd","minecraft:brewer_pottery_sherd","minecraft:burn_pottery_sherd","minecraft:danger_pottery_sherd","minecraft:explorer_pottery_sherd","minecraft:flow_pottery_sherd","minecraft:friend_pottery_sherd","minecraft:guster_pottery_sherd","minecraft:heart_pottery_sherd","minecraft:heartbreak_pottery_sherd","minecraft:howl_pottery_sherd","minecraft:miner_pottery_sherd","minecraft:mourner_pottery_sherd","minecraft:plenty_pottery_sherd","minecraft:prize_pottery_sherd","minecraft:scrape_pottery_sherd","minecraft:sheaf_pottery_sherd","minecraft:shelter_pottery_sherd","minecraft:skull_pottery_sherd","minecraft:snort_pottery_sherd","minecraft:copper_grate","minecraft:exposed_copper_grate","minecraft:weathered_copper_grate","minecraft:oxidized_copper_grate","minecraft:waxed_copper_grate","minecraft:waxed_exposed_copper_grate","minecraft:waxed_weathered_copper_grate","minecraft:waxed_oxidized_copper_grate","minecraft:copper_bulb","minecraft:exposed_copper_bulb","minecraft:weathered_copper_bulb","minecraft:oxidized_copper_bulb","minecraft:waxed_copper_bulb","minecraft:waxed_exposed_copper_bulb","minecraft:waxed_weathered_copper_bulb","minecraft:waxed_oxidized_copper_bulb","minecraft:copper_chest","minecraft:exposed_copper_chest","minecraft:weathered_copper_chest","minecraft:oxidized_copper_chest","minecraft:waxed_copper_chest","minecraft:waxed_exposed_copper_chest","minecraft:waxed_weathered_copper_chest","minecraft:waxed_oxidized_copper_chest","minecraft:copper_golem_statue","minecraft:exposed_copper_golem_statue","minecraft:weathered_copper_golem_statue","minecraft:oxidized_copper_golem_statue","minecraft:waxed_copper_golem_statue","minecraft:waxed_exposed_copper_golem_statue","minecraft:waxed_weathered_copper_golem_statue","minecraft:waxed_oxidized_copper_golem_statue","minecraft:trial_spawner","minecraft:trial_key","minecraft:ominous_trial_key","minecraft:vault","minecraft:ominous_bottle"]; impl DefaultableComponent for ItemModel { fn default_for_item(item: Item) -> Option { let value = ITEM_MODEL_VALUES[item as usize]; @@ -2030,7 +2062,7 @@ impl DefaultableComponent for ItemModel { } } #[rustfmt::skip] -static ITEM_NAME_VALUES: [&str; 1504] = ["block.minecraft.air","block.minecraft.stone","block.minecraft.granite","block.minecraft.polished_granite","block.minecraft.diorite","block.minecraft.polished_diorite","block.minecraft.andesite","block.minecraft.polished_andesite","block.minecraft.deepslate","block.minecraft.cobbled_deepslate","block.minecraft.polished_deepslate","block.minecraft.calcite","block.minecraft.tuff","block.minecraft.tuff_slab","block.minecraft.tuff_stairs","block.minecraft.tuff_wall","block.minecraft.chiseled_tuff","block.minecraft.polished_tuff","block.minecraft.polished_tuff_slab","block.minecraft.polished_tuff_stairs","block.minecraft.polished_tuff_wall","block.minecraft.tuff_bricks","block.minecraft.tuff_brick_slab","block.minecraft.tuff_brick_stairs","block.minecraft.tuff_brick_wall","block.minecraft.chiseled_tuff_bricks","block.minecraft.dripstone_block","block.minecraft.grass_block","block.minecraft.dirt","block.minecraft.coarse_dirt","block.minecraft.podzol","block.minecraft.rooted_dirt","block.minecraft.mud","block.minecraft.crimson_nylium","block.minecraft.warped_nylium","block.minecraft.cobblestone","block.minecraft.oak_planks","block.minecraft.spruce_planks","block.minecraft.birch_planks","block.minecraft.jungle_planks","block.minecraft.acacia_planks","block.minecraft.cherry_planks","block.minecraft.dark_oak_planks","block.minecraft.pale_oak_planks","block.minecraft.mangrove_planks","block.minecraft.bamboo_planks","block.minecraft.crimson_planks","block.minecraft.warped_planks","block.minecraft.bamboo_mosaic","block.minecraft.oak_sapling","block.minecraft.spruce_sapling","block.minecraft.birch_sapling","block.minecraft.jungle_sapling","block.minecraft.acacia_sapling","block.minecraft.cherry_sapling","block.minecraft.dark_oak_sapling","block.minecraft.pale_oak_sapling","block.minecraft.mangrove_propagule","block.minecraft.bedrock","block.minecraft.sand","block.minecraft.suspicious_sand","block.minecraft.suspicious_gravel","block.minecraft.red_sand","block.minecraft.gravel","block.minecraft.coal_ore","block.minecraft.deepslate_coal_ore","block.minecraft.iron_ore","block.minecraft.deepslate_iron_ore","block.minecraft.copper_ore","block.minecraft.deepslate_copper_ore","block.minecraft.gold_ore","block.minecraft.deepslate_gold_ore","block.minecraft.redstone_ore","block.minecraft.deepslate_redstone_ore","block.minecraft.emerald_ore","block.minecraft.deepslate_emerald_ore","block.minecraft.lapis_ore","block.minecraft.deepslate_lapis_ore","block.minecraft.diamond_ore","block.minecraft.deepslate_diamond_ore","block.minecraft.nether_gold_ore","block.minecraft.nether_quartz_ore","block.minecraft.ancient_debris","block.minecraft.coal_block","block.minecraft.raw_iron_block","block.minecraft.raw_copper_block","block.minecraft.raw_gold_block","block.minecraft.heavy_core","block.minecraft.amethyst_block","block.minecraft.budding_amethyst","block.minecraft.iron_block","block.minecraft.copper_block","block.minecraft.gold_block","block.minecraft.diamond_block","block.minecraft.netherite_block","block.minecraft.exposed_copper","block.minecraft.weathered_copper","block.minecraft.oxidized_copper","block.minecraft.chiseled_copper","block.minecraft.exposed_chiseled_copper","block.minecraft.weathered_chiseled_copper","block.minecraft.oxidized_chiseled_copper","block.minecraft.cut_copper","block.minecraft.exposed_cut_copper","block.minecraft.weathered_cut_copper","block.minecraft.oxidized_cut_copper","block.minecraft.cut_copper_stairs","block.minecraft.exposed_cut_copper_stairs","block.minecraft.weathered_cut_copper_stairs","block.minecraft.oxidized_cut_copper_stairs","block.minecraft.cut_copper_slab","block.minecraft.exposed_cut_copper_slab","block.minecraft.weathered_cut_copper_slab","block.minecraft.oxidized_cut_copper_slab","block.minecraft.waxed_copper_block","block.minecraft.waxed_exposed_copper","block.minecraft.waxed_weathered_copper","block.minecraft.waxed_oxidized_copper","block.minecraft.waxed_chiseled_copper","block.minecraft.waxed_exposed_chiseled_copper","block.minecraft.waxed_weathered_chiseled_copper","block.minecraft.waxed_oxidized_chiseled_copper","block.minecraft.waxed_cut_copper","block.minecraft.waxed_exposed_cut_copper","block.minecraft.waxed_weathered_cut_copper","block.minecraft.waxed_oxidized_cut_copper","block.minecraft.waxed_cut_copper_stairs","block.minecraft.waxed_exposed_cut_copper_stairs","block.minecraft.waxed_weathered_cut_copper_stairs","block.minecraft.waxed_oxidized_cut_copper_stairs","block.minecraft.waxed_cut_copper_slab","block.minecraft.waxed_exposed_cut_copper_slab","block.minecraft.waxed_weathered_cut_copper_slab","block.minecraft.waxed_oxidized_cut_copper_slab","block.minecraft.oak_log","block.minecraft.spruce_log","block.minecraft.birch_log","block.minecraft.jungle_log","block.minecraft.acacia_log","block.minecraft.cherry_log","block.minecraft.pale_oak_log","block.minecraft.dark_oak_log","block.minecraft.mangrove_log","block.minecraft.mangrove_roots","block.minecraft.muddy_mangrove_roots","block.minecraft.crimson_stem","block.minecraft.warped_stem","block.minecraft.bamboo_block","block.minecraft.stripped_oak_log","block.minecraft.stripped_spruce_log","block.minecraft.stripped_birch_log","block.minecraft.stripped_jungle_log","block.minecraft.stripped_acacia_log","block.minecraft.stripped_cherry_log","block.minecraft.stripped_dark_oak_log","block.minecraft.stripped_pale_oak_log","block.minecraft.stripped_mangrove_log","block.minecraft.stripped_crimson_stem","block.minecraft.stripped_warped_stem","block.minecraft.stripped_oak_wood","block.minecraft.stripped_spruce_wood","block.minecraft.stripped_birch_wood","block.minecraft.stripped_jungle_wood","block.minecraft.stripped_acacia_wood","block.minecraft.stripped_cherry_wood","block.minecraft.stripped_dark_oak_wood","block.minecraft.stripped_pale_oak_wood","block.minecraft.stripped_mangrove_wood","block.minecraft.stripped_crimson_hyphae","block.minecraft.stripped_warped_hyphae","block.minecraft.stripped_bamboo_block","block.minecraft.oak_wood","block.minecraft.spruce_wood","block.minecraft.birch_wood","block.minecraft.jungle_wood","block.minecraft.acacia_wood","block.minecraft.cherry_wood","block.minecraft.pale_oak_wood","block.minecraft.dark_oak_wood","block.minecraft.mangrove_wood","block.minecraft.crimson_hyphae","block.minecraft.warped_hyphae","block.minecraft.oak_leaves","block.minecraft.spruce_leaves","block.minecraft.birch_leaves","block.minecraft.jungle_leaves","block.minecraft.acacia_leaves","block.minecraft.cherry_leaves","block.minecraft.dark_oak_leaves","block.minecraft.pale_oak_leaves","block.minecraft.mangrove_leaves","block.minecraft.azalea_leaves","block.minecraft.flowering_azalea_leaves","block.minecraft.sponge","block.minecraft.wet_sponge","block.minecraft.glass","block.minecraft.tinted_glass","block.minecraft.lapis_block","block.minecraft.sandstone","block.minecraft.chiseled_sandstone","block.minecraft.cut_sandstone","block.minecraft.cobweb","block.minecraft.short_grass","block.minecraft.fern","block.minecraft.bush","block.minecraft.azalea","block.minecraft.flowering_azalea","block.minecraft.dead_bush","block.minecraft.firefly_bush","block.minecraft.short_dry_grass","block.minecraft.tall_dry_grass","block.minecraft.seagrass","block.minecraft.sea_pickle","block.minecraft.white_wool","block.minecraft.orange_wool","block.minecraft.magenta_wool","block.minecraft.light_blue_wool","block.minecraft.yellow_wool","block.minecraft.lime_wool","block.minecraft.pink_wool","block.minecraft.gray_wool","block.minecraft.light_gray_wool","block.minecraft.cyan_wool","block.minecraft.purple_wool","block.minecraft.blue_wool","block.minecraft.brown_wool","block.minecraft.green_wool","block.minecraft.red_wool","block.minecraft.black_wool","block.minecraft.dandelion","block.minecraft.open_eyeblossom","block.minecraft.closed_eyeblossom","block.minecraft.poppy","block.minecraft.blue_orchid","block.minecraft.allium","block.minecraft.azure_bluet","block.minecraft.red_tulip","block.minecraft.orange_tulip","block.minecraft.white_tulip","block.minecraft.pink_tulip","block.minecraft.oxeye_daisy","block.minecraft.cornflower","block.minecraft.lily_of_the_valley","block.minecraft.wither_rose","block.minecraft.torchflower","block.minecraft.pitcher_plant","block.minecraft.spore_blossom","block.minecraft.brown_mushroom","block.minecraft.red_mushroom","block.minecraft.crimson_fungus","block.minecraft.warped_fungus","block.minecraft.crimson_roots","block.minecraft.warped_roots","block.minecraft.nether_sprouts","block.minecraft.weeping_vines","block.minecraft.twisting_vines","block.minecraft.sugar_cane","block.minecraft.kelp","block.minecraft.pink_petals","block.minecraft.wildflowers","block.minecraft.leaf_litter","block.minecraft.moss_carpet","block.minecraft.moss_block","block.minecraft.pale_moss_carpet","block.minecraft.pale_hanging_moss","block.minecraft.pale_moss_block","block.minecraft.hanging_roots","block.minecraft.big_dripleaf","block.minecraft.small_dripleaf","block.minecraft.bamboo","block.minecraft.oak_slab","block.minecraft.spruce_slab","block.minecraft.birch_slab","block.minecraft.jungle_slab","block.minecraft.acacia_slab","block.minecraft.cherry_slab","block.minecraft.dark_oak_slab","block.minecraft.pale_oak_slab","block.minecraft.mangrove_slab","block.minecraft.bamboo_slab","block.minecraft.bamboo_mosaic_slab","block.minecraft.crimson_slab","block.minecraft.warped_slab","block.minecraft.stone_slab","block.minecraft.smooth_stone_slab","block.minecraft.sandstone_slab","block.minecraft.cut_sandstone_slab","block.minecraft.petrified_oak_slab","block.minecraft.cobblestone_slab","block.minecraft.brick_slab","block.minecraft.stone_brick_slab","block.minecraft.mud_brick_slab","block.minecraft.nether_brick_slab","block.minecraft.quartz_slab","block.minecraft.red_sandstone_slab","block.minecraft.cut_red_sandstone_slab","block.minecraft.purpur_slab","block.minecraft.prismarine_slab","block.minecraft.prismarine_brick_slab","block.minecraft.dark_prismarine_slab","block.minecraft.smooth_quartz","block.minecraft.smooth_red_sandstone","block.minecraft.smooth_sandstone","block.minecraft.smooth_stone","block.minecraft.bricks","block.minecraft.acacia_shelf","block.minecraft.bamboo_shelf","block.minecraft.birch_shelf","block.minecraft.cherry_shelf","block.minecraft.crimson_shelf","block.minecraft.dark_oak_shelf","block.minecraft.jungle_shelf","block.minecraft.mangrove_shelf","block.minecraft.oak_shelf","block.minecraft.pale_oak_shelf","block.minecraft.spruce_shelf","block.minecraft.warped_shelf","block.minecraft.bookshelf","block.minecraft.chiseled_bookshelf","block.minecraft.decorated_pot","block.minecraft.mossy_cobblestone","block.minecraft.obsidian","block.minecraft.torch","block.minecraft.end_rod","block.minecraft.chorus_plant","block.minecraft.chorus_flower","block.minecraft.purpur_block","block.minecraft.purpur_pillar","block.minecraft.purpur_stairs","block.minecraft.spawner","block.minecraft.creaking_heart","block.minecraft.chest","block.minecraft.crafting_table","block.minecraft.farmland","block.minecraft.furnace","block.minecraft.ladder","block.minecraft.cobblestone_stairs","block.minecraft.snow","block.minecraft.ice","block.minecraft.snow_block","block.minecraft.cactus","block.minecraft.cactus_flower","block.minecraft.clay","block.minecraft.jukebox","block.minecraft.oak_fence","block.minecraft.spruce_fence","block.minecraft.birch_fence","block.minecraft.jungle_fence","block.minecraft.acacia_fence","block.minecraft.cherry_fence","block.minecraft.dark_oak_fence","block.minecraft.pale_oak_fence","block.minecraft.mangrove_fence","block.minecraft.bamboo_fence","block.minecraft.crimson_fence","block.minecraft.warped_fence","block.minecraft.pumpkin","block.minecraft.carved_pumpkin","block.minecraft.jack_o_lantern","block.minecraft.netherrack","block.minecraft.soul_sand","block.minecraft.soul_soil","block.minecraft.basalt","block.minecraft.polished_basalt","block.minecraft.smooth_basalt","block.minecraft.soul_torch","block.minecraft.copper_torch","block.minecraft.glowstone","block.minecraft.infested_stone","block.minecraft.infested_cobblestone","block.minecraft.infested_stone_bricks","block.minecraft.infested_mossy_stone_bricks","block.minecraft.infested_cracked_stone_bricks","block.minecraft.infested_chiseled_stone_bricks","block.minecraft.infested_deepslate","block.minecraft.stone_bricks","block.minecraft.mossy_stone_bricks","block.minecraft.cracked_stone_bricks","block.minecraft.chiseled_stone_bricks","block.minecraft.packed_mud","block.minecraft.mud_bricks","block.minecraft.deepslate_bricks","block.minecraft.cracked_deepslate_bricks","block.minecraft.deepslate_tiles","block.minecraft.cracked_deepslate_tiles","block.minecraft.chiseled_deepslate","block.minecraft.reinforced_deepslate","block.minecraft.brown_mushroom_block","block.minecraft.red_mushroom_block","block.minecraft.mushroom_stem","block.minecraft.iron_bars","block.minecraft.copper_bars","block.minecraft.exposed_copper_bars","block.minecraft.weathered_copper_bars","block.minecraft.oxidized_copper_bars","block.minecraft.waxed_copper_bars","block.minecraft.waxed_exposed_copper_bars","block.minecraft.waxed_weathered_copper_bars","block.minecraft.waxed_oxidized_copper_bars","block.minecraft.iron_chain","block.minecraft.copper_chain","block.minecraft.exposed_copper_chain","block.minecraft.weathered_copper_chain","block.minecraft.oxidized_copper_chain","block.minecraft.waxed_copper_chain","block.minecraft.waxed_exposed_copper_chain","block.minecraft.waxed_weathered_copper_chain","block.minecraft.waxed_oxidized_copper_chain","block.minecraft.glass_pane","block.minecraft.melon","block.minecraft.vine","block.minecraft.glow_lichen","item.minecraft.resin_clump","block.minecraft.resin_block","block.minecraft.resin_bricks","block.minecraft.resin_brick_stairs","block.minecraft.resin_brick_slab","block.minecraft.resin_brick_wall","block.minecraft.chiseled_resin_bricks","block.minecraft.brick_stairs","block.minecraft.stone_brick_stairs","block.minecraft.mud_brick_stairs","block.minecraft.mycelium","block.minecraft.lily_pad","block.minecraft.nether_bricks","block.minecraft.cracked_nether_bricks","block.minecraft.chiseled_nether_bricks","block.minecraft.nether_brick_fence","block.minecraft.nether_brick_stairs","block.minecraft.sculk","block.minecraft.sculk_vein","block.minecraft.sculk_catalyst","block.minecraft.sculk_shrieker","block.minecraft.enchanting_table","block.minecraft.end_portal_frame","block.minecraft.end_stone","block.minecraft.end_stone_bricks","block.minecraft.dragon_egg","block.minecraft.sandstone_stairs","block.minecraft.ender_chest","block.minecraft.emerald_block","block.minecraft.oak_stairs","block.minecraft.spruce_stairs","block.minecraft.birch_stairs","block.minecraft.jungle_stairs","block.minecraft.acacia_stairs","block.minecraft.cherry_stairs","block.minecraft.dark_oak_stairs","block.minecraft.pale_oak_stairs","block.minecraft.mangrove_stairs","block.minecraft.bamboo_stairs","block.minecraft.bamboo_mosaic_stairs","block.minecraft.crimson_stairs","block.minecraft.warped_stairs","block.minecraft.command_block","block.minecraft.beacon","block.minecraft.cobblestone_wall","block.minecraft.mossy_cobblestone_wall","block.minecraft.brick_wall","block.minecraft.prismarine_wall","block.minecraft.red_sandstone_wall","block.minecraft.mossy_stone_brick_wall","block.minecraft.granite_wall","block.minecraft.stone_brick_wall","block.minecraft.mud_brick_wall","block.minecraft.nether_brick_wall","block.minecraft.andesite_wall","block.minecraft.red_nether_brick_wall","block.minecraft.sandstone_wall","block.minecraft.end_stone_brick_wall","block.minecraft.diorite_wall","block.minecraft.blackstone_wall","block.minecraft.polished_blackstone_wall","block.minecraft.polished_blackstone_brick_wall","block.minecraft.cobbled_deepslate_wall","block.minecraft.polished_deepslate_wall","block.minecraft.deepslate_brick_wall","block.minecraft.deepslate_tile_wall","block.minecraft.anvil","block.minecraft.chipped_anvil","block.minecraft.damaged_anvil","block.minecraft.chiseled_quartz_block","block.minecraft.quartz_block","block.minecraft.quartz_bricks","block.minecraft.quartz_pillar","block.minecraft.quartz_stairs","block.minecraft.white_terracotta","block.minecraft.orange_terracotta","block.minecraft.magenta_terracotta","block.minecraft.light_blue_terracotta","block.minecraft.yellow_terracotta","block.minecraft.lime_terracotta","block.minecraft.pink_terracotta","block.minecraft.gray_terracotta","block.minecraft.light_gray_terracotta","block.minecraft.cyan_terracotta","block.minecraft.purple_terracotta","block.minecraft.blue_terracotta","block.minecraft.brown_terracotta","block.minecraft.green_terracotta","block.minecraft.red_terracotta","block.minecraft.black_terracotta","block.minecraft.barrier","block.minecraft.light","block.minecraft.hay_block","block.minecraft.white_carpet","block.minecraft.orange_carpet","block.minecraft.magenta_carpet","block.minecraft.light_blue_carpet","block.minecraft.yellow_carpet","block.minecraft.lime_carpet","block.minecraft.pink_carpet","block.minecraft.gray_carpet","block.minecraft.light_gray_carpet","block.minecraft.cyan_carpet","block.minecraft.purple_carpet","block.minecraft.blue_carpet","block.minecraft.brown_carpet","block.minecraft.green_carpet","block.minecraft.red_carpet","block.minecraft.black_carpet","block.minecraft.terracotta","block.minecraft.packed_ice","block.minecraft.dirt_path","block.minecraft.sunflower","block.minecraft.lilac","block.minecraft.rose_bush","block.minecraft.peony","block.minecraft.tall_grass","block.minecraft.large_fern","block.minecraft.white_stained_glass","block.minecraft.orange_stained_glass","block.minecraft.magenta_stained_glass","block.minecraft.light_blue_stained_glass","block.minecraft.yellow_stained_glass","block.minecraft.lime_stained_glass","block.minecraft.pink_stained_glass","block.minecraft.gray_stained_glass","block.minecraft.light_gray_stained_glass","block.minecraft.cyan_stained_glass","block.minecraft.purple_stained_glass","block.minecraft.blue_stained_glass","block.minecraft.brown_stained_glass","block.minecraft.green_stained_glass","block.minecraft.red_stained_glass","block.minecraft.black_stained_glass","block.minecraft.white_stained_glass_pane","block.minecraft.orange_stained_glass_pane","block.minecraft.magenta_stained_glass_pane","block.minecraft.light_blue_stained_glass_pane","block.minecraft.yellow_stained_glass_pane","block.minecraft.lime_stained_glass_pane","block.minecraft.pink_stained_glass_pane","block.minecraft.gray_stained_glass_pane","block.minecraft.light_gray_stained_glass_pane","block.minecraft.cyan_stained_glass_pane","block.minecraft.purple_stained_glass_pane","block.minecraft.blue_stained_glass_pane","block.minecraft.brown_stained_glass_pane","block.minecraft.green_stained_glass_pane","block.minecraft.red_stained_glass_pane","block.minecraft.black_stained_glass_pane","block.minecraft.prismarine","block.minecraft.prismarine_bricks","block.minecraft.dark_prismarine","block.minecraft.prismarine_stairs","block.minecraft.prismarine_brick_stairs","block.minecraft.dark_prismarine_stairs","block.minecraft.sea_lantern","block.minecraft.red_sandstone","block.minecraft.chiseled_red_sandstone","block.minecraft.cut_red_sandstone","block.minecraft.red_sandstone_stairs","block.minecraft.repeating_command_block","block.minecraft.chain_command_block","block.minecraft.magma_block","block.minecraft.nether_wart_block","block.minecraft.warped_wart_block","block.minecraft.red_nether_bricks","block.minecraft.bone_block","block.minecraft.structure_void","block.minecraft.shulker_box","block.minecraft.white_shulker_box","block.minecraft.orange_shulker_box","block.minecraft.magenta_shulker_box","block.minecraft.light_blue_shulker_box","block.minecraft.yellow_shulker_box","block.minecraft.lime_shulker_box","block.minecraft.pink_shulker_box","block.minecraft.gray_shulker_box","block.minecraft.light_gray_shulker_box","block.minecraft.cyan_shulker_box","block.minecraft.purple_shulker_box","block.minecraft.blue_shulker_box","block.minecraft.brown_shulker_box","block.minecraft.green_shulker_box","block.minecraft.red_shulker_box","block.minecraft.black_shulker_box","block.minecraft.white_glazed_terracotta","block.minecraft.orange_glazed_terracotta","block.minecraft.magenta_glazed_terracotta","block.minecraft.light_blue_glazed_terracotta","block.minecraft.yellow_glazed_terracotta","block.minecraft.lime_glazed_terracotta","block.minecraft.pink_glazed_terracotta","block.minecraft.gray_glazed_terracotta","block.minecraft.light_gray_glazed_terracotta","block.minecraft.cyan_glazed_terracotta","block.minecraft.purple_glazed_terracotta","block.minecraft.blue_glazed_terracotta","block.minecraft.brown_glazed_terracotta","block.minecraft.green_glazed_terracotta","block.minecraft.red_glazed_terracotta","block.minecraft.black_glazed_terracotta","block.minecraft.white_concrete","block.minecraft.orange_concrete","block.minecraft.magenta_concrete","block.minecraft.light_blue_concrete","block.minecraft.yellow_concrete","block.minecraft.lime_concrete","block.minecraft.pink_concrete","block.minecraft.gray_concrete","block.minecraft.light_gray_concrete","block.minecraft.cyan_concrete","block.minecraft.purple_concrete","block.minecraft.blue_concrete","block.minecraft.brown_concrete","block.minecraft.green_concrete","block.minecraft.red_concrete","block.minecraft.black_concrete","block.minecraft.white_concrete_powder","block.minecraft.orange_concrete_powder","block.minecraft.magenta_concrete_powder","block.minecraft.light_blue_concrete_powder","block.minecraft.yellow_concrete_powder","block.minecraft.lime_concrete_powder","block.minecraft.pink_concrete_powder","block.minecraft.gray_concrete_powder","block.minecraft.light_gray_concrete_powder","block.minecraft.cyan_concrete_powder","block.minecraft.purple_concrete_powder","block.minecraft.blue_concrete_powder","block.minecraft.brown_concrete_powder","block.minecraft.green_concrete_powder","block.minecraft.red_concrete_powder","block.minecraft.black_concrete_powder","block.minecraft.turtle_egg","block.minecraft.sniffer_egg","block.minecraft.dried_ghast","block.minecraft.dead_tube_coral_block","block.minecraft.dead_brain_coral_block","block.minecraft.dead_bubble_coral_block","block.minecraft.dead_fire_coral_block","block.minecraft.dead_horn_coral_block","block.minecraft.tube_coral_block","block.minecraft.brain_coral_block","block.minecraft.bubble_coral_block","block.minecraft.fire_coral_block","block.minecraft.horn_coral_block","block.minecraft.tube_coral","block.minecraft.brain_coral","block.minecraft.bubble_coral","block.minecraft.fire_coral","block.minecraft.horn_coral","block.minecraft.dead_brain_coral","block.minecraft.dead_bubble_coral","block.minecraft.dead_fire_coral","block.minecraft.dead_horn_coral","block.minecraft.dead_tube_coral","block.minecraft.tube_coral_fan","block.minecraft.brain_coral_fan","block.minecraft.bubble_coral_fan","block.minecraft.fire_coral_fan","block.minecraft.horn_coral_fan","block.minecraft.dead_tube_coral_fan","block.minecraft.dead_brain_coral_fan","block.minecraft.dead_bubble_coral_fan","block.minecraft.dead_fire_coral_fan","block.minecraft.dead_horn_coral_fan","block.minecraft.blue_ice","block.minecraft.conduit","block.minecraft.polished_granite_stairs","block.minecraft.smooth_red_sandstone_stairs","block.minecraft.mossy_stone_brick_stairs","block.minecraft.polished_diorite_stairs","block.minecraft.mossy_cobblestone_stairs","block.minecraft.end_stone_brick_stairs","block.minecraft.stone_stairs","block.minecraft.smooth_sandstone_stairs","block.minecraft.smooth_quartz_stairs","block.minecraft.granite_stairs","block.minecraft.andesite_stairs","block.minecraft.red_nether_brick_stairs","block.minecraft.polished_andesite_stairs","block.minecraft.diorite_stairs","block.minecraft.cobbled_deepslate_stairs","block.minecraft.polished_deepslate_stairs","block.minecraft.deepslate_brick_stairs","block.minecraft.deepslate_tile_stairs","block.minecraft.polished_granite_slab","block.minecraft.smooth_red_sandstone_slab","block.minecraft.mossy_stone_brick_slab","block.minecraft.polished_diorite_slab","block.minecraft.mossy_cobblestone_slab","block.minecraft.end_stone_brick_slab","block.minecraft.smooth_sandstone_slab","block.minecraft.smooth_quartz_slab","block.minecraft.granite_slab","block.minecraft.andesite_slab","block.minecraft.red_nether_brick_slab","block.minecraft.polished_andesite_slab","block.minecraft.diorite_slab","block.minecraft.cobbled_deepslate_slab","block.minecraft.polished_deepslate_slab","block.minecraft.deepslate_brick_slab","block.minecraft.deepslate_tile_slab","block.minecraft.scaffolding","item.minecraft.redstone","block.minecraft.redstone_torch","block.minecraft.redstone_block","block.minecraft.repeater","block.minecraft.comparator","block.minecraft.piston","block.minecraft.sticky_piston","block.minecraft.slime_block","block.minecraft.honey_block","block.minecraft.observer","block.minecraft.hopper","block.minecraft.dispenser","block.minecraft.dropper","block.minecraft.lectern","block.minecraft.target","block.minecraft.lever","block.minecraft.lightning_rod","block.minecraft.exposed_lightning_rod","block.minecraft.weathered_lightning_rod","block.minecraft.oxidized_lightning_rod","block.minecraft.waxed_lightning_rod","block.minecraft.waxed_exposed_lightning_rod","block.minecraft.waxed_weathered_lightning_rod","block.minecraft.waxed_oxidized_lightning_rod","block.minecraft.daylight_detector","block.minecraft.sculk_sensor","block.minecraft.calibrated_sculk_sensor","block.minecraft.tripwire_hook","block.minecraft.trapped_chest","block.minecraft.tnt","block.minecraft.redstone_lamp","block.minecraft.note_block","block.minecraft.stone_button","block.minecraft.polished_blackstone_button","block.minecraft.oak_button","block.minecraft.spruce_button","block.minecraft.birch_button","block.minecraft.jungle_button","block.minecraft.acacia_button","block.minecraft.cherry_button","block.minecraft.dark_oak_button","block.minecraft.pale_oak_button","block.minecraft.mangrove_button","block.minecraft.bamboo_button","block.minecraft.crimson_button","block.minecraft.warped_button","block.minecraft.stone_pressure_plate","block.minecraft.polished_blackstone_pressure_plate","block.minecraft.light_weighted_pressure_plate","block.minecraft.heavy_weighted_pressure_plate","block.minecraft.oak_pressure_plate","block.minecraft.spruce_pressure_plate","block.minecraft.birch_pressure_plate","block.minecraft.jungle_pressure_plate","block.minecraft.acacia_pressure_plate","block.minecraft.cherry_pressure_plate","block.minecraft.dark_oak_pressure_plate","block.minecraft.pale_oak_pressure_plate","block.minecraft.mangrove_pressure_plate","block.minecraft.bamboo_pressure_plate","block.minecraft.crimson_pressure_plate","block.minecraft.warped_pressure_plate","block.minecraft.iron_door","block.minecraft.oak_door","block.minecraft.spruce_door","block.minecraft.birch_door","block.minecraft.jungle_door","block.minecraft.acacia_door","block.minecraft.cherry_door","block.minecraft.dark_oak_door","block.minecraft.pale_oak_door","block.minecraft.mangrove_door","block.minecraft.bamboo_door","block.minecraft.crimson_door","block.minecraft.warped_door","block.minecraft.copper_door","block.minecraft.exposed_copper_door","block.minecraft.weathered_copper_door","block.minecraft.oxidized_copper_door","block.minecraft.waxed_copper_door","block.minecraft.waxed_exposed_copper_door","block.minecraft.waxed_weathered_copper_door","block.minecraft.waxed_oxidized_copper_door","block.minecraft.iron_trapdoor","block.minecraft.oak_trapdoor","block.minecraft.spruce_trapdoor","block.minecraft.birch_trapdoor","block.minecraft.jungle_trapdoor","block.minecraft.acacia_trapdoor","block.minecraft.cherry_trapdoor","block.minecraft.dark_oak_trapdoor","block.minecraft.pale_oak_trapdoor","block.minecraft.mangrove_trapdoor","block.minecraft.bamboo_trapdoor","block.minecraft.crimson_trapdoor","block.minecraft.warped_trapdoor","block.minecraft.copper_trapdoor","block.minecraft.exposed_copper_trapdoor","block.minecraft.weathered_copper_trapdoor","block.minecraft.oxidized_copper_trapdoor","block.minecraft.waxed_copper_trapdoor","block.minecraft.waxed_exposed_copper_trapdoor","block.minecraft.waxed_weathered_copper_trapdoor","block.minecraft.waxed_oxidized_copper_trapdoor","block.minecraft.oak_fence_gate","block.minecraft.spruce_fence_gate","block.minecraft.birch_fence_gate","block.minecraft.jungle_fence_gate","block.minecraft.acacia_fence_gate","block.minecraft.cherry_fence_gate","block.minecraft.dark_oak_fence_gate","block.minecraft.pale_oak_fence_gate","block.minecraft.mangrove_fence_gate","block.minecraft.bamboo_fence_gate","block.minecraft.crimson_fence_gate","block.minecraft.warped_fence_gate","block.minecraft.powered_rail","block.minecraft.detector_rail","block.minecraft.rail","block.minecraft.activator_rail","item.minecraft.saddle","item.minecraft.white_harness","item.minecraft.orange_harness","item.minecraft.magenta_harness","item.minecraft.light_blue_harness","item.minecraft.yellow_harness","item.minecraft.lime_harness","item.minecraft.pink_harness","item.minecraft.gray_harness","item.minecraft.light_gray_harness","item.minecraft.cyan_harness","item.minecraft.purple_harness","item.minecraft.blue_harness","item.minecraft.brown_harness","item.minecraft.green_harness","item.minecraft.red_harness","item.minecraft.black_harness","item.minecraft.minecart","item.minecraft.chest_minecart","item.minecraft.furnace_minecart","item.minecraft.tnt_minecart","item.minecraft.hopper_minecart","item.minecraft.carrot_on_a_stick","item.minecraft.warped_fungus_on_a_stick","item.minecraft.phantom_membrane","item.minecraft.elytra","item.minecraft.oak_boat","item.minecraft.oak_chest_boat","item.minecraft.spruce_boat","item.minecraft.spruce_chest_boat","item.minecraft.birch_boat","item.minecraft.birch_chest_boat","item.minecraft.jungle_boat","item.minecraft.jungle_chest_boat","item.minecraft.acacia_boat","item.minecraft.acacia_chest_boat","item.minecraft.cherry_boat","item.minecraft.cherry_chest_boat","item.minecraft.dark_oak_boat","item.minecraft.dark_oak_chest_boat","item.minecraft.pale_oak_boat","item.minecraft.pale_oak_chest_boat","item.minecraft.mangrove_boat","item.minecraft.mangrove_chest_boat","item.minecraft.bamboo_raft","item.minecraft.bamboo_chest_raft","block.minecraft.structure_block","block.minecraft.jigsaw","block.minecraft.test_block","block.minecraft.test_instance_block","item.minecraft.turtle_helmet","item.minecraft.turtle_scute","item.minecraft.armadillo_scute","item.minecraft.wolf_armor","item.minecraft.flint_and_steel","item.minecraft.bowl","item.minecraft.apple","item.minecraft.bow","item.minecraft.arrow","item.minecraft.coal","item.minecraft.charcoal","item.minecraft.diamond","item.minecraft.emerald","item.minecraft.lapis_lazuli","item.minecraft.quartz","item.minecraft.amethyst_shard","item.minecraft.raw_iron","item.minecraft.iron_ingot","item.minecraft.raw_copper","item.minecraft.copper_ingot","item.minecraft.raw_gold","item.minecraft.gold_ingot","item.minecraft.netherite_ingot","item.minecraft.netherite_scrap","item.minecraft.wooden_sword","item.minecraft.wooden_shovel","item.minecraft.wooden_pickaxe","item.minecraft.wooden_axe","item.minecraft.wooden_hoe","item.minecraft.copper_sword","item.minecraft.copper_shovel","item.minecraft.copper_pickaxe","item.minecraft.copper_axe","item.minecraft.copper_hoe","item.minecraft.stone_sword","item.minecraft.stone_shovel","item.minecraft.stone_pickaxe","item.minecraft.stone_axe","item.minecraft.stone_hoe","item.minecraft.golden_sword","item.minecraft.golden_shovel","item.minecraft.golden_pickaxe","item.minecraft.golden_axe","item.minecraft.golden_hoe","item.minecraft.iron_sword","item.minecraft.iron_shovel","item.minecraft.iron_pickaxe","item.minecraft.iron_axe","item.minecraft.iron_hoe","item.minecraft.diamond_sword","item.minecraft.diamond_shovel","item.minecraft.diamond_pickaxe","item.minecraft.diamond_axe","item.minecraft.diamond_hoe","item.minecraft.netherite_sword","item.minecraft.netherite_shovel","item.minecraft.netherite_pickaxe","item.minecraft.netherite_axe","item.minecraft.netherite_hoe","item.minecraft.stick","item.minecraft.mushroom_stew","item.minecraft.string","item.minecraft.feather","item.minecraft.gunpowder","item.minecraft.wheat_seeds","item.minecraft.wheat","item.minecraft.bread","item.minecraft.leather_helmet","item.minecraft.leather_chestplate","item.minecraft.leather_leggings","item.minecraft.leather_boots","item.minecraft.copper_helmet","item.minecraft.copper_chestplate","item.minecraft.copper_leggings","item.minecraft.copper_boots","item.minecraft.chainmail_helmet","item.minecraft.chainmail_chestplate","item.minecraft.chainmail_leggings","item.minecraft.chainmail_boots","item.minecraft.iron_helmet","item.minecraft.iron_chestplate","item.minecraft.iron_leggings","item.minecraft.iron_boots","item.minecraft.diamond_helmet","item.minecraft.diamond_chestplate","item.minecraft.diamond_leggings","item.minecraft.diamond_boots","item.minecraft.golden_helmet","item.minecraft.golden_chestplate","item.minecraft.golden_leggings","item.minecraft.golden_boots","item.minecraft.netherite_helmet","item.minecraft.netherite_chestplate","item.minecraft.netherite_leggings","item.minecraft.netherite_boots","item.minecraft.flint","item.minecraft.porkchop","item.minecraft.cooked_porkchop","item.minecraft.painting","item.minecraft.golden_apple","item.minecraft.enchanted_golden_apple","block.minecraft.oak_sign","block.minecraft.spruce_sign","block.minecraft.birch_sign","block.minecraft.jungle_sign","block.minecraft.acacia_sign","block.minecraft.cherry_sign","block.minecraft.dark_oak_sign","block.minecraft.pale_oak_sign","block.minecraft.mangrove_sign","block.minecraft.bamboo_sign","block.minecraft.crimson_sign","block.minecraft.warped_sign","block.minecraft.oak_hanging_sign","block.minecraft.spruce_hanging_sign","block.minecraft.birch_hanging_sign","block.minecraft.jungle_hanging_sign","block.minecraft.acacia_hanging_sign","block.minecraft.cherry_hanging_sign","block.minecraft.dark_oak_hanging_sign","block.minecraft.pale_oak_hanging_sign","block.minecraft.mangrove_hanging_sign","block.minecraft.bamboo_hanging_sign","block.minecraft.crimson_hanging_sign","block.minecraft.warped_hanging_sign","item.minecraft.bucket","item.minecraft.water_bucket","item.minecraft.lava_bucket","item.minecraft.powder_snow_bucket","item.minecraft.snowball","item.minecraft.leather","item.minecraft.milk_bucket","item.minecraft.pufferfish_bucket","item.minecraft.salmon_bucket","item.minecraft.cod_bucket","item.minecraft.tropical_fish_bucket","item.minecraft.axolotl_bucket","item.minecraft.tadpole_bucket","item.minecraft.brick","item.minecraft.clay_ball","block.minecraft.dried_kelp_block","item.minecraft.paper","item.minecraft.book","item.minecraft.slime_ball","item.minecraft.egg","item.minecraft.blue_egg","item.minecraft.brown_egg","item.minecraft.compass","item.minecraft.recovery_compass","item.minecraft.bundle","item.minecraft.white_bundle","item.minecraft.orange_bundle","item.minecraft.magenta_bundle","item.minecraft.light_blue_bundle","item.minecraft.yellow_bundle","item.minecraft.lime_bundle","item.minecraft.pink_bundle","item.minecraft.gray_bundle","item.minecraft.light_gray_bundle","item.minecraft.cyan_bundle","item.minecraft.purple_bundle","item.minecraft.blue_bundle","item.minecraft.brown_bundle","item.minecraft.green_bundle","item.minecraft.red_bundle","item.minecraft.black_bundle","item.minecraft.fishing_rod","item.minecraft.clock","item.minecraft.spyglass","item.minecraft.glowstone_dust","item.minecraft.cod","item.minecraft.salmon","item.minecraft.tropical_fish","item.minecraft.pufferfish","item.minecraft.cooked_cod","item.minecraft.cooked_salmon","item.minecraft.ink_sac","item.minecraft.glow_ink_sac","item.minecraft.cocoa_beans","item.minecraft.white_dye","item.minecraft.orange_dye","item.minecraft.magenta_dye","item.minecraft.light_blue_dye","item.minecraft.yellow_dye","item.minecraft.lime_dye","item.minecraft.pink_dye","item.minecraft.gray_dye","item.minecraft.light_gray_dye","item.minecraft.cyan_dye","item.minecraft.purple_dye","item.minecraft.blue_dye","item.minecraft.brown_dye","item.minecraft.green_dye","item.minecraft.red_dye","item.minecraft.black_dye","item.minecraft.bone_meal","item.minecraft.bone","item.minecraft.sugar","block.minecraft.cake","block.minecraft.white_bed","block.minecraft.orange_bed","block.minecraft.magenta_bed","block.minecraft.light_blue_bed","block.minecraft.yellow_bed","block.minecraft.lime_bed","block.minecraft.pink_bed","block.minecraft.gray_bed","block.minecraft.light_gray_bed","block.minecraft.cyan_bed","block.minecraft.purple_bed","block.minecraft.blue_bed","block.minecraft.brown_bed","block.minecraft.green_bed","block.minecraft.red_bed","block.minecraft.black_bed","item.minecraft.cookie","block.minecraft.crafter","item.minecraft.filled_map","item.minecraft.shears","item.minecraft.melon_slice","item.minecraft.dried_kelp","item.minecraft.pumpkin_seeds","item.minecraft.melon_seeds","item.minecraft.beef","item.minecraft.cooked_beef","item.minecraft.chicken","item.minecraft.cooked_chicken","item.minecraft.rotten_flesh","item.minecraft.ender_pearl","item.minecraft.blaze_rod","item.minecraft.ghast_tear","item.minecraft.gold_nugget","item.minecraft.nether_wart","item.minecraft.glass_bottle","item.minecraft.potion","item.minecraft.spider_eye","item.minecraft.fermented_spider_eye","item.minecraft.blaze_powder","item.minecraft.magma_cream","block.minecraft.brewing_stand","block.minecraft.cauldron","item.minecraft.ender_eye","item.minecraft.glistering_melon_slice","item.minecraft.armadillo_spawn_egg","item.minecraft.allay_spawn_egg","item.minecraft.axolotl_spawn_egg","item.minecraft.bat_spawn_egg","item.minecraft.bee_spawn_egg","item.minecraft.blaze_spawn_egg","item.minecraft.bogged_spawn_egg","item.minecraft.breeze_spawn_egg","item.minecraft.cat_spawn_egg","item.minecraft.camel_spawn_egg","item.minecraft.camel_husk_spawn_egg","item.minecraft.cave_spider_spawn_egg","item.minecraft.chicken_spawn_egg","item.minecraft.cod_spawn_egg","item.minecraft.copper_golem_spawn_egg","item.minecraft.cow_spawn_egg","item.minecraft.creeper_spawn_egg","item.minecraft.dolphin_spawn_egg","item.minecraft.donkey_spawn_egg","item.minecraft.drowned_spawn_egg","item.minecraft.elder_guardian_spawn_egg","item.minecraft.ender_dragon_spawn_egg","item.minecraft.enderman_spawn_egg","item.minecraft.endermite_spawn_egg","item.minecraft.evoker_spawn_egg","item.minecraft.fox_spawn_egg","item.minecraft.frog_spawn_egg","item.minecraft.ghast_spawn_egg","item.minecraft.happy_ghast_spawn_egg","item.minecraft.glow_squid_spawn_egg","item.minecraft.goat_spawn_egg","item.minecraft.guardian_spawn_egg","item.minecraft.hoglin_spawn_egg","item.minecraft.horse_spawn_egg","item.minecraft.husk_spawn_egg","item.minecraft.iron_golem_spawn_egg","item.minecraft.llama_spawn_egg","item.minecraft.magma_cube_spawn_egg","item.minecraft.mooshroom_spawn_egg","item.minecraft.mule_spawn_egg","item.minecraft.nautilus_spawn_egg","item.minecraft.ocelot_spawn_egg","item.minecraft.panda_spawn_egg","item.minecraft.parched_spawn_egg","item.minecraft.parrot_spawn_egg","item.minecraft.phantom_spawn_egg","item.minecraft.pig_spawn_egg","item.minecraft.piglin_spawn_egg","item.minecraft.piglin_brute_spawn_egg","item.minecraft.pillager_spawn_egg","item.minecraft.polar_bear_spawn_egg","item.minecraft.pufferfish_spawn_egg","item.minecraft.rabbit_spawn_egg","item.minecraft.ravager_spawn_egg","item.minecraft.salmon_spawn_egg","item.minecraft.sheep_spawn_egg","item.minecraft.shulker_spawn_egg","item.minecraft.silverfish_spawn_egg","item.minecraft.skeleton_spawn_egg","item.minecraft.skeleton_horse_spawn_egg","item.minecraft.slime_spawn_egg","item.minecraft.sniffer_spawn_egg","item.minecraft.snow_golem_spawn_egg","item.minecraft.spider_spawn_egg","item.minecraft.squid_spawn_egg","item.minecraft.stray_spawn_egg","item.minecraft.strider_spawn_egg","item.minecraft.tadpole_spawn_egg","item.minecraft.trader_llama_spawn_egg","item.minecraft.tropical_fish_spawn_egg","item.minecraft.turtle_spawn_egg","item.minecraft.vex_spawn_egg","item.minecraft.villager_spawn_egg","item.minecraft.vindicator_spawn_egg","item.minecraft.wandering_trader_spawn_egg","item.minecraft.warden_spawn_egg","item.minecraft.witch_spawn_egg","item.minecraft.wither_spawn_egg","item.minecraft.wither_skeleton_spawn_egg","item.minecraft.wolf_spawn_egg","item.minecraft.zoglin_spawn_egg","item.minecraft.creaking_spawn_egg","item.minecraft.zombie_spawn_egg","item.minecraft.zombie_horse_spawn_egg","item.minecraft.zombie_villager_spawn_egg","item.minecraft.zombified_piglin_spawn_egg","item.minecraft.zombie_nautilus_spawn_egg","item.minecraft.experience_bottle","item.minecraft.fire_charge","item.minecraft.wind_charge","item.minecraft.writable_book","item.minecraft.written_book","item.minecraft.breeze_rod","item.minecraft.mace","item.minecraft.item_frame","item.minecraft.glow_item_frame","block.minecraft.flower_pot","item.minecraft.carrot","item.minecraft.potato","item.minecraft.baked_potato","item.minecraft.poisonous_potato","item.minecraft.map","item.minecraft.golden_carrot","block.minecraft.skeleton_skull","block.minecraft.wither_skeleton_skull","block.minecraft.player_head","block.minecraft.zombie_head","block.minecraft.creeper_head","block.minecraft.dragon_head","block.minecraft.piglin_head","item.minecraft.nether_star","item.minecraft.pumpkin_pie","item.minecraft.firework_rocket","item.minecraft.firework_star","item.minecraft.enchanted_book","item.minecraft.nether_brick","item.minecraft.resin_brick","item.minecraft.prismarine_shard","item.minecraft.prismarine_crystals","item.minecraft.rabbit","item.minecraft.cooked_rabbit","item.minecraft.rabbit_stew","item.minecraft.rabbit_foot","item.minecraft.rabbit_hide","item.minecraft.armor_stand","item.minecraft.copper_horse_armor","item.minecraft.iron_horse_armor","item.minecraft.golden_horse_armor","item.minecraft.diamond_horse_armor","item.minecraft.leather_horse_armor","item.minecraft.lead","item.minecraft.name_tag","item.minecraft.command_block_minecart","item.minecraft.mutton","item.minecraft.cooked_mutton","block.minecraft.white_banner","block.minecraft.orange_banner","block.minecraft.magenta_banner","block.minecraft.light_blue_banner","block.minecraft.yellow_banner","block.minecraft.lime_banner","block.minecraft.pink_banner","block.minecraft.gray_banner","block.minecraft.light_gray_banner","block.minecraft.cyan_banner","block.minecraft.purple_banner","block.minecraft.blue_banner","block.minecraft.brown_banner","block.minecraft.green_banner","block.minecraft.red_banner","block.minecraft.black_banner","item.minecraft.end_crystal","item.minecraft.chorus_fruit","item.minecraft.popped_chorus_fruit","item.minecraft.torchflower_seeds","item.minecraft.pitcher_pod","item.minecraft.beetroot","item.minecraft.beetroot_seeds","item.minecraft.beetroot_soup","item.minecraft.dragon_breath","item.minecraft.splash_potion","item.minecraft.spectral_arrow","item.minecraft.tipped_arrow","item.minecraft.lingering_potion","item.minecraft.shield","item.minecraft.wooden_spear","item.minecraft.stone_spear","item.minecraft.copper_spear","item.minecraft.iron_spear","item.minecraft.golden_spear","item.minecraft.diamond_spear","item.minecraft.netherite_spear","item.minecraft.totem_of_undying","item.minecraft.shulker_shell","item.minecraft.iron_nugget","item.minecraft.copper_nugget","item.minecraft.knowledge_book","item.minecraft.debug_stick","item.minecraft.music_disc_13","item.minecraft.music_disc_cat","item.minecraft.music_disc_blocks","item.minecraft.music_disc_chirp","item.minecraft.music_disc_creator","item.minecraft.music_disc_creator_music_box","item.minecraft.music_disc_far","item.minecraft.music_disc_lava_chicken","item.minecraft.music_disc_mall","item.minecraft.music_disc_mellohi","item.minecraft.music_disc_stal","item.minecraft.music_disc_strad","item.minecraft.music_disc_ward","item.minecraft.music_disc_11","item.minecraft.music_disc_wait","item.minecraft.music_disc_otherside","item.minecraft.music_disc_relic","item.minecraft.music_disc_5","item.minecraft.music_disc_pigstep","item.minecraft.music_disc_precipice","item.minecraft.music_disc_tears","item.minecraft.disc_fragment_5","item.minecraft.trident","item.minecraft.nautilus_shell","item.minecraft.iron_nautilus_armor","item.minecraft.golden_nautilus_armor","item.minecraft.diamond_nautilus_armor","item.minecraft.netherite_nautilus_armor","item.minecraft.copper_nautilus_armor","item.minecraft.heart_of_the_sea","item.minecraft.crossbow","item.minecraft.suspicious_stew","block.minecraft.loom","item.minecraft.flower_banner_pattern","item.minecraft.creeper_banner_pattern","item.minecraft.skull_banner_pattern","item.minecraft.mojang_banner_pattern","item.minecraft.globe_banner_pattern","item.minecraft.piglin_banner_pattern","item.minecraft.flow_banner_pattern","item.minecraft.guster_banner_pattern","item.minecraft.field_masoned_banner_pattern","item.minecraft.bordure_indented_banner_pattern","item.minecraft.goat_horn","block.minecraft.composter","block.minecraft.barrel","block.minecraft.smoker","block.minecraft.blast_furnace","block.minecraft.cartography_table","block.minecraft.fletching_table","block.minecraft.grindstone","block.minecraft.smithing_table","block.minecraft.stonecutter","block.minecraft.bell","block.minecraft.lantern","block.minecraft.soul_lantern","block.minecraft.copper_lantern","block.minecraft.exposed_copper_lantern","block.minecraft.weathered_copper_lantern","block.minecraft.oxidized_copper_lantern","block.minecraft.waxed_copper_lantern","block.minecraft.waxed_exposed_copper_lantern","block.minecraft.waxed_weathered_copper_lantern","block.minecraft.waxed_oxidized_copper_lantern","item.minecraft.sweet_berries","item.minecraft.glow_berries","block.minecraft.campfire","block.minecraft.soul_campfire","block.minecraft.shroomlight","item.minecraft.honeycomb","block.minecraft.bee_nest","block.minecraft.beehive","item.minecraft.honey_bottle","block.minecraft.honeycomb_block","block.minecraft.lodestone","block.minecraft.crying_obsidian","block.minecraft.blackstone","block.minecraft.blackstone_slab","block.minecraft.blackstone_stairs","block.minecraft.gilded_blackstone","block.minecraft.polished_blackstone","block.minecraft.polished_blackstone_slab","block.minecraft.polished_blackstone_stairs","block.minecraft.chiseled_polished_blackstone","block.minecraft.polished_blackstone_bricks","block.minecraft.polished_blackstone_brick_slab","block.minecraft.polished_blackstone_brick_stairs","block.minecraft.cracked_polished_blackstone_bricks","block.minecraft.respawn_anchor","block.minecraft.candle","block.minecraft.white_candle","block.minecraft.orange_candle","block.minecraft.magenta_candle","block.minecraft.light_blue_candle","block.minecraft.yellow_candle","block.minecraft.lime_candle","block.minecraft.pink_candle","block.minecraft.gray_candle","block.minecraft.light_gray_candle","block.minecraft.cyan_candle","block.minecraft.purple_candle","block.minecraft.blue_candle","block.minecraft.brown_candle","block.minecraft.green_candle","block.minecraft.red_candle","block.minecraft.black_candle","block.minecraft.small_amethyst_bud","block.minecraft.medium_amethyst_bud","block.minecraft.large_amethyst_bud","block.minecraft.amethyst_cluster","block.minecraft.pointed_dripstone","block.minecraft.ochre_froglight","block.minecraft.verdant_froglight","block.minecraft.pearlescent_froglight","block.minecraft.frogspawn","item.minecraft.echo_shard","item.minecraft.brush","item.minecraft.netherite_upgrade_smithing_template","item.minecraft.sentry_armor_trim_smithing_template","item.minecraft.dune_armor_trim_smithing_template","item.minecraft.coast_armor_trim_smithing_template","item.minecraft.wild_armor_trim_smithing_template","item.minecraft.ward_armor_trim_smithing_template","item.minecraft.eye_armor_trim_smithing_template","item.minecraft.vex_armor_trim_smithing_template","item.minecraft.tide_armor_trim_smithing_template","item.minecraft.snout_armor_trim_smithing_template","item.minecraft.rib_armor_trim_smithing_template","item.minecraft.spire_armor_trim_smithing_template","item.minecraft.wayfinder_armor_trim_smithing_template","item.minecraft.shaper_armor_trim_smithing_template","item.minecraft.silence_armor_trim_smithing_template","item.minecraft.raiser_armor_trim_smithing_template","item.minecraft.host_armor_trim_smithing_template","item.minecraft.flow_armor_trim_smithing_template","item.minecraft.bolt_armor_trim_smithing_template","item.minecraft.angler_pottery_sherd","item.minecraft.archer_pottery_sherd","item.minecraft.arms_up_pottery_sherd","item.minecraft.blade_pottery_sherd","item.minecraft.brewer_pottery_sherd","item.minecraft.burn_pottery_sherd","item.minecraft.danger_pottery_sherd","item.minecraft.explorer_pottery_sherd","item.minecraft.flow_pottery_sherd","item.minecraft.friend_pottery_sherd","item.minecraft.guster_pottery_sherd","item.minecraft.heart_pottery_sherd","item.minecraft.heartbreak_pottery_sherd","item.minecraft.howl_pottery_sherd","item.minecraft.miner_pottery_sherd","item.minecraft.mourner_pottery_sherd","item.minecraft.plenty_pottery_sherd","item.minecraft.prize_pottery_sherd","item.minecraft.scrape_pottery_sherd","item.minecraft.sheaf_pottery_sherd","item.minecraft.shelter_pottery_sherd","item.minecraft.skull_pottery_sherd","item.minecraft.snort_pottery_sherd","block.minecraft.copper_grate","block.minecraft.exposed_copper_grate","block.minecraft.weathered_copper_grate","block.minecraft.oxidized_copper_grate","block.minecraft.waxed_copper_grate","block.minecraft.waxed_exposed_copper_grate","block.minecraft.waxed_weathered_copper_grate","block.minecraft.waxed_oxidized_copper_grate","block.minecraft.copper_bulb","block.minecraft.exposed_copper_bulb","block.minecraft.weathered_copper_bulb","block.minecraft.oxidized_copper_bulb","block.minecraft.waxed_copper_bulb","block.minecraft.waxed_exposed_copper_bulb","block.minecraft.waxed_weathered_copper_bulb","block.minecraft.waxed_oxidized_copper_bulb","block.minecraft.copper_chest","block.minecraft.exposed_copper_chest","block.minecraft.weathered_copper_chest","block.minecraft.oxidized_copper_chest","block.minecraft.waxed_copper_chest","block.minecraft.waxed_exposed_copper_chest","block.minecraft.waxed_weathered_copper_chest","block.minecraft.waxed_oxidized_copper_chest","block.minecraft.copper_golem_statue","block.minecraft.exposed_copper_golem_statue","block.minecraft.weathered_copper_golem_statue","block.minecraft.oxidized_copper_golem_statue","block.minecraft.waxed_copper_golem_statue","block.minecraft.waxed_exposed_copper_golem_statue","block.minecraft.waxed_weathered_copper_golem_statue","block.minecraft.waxed_oxidized_copper_golem_statue","block.minecraft.trial_spawner","item.minecraft.trial_key","item.minecraft.ominous_trial_key","block.minecraft.vault","item.minecraft.ominous_bottle"]; +static ITEM_NAME_VALUES: [&str; 1505] = ["block.minecraft.air","block.minecraft.stone","block.minecraft.granite","block.minecraft.polished_granite","block.minecraft.diorite","block.minecraft.polished_diorite","block.minecraft.andesite","block.minecraft.polished_andesite","block.minecraft.deepslate","block.minecraft.cobbled_deepslate","block.minecraft.polished_deepslate","block.minecraft.calcite","block.minecraft.tuff","block.minecraft.tuff_slab","block.minecraft.tuff_stairs","block.minecraft.tuff_wall","block.minecraft.chiseled_tuff","block.minecraft.polished_tuff","block.minecraft.polished_tuff_slab","block.minecraft.polished_tuff_stairs","block.minecraft.polished_tuff_wall","block.minecraft.tuff_bricks","block.minecraft.tuff_brick_slab","block.minecraft.tuff_brick_stairs","block.minecraft.tuff_brick_wall","block.minecraft.chiseled_tuff_bricks","block.minecraft.dripstone_block","block.minecraft.grass_block","block.minecraft.dirt","block.minecraft.coarse_dirt","block.minecraft.podzol","block.minecraft.rooted_dirt","block.minecraft.mud","block.minecraft.crimson_nylium","block.minecraft.warped_nylium","block.minecraft.cobblestone","block.minecraft.oak_planks","block.minecraft.spruce_planks","block.minecraft.birch_planks","block.minecraft.jungle_planks","block.minecraft.acacia_planks","block.minecraft.cherry_planks","block.minecraft.dark_oak_planks","block.minecraft.pale_oak_planks","block.minecraft.mangrove_planks","block.minecraft.bamboo_planks","block.minecraft.crimson_planks","block.minecraft.warped_planks","block.minecraft.bamboo_mosaic","block.minecraft.oak_sapling","block.minecraft.spruce_sapling","block.minecraft.birch_sapling","block.minecraft.jungle_sapling","block.minecraft.acacia_sapling","block.minecraft.cherry_sapling","block.minecraft.dark_oak_sapling","block.minecraft.pale_oak_sapling","block.minecraft.mangrove_propagule","block.minecraft.bedrock","block.minecraft.sand","block.minecraft.suspicious_sand","block.minecraft.suspicious_gravel","block.minecraft.red_sand","block.minecraft.gravel","block.minecraft.coal_ore","block.minecraft.deepslate_coal_ore","block.minecraft.iron_ore","block.minecraft.deepslate_iron_ore","block.minecraft.copper_ore","block.minecraft.deepslate_copper_ore","block.minecraft.gold_ore","block.minecraft.deepslate_gold_ore","block.minecraft.redstone_ore","block.minecraft.deepslate_redstone_ore","block.minecraft.emerald_ore","block.minecraft.deepslate_emerald_ore","block.minecraft.lapis_ore","block.minecraft.deepslate_lapis_ore","block.minecraft.diamond_ore","block.minecraft.deepslate_diamond_ore","block.minecraft.nether_gold_ore","block.minecraft.nether_quartz_ore","block.minecraft.ancient_debris","block.minecraft.coal_block","block.minecraft.raw_iron_block","block.minecraft.raw_copper_block","block.minecraft.raw_gold_block","block.minecraft.heavy_core","block.minecraft.amethyst_block","block.minecraft.budding_amethyst","block.minecraft.iron_block","block.minecraft.copper_block","block.minecraft.gold_block","block.minecraft.diamond_block","block.minecraft.netherite_block","block.minecraft.exposed_copper","block.minecraft.weathered_copper","block.minecraft.oxidized_copper","block.minecraft.chiseled_copper","block.minecraft.exposed_chiseled_copper","block.minecraft.weathered_chiseled_copper","block.minecraft.oxidized_chiseled_copper","block.minecraft.cut_copper","block.minecraft.exposed_cut_copper","block.minecraft.weathered_cut_copper","block.minecraft.oxidized_cut_copper","block.minecraft.cut_copper_stairs","block.minecraft.exposed_cut_copper_stairs","block.minecraft.weathered_cut_copper_stairs","block.minecraft.oxidized_cut_copper_stairs","block.minecraft.cut_copper_slab","block.minecraft.exposed_cut_copper_slab","block.minecraft.weathered_cut_copper_slab","block.minecraft.oxidized_cut_copper_slab","block.minecraft.waxed_copper_block","block.minecraft.waxed_exposed_copper","block.minecraft.waxed_weathered_copper","block.minecraft.waxed_oxidized_copper","block.minecraft.waxed_chiseled_copper","block.minecraft.waxed_exposed_chiseled_copper","block.minecraft.waxed_weathered_chiseled_copper","block.minecraft.waxed_oxidized_chiseled_copper","block.minecraft.waxed_cut_copper","block.minecraft.waxed_exposed_cut_copper","block.minecraft.waxed_weathered_cut_copper","block.minecraft.waxed_oxidized_cut_copper","block.minecraft.waxed_cut_copper_stairs","block.minecraft.waxed_exposed_cut_copper_stairs","block.minecraft.waxed_weathered_cut_copper_stairs","block.minecraft.waxed_oxidized_cut_copper_stairs","block.minecraft.waxed_cut_copper_slab","block.minecraft.waxed_exposed_cut_copper_slab","block.minecraft.waxed_weathered_cut_copper_slab","block.minecraft.waxed_oxidized_cut_copper_slab","block.minecraft.oak_log","block.minecraft.spruce_log","block.minecraft.birch_log","block.minecraft.jungle_log","block.minecraft.acacia_log","block.minecraft.cherry_log","block.minecraft.pale_oak_log","block.minecraft.dark_oak_log","block.minecraft.mangrove_log","block.minecraft.mangrove_roots","block.minecraft.muddy_mangrove_roots","block.minecraft.crimson_stem","block.minecraft.warped_stem","block.minecraft.bamboo_block","block.minecraft.stripped_oak_log","block.minecraft.stripped_spruce_log","block.minecraft.stripped_birch_log","block.minecraft.stripped_jungle_log","block.minecraft.stripped_acacia_log","block.minecraft.stripped_cherry_log","block.minecraft.stripped_dark_oak_log","block.minecraft.stripped_pale_oak_log","block.minecraft.stripped_mangrove_log","block.minecraft.stripped_crimson_stem","block.minecraft.stripped_warped_stem","block.minecraft.stripped_oak_wood","block.minecraft.stripped_spruce_wood","block.minecraft.stripped_birch_wood","block.minecraft.stripped_jungle_wood","block.minecraft.stripped_acacia_wood","block.minecraft.stripped_cherry_wood","block.minecraft.stripped_dark_oak_wood","block.minecraft.stripped_pale_oak_wood","block.minecraft.stripped_mangrove_wood","block.minecraft.stripped_crimson_hyphae","block.minecraft.stripped_warped_hyphae","block.minecraft.stripped_bamboo_block","block.minecraft.oak_wood","block.minecraft.spruce_wood","block.minecraft.birch_wood","block.minecraft.jungle_wood","block.minecraft.acacia_wood","block.minecraft.cherry_wood","block.minecraft.pale_oak_wood","block.minecraft.dark_oak_wood","block.minecraft.mangrove_wood","block.minecraft.crimson_hyphae","block.minecraft.warped_hyphae","block.minecraft.oak_leaves","block.minecraft.spruce_leaves","block.minecraft.birch_leaves","block.minecraft.jungle_leaves","block.minecraft.acacia_leaves","block.minecraft.cherry_leaves","block.minecraft.dark_oak_leaves","block.minecraft.pale_oak_leaves","block.minecraft.mangrove_leaves","block.minecraft.azalea_leaves","block.minecraft.flowering_azalea_leaves","block.minecraft.sponge","block.minecraft.wet_sponge","block.minecraft.glass","block.minecraft.tinted_glass","block.minecraft.lapis_block","block.minecraft.sandstone","block.minecraft.chiseled_sandstone","block.minecraft.cut_sandstone","block.minecraft.cobweb","block.minecraft.short_grass","block.minecraft.fern","block.minecraft.bush","block.minecraft.azalea","block.minecraft.flowering_azalea","block.minecraft.dead_bush","block.minecraft.firefly_bush","block.minecraft.short_dry_grass","block.minecraft.tall_dry_grass","block.minecraft.seagrass","block.minecraft.sea_pickle","block.minecraft.white_wool","block.minecraft.orange_wool","block.minecraft.magenta_wool","block.minecraft.light_blue_wool","block.minecraft.yellow_wool","block.minecraft.lime_wool","block.minecraft.pink_wool","block.minecraft.gray_wool","block.minecraft.light_gray_wool","block.minecraft.cyan_wool","block.minecraft.purple_wool","block.minecraft.blue_wool","block.minecraft.brown_wool","block.minecraft.green_wool","block.minecraft.red_wool","block.minecraft.black_wool","block.minecraft.dandelion","block.minecraft.open_eyeblossom","block.minecraft.closed_eyeblossom","block.minecraft.poppy","block.minecraft.blue_orchid","block.minecraft.allium","block.minecraft.azure_bluet","block.minecraft.red_tulip","block.minecraft.orange_tulip","block.minecraft.white_tulip","block.minecraft.pink_tulip","block.minecraft.oxeye_daisy","block.minecraft.cornflower","block.minecraft.lily_of_the_valley","block.minecraft.wither_rose","block.minecraft.torchflower","block.minecraft.pitcher_plant","block.minecraft.spore_blossom","block.minecraft.brown_mushroom","block.minecraft.red_mushroom","block.minecraft.crimson_fungus","block.minecraft.warped_fungus","block.minecraft.crimson_roots","block.minecraft.warped_roots","block.minecraft.nether_sprouts","block.minecraft.weeping_vines","block.minecraft.twisting_vines","block.minecraft.sugar_cane","block.minecraft.kelp","block.minecraft.pink_petals","block.minecraft.wildflowers","block.minecraft.leaf_litter","block.minecraft.moss_carpet","block.minecraft.moss_block","block.minecraft.pale_moss_carpet","block.minecraft.pale_hanging_moss","block.minecraft.pale_moss_block","block.minecraft.hanging_roots","block.minecraft.big_dripleaf","block.minecraft.small_dripleaf","block.minecraft.bamboo","block.minecraft.oak_slab","block.minecraft.spruce_slab","block.minecraft.birch_slab","block.minecraft.jungle_slab","block.minecraft.acacia_slab","block.minecraft.cherry_slab","block.minecraft.dark_oak_slab","block.minecraft.pale_oak_slab","block.minecraft.mangrove_slab","block.minecraft.bamboo_slab","block.minecraft.bamboo_mosaic_slab","block.minecraft.crimson_slab","block.minecraft.warped_slab","block.minecraft.stone_slab","block.minecraft.smooth_stone_slab","block.minecraft.sandstone_slab","block.minecraft.cut_sandstone_slab","block.minecraft.petrified_oak_slab","block.minecraft.cobblestone_slab","block.minecraft.brick_slab","block.minecraft.stone_brick_slab","block.minecraft.mud_brick_slab","block.minecraft.nether_brick_slab","block.minecraft.quartz_slab","block.minecraft.red_sandstone_slab","block.minecraft.cut_red_sandstone_slab","block.minecraft.purpur_slab","block.minecraft.prismarine_slab","block.minecraft.prismarine_brick_slab","block.minecraft.dark_prismarine_slab","block.minecraft.smooth_quartz","block.minecraft.smooth_red_sandstone","block.minecraft.smooth_sandstone","block.minecraft.smooth_stone","block.minecraft.bricks","block.minecraft.acacia_shelf","block.minecraft.bamboo_shelf","block.minecraft.birch_shelf","block.minecraft.cherry_shelf","block.minecraft.crimson_shelf","block.minecraft.dark_oak_shelf","block.minecraft.jungle_shelf","block.minecraft.mangrove_shelf","block.minecraft.oak_shelf","block.minecraft.pale_oak_shelf","block.minecraft.spruce_shelf","block.minecraft.warped_shelf","block.minecraft.bookshelf","block.minecraft.chiseled_bookshelf","block.minecraft.decorated_pot","block.minecraft.mossy_cobblestone","block.minecraft.obsidian","block.minecraft.torch","block.minecraft.end_rod","block.minecraft.chorus_plant","block.minecraft.chorus_flower","block.minecraft.purpur_block","block.minecraft.purpur_pillar","block.minecraft.purpur_stairs","block.minecraft.spawner","block.minecraft.creaking_heart","block.minecraft.chest","block.minecraft.crafting_table","block.minecraft.farmland","block.minecraft.furnace","block.minecraft.ladder","block.minecraft.cobblestone_stairs","block.minecraft.snow","block.minecraft.ice","block.minecraft.snow_block","block.minecraft.cactus","block.minecraft.cactus_flower","block.minecraft.clay","block.minecraft.jukebox","block.minecraft.oak_fence","block.minecraft.spruce_fence","block.minecraft.birch_fence","block.minecraft.jungle_fence","block.minecraft.acacia_fence","block.minecraft.cherry_fence","block.minecraft.dark_oak_fence","block.minecraft.pale_oak_fence","block.minecraft.mangrove_fence","block.minecraft.bamboo_fence","block.minecraft.crimson_fence","block.minecraft.warped_fence","block.minecraft.pumpkin","block.minecraft.carved_pumpkin","block.minecraft.jack_o_lantern","block.minecraft.netherrack","block.minecraft.soul_sand","block.minecraft.soul_soil","block.minecraft.basalt","block.minecraft.polished_basalt","block.minecraft.smooth_basalt","block.minecraft.soul_torch","block.minecraft.copper_torch","block.minecraft.glowstone","block.minecraft.infested_stone","block.minecraft.infested_cobblestone","block.minecraft.infested_stone_bricks","block.minecraft.infested_mossy_stone_bricks","block.minecraft.infested_cracked_stone_bricks","block.minecraft.infested_chiseled_stone_bricks","block.minecraft.infested_deepslate","block.minecraft.stone_bricks","block.minecraft.mossy_stone_bricks","block.minecraft.cracked_stone_bricks","block.minecraft.chiseled_stone_bricks","block.minecraft.packed_mud","block.minecraft.mud_bricks","block.minecraft.deepslate_bricks","block.minecraft.cracked_deepslate_bricks","block.minecraft.deepslate_tiles","block.minecraft.cracked_deepslate_tiles","block.minecraft.chiseled_deepslate","block.minecraft.reinforced_deepslate","block.minecraft.brown_mushroom_block","block.minecraft.red_mushroom_block","block.minecraft.mushroom_stem","block.minecraft.iron_bars","block.minecraft.copper_bars","block.minecraft.exposed_copper_bars","block.minecraft.weathered_copper_bars","block.minecraft.oxidized_copper_bars","block.minecraft.waxed_copper_bars","block.minecraft.waxed_exposed_copper_bars","block.minecraft.waxed_weathered_copper_bars","block.minecraft.waxed_oxidized_copper_bars","block.minecraft.iron_chain","block.minecraft.copper_chain","block.minecraft.exposed_copper_chain","block.minecraft.weathered_copper_chain","block.minecraft.oxidized_copper_chain","block.minecraft.waxed_copper_chain","block.minecraft.waxed_exposed_copper_chain","block.minecraft.waxed_weathered_copper_chain","block.minecraft.waxed_oxidized_copper_chain","block.minecraft.glass_pane","block.minecraft.melon","block.minecraft.vine","block.minecraft.glow_lichen","item.minecraft.resin_clump","block.minecraft.resin_block","block.minecraft.resin_bricks","block.minecraft.resin_brick_stairs","block.minecraft.resin_brick_slab","block.minecraft.resin_brick_wall","block.minecraft.chiseled_resin_bricks","block.minecraft.brick_stairs","block.minecraft.stone_brick_stairs","block.minecraft.mud_brick_stairs","block.minecraft.mycelium","block.minecraft.lily_pad","block.minecraft.nether_bricks","block.minecraft.cracked_nether_bricks","block.minecraft.chiseled_nether_bricks","block.minecraft.nether_brick_fence","block.minecraft.nether_brick_stairs","block.minecraft.sculk","block.minecraft.sculk_vein","block.minecraft.sculk_catalyst","block.minecraft.sculk_shrieker","block.minecraft.enchanting_table","block.minecraft.end_portal_frame","block.minecraft.end_stone","block.minecraft.end_stone_bricks","block.minecraft.dragon_egg","block.minecraft.sandstone_stairs","block.minecraft.ender_chest","block.minecraft.emerald_block","block.minecraft.oak_stairs","block.minecraft.spruce_stairs","block.minecraft.birch_stairs","block.minecraft.jungle_stairs","block.minecraft.acacia_stairs","block.minecraft.cherry_stairs","block.minecraft.dark_oak_stairs","block.minecraft.pale_oak_stairs","block.minecraft.mangrove_stairs","block.minecraft.bamboo_stairs","block.minecraft.bamboo_mosaic_stairs","block.minecraft.crimson_stairs","block.minecraft.warped_stairs","block.minecraft.command_block","block.minecraft.beacon","block.minecraft.cobblestone_wall","block.minecraft.mossy_cobblestone_wall","block.minecraft.brick_wall","block.minecraft.prismarine_wall","block.minecraft.red_sandstone_wall","block.minecraft.mossy_stone_brick_wall","block.minecraft.granite_wall","block.minecraft.stone_brick_wall","block.minecraft.mud_brick_wall","block.minecraft.nether_brick_wall","block.minecraft.andesite_wall","block.minecraft.red_nether_brick_wall","block.minecraft.sandstone_wall","block.minecraft.end_stone_brick_wall","block.minecraft.diorite_wall","block.minecraft.blackstone_wall","block.minecraft.polished_blackstone_wall","block.minecraft.polished_blackstone_brick_wall","block.minecraft.cobbled_deepslate_wall","block.minecraft.polished_deepslate_wall","block.minecraft.deepslate_brick_wall","block.minecraft.deepslate_tile_wall","block.minecraft.anvil","block.minecraft.chipped_anvil","block.minecraft.damaged_anvil","block.minecraft.chiseled_quartz_block","block.minecraft.quartz_block","block.minecraft.quartz_bricks","block.minecraft.quartz_pillar","block.minecraft.quartz_stairs","block.minecraft.white_terracotta","block.minecraft.orange_terracotta","block.minecraft.magenta_terracotta","block.minecraft.light_blue_terracotta","block.minecraft.yellow_terracotta","block.minecraft.lime_terracotta","block.minecraft.pink_terracotta","block.minecraft.gray_terracotta","block.minecraft.light_gray_terracotta","block.minecraft.cyan_terracotta","block.minecraft.purple_terracotta","block.minecraft.blue_terracotta","block.minecraft.brown_terracotta","block.minecraft.green_terracotta","block.minecraft.red_terracotta","block.minecraft.black_terracotta","block.minecraft.barrier","block.minecraft.light","block.minecraft.hay_block","block.minecraft.white_carpet","block.minecraft.orange_carpet","block.minecraft.magenta_carpet","block.minecraft.light_blue_carpet","block.minecraft.yellow_carpet","block.minecraft.lime_carpet","block.minecraft.pink_carpet","block.minecraft.gray_carpet","block.minecraft.light_gray_carpet","block.minecraft.cyan_carpet","block.minecraft.purple_carpet","block.minecraft.blue_carpet","block.minecraft.brown_carpet","block.minecraft.green_carpet","block.minecraft.red_carpet","block.minecraft.black_carpet","block.minecraft.terracotta","block.minecraft.packed_ice","block.minecraft.dirt_path","block.minecraft.sunflower","block.minecraft.lilac","block.minecraft.rose_bush","block.minecraft.peony","block.minecraft.tall_grass","block.minecraft.large_fern","block.minecraft.white_stained_glass","block.minecraft.orange_stained_glass","block.minecraft.magenta_stained_glass","block.minecraft.light_blue_stained_glass","block.minecraft.yellow_stained_glass","block.minecraft.lime_stained_glass","block.minecraft.pink_stained_glass","block.minecraft.gray_stained_glass","block.minecraft.light_gray_stained_glass","block.minecraft.cyan_stained_glass","block.minecraft.purple_stained_glass","block.minecraft.blue_stained_glass","block.minecraft.brown_stained_glass","block.minecraft.green_stained_glass","block.minecraft.red_stained_glass","block.minecraft.black_stained_glass","block.minecraft.white_stained_glass_pane","block.minecraft.orange_stained_glass_pane","block.minecraft.magenta_stained_glass_pane","block.minecraft.light_blue_stained_glass_pane","block.minecraft.yellow_stained_glass_pane","block.minecraft.lime_stained_glass_pane","block.minecraft.pink_stained_glass_pane","block.minecraft.gray_stained_glass_pane","block.minecraft.light_gray_stained_glass_pane","block.minecraft.cyan_stained_glass_pane","block.minecraft.purple_stained_glass_pane","block.minecraft.blue_stained_glass_pane","block.minecraft.brown_stained_glass_pane","block.minecraft.green_stained_glass_pane","block.minecraft.red_stained_glass_pane","block.minecraft.black_stained_glass_pane","block.minecraft.prismarine","block.minecraft.prismarine_bricks","block.minecraft.dark_prismarine","block.minecraft.prismarine_stairs","block.minecraft.prismarine_brick_stairs","block.minecraft.dark_prismarine_stairs","block.minecraft.sea_lantern","block.minecraft.red_sandstone","block.minecraft.chiseled_red_sandstone","block.minecraft.cut_red_sandstone","block.minecraft.red_sandstone_stairs","block.minecraft.repeating_command_block","block.minecraft.chain_command_block","block.minecraft.magma_block","block.minecraft.nether_wart_block","block.minecraft.warped_wart_block","block.minecraft.red_nether_bricks","block.minecraft.bone_block","block.minecraft.structure_void","block.minecraft.shulker_box","block.minecraft.white_shulker_box","block.minecraft.orange_shulker_box","block.minecraft.magenta_shulker_box","block.minecraft.light_blue_shulker_box","block.minecraft.yellow_shulker_box","block.minecraft.lime_shulker_box","block.minecraft.pink_shulker_box","block.minecraft.gray_shulker_box","block.minecraft.light_gray_shulker_box","block.minecraft.cyan_shulker_box","block.minecraft.purple_shulker_box","block.minecraft.blue_shulker_box","block.minecraft.brown_shulker_box","block.minecraft.green_shulker_box","block.minecraft.red_shulker_box","block.minecraft.black_shulker_box","block.minecraft.white_glazed_terracotta","block.minecraft.orange_glazed_terracotta","block.minecraft.magenta_glazed_terracotta","block.minecraft.light_blue_glazed_terracotta","block.minecraft.yellow_glazed_terracotta","block.minecraft.lime_glazed_terracotta","block.minecraft.pink_glazed_terracotta","block.minecraft.gray_glazed_terracotta","block.minecraft.light_gray_glazed_terracotta","block.minecraft.cyan_glazed_terracotta","block.minecraft.purple_glazed_terracotta","block.minecraft.blue_glazed_terracotta","block.minecraft.brown_glazed_terracotta","block.minecraft.green_glazed_terracotta","block.minecraft.red_glazed_terracotta","block.minecraft.black_glazed_terracotta","block.minecraft.white_concrete","block.minecraft.orange_concrete","block.minecraft.magenta_concrete","block.minecraft.light_blue_concrete","block.minecraft.yellow_concrete","block.minecraft.lime_concrete","block.minecraft.pink_concrete","block.minecraft.gray_concrete","block.minecraft.light_gray_concrete","block.minecraft.cyan_concrete","block.minecraft.purple_concrete","block.minecraft.blue_concrete","block.minecraft.brown_concrete","block.minecraft.green_concrete","block.minecraft.red_concrete","block.minecraft.black_concrete","block.minecraft.white_concrete_powder","block.minecraft.orange_concrete_powder","block.minecraft.magenta_concrete_powder","block.minecraft.light_blue_concrete_powder","block.minecraft.yellow_concrete_powder","block.minecraft.lime_concrete_powder","block.minecraft.pink_concrete_powder","block.minecraft.gray_concrete_powder","block.minecraft.light_gray_concrete_powder","block.minecraft.cyan_concrete_powder","block.minecraft.purple_concrete_powder","block.minecraft.blue_concrete_powder","block.minecraft.brown_concrete_powder","block.minecraft.green_concrete_powder","block.minecraft.red_concrete_powder","block.minecraft.black_concrete_powder","block.minecraft.turtle_egg","block.minecraft.sniffer_egg","block.minecraft.dried_ghast","block.minecraft.dead_tube_coral_block","block.minecraft.dead_brain_coral_block","block.minecraft.dead_bubble_coral_block","block.minecraft.dead_fire_coral_block","block.minecraft.dead_horn_coral_block","block.minecraft.tube_coral_block","block.minecraft.brain_coral_block","block.minecraft.bubble_coral_block","block.minecraft.fire_coral_block","block.minecraft.horn_coral_block","block.minecraft.tube_coral","block.minecraft.brain_coral","block.minecraft.bubble_coral","block.minecraft.fire_coral","block.minecraft.horn_coral","block.minecraft.dead_brain_coral","block.minecraft.dead_bubble_coral","block.minecraft.dead_fire_coral","block.minecraft.dead_horn_coral","block.minecraft.dead_tube_coral","block.minecraft.tube_coral_fan","block.minecraft.brain_coral_fan","block.minecraft.bubble_coral_fan","block.minecraft.fire_coral_fan","block.minecraft.horn_coral_fan","block.minecraft.dead_tube_coral_fan","block.minecraft.dead_brain_coral_fan","block.minecraft.dead_bubble_coral_fan","block.minecraft.dead_fire_coral_fan","block.minecraft.dead_horn_coral_fan","block.minecraft.blue_ice","block.minecraft.conduit","block.minecraft.polished_granite_stairs","block.minecraft.smooth_red_sandstone_stairs","block.minecraft.mossy_stone_brick_stairs","block.minecraft.polished_diorite_stairs","block.minecraft.mossy_cobblestone_stairs","block.minecraft.end_stone_brick_stairs","block.minecraft.stone_stairs","block.minecraft.smooth_sandstone_stairs","block.minecraft.smooth_quartz_stairs","block.minecraft.granite_stairs","block.minecraft.andesite_stairs","block.minecraft.red_nether_brick_stairs","block.minecraft.polished_andesite_stairs","block.minecraft.diorite_stairs","block.minecraft.cobbled_deepslate_stairs","block.minecraft.polished_deepslate_stairs","block.minecraft.deepslate_brick_stairs","block.minecraft.deepslate_tile_stairs","block.minecraft.polished_granite_slab","block.minecraft.smooth_red_sandstone_slab","block.minecraft.mossy_stone_brick_slab","block.minecraft.polished_diorite_slab","block.minecraft.mossy_cobblestone_slab","block.minecraft.end_stone_brick_slab","block.minecraft.smooth_sandstone_slab","block.minecraft.smooth_quartz_slab","block.minecraft.granite_slab","block.minecraft.andesite_slab","block.minecraft.red_nether_brick_slab","block.minecraft.polished_andesite_slab","block.minecraft.diorite_slab","block.minecraft.cobbled_deepslate_slab","block.minecraft.polished_deepslate_slab","block.minecraft.deepslate_brick_slab","block.minecraft.deepslate_tile_slab","block.minecraft.scaffolding","item.minecraft.redstone","block.minecraft.redstone_torch","block.minecraft.redstone_block","block.minecraft.repeater","block.minecraft.comparator","block.minecraft.piston","block.minecraft.sticky_piston","block.minecraft.slime_block","block.minecraft.honey_block","block.minecraft.observer","block.minecraft.hopper","block.minecraft.dispenser","block.minecraft.dropper","block.minecraft.lectern","block.minecraft.target","block.minecraft.lever","block.minecraft.lightning_rod","block.minecraft.exposed_lightning_rod","block.minecraft.weathered_lightning_rod","block.minecraft.oxidized_lightning_rod","block.minecraft.waxed_lightning_rod","block.minecraft.waxed_exposed_lightning_rod","block.minecraft.waxed_weathered_lightning_rod","block.minecraft.waxed_oxidized_lightning_rod","block.minecraft.daylight_detector","block.minecraft.sculk_sensor","block.minecraft.calibrated_sculk_sensor","block.minecraft.tripwire_hook","block.minecraft.trapped_chest","block.minecraft.tnt","block.minecraft.redstone_lamp","block.minecraft.note_block","block.minecraft.stone_button","block.minecraft.polished_blackstone_button","block.minecraft.oak_button","block.minecraft.spruce_button","block.minecraft.birch_button","block.minecraft.jungle_button","block.minecraft.acacia_button","block.minecraft.cherry_button","block.minecraft.dark_oak_button","block.minecraft.pale_oak_button","block.minecraft.mangrove_button","block.minecraft.bamboo_button","block.minecraft.crimson_button","block.minecraft.warped_button","block.minecraft.stone_pressure_plate","block.minecraft.polished_blackstone_pressure_plate","block.minecraft.light_weighted_pressure_plate","block.minecraft.heavy_weighted_pressure_plate","block.minecraft.oak_pressure_plate","block.minecraft.spruce_pressure_plate","block.minecraft.birch_pressure_plate","block.minecraft.jungle_pressure_plate","block.minecraft.acacia_pressure_plate","block.minecraft.cherry_pressure_plate","block.minecraft.dark_oak_pressure_plate","block.minecraft.pale_oak_pressure_plate","block.minecraft.mangrove_pressure_plate","block.minecraft.bamboo_pressure_plate","block.minecraft.crimson_pressure_plate","block.minecraft.warped_pressure_plate","block.minecraft.iron_door","block.minecraft.oak_door","block.minecraft.spruce_door","block.minecraft.birch_door","block.minecraft.jungle_door","block.minecraft.acacia_door","block.minecraft.cherry_door","block.minecraft.dark_oak_door","block.minecraft.pale_oak_door","block.minecraft.mangrove_door","block.minecraft.bamboo_door","block.minecraft.crimson_door","block.minecraft.warped_door","block.minecraft.copper_door","block.minecraft.exposed_copper_door","block.minecraft.weathered_copper_door","block.minecraft.oxidized_copper_door","block.minecraft.waxed_copper_door","block.minecraft.waxed_exposed_copper_door","block.minecraft.waxed_weathered_copper_door","block.minecraft.waxed_oxidized_copper_door","block.minecraft.iron_trapdoor","block.minecraft.oak_trapdoor","block.minecraft.spruce_trapdoor","block.minecraft.birch_trapdoor","block.minecraft.jungle_trapdoor","block.minecraft.acacia_trapdoor","block.minecraft.cherry_trapdoor","block.minecraft.dark_oak_trapdoor","block.minecraft.pale_oak_trapdoor","block.minecraft.mangrove_trapdoor","block.minecraft.bamboo_trapdoor","block.minecraft.crimson_trapdoor","block.minecraft.warped_trapdoor","block.minecraft.copper_trapdoor","block.minecraft.exposed_copper_trapdoor","block.minecraft.weathered_copper_trapdoor","block.minecraft.oxidized_copper_trapdoor","block.minecraft.waxed_copper_trapdoor","block.minecraft.waxed_exposed_copper_trapdoor","block.minecraft.waxed_weathered_copper_trapdoor","block.minecraft.waxed_oxidized_copper_trapdoor","block.minecraft.oak_fence_gate","block.minecraft.spruce_fence_gate","block.minecraft.birch_fence_gate","block.minecraft.jungle_fence_gate","block.minecraft.acacia_fence_gate","block.minecraft.cherry_fence_gate","block.minecraft.dark_oak_fence_gate","block.minecraft.pale_oak_fence_gate","block.minecraft.mangrove_fence_gate","block.minecraft.bamboo_fence_gate","block.minecraft.crimson_fence_gate","block.minecraft.warped_fence_gate","block.minecraft.powered_rail","block.minecraft.detector_rail","block.minecraft.rail","block.minecraft.activator_rail","item.minecraft.saddle","item.minecraft.white_harness","item.minecraft.orange_harness","item.minecraft.magenta_harness","item.minecraft.light_blue_harness","item.minecraft.yellow_harness","item.minecraft.lime_harness","item.minecraft.pink_harness","item.minecraft.gray_harness","item.minecraft.light_gray_harness","item.minecraft.cyan_harness","item.minecraft.purple_harness","item.minecraft.blue_harness","item.minecraft.brown_harness","item.minecraft.green_harness","item.minecraft.red_harness","item.minecraft.black_harness","item.minecraft.minecart","item.minecraft.chest_minecart","item.minecraft.furnace_minecart","item.minecraft.tnt_minecart","item.minecraft.hopper_minecart","item.minecraft.carrot_on_a_stick","item.minecraft.warped_fungus_on_a_stick","item.minecraft.phantom_membrane","item.minecraft.elytra","item.minecraft.oak_boat","item.minecraft.oak_chest_boat","item.minecraft.spruce_boat","item.minecraft.spruce_chest_boat","item.minecraft.birch_boat","item.minecraft.birch_chest_boat","item.minecraft.jungle_boat","item.minecraft.jungle_chest_boat","item.minecraft.acacia_boat","item.minecraft.acacia_chest_boat","item.minecraft.cherry_boat","item.minecraft.cherry_chest_boat","item.minecraft.dark_oak_boat","item.minecraft.dark_oak_chest_boat","item.minecraft.pale_oak_boat","item.minecraft.pale_oak_chest_boat","item.minecraft.mangrove_boat","item.minecraft.mangrove_chest_boat","item.minecraft.bamboo_raft","item.minecraft.bamboo_chest_raft","block.minecraft.structure_block","block.minecraft.jigsaw","block.minecraft.test_block","block.minecraft.test_instance_block","item.minecraft.turtle_helmet","item.minecraft.turtle_scute","item.minecraft.armadillo_scute","item.minecraft.wolf_armor","item.minecraft.flint_and_steel","item.minecraft.bowl","item.minecraft.apple","item.minecraft.bow","item.minecraft.arrow","item.minecraft.coal","item.minecraft.charcoal","item.minecraft.diamond","item.minecraft.emerald","item.minecraft.lapis_lazuli","item.minecraft.quartz","item.minecraft.amethyst_shard","item.minecraft.raw_iron","item.minecraft.iron_ingot","item.minecraft.raw_copper","item.minecraft.copper_ingot","item.minecraft.raw_gold","item.minecraft.gold_ingot","item.minecraft.netherite_ingot","item.minecraft.netherite_scrap","item.minecraft.wooden_sword","item.minecraft.wooden_shovel","item.minecraft.wooden_pickaxe","item.minecraft.wooden_axe","item.minecraft.wooden_hoe","item.minecraft.copper_sword","item.minecraft.copper_shovel","item.minecraft.copper_pickaxe","item.minecraft.copper_axe","item.minecraft.copper_hoe","item.minecraft.stone_sword","item.minecraft.stone_shovel","item.minecraft.stone_pickaxe","item.minecraft.stone_axe","item.minecraft.stone_hoe","item.minecraft.golden_sword","item.minecraft.golden_shovel","item.minecraft.golden_pickaxe","item.minecraft.golden_axe","item.minecraft.golden_hoe","item.minecraft.iron_sword","item.minecraft.iron_shovel","item.minecraft.iron_pickaxe","item.minecraft.iron_axe","item.minecraft.iron_hoe","item.minecraft.diamond_sword","item.minecraft.diamond_shovel","item.minecraft.diamond_pickaxe","item.minecraft.diamond_axe","item.minecraft.diamond_hoe","item.minecraft.netherite_sword","item.minecraft.netherite_shovel","item.minecraft.netherite_pickaxe","item.minecraft.netherite_axe","item.minecraft.netherite_hoe","item.minecraft.stick","item.minecraft.mushroom_stew","item.minecraft.string","item.minecraft.feather","item.minecraft.gunpowder","item.minecraft.wheat_seeds","item.minecraft.wheat","item.minecraft.bread","item.minecraft.leather_helmet","item.minecraft.leather_chestplate","item.minecraft.leather_leggings","item.minecraft.leather_boots","item.minecraft.copper_helmet","item.minecraft.copper_chestplate","item.minecraft.copper_leggings","item.minecraft.copper_boots","item.minecraft.chainmail_helmet","item.minecraft.chainmail_chestplate","item.minecraft.chainmail_leggings","item.minecraft.chainmail_boots","item.minecraft.iron_helmet","item.minecraft.iron_chestplate","item.minecraft.iron_leggings","item.minecraft.iron_boots","item.minecraft.diamond_helmet","item.minecraft.diamond_chestplate","item.minecraft.diamond_leggings","item.minecraft.diamond_boots","item.minecraft.golden_helmet","item.minecraft.golden_chestplate","item.minecraft.golden_leggings","item.minecraft.golden_boots","item.minecraft.netherite_helmet","item.minecraft.netherite_chestplate","item.minecraft.netherite_leggings","item.minecraft.netherite_boots","item.minecraft.flint","item.minecraft.porkchop","item.minecraft.cooked_porkchop","item.minecraft.painting","item.minecraft.golden_apple","item.minecraft.enchanted_golden_apple","block.minecraft.oak_sign","block.minecraft.spruce_sign","block.minecraft.birch_sign","block.minecraft.jungle_sign","block.minecraft.acacia_sign","block.minecraft.cherry_sign","block.minecraft.dark_oak_sign","block.minecraft.pale_oak_sign","block.minecraft.mangrove_sign","block.minecraft.bamboo_sign","block.minecraft.crimson_sign","block.minecraft.warped_sign","block.minecraft.oak_hanging_sign","block.minecraft.spruce_hanging_sign","block.minecraft.birch_hanging_sign","block.minecraft.jungle_hanging_sign","block.minecraft.acacia_hanging_sign","block.minecraft.cherry_hanging_sign","block.minecraft.dark_oak_hanging_sign","block.minecraft.pale_oak_hanging_sign","block.minecraft.mangrove_hanging_sign","block.minecraft.bamboo_hanging_sign","block.minecraft.crimson_hanging_sign","block.minecraft.warped_hanging_sign","item.minecraft.bucket","item.minecraft.water_bucket","item.minecraft.lava_bucket","item.minecraft.powder_snow_bucket","item.minecraft.snowball","item.minecraft.leather","item.minecraft.milk_bucket","item.minecraft.pufferfish_bucket","item.minecraft.salmon_bucket","item.minecraft.cod_bucket","item.minecraft.tropical_fish_bucket","item.minecraft.axolotl_bucket","item.minecraft.tadpole_bucket","item.minecraft.brick","item.minecraft.clay_ball","block.minecraft.dried_kelp_block","item.minecraft.paper","item.minecraft.book","item.minecraft.slime_ball","item.minecraft.egg","item.minecraft.blue_egg","item.minecraft.brown_egg","item.minecraft.compass","item.minecraft.recovery_compass","item.minecraft.bundle","item.minecraft.white_bundle","item.minecraft.orange_bundle","item.minecraft.magenta_bundle","item.minecraft.light_blue_bundle","item.minecraft.yellow_bundle","item.minecraft.lime_bundle","item.minecraft.pink_bundle","item.minecraft.gray_bundle","item.minecraft.light_gray_bundle","item.minecraft.cyan_bundle","item.minecraft.purple_bundle","item.minecraft.blue_bundle","item.minecraft.brown_bundle","item.minecraft.green_bundle","item.minecraft.red_bundle","item.minecraft.black_bundle","item.minecraft.fishing_rod","item.minecraft.clock","item.minecraft.spyglass","item.minecraft.glowstone_dust","item.minecraft.cod","item.minecraft.salmon","item.minecraft.tropical_fish","item.minecraft.pufferfish","item.minecraft.cooked_cod","item.minecraft.cooked_salmon","item.minecraft.ink_sac","item.minecraft.glow_ink_sac","item.minecraft.cocoa_beans","item.minecraft.white_dye","item.minecraft.orange_dye","item.minecraft.magenta_dye","item.minecraft.light_blue_dye","item.minecraft.yellow_dye","item.minecraft.lime_dye","item.minecraft.pink_dye","item.minecraft.gray_dye","item.minecraft.light_gray_dye","item.minecraft.cyan_dye","item.minecraft.purple_dye","item.minecraft.blue_dye","item.minecraft.brown_dye","item.minecraft.green_dye","item.minecraft.red_dye","item.minecraft.black_dye","item.minecraft.bone_meal","item.minecraft.bone","item.minecraft.sugar","block.minecraft.cake","block.minecraft.white_bed","block.minecraft.orange_bed","block.minecraft.magenta_bed","block.minecraft.light_blue_bed","block.minecraft.yellow_bed","block.minecraft.lime_bed","block.minecraft.pink_bed","block.minecraft.gray_bed","block.minecraft.light_gray_bed","block.minecraft.cyan_bed","block.minecraft.purple_bed","block.minecraft.blue_bed","block.minecraft.brown_bed","block.minecraft.green_bed","block.minecraft.red_bed","block.minecraft.black_bed","item.minecraft.cookie","block.minecraft.crafter","item.minecraft.filled_map","item.minecraft.shears","item.minecraft.melon_slice","item.minecraft.dried_kelp","item.minecraft.pumpkin_seeds","item.minecraft.melon_seeds","item.minecraft.beef","item.minecraft.cooked_beef","item.minecraft.chicken","item.minecraft.cooked_chicken","item.minecraft.rotten_flesh","item.minecraft.ender_pearl","item.minecraft.blaze_rod","item.minecraft.ghast_tear","item.minecraft.gold_nugget","item.minecraft.nether_wart","item.minecraft.glass_bottle","item.minecraft.potion","item.minecraft.spider_eye","item.minecraft.fermented_spider_eye","item.minecraft.blaze_powder","item.minecraft.magma_cream","block.minecraft.brewing_stand","block.minecraft.cauldron","item.minecraft.ender_eye","item.minecraft.glistering_melon_slice","item.minecraft.chicken_spawn_egg","item.minecraft.cow_spawn_egg","item.minecraft.pig_spawn_egg","item.minecraft.sheep_spawn_egg","item.minecraft.camel_spawn_egg","item.minecraft.donkey_spawn_egg","item.minecraft.horse_spawn_egg","item.minecraft.mule_spawn_egg","item.minecraft.cat_spawn_egg","item.minecraft.parrot_spawn_egg","item.minecraft.wolf_spawn_egg","item.minecraft.armadillo_spawn_egg","item.minecraft.bat_spawn_egg","item.minecraft.bee_spawn_egg","item.minecraft.fox_spawn_egg","item.minecraft.goat_spawn_egg","item.minecraft.llama_spawn_egg","item.minecraft.ocelot_spawn_egg","item.minecraft.panda_spawn_egg","item.minecraft.polar_bear_spawn_egg","item.minecraft.rabbit_spawn_egg","item.minecraft.axolotl_spawn_egg","item.minecraft.cod_spawn_egg","item.minecraft.dolphin_spawn_egg","item.minecraft.frog_spawn_egg","item.minecraft.glow_squid_spawn_egg","item.minecraft.nautilus_spawn_egg","item.minecraft.pufferfish_spawn_egg","item.minecraft.salmon_spawn_egg","item.minecraft.squid_spawn_egg","item.minecraft.tadpole_spawn_egg","item.minecraft.tropical_fish_spawn_egg","item.minecraft.turtle_spawn_egg","item.minecraft.allay_spawn_egg","item.minecraft.mooshroom_spawn_egg","item.minecraft.sniffer_spawn_egg","item.minecraft.copper_golem_spawn_egg","item.minecraft.iron_golem_spawn_egg","item.minecraft.snow_golem_spawn_egg","item.minecraft.trader_llama_spawn_egg","item.minecraft.villager_spawn_egg","item.minecraft.wandering_trader_spawn_egg","item.minecraft.bogged_spawn_egg","item.minecraft.camel_husk_spawn_egg","item.minecraft.drowned_spawn_egg","item.minecraft.husk_spawn_egg","item.minecraft.parched_spawn_egg","item.minecraft.skeleton_spawn_egg","item.minecraft.skeleton_horse_spawn_egg","item.minecraft.stray_spawn_egg","item.minecraft.wither_spawn_egg","item.minecraft.wither_skeleton_spawn_egg","item.minecraft.zombie_spawn_egg","item.minecraft.zombie_horse_spawn_egg","item.minecraft.zombie_nautilus_spawn_egg","item.minecraft.zombie_villager_spawn_egg","item.minecraft.cave_spider_spawn_egg","item.minecraft.spider_spawn_egg","item.minecraft.breeze_spawn_egg","item.minecraft.creaking_spawn_egg","item.minecraft.creeper_spawn_egg","item.minecraft.elder_guardian_spawn_egg","item.minecraft.guardian_spawn_egg","item.minecraft.phantom_spawn_egg","item.minecraft.silverfish_spawn_egg","item.minecraft.slime_spawn_egg","item.minecraft.warden_spawn_egg","item.minecraft.witch_spawn_egg","item.minecraft.evoker_spawn_egg","item.minecraft.pillager_spawn_egg","item.minecraft.ravager_spawn_egg","item.minecraft.vindicator_spawn_egg","item.minecraft.vex_spawn_egg","item.minecraft.blaze_spawn_egg","item.minecraft.ghast_spawn_egg","item.minecraft.happy_ghast_spawn_egg","item.minecraft.hoglin_spawn_egg","item.minecraft.magma_cube_spawn_egg","item.minecraft.piglin_spawn_egg","item.minecraft.piglin_brute_spawn_egg","item.minecraft.strider_spawn_egg","item.minecraft.zoglin_spawn_egg","item.minecraft.zombified_piglin_spawn_egg","item.minecraft.ender_dragon_spawn_egg","item.minecraft.enderman_spawn_egg","item.minecraft.endermite_spawn_egg","item.minecraft.shulker_spawn_egg","item.minecraft.experience_bottle","item.minecraft.fire_charge","item.minecraft.wind_charge","item.minecraft.writable_book","item.minecraft.written_book","item.minecraft.breeze_rod","item.minecraft.mace","item.minecraft.item_frame","item.minecraft.glow_item_frame","block.minecraft.flower_pot","item.minecraft.carrot","item.minecraft.potato","item.minecraft.baked_potato","item.minecraft.poisonous_potato","item.minecraft.map","item.minecraft.golden_carrot","block.minecraft.skeleton_skull","block.minecraft.wither_skeleton_skull","block.minecraft.player_head","block.minecraft.zombie_head","block.minecraft.creeper_head","block.minecraft.dragon_head","block.minecraft.piglin_head","item.minecraft.nether_star","item.minecraft.pumpkin_pie","item.minecraft.firework_rocket","item.minecraft.firework_star","item.minecraft.enchanted_book","item.minecraft.nether_brick","item.minecraft.resin_brick","item.minecraft.prismarine_shard","item.minecraft.prismarine_crystals","item.minecraft.rabbit","item.minecraft.cooked_rabbit","item.minecraft.rabbit_stew","item.minecraft.rabbit_foot","item.minecraft.rabbit_hide","item.minecraft.armor_stand","item.minecraft.copper_horse_armor","item.minecraft.iron_horse_armor","item.minecraft.golden_horse_armor","item.minecraft.diamond_horse_armor","item.minecraft.netherite_horse_armor","item.minecraft.leather_horse_armor","item.minecraft.lead","item.minecraft.name_tag","item.minecraft.command_block_minecart","item.minecraft.mutton","item.minecraft.cooked_mutton","block.minecraft.white_banner","block.minecraft.orange_banner","block.minecraft.magenta_banner","block.minecraft.light_blue_banner","block.minecraft.yellow_banner","block.minecraft.lime_banner","block.minecraft.pink_banner","block.minecraft.gray_banner","block.minecraft.light_gray_banner","block.minecraft.cyan_banner","block.minecraft.purple_banner","block.minecraft.blue_banner","block.minecraft.brown_banner","block.minecraft.green_banner","block.minecraft.red_banner","block.minecraft.black_banner","item.minecraft.end_crystal","item.minecraft.chorus_fruit","item.minecraft.popped_chorus_fruit","item.minecraft.torchflower_seeds","item.minecraft.pitcher_pod","item.minecraft.beetroot","item.minecraft.beetroot_seeds","item.minecraft.beetroot_soup","item.minecraft.dragon_breath","item.minecraft.splash_potion","item.minecraft.spectral_arrow","item.minecraft.tipped_arrow","item.minecraft.lingering_potion","item.minecraft.shield","item.minecraft.wooden_spear","item.minecraft.stone_spear","item.minecraft.copper_spear","item.minecraft.iron_spear","item.minecraft.golden_spear","item.minecraft.diamond_spear","item.minecraft.netherite_spear","item.minecraft.totem_of_undying","item.minecraft.shulker_shell","item.minecraft.iron_nugget","item.minecraft.copper_nugget","item.minecraft.knowledge_book","item.minecraft.debug_stick","item.minecraft.music_disc_13","item.minecraft.music_disc_cat","item.minecraft.music_disc_blocks","item.minecraft.music_disc_chirp","item.minecraft.music_disc_creator","item.minecraft.music_disc_creator_music_box","item.minecraft.music_disc_far","item.minecraft.music_disc_lava_chicken","item.minecraft.music_disc_mall","item.minecraft.music_disc_mellohi","item.minecraft.music_disc_stal","item.minecraft.music_disc_strad","item.minecraft.music_disc_ward","item.minecraft.music_disc_11","item.minecraft.music_disc_wait","item.minecraft.music_disc_otherside","item.minecraft.music_disc_relic","item.minecraft.music_disc_5","item.minecraft.music_disc_pigstep","item.minecraft.music_disc_precipice","item.minecraft.music_disc_tears","item.minecraft.disc_fragment_5","item.minecraft.trident","item.minecraft.nautilus_shell","item.minecraft.iron_nautilus_armor","item.minecraft.golden_nautilus_armor","item.minecraft.diamond_nautilus_armor","item.minecraft.netherite_nautilus_armor","item.minecraft.copper_nautilus_armor","item.minecraft.heart_of_the_sea","item.minecraft.crossbow","item.minecraft.suspicious_stew","block.minecraft.loom","item.minecraft.flower_banner_pattern","item.minecraft.creeper_banner_pattern","item.minecraft.skull_banner_pattern","item.minecraft.mojang_banner_pattern","item.minecraft.globe_banner_pattern","item.minecraft.piglin_banner_pattern","item.minecraft.flow_banner_pattern","item.minecraft.guster_banner_pattern","item.minecraft.field_masoned_banner_pattern","item.minecraft.bordure_indented_banner_pattern","item.minecraft.goat_horn","block.minecraft.composter","block.minecraft.barrel","block.minecraft.smoker","block.minecraft.blast_furnace","block.minecraft.cartography_table","block.minecraft.fletching_table","block.minecraft.grindstone","block.minecraft.smithing_table","block.minecraft.stonecutter","block.minecraft.bell","block.minecraft.lantern","block.minecraft.soul_lantern","block.minecraft.copper_lantern","block.minecraft.exposed_copper_lantern","block.minecraft.weathered_copper_lantern","block.minecraft.oxidized_copper_lantern","block.minecraft.waxed_copper_lantern","block.minecraft.waxed_exposed_copper_lantern","block.minecraft.waxed_weathered_copper_lantern","block.minecraft.waxed_oxidized_copper_lantern","item.minecraft.sweet_berries","item.minecraft.glow_berries","block.minecraft.campfire","block.minecraft.soul_campfire","block.minecraft.shroomlight","item.minecraft.honeycomb","block.minecraft.bee_nest","block.minecraft.beehive","item.minecraft.honey_bottle","block.minecraft.honeycomb_block","block.minecraft.lodestone","block.minecraft.crying_obsidian","block.minecraft.blackstone","block.minecraft.blackstone_slab","block.minecraft.blackstone_stairs","block.minecraft.gilded_blackstone","block.minecraft.polished_blackstone","block.minecraft.polished_blackstone_slab","block.minecraft.polished_blackstone_stairs","block.minecraft.chiseled_polished_blackstone","block.minecraft.polished_blackstone_bricks","block.minecraft.polished_blackstone_brick_slab","block.minecraft.polished_blackstone_brick_stairs","block.minecraft.cracked_polished_blackstone_bricks","block.minecraft.respawn_anchor","block.minecraft.candle","block.minecraft.white_candle","block.minecraft.orange_candle","block.minecraft.magenta_candle","block.minecraft.light_blue_candle","block.minecraft.yellow_candle","block.minecraft.lime_candle","block.minecraft.pink_candle","block.minecraft.gray_candle","block.minecraft.light_gray_candle","block.minecraft.cyan_candle","block.minecraft.purple_candle","block.minecraft.blue_candle","block.minecraft.brown_candle","block.minecraft.green_candle","block.minecraft.red_candle","block.minecraft.black_candle","block.minecraft.small_amethyst_bud","block.minecraft.medium_amethyst_bud","block.minecraft.large_amethyst_bud","block.minecraft.amethyst_cluster","block.minecraft.pointed_dripstone","block.minecraft.ochre_froglight","block.minecraft.verdant_froglight","block.minecraft.pearlescent_froglight","block.minecraft.frogspawn","item.minecraft.echo_shard","item.minecraft.brush","item.minecraft.netherite_upgrade_smithing_template","item.minecraft.sentry_armor_trim_smithing_template","item.minecraft.dune_armor_trim_smithing_template","item.minecraft.coast_armor_trim_smithing_template","item.minecraft.wild_armor_trim_smithing_template","item.minecraft.ward_armor_trim_smithing_template","item.minecraft.eye_armor_trim_smithing_template","item.minecraft.vex_armor_trim_smithing_template","item.minecraft.tide_armor_trim_smithing_template","item.minecraft.snout_armor_trim_smithing_template","item.minecraft.rib_armor_trim_smithing_template","item.minecraft.spire_armor_trim_smithing_template","item.minecraft.wayfinder_armor_trim_smithing_template","item.minecraft.shaper_armor_trim_smithing_template","item.minecraft.silence_armor_trim_smithing_template","item.minecraft.raiser_armor_trim_smithing_template","item.minecraft.host_armor_trim_smithing_template","item.minecraft.flow_armor_trim_smithing_template","item.minecraft.bolt_armor_trim_smithing_template","item.minecraft.angler_pottery_sherd","item.minecraft.archer_pottery_sherd","item.minecraft.arms_up_pottery_sherd","item.minecraft.blade_pottery_sherd","item.minecraft.brewer_pottery_sherd","item.minecraft.burn_pottery_sherd","item.minecraft.danger_pottery_sherd","item.minecraft.explorer_pottery_sherd","item.minecraft.flow_pottery_sherd","item.minecraft.friend_pottery_sherd","item.minecraft.guster_pottery_sherd","item.minecraft.heart_pottery_sherd","item.minecraft.heartbreak_pottery_sherd","item.minecraft.howl_pottery_sherd","item.minecraft.miner_pottery_sherd","item.minecraft.mourner_pottery_sherd","item.minecraft.plenty_pottery_sherd","item.minecraft.prize_pottery_sherd","item.minecraft.scrape_pottery_sherd","item.minecraft.sheaf_pottery_sherd","item.minecraft.shelter_pottery_sherd","item.minecraft.skull_pottery_sherd","item.minecraft.snort_pottery_sherd","block.minecraft.copper_grate","block.minecraft.exposed_copper_grate","block.minecraft.weathered_copper_grate","block.minecraft.oxidized_copper_grate","block.minecraft.waxed_copper_grate","block.minecraft.waxed_exposed_copper_grate","block.minecraft.waxed_weathered_copper_grate","block.minecraft.waxed_oxidized_copper_grate","block.minecraft.copper_bulb","block.minecraft.exposed_copper_bulb","block.minecraft.weathered_copper_bulb","block.minecraft.oxidized_copper_bulb","block.minecraft.waxed_copper_bulb","block.minecraft.waxed_exposed_copper_bulb","block.minecraft.waxed_weathered_copper_bulb","block.minecraft.waxed_oxidized_copper_bulb","block.minecraft.copper_chest","block.minecraft.exposed_copper_chest","block.minecraft.weathered_copper_chest","block.minecraft.oxidized_copper_chest","block.minecraft.waxed_copper_chest","block.minecraft.waxed_exposed_copper_chest","block.minecraft.waxed_weathered_copper_chest","block.minecraft.waxed_oxidized_copper_chest","block.minecraft.copper_golem_statue","block.minecraft.exposed_copper_golem_statue","block.minecraft.weathered_copper_golem_statue","block.minecraft.oxidized_copper_golem_statue","block.minecraft.waxed_copper_golem_statue","block.minecraft.waxed_exposed_copper_golem_statue","block.minecraft.waxed_weathered_copper_golem_statue","block.minecraft.waxed_oxidized_copper_golem_statue","block.minecraft.trial_spawner","item.minecraft.trial_key","item.minecraft.ominous_trial_key","block.minecraft.vault","item.minecraft.ominous_bottle"]; impl DefaultableComponent for ItemName { fn default_for_item(item: Item) -> Option { let value = ITEM_NAME_VALUES[item as usize]; @@ -2045,7 +2077,7 @@ impl DefaultableComponent for Lore { } } #[rustfmt::skip] -static MAX_STACK_SIZE_VALUES: [i32; 1504] = [64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,64,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,64,64,64,64,1,64,64,1,1,64,64,1,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,64,1,64,64,64,64,64,64,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,64,64,64,64,64,64,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,1,1,1,16,64,1,1,1,1,1,1,1,64,64,64,64,64,64,16,16,16,64,64,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,64,1,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,64,64,64,1,64,64,64,64,64,64,64,64,64,16,64,64,64,64,64,1,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,1,16,64,1,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,1,64,64,64,64,64,64,1,64,64,16,1,1,1,1,1,64,64,1,64,64,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,64,64,64,64,64,64,64,1,64,1,64,64,1,1,1,1,1,1,1,1,1,1,64,64,64,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,64,1,64,1,1,1,1,1,64,1,1,64,1,1,1,1,1,1,1,1,1,1,1,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,16,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,1,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64]; +static MAX_STACK_SIZE_VALUES: [i32; 1505] = [64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,64,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,64,64,64,64,1,64,64,1,1,64,64,1,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,64,1,64,64,64,64,64,64,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,64,64,64,64,64,64,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,1,1,1,16,64,1,1,1,1,1,1,1,64,64,64,64,64,64,16,16,16,64,64,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,64,1,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,64,64,64,1,64,64,64,64,64,64,64,64,64,16,64,64,64,64,64,1,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,1,16,64,1,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,1,64,64,64,64,64,64,1,64,64,16,1,1,1,1,1,1,64,64,1,64,64,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,64,64,64,64,64,64,64,1,64,1,64,64,1,1,1,1,1,1,1,1,1,1,64,64,64,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,64,1,64,1,1,1,1,1,64,1,1,64,1,1,1,1,1,1,1,1,1,1,1,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,16,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,1,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64]; impl DefaultableComponent for MaxStackSize { fn default_for_item(item: Item) -> Option { let value = MAX_STACK_SIZE_VALUES[item as usize]; @@ -2225,38 +2257,38 @@ impl DefaultableComponent for UseEffects { let value = match item { Item::CopperSpear => UseEffects { can_sprint: true, + interact_vibrations: false, speed_multiplier: 1.0, - ..UseEffects::new() }, Item::DiamondSpear => UseEffects { can_sprint: true, + interact_vibrations: false, speed_multiplier: 1.0, - ..UseEffects::new() }, Item::GoldenSpear => UseEffects { can_sprint: true, + interact_vibrations: false, speed_multiplier: 1.0, - ..UseEffects::new() }, Item::IronSpear => UseEffects { can_sprint: true, + interact_vibrations: false, speed_multiplier: 1.0, - ..UseEffects::new() }, Item::NetheriteSpear => UseEffects { can_sprint: true, + interact_vibrations: false, speed_multiplier: 1.0, - ..UseEffects::new() }, Item::StoneSpear => UseEffects { can_sprint: true, + interact_vibrations: false, speed_multiplier: 1.0, - ..UseEffects::new() }, Item::WoodenSpear => UseEffects { can_sprint: true, + interact_vibrations: false, speed_multiplier: 1.0, - ..UseEffects::new() }, _ => UseEffects::new(), }; @@ -2443,6 +2475,7 @@ impl DefaultableComponent for DamageResistant { Item::NetheriteChestplate => "#minecraft:is_fire".into(), Item::NetheriteHelmet => "#minecraft:is_fire".into(), Item::NetheriteHoe => "#minecraft:is_fire".into(), + Item::NetheriteHorseArmor => "#minecraft:is_fire".into(), Item::NetheriteIngot => "#minecraft:is_fire".into(), Item::NetheriteLeggings => "#minecraft:is_fire".into(), Item::NetheriteNautilusArmor => "#minecraft:is_fire".into(), @@ -2485,6 +2518,7 @@ impl DefaultableComponent for Consumable { ..Consumable::new() }, Item::Cod => Consumable::new(), + Item::CodBucket => Consumable::new(), Item::CookedBeef => Consumable::new(), Item::CookedChicken => Consumable::new(), Item::CookedCod => Consumable::new(), @@ -2652,6 +2686,7 @@ impl DefaultableComponent for Consumable { }], ..Consumable::new() }, + Item::PufferfishBucket => Consumable::new(), Item::PumpkinPie => Consumable::new(), Item::Rabbit => Consumable::new(), Item::RabbitStew => Consumable::new(), @@ -2670,6 +2705,7 @@ impl DefaultableComponent for Consumable { ..Consumable::new() }, Item::Salmon => Consumable::new(), + Item::SalmonBucket => Consumable::new(), Item::SpiderEye => Consumable { on_consume_effects: vec![ConsumeEffect::ApplyEffects { effects: vec![MobEffectInstance { @@ -2687,6 +2723,7 @@ impl DefaultableComponent for Consumable { Item::SuspiciousStew => Consumable::new(), Item::SweetBerries => Consumable::new(), Item::TropicalFish => Consumable::new(), + Item::TropicalFishBucket => Consumable::new(), _ => return None, }; Some(value) @@ -2745,6 +2782,11 @@ impl DefaultableComponent for Food { saturation: 0.4, ..Food::new() }, + Item::CodBucket => Food { + nutrition: 2, + saturation: 0.4, + ..Food::new() + }, Item::CookedBeef => Food { nutrition: 8, saturation: 12.8, @@ -2850,6 +2892,11 @@ impl DefaultableComponent for Food { saturation: 0.2, ..Food::new() }, + Item::PufferfishBucket => Food { + nutrition: 1, + saturation: 0.2, + ..Food::new() + }, Item::PumpkinPie => Food { nutrition: 8, saturation: 4.8, @@ -2875,6 +2922,11 @@ impl DefaultableComponent for Food { saturation: 0.4, ..Food::new() }, + Item::SalmonBucket => Food { + nutrition: 2, + saturation: 0.4, + ..Food::new() + }, Item::SpiderEye => Food { nutrition: 2, saturation: 3.2, @@ -2895,6 +2947,11 @@ impl DefaultableComponent for Food { saturation: 0.2, ..Food::new() }, + Item::TropicalFishBucket => Food { + nutrition: 1, + saturation: 0.2, + ..Food::new() + }, _ => return None, }; Some(value) @@ -3614,6 +3671,21 @@ impl DefaultableComponent for Equippable { slot: EquipmentSlot::Head, ..Equippable::new() }, + Item::NetheriteHorseArmor => Equippable { + allowed_entities: Some(HolderSet::Direct { + contents: azalea_registry::tags::entities::CAN_WEAR_HORSE_ARMOR + .clone() + .into_iter() + .collect(), + }), + asset_id: Some("minecraft:netherite".into()), + can_be_sheared: true, + damage_on_hurt: false, + equip_sound: SoundEvent::EntityHorseArmor, + shearing_sound: SoundEvent::ItemHorseArmorUnequip, + slot: EquipmentSlot::Body, + ..Equippable::new() + }, Item::NetheriteLeggings => Equippable { asset_id: Some("minecraft:netherite".into()), equip_sound: SoundEvent::ItemArmorEquipNetherite, @@ -5795,7 +5867,7 @@ impl DefaultableComponent for KineticWeapon { }), forward_movement: 0.38, hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)), - hitbox_margin: 0.25, + hitbox_margin: 0.125, knockback_conditions: Some(KineticWeaponCondition { max_duration_ticks: 100, min_speed: 5.1, @@ -5821,7 +5893,7 @@ impl DefaultableComponent for KineticWeapon { }), forward_movement: 0.38, hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)), - hitbox_margin: 0.25, + hitbox_margin: 0.125, knockback_conditions: Some(KineticWeaponCondition { max_duration_ticks: 80, min_speed: 5.1, @@ -5847,7 +5919,7 @@ impl DefaultableComponent for KineticWeapon { }), forward_movement: 0.38, hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)), - hitbox_margin: 0.25, + hitbox_margin: 0.125, knockback_conditions: Some(KineticWeaponCondition { max_duration_ticks: 110, min_speed: 5.1, @@ -5873,7 +5945,7 @@ impl DefaultableComponent for KineticWeapon { }), forward_movement: 0.38, hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)), - hitbox_margin: 0.25, + hitbox_margin: 0.125, knockback_conditions: Some(KineticWeaponCondition { max_duration_ticks: 90, min_speed: 5.1, @@ -5899,7 +5971,7 @@ impl DefaultableComponent for KineticWeapon { }), forward_movement: 0.38, hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)), - hitbox_margin: 0.25, + hitbox_margin: 0.125, knockback_conditions: Some(KineticWeaponCondition { max_duration_ticks: 70, min_speed: 5.1, @@ -5925,7 +5997,7 @@ impl DefaultableComponent for KineticWeapon { }), forward_movement: 0.38, hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)), - hitbox_margin: 0.25, + hitbox_margin: 0.125, knockback_conditions: Some(KineticWeaponCondition { max_duration_ticks: 110, min_speed: 5.1, @@ -5953,7 +6025,7 @@ impl DefaultableComponent for KineticWeapon { hit_sound: Some(azalea_registry::Holder::Reference( SoundEvent::ItemSpearWoodHit, )), - hitbox_margin: 0.25, + hitbox_margin: 0.125, knockback_conditions: Some(KineticWeaponCondition { max_duration_ticks: 120, min_speed: 5.1, diff --git a/azalea-language/src/en_us.json b/azalea-language/src/en_us.json index 7ad8e62ff..9efbf12f3 100644 --- a/azalea-language/src/en_us.json +++ b/azalea-language/src/en_us.json @@ -67,6 +67,8 @@ "advancements.adventure.sleep_in_bed.title": "Sweet Dreams", "advancements.adventure.sniper_duel.description": "Kill a Skeleton from at least 50 meters away", "advancements.adventure.sniper_duel.title": "Sniper Duel", + "advancements.adventure.spear_many_mobs.description": "Hit five mobs in the same Charge attack using the Spear", + "advancements.adventure.spear_many_mobs.title": "Mob Kabob", "advancements.adventure.spyglass_at_dragon.description": "Look at the Ender Dragon through a Spyglass", "advancements.adventure.spyglass_at_dragon.title": "Is It a Plane?", "advancements.adventure.spyglass_at_ghast.description": "Look at a Ghast through a Spyglass", @@ -4042,7 +4044,9 @@ "gui.packSelection.search": "Search...", "gui.proceed": "Proceed", "gui.recipebook.moreRecipes": "Right Click for More", + "gui.recipebook.next_page": "Next Page", "gui.recipebook.page": "%s/%s", + "gui.recipebook.previous_page": "Previous Page", "gui.recipebook.search_hint": "Search...", "gui.recipebook.toggleRecipes.all": "Showing All", "gui.recipebook.toggleRecipes.blastable": "Showing Blastable", @@ -4050,6 +4054,7 @@ "gui.recipebook.toggleRecipes.smeltable": "Showing Smeltable", "gui.recipebook.toggleRecipes.smokable": "Showing Smokable", "gui.report_to_server": "Report To Server", + "gui.selectWorld.search": "Search...", "gui.socialInteractions.blocking_hint": "Manage with Microsoft account", "gui.socialInteractions.empty_blocked": "No blocked players in chat", "gui.socialInteractions.empty_hidden": "No players hidden in chat", @@ -4553,6 +4558,7 @@ "item.minecraft.netherite_chestplate": "Netherite Chestplate", "item.minecraft.netherite_helmet": "Netherite Helmet", "item.minecraft.netherite_hoe": "Netherite Hoe", + "item.minecraft.netherite_horse_armor": "Netherite Horse Armor", "item.minecraft.netherite_ingot": "Netherite Ingot", "item.minecraft.netherite_leggings": "Netherite Leggings", "item.minecraft.netherite_nautilus_armor": "Netherite Nautilus Armor", @@ -5952,6 +5958,13 @@ "options.music_frequency.default": "Default", "options.music_frequency.frequent": "Frequent", "options.music_frequency.tooltip": "Changes how frequently music plays while in a game world.", + "options.musicToast": "Music Toast", + "options.musicToast.never": "Never", + "options.musicToast.never.tooltip": "No music toast is shown.", + "options.musicToast.pauseMenu": "Pause Menu", + "options.musicToast.pauseMenu.tooltip": "A music toast is constantly displayed in the in-game pause menu while a song is playing.", + "options.musicToast.pauseMenuAndToast": "Pause Menu and Toast", + "options.musicToast.pauseMenuAndToast.tooltip": "Displays a toast when a song starts playing. The same toast is constantly displayed in the in-game pause menu while a song is playing.", "options.narrator": "Narrator", "options.narrator.all": "Narrates All", "options.narrator.chat": "Narrates Chat", @@ -7099,9 +7112,9 @@ "subtitles.entity.panda.sneeze": "Panda sneezes", "subtitles.entity.panda.step": "Panda steps", "subtitles.entity.panda.worried_ambient": "Panda whimpers", - "subtitles.entity.parched.ambient": "Stray rattles", - "subtitles.entity.parched.death": "Stray dies", - "subtitles.entity.parched.hurt": "Stray hurts", + "subtitles.entity.parched.ambient": "Parched crackles", + "subtitles.entity.parched.death": "Parched dies", + "subtitles.entity.parched.hurt": "Parched hurts", "subtitles.entity.parrot.ambient": "Parrot talks", "subtitles.entity.parrot.death": "Parrot dies", "subtitles.entity.parrot.eats": "Parrot eats", @@ -7392,6 +7405,7 @@ "subtitles.entity.zombie_horse.ambient": "Zombie Horse cries", "subtitles.entity.zombie_horse.angry": "Zombie Horse neighs", "subtitles.entity.zombie_horse.death": "Zombie Horse dies", + "subtitles.entity.zombie_horse.eat": "Zombie Horse eats", "subtitles.entity.zombie_horse.hurt": "Zombie Horse hurts", "subtitles.entity.zombie_nautilus.ambient": "Zombie Nautilus burbles", "subtitles.entity.zombie_nautilus.dash": "Zombie Nautilus jets", diff --git a/azalea-protocol/src/common/client_information.rs b/azalea-protocol/src/common/client_information.rs index 5dedd1a80..c5dd83d75 100644 --- a/azalea-protocol/src/common/client_information.rs +++ b/azalea-protocol/src/common/client_information.rs @@ -2,6 +2,7 @@ use std::io::{self, Cursor}; use azalea_buf::{AzBuf, AzaleaRead, AzaleaWrite}; use azalea_core::bitset::FixedBitSet; +use azalea_entity::HumanoidArm; use bevy_ecs::component::Component; /// A component that contains some of the "settings" for this client that are @@ -60,13 +61,6 @@ pub enum ChatVisibility { Hidden = 2, } -#[derive(AzBuf, Clone, Copy, Debug, PartialEq, Eq, Default)] -pub enum HumanoidArm { - Left = 0, - #[default] - Right = 1, -} - #[derive(Clone, Copy, Debug, PartialEq, Eq)] pub struct ModelCustomization { pub cape: bool, diff --git a/azalea-protocol/src/packets/game/c_horse_screen_open.rs b/azalea-protocol/src/packets/game/c_mount_screen_open.rs similarity index 88% rename from azalea-protocol/src/packets/game/c_horse_screen_open.rs rename to azalea-protocol/src/packets/game/c_mount_screen_open.rs index 4d139c8ae..6669d8c1f 100644 --- a/azalea-protocol/src/packets/game/c_horse_screen_open.rs +++ b/azalea-protocol/src/packets/game/c_mount_screen_open.rs @@ -3,7 +3,7 @@ use azalea_protocol_macros::ClientboundGamePacket; use azalea_world::MinecraftEntityId; #[derive(Clone, Debug, AzBuf, PartialEq, ClientboundGamePacket)] -pub struct ClientboundHorseScreenOpen { +pub struct ClientboundMountScreenOpen { #[var] pub container_id: i32, #[var] diff --git a/azalea-protocol/src/packets/game/mod.rs b/azalea-protocol/src/packets/game/mod.rs index 60de984da..3235231c8 100644 --- a/azalea-protocol/src/packets/game/mod.rs +++ b/azalea-protocol/src/packets/game/mod.rs @@ -45,7 +45,7 @@ declare_state_packets!(GamePacket, forget_level_chunk, game_event, game_test_highlight_pos, - horse_screen_open, + mount_screen_open, hurt_animation, initialize_border, keep_alive, diff --git a/azalea-protocol/src/packets/mod.rs b/azalea-protocol/src/packets/mod.rs index 3c08a64b6..5d5c957c4 100644 --- a/azalea-protocol/src/packets/mod.rs +++ b/azalea-protocol/src/packets/mod.rs @@ -11,8 +11,8 @@ use azalea_buf::{AzaleaReadVar, AzaleaWrite, AzaleaWriteVar, BufReadError}; use crate::read::ReadPacketError; -pub const PROTOCOL_VERSION: i32 = 1073742100; -pub const VERSION_NAME: &str = "25w44a"; +pub const PROTOCOL_VERSION: i32 = 1073742102; +pub const VERSION_NAME: &str = "25w46a"; #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] pub enum ConnectionProtocol { diff --git a/azalea-registry/src/data.rs b/azalea-registry/src/data.rs index 2e4cf3c18..5355ac010 100644 --- a/azalea-registry/src/data.rs +++ b/azalea-registry/src/data.rs @@ -72,6 +72,7 @@ data_registry! {CatVariant, "cat_variant"} data_registry! {PigVariant, "pig_variant"} data_registry! {PaintingVariant, "painting_variant"} data_registry! {WolfVariant, "wolf_variant"} +data_registry! {ZombieNautilusVariant, "zombie_nautilus_variant"} data_registry! { /// An opaque biome identifier. diff --git a/azalea-registry/src/lib.rs b/azalea-registry/src/lib.rs index fa42c2592..3a88f27d9 100644 --- a/azalea-registry/src/lib.rs +++ b/azalea-registry/src/lib.rs @@ -3163,93 +3163,93 @@ enum Item { Cauldron => "minecraft:cauldron", EnderEye => "minecraft:ender_eye", GlisteringMelonSlice => "minecraft:glistering_melon_slice", - ArmadilloSpawnEgg => "minecraft:armadillo_spawn_egg", - AllaySpawnEgg => "minecraft:allay_spawn_egg", - AxolotlSpawnEgg => "minecraft:axolotl_spawn_egg", - BatSpawnEgg => "minecraft:bat_spawn_egg", - BeeSpawnEgg => "minecraft:bee_spawn_egg", - BlazeSpawnEgg => "minecraft:blaze_spawn_egg", - BoggedSpawnEgg => "minecraft:bogged_spawn_egg", - BreezeSpawnEgg => "minecraft:breeze_spawn_egg", - CatSpawnEgg => "minecraft:cat_spawn_egg", - CamelSpawnEgg => "minecraft:camel_spawn_egg", - CamelHuskSpawnEgg => "minecraft:camel_husk_spawn_egg", - CaveSpiderSpawnEgg => "minecraft:cave_spider_spawn_egg", ChickenSpawnEgg => "minecraft:chicken_spawn_egg", - CodSpawnEgg => "minecraft:cod_spawn_egg", - CopperGolemSpawnEgg => "minecraft:copper_golem_spawn_egg", CowSpawnEgg => "minecraft:cow_spawn_egg", - CreeperSpawnEgg => "minecraft:creeper_spawn_egg", - DolphinSpawnEgg => "minecraft:dolphin_spawn_egg", + PigSpawnEgg => "minecraft:pig_spawn_egg", + SheepSpawnEgg => "minecraft:sheep_spawn_egg", + CamelSpawnEgg => "minecraft:camel_spawn_egg", DonkeySpawnEgg => "minecraft:donkey_spawn_egg", - DrownedSpawnEgg => "minecraft:drowned_spawn_egg", - ElderGuardianSpawnEgg => "minecraft:elder_guardian_spawn_egg", - EnderDragonSpawnEgg => "minecraft:ender_dragon_spawn_egg", - EndermanSpawnEgg => "minecraft:enderman_spawn_egg", - EndermiteSpawnEgg => "minecraft:endermite_spawn_egg", - EvokerSpawnEgg => "minecraft:evoker_spawn_egg", + HorseSpawnEgg => "minecraft:horse_spawn_egg", + MuleSpawnEgg => "minecraft:mule_spawn_egg", + CatSpawnEgg => "minecraft:cat_spawn_egg", + ParrotSpawnEgg => "minecraft:parrot_spawn_egg", + WolfSpawnEgg => "minecraft:wolf_spawn_egg", + ArmadilloSpawnEgg => "minecraft:armadillo_spawn_egg", + BatSpawnEgg => "minecraft:bat_spawn_egg", + BeeSpawnEgg => "minecraft:bee_spawn_egg", FoxSpawnEgg => "minecraft:fox_spawn_egg", - FrogSpawnEgg => "minecraft:frog_spawn_egg", - GhastSpawnEgg => "minecraft:ghast_spawn_egg", - HappyGhastSpawnEgg => "minecraft:happy_ghast_spawn_egg", - GlowSquidSpawnEgg => "minecraft:glow_squid_spawn_egg", GoatSpawnEgg => "minecraft:goat_spawn_egg", - GuardianSpawnEgg => "minecraft:guardian_spawn_egg", - HoglinSpawnEgg => "minecraft:hoglin_spawn_egg", - HorseSpawnEgg => "minecraft:horse_spawn_egg", - HuskSpawnEgg => "minecraft:husk_spawn_egg", - IronGolemSpawnEgg => "minecraft:iron_golem_spawn_egg", LlamaSpawnEgg => "minecraft:llama_spawn_egg", - MagmaCubeSpawnEgg => "minecraft:magma_cube_spawn_egg", - MooshroomSpawnEgg => "minecraft:mooshroom_spawn_egg", - MuleSpawnEgg => "minecraft:mule_spawn_egg", - NautilusSpawnEgg => "minecraft:nautilus_spawn_egg", OcelotSpawnEgg => "minecraft:ocelot_spawn_egg", PandaSpawnEgg => "minecraft:panda_spawn_egg", - ParchedSpawnEgg => "minecraft:parched_spawn_egg", - ParrotSpawnEgg => "minecraft:parrot_spawn_egg", - PhantomSpawnEgg => "minecraft:phantom_spawn_egg", - PigSpawnEgg => "minecraft:pig_spawn_egg", - PiglinSpawnEgg => "minecraft:piglin_spawn_egg", - PiglinBruteSpawnEgg => "minecraft:piglin_brute_spawn_egg", - PillagerSpawnEgg => "minecraft:pillager_spawn_egg", PolarBearSpawnEgg => "minecraft:polar_bear_spawn_egg", - PufferfishSpawnEgg => "minecraft:pufferfish_spawn_egg", RabbitSpawnEgg => "minecraft:rabbit_spawn_egg", - RavagerSpawnEgg => "minecraft:ravager_spawn_egg", + AxolotlSpawnEgg => "minecraft:axolotl_spawn_egg", + CodSpawnEgg => "minecraft:cod_spawn_egg", + DolphinSpawnEgg => "minecraft:dolphin_spawn_egg", + FrogSpawnEgg => "minecraft:frog_spawn_egg", + GlowSquidSpawnEgg => "minecraft:glow_squid_spawn_egg", + NautilusSpawnEgg => "minecraft:nautilus_spawn_egg", + PufferfishSpawnEgg => "minecraft:pufferfish_spawn_egg", SalmonSpawnEgg => "minecraft:salmon_spawn_egg", - SheepSpawnEgg => "minecraft:sheep_spawn_egg", - ShulkerSpawnEgg => "minecraft:shulker_spawn_egg", - SilverfishSpawnEgg => "minecraft:silverfish_spawn_egg", - SkeletonSpawnEgg => "minecraft:skeleton_spawn_egg", - SkeletonHorseSpawnEgg => "minecraft:skeleton_horse_spawn_egg", - SlimeSpawnEgg => "minecraft:slime_spawn_egg", - SnifferSpawnEgg => "minecraft:sniffer_spawn_egg", - SnowGolemSpawnEgg => "minecraft:snow_golem_spawn_egg", - SpiderSpawnEgg => "minecraft:spider_spawn_egg", SquidSpawnEgg => "minecraft:squid_spawn_egg", - StraySpawnEgg => "minecraft:stray_spawn_egg", - StriderSpawnEgg => "minecraft:strider_spawn_egg", TadpoleSpawnEgg => "minecraft:tadpole_spawn_egg", - TraderLlamaSpawnEgg => "minecraft:trader_llama_spawn_egg", TropicalFishSpawnEgg => "minecraft:tropical_fish_spawn_egg", TurtleSpawnEgg => "minecraft:turtle_spawn_egg", - VexSpawnEgg => "minecraft:vex_spawn_egg", + AllaySpawnEgg => "minecraft:allay_spawn_egg", + MooshroomSpawnEgg => "minecraft:mooshroom_spawn_egg", + SnifferSpawnEgg => "minecraft:sniffer_spawn_egg", + CopperGolemSpawnEgg => "minecraft:copper_golem_spawn_egg", + IronGolemSpawnEgg => "minecraft:iron_golem_spawn_egg", + SnowGolemSpawnEgg => "minecraft:snow_golem_spawn_egg", + TraderLlamaSpawnEgg => "minecraft:trader_llama_spawn_egg", VillagerSpawnEgg => "minecraft:villager_spawn_egg", - VindicatorSpawnEgg => "minecraft:vindicator_spawn_egg", WanderingTraderSpawnEgg => "minecraft:wandering_trader_spawn_egg", - WardenSpawnEgg => "minecraft:warden_spawn_egg", - WitchSpawnEgg => "minecraft:witch_spawn_egg", + BoggedSpawnEgg => "minecraft:bogged_spawn_egg", + CamelHuskSpawnEgg => "minecraft:camel_husk_spawn_egg", + DrownedSpawnEgg => "minecraft:drowned_spawn_egg", + HuskSpawnEgg => "minecraft:husk_spawn_egg", + ParchedSpawnEgg => "minecraft:parched_spawn_egg", + SkeletonSpawnEgg => "minecraft:skeleton_spawn_egg", + SkeletonHorseSpawnEgg => "minecraft:skeleton_horse_spawn_egg", + StraySpawnEgg => "minecraft:stray_spawn_egg", WitherSpawnEgg => "minecraft:wither_spawn_egg", WitherSkeletonSpawnEgg => "minecraft:wither_skeleton_spawn_egg", - WolfSpawnEgg => "minecraft:wolf_spawn_egg", - ZoglinSpawnEgg => "minecraft:zoglin_spawn_egg", - CreakingSpawnEgg => "minecraft:creaking_spawn_egg", ZombieSpawnEgg => "minecraft:zombie_spawn_egg", ZombieHorseSpawnEgg => "minecraft:zombie_horse_spawn_egg", + ZombieNautilusSpawnEgg => "minecraft:zombie_nautilus_spawn_egg", ZombieVillagerSpawnEgg => "minecraft:zombie_villager_spawn_egg", + CaveSpiderSpawnEgg => "minecraft:cave_spider_spawn_egg", + SpiderSpawnEgg => "minecraft:spider_spawn_egg", + BreezeSpawnEgg => "minecraft:breeze_spawn_egg", + CreakingSpawnEgg => "minecraft:creaking_spawn_egg", + CreeperSpawnEgg => "minecraft:creeper_spawn_egg", + ElderGuardianSpawnEgg => "minecraft:elder_guardian_spawn_egg", + GuardianSpawnEgg => "minecraft:guardian_spawn_egg", + PhantomSpawnEgg => "minecraft:phantom_spawn_egg", + SilverfishSpawnEgg => "minecraft:silverfish_spawn_egg", + SlimeSpawnEgg => "minecraft:slime_spawn_egg", + WardenSpawnEgg => "minecraft:warden_spawn_egg", + WitchSpawnEgg => "minecraft:witch_spawn_egg", + EvokerSpawnEgg => "minecraft:evoker_spawn_egg", + PillagerSpawnEgg => "minecraft:pillager_spawn_egg", + RavagerSpawnEgg => "minecraft:ravager_spawn_egg", + VindicatorSpawnEgg => "minecraft:vindicator_spawn_egg", + VexSpawnEgg => "minecraft:vex_spawn_egg", + BlazeSpawnEgg => "minecraft:blaze_spawn_egg", + GhastSpawnEgg => "minecraft:ghast_spawn_egg", + HappyGhastSpawnEgg => "minecraft:happy_ghast_spawn_egg", + HoglinSpawnEgg => "minecraft:hoglin_spawn_egg", + MagmaCubeSpawnEgg => "minecraft:magma_cube_spawn_egg", + PiglinSpawnEgg => "minecraft:piglin_spawn_egg", + PiglinBruteSpawnEgg => "minecraft:piglin_brute_spawn_egg", + StriderSpawnEgg => "minecraft:strider_spawn_egg", + ZoglinSpawnEgg => "minecraft:zoglin_spawn_egg", ZombifiedPiglinSpawnEgg => "minecraft:zombified_piglin_spawn_egg", - ZombieNautilusSpawnEgg => "minecraft:zombie_nautilus_spawn_egg", + EnderDragonSpawnEgg => "minecraft:ender_dragon_spawn_egg", + EndermanSpawnEgg => "minecraft:enderman_spawn_egg", + EndermiteSpawnEgg => "minecraft:endermite_spawn_egg", + ShulkerSpawnEgg => "minecraft:shulker_spawn_egg", ExperienceBottle => "minecraft:experience_bottle", FireCharge => "minecraft:fire_charge", WindCharge => "minecraft:wind_charge", @@ -3292,6 +3292,7 @@ enum Item { IronHorseArmor => "minecraft:iron_horse_armor", GoldenHorseArmor => "minecraft:golden_horse_armor", DiamondHorseArmor => "minecraft:diamond_horse_armor", + NetheriteHorseArmor => "minecraft:netherite_horse_armor", LeatherHorseArmor => "minecraft:leather_horse_armor", Lead => "minecraft:lead", NameTag => "minecraft:name_tag", @@ -4073,15 +4074,6 @@ enum RuleTest { } } -registry! { -enum Schedule { - Empty => "minecraft:empty", - Simple => "minecraft:simple", - VillagerBaby => "minecraft:villager_baby", - VillagerDefault => "minecraft:villager_default", -} -} - registry! { enum SensorKind { Dummy => "minecraft:dummy", @@ -5914,6 +5906,7 @@ enum SoundEvent { EntityZombieHorseAmbient => "minecraft:entity.zombie_horse.ambient", EntityZombieHorseAngry => "minecraft:entity.zombie_horse.angry", EntityZombieHorseDeath => "minecraft:entity.zombie_horse.death", + EntityZombieHorseEat => "minecraft:entity.zombie_horse.eat", EntityZombieHorseHurt => "minecraft:entity.zombie_horse.hurt", EntityZombieHurt => "minecraft:entity.zombie.hurt", EntityZombieInfect => "minecraft:entity.zombie.infect", @@ -6720,6 +6713,7 @@ enum TriggerKind { FishingRodHooked => "minecraft:fishing_rod_hooked", ChanneledLightning => "minecraft:channeled_lightning", ShotCrossbow => "minecraft:shot_crossbow", + SpearMobs => "minecraft:spear_mobs", KilledByArrow => "minecraft:killed_by_arrow", HeroOfTheVillage => "minecraft:hero_of_the_village", VoluntaryExile => "minecraft:voluntary_exile", @@ -6851,6 +6845,7 @@ enum DataComponentKind { PigVariant => "minecraft:pig/variant", CowVariant => "minecraft:cow/variant", ChickenVariant => "minecraft:chicken/variant", + ZombieNautilusVariant => "minecraft:zombie_nautilus/variant", FrogVariant => "minecraft:frog/variant", HorseVariant => "minecraft:horse/variant", PaintingVariant => "minecraft:painting/variant", @@ -7325,9 +7320,13 @@ enum OutgoingRpcMethods { registry! { enum AttributeKind { Boolean => "minecraft:boolean", + TriState => "minecraft:tri_state", Float => "minecraft:float", + AngleDegrees => "minecraft:angle_degrees", RgbColor => "minecraft:rgb_color", ArgbColor => "minecraft:argb_color", + MoonPhase => "minecraft:moon_phase", + Activity => "minecraft:activity", BedRule => "minecraft:bed_rule", Particle => "minecraft:particle", AmbientParticles => "minecraft:ambient_particles", @@ -7347,13 +7346,23 @@ enum EnvironmentAttribute { VisualWaterFogStartDistance => "minecraft:visual/water_fog_start_distance", VisualWaterFogEndDistance => "minecraft:visual/water_fog_end_distance", VisualSkyColor => "minecraft:visual/sky_color", + VisualSunriseSunsetColor => "minecraft:visual/sunrise_sunset_color", VisualCloudColor => "minecraft:visual/cloud_color", VisualCloudHeight => "minecraft:visual/cloud_height", + VisualSunAngle => "minecraft:visual/sun_angle", + VisualMoonAngle => "minecraft:visual/moon_angle", + VisualStarAngle => "minecraft:visual/star_angle", + VisualMoonPhase => "minecraft:visual/moon_phase", + VisualStarBrightness => "minecraft:visual/star_brightness", + VisualSkyLightColor => "minecraft:visual/sky_light_color", + VisualSkyLightFactor => "minecraft:visual/sky_light_factor", VisualDefaultDripstoneParticle => "minecraft:visual/default_dripstone_particle", VisualAmbientParticles => "minecraft:visual/ambient_particles", AudioBackgroundMusic => "minecraft:audio/background_music", AudioMusicVolume => "minecraft:audio/music_volume", AudioAmbientSounds => "minecraft:audio/ambient_sounds", + AudioFireflyBushSounds => "minecraft:audio/firefly_bush_sounds", + GameplaySkyLightLevel => "minecraft:gameplay/sky_light_level", GameplayCanStartRaid => "minecraft:gameplay/can_start_raid", GameplayWaterEvaporates => "minecraft:gameplay/water_evaporates", GameplayBedRule => "minecraft:gameplay/bed_rule", @@ -7361,8 +7370,18 @@ enum EnvironmentAttribute { GameplayNetherPortalSpawnsPiglin => "minecraft:gameplay/nether_portal_spawns_piglin", GameplayFastLava => "minecraft:gameplay/fast_lava", GameplayIncreasedFireBurnout => "minecraft:gameplay/increased_fire_burnout", + GameplayEyeblossomOpen => "minecraft:gameplay/eyeblossom_open", + GameplayTurtleEggHatchChance => "minecraft:gameplay/turtle_egg_hatch_chance", GameplayPiglinsZombify => "minecraft:gameplay/piglins_zombify", GameplaySnowGolemMelts => "minecraft:gameplay/snow_golem_melts", + GameplayCreakingActive => "minecraft:gameplay/creaking_active", + GameplaySurfaceSlimeSpawnChance => "minecraft:gameplay/surface_slime_spawn_chance", + GameplayCatWakingUpGiftChance => "minecraft:gameplay/cat_waking_up_gift_chance", + GameplayBeesStayInHive => "minecraft:gameplay/bees_stay_in_hive", + GameplayMonstersBurn => "minecraft:gameplay/monsters_burn", + GameplayCanPillagerPatrolSpawn => "minecraft:gameplay/can_pillager_patrol_spawn", + GameplayVillagerActivity => "minecraft:gameplay/villager_activity", + GameplayBabyVillagerActivity => "minecraft:gameplay/baby_villager_activity", } } diff --git a/codegen/lib/code/entity.py b/codegen/lib/code/entity.py index 18a7a04b2..e9da04046 100644 --- a/codegen/lib/code/entity.py +++ b/codegen/lib/code/entity.py @@ -124,7 +124,7 @@ def generate_entity_metadata(burger_entities_data: dict, mappings: Mappings): ArmadilloStateKind, CopperGolemStateKind, EntityDataItem, EntityDataValue, OptionalUnsignedInt, Pose, Quaternion, Rotations, SnifferStateKind, VillagerData, WeatheringCopperStateKind, }; -use crate::particle::Particle; +use crate::{HumanoidArm, particle::Particle}; #[derive(Error, Debug)] pub enum UpdateMetadataError { diff --git a/codegen/lib/download.py b/codegen/lib/download.py index de6e2f2df..fa9631880 100644 --- a/codegen/lib/download.py +++ b/codegen/lib/download.py @@ -137,7 +137,10 @@ def get_latest_fabric_api_version(): maven_metadata_xml = json.load(f) tree = ET.ElementTree(ET.fromstring(maven_metadata_xml)) - return tree.find(".//latest").text + name = tree.find(".//latest").text + if name.endswith('_unobfuscated'): + name = name[:-len('_unobfuscated')] + return name def get_latest_fabric_kotlin_version(): From 0db861dfc882204a3d6df9bcef1faca8605a1a59 Mon Sep 17 00:00:00 2001 From: mat Date: Tue, 11 Nov 2025 10:45:10 -1300 Subject: [PATCH 04/11] rename ResourceLocation to Identifier per mojmap changes --- CHANGELOG.md | 2 +- azalea-client/src/client.rs | 6 +-- .../src/plugins/packet/game/events.rs | 4 +- azalea-client/src/test_utils/simulation.rs | 12 ++--- .../change_dimension_to_nether_and_back.rs | 28 +++++----- ...espawn_entities_when_changing_dimension.rs | 12 ++--- azalea-client/tests/fast_login.rs | 6 +-- .../login_to_dimension_with_same_name.rs | 22 ++++---- .../tests/reply_to_ping_with_pong.rs | 6 +-- .../tests/set_health_before_login.rs | 6 +-- azalea-core/src/checksum.rs | 4 +- azalea-core/src/data_registry.rs | 14 ++--- azalea-core/src/position.rs | 10 ++-- azalea-core/src/registry_holder.rs | 28 +++++----- azalea-core/src/resource_location.rs | 52 +++++++++---------- azalea-core/src/sound.rs | 4 +- azalea-entity/src/attributes.rs | 16 +++--- azalea-entity/src/lib.rs | 4 +- azalea-inventory/src/components/mod.rs | 46 ++++++++-------- azalea-inventory/src/components/profile.rs | 4 +- azalea-inventory/src/item/consume_effect.rs | 4 +- azalea-physics/src/fluids.rs | 4 +- azalea-physics/tests/physics.rs | 26 +++++----- azalea-protocol/src/common/recipe.rs | 6 +-- azalea-protocol/src/common/tags.rs | 12 ++--- azalea-protocol/src/packets/common.rs | 6 +-- .../src/packets/config/c_cookie_request.rs | 4 +- .../src/packets/config/c_custom_payload.rs | 4 +- .../src/packets/config/c_registry_data.rs | 6 +-- .../src/packets/config/c_store_cookie.rs | 4 +- .../config/c_update_enabled_features.rs | 4 +- .../src/packets/config/s_cookie_response.rs | 4 +- .../packets/config/s_custom_click_action.rs | 4 +- .../src/packets/config/s_custom_payload.rs | 4 +- .../src/packets/game/c_add_entity.rs | 4 +- .../src/packets/game/c_commands.rs | 20 +++---- .../src/packets/game/c_cookie_request.rs | 4 +- .../src/packets/game/c_custom_payload.rs | 7 ++- azalea-protocol/src/packets/game/c_login.rs | 4 +- .../packets/game/c_select_advancements_tab.rs | 4 +- .../src/packets/game/c_stop_sound.rs | 6 +-- .../src/packets/game/c_store_cookie.rs | 4 +- .../src/packets/game/c_update_advancements.rs | 24 ++++----- .../src/packets/game/c_update_recipes.rs | 4 +- .../src/packets/game/c_waypoint.rs | 6 +-- .../src/packets/game/s_cookie_response.rs | 4 +- .../src/packets/game/s_custom_click_action.rs | 4 +- .../src/packets/game/s_custom_payload.rs | 7 ++- .../src/packets/game/s_place_recipe.rs | 4 +- .../packets/game/s_recipe_book_seen_recipe.rs | 4 +- .../src/packets/game/s_seen_advancements.rs | 6 +-- .../src/packets/game/s_set_jigsaw_block.rs | 8 +-- .../src/packets/login/c_cookie_request.rs | 4 +- .../src/packets/login/c_custom_query.rs | 4 +- .../src/packets/login/s_cookie_response.rs | 4 +- azalea-registry/src/lib.rs | 36 +++++-------- azalea-world/src/container.rs | 8 +-- azalea/src/lib.rs | 2 +- azalea/src/pathfinder/simulation.rs | 6 +-- codegen/lib/code/data_components.py | 12 ++--- codegen/lib/code/utils.py | 4 +- codegen/lib/extract.py | 10 ++-- 62 files changed, 288 insertions(+), 304 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3ddad98b1..67ba850ec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,7 +15,7 @@ is breaking anyways, semantic versioning is not followed. ### Changed -- Update to Minecraft 1.21.10. (help from @eihqnh) +- Update to Minecraft 1.21.11. (with help from @eihqnh) - Update to Bevy 0.17. - `Client::query`, `map_component`, and `map_get_component` were replaced by `Client::query_self`. - Rename `SendPacketEvent` to `SendGamePacketEvent` and `PingEvent` to `GamePingEvent`. diff --git a/azalea-client/src/client.rs b/azalea-client/src/client.rs index 6957619e7..727858220 100644 --- a/azalea-client/src/client.rs +++ b/azalea-client/src/client.rs @@ -10,7 +10,7 @@ use std::{ use azalea_auth::game_profile::GameProfile; use azalea_core::{ - data_registry::ResolvableDataRegistry, position::Vec3, resource_location::ResourceLocation, + data_registry::ResolvableDataRegistry, position::Vec3, resource_location::Identifier, tick::GameTick, }; use azalea_entity::{ @@ -487,7 +487,7 @@ impl Client { pub fn resolve_registry_name( &self, registry: &impl ResolvableDataRegistry, - ) -> Option { + ) -> Option { self.with_registry_holder(|registries| registry.resolve_name(registries)) } /// Resolve the given registry to its name and data and call the given @@ -502,7 +502,7 @@ impl Client { pub fn with_resolved_registry( &self, registry: impl ResolvableDataRegistry, - f: impl FnOnce(&ResourceLocation, &NbtCompound) -> R, + f: impl FnOnce(&Identifier, &NbtCompound) -> R, ) -> Option { self.with_registry_holder(|registries| { registry diff --git a/azalea-client/src/plugins/packet/game/events.rs b/azalea-client/src/plugins/packet/game/events.rs index 7c773b449..47ad5342a 100644 --- a/azalea-client/src/plugins/packet/game/events.rs +++ b/azalea-client/src/plugins/packet/game/events.rs @@ -1,7 +1,7 @@ use std::sync::{Arc, Weak}; use azalea_chat::FormattedText; -use azalea_core::resource_location::ResourceLocation; +use azalea_core::resource_location::Identifier; use azalea_protocol::packets::{ Packet, game::{ClientboundGamePacket, ClientboundPlayerCombatKill, ServerboundGamePacket}, @@ -145,7 +145,7 @@ pub struct ResourcePackEvent { #[derive(Message, Debug, Clone)] pub struct InstanceLoadedEvent { pub entity: Entity, - pub name: ResourceLocation, + pub name: Identifier, pub instance: Weak>, } diff --git a/azalea-client/src/test_utils/simulation.rs b/azalea-client/src/test_utils/simulation.rs index 8d52177a9..f857c40e5 100644 --- a/azalea-client/src/test_utils/simulation.rs +++ b/azalea-client/src/test_utils/simulation.rs @@ -7,7 +7,7 @@ use azalea_core::{ delta::LpVec3, game_type::{GameMode, OptionalGameType}, position::{BlockPos, ChunkPos, Vec3}, - resource_location::ResourceLocation, + resource_location::Identifier, tick::GameTick, }; use azalea_entity::metadata::PlayerMetadataBundle; @@ -76,9 +76,9 @@ impl Simulation { ConnectionProtocol::Configuration => {} ConnectionProtocol::Game => { simulation.receive_packet(ClientboundRegistryData { - registry_id: ResourceLocation::new("minecraft:dimension_type"), + registry_id: Identifier::new("minecraft:dimension_type"), entries: vec![( - ResourceLocation::new("minecraft:overworld"), + Identifier::new("minecraft:overworld"), Some(NbtCompound::from_values(vec![ ("height".into(), NbtTag::Int(384)), ("min_y".into(), NbtTag::Int(-64)), @@ -302,13 +302,13 @@ fn tick_app(app: &mut App) { pub fn default_login_packet() -> ClientboundLogin { make_basic_login_packet( DimensionType::new_raw(0), // overworld - ResourceLocation::new("minecraft:overworld"), + Identifier::new("minecraft:overworld"), ) } pub fn make_basic_login_packet( dimension_type: DimensionType, - dimension: ResourceLocation, + dimension: Identifier, ) -> ClientboundLogin { ClientboundLogin { player_id: MinecraftEntityId(0), @@ -338,7 +338,7 @@ pub fn make_basic_login_packet( pub fn make_basic_respawn_packet( dimension_type: DimensionType, - dimension: ResourceLocation, + dimension: Identifier, ) -> ClientboundRespawn { ClientboundRespawn { common: CommonPlayerSpawnInfo { diff --git a/azalea-client/tests/change_dimension_to_nether_and_back.rs b/azalea-client/tests/change_dimension_to_nether_and_back.rs index e3b5d96e5..d4f68564d 100644 --- a/azalea-client/tests/change_dimension_to_nether_and_back.rs +++ b/azalea-client/tests/change_dimension_to_nether_and_back.rs @@ -1,5 +1,5 @@ use azalea_client::{InConfigState, InGameState, test_utils::prelude::*}; -use azalea_core::{position::ChunkPos, resource_location::ResourceLocation}; +use azalea_core::{position::ChunkPos, resource_location::Identifier}; use azalea_entity::LocalEntity; use azalea_protocol::packets::{ ConnectionProtocol, Packet, @@ -19,11 +19,11 @@ fn test_change_dimension_to_nether_and_back() { fn generic_test_change_dimension_to_nether_and_back(using_respawn: bool) { let make_basic_login_or_respawn_packet = if using_respawn { - |dimension: DimensionType, instance_name: ResourceLocation| { + |dimension: DimensionType, instance_name: Identifier| { make_basic_respawn_packet(dimension, instance_name).into_variant() } } else { - |dimension: DimensionType, instance_name: ResourceLocation| { + |dimension: DimensionType, instance_name: Identifier| { make_basic_login_packet(dimension, instance_name).into_variant() } }; @@ -33,26 +33,26 @@ fn generic_test_change_dimension_to_nether_and_back(using_respawn: bool) { assert!(!simulation.has_component::()); simulation.receive_packet(ClientboundRegistryData { - registry_id: ResourceLocation::new("minecraft:dimension_type"), + registry_id: Identifier::new("minecraft:dimension_type"), entries: vec![ ( // this dimension should never be created. it just exists to make sure we're not // hard-coding the dimension type id anywhere. - ResourceLocation::new("azalea:fakedimension"), + Identifier::new("azalea:fakedimension"), Some(NbtCompound::from_values(vec![ ("height".into(), NbtTag::Int(16)), ("min_y".into(), NbtTag::Int(0)), ])), ), ( - ResourceLocation::new("minecraft:overworld"), + Identifier::new("minecraft:overworld"), Some(NbtCompound::from_values(vec![ ("height".into(), NbtTag::Int(384)), ("min_y".into(), NbtTag::Int(-64)), ])), ), ( - ResourceLocation::new("minecraft:nether"), + Identifier::new("minecraft:nether"), Some(NbtCompound::from_values(vec![ ("height".into(), NbtTag::Int(256)), ("min_y".into(), NbtTag::Int(0)), @@ -76,13 +76,13 @@ fn generic_test_change_dimension_to_nether_and_back(using_respawn: bool) { simulation.receive_packet(make_basic_login_packet( DimensionType::new_raw(1), // overworld - ResourceLocation::new("azalea:a"), + Identifier::new("azalea:a"), )); simulation.tick(); assert_eq!( *simulation.component::(), - ResourceLocation::new("azalea:a"), + Identifier::new("azalea:a"), "InstanceName should be azalea:a after setting dimension to that" ); @@ -99,7 +99,7 @@ fn generic_test_change_dimension_to_nether_and_back(using_respawn: bool) { simulation.receive_packet(make_basic_login_or_respawn_packet( DimensionType::new_raw(2), // nether - ResourceLocation::new("azalea:b"), + Identifier::new("azalea:b"), )); simulation.tick(); @@ -109,7 +109,7 @@ fn generic_test_change_dimension_to_nether_and_back(using_respawn: bool) { ); assert_eq!( *simulation.component::(), - ResourceLocation::new("azalea:b"), + Identifier::new("azalea:b"), "InstanceName should be azalea:b after changing dimensions to that" ); @@ -121,7 +121,7 @@ fn generic_test_change_dimension_to_nether_and_back(using_respawn: bool) { .expect("chunk should exist"); simulation.receive_packet(make_basic_login_or_respawn_packet( DimensionType::new_raw(2), // nether - ResourceLocation::new("minecraft:nether"), + Identifier::new("minecraft:nether"), )); simulation.tick(); @@ -131,13 +131,13 @@ fn generic_test_change_dimension_to_nether_and_back(using_respawn: bool) { simulation.receive_packet(make_basic_login_packet( DimensionType::new_raw(1), // overworld - ResourceLocation::new("azalea:a"), + Identifier::new("azalea:a"), )); simulation.tick(); assert_eq!( *simulation.component::(), - ResourceLocation::new("azalea:a"), + Identifier::new("azalea:a"), "InstanceName should be azalea:a after setting dimension back to that" ); assert!( diff --git a/azalea-client/tests/despawn_entities_when_changing_dimension.rs b/azalea-client/tests/despawn_entities_when_changing_dimension.rs index 9143b3eb6..bd57b610d 100644 --- a/azalea-client/tests/despawn_entities_when_changing_dimension.rs +++ b/azalea-client/tests/despawn_entities_when_changing_dimension.rs @@ -1,5 +1,5 @@ use azalea_client::test_utils::prelude::*; -use azalea_core::{position::ChunkPos, resource_location::ResourceLocation}; +use azalea_core::{position::ChunkPos, resource_location::Identifier}; use azalea_entity::metadata::Cow; use azalea_protocol::packets::{ ConnectionProtocol, @@ -15,17 +15,17 @@ fn test_despawn_entities_when_changing_dimension() { let mut simulation = Simulation::new(ConnectionProtocol::Configuration); simulation.receive_packet(ClientboundRegistryData { - registry_id: ResourceLocation::new("minecraft:dimension_type"), + registry_id: Identifier::new("minecraft:dimension_type"), entries: vec![ ( - ResourceLocation::new("minecraft:overworld"), + Identifier::new("minecraft:overworld"), Some(NbtCompound::from_values(vec![ ("height".into(), NbtTag::Int(384)), ("min_y".into(), NbtTag::Int(-64)), ])), ), ( - ResourceLocation::new("minecraft:nether"), + Identifier::new("minecraft:nether"), Some(NbtCompound::from_values(vec![ ("height".into(), NbtTag::Int(256)), ("min_y".into(), NbtTag::Int(0)), @@ -45,7 +45,7 @@ fn test_despawn_entities_when_changing_dimension() { simulation.receive_packet(make_basic_login_packet( DimensionType::new_raw(0), // overworld - ResourceLocation::new("azalea:a"), + Identifier::new("azalea:a"), )); simulation.tick(); @@ -65,7 +65,7 @@ fn test_despawn_entities_when_changing_dimension() { simulation.receive_packet(make_basic_respawn_packet( DimensionType::new_raw(1), // nether - ResourceLocation::new("azalea:b"), + Identifier::new("azalea:b"), )); simulation.tick(); diff --git a/azalea-client/tests/fast_login.rs b/azalea-client/tests/fast_login.rs index f11ada9c8..a73ed4905 100644 --- a/azalea-client/tests/fast_login.rs +++ b/azalea-client/tests/fast_login.rs @@ -1,5 +1,5 @@ use azalea_client::{InConfigState, test_utils::prelude::*}; -use azalea_core::resource_location::ResourceLocation; +use azalea_core::resource_location::Identifier; use azalea_entity::metadata::Health; use azalea_protocol::packets::{ ConnectionProtocol, @@ -16,9 +16,9 @@ fn test_fast_login() { assert!(simulation.has_component::()); simulation.receive_packet(ClientboundRegistryData { - registry_id: ResourceLocation::new("minecraft:dimension_type"), + registry_id: Identifier::new("minecraft:dimension_type"), entries: vec![( - ResourceLocation::new("minecraft:overworld"), + Identifier::new("minecraft:overworld"), Some(NbtCompound::from_values(vec![ ("height".into(), NbtTag::Int(384)), ("min_y".into(), NbtTag::Int(-64)), diff --git a/azalea-client/tests/login_to_dimension_with_same_name.rs b/azalea-client/tests/login_to_dimension_with_same_name.rs index eb1db2a84..f25949c67 100644 --- a/azalea-client/tests/login_to_dimension_with_same_name.rs +++ b/azalea-client/tests/login_to_dimension_with_same_name.rs @@ -1,7 +1,7 @@ use azalea_client::{ InConfigState, InGameState, local_player::InstanceHolder, test_utils::prelude::*, }; -use azalea_core::{position::ChunkPos, resource_location::ResourceLocation}; +use azalea_core::{position::ChunkPos, resource_location::Identifier}; use azalea_entity::LocalEntity; use azalea_protocol::packets::{ ConnectionProtocol, Packet, @@ -22,11 +22,11 @@ fn test_login_to_dimension_with_same_name() { fn generic_test_login_to_dimension_with_same_name(using_respawn: bool) { let make_basic_login_or_respawn_packet = if using_respawn { - |dimension: DimensionType, instance_name: ResourceLocation| { + |dimension: DimensionType, instance_name: Identifier| { make_basic_respawn_packet(dimension, instance_name).into_variant() } } else { - |dimension: DimensionType, instance_name: ResourceLocation| { + |dimension: DimensionType, instance_name: Identifier| { make_basic_login_packet(dimension, instance_name).into_variant() } }; @@ -36,9 +36,9 @@ fn generic_test_login_to_dimension_with_same_name(using_respawn: bool) { assert!(!simulation.has_component::()); simulation.receive_packet(ClientboundRegistryData { - registry_id: ResourceLocation::new("minecraft:dimension_type"), + registry_id: Identifier::new("minecraft:dimension_type"), entries: vec![( - ResourceLocation::new("minecraft:overworld"), + Identifier::new("minecraft:overworld"), Some(NbtCompound::from_values(vec![ ("height".into(), NbtTag::Int(384)), ("min_y".into(), NbtTag::Int(-64)), @@ -61,13 +61,13 @@ fn generic_test_login_to_dimension_with_same_name(using_respawn: bool) { simulation.receive_packet(make_basic_login_packet( DimensionType::new_raw(0), // overworld - ResourceLocation::new("azalea:overworld"), + Identifier::new("azalea:overworld"), )); simulation.tick(); assert_eq!( *simulation.component::(), - ResourceLocation::new("azalea:overworld"), + Identifier::new("azalea:overworld"), "InstanceName should be azalea:overworld after setting dimension to that" ); @@ -84,9 +84,9 @@ fn generic_test_login_to_dimension_with_same_name(using_respawn: bool) { simulation.receive_packet(ClientboundStartConfiguration); simulation.receive_packet(ClientboundRegistryData { - registry_id: ResourceLocation::new("minecraft:dimension_type"), + registry_id: Identifier::new("minecraft:dimension_type"), entries: vec![( - ResourceLocation::new("minecraft:overworld"), + Identifier::new("minecraft:overworld"), Some(NbtCompound::from_values(vec![ ("height".into(), NbtTag::Int(256)), ("min_y".into(), NbtTag::Int(0)), @@ -98,7 +98,7 @@ fn generic_test_login_to_dimension_with_same_name(using_respawn: bool) { simulation.receive_packet(ClientboundFinishConfiguration); simulation.receive_packet(make_basic_login_or_respawn_packet( DimensionType::new_raw(0), - ResourceLocation::new("azalea:overworld"), + Identifier::new("azalea:overworld"), )); simulation.tick(); @@ -108,7 +108,7 @@ fn generic_test_login_to_dimension_with_same_name(using_respawn: bool) { ); assert_eq!( *simulation.component::(), - ResourceLocation::new("azalea:overworld"), + Identifier::new("azalea:overworld"), "InstanceName should still be azalea:overworld after changing dimensions to that" ); assert_eq!( diff --git a/azalea-client/tests/reply_to_ping_with_pong.rs b/azalea-client/tests/reply_to_ping_with_pong.rs index 444ec41cc..ce3a860c4 100644 --- a/azalea-client/tests/reply_to_ping_with_pong.rs +++ b/azalea-client/tests/reply_to_ping_with_pong.rs @@ -4,7 +4,7 @@ use azalea_client::{ packet::{config::SendConfigPacketEvent, game::SendGamePacketEvent}, test_utils::prelude::*, }; -use azalea_core::resource_location::ResourceLocation; +use azalea_core::resource_location::Identifier; use azalea_protocol::packets::{ ConnectionProtocol, config::{ @@ -42,9 +42,9 @@ fn reply_to_ping_with_pong() { // move into game state and test ClientboundPing there simulation.receive_packet(ClientboundRegistryData { - registry_id: ResourceLocation::new("minecraft:dimension_type"), + registry_id: Identifier::new("minecraft:dimension_type"), entries: vec![( - ResourceLocation::new("minecraft:overworld"), + Identifier::new("minecraft:overworld"), Some(NbtCompound::from_values(vec![ ("height".into(), NbtTag::Int(384)), ("min_y".into(), NbtTag::Int(-64)), diff --git a/azalea-client/tests/set_health_before_login.rs b/azalea-client/tests/set_health_before_login.rs index 367bd10cd..1ad5ab219 100644 --- a/azalea-client/tests/set_health_before_login.rs +++ b/azalea-client/tests/set_health_before_login.rs @@ -1,5 +1,5 @@ use azalea_client::{InConfigState, test_utils::prelude::*}; -use azalea_core::resource_location::ResourceLocation; +use azalea_core::resource_location::Identifier; use azalea_entity::{LocalEntity, metadata::Health}; use azalea_protocol::packets::{ ConnectionProtocol, @@ -16,9 +16,9 @@ fn test_set_health_before_login() { assert!(simulation.has_component::()); simulation.receive_packet(ClientboundRegistryData { - registry_id: ResourceLocation::new("minecraft:dimension_type"), + registry_id: Identifier::new("minecraft:dimension_type"), entries: vec![( - ResourceLocation::new("minecraft:overworld"), + Identifier::new("minecraft:overworld"), Some(NbtCompound::from_values(vec![ ("height".into(), NbtTag::Int(384)), ("min_y".into(), NbtTag::Int(-64)), diff --git a/azalea-core/src/checksum.rs b/azalea-core/src/checksum.rs index 4661d171b..2bd92bda5 100644 --- a/azalea-core/src/checksum.rs +++ b/azalea-core/src/checksum.rs @@ -6,7 +6,7 @@ use serde::{Serialize, ser}; use thiserror::Error; use tracing::error; -use crate::{registry_holder::RegistryHolder, resource_location::ResourceLocation}; +use crate::{registry_holder::RegistryHolder, resource_location::Identifier}; #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Default, AzBuf)] pub struct Checksum(pub u32); @@ -200,7 +200,7 @@ impl<'a, 'r> ser::Serializer for ChecksumSerializer<'a, 'r> { let value = self .registries .map - .get(&ResourceLocation::from(name)) + .get(&Identifier::from(name)) .and_then(|r| r.get_index(variant_index as usize)) .map(|r| r.0.to_string()) .unwrap_or_default(); diff --git a/azalea-core/src/data_registry.rs b/azalea-core/src/data_registry.rs index 6e2c29ffc..8bc0f02ce 100644 --- a/azalea-core/src/data_registry.rs +++ b/azalea-core/src/data_registry.rs @@ -3,23 +3,23 @@ use std::{io::Cursor, str::FromStr}; use azalea_registry::DataRegistry; use simdnbt::owned::NbtCompound; -use crate::{registry_holder::RegistryHolder, resource_location::ResourceLocation}; +use crate::{registry_holder::RegistryHolder, resource_location::Identifier}; pub trait ResolvableDataRegistry: DataRegistry { - fn resolve_name(&self, registries: &RegistryHolder) -> Option { + fn resolve_name(&self, registries: &RegistryHolder) -> Option { self.resolve(registries).map(|(name, _)| name.clone()) } fn resolve<'a>( &self, registries: &'a RegistryHolder, - ) -> Option<(&'a ResourceLocation, &'a NbtCompound)> { - let name_resourcelocation = ResourceLocation::from_str(Self::NAME).unwrap_or_else(|_| { + ) -> Option<(&'a Identifier, &'a NbtCompound)> { + let name_ident = Identifier::from_str(Self::NAME).unwrap_or_else(|_| { panic!( - "Name for registry should be a valid ResourceLocation: {}", + "Name for registry should be a valid Identifier: {}", Self::NAME ) }); - let registry_values = registries.map.get(&name_resourcelocation)?; + let registry_values = registries.map.get(&name_ident)?; let resolved = registry_values.get_index(self.protocol_id() as usize)?; Some(resolved) } @@ -27,7 +27,7 @@ pub trait ResolvableDataRegistry: DataRegistry { fn resolve_and_deserialize( &self, registries: &RegistryHolder, - ) -> Option> { + ) -> Option> { let (name, value) = self.resolve(registries)?; let mut nbt_bytes = Vec::new(); diff --git a/azalea-core/src/position.rs b/azalea-core/src/position.rs index 7feb24d25..9fe47298f 100644 --- a/azalea-core/src/position.rs +++ b/azalea-core/src/position.rs @@ -16,9 +16,7 @@ use azalea_buf::{AzBuf, AzaleaRead, AzaleaWrite, BufReadError}; use serde::{Serialize, Serializer}; use simdnbt::Deserialize; -use crate::{ - codec_utils::IntArray, direction::Direction, math, resource_location::ResourceLocation, -}; +use crate::{codec_utils::IntArray, direction::Direction, math, resource_location::Identifier}; macro_rules! vec3_impl { ($name:ident, $type:ty) => { @@ -715,7 +713,7 @@ impl nohash_hasher::IsEnabled for ChunkSectionBlockPos {} #[derive(Debug, Clone, PartialEq, Serialize)] pub struct GlobalPos { // this is actually a ResourceKey in Minecraft, but i don't think it matters? - pub dimension: ResourceLocation, + pub dimension: Identifier, pub pos: BlockPos, } @@ -950,7 +948,7 @@ impl AzaleaRead for BlockPos { impl AzaleaRead for GlobalPos { fn azalea_read(buf: &mut Cursor<&[u8]>) -> Result { Ok(GlobalPos { - dimension: ResourceLocation::azalea_read(buf)?, + dimension: Identifier::azalea_read(buf)?, pos: BlockPos::azalea_read(buf)?, }) } @@ -979,7 +977,7 @@ impl AzaleaWrite for BlockPos { impl AzaleaWrite for GlobalPos { fn azalea_write(&self, buf: &mut impl Write) -> io::Result<()> { - ResourceLocation::azalea_write(&self.dimension, buf)?; + Identifier::azalea_write(&self.dimension, buf)?; BlockPos::azalea_write(&self.pos, buf)?; Ok(()) diff --git a/azalea-core/src/registry_holder.rs b/azalea-core/src/registry_holder.rs index d7d5375f1..6a2f1967e 100644 --- a/azalea-core/src/registry_holder.rs +++ b/azalea-core/src/registry_holder.rs @@ -15,7 +15,7 @@ use simdnbt::{ }; use tracing::error; -use crate::{codec_utils::*, resource_location::ResourceLocation}; +use crate::{codec_utils::*, resource_location::Identifier}; /// The base of the registry. /// @@ -27,15 +27,11 @@ use crate::{codec_utils::*, resource_location::ResourceLocation}; /// world. #[derive(Default, Debug, Clone)] pub struct RegistryHolder { - pub map: HashMap>, + pub map: HashMap>, } impl RegistryHolder { - pub fn append( - &mut self, - id: ResourceLocation, - entries: Vec<(ResourceLocation, Option)>, - ) { + pub fn append(&mut self, id: Identifier, entries: Vec<(Identifier, Option)>) { let map = self.map.entry(id).or_default(); for (key, value) in entries { if let Some(value) = value { @@ -50,7 +46,7 @@ impl RegistryHolder { /// /// You should do some type of error handling if this returns `None`. pub fn dimension_type(&self) -> Option> { - let name = ResourceLocation::new("minecraft:dimension_type"); + let name = Identifier::new("minecraft:dimension_type"); match self.get(&name) { Some(Ok(registry)) => Some(registry), Some(Err(err)) => { @@ -66,7 +62,7 @@ impl RegistryHolder { fn get( &self, - name: &ResourceLocation, + name: &Identifier, ) -> Option, simdnbt::DeserializeError>> { // this is suboptimal, ideally simdnbt should just have a way to get the // owned::NbtCompound as a borrow::NbtCompound @@ -96,14 +92,14 @@ impl RegistryHolder { /// A collection of values for a certain type of registry data. #[derive(Debug, Clone)] pub struct RegistryType { - pub map: HashMap, + pub map: HashMap, } #[derive(Debug, Clone, Serialize, Deserialize)] #[cfg_attr(feature = "strict_registry", simdnbt(deny_unknown_fields))] pub struct TrimMaterialElement { pub asset_name: String, - pub ingredient: ResourceLocation, + pub ingredient: Identifier, pub item_model_index: f32, pub override_armor_materials: HashMap, pub description: Option, @@ -146,13 +142,13 @@ pub struct DimensionTypeElement { pub ambient_light: f32, pub bed_works: bool, pub coordinate_scale: f32, - pub effects: ResourceLocation, + pub effects: Identifier, pub fixed_time: Option, pub has_ceiling: bool, pub has_raids: bool, pub has_skylight: bool, pub height: u32, - pub infiniburn: ResourceLocation, + pub infiniburn: Identifier, pub logical_height: u32, pub min_y: i32, pub monster_spawn_block_light_limit: u32, @@ -186,7 +182,7 @@ pub enum MonsterSpawnLightLevel { /// A complex value with a type, minimum, and maximum. /// Vanilla minecraft only uses one type, "minecraft:uniform". Complex { - kind: ResourceLocation, + kind: Identifier, value: MonsterSpawnLightLevelValues, }, } @@ -196,7 +192,7 @@ impl FromNbtTag for MonsterSpawnLightLevel { if let Some(value) = tag.int() { Some(Self::Simple(value as u32)) } else if let Some(value) = tag.compound() { - let kind = ResourceLocation::from_nbt_tag(value.get("type")?)?; + let kind = Identifier::from_nbt_tag(value.get("type")?)?; let value = MonsterSpawnLightLevelValues::from_nbt_tag(value.get("value")?)?; Some(Self::Complex { kind, value }) } else { @@ -286,7 +282,7 @@ pub struct BiomeEffects { pub music: Option, pub mood_sound: BiomeMoodSound, pub additions_sound: Option, - pub ambient_sound: Option, + pub ambient_sound: Option, pub particle: Option, } diff --git a/azalea-core/src/resource_location.rs b/azalea-core/src/resource_location.rs index 86dba1280..ce21a7024 100644 --- a/azalea-core/src/resource_location.rs +++ b/azalea-core/src/resource_location.rs @@ -11,7 +11,7 @@ use serde::{Deserialize, Deserializer, Serialize, Serializer, de}; use simdnbt::{FromNbtTag, ToNbtTag, owned::NbtTag}; #[derive(Hash, Clone, PartialEq, Eq, Default)] -pub struct ResourceLocation { +pub struct Identifier { pub namespace: String, pub path: String, } @@ -19,8 +19,8 @@ pub struct ResourceLocation { static DEFAULT_NAMESPACE: &str = "minecraft"; // static REALMS_NAMESPACE: &str = "realms"; -impl ResourceLocation { - pub fn new(resource_string: &str) -> ResourceLocation { +impl Identifier { + pub fn new(resource_string: &str) -> Identifier { let sep_byte_position_option = resource_string.chars().position(|c| c == ':'); let (namespace, path) = if let Some(sep_byte_position) = sep_byte_position_option { if sep_byte_position == 0 { @@ -34,49 +34,49 @@ impl ResourceLocation { } else { (DEFAULT_NAMESPACE, resource_string) }; - ResourceLocation { + Identifier { namespace: namespace.to_string(), path: path.to_string(), } } } -impl fmt::Display for ResourceLocation { +impl fmt::Display for Identifier { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { write!(f, "{}:{}", self.namespace, self.path) } } -impl fmt::Debug for ResourceLocation { +impl fmt::Debug for Identifier { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { write!(f, "{}:{}", self.namespace, self.path) } } -impl FromStr for ResourceLocation { +impl FromStr for Identifier { type Err = &'static str; fn from_str(s: &str) -> Result { - Ok(ResourceLocation::new(s)) + Ok(Identifier::new(s)) } } -impl From<&str> for ResourceLocation { +impl From<&str> for Identifier { fn from(s: &str) -> Self { - ResourceLocation::new(s) + Identifier::new(s) } } -impl AzaleaRead for ResourceLocation { +impl AzaleaRead for Identifier { fn azalea_read(buf: &mut Cursor<&[u8]>) -> Result { let location_string = String::azalea_read(buf)?; - Ok(ResourceLocation::new(&location_string)) + Ok(Identifier::new(&location_string)) } } -impl AzaleaWrite for ResourceLocation { +impl AzaleaWrite for Identifier { fn azalea_write(&self, buf: &mut impl Write) -> io::Result<()> { self.to_string().azalea_write(buf) } } -impl Serialize for ResourceLocation { +impl Serialize for Identifier { fn serialize(&self, serializer: S) -> Result where S: Serializer, @@ -85,30 +85,30 @@ impl Serialize for ResourceLocation { } } -impl<'de> Deserialize<'de> for ResourceLocation { +impl<'de> Deserialize<'de> for Identifier { fn deserialize(deserializer: D) -> Result where D: Deserializer<'de>, { let s = String::deserialize(deserializer)?; if s.contains(':') { - Ok(ResourceLocation::new(&s)) + Ok(Identifier::new(&s)) } else { Err(de::Error::invalid_value( de::Unexpected::Str(&s), - &"a valid ResourceLocation", + &"a valid Identifier", )) } } } -impl FromNbtTag for ResourceLocation { +impl FromNbtTag for Identifier { fn from_nbt_tag(tag: simdnbt::borrow::NbtTag) -> Option { tag.string().and_then(|s| s.to_str().parse().ok()) } } -impl ToNbtTag for ResourceLocation { +impl ToNbtTag for Identifier { fn to_nbt_tag(self) -> NbtTag { NbtTag::String(self.to_string().into()) } @@ -120,25 +120,25 @@ mod tests { #[test] fn basic_resource_location() { - let r = ResourceLocation::new("abcdef:ghijkl"); + let r = Identifier::new("abcdef:ghijkl"); assert_eq!(r.namespace, "abcdef"); assert_eq!(r.path, "ghijkl"); } #[test] fn no_namespace() { - let r = ResourceLocation::new("azalea"); + let r = Identifier::new("azalea"); assert_eq!(r.namespace, "minecraft"); assert_eq!(r.path, "azalea"); } #[test] fn colon_start() { - let r = ResourceLocation::new(":azalea"); + let r = Identifier::new(":azalea"); assert_eq!(r.namespace, "minecraft"); assert_eq!(r.path, "azalea"); } #[test] fn colon_end() { - let r = ResourceLocation::new("azalea:"); + let r = Identifier::new("azalea:"); assert_eq!(r.namespace, "azalea"); assert_eq!(r.path, ""); } @@ -146,15 +146,15 @@ mod tests { #[test] fn azbuf_resource_location() { let mut buf = Vec::new(); - ResourceLocation::new("minecraft:dirt") + Identifier::new("minecraft:dirt") .azalea_write(&mut buf) .unwrap(); let mut buf = Cursor::new(&buf[..]); assert_eq!( - ResourceLocation::azalea_read(&mut buf).unwrap(), - ResourceLocation::new("minecraft:dirt") + Identifier::azalea_read(&mut buf).unwrap(), + Identifier::new("minecraft:dirt") ); } } diff --git a/azalea-core/src/sound.rs b/azalea-core/src/sound.rs index c2aa1ef3f..a55cc2422 100644 --- a/azalea-core/src/sound.rs +++ b/azalea-core/src/sound.rs @@ -1,10 +1,10 @@ use azalea_buf::AzBuf; use serde::Serialize; -use crate::resource_location::ResourceLocation; +use crate::resource_location::Identifier; #[derive(Clone, Debug, PartialEq, AzBuf, Serialize)] pub struct CustomSound { - pub sound_id: ResourceLocation, + pub sound_id: Identifier, pub range: Option, } diff --git a/azalea-entity/src/attributes.rs b/azalea-entity/src/attributes.rs index 754237467..644aeb80f 100644 --- a/azalea-entity/src/attributes.rs +++ b/azalea-entity/src/attributes.rs @@ -3,7 +3,7 @@ use std::collections::{HashMap, hash_map}; use azalea_buf::AzBuf; -use azalea_core::resource_location::ResourceLocation; +use azalea_core::resource_location::Identifier; use bevy_ecs::component::Component; use thiserror::Error; @@ -23,7 +23,7 @@ pub struct Attributes { #[derive(Clone, Debug)] pub struct AttributeInstance { pub base: f64, - modifiers_by_id: HashMap, + modifiers_by_id: HashMap, // TODO: add cache } @@ -73,14 +73,14 @@ impl AttributeInstance { /// Remove the modifier with the given ID from this attribute, returning /// the previous modifier is present. - pub fn remove(&mut self, id: &ResourceLocation) -> Option { + pub fn remove(&mut self, id: &Identifier) -> Option { self.modifiers_by_id.remove(id) } } #[derive(Clone, Debug, AzBuf, PartialEq)] pub struct AttributeModifier { - pub id: ResourceLocation, + pub id: Identifier, pub amount: f64, pub operation: AttributeModifierOperation, } @@ -94,21 +94,21 @@ pub enum AttributeModifierOperation { pub fn sprinting_modifier() -> AttributeModifier { AttributeModifier { - id: ResourceLocation::new("sprinting"), + id: Identifier::new("sprinting"), amount: 0.3f32 as f64, operation: AttributeModifierOperation::AddMultipliedTotal, } } pub fn base_attack_speed_modifier(amount: f64) -> AttributeModifier { AttributeModifier { - id: ResourceLocation::new("base_attack_speed"), + id: Identifier::new("base_attack_speed"), amount, operation: AttributeModifierOperation::AddValue, } } pub fn creative_block_interaction_range_modifier() -> AttributeModifier { AttributeModifier { - id: ResourceLocation::new("creative_mode_block_range"), + id: Identifier::new("creative_mode_block_range"), amount: 0.5, operation: AttributeModifierOperation::AddValue, } @@ -116,7 +116,7 @@ pub fn creative_block_interaction_range_modifier() -> AttributeModifier { pub fn creative_entity_interaction_range_modifier() -> AttributeModifier { AttributeModifier { - id: ResourceLocation::new("creative_mode_entity_range"), + id: Identifier::new("creative_mode_entity_range"), amount: 2.0, operation: AttributeModifierOperation::AddValue, } diff --git a/azalea-entity/src/lib.rs b/azalea-entity/src/lib.rs index 4645e4ba0..e669e0ddc 100644 --- a/azalea-entity/src/lib.rs +++ b/azalea-entity/src/lib.rs @@ -24,7 +24,7 @@ use azalea_core::{ aabb::Aabb, math, position::{BlockPos, ChunkPos, Vec3}, - resource_location::ResourceLocation, + resource_location::Identifier, }; use azalea_registry::EntityKind; use azalea_world::{ChunkStorage, InstanceName}; @@ -494,7 +494,7 @@ impl EntityBundle { uuid: Uuid, pos: Vec3, kind: azalea_registry::EntityKind, - world_name: ResourceLocation, + world_name: Identifier, ) -> Self { let dimensions = EntityDimensions::from(kind); diff --git a/azalea-inventory/src/components/mod.rs b/azalea-inventory/src/components/mod.rs index e979b7bf6..a901ab91c 100644 --- a/azalea-inventory/src/components/mod.rs +++ b/azalea-inventory/src/components/mod.rs @@ -16,7 +16,7 @@ use azalea_core::{ filterable::Filterable, position::GlobalPos, registry_holder::{DamageTypeElement, RegistryHolder}, - resource_location::ResourceLocation, + resource_location::Identifier, sound::CustomSound, }; use azalea_registry::{ @@ -379,7 +379,7 @@ pub struct BlockStatePropertyMatcher { #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] pub struct BlockPredicate { #[serde(skip_serializing_if = "is_default")] - pub blocks: Option>, + pub blocks: Option>, #[serde(skip_serializing_if = "is_default")] pub properties: Option>, #[serde(skip_serializing_if = "is_default")] @@ -433,7 +433,7 @@ pub enum AttributeModifierOperation { // circular dependency) #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] pub struct AttributeModifier { - pub id: ResourceLocation, + pub id: Identifier, pub amount: f64, pub operation: AttributeModifierOperation, } @@ -565,7 +565,7 @@ impl Food { #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] pub struct ToolRule { - pub blocks: HolderSet, + pub blocks: HolderSet, #[serde(skip_serializing_if = "is_default")] pub speed: Option, #[serde(skip_serializing_if = "is_default")] @@ -786,7 +786,7 @@ pub struct OminousBottleAmplifier { #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] #[serde(transparent)] pub struct Recipes { - pub recipes: Vec, + pub recipes: Vec, } #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] @@ -846,7 +846,7 @@ impl Default for Fireworks { #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] #[serde(transparent)] pub struct NoteBlockSound { - pub sound: ResourceLocation, + pub sound: Identifier, } #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] @@ -937,7 +937,7 @@ pub struct ContainerLoot { #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] #[serde(untagged)] pub enum JukeboxPlayable { - Referenced(ResourceLocation), + Referenced(Identifier), Direct(Holder), } @@ -1013,7 +1013,7 @@ pub struct UseRemainder { pub struct UseCooldown { pub seconds: f32, #[serde(skip_serializing_if = "is_default")] - pub cooldown_group: Option, + pub cooldown_group: Option, } impl UseCooldown { @@ -1038,19 +1038,19 @@ pub struct Enchantable { #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] pub struct Repairable { - pub items: HolderSet, + pub items: HolderSet, } #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] #[serde(transparent)] pub struct ItemModel { - pub resource_location: ResourceLocation, + pub resource_location: Identifier, } #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] pub struct DamageResistant { /// In vanilla this only allows tag keys, i.e. it must start with '#' - pub types: ResourceLocation, + pub types: Identifier, } #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] @@ -1059,11 +1059,11 @@ pub struct Equippable { #[serde(skip_serializing_if = "is_default_equip_sound")] pub equip_sound: SoundEvent, #[serde(skip_serializing_if = "is_default")] - pub asset_id: Option, + pub asset_id: Option, #[serde(skip_serializing_if = "is_default")] - pub camera_overlay: Option, + pub camera_overlay: Option, #[serde(skip_serializing_if = "is_default")] - pub allowed_entities: Option>, + pub allowed_entities: Option>, #[serde(skip_serializing_if = "is_true")] pub dispensable: bool, #[serde(skip_serializing_if = "is_true")] @@ -1126,7 +1126,7 @@ pub struct Glider; #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] #[serde(transparent)] pub struct TooltipStyle { - pub resource_location: ResourceLocation, + pub resource_location: Identifier, } #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] @@ -1275,7 +1275,7 @@ pub struct PaintingVariantData { pub width: i32, #[var] pub height: i32, - pub asset_id: ResourceLocation, + pub asset_id: Identifier, #[serde(skip_serializing_if = "is_default")] pub title: Option, #[serde(skip_serializing_if = "is_default")] @@ -1351,7 +1351,7 @@ pub struct BlocksAttacks { #[serde(skip_serializing_if = "is_default")] pub item_damage: ItemDamageFunction, #[serde(skip_serializing_if = "is_default")] - pub bypassed_by: Option, + pub bypassed_by: Option, #[serde(skip_serializing_if = "is_default")] pub block_sound: Option>, #[serde(skip_serializing_if = "is_default")] @@ -1390,7 +1390,7 @@ pub struct DamageReduction { #[serde(skip_serializing_if = "is_default_horizontal_blocking_angle")] pub horizontal_blocking_angle: f32, #[serde(skip_serializing_if = "is_default")] - pub kind: Option>, + pub kind: Option>, pub base: f32, pub factor: f32, } @@ -1416,7 +1416,7 @@ impl Default for ItemDamageFunction { #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] #[serde(untagged)] pub enum ProvidesTrimMaterial { - Referenced(ResourceLocation), + Referenced(Identifier), Direct(Holder), } @@ -1429,7 +1429,7 @@ pub struct DirectTrimMaterial { pub struct MaterialAssetGroup { pub base: AssetInfo, #[serde(skip_serializing_if = "is_default")] - pub overrides: Vec<(ResourceLocation, AssetInfo)>, + pub overrides: Vec<(Identifier, AssetInfo)>, } #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] @@ -1440,7 +1440,7 @@ pub struct AssetInfo { #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] #[serde(transparent)] pub struct ProvidesBannerPatterns { - pub key: ResourceLocation, + pub key: Identifier, } #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] @@ -1464,7 +1464,7 @@ pub struct CowVariant { #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] #[serde(untagged)] pub enum ChickenVariant { - Referenced(ResourceLocation), + Referenced(Identifier), Direct(ChickenVariantData), } @@ -1476,7 +1476,7 @@ pub struct ChickenVariantData { // TODO: check in-game if this is correct #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] pub enum ZombieNautilusVariant { - Referenced(ResourceLocation), + Referenced(Identifier), Direct(ZombieNautilusVariantData), } #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] diff --git a/azalea-inventory/src/components/profile.rs b/azalea-inventory/src/components/profile.rs index 499d42bb2..2e1b4f5e9 100644 --- a/azalea-inventory/src/components/profile.rs +++ b/azalea-inventory/src/components/profile.rs @@ -2,7 +2,7 @@ use azalea_auth::game_profile::{ GameProfile, GameProfileProperties, SerializableProfileProperties, }; use azalea_buf::AzBuf; -use azalea_core::{codec_utils::*, resource_location::ResourceLocation}; +use azalea_core::{codec_utils::*, resource_location::Identifier}; use serde::{Serialize, Serializer}; use uuid::Uuid; @@ -70,5 +70,5 @@ pub enum PlayerModelType { #[derive(Clone, Debug, AzBuf, PartialEq, Serialize)] #[serde(transparent)] pub struct ResourceTexture { - pub id: ResourceLocation, + pub id: Identifier, } diff --git a/azalea-inventory/src/item/consume_effect.rs b/azalea-inventory/src/item/consume_effect.rs index 8aab42b84..51b4b5e09 100644 --- a/azalea-inventory/src/item/consume_effect.rs +++ b/azalea-inventory/src/item/consume_effect.rs @@ -1,5 +1,5 @@ use azalea_buf::AzBuf; -use azalea_core::{codec_utils::is_default, resource_location::ResourceLocation}; +use azalea_core::{codec_utils::is_default, resource_location::Identifier}; use azalea_registry::{HolderSet, MobEffect, SoundEvent}; use serde::Serialize; @@ -16,7 +16,7 @@ pub enum ConsumeEffect { }, RemoveEffects { #[serde(skip_serializing_if = "is_default")] - effects: HolderSet, + effects: HolderSet, }, ClearAllEffects, TeleportRandomly { diff --git a/azalea-physics/src/fluids.rs b/azalea-physics/src/fluids.rs index c37a99172..24e811f6a 100644 --- a/azalea-physics/src/fluids.rs +++ b/azalea-physics/src/fluids.rs @@ -5,7 +5,7 @@ use azalea_block::{ use azalea_core::{ direction::Direction, position::{BlockPos, Vec3}, - resource_location::ResourceLocation, + resource_location::Identifier, }; use azalea_entity::{HasClientLoaded, LocalEntity, Physics, Position}; use azalea_world::{Instance, InstanceContainer, InstanceName}; @@ -40,7 +40,7 @@ pub fn update_in_water_state_and_do_fluid_pushing( let is_ultrawarm = world .registries .map - .get(&ResourceLocation::new("minecraft:dimension_type")) + .get(&Identifier::new("minecraft:dimension_type")) .and_then(|d| { d.get(&**instance_name) .map(|d| d.byte("ultrawarm") != Some(0)) diff --git a/azalea-physics/tests/physics.rs b/azalea-physics/tests/physics.rs index b312b31ec..de7ad74b4 100644 --- a/azalea-physics/tests/physics.rs +++ b/azalea-physics/tests/physics.rs @@ -7,7 +7,7 @@ use azalea_block::{ use azalea_core::{ position::{BlockPos, ChunkPos, Vec3}, registry_holder::RegistryHolder, - resource_location::ResourceLocation, + resource_location::Identifier, tick::GameTick, }; use azalea_entity::{EntityBundle, EntityPlugin, HasClientLoaded, LocalEntity, Physics, Position}; @@ -29,7 +29,7 @@ pub fn insert_overworld(app: &mut App) -> Arc> { app.world_mut() .resource_mut::() .get_or_insert( - ResourceLocation::new("minecraft:overworld"), + Identifier::new("minecraft:overworld"), 384, -64, &RegistryHolder::default(), @@ -59,7 +59,7 @@ fn test_gravity() { z: 0., }, azalea_registry::EntityKind::Zombie, - ResourceLocation::new("minecraft:overworld"), + Identifier::new("minecraft:overworld"), ), MinecraftEntityId(0), LocalEntity, @@ -115,7 +115,7 @@ fn test_collision() { z: 0.5, }, azalea_registry::EntityKind::Player, - ResourceLocation::new("minecraft:overworld"), + Identifier::new("minecraft:overworld"), ), MinecraftEntityId(0), LocalEntity, @@ -172,7 +172,7 @@ fn test_slab_collision() { z: 0.5, }, azalea_registry::EntityKind::Player, - ResourceLocation::new("minecraft:overworld"), + Identifier::new("minecraft:overworld"), ), MinecraftEntityId(0), LocalEntity, @@ -223,7 +223,7 @@ fn test_top_slab_collision() { z: 0.5, }, azalea_registry::EntityKind::Player, - ResourceLocation::new("minecraft:overworld"), + Identifier::new("minecraft:overworld"), ), MinecraftEntityId(0), LocalEntity, @@ -258,7 +258,7 @@ fn test_weird_wall_collision() { .world_mut() .resource_mut::() .get_or_insert( - ResourceLocation::new("minecraft:overworld"), + Identifier::new("minecraft:overworld"), 384, -64, &RegistryHolder::default(), @@ -281,7 +281,7 @@ fn test_weird_wall_collision() { z: 0.5, }, azalea_registry::EntityKind::Player, - ResourceLocation::new("minecraft:overworld"), + Identifier::new("minecraft:overworld"), ), MinecraftEntityId(0), LocalEntity, @@ -321,7 +321,7 @@ fn test_negative_coordinates_weird_wall_collision() { .world_mut() .resource_mut::() .get_or_insert( - ResourceLocation::new("minecraft:overworld"), + Identifier::new("minecraft:overworld"), 384, -64, &RegistryHolder::default(), @@ -344,7 +344,7 @@ fn test_negative_coordinates_weird_wall_collision() { z: -7.5, }, azalea_registry::EntityKind::Player, - ResourceLocation::new("minecraft:overworld"), + Identifier::new("minecraft:overworld"), ), MinecraftEntityId(0), LocalEntity, @@ -388,7 +388,7 @@ fn spawn_and_unload_world() { .world_mut() .resource_mut::() .get_or_insert( - ResourceLocation::new("minecraft:overworld"), + Identifier::new("minecraft:overworld"), 384, -64, &RegistryHolder::default(), @@ -411,7 +411,7 @@ fn spawn_and_unload_world() { z: -7.5, }, azalea_registry::EntityKind::Player, - ResourceLocation::new("minecraft:overworld"), + Identifier::new("minecraft:overworld"), ), MinecraftEntityId(0), LocalEntity, @@ -527,7 +527,7 @@ fn test_afk_pool() { z: 1.5, }, azalea_registry::EntityKind::Player, - ResourceLocation::new("minecraft:overworld"), + Identifier::new("minecraft:overworld"), ), MinecraftEntityId(0), LocalEntity, diff --git a/azalea-protocol/src/common/recipe.rs b/azalea-protocol/src/common/recipe.rs index 8ab2d5ba1..5ff37c309 100644 --- a/azalea-protocol/src/common/recipe.rs +++ b/azalea-protocol/src/common/recipe.rs @@ -1,5 +1,5 @@ use azalea_buf::AzBuf; -use azalea_core::resource_location::ResourceLocation; +use azalea_core::resource_location::Identifier; use azalea_inventory::ItemStack; use azalea_registry::HolderSet; @@ -56,7 +56,7 @@ pub struct SmithingRecipeDisplay { #[derive(Clone, Debug, PartialEq, AzBuf)] pub struct Ingredient { - pub allowed: HolderSet, + pub allowed: HolderSet, } /// [`azalea_registry::SlotDisplay`] @@ -66,7 +66,7 @@ pub enum SlotDisplayData { AnyFuel, Item(ItemStackDisplay), ItemStack(ItemStackSlotDisplay), - Tag(ResourceLocation), + Tag(Identifier), SmithingTrim(Box), WithRemainder(Box), Composite(CompositeSlotDisplay), diff --git a/azalea-protocol/src/common/tags.rs b/azalea-protocol/src/common/tags.rs index 0b798519e..127b8543a 100644 --- a/azalea-protocol/src/common/tags.rs +++ b/azalea-protocol/src/common/tags.rs @@ -4,15 +4,15 @@ use std::{ }; use azalea_buf::{AzaleaRead, AzaleaReadVar, AzaleaWrite, AzaleaWriteVar, BufReadError}; -use azalea_core::resource_location::ResourceLocation; +use azalea_core::resource_location::Identifier; use indexmap::IndexMap; #[derive(Clone, Debug, PartialEq)] -pub struct TagMap(pub IndexMap>); +pub struct TagMap(pub IndexMap>); #[derive(Clone, Debug, PartialEq)] pub struct Tags { - pub name: ResourceLocation, + pub name: Identifier, pub elements: Vec, } @@ -21,7 +21,7 @@ impl AzaleaRead for TagMap { let length = u32::azalea_read_var(buf)? as usize; let mut data = IndexMap::with_capacity(length); for _ in 0..length { - let tag_type = ResourceLocation::azalea_read(buf)?; + let tag_type = Identifier::azalea_read(buf)?; let tags_count = i32::azalea_read_var(buf)? as usize; let mut tags_vec = Vec::with_capacity(tags_count); for _ in 0..tags_count { @@ -46,7 +46,7 @@ impl AzaleaWrite for TagMap { } impl AzaleaRead for Tags { fn azalea_read(buf: &mut Cursor<&[u8]>) -> Result { - let name = ResourceLocation::azalea_read(buf)?; + let name = Identifier::azalea_read(buf)?; let elements = Vec::::azalea_read_var(buf)?; Ok(Tags { name, elements }) } @@ -61,7 +61,7 @@ impl AzaleaWrite for Tags { } impl Deref for TagMap { - type Target = IndexMap>; + type Target = IndexMap>; fn deref(&self) -> &Self::Target { &self.0 diff --git a/azalea-protocol/src/packets/common.rs b/azalea-protocol/src/packets/common.rs index ad87fa8d9..d0dc133d4 100644 --- a/azalea-protocol/src/packets/common.rs +++ b/azalea-protocol/src/packets/common.rs @@ -4,14 +4,14 @@ use azalea_core::{ game_type::{GameMode, OptionalGameType}, position::GlobalPos, registry_holder::{DimensionTypeElement, RegistryHolder}, - resource_location::ResourceLocation, + resource_location::Identifier, }; use tracing::error; #[derive(Clone, Debug, AzBuf, PartialEq)] pub struct CommonPlayerSpawnInfo { pub dimension_type: azalea_registry::DimensionType, - pub dimension: ResourceLocation, + pub dimension: Identifier, pub seed: i64, pub game_type: GameMode, pub previous_game_type: OptionalGameType, @@ -27,7 +27,7 @@ impl CommonPlayerSpawnInfo { pub fn dimension_type( &self, registry_holder: &RegistryHolder, - ) -> Option<(ResourceLocation, DimensionTypeElement)> { + ) -> Option<(Identifier, DimensionTypeElement)> { let dimension_res = self .dimension_type .resolve_and_deserialize::(registry_holder); diff --git a/azalea-protocol/src/packets/config/c_cookie_request.rs b/azalea-protocol/src/packets/config/c_cookie_request.rs index c1a42cac7..ea0235047 100644 --- a/azalea-protocol/src/packets/config/c_cookie_request.rs +++ b/azalea-protocol/src/packets/config/c_cookie_request.rs @@ -1,8 +1,8 @@ use azalea_buf::AzBuf; -use azalea_core::resource_location::ResourceLocation; +use azalea_core::resource_location::Identifier; use azalea_protocol_macros::ClientboundConfigPacket; #[derive(Clone, Debug, AzBuf, PartialEq, ClientboundConfigPacket)] pub struct ClientboundCookieRequest { - pub key: ResourceLocation, + pub key: Identifier, } diff --git a/azalea-protocol/src/packets/config/c_custom_payload.rs b/azalea-protocol/src/packets/config/c_custom_payload.rs index 193352641..da9f8cf9a 100644 --- a/azalea-protocol/src/packets/config/c_custom_payload.rs +++ b/azalea-protocol/src/packets/config/c_custom_payload.rs @@ -1,9 +1,9 @@ use azalea_buf::{AzBuf, UnsizedByteArray}; -use azalea_core::resource_location::ResourceLocation; +use azalea_core::resource_location::Identifier; use azalea_protocol_macros::ClientboundConfigPacket; #[derive(Clone, Debug, AzBuf, PartialEq, ClientboundConfigPacket)] pub struct ClientboundCustomPayload { - pub identifier: ResourceLocation, + pub identifier: Identifier, pub data: UnsizedByteArray, } diff --git a/azalea-protocol/src/packets/config/c_registry_data.rs b/azalea-protocol/src/packets/config/c_registry_data.rs index 18d2e73b1..daaa55985 100644 --- a/azalea-protocol/src/packets/config/c_registry_data.rs +++ b/azalea-protocol/src/packets/config/c_registry_data.rs @@ -1,10 +1,10 @@ use azalea_buf::AzBuf; -use azalea_core::resource_location::ResourceLocation; +use azalea_core::resource_location::Identifier; use azalea_protocol_macros::ClientboundConfigPacket; use simdnbt::owned::NbtCompound; #[derive(Clone, Debug, AzBuf, PartialEq, ClientboundConfigPacket)] pub struct ClientboundRegistryData { - pub registry_id: ResourceLocation, - pub entries: Vec<(ResourceLocation, Option)>, + pub registry_id: Identifier, + pub entries: Vec<(Identifier, Option)>, } diff --git a/azalea-protocol/src/packets/config/c_store_cookie.rs b/azalea-protocol/src/packets/config/c_store_cookie.rs index 5fa037298..0e0458cb9 100644 --- a/azalea-protocol/src/packets/config/c_store_cookie.rs +++ b/azalea-protocol/src/packets/config/c_store_cookie.rs @@ -1,9 +1,9 @@ use azalea_buf::AzBuf; -use azalea_core::resource_location::ResourceLocation; +use azalea_core::resource_location::Identifier; use azalea_protocol_macros::ClientboundConfigPacket; #[derive(Clone, Debug, AzBuf, PartialEq, ClientboundConfigPacket)] pub struct ClientboundStoreCookie { - pub key: ResourceLocation, + pub key: Identifier, pub payload: Vec, } diff --git a/azalea-protocol/src/packets/config/c_update_enabled_features.rs b/azalea-protocol/src/packets/config/c_update_enabled_features.rs index 7d86ceb49..1b8b20993 100644 --- a/azalea-protocol/src/packets/config/c_update_enabled_features.rs +++ b/azalea-protocol/src/packets/config/c_update_enabled_features.rs @@ -1,8 +1,8 @@ use azalea_buf::AzBuf; -use azalea_core::resource_location::ResourceLocation; +use azalea_core::resource_location::Identifier; use azalea_protocol_macros::ClientboundConfigPacket; #[derive(Clone, Debug, AzBuf, PartialEq, ClientboundConfigPacket)] pub struct ClientboundUpdateEnabledFeatures { - pub features: Vec, + pub features: Vec, } diff --git a/azalea-protocol/src/packets/config/s_cookie_response.rs b/azalea-protocol/src/packets/config/s_cookie_response.rs index 590a651ef..ab2faa898 100644 --- a/azalea-protocol/src/packets/config/s_cookie_response.rs +++ b/azalea-protocol/src/packets/config/s_cookie_response.rs @@ -1,9 +1,9 @@ use azalea_buf::AzBuf; -use azalea_core::resource_location::ResourceLocation; +use azalea_core::resource_location::Identifier; use azalea_protocol_macros::ServerboundConfigPacket; #[derive(Clone, Debug, AzBuf, PartialEq, ServerboundConfigPacket)] pub struct ServerboundCookieResponse { - pub key: ResourceLocation, + pub key: Identifier, pub payload: Option>, } diff --git a/azalea-protocol/src/packets/config/s_custom_click_action.rs b/azalea-protocol/src/packets/config/s_custom_click_action.rs index 0c33d635a..2f6743aac 100644 --- a/azalea-protocol/src/packets/config/s_custom_click_action.rs +++ b/azalea-protocol/src/packets/config/s_custom_click_action.rs @@ -1,10 +1,10 @@ use azalea_buf::AzBuf; -use azalea_core::resource_location::ResourceLocation; +use azalea_core::resource_location::Identifier; use azalea_protocol_macros::ServerboundConfigPacket; use simdnbt::owned::Nbt; #[derive(Clone, Debug, AzBuf, PartialEq, ServerboundConfigPacket)] pub struct ServerboundCustomClickAction { - pub id: ResourceLocation, + pub id: Identifier, pub payload: Nbt, } diff --git a/azalea-protocol/src/packets/config/s_custom_payload.rs b/azalea-protocol/src/packets/config/s_custom_payload.rs index fec04fb55..37f191056 100644 --- a/azalea-protocol/src/packets/config/s_custom_payload.rs +++ b/azalea-protocol/src/packets/config/s_custom_payload.rs @@ -1,9 +1,9 @@ use azalea_buf::{AzBuf, UnsizedByteArray}; -use azalea_core::resource_location::ResourceLocation; +use azalea_core::resource_location::Identifier; use azalea_protocol_macros::ServerboundConfigPacket; #[derive(Clone, Debug, AzBuf, PartialEq, ServerboundConfigPacket)] pub struct ServerboundCustomPayload { - pub identifier: ResourceLocation, + pub identifier: Identifier, pub data: UnsizedByteArray, } diff --git a/azalea-protocol/src/packets/game/c_add_entity.rs b/azalea-protocol/src/packets/game/c_add_entity.rs index fe4732897..8187a9e83 100644 --- a/azalea-protocol/src/packets/game/c_add_entity.rs +++ b/azalea-protocol/src/packets/game/c_add_entity.rs @@ -1,5 +1,5 @@ use azalea_buf::AzBuf; -use azalea_core::{delta::LpVec3, position::Vec3, resource_location::ResourceLocation}; +use azalea_core::{delta::LpVec3, position::Vec3, resource_location::Identifier}; use azalea_entity::{EntityBundle, metadata::apply_default_metadata}; use azalea_protocol_macros::ClientboundGamePacket; use azalea_world::MinecraftEntityId; @@ -34,7 +34,7 @@ impl ClientboundAddEntity { /// /// You must apply the metadata after inserting the bundle with /// [`Self::apply_metadata`]. - pub fn as_entity_bundle(&self, world_name: ResourceLocation) -> EntityBundle { + pub fn as_entity_bundle(&self, world_name: Identifier) -> EntityBundle { EntityBundle::new(self.uuid, self.position, self.entity_type, world_name) } diff --git a/azalea-protocol/src/packets/game/c_commands.rs b/azalea-protocol/src/packets/game/c_commands.rs index 303f84816..42ad5180e 100644 --- a/azalea-protocol/src/packets/game/c_commands.rs +++ b/azalea-protocol/src/packets/game/c_commands.rs @@ -1,7 +1,7 @@ use std::io::{self, Cursor, Write}; use azalea_buf::{AzBuf, AzaleaRead, AzaleaReadVar, AzaleaWrite, AzaleaWriteVar, BufReadError}; -use azalea_core::{bitset::FixedBitSet, resource_location::ResourceLocation}; +use azalea_core::{bitset::FixedBitSet, resource_location::Identifier}; use azalea_protocol_macros::ClientboundGamePacket; use tracing::warn; @@ -131,7 +131,7 @@ pub enum BrigadierParser { Team, ItemSlot, ItemSlots, - ResourceLocation, + Identifier, Function, EntityAnchor, IntRange, @@ -139,11 +139,11 @@ pub enum BrigadierParser { Dimension, GameMode, Time { min: i32 }, - ResourceOrTag { registry_key: ResourceLocation }, - ResourceOrTagKey { registry_key: ResourceLocation }, - Resource { registry_key: ResourceLocation }, - ResourceKey { registry_key: ResourceLocation }, - ResourceSelector { registry_key: ResourceLocation }, + ResourceOrTag { registry_key: Identifier }, + ResourceOrTagKey { registry_key: Identifier }, + Resource { registry_key: Identifier }, + ResourceKey { registry_key: Identifier }, + ResourceSelector { registry_key: Identifier }, TemplateMirror, TemplateRotation, Heightmap, @@ -210,7 +210,7 @@ impl AzaleaRead for BrigadierNodeStub { let name = String::azalea_read(buf)?; let parser = BrigadierParser::azalea_read(buf)?; let suggestions_type = if has_suggestions_type { - Some(ResourceLocation::azalea_read(buf)?) + Some(Identifier::azalea_read(buf)?) } else { None }; @@ -318,7 +318,7 @@ pub enum NodeType { Argument { name: String, parser: BrigadierParser, - suggestions_type: Option, + suggestions_type: Option, }, } @@ -379,7 +379,7 @@ mod tests { node_type: NodeType::Argument { name: "position".to_string(), parser: BrigadierParser::Vec3, - suggestions_type: Some(ResourceLocation::new("minecraft:test_suggestion")), + suggestions_type: Some(Identifier::new("minecraft:test_suggestion")), }, is_restricted: false, }; diff --git a/azalea-protocol/src/packets/game/c_cookie_request.rs b/azalea-protocol/src/packets/game/c_cookie_request.rs index 06828aec5..5048fa58a 100644 --- a/azalea-protocol/src/packets/game/c_cookie_request.rs +++ b/azalea-protocol/src/packets/game/c_cookie_request.rs @@ -1,8 +1,8 @@ use azalea_buf::AzBuf; -use azalea_core::resource_location::ResourceLocation; +use azalea_core::resource_location::Identifier; use azalea_protocol_macros::ClientboundGamePacket; #[derive(Clone, Debug, AzBuf, PartialEq, ClientboundGamePacket)] pub struct ClientboundCookieRequest { - pub key: ResourceLocation, + pub key: Identifier, } diff --git a/azalea-protocol/src/packets/game/c_custom_payload.rs b/azalea-protocol/src/packets/game/c_custom_payload.rs index 33c446c2e..d3008cb9e 100644 --- a/azalea-protocol/src/packets/game/c_custom_payload.rs +++ b/azalea-protocol/src/packets/game/c_custom_payload.rs @@ -1,10 +1,9 @@ -use azalea_buf::AzBuf; -use azalea_buf::UnsizedByteArray; -use azalea_core::resource_location::ResourceLocation; +use azalea_buf::{AzBuf, UnsizedByteArray}; +use azalea_core::resource_location::Identifier; use azalea_protocol_macros::ClientboundGamePacket; #[derive(Clone, Debug, AzBuf, PartialEq, ClientboundGamePacket)] pub struct ClientboundCustomPayload { - pub identifier: ResourceLocation, + pub identifier: Identifier, pub data: UnsizedByteArray, } diff --git a/azalea-protocol/src/packets/game/c_login.rs b/azalea-protocol/src/packets/game/c_login.rs index 61f553e3c..a26f43fb7 100644 --- a/azalea-protocol/src/packets/game/c_login.rs +++ b/azalea-protocol/src/packets/game/c_login.rs @@ -1,5 +1,5 @@ use azalea_buf::AzBuf; -use azalea_core::resource_location::ResourceLocation; +use azalea_core::resource_location::Identifier; use azalea_protocol_macros::ClientboundGamePacket; use azalea_world::MinecraftEntityId; @@ -13,7 +13,7 @@ use crate::packets::common::CommonPlayerSpawnInfo; pub struct ClientboundLogin { pub player_id: MinecraftEntityId, pub hardcore: bool, - pub levels: Vec, + pub levels: Vec, #[var] pub max_players: i32, #[var] diff --git a/azalea-protocol/src/packets/game/c_select_advancements_tab.rs b/azalea-protocol/src/packets/game/c_select_advancements_tab.rs index ec390ce5b..4eb1d09a2 100644 --- a/azalea-protocol/src/packets/game/c_select_advancements_tab.rs +++ b/azalea-protocol/src/packets/game/c_select_advancements_tab.rs @@ -1,8 +1,8 @@ use azalea_buf::AzBuf; -use azalea_core::resource_location::ResourceLocation; +use azalea_core::resource_location::Identifier; use azalea_protocol_macros::ClientboundGamePacket; #[derive(Clone, Debug, AzBuf, PartialEq, ClientboundGamePacket)] pub struct ClientboundSelectAdvancementsTab { - pub tab: Option, + pub tab: Option, } diff --git a/azalea-protocol/src/packets/game/c_stop_sound.rs b/azalea-protocol/src/packets/game/c_stop_sound.rs index 70f3c424d..9e05e6f1f 100644 --- a/azalea-protocol/src/packets/game/c_stop_sound.rs +++ b/azalea-protocol/src/packets/game/c_stop_sound.rs @@ -1,7 +1,7 @@ use std::io::{self, Cursor, Write}; use azalea_buf::{AzaleaRead, AzaleaWrite, BufReadError}; -use azalea_core::{bitset::FixedBitSet, resource_location::ResourceLocation}; +use azalea_core::{bitset::FixedBitSet, resource_location::Identifier}; use azalea_protocol_macros::ClientboundGamePacket; use super::c_sound::SoundSource; @@ -9,7 +9,7 @@ use super::c_sound::SoundSource; #[derive(Clone, Debug, PartialEq, ClientboundGamePacket)] pub struct ClientboundStopSound { pub source: Option, - pub name: Option, + pub name: Option, } impl AzaleaRead for ClientboundStopSound { @@ -21,7 +21,7 @@ impl AzaleaRead for ClientboundStopSound { None }; let name = if set.index(1) { - Some(ResourceLocation::azalea_read(buf)?) + Some(Identifier::azalea_read(buf)?) } else { None }; diff --git a/azalea-protocol/src/packets/game/c_store_cookie.rs b/azalea-protocol/src/packets/game/c_store_cookie.rs index 0b48ed0e2..33496c20d 100644 --- a/azalea-protocol/src/packets/game/c_store_cookie.rs +++ b/azalea-protocol/src/packets/game/c_store_cookie.rs @@ -1,9 +1,9 @@ use azalea_buf::AzBuf; -use azalea_core::resource_location::ResourceLocation; +use azalea_core::resource_location::Identifier; use azalea_protocol_macros::ClientboundGamePacket; #[derive(Clone, Debug, AzBuf, PartialEq, ClientboundGamePacket)] pub struct ClientboundStoreCookie { - pub key: ResourceLocation, + pub key: Identifier, pub payload: Vec, } diff --git a/azalea-protocol/src/packets/game/c_update_advancements.rs b/azalea-protocol/src/packets/game/c_update_advancements.rs index d1b1fa802..8e843e33b 100644 --- a/azalea-protocol/src/packets/game/c_update_advancements.rs +++ b/azalea-protocol/src/packets/game/c_update_advancements.rs @@ -5,7 +5,7 @@ use std::{ use azalea_buf::AzBuf; use azalea_chat::FormattedText; -use azalea_core::resource_location::ResourceLocation; +use azalea_core::resource_location::Identifier; use azalea_inventory::ItemStack; use azalea_protocol_macros::ClientboundGamePacket; use indexmap::IndexMap; @@ -14,14 +14,14 @@ use indexmap::IndexMap; pub struct ClientboundUpdateAdvancements { pub reset: bool, pub added: Vec, - pub removed: Vec, - pub progress: IndexMap, + pub removed: Vec, + pub progress: IndexMap, pub show_advancements: bool, } #[derive(Clone, Debug, AzBuf, PartialEq)] pub struct Advancement { - pub parent_id: Option, + pub parent_id: Option, pub display: Option, pub requirements: Vec>, pub sends_telemetry_event: bool, @@ -35,7 +35,7 @@ pub struct DisplayInfo { pub frame: FrameType, pub show_toast: bool, pub hidden: bool, - pub background: Option, + pub background: Option, pub x: f32, pub y: f32, } @@ -80,7 +80,7 @@ impl azalea_buf::AzaleaRead for DisplayInfo { let hidden = (data & 0b100) != 0; let background = if has_background { - Some(ResourceLocation::azalea_read(buf)?) + Some(Identifier::azalea_read(buf)?) } else { None }; @@ -116,7 +116,7 @@ pub struct CriterionProgress { #[derive(Clone, Debug, AzBuf, PartialEq)] pub struct AdvancementHolder { - pub id: ResourceLocation, + pub id: Identifier, pub value: Advancement, } @@ -131,7 +131,7 @@ mod tests { let packet = ClientboundUpdateAdvancements { reset: true, added: [AdvancementHolder { - id: ResourceLocation::new("minecraft:test"), + id: Identifier::new("minecraft:test"), value: Advancement { parent_id: None, display: Some(DisplayInfo { @@ -151,9 +151,9 @@ mod tests { }] .into_iter() .collect(), - removed: vec![ResourceLocation::new("minecraft:test2")], + removed: vec![Identifier::new("minecraft:test2")], progress: [( - ResourceLocation::new("minecraft:test3"), + Identifier::new("minecraft:test3"), [( "minecraft:test4".to_string(), CriterionProgress { @@ -180,7 +180,7 @@ mod tests { .added .into_iter() .find_map(|a| { - if a.id == ResourceLocation::new("minecraft:test") { + if a.id == Identifier::new("minecraft:test") { Some(a.value) } else { None @@ -192,7 +192,7 @@ mod tests { .added .into_iter() .find_map(|a| { - if a.id == ResourceLocation::new("minecraft:test") { + if a.id == Identifier::new("minecraft:test") { Some(a.value) } else { None diff --git a/azalea-protocol/src/packets/game/c_update_recipes.rs b/azalea-protocol/src/packets/game/c_update_recipes.rs index c425622e0..582d9eeb1 100644 --- a/azalea-protocol/src/packets/game/c_update_recipes.rs +++ b/azalea-protocol/src/packets/game/c_update_recipes.rs @@ -1,14 +1,14 @@ use std::collections::HashMap; use azalea_buf::AzBuf; -use azalea_core::resource_location::ResourceLocation; +use azalea_core::resource_location::Identifier; use azalea_protocol_macros::ClientboundGamePacket; use crate::common::recipe::{Ingredient, SlotDisplayData}; #[derive(Clone, Debug, AzBuf, PartialEq, ClientboundGamePacket)] pub struct ClientboundUpdateRecipes { - pub item_sets: HashMap, + pub item_sets: HashMap, pub stonecutter_recipes: Vec, } diff --git a/azalea-protocol/src/packets/game/c_waypoint.rs b/azalea-protocol/src/packets/game/c_waypoint.rs index d7c6ad91c..7fcd702ea 100644 --- a/azalea-protocol/src/packets/game/c_waypoint.rs +++ b/azalea-protocol/src/packets/game/c_waypoint.rs @@ -1,7 +1,7 @@ use std::io::{self, Cursor, Write}; use azalea_buf::{AzBuf, AzaleaRead, AzaleaWrite, BufReadError}; -use azalea_core::{color::RgbColor, position::Vec3i, resource_location::ResourceLocation}; +use azalea_core::{color::RgbColor, position::Vec3i, resource_location::Identifier}; use azalea_protocol_macros::ClientboundGamePacket; use uuid::Uuid; @@ -33,7 +33,7 @@ pub enum WaypointIdentifier { #[derive(Clone, Debug, PartialEq)] pub struct WaypointIcon { - pub style: ResourceLocation, + pub style: Identifier, pub color: Option, } impl AzaleaWrite for WaypointIcon { @@ -50,7 +50,7 @@ impl AzaleaWrite for WaypointIcon { } impl AzaleaRead for WaypointIcon { fn azalea_read(buf: &mut Cursor<&[u8]>) -> Result { - let style = ResourceLocation::azalea_read(buf)?; + let style = Identifier::azalea_read(buf)?; let color = Option::::azalea_read(buf)?; let color = color.map(|c| RgbColor::new(c.r, c.g, c.b)); diff --git a/azalea-protocol/src/packets/game/s_cookie_response.rs b/azalea-protocol/src/packets/game/s_cookie_response.rs index fd6b8a51f..a860efdc1 100644 --- a/azalea-protocol/src/packets/game/s_cookie_response.rs +++ b/azalea-protocol/src/packets/game/s_cookie_response.rs @@ -1,9 +1,9 @@ use azalea_buf::AzBuf; -use azalea_core::resource_location::ResourceLocation; +use azalea_core::resource_location::Identifier; use azalea_protocol_macros::ServerboundGamePacket; #[derive(Clone, Debug, AzBuf, PartialEq, ServerboundGamePacket)] pub struct ServerboundCookieResponse { - pub key: ResourceLocation, + pub key: Identifier, pub payload: Option>, } diff --git a/azalea-protocol/src/packets/game/s_custom_click_action.rs b/azalea-protocol/src/packets/game/s_custom_click_action.rs index 338137c4b..894ab77ca 100644 --- a/azalea-protocol/src/packets/game/s_custom_click_action.rs +++ b/azalea-protocol/src/packets/game/s_custom_click_action.rs @@ -1,10 +1,10 @@ use azalea_buf::AzBuf; -use azalea_core::resource_location::ResourceLocation; +use azalea_core::resource_location::Identifier; use azalea_protocol_macros::ServerboundGamePacket; use simdnbt::owned::Nbt; #[derive(Clone, Debug, AzBuf, PartialEq, ServerboundGamePacket)] pub struct ServerboundCustomClickAction { - pub id: ResourceLocation, + pub id: Identifier, pub payload: Nbt, } diff --git a/azalea-protocol/src/packets/game/s_custom_payload.rs b/azalea-protocol/src/packets/game/s_custom_payload.rs index 1f2897e22..0cfd96e91 100644 --- a/azalea-protocol/src/packets/game/s_custom_payload.rs +++ b/azalea-protocol/src/packets/game/s_custom_payload.rs @@ -1,10 +1,9 @@ -use azalea_buf::AzBuf; -use azalea_buf::UnsizedByteArray; -use azalea_core::resource_location::ResourceLocation; +use azalea_buf::{AzBuf, UnsizedByteArray}; +use azalea_core::resource_location::Identifier; use azalea_protocol_macros::ServerboundGamePacket; #[derive(Clone, Debug, AzBuf, PartialEq, ServerboundGamePacket)] pub struct ServerboundCustomPayload { - pub identifier: ResourceLocation, + pub identifier: Identifier, pub data: UnsizedByteArray, } diff --git a/azalea-protocol/src/packets/game/s_place_recipe.rs b/azalea-protocol/src/packets/game/s_place_recipe.rs index fe56cd962..8d12d0c3b 100644 --- a/azalea-protocol/src/packets/game/s_place_recipe.rs +++ b/azalea-protocol/src/packets/game/s_place_recipe.rs @@ -1,11 +1,11 @@ use azalea_buf::AzBuf; -use azalea_core::resource_location::ResourceLocation; +use azalea_core::resource_location::Identifier; use azalea_protocol_macros::ServerboundGamePacket; #[derive(Clone, Debug, AzBuf, PartialEq, ServerboundGamePacket)] pub struct ServerboundPlaceRecipe { #[var] pub container_id: i32, - pub recipe: ResourceLocation, + pub recipe: Identifier, pub shift_down: bool, } diff --git a/azalea-protocol/src/packets/game/s_recipe_book_seen_recipe.rs b/azalea-protocol/src/packets/game/s_recipe_book_seen_recipe.rs index 7fa1da454..c0273a3e5 100644 --- a/azalea-protocol/src/packets/game/s_recipe_book_seen_recipe.rs +++ b/azalea-protocol/src/packets/game/s_recipe_book_seen_recipe.rs @@ -1,8 +1,8 @@ use azalea_buf::AzBuf; -use azalea_core::resource_location::ResourceLocation; +use azalea_core::resource_location::Identifier; use azalea_protocol_macros::ServerboundGamePacket; #[derive(Clone, Debug, AzBuf, PartialEq, ServerboundGamePacket)] pub struct ServerboundRecipeBookSeenRecipe { - pub recipe: ResourceLocation, + pub recipe: Identifier, } diff --git a/azalea-protocol/src/packets/game/s_seen_advancements.rs b/azalea-protocol/src/packets/game/s_seen_advancements.rs index 1c5025685..166dc965a 100644 --- a/azalea-protocol/src/packets/game/s_seen_advancements.rs +++ b/azalea-protocol/src/packets/game/s_seen_advancements.rs @@ -1,7 +1,7 @@ use std::io::{self, Cursor, Write}; use azalea_buf::{AzBuf, AzaleaRead, AzaleaWrite}; -use azalea_core::resource_location::ResourceLocation; +use azalea_core::resource_location::Identifier; use azalea_protocol_macros::ServerboundGamePacket; use crate::packets::BufReadError; @@ -9,7 +9,7 @@ use crate::packets::BufReadError; #[derive(Clone, Debug, PartialEq, ServerboundGamePacket)] pub struct ServerboundSeenAdvancements { pub action: Action, - pub tab: Option, + pub tab: Option, } #[derive(AzBuf, Clone, Copy, Debug, Eq, PartialEq)] @@ -22,7 +22,7 @@ impl AzaleaRead for ServerboundSeenAdvancements { fn azalea_read(buf: &mut Cursor<&[u8]>) -> Result { let action = Action::azalea_read(buf)?; let tab = if action == Action::OpenedTab { - Some(ResourceLocation::azalea_read(buf)?) + Some(Identifier::azalea_read(buf)?) } else { None }; diff --git a/azalea-protocol/src/packets/game/s_set_jigsaw_block.rs b/azalea-protocol/src/packets/game/s_set_jigsaw_block.rs index 8999faf47..8370fae6e 100644 --- a/azalea-protocol/src/packets/game/s_set_jigsaw_block.rs +++ b/azalea-protocol/src/packets/game/s_set_jigsaw_block.rs @@ -4,7 +4,7 @@ use std::{ }; use azalea_buf::{AzBuf, AzaleaRead}; -use azalea_core::{position::BlockPos, resource_location::ResourceLocation}; +use azalea_core::{position::BlockPos, resource_location::Identifier}; use azalea_protocol_macros::ServerboundGamePacket; use crate::packets::{AzaleaWrite, BufReadError}; @@ -12,9 +12,9 @@ use crate::packets::{AzaleaWrite, BufReadError}; #[derive(Clone, Debug, AzBuf, PartialEq, ServerboundGamePacket)] pub struct ServerboundSetJigsawBlock { pub pos: BlockPos, - pub name: ResourceLocation, - pub target: ResourceLocation, - pub pool: ResourceLocation, + pub name: Identifier, + pub target: Identifier, + pub pool: Identifier, pub final_state: String, pub joint: String, #[var] diff --git a/azalea-protocol/src/packets/login/c_cookie_request.rs b/azalea-protocol/src/packets/login/c_cookie_request.rs index 2574d7182..478915cfa 100644 --- a/azalea-protocol/src/packets/login/c_cookie_request.rs +++ b/azalea-protocol/src/packets/login/c_cookie_request.rs @@ -1,8 +1,8 @@ use azalea_buf::AzBuf; -use azalea_core::resource_location::ResourceLocation; +use azalea_core::resource_location::Identifier; use azalea_protocol_macros::ClientboundLoginPacket; #[derive(Clone, Debug, AzBuf, PartialEq, ClientboundLoginPacket)] pub struct ClientboundCookieRequest { - pub key: ResourceLocation, + pub key: Identifier, } diff --git a/azalea-protocol/src/packets/login/c_custom_query.rs b/azalea-protocol/src/packets/login/c_custom_query.rs index c74d6e213..526ccb7fd 100644 --- a/azalea-protocol/src/packets/login/c_custom_query.rs +++ b/azalea-protocol/src/packets/login/c_custom_query.rs @@ -1,13 +1,13 @@ use std::hash::Hash; use azalea_buf::{AzBuf, UnsizedByteArray}; -use azalea_core::resource_location::ResourceLocation; +use azalea_core::resource_location::Identifier; use azalea_protocol_macros::ClientboundLoginPacket; #[derive(Hash, Clone, Debug, AzBuf, PartialEq, ClientboundLoginPacket)] pub struct ClientboundCustomQuery { #[var] pub transaction_id: u32, - pub identifier: ResourceLocation, + pub identifier: Identifier, pub data: UnsizedByteArray, } diff --git a/azalea-protocol/src/packets/login/s_cookie_response.rs b/azalea-protocol/src/packets/login/s_cookie_response.rs index 8a7af7840..4d715f998 100644 --- a/azalea-protocol/src/packets/login/s_cookie_response.rs +++ b/azalea-protocol/src/packets/login/s_cookie_response.rs @@ -1,9 +1,9 @@ use azalea_buf::AzBuf; -use azalea_core::resource_location::ResourceLocation; +use azalea_core::resource_location::Identifier; use azalea_protocol_macros::ServerboundLoginPacket; #[derive(Clone, Debug, AzBuf, PartialEq, ServerboundLoginPacket)] pub struct ServerboundCookieResponse { - pub key: ResourceLocation, + pub key: Identifier, pub payload: Option>, } diff --git a/azalea-registry/src/lib.rs b/azalea-registry/src/lib.rs index 3a88f27d9..89fcbc9f6 100644 --- a/azalea-registry/src/lib.rs +++ b/azalea-registry/src/lib.rs @@ -88,22 +88,20 @@ impl AzaleaWrite for CustomRegistry { +pub enum HolderSet { Direct { contents: Vec, }, Named { - key: ResourceLocation, - contents: Vec, + key: Identifier, + contents: Vec, }, } -impl AzaleaRead - for HolderSet -{ +impl AzaleaRead for HolderSet { fn azalea_read(buf: &mut Cursor<&[u8]>) -> Result { let size = i32::azalea_read_var(buf)? - 1; if size == -1 { - let key = ResourceLocation::azalea_read(buf)?; + let key = Identifier::azalea_read(buf)?; Ok(Self::Named { key, contents: Vec::new(), @@ -117,9 +115,7 @@ impl AzaleaRead } } } -impl AzaleaWrite - for HolderSet -{ +impl AzaleaWrite for HolderSet { fn azalea_write(&self, buf: &mut impl Write) -> io::Result<()> { match self { Self::Direct { contents } => { @@ -136,8 +132,8 @@ impl AzaleaWrite Ok(()) } } -impl Debug - for HolderSet +impl Debug + for HolderSet { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { match self { @@ -150,16 +146,14 @@ impl De } } } -impl From> - for HolderSet -{ +impl From> for HolderSet { fn from(contents: Vec) -> Self { Self::Direct { contents } } } #[cfg(feature = "serde")] -impl Serialize - for HolderSet +impl Serialize + for HolderSet { fn serialize(&self, serializer: S) -> Result where @@ -177,9 +171,7 @@ impl Default - for HolderSet -{ +impl Default for HolderSet { fn default() -> Self { Self::Direct { contents: Vec::new(), @@ -188,7 +180,7 @@ impl Default } /// A reference to either a registry or a custom value (usually something with a -/// `ResourceLocation`). +/// `Identifier`). pub enum Holder { Reference(R), Direct(Direct), @@ -1646,7 +1638,7 @@ enum CommandArgumentKind { Team => "minecraft:team", ItemSlot => "minecraft:item_slot", ItemSlots => "minecraft:item_slots", - ResourceLocation => "minecraft:resource_location", + Identifier => "minecraft:resource_location", Function => "minecraft:function", EntityAnchor => "minecraft:entity_anchor", IntRange => "minecraft:int_range", diff --git a/azalea-world/src/container.rs b/azalea-world/src/container.rs index 279f3061a..9a75bb0da 100644 --- a/azalea-world/src/container.rs +++ b/azalea-world/src/container.rs @@ -3,7 +3,7 @@ use std::{ sync::{Arc, Weak}, }; -use azalea_core::{registry_holder::RegistryHolder, resource_location::ResourceLocation}; +use azalea_core::{registry_holder::RegistryHolder, resource_location::Identifier}; use bevy_ecs::{component::Component, resource::Resource}; use derive_more::{Deref, DerefMut}; use nohash_hasher::IntMap; @@ -31,7 +31,7 @@ pub struct InstanceContainer { // telling them apart. We hope most servers are nice and don't do that though. It's only an // issue when there's multiple clients with the same WorldContainer in different worlds // anyways. - pub instances: FxHashMap>>, + pub instances: FxHashMap>>, } impl InstanceContainer { @@ -50,7 +50,7 @@ impl InstanceContainer { #[must_use = "the world will be immediately forgotten if unused"] pub fn get_or_insert( &mut self, - name: ResourceLocation, + name: Identifier, height: u32, min_y: i32, default_registries: &RegistryHolder, @@ -93,4 +93,4 @@ impl InstanceContainer { /// same instance. #[derive(Component, Clone, Debug, PartialEq, Deref, DerefMut)] #[doc(alias("worldname", "world name"))] -pub struct InstanceName(pub ResourceLocation); +pub struct InstanceName(pub Identifier); diff --git a/azalea/src/lib.rs b/azalea/src/lib.rs index 069837b35..72ec7e57a 100644 --- a/azalea/src/lib.rs +++ b/azalea/src/lib.rs @@ -24,7 +24,7 @@ pub use azalea_core as core; // these are re-exported on this level because they're very common pub use azalea_core::{ position::{BlockPos, Vec3}, - resource_location::ResourceLocation, + resource_location::Identifier, }; pub use azalea_entity as entity; pub use azalea_physics as physics; diff --git a/azalea/src/pathfinder/simulation.rs b/azalea/src/pathfinder/simulation.rs index 94836d3b9..2de83c904 100644 --- a/azalea/src/pathfinder/simulation.rs +++ b/azalea/src/pathfinder/simulation.rs @@ -7,7 +7,7 @@ use azalea_client::{ local_player::LocalGameMode, mining::MineBundle, }; use azalea_core::{ - game_type::GameMode, position::Vec3, resource_location::ResourceLocation, tick::GameTick, + game_type::GameMode, position::Vec3, resource_location::Identifier, tick::GameTick, }; use azalea_entity::{ Attributes, LookDirection, Physics, Position, default_attributes, dimensions::EntityDimensions, @@ -44,8 +44,8 @@ impl SimulatedPlayerBundle { } } -fn simulation_instance_name() -> ResourceLocation { - ResourceLocation::new("azalea:simulation") +fn simulation_instance_name() -> Identifier { + Identifier::new("azalea:simulation") } fn create_simulation_instance(chunks: ChunkStorage) -> (App, Arc>) { diff --git a/codegen/lib/code/data_components.py b/codegen/lib/code/data_components.py index 76f329d37..b7e94c289 100644 --- a/codegen/lib/code/data_components.py +++ b/codegen/lib/code/data_components.py @@ -222,7 +222,7 @@ def update_default_variants(version_id: str): "probability": "f32", } enum_and_struct_fields["ConsumeEffect::RemoveEffects"] = { - "effects": "HolderSet", + "effects": "HolderSet", } enum_and_struct_fields["ConsumeEffect::ClearAllEffects"] = {} enum_and_struct_fields["ConsumeEffect::TeleportRandomly"] = { @@ -344,7 +344,7 @@ def python_to_rust_value(python_value: Any, target_rust_type: Optional[str]): return t if isinstance(python_value, dict): - if target_rust_type == "ResourceLocation" and len(python_value) == 1: + if target_rust_type == "Identifier" and len(python_value) == 1: return python_to_rust_value( list(python_value.values())[0], target_rust_type ) @@ -407,8 +407,8 @@ def python_to_rust_value(python_value: Any, target_rust_type: Optional[str]): return str(python_value).lower() if isinstance(python_value, str): fields_for_rust_type = enum_and_struct_fields.get(target_rust_type, []) - if "Referenced(ResourceLocation)" in fields_for_rust_type: - return f"{target_rust_type}::Referenced({python_to_rust_value(python_value, 'ResourceLocation')})" + if "Referenced(Identifier)" in fields_for_rust_type: + return f"{target_rust_type}::Referenced({python_to_rust_value(python_value, 'Identifier')})" elif "Registry(registry::Instrument)" in fields_for_rust_type: return f"{target_rust_type}::Registry({python_to_rust_value(python_value, 'azalea_registry::Instrument')})" elif target_rust_type.startswith("HolderSet<"): @@ -421,8 +421,8 @@ def python_to_rust_value(python_value: Any, target_rust_type: Optional[str]): holder_type = target_rust_type.split("<", 1)[1].split(",", 1)[0] inner_type = python_to_rust_value(python_value, holder_type) return f"azalea_registry::Holder::Reference({inner_type})" - elif target_rust_type == "ResourceLocation": - # convert minecraft:air into ResourceLocation::from_static("minecraft:air") + elif target_rust_type == "Identifier": + # convert minecraft:air into Identifier::from_static("minecraft:air") return f'"{python_value}".into()' elif target_rust_type == 'DamageType': # TODO: this is intentionally incorrect, see the comment in diff --git a/codegen/lib/code/utils.py b/codegen/lib/code/utils.py index b8970628e..bbb8f6474 100644 --- a/codegen/lib/code/utils.py +++ b/codegen/lib/code/utils.py @@ -57,8 +57,8 @@ def burger_type_to_rust_type( field_type_rs = "FormattedText" uses.add("azalea_chat::FormattedText") elif burger_type == "identifier": - field_type_rs = "ResourceLocation" - uses.add("azalea_core::resource_location::ResourceLocation") + field_type_rs = "Identifier" + uses.add("azalea_core::resource_location::Identifier") elif burger_type == "uuid": field_type_rs = "Uuid" uses.add("uuid::Uuid") diff --git a/codegen/lib/extract.py b/codegen/lib/extract.py index 357059f66..b575b6971 100644 --- a/codegen/lib/extract.py +++ b/codegen/lib/extract.py @@ -254,16 +254,16 @@ def get_packet_list(version_id: str): packet_list = [] for state, state_value in packets_report.items(): for direction, direction_value in state_value.items(): - for packet_resourcelocation, packet_value in direction_value.items(): - assert packet_resourcelocation.startswith("minecraft:") - packet_resourcelocation = upper_first_letter( - to_camel_case(packet_resourcelocation[len("minecraft:") :]) + for packet_identifier, packet_value in direction_value.items(): + assert packet_identifier.startswith("minecraft:") + packet_identifier = upper_first_letter( + to_camel_case(packet_identifier[len("minecraft:") :]) ) packet_list.append( { "state": state, "direction": direction, - "name": packet_resourcelocation, + "name": packet_identifier, "id": packet_value["protocol_id"], } ) From 8a80f927ad3929ce7435e08e0c5435f5edaac42e Mon Sep 17 00:00:00 2001 From: mat Date: Tue, 11 Nov 2025 16:46:24 -0700 Subject: [PATCH 05/11] update changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 67ba850ec..f25a059a1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,7 @@ is breaking anyways, semantic versioning is not followed. - Rename `SendPacketEvent` to `SendGamePacketEvent` and `PingEvent` to `GamePingEvent`. - Swap the order of the type parameters in entity filtering functions so query is first, then filter. - Add optional `timeout_ticks` field to `Client::open_container_at`. +- Rename `ResourceLocation` to `Identifier` to match Minecraft's new internal name for it. ### Fixed From cf316815fe4705f49eb38e0eaaec98241079cf7b Mon Sep 17 00:00:00 2001 From: mat Date: Wed, 19 Nov 2025 15:27:18 -0700 Subject: [PATCH 06/11] 1.21.11-pre1 --- Cargo.lock | 42 ++++---- Cargo.toml | 2 +- README.md | 2 +- azalea-inventory/src/components/mod.rs | 36 ++++--- .../src/default_components/generated.rs | 96 ++++++++++--------- azalea-language/src/en_us.json | 22 ++++- azalea-protocol/src/packets/mod.rs | 4 +- azalea-registry/src/lib.rs | 19 ++++ azalea-registry/src/tags/entities.rs | 1 + azalea-registry/src/tags/items.rs | 2 +- 10 files changed, 141 insertions(+), 85 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 54e7f50a6..e65463eb7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -209,7 +209,7 @@ checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "azalea" -version = "0.14.0+mc25w46a" +version = "0.14.0+mc1.21.11-pre1" dependencies = [ "anyhow", "azalea-auth", @@ -249,7 +249,7 @@ dependencies = [ [[package]] name = "azalea-auth" -version = "0.14.0+mc25w46a" +version = "0.14.0+mc1.21.11-pre1" dependencies = [ "azalea-buf", "azalea-crypto", @@ -273,7 +273,7 @@ dependencies = [ [[package]] name = "azalea-block" -version = "0.14.0+mc25w46a" +version = "0.14.0+mc1.21.11-pre1" dependencies = [ "azalea-block-macros", "azalea-buf", @@ -282,7 +282,7 @@ dependencies = [ [[package]] name = "azalea-block-macros" -version = "0.14.0+mc25w46a" +version = "0.14.0+mc1.21.11-pre1" dependencies = [ "proc-macro2", "quote", @@ -291,7 +291,7 @@ dependencies = [ [[package]] name = "azalea-brigadier" -version = "0.14.0+mc25w46a" +version = "0.14.0+mc1.21.11-pre1" dependencies = [ "azalea-buf", "azalea-chat", @@ -302,7 +302,7 @@ dependencies = [ [[package]] name = "azalea-buf" -version = "0.14.0+mc25w46a" +version = "0.14.0+mc1.21.11-pre1" dependencies = [ "azalea-buf-macros", "byteorder", @@ -316,7 +316,7 @@ dependencies = [ [[package]] name = "azalea-buf-macros" -version = "0.14.0+mc25w46a" +version = "0.14.0+mc1.21.11-pre1" dependencies = [ "proc-macro2", "quote", @@ -325,7 +325,7 @@ dependencies = [ [[package]] name = "azalea-chat" -version = "0.14.0+mc25w46a" +version = "0.14.0+mc1.21.11-pre1" dependencies = [ "azalea-buf", "azalea-language", @@ -338,7 +338,7 @@ dependencies = [ [[package]] name = "azalea-client" -version = "0.14.0+mc25w46a" +version = "0.14.0+mc1.21.11-pre1" dependencies = [ "anyhow", "async-compat", @@ -376,7 +376,7 @@ dependencies = [ [[package]] name = "azalea-core" -version = "0.14.0+mc25w46a" +version = "0.14.0+mc1.21.11-pre1" dependencies = [ "azalea-buf", "azalea-chat", @@ -395,7 +395,7 @@ dependencies = [ [[package]] name = "azalea-crypto" -version = "0.14.0+mc25w46a" +version = "0.14.0+mc1.21.11-pre1" dependencies = [ "aes", "azalea-buf", @@ -412,7 +412,7 @@ dependencies = [ [[package]] name = "azalea-entity" -version = "0.14.0+mc25w46a" +version = "0.14.0+mc1.21.11-pre1" dependencies = [ "azalea-auth", "azalea-block", @@ -436,7 +436,7 @@ dependencies = [ [[package]] name = "azalea-inventory" -version = "0.14.0+mc25w46a" +version = "0.14.0+mc1.21.11-pre1" dependencies = [ "azalea-auth", "azalea-buf", @@ -453,7 +453,7 @@ dependencies = [ [[package]] name = "azalea-inventory-macros" -version = "0.14.0+mc25w46a" +version = "0.14.0+mc1.21.11-pre1" dependencies = [ "proc-macro2", "quote", @@ -462,7 +462,7 @@ dependencies = [ [[package]] name = "azalea-language" -version = "0.14.0+mc25w46a" +version = "0.14.0+mc1.21.11-pre1" dependencies = [ "compact_str", "serde_json", @@ -470,7 +470,7 @@ dependencies = [ [[package]] name = "azalea-physics" -version = "0.14.0+mc25w46a" +version = "0.14.0+mc1.21.11-pre1" dependencies = [ "azalea-block", "azalea-core", @@ -487,7 +487,7 @@ dependencies = [ [[package]] name = "azalea-protocol" -version = "0.14.0+mc25w46a" +version = "0.14.0+mc1.21.11-pre1" dependencies = [ "anyhow", "async-recursion", @@ -523,7 +523,7 @@ dependencies = [ [[package]] name = "azalea-protocol-macros" -version = "0.14.0+mc25w46a" +version = "0.14.0+mc1.21.11-pre1" dependencies = [ "proc-macro2", "quote", @@ -532,7 +532,7 @@ dependencies = [ [[package]] name = "azalea-registry" -version = "0.14.0+mc25w46a" +version = "0.14.0+mc1.21.11-pre1" dependencies = [ "azalea-buf", "azalea-registry-macros", @@ -542,7 +542,7 @@ dependencies = [ [[package]] name = "azalea-registry-macros" -version = "0.14.0+mc25w46a" +version = "0.14.0+mc1.21.11-pre1" dependencies = [ "quote", "syn", @@ -550,7 +550,7 @@ dependencies = [ [[package]] name = "azalea-world" -version = "0.14.0+mc25w46a" +version = "0.14.0+mc1.21.11-pre1" dependencies = [ "azalea-block", "azalea-buf", diff --git a/Cargo.toml b/Cargo.toml index 3df20c5df..bbf884219 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -22,7 +22,7 @@ resolver = "3" # --- Workspace Settings --- [workspace.package] -version = "0.14.0+mc25w46a" +version = "0.14.0+mc1.21.11-pre1" edition = "2024" license = "MIT" repository = "https://github.com/azalea-rs/azalea" diff --git a/README.md b/README.md index 9e9a77968..61868dc37 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ A collection of Rust crates for making Minecraft bots, clients, and tools. -_Currently supported Minecraft version: `25w46a`._ +_Currently supported Minecraft version: `1.21.11-pre1`._ > [!WARNING] > Many parts of Azalea are still unfinished and will receive breaking changes in the future. Most breaking changes will be listed in the [changelog](CHANGELOG.md). diff --git a/azalea-inventory/src/components/mod.rs b/azalea-inventory/src/components/mod.rs index 944f84655..bf31967be 100644 --- a/azalea-inventory/src/components/mod.rs +++ b/azalea-inventory/src/components/mod.rs @@ -292,6 +292,7 @@ define_data_components!( KineticWeapon, SwingAnimation, ZombieNautilusVariant, + AttackRange, ); #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] @@ -1522,9 +1523,6 @@ pub enum DamageType { #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] pub struct PiercingWeapon { - pub min_reach: f32, - pub max_reach: f32, - pub hitbox_margin: f32, pub deals_knockback: bool, pub dismounts: bool, pub sound: Option>, @@ -1533,9 +1531,6 @@ pub struct PiercingWeapon { impl PiercingWeapon { pub const fn new() -> Self { Self { - min_reach: 0., - max_reach: 3., - hitbox_margin: 0., deals_knockback: true, dismounts: false, sound: None, @@ -1551,9 +1546,6 @@ impl Default for PiercingWeapon { #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] pub struct KineticWeapon { - pub min_reach: f32, - pub max_reach: f32, - pub hitbox_margin: f32, #[var] pub contact_cooldown_ticks: i32, #[var] @@ -1569,9 +1561,6 @@ pub struct KineticWeapon { impl KineticWeapon { pub const fn new() -> Self { Self { - min_reach: 0., - max_reach: 3., - hitbox_margin: 0.3, contact_cooldown_ticks: 10, delay_ticks: 0, dismount_conditions: None, @@ -1640,3 +1629,26 @@ pub enum SwingAnimationKind { Whack, Stab, } + +#[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] +pub struct AttackRange { + pub min_reach: f32, + pub max_reach: f32, + pub hitbox_margin: f32, + pub mob_factor: f32, +} +impl AttackRange { + pub const fn new() -> Self { + Self { + min_reach: 0., + max_reach: 3., + hitbox_margin: 0.3, + mob_factor: 1., + } + } +} +impl Default for AttackRange { + fn default() -> Self { + Self::new() + } +} diff --git a/azalea-inventory/src/default_components/generated.rs b/azalea-inventory/src/default_components/generated.rs index 4821588db..9ca42fc2a 100644 --- a/azalea-inventory/src/default_components/generated.rs +++ b/azalea-inventory/src/default_components/generated.rs @@ -2518,7 +2518,6 @@ impl DefaultableComponent for Consumable { ..Consumable::new() }, Item::Cod => Consumable::new(), - Item::CodBucket => Consumable::new(), Item::CookedBeef => Consumable::new(), Item::CookedChicken => Consumable::new(), Item::CookedCod => Consumable::new(), @@ -2686,7 +2685,6 @@ impl DefaultableComponent for Consumable { }], ..Consumable::new() }, - Item::PufferfishBucket => Consumable::new(), Item::PumpkinPie => Consumable::new(), Item::Rabbit => Consumable::new(), Item::RabbitStew => Consumable::new(), @@ -2705,7 +2703,6 @@ impl DefaultableComponent for Consumable { ..Consumable::new() }, Item::Salmon => Consumable::new(), - Item::SalmonBucket => Consumable::new(), Item::SpiderEye => Consumable { on_consume_effects: vec![ConsumeEffect::ApplyEffects { effects: vec![MobEffectInstance { @@ -2723,7 +2720,6 @@ impl DefaultableComponent for Consumable { Item::SuspiciousStew => Consumable::new(), Item::SweetBerries => Consumable::new(), Item::TropicalFish => Consumable::new(), - Item::TropicalFishBucket => Consumable::new(), _ => return None, }; Some(value) @@ -5834,6 +5830,56 @@ impl DefaultableComponent for Weapon { Some(value) } } +impl DefaultableComponent for AttackRange { + fn default_for_item(item: Item) -> Option { + let value = match item { + Item::CopperSpear => AttackRange { + hitbox_margin: 0.125, + max_reach: 4.5, + min_reach: 2.0, + mob_factor: 0.5, + }, + Item::DiamondSpear => AttackRange { + hitbox_margin: 0.125, + max_reach: 4.5, + min_reach: 2.0, + mob_factor: 0.5, + }, + Item::GoldenSpear => AttackRange { + hitbox_margin: 0.125, + max_reach: 4.5, + min_reach: 2.0, + mob_factor: 0.5, + }, + Item::IronSpear => AttackRange { + hitbox_margin: 0.125, + max_reach: 4.5, + min_reach: 2.0, + mob_factor: 0.5, + }, + Item::NetheriteSpear => AttackRange { + hitbox_margin: 0.125, + max_reach: 4.5, + min_reach: 2.0, + mob_factor: 0.5, + }, + Item::StoneSpear => AttackRange { + hitbox_margin: 0.125, + max_reach: 4.5, + min_reach: 2.0, + mob_factor: 0.5, + }, + Item::WoodenSpear => AttackRange { + hitbox_margin: 0.125, + max_reach: 4.5, + min_reach: 2.0, + mob_factor: 0.5, + }, + _ => return None, + }; + Some(value) + } +} impl DefaultableComponent for DamageType { fn default_for_item(item: Item) -> Option { let value = match item { @@ -5867,14 +5913,11 @@ impl DefaultableComponent for KineticWeapon { }), forward_movement: 0.38, hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)), - hitbox_margin: 0.125, knockback_conditions: Some(KineticWeaponCondition { max_duration_ticks: 100, min_speed: 5.1, ..KineticWeaponCondition::new() }), - max_reach: 4.5, - min_reach: 2.0, sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearUse)), ..KineticWeapon::new() }, @@ -5893,14 +5936,11 @@ impl DefaultableComponent for KineticWeapon { }), forward_movement: 0.38, hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)), - hitbox_margin: 0.125, knockback_conditions: Some(KineticWeaponCondition { max_duration_ticks: 80, min_speed: 5.1, ..KineticWeaponCondition::new() }), - max_reach: 4.5, - min_reach: 2.0, sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearUse)), ..KineticWeapon::new() }, @@ -5919,14 +5959,11 @@ impl DefaultableComponent for KineticWeapon { }), forward_movement: 0.38, hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)), - hitbox_margin: 0.125, knockback_conditions: Some(KineticWeaponCondition { max_duration_ticks: 110, min_speed: 5.1, ..KineticWeaponCondition::new() }), - max_reach: 4.5, - min_reach: 2.0, sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearUse)), ..KineticWeapon::new() }, @@ -5945,14 +5982,11 @@ impl DefaultableComponent for KineticWeapon { }), forward_movement: 0.38, hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)), - hitbox_margin: 0.125, knockback_conditions: Some(KineticWeaponCondition { max_duration_ticks: 90, min_speed: 5.1, ..KineticWeaponCondition::new() }), - max_reach: 4.5, - min_reach: 2.0, sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearUse)), ..KineticWeapon::new() }, @@ -5971,14 +6005,11 @@ impl DefaultableComponent for KineticWeapon { }), forward_movement: 0.38, hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)), - hitbox_margin: 0.125, knockback_conditions: Some(KineticWeaponCondition { max_duration_ticks: 70, min_speed: 5.1, ..KineticWeaponCondition::new() }), - max_reach: 4.5, - min_reach: 2.0, sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearUse)), ..KineticWeapon::new() }, @@ -5997,14 +6028,11 @@ impl DefaultableComponent for KineticWeapon { }), forward_movement: 0.38, hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)), - hitbox_margin: 0.125, knockback_conditions: Some(KineticWeaponCondition { max_duration_ticks: 110, min_speed: 5.1, ..KineticWeaponCondition::new() }), - max_reach: 4.5, - min_reach: 2.0, sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearUse)), ..KineticWeapon::new() }, @@ -6025,14 +6053,11 @@ impl DefaultableComponent for KineticWeapon { hit_sound: Some(azalea_registry::Holder::Reference( SoundEvent::ItemSpearWoodHit, )), - hitbox_margin: 0.125, knockback_conditions: Some(KineticWeaponCondition { max_duration_ticks: 120, min_speed: 5.1, ..KineticWeaponCondition::new() }), - max_reach: 4.5, - min_reach: 2.0, sound: Some(azalea_registry::Holder::Reference( SoundEvent::ItemSpearWoodUse, )), @@ -6063,9 +6088,6 @@ impl DefaultableComponent for PiercingWeapon { let value = match item { Item::CopperSpear => PiercingWeapon { hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)), - hitbox_margin: 0.25, - max_reach: 4.5, - min_reach: 2.0, sound: Some(azalea_registry::Holder::Reference( SoundEvent::ItemSpearAttack, )), @@ -6073,9 +6095,6 @@ impl DefaultableComponent for PiercingWeapon { }, Item::DiamondSpear => PiercingWeapon { hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)), - hitbox_margin: 0.25, - max_reach: 4.5, - min_reach: 2.0, sound: Some(azalea_registry::Holder::Reference( SoundEvent::ItemSpearAttack, )), @@ -6083,9 +6102,6 @@ impl DefaultableComponent for PiercingWeapon { }, Item::GoldenSpear => PiercingWeapon { hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)), - hitbox_margin: 0.25, - max_reach: 4.5, - min_reach: 2.0, sound: Some(azalea_registry::Holder::Reference( SoundEvent::ItemSpearAttack, )), @@ -6093,9 +6109,6 @@ impl DefaultableComponent for PiercingWeapon { }, Item::IronSpear => PiercingWeapon { hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)), - hitbox_margin: 0.25, - max_reach: 4.5, - min_reach: 2.0, sound: Some(azalea_registry::Holder::Reference( SoundEvent::ItemSpearAttack, )), @@ -6103,9 +6116,6 @@ impl DefaultableComponent for PiercingWeapon { }, Item::NetheriteSpear => PiercingWeapon { hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)), - hitbox_margin: 0.25, - max_reach: 4.5, - min_reach: 2.0, sound: Some(azalea_registry::Holder::Reference( SoundEvent::ItemSpearAttack, )), @@ -6113,9 +6123,6 @@ impl DefaultableComponent for PiercingWeapon { }, Item::StoneSpear => PiercingWeapon { hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)), - hitbox_margin: 0.25, - max_reach: 4.5, - min_reach: 2.0, sound: Some(azalea_registry::Holder::Reference( SoundEvent::ItemSpearAttack, )), @@ -6125,9 +6132,6 @@ impl DefaultableComponent for PiercingWeapon { hit_sound: Some(azalea_registry::Holder::Reference( SoundEvent::ItemSpearWoodHit, )), - hitbox_margin: 0.25, - max_reach: 4.5, - min_reach: 2.0, sound: Some(azalea_registry::Holder::Reference( SoundEvent::ItemSpearWoodAttack, )), diff --git a/azalea-language/src/en_us.json b/azalea-language/src/en_us.json index 9efbf12f3..7f907cf22 100644 --- a/azalea-language/src/en_us.json +++ b/azalea-language/src/en_us.json @@ -5939,7 +5939,7 @@ "options.mainHand.left": "Left", "options.mainHand.right": "Right", "options.maxAnisotropy": "Anisotropic Filtering", - "options.maxAnisotropy.tooltip": "Significantly improves how smooth textures look, but impacts performance and significantly impacts video memory usage. May not be supported on all hardware.", + "options.maxAnisotropy.tooltip": "Each level significantly improves how smooth textures look, but impacts performance and significantly impacts video memory usage. Requires Texture Filtering to be set to Anisotropic.", "options.mipmapLevels": "Mipmap Levels", "options.modelPart.cape": "Cape", "options.modelPart.hat": "Hat", @@ -6029,6 +6029,13 @@ "options.telemetry.state.all": "All", "options.telemetry.state.minimal": "Minimal", "options.telemetry.state.none": "None", + "options.textureFiltering": "Texture Filtering", + "options.textureFiltering.anisotropic": "Anisotropic", + "options.textureFiltering.anisotropic.tooltip": "A hardware based filtering method, but impacts performance and significantly impacts video memory usage. May not be supported on all hardware.", + "options.textureFiltering.none": "None", + "options.textureFiltering.none.tooltip": "Textures are displayed without any filtering. Blocks may look blurry when viewed at an angle.", + "options.textureFiltering.rgss": "RGSS", + "options.textureFiltering.rgss.tooltip": "(Rotated Grid Super Sampling)\nA shader based filtering method that improves texture quality with a moderate performance impact.", "options.title": "Options", "options.touchscreen": "Touchscreen Mode", "options.value": "%s", @@ -6781,9 +6788,12 @@ "subtitles.entity.axolotl.splash": "Axolotl splashes", "subtitles.entity.axolotl.swim": "Axolotl swims", "subtitles.entity.baby_nautilus.ambient": "Baby Nautilus chitters", + "subtitles.entity.baby_nautilus.ambient_land": "Baby Nautilus chitters", "subtitles.entity.baby_nautilus.death": "Baby Nautilus dies", + "subtitles.entity.baby_nautilus.death_land": "Baby Nautilus dies", "subtitles.entity.baby_nautilus.eat": "Baby Nautilus eats", "subtitles.entity.baby_nautilus.hurt": "Baby Nautilus hurts", + "subtitles.entity.baby_nautilus.hurt_land": "Baby Nautilus hurts", "subtitles.entity.baby_nautilus.swim": "Baby Nautilus swims", "subtitles.entity.bat.ambient": "Bat screeches", "subtitles.entity.bat.death": "Bat dies", @@ -7093,11 +7103,16 @@ "subtitles.entity.mule.hurt": "Mule hurts", "subtitles.entity.mule.jump": "Mule jumps", "subtitles.entity.nautilus.ambient": "Nautilus clacks", + "subtitles.entity.nautilus.ambient_land": "Nautilus clacks", "subtitles.entity.nautilus.dash": "Nautilus jets", + "subtitles.entity.nautilus.dash_land": "Nautilus jets", "subtitles.entity.nautilus.dash_ready": "Nautilus recovers", + "subtitles.entity.nautilus.dash_ready_land": "Nautilus recovers", "subtitles.entity.nautilus.death": "Nautilus dies", + "subtitles.entity.nautilus.death_land": "Nautilus dies", "subtitles.entity.nautilus.eat": "Nautilus eats", "subtitles.entity.nautilus.hurt": "Nautilus hurts", + "subtitles.entity.nautilus.hurt_land": "Nautilus hurts", "subtitles.entity.nautilus.swim": "Nautilus swims", "subtitles.entity.painting.break": "Painting broken", "subtitles.entity.painting.place": "Painting placed", @@ -7408,11 +7423,16 @@ "subtitles.entity.zombie_horse.eat": "Zombie Horse eats", "subtitles.entity.zombie_horse.hurt": "Zombie Horse hurts", "subtitles.entity.zombie_nautilus.ambient": "Zombie Nautilus burbles", + "subtitles.entity.zombie_nautilus.ambient_land": "Zombie Nautilus burbles", "subtitles.entity.zombie_nautilus.dash": "Zombie Nautilus jets", + "subtitles.entity.zombie_nautilus.dash_land": "Zombie Nautilus jets", "subtitles.entity.zombie_nautilus.dash_ready": "Zombie Nautilus recovers", + "subtitles.entity.zombie_nautilus.dash_ready_land": "Zombie Nautilus recovers", "subtitles.entity.zombie_nautilus.death": "Zombie Nautilus dies", + "subtitles.entity.zombie_nautilus.death_land": "Zombie Nautilus dies", "subtitles.entity.zombie_nautilus.eat": "Zombie Nautilus eats", "subtitles.entity.zombie_nautilus.hurt": "Zombie Nautilus hurts", + "subtitles.entity.zombie_nautilus.hurt_land": "Zombie Nautilus hurts", "subtitles.entity.zombie_nautilus.swim": "Zombie Nautilus swims", "subtitles.entity.zombie_villager.ambient": "Zombie Villager groans", "subtitles.entity.zombie_villager.converted": "Zombie Villager vociferates", diff --git a/azalea-protocol/src/packets/mod.rs b/azalea-protocol/src/packets/mod.rs index 5d5c957c4..3dcb8c307 100644 --- a/azalea-protocol/src/packets/mod.rs +++ b/azalea-protocol/src/packets/mod.rs @@ -11,8 +11,8 @@ use azalea_buf::{AzaleaReadVar, AzaleaWrite, AzaleaWriteVar, BufReadError}; use crate::read::ReadPacketError; -pub const PROTOCOL_VERSION: i32 = 1073742102; -pub const VERSION_NAME: &str = "25w46a"; +pub const PROTOCOL_VERSION: i32 = 1073742103; +pub const VERSION_NAME: &str = "1.21.11-pre1"; #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] pub enum ConnectionProtocol { diff --git a/azalea-registry/src/lib.rs b/azalea-registry/src/lib.rs index f49b97a97..429501672 100644 --- a/azalea-registry/src/lib.rs +++ b/azalea-registry/src/lib.rs @@ -3703,6 +3703,11 @@ enum MemoryModuleKind { TransportItemsCooldownTicks => "minecraft:transport_items_cooldown_ticks", ChargeCooldownTicks => "minecraft:charge_cooldown_ticks", AttackTargetCooldown => "minecraft:attack_target_cooldown", + SpearFleeingTime => "minecraft:spear_fleeing_time", + SpearFleeingPosition => "minecraft:spear_fleeing_position", + SpearChargePosition => "minecraft:spear_charge_position", + SpearEngageTime => "minecraft:spear_engage_time", + SpearStatus => "minecraft:spear_status", AngryAt => "minecraft:angry_at", UniversalAnger => "minecraft:universal_anger", AdmiringItem => "minecraft:admiring_item", @@ -4210,9 +4215,12 @@ enum SoundEvent { BlockAzaleaLeavesPlace => "minecraft:block.azalea_leaves.place", BlockAzaleaLeavesStep => "minecraft:block.azalea_leaves.step", EntityBabyNautilusAmbient => "minecraft:entity.baby_nautilus.ambient", + EntityBabyNautilusAmbientLand => "minecraft:entity.baby_nautilus.ambient_land", EntityBabyNautilusDeath => "minecraft:entity.baby_nautilus.death", + EntityBabyNautilusDeathLand => "minecraft:entity.baby_nautilus.death_land", EntityBabyNautilusEat => "minecraft:entity.baby_nautilus.eat", EntityBabyNautilusHurt => "minecraft:entity.baby_nautilus.hurt", + EntityBabyNautilusHurtLand => "minecraft:entity.baby_nautilus.hurt_land", EntityNautilusRiding => "minecraft:entity.nautilus.riding", EntityBabyNautilusSwim => "minecraft:entity.baby_nautilus.swim", BlockBambooBreak => "minecraft:block.bamboo.break", @@ -5137,11 +5145,16 @@ enum SoundEvent { MusicOverworldBambooJungle => "minecraft:music.overworld.bamboo_jungle", MusicUnderWater => "minecraft:music.under_water", EntityNautilusAmbient => "minecraft:entity.nautilus.ambient", + EntityNautilusAmbientLand => "minecraft:entity.nautilus.ambient_land", EntityNautilusDash => "minecraft:entity.nautilus.dash", + EntityNautilusDashLand => "minecraft:entity.nautilus.dash_land", EntityNautilusDashReady => "minecraft:entity.nautilus.dash_ready", + EntityNautilusDashReadyLand => "minecraft:entity.nautilus.dash_ready_land", EntityNautilusDeath => "minecraft:entity.nautilus.death", + EntityNautilusDeathLand => "minecraft:entity.nautilus.death_land", EntityNautilusEat => "minecraft:entity.nautilus.eat", EntityNautilusHurt => "minecraft:entity.nautilus.hurt", + EntityNautilusHurtLand => "minecraft:entity.nautilus.hurt_land", EntityNautilusSwim => "minecraft:entity.nautilus.swim", BlockNetherBricksBreak => "minecraft:block.nether_bricks.break", BlockNetherBricksStep => "minecraft:block.nether_bricks.step", @@ -5903,11 +5916,16 @@ enum SoundEvent { EntityZombieHurt => "minecraft:entity.zombie.hurt", EntityZombieInfect => "minecraft:entity.zombie.infect", EntityZombieNautilusAmbient => "minecraft:entity.zombie_nautilus.ambient", + EntityZombieNautilusAmbientLand => "minecraft:entity.zombie_nautilus.ambient_land", EntityZombieNautilusDash => "minecraft:entity.zombie_nautilus.dash", + EntityZombieNautilusDashLand => "minecraft:entity.zombie_nautilus.dash_land", EntityZombieNautilusDashReady => "minecraft:entity.zombie_nautilus.dash_ready", + EntityZombieNautilusDashReadyLand => "minecraft:entity.zombie_nautilus.dash_ready_land", EntityZombieNautilusDeath => "minecraft:entity.zombie_nautilus.death", + EntityZombieNautilusDeathLand => "minecraft:entity.zombie_nautilus.death_land", EntityZombieNautilusEat => "minecraft:entity.zombie_nautilus.eat", EntityZombieNautilusHurt => "minecraft:entity.zombie_nautilus.hurt", + EntityZombieNautilusHurtLand => "minecraft:entity.zombie_nautilus.hurt_land", EntityZombieNautilusSwim => "minecraft:entity.zombie_nautilus.swim", EntityZombifiedPiglinAmbient => "minecraft:entity.zombified_piglin.ambient", EntityZombifiedPiglinAngry => "minecraft:entity.zombified_piglin.angry", @@ -6774,6 +6792,7 @@ enum DataComponentKind { DamageResistant => "minecraft:damage_resistant", Tool => "minecraft:tool", Weapon => "minecraft:weapon", + AttackRange => "minecraft:attack_range", Enchantable => "minecraft:enchantable", Equippable => "minecraft:equippable", Repairable => "minecraft:repairable", diff --git a/azalea-registry/src/tags/entities.rs b/azalea-registry/src/tags/entities.rs index 38a069fe8..14fea7af0 100644 --- a/azalea-registry/src/tags/entities.rs +++ b/azalea-registry/src/tags/entities.rs @@ -143,6 +143,7 @@ pub static CAN_FLOAT_WHILE_RIDDEN: LazyLock> = LazyLock::new EntityKind::Mule, EntityKind::Donkey, EntityKind::Camel, + EntityKind::CamelHusk, ]) }); pub static CAN_TURN_IN_BOATS: LazyLock> = diff --git a/azalea-registry/src/tags/items.rs b/azalea-registry/src/tags/items.rs index c38dfeda2..eedc03d40 100644 --- a/azalea-registry/src/tags/items.rs +++ b/azalea-registry/src/tags/items.rs @@ -1684,7 +1684,7 @@ pub static PIGLIN_LOVED: LazyLock> = LazyLock::new(|| { ]) }); pub static PIGLIN_PREFERRED_WEAPONS: LazyLock> = - LazyLock::new(|| HashSet::from_iter([Item::Crossbow])); + LazyLock::new(|| HashSet::from_iter([Item::Crossbow, Item::GoldenSpear])); pub static PIGLIN_REPELLENTS: LazyLock> = LazyLock::new(|| HashSet::from_iter([Item::SoulTorch, Item::SoulLantern, Item::SoulCampfire])); pub static PIGLIN_SAFE_ARMOR: LazyLock> = LazyLock::new(|| { From 5d7851e206da8ada7c5bfb5272c1f45f9ab12e99 Mon Sep 17 00:00:00 2001 From: mat Date: Fri, 21 Nov 2025 22:42:25 +0600 Subject: [PATCH 07/11] 1.21.11-pre2 --- Cargo.lock | 42 +++++++++++++++--------------- Cargo.toml | 2 +- README.md | 2 +- azalea-language/src/en_us.json | 2 +- azalea-protocol/src/packets/mod.rs | 4 +-- 5 files changed, 26 insertions(+), 26 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e65463eb7..d8cbb74ec 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -209,7 +209,7 @@ checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "azalea" -version = "0.14.0+mc1.21.11-pre1" +version = "0.14.0+mc1.21.11-pre2" dependencies = [ "anyhow", "azalea-auth", @@ -249,7 +249,7 @@ dependencies = [ [[package]] name = "azalea-auth" -version = "0.14.0+mc1.21.11-pre1" +version = "0.14.0+mc1.21.11-pre2" dependencies = [ "azalea-buf", "azalea-crypto", @@ -273,7 +273,7 @@ dependencies = [ [[package]] name = "azalea-block" -version = "0.14.0+mc1.21.11-pre1" +version = "0.14.0+mc1.21.11-pre2" dependencies = [ "azalea-block-macros", "azalea-buf", @@ -282,7 +282,7 @@ dependencies = [ [[package]] name = "azalea-block-macros" -version = "0.14.0+mc1.21.11-pre1" +version = "0.14.0+mc1.21.11-pre2" dependencies = [ "proc-macro2", "quote", @@ -291,7 +291,7 @@ dependencies = [ [[package]] name = "azalea-brigadier" -version = "0.14.0+mc1.21.11-pre1" +version = "0.14.0+mc1.21.11-pre2" dependencies = [ "azalea-buf", "azalea-chat", @@ -302,7 +302,7 @@ dependencies = [ [[package]] name = "azalea-buf" -version = "0.14.0+mc1.21.11-pre1" +version = "0.14.0+mc1.21.11-pre2" dependencies = [ "azalea-buf-macros", "byteorder", @@ -316,7 +316,7 @@ dependencies = [ [[package]] name = "azalea-buf-macros" -version = "0.14.0+mc1.21.11-pre1" +version = "0.14.0+mc1.21.11-pre2" dependencies = [ "proc-macro2", "quote", @@ -325,7 +325,7 @@ dependencies = [ [[package]] name = "azalea-chat" -version = "0.14.0+mc1.21.11-pre1" +version = "0.14.0+mc1.21.11-pre2" dependencies = [ "azalea-buf", "azalea-language", @@ -338,7 +338,7 @@ dependencies = [ [[package]] name = "azalea-client" -version = "0.14.0+mc1.21.11-pre1" +version = "0.14.0+mc1.21.11-pre2" dependencies = [ "anyhow", "async-compat", @@ -376,7 +376,7 @@ dependencies = [ [[package]] name = "azalea-core" -version = "0.14.0+mc1.21.11-pre1" +version = "0.14.0+mc1.21.11-pre2" dependencies = [ "azalea-buf", "azalea-chat", @@ -395,7 +395,7 @@ dependencies = [ [[package]] name = "azalea-crypto" -version = "0.14.0+mc1.21.11-pre1" +version = "0.14.0+mc1.21.11-pre2" dependencies = [ "aes", "azalea-buf", @@ -412,7 +412,7 @@ dependencies = [ [[package]] name = "azalea-entity" -version = "0.14.0+mc1.21.11-pre1" +version = "0.14.0+mc1.21.11-pre2" dependencies = [ "azalea-auth", "azalea-block", @@ -436,7 +436,7 @@ dependencies = [ [[package]] name = "azalea-inventory" -version = "0.14.0+mc1.21.11-pre1" +version = "0.14.0+mc1.21.11-pre2" dependencies = [ "azalea-auth", "azalea-buf", @@ -453,7 +453,7 @@ dependencies = [ [[package]] name = "azalea-inventory-macros" -version = "0.14.0+mc1.21.11-pre1" +version = "0.14.0+mc1.21.11-pre2" dependencies = [ "proc-macro2", "quote", @@ -462,7 +462,7 @@ dependencies = [ [[package]] name = "azalea-language" -version = "0.14.0+mc1.21.11-pre1" +version = "0.14.0+mc1.21.11-pre2" dependencies = [ "compact_str", "serde_json", @@ -470,7 +470,7 @@ dependencies = [ [[package]] name = "azalea-physics" -version = "0.14.0+mc1.21.11-pre1" +version = "0.14.0+mc1.21.11-pre2" dependencies = [ "azalea-block", "azalea-core", @@ -487,7 +487,7 @@ dependencies = [ [[package]] name = "azalea-protocol" -version = "0.14.0+mc1.21.11-pre1" +version = "0.14.0+mc1.21.11-pre2" dependencies = [ "anyhow", "async-recursion", @@ -523,7 +523,7 @@ dependencies = [ [[package]] name = "azalea-protocol-macros" -version = "0.14.0+mc1.21.11-pre1" +version = "0.14.0+mc1.21.11-pre2" dependencies = [ "proc-macro2", "quote", @@ -532,7 +532,7 @@ dependencies = [ [[package]] name = "azalea-registry" -version = "0.14.0+mc1.21.11-pre1" +version = "0.14.0+mc1.21.11-pre2" dependencies = [ "azalea-buf", "azalea-registry-macros", @@ -542,7 +542,7 @@ dependencies = [ [[package]] name = "azalea-registry-macros" -version = "0.14.0+mc1.21.11-pre1" +version = "0.14.0+mc1.21.11-pre2" dependencies = [ "quote", "syn", @@ -550,7 +550,7 @@ dependencies = [ [[package]] name = "azalea-world" -version = "0.14.0+mc1.21.11-pre1" +version = "0.14.0+mc1.21.11-pre2" dependencies = [ "azalea-block", "azalea-buf", diff --git a/Cargo.toml b/Cargo.toml index bbf884219..2dc052cd9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -22,7 +22,7 @@ resolver = "3" # --- Workspace Settings --- [workspace.package] -version = "0.14.0+mc1.21.11-pre1" +version = "0.14.0+mc1.21.11-pre2" edition = "2024" license = "MIT" repository = "https://github.com/azalea-rs/azalea" diff --git a/README.md b/README.md index 61868dc37..af599a9ad 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ A collection of Rust crates for making Minecraft bots, clients, and tools. -_Currently supported Minecraft version: `1.21.11-pre1`._ +_Currently supported Minecraft version: `1.21.11-pre2`._ > [!WARNING] > Many parts of Azalea are still unfinished and will receive breaking changes in the future. Most breaking changes will be listed in the [changelog](CHANGELOG.md). diff --git a/azalea-language/src/en_us.json b/azalea-language/src/en_us.json index 7f907cf22..04b3fc474 100644 --- a/azalea-language/src/en_us.json +++ b/azalea-language/src/en_us.json @@ -5842,7 +5842,7 @@ "options.controls": "Controls...", "options.credits_and_attribution": "Credits & Attribution...", "options.cutoutLeaves": "See-Through Leaves", - "options.cutoutLeaves.tooltip": "Allows to see through gaps in leaves. Disabling may improve performance.", + "options.cutoutLeaves.tooltip": "Allows you to see through gaps in leaves. Disabling improves performance.", "options.damageTiltStrength": "Damage Tilt", "options.damageTiltStrength.tooltip": "The amount of camera shake caused by being hurt.", "options.darkMojangStudiosBackgroundColor": "Monochrome Logo", diff --git a/azalea-protocol/src/packets/mod.rs b/azalea-protocol/src/packets/mod.rs index 3dcb8c307..8c34ef514 100644 --- a/azalea-protocol/src/packets/mod.rs +++ b/azalea-protocol/src/packets/mod.rs @@ -11,8 +11,8 @@ use azalea_buf::{AzaleaReadVar, AzaleaWrite, AzaleaWriteVar, BufReadError}; use crate::read::ReadPacketError; -pub const PROTOCOL_VERSION: i32 = 1073742103; -pub const VERSION_NAME: &str = "1.21.11-pre1"; +pub const PROTOCOL_VERSION: i32 = 1073742104; +pub const VERSION_NAME: &str = "1.21.11-pre2"; #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] pub enum ConnectionProtocol { From 9551962aa5033bab2216621c829cba8aabed060a Mon Sep 17 00:00:00 2001 From: mat Date: Mon, 1 Dec 2025 10:58:30 +0700 Subject: [PATCH 08/11] 1.21.11-pre3 --- Cargo.lock | 42 +++++++++++++++--------------- Cargo.toml | 2 +- README.md | 2 +- azalea-protocol/src/packets/mod.rs | 4 +-- 4 files changed, 25 insertions(+), 25 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d8cbb74ec..13e5f1335 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -209,7 +209,7 @@ checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "azalea" -version = "0.14.0+mc1.21.11-pre2" +version = "0.14.0+mc1.21.11-pre3" dependencies = [ "anyhow", "azalea-auth", @@ -249,7 +249,7 @@ dependencies = [ [[package]] name = "azalea-auth" -version = "0.14.0+mc1.21.11-pre2" +version = "0.14.0+mc1.21.11-pre3" dependencies = [ "azalea-buf", "azalea-crypto", @@ -273,7 +273,7 @@ dependencies = [ [[package]] name = "azalea-block" -version = "0.14.0+mc1.21.11-pre2" +version = "0.14.0+mc1.21.11-pre3" dependencies = [ "azalea-block-macros", "azalea-buf", @@ -282,7 +282,7 @@ dependencies = [ [[package]] name = "azalea-block-macros" -version = "0.14.0+mc1.21.11-pre2" +version = "0.14.0+mc1.21.11-pre3" dependencies = [ "proc-macro2", "quote", @@ -291,7 +291,7 @@ dependencies = [ [[package]] name = "azalea-brigadier" -version = "0.14.0+mc1.21.11-pre2" +version = "0.14.0+mc1.21.11-pre3" dependencies = [ "azalea-buf", "azalea-chat", @@ -302,7 +302,7 @@ dependencies = [ [[package]] name = "azalea-buf" -version = "0.14.0+mc1.21.11-pre2" +version = "0.14.0+mc1.21.11-pre3" dependencies = [ "azalea-buf-macros", "byteorder", @@ -316,7 +316,7 @@ dependencies = [ [[package]] name = "azalea-buf-macros" -version = "0.14.0+mc1.21.11-pre2" +version = "0.14.0+mc1.21.11-pre3" dependencies = [ "proc-macro2", "quote", @@ -325,7 +325,7 @@ dependencies = [ [[package]] name = "azalea-chat" -version = "0.14.0+mc1.21.11-pre2" +version = "0.14.0+mc1.21.11-pre3" dependencies = [ "azalea-buf", "azalea-language", @@ -338,7 +338,7 @@ dependencies = [ [[package]] name = "azalea-client" -version = "0.14.0+mc1.21.11-pre2" +version = "0.14.0+mc1.21.11-pre3" dependencies = [ "anyhow", "async-compat", @@ -376,7 +376,7 @@ dependencies = [ [[package]] name = "azalea-core" -version = "0.14.0+mc1.21.11-pre2" +version = "0.14.0+mc1.21.11-pre3" dependencies = [ "azalea-buf", "azalea-chat", @@ -395,7 +395,7 @@ dependencies = [ [[package]] name = "azalea-crypto" -version = "0.14.0+mc1.21.11-pre2" +version = "0.14.0+mc1.21.11-pre3" dependencies = [ "aes", "azalea-buf", @@ -412,7 +412,7 @@ dependencies = [ [[package]] name = "azalea-entity" -version = "0.14.0+mc1.21.11-pre2" +version = "0.14.0+mc1.21.11-pre3" dependencies = [ "azalea-auth", "azalea-block", @@ -436,7 +436,7 @@ dependencies = [ [[package]] name = "azalea-inventory" -version = "0.14.0+mc1.21.11-pre2" +version = "0.14.0+mc1.21.11-pre3" dependencies = [ "azalea-auth", "azalea-buf", @@ -453,7 +453,7 @@ dependencies = [ [[package]] name = "azalea-inventory-macros" -version = "0.14.0+mc1.21.11-pre2" +version = "0.14.0+mc1.21.11-pre3" dependencies = [ "proc-macro2", "quote", @@ -462,7 +462,7 @@ dependencies = [ [[package]] name = "azalea-language" -version = "0.14.0+mc1.21.11-pre2" +version = "0.14.0+mc1.21.11-pre3" dependencies = [ "compact_str", "serde_json", @@ -470,7 +470,7 @@ dependencies = [ [[package]] name = "azalea-physics" -version = "0.14.0+mc1.21.11-pre2" +version = "0.14.0+mc1.21.11-pre3" dependencies = [ "azalea-block", "azalea-core", @@ -487,7 +487,7 @@ dependencies = [ [[package]] name = "azalea-protocol" -version = "0.14.0+mc1.21.11-pre2" +version = "0.14.0+mc1.21.11-pre3" dependencies = [ "anyhow", "async-recursion", @@ -523,7 +523,7 @@ dependencies = [ [[package]] name = "azalea-protocol-macros" -version = "0.14.0+mc1.21.11-pre2" +version = "0.14.0+mc1.21.11-pre3" dependencies = [ "proc-macro2", "quote", @@ -532,7 +532,7 @@ dependencies = [ [[package]] name = "azalea-registry" -version = "0.14.0+mc1.21.11-pre2" +version = "0.14.0+mc1.21.11-pre3" dependencies = [ "azalea-buf", "azalea-registry-macros", @@ -542,7 +542,7 @@ dependencies = [ [[package]] name = "azalea-registry-macros" -version = "0.14.0+mc1.21.11-pre2" +version = "0.14.0+mc1.21.11-pre3" dependencies = [ "quote", "syn", @@ -550,7 +550,7 @@ dependencies = [ [[package]] name = "azalea-world" -version = "0.14.0+mc1.21.11-pre2" +version = "0.14.0+mc1.21.11-pre3" dependencies = [ "azalea-block", "azalea-buf", diff --git a/Cargo.toml b/Cargo.toml index 2dc052cd9..9f89638ab 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -22,7 +22,7 @@ resolver = "3" # --- Workspace Settings --- [workspace.package] -version = "0.14.0+mc1.21.11-pre2" +version = "0.14.0+mc1.21.11-pre3" edition = "2024" license = "MIT" repository = "https://github.com/azalea-rs/azalea" diff --git a/README.md b/README.md index af599a9ad..89f2bc6c8 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ A collection of Rust crates for making Minecraft bots, clients, and tools. -_Currently supported Minecraft version: `1.21.11-pre2`._ +_Currently supported Minecraft version: `1.21.11-pre3`._ > [!WARNING] > Many parts of Azalea are still unfinished and will receive breaking changes in the future. Most breaking changes will be listed in the [changelog](CHANGELOG.md). diff --git a/azalea-protocol/src/packets/mod.rs b/azalea-protocol/src/packets/mod.rs index 8c34ef514..b7e9e65db 100644 --- a/azalea-protocol/src/packets/mod.rs +++ b/azalea-protocol/src/packets/mod.rs @@ -11,8 +11,8 @@ use azalea_buf::{AzaleaReadVar, AzaleaWrite, AzaleaWriteVar, BufReadError}; use crate::read::ReadPacketError; -pub const PROTOCOL_VERSION: i32 = 1073742104; -pub const VERSION_NAME: &str = "1.21.11-pre2"; +pub const PROTOCOL_VERSION: i32 = 1073742105; +pub const VERSION_NAME: &str = "1.21.11-pre3"; #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] pub enum ConnectionProtocol { From 3f38e678bcb9e5924716a2d52dd5865486f3bcb7 Mon Sep 17 00:00:00 2001 From: mat Date: Tue, 9 Dec 2025 05:00:04 +0200 Subject: [PATCH 09/11] add AttackRange fields from pre4 --- azalea-inventory/src/components/mod.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/azalea-inventory/src/components/mod.rs b/azalea-inventory/src/components/mod.rs index bf31967be..9c27db8cc 100644 --- a/azalea-inventory/src/components/mod.rs +++ b/azalea-inventory/src/components/mod.rs @@ -1634,6 +1634,8 @@ pub enum SwingAnimationKind { pub struct AttackRange { pub min_reach: f32, pub max_reach: f32, + pub min_creative_reach: f32, + pub max_creative_reach: f32, pub hitbox_margin: f32, pub mob_factor: f32, } @@ -1642,6 +1644,8 @@ impl AttackRange { Self { min_reach: 0., max_reach: 3., + min_creative_reach: 0., + max_creative_reach: 5., hitbox_margin: 0.3, mob_factor: 1., } From 11999857b49db5dfc27c515410b9ff2d916722cc Mon Sep 17 00:00:00 2001 From: mat Date: Mon, 8 Dec 2025 14:17:57 -1245 Subject: [PATCH 10/11] 1.21.11-rc3 --- Cargo.lock | 42 +++++++++---------- Cargo.toml | 2 +- README.md | 2 +- .../src/default_components/generated.rs | 28 +++++++++---- azalea-protocol/src/packets/mod.rs | 4 +- 5 files changed, 46 insertions(+), 32 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 13e5f1335..72c0bbf4c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -209,7 +209,7 @@ checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "azalea" -version = "0.14.0+mc1.21.11-pre3" +version = "0.14.0+mc1.21.11-rc3" dependencies = [ "anyhow", "azalea-auth", @@ -249,7 +249,7 @@ dependencies = [ [[package]] name = "azalea-auth" -version = "0.14.0+mc1.21.11-pre3" +version = "0.14.0+mc1.21.11-rc3" dependencies = [ "azalea-buf", "azalea-crypto", @@ -273,7 +273,7 @@ dependencies = [ [[package]] name = "azalea-block" -version = "0.14.0+mc1.21.11-pre3" +version = "0.14.0+mc1.21.11-rc3" dependencies = [ "azalea-block-macros", "azalea-buf", @@ -282,7 +282,7 @@ dependencies = [ [[package]] name = "azalea-block-macros" -version = "0.14.0+mc1.21.11-pre3" +version = "0.14.0+mc1.21.11-rc3" dependencies = [ "proc-macro2", "quote", @@ -291,7 +291,7 @@ dependencies = [ [[package]] name = "azalea-brigadier" -version = "0.14.0+mc1.21.11-pre3" +version = "0.14.0+mc1.21.11-rc3" dependencies = [ "azalea-buf", "azalea-chat", @@ -302,7 +302,7 @@ dependencies = [ [[package]] name = "azalea-buf" -version = "0.14.0+mc1.21.11-pre3" +version = "0.14.0+mc1.21.11-rc3" dependencies = [ "azalea-buf-macros", "byteorder", @@ -316,7 +316,7 @@ dependencies = [ [[package]] name = "azalea-buf-macros" -version = "0.14.0+mc1.21.11-pre3" +version = "0.14.0+mc1.21.11-rc3" dependencies = [ "proc-macro2", "quote", @@ -325,7 +325,7 @@ dependencies = [ [[package]] name = "azalea-chat" -version = "0.14.0+mc1.21.11-pre3" +version = "0.14.0+mc1.21.11-rc3" dependencies = [ "azalea-buf", "azalea-language", @@ -338,7 +338,7 @@ dependencies = [ [[package]] name = "azalea-client" -version = "0.14.0+mc1.21.11-pre3" +version = "0.14.0+mc1.21.11-rc3" dependencies = [ "anyhow", "async-compat", @@ -376,7 +376,7 @@ dependencies = [ [[package]] name = "azalea-core" -version = "0.14.0+mc1.21.11-pre3" +version = "0.14.0+mc1.21.11-rc3" dependencies = [ "azalea-buf", "azalea-chat", @@ -395,7 +395,7 @@ dependencies = [ [[package]] name = "azalea-crypto" -version = "0.14.0+mc1.21.11-pre3" +version = "0.14.0+mc1.21.11-rc3" dependencies = [ "aes", "azalea-buf", @@ -412,7 +412,7 @@ dependencies = [ [[package]] name = "azalea-entity" -version = "0.14.0+mc1.21.11-pre3" +version = "0.14.0+mc1.21.11-rc3" dependencies = [ "azalea-auth", "azalea-block", @@ -436,7 +436,7 @@ dependencies = [ [[package]] name = "azalea-inventory" -version = "0.14.0+mc1.21.11-pre3" +version = "0.14.0+mc1.21.11-rc3" dependencies = [ "azalea-auth", "azalea-buf", @@ -453,7 +453,7 @@ dependencies = [ [[package]] name = "azalea-inventory-macros" -version = "0.14.0+mc1.21.11-pre3" +version = "0.14.0+mc1.21.11-rc3" dependencies = [ "proc-macro2", "quote", @@ -462,7 +462,7 @@ dependencies = [ [[package]] name = "azalea-language" -version = "0.14.0+mc1.21.11-pre3" +version = "0.14.0+mc1.21.11-rc3" dependencies = [ "compact_str", "serde_json", @@ -470,7 +470,7 @@ dependencies = [ [[package]] name = "azalea-physics" -version = "0.14.0+mc1.21.11-pre3" +version = "0.14.0+mc1.21.11-rc3" dependencies = [ "azalea-block", "azalea-core", @@ -487,7 +487,7 @@ dependencies = [ [[package]] name = "azalea-protocol" -version = "0.14.0+mc1.21.11-pre3" +version = "0.14.0+mc1.21.11-rc3" dependencies = [ "anyhow", "async-recursion", @@ -523,7 +523,7 @@ dependencies = [ [[package]] name = "azalea-protocol-macros" -version = "0.14.0+mc1.21.11-pre3" +version = "0.14.0+mc1.21.11-rc3" dependencies = [ "proc-macro2", "quote", @@ -532,7 +532,7 @@ dependencies = [ [[package]] name = "azalea-registry" -version = "0.14.0+mc1.21.11-pre3" +version = "0.14.0+mc1.21.11-rc3" dependencies = [ "azalea-buf", "azalea-registry-macros", @@ -542,7 +542,7 @@ dependencies = [ [[package]] name = "azalea-registry-macros" -version = "0.14.0+mc1.21.11-pre3" +version = "0.14.0+mc1.21.11-rc3" dependencies = [ "quote", "syn", @@ -550,7 +550,7 @@ dependencies = [ [[package]] name = "azalea-world" -version = "0.14.0+mc1.21.11-pre3" +version = "0.14.0+mc1.21.11-rc3" dependencies = [ "azalea-block", "azalea-buf", diff --git a/Cargo.toml b/Cargo.toml index 9f89638ab..df5e90213 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -22,7 +22,7 @@ resolver = "3" # --- Workspace Settings --- [workspace.package] -version = "0.14.0+mc1.21.11-pre3" +version = "0.14.0+mc1.21.11-rc3" edition = "2024" license = "MIT" repository = "https://github.com/azalea-rs/azalea" diff --git a/README.md b/README.md index 89f2bc6c8..6b1df5d74 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ A collection of Rust crates for making Minecraft bots, clients, and tools. -_Currently supported Minecraft version: `1.21.11-pre3`._ +_Currently supported Minecraft version: `1.21.11-rc3`._ > [!WARNING] > Many parts of Azalea are still unfinished and will receive breaking changes in the future. Most breaking changes will be listed in the [changelog](CHANGELOG.md). diff --git a/azalea-inventory/src/default_components/generated.rs b/azalea-inventory/src/default_components/generated.rs index 9ca42fc2a..7daa545e3 100644 --- a/azalea-inventory/src/default_components/generated.rs +++ b/azalea-inventory/src/default_components/generated.rs @@ -5835,43 +5835,57 @@ impl DefaultableComponent for AttackRange { let value = match item { Item::CopperSpear => AttackRange { hitbox_margin: 0.125, + max_creative_reach: 6.5, max_reach: 4.5, + min_creative_reach: 2.0, min_reach: 2.0, mob_factor: 0.5, }, Item::DiamondSpear => AttackRange { hitbox_margin: 0.125, + max_creative_reach: 6.5, max_reach: 4.5, + min_creative_reach: 2.0, min_reach: 2.0, mob_factor: 0.5, }, Item::GoldenSpear => AttackRange { hitbox_margin: 0.125, + max_creative_reach: 6.5, max_reach: 4.5, + min_creative_reach: 2.0, min_reach: 2.0, mob_factor: 0.5, }, Item::IronSpear => AttackRange { hitbox_margin: 0.125, + max_creative_reach: 6.5, max_reach: 4.5, + min_creative_reach: 2.0, min_reach: 2.0, mob_factor: 0.5, }, Item::NetheriteSpear => AttackRange { hitbox_margin: 0.125, + max_creative_reach: 6.5, max_reach: 4.5, + min_creative_reach: 2.0, min_reach: 2.0, mob_factor: 0.5, }, Item::StoneSpear => AttackRange { hitbox_margin: 0.125, + max_creative_reach: 6.5, max_reach: 4.5, + min_creative_reach: 2.0, min_reach: 2.0, mob_factor: 0.5, }, Item::WoodenSpear => AttackRange { hitbox_margin: 0.125, + max_creative_reach: 6.5, max_reach: 4.5, + min_creative_reach: 2.0, min_reach: 2.0, mob_factor: 0.5, }, @@ -5914,7 +5928,7 @@ impl DefaultableComponent for KineticWeapon { forward_movement: 0.38, hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)), knockback_conditions: Some(KineticWeaponCondition { - max_duration_ticks: 100, + max_duration_ticks: 165, min_speed: 5.1, ..KineticWeaponCondition::new() }), @@ -5937,7 +5951,7 @@ impl DefaultableComponent for KineticWeapon { forward_movement: 0.38, hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)), knockback_conditions: Some(KineticWeaponCondition { - max_duration_ticks: 80, + max_duration_ticks: 130, min_speed: 5.1, ..KineticWeaponCondition::new() }), @@ -5960,7 +5974,7 @@ impl DefaultableComponent for KineticWeapon { forward_movement: 0.38, hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)), knockback_conditions: Some(KineticWeaponCondition { - max_duration_ticks: 110, + max_duration_ticks: 170, min_speed: 5.1, ..KineticWeaponCondition::new() }), @@ -5983,7 +5997,7 @@ impl DefaultableComponent for KineticWeapon { forward_movement: 0.38, hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)), knockback_conditions: Some(KineticWeaponCondition { - max_duration_ticks: 90, + max_duration_ticks: 135, min_speed: 5.1, ..KineticWeaponCondition::new() }), @@ -6006,7 +6020,7 @@ impl DefaultableComponent for KineticWeapon { forward_movement: 0.38, hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)), knockback_conditions: Some(KineticWeaponCondition { - max_duration_ticks: 70, + max_duration_ticks: 110, min_speed: 5.1, ..KineticWeaponCondition::new() }), @@ -6029,7 +6043,7 @@ impl DefaultableComponent for KineticWeapon { forward_movement: 0.38, hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)), knockback_conditions: Some(KineticWeaponCondition { - max_duration_ticks: 110, + max_duration_ticks: 180, min_speed: 5.1, ..KineticWeaponCondition::new() }), @@ -6054,7 +6068,7 @@ impl DefaultableComponent for KineticWeapon { SoundEvent::ItemSpearWoodHit, )), knockback_conditions: Some(KineticWeaponCondition { - max_duration_ticks: 120, + max_duration_ticks: 200, min_speed: 5.1, ..KineticWeaponCondition::new() }), diff --git a/azalea-protocol/src/packets/mod.rs b/azalea-protocol/src/packets/mod.rs index b7e9e65db..fa80d84d0 100644 --- a/azalea-protocol/src/packets/mod.rs +++ b/azalea-protocol/src/packets/mod.rs @@ -11,8 +11,8 @@ use azalea_buf::{AzaleaReadVar, AzaleaWrite, AzaleaWriteVar, BufReadError}; use crate::read::ReadPacketError; -pub const PROTOCOL_VERSION: i32 = 1073742105; -pub const VERSION_NAME: &str = "1.21.11-pre3"; +pub const PROTOCOL_VERSION: i32 = 1073742110; +pub const VERSION_NAME: &str = "1.21.11-rc3"; #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] pub enum ConnectionProtocol { From feb845402c2c558e6d3a0820c44c5069c3889186 Mon Sep 17 00:00:00 2001 From: mat Date: Tue, 9 Dec 2025 10:52:02 -0630 Subject: [PATCH 11/11] 1.21.11 --- Cargo.lock | 42 +++++++++++++++--------------- Cargo.toml | 2 +- README.md | 2 +- azalea-protocol/src/packets/mod.rs | 4 +-- 4 files changed, 25 insertions(+), 25 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 05bae996f..ceb456d05 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -198,7 +198,7 @@ checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "azalea" -version = "0.14.0+mc1.21.11-rc3" +version = "0.14.0+mc1.21.11" dependencies = [ "anyhow", "azalea-auth", @@ -238,7 +238,7 @@ dependencies = [ [[package]] name = "azalea-auth" -version = "0.14.0+mc1.21.11-rc3" +version = "0.14.0+mc1.21.11" dependencies = [ "azalea-buf", "azalea-crypto", @@ -261,7 +261,7 @@ dependencies = [ [[package]] name = "azalea-block" -version = "0.14.0+mc1.21.11-rc3" +version = "0.14.0+mc1.21.11" dependencies = [ "azalea-block-macros", "azalea-buf", @@ -270,7 +270,7 @@ dependencies = [ [[package]] name = "azalea-block-macros" -version = "0.14.0+mc1.21.11-rc3" +version = "0.14.0+mc1.21.11" dependencies = [ "proc-macro2", "quote", @@ -279,7 +279,7 @@ dependencies = [ [[package]] name = "azalea-brigadier" -version = "0.14.0+mc1.21.11-rc3" +version = "0.14.0+mc1.21.11" dependencies = [ "azalea-buf", "azalea-chat", @@ -290,7 +290,7 @@ dependencies = [ [[package]] name = "azalea-buf" -version = "0.14.0+mc1.21.11-rc3" +version = "0.14.0+mc1.21.11" dependencies = [ "azalea-buf-macros", "byteorder", @@ -304,7 +304,7 @@ dependencies = [ [[package]] name = "azalea-buf-macros" -version = "0.14.0+mc1.21.11-rc3" +version = "0.14.0+mc1.21.11" dependencies = [ "proc-macro2", "quote", @@ -313,7 +313,7 @@ dependencies = [ [[package]] name = "azalea-chat" -version = "0.14.0+mc1.21.11-rc3" +version = "0.14.0+mc1.21.11" dependencies = [ "azalea-buf", "azalea-language", @@ -326,7 +326,7 @@ dependencies = [ [[package]] name = "azalea-client" -version = "0.14.0+mc1.21.11-rc3" +version = "0.14.0+mc1.21.11" dependencies = [ "anyhow", "async-compat", @@ -364,7 +364,7 @@ dependencies = [ [[package]] name = "azalea-core" -version = "0.14.0+mc1.21.11-rc3" +version = "0.14.0+mc1.21.11" dependencies = [ "azalea-buf", "azalea-chat", @@ -383,7 +383,7 @@ dependencies = [ [[package]] name = "azalea-crypto" -version = "0.14.0+mc1.21.11-rc3" +version = "0.14.0+mc1.21.11" dependencies = [ "aes", "azalea-buf", @@ -401,7 +401,7 @@ dependencies = [ [[package]] name = "azalea-entity" -version = "0.14.0+mc1.21.11-rc3" +version = "0.14.0+mc1.21.11" dependencies = [ "azalea-auth", "azalea-block", @@ -425,7 +425,7 @@ dependencies = [ [[package]] name = "azalea-inventory" -version = "0.14.0+mc1.21.11-rc3" +version = "0.14.0+mc1.21.11" dependencies = [ "azalea-auth", "azalea-buf", @@ -442,7 +442,7 @@ dependencies = [ [[package]] name = "azalea-inventory-macros" -version = "0.14.0+mc1.21.11-rc3" +version = "0.14.0+mc1.21.11" dependencies = [ "proc-macro2", "quote", @@ -451,7 +451,7 @@ dependencies = [ [[package]] name = "azalea-language" -version = "0.14.0+mc1.21.11-rc3" +version = "0.14.0+mc1.21.11" dependencies = [ "compact_str", "serde_json", @@ -459,7 +459,7 @@ dependencies = [ [[package]] name = "azalea-physics" -version = "0.14.0+mc1.21.11-rc3" +version = "0.14.0+mc1.21.11" dependencies = [ "azalea-block", "azalea-core", @@ -476,7 +476,7 @@ dependencies = [ [[package]] name = "azalea-protocol" -version = "0.14.0+mc1.21.11-rc3" +version = "0.14.0+mc1.21.11" dependencies = [ "anyhow", "azalea-auth", @@ -511,7 +511,7 @@ dependencies = [ [[package]] name = "azalea-protocol-macros" -version = "0.14.0+mc1.21.11-rc3" +version = "0.14.0+mc1.21.11" dependencies = [ "proc-macro2", "quote", @@ -520,7 +520,7 @@ dependencies = [ [[package]] name = "azalea-registry" -version = "0.14.0+mc1.21.11-rc3" +version = "0.14.0+mc1.21.11" dependencies = [ "azalea-buf", "azalea-registry-macros", @@ -530,7 +530,7 @@ dependencies = [ [[package]] name = "azalea-registry-macros" -version = "0.14.0+mc1.21.11-rc3" +version = "0.14.0+mc1.21.11" dependencies = [ "quote", "syn", @@ -538,7 +538,7 @@ dependencies = [ [[package]] name = "azalea-world" -version = "0.14.0+mc1.21.11-rc3" +version = "0.14.0+mc1.21.11" dependencies = [ "azalea-block", "azalea-buf", diff --git a/Cargo.toml b/Cargo.toml index 092fd9683..a276d70e9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -22,7 +22,7 @@ resolver = "3" # --- Workspace Settings --- [workspace.package] -version = "0.14.0+mc1.21.11-rc3" +version = "0.14.0+mc1.21.11" edition = "2024" license = "MIT" repository = "https://github.com/azalea-rs/azalea" diff --git a/README.md b/README.md index 6b1df5d74..6db41cb3d 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ A collection of Rust crates for making Minecraft bots, clients, and tools. -_Currently supported Minecraft version: `1.21.11-rc3`._ +_Currently supported Minecraft version: `1.21.11`._ > [!WARNING] > Many parts of Azalea are still unfinished and will receive breaking changes in the future. Most breaking changes will be listed in the [changelog](CHANGELOG.md). diff --git a/azalea-protocol/src/packets/mod.rs b/azalea-protocol/src/packets/mod.rs index fa80d84d0..9d96b75c6 100644 --- a/azalea-protocol/src/packets/mod.rs +++ b/azalea-protocol/src/packets/mod.rs @@ -11,8 +11,8 @@ use azalea_buf::{AzaleaReadVar, AzaleaWrite, AzaleaWriteVar, BufReadError}; use crate::read::ReadPacketError; -pub const PROTOCOL_VERSION: i32 = 1073742110; -pub const VERSION_NAME: &str = "1.21.11-rc3"; +pub const PROTOCOL_VERSION: i32 = 774; +pub const VERSION_NAME: &str = "1.21.11"; #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] pub enum ConnectionProtocol {