diff options
| author | mat <27899617+mat-1@users.noreply.github.com> | 2025-12-12 00:56:02 -0600 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-12-12 00:56:02 -0600 |
| commit | f9c25665c203d6377ace62f1e95381d037d8fd9e (patch) | |
| tree | 8b4131d20fe661d3cc1175ec27f801fe61df41ea | |
| parent | 82ad975242292d5875780b4398b62637674bf50a (diff) | |
| download | azalea-drasl-f9c25665c203d6377ace62f1e95381d037d8fd9e.tar.xz | |
Refactor azalea-registry (#294)
* move registries in azalea-registry into separate modules
* rename Item and Block to ItemKind and BlockKind
* remove 'extra' registries from azalea-registry
* hide deprecated items from docs
* use DamageKindKey instead of Identifier when parsing registries
* store tag entries as a Vec instead of a HashSet
* sort tag values by protocol id
* update changelog
172 files changed, 19250 insertions, 16601 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index bdc68c2e..ce03fcf3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,6 +31,7 @@ is breaking anyways, semantic versioning is not followed. - Refactor `RegistryHolder` to pre-deserialize some registries. - The handler function is now automatically single-threaded, making `#[tokio::main(flavor = "current_thread")]` unnecessary. - Mojang's sessionserver is now requested using the SOCKS5 proxy given in `JoinOpts::proxy`. +- Refactor `azalea-registry`. Notably, `Item` and `Block` are now named `ItemKind` and `BlockKind`. ### Fixed diff --git a/azalea-block/README.md b/azalea-block/README.md index 8eca79ee..81e6b097 100644 --- a/azalea-block/README.md +++ b/azalea-block/README.md @@ -2,7 +2,7 @@ Representation of Minecraft block states. There's three block types, used for different things. You can (mostly) convert between them with `.into()`. -## BlockState struct +## `BlockState` struct [`BlockState`] is a struct containing the numerical protocol ID of a block state. This is how blocks are stored in the world. @@ -20,29 +20,30 @@ let block_state: BlockState = azalea_block::blocks::CobblestoneWall { ``` ``` # use azalea_block::BlockState; -let block_state: BlockState = azalea_registry::Block::Jukebox.into(); +# use azalea_registry::builtin::BlockKind; +let block_state: BlockState = BlockKind::Jukebox.into(); ``` -## BlockTrait +## `BlockTrait` The [`BlockTrait`] trait represents a type of a block. With [`BlockTrait`], you can get some extra things like the string block ID and some information about the block's behavior. Also, the structs that implement the trait contain the block attributes as fields so it's more convenient to get them. Note that this is often used as `Box<dyn BlockTrait>`. If for some reason you don't want `BlockTrait`, set `default-features = false`. ``` # use azalea_block::{BlockTrait, BlockState}; -# let block_state = BlockState::from(azalea_registry::Block::Jukebox); +# let block_state = BlockState::from(azalea_registry::builtin::BlockKind::Jukebox); let block = Box::<dyn BlockTrait>::from(block_state); ``` ``` # use azalea_block::{BlockTrait, BlockState}; -# let block_state: BlockState = azalea_registry::Block::Jukebox.into(); +# let block_state: BlockState = azalea_registry::builtin::BlockKind::Jukebox.into(); if let Some(jukebox) = Box::<dyn BlockTrait>::from(block_state).downcast_ref::<azalea_block::blocks::Jukebox>() { // ... } ``` -## azalea_registry::Block enum +## `azalea_registry::builtin::BlockKind` enum -This one technically isn't from the `azalea-block` crate, but it's still very relevant. It's an enum that contains every block type as a variant *without* containing any state data (unlike `BlockState` and the `Block` trait). Converting this into any other block type will use the default state for that block. +This one isn't from the `azalea-block` crate, but it's still very relevant. It's an enum that contains every block type as a variant *without* containing any state data (unlike `BlockState` and `BlockTrait`). Converting this into any other block type will use the default state for that block. diff --git a/azalea-block/azalea-block-macros/src/lib.rs b/azalea-block/azalea-block-macros/src/lib.rs index 843ea2ca..1abfacbb 100644 --- a/azalea-block/azalea-block-macros/src/lib.rs +++ b/azalea-block/azalea-block-macros/src/lib.rs @@ -424,13 +424,13 @@ pub fn make_block_states(input: TokenStream) -> TokenStream { }); from_registry_block_to_block_match.extend(quote! { - azalea_registry::Block::#block_name_pascal_case => Box::new(#block_struct_name::default()), + BlockKind::#block_name_pascal_case => Box::new(#block_struct_name::default()), }); from_registry_block_to_blockstate_match.extend(quote! { - azalea_registry::Block::#block_name_pascal_case => BlockState::new_const(#default_state_id), + BlockKind::#block_name_pascal_case => BlockState::new_const(#default_state_id), }); from_registry_block_to_blockstates_match.extend(quote! { - azalea_registry::Block::#block_name_pascal_case => BlockStates::from(#first_state_id..=#last_state_id), + BlockKind::#block_name_pascal_case => BlockStates::from(#first_state_id..=#last_state_id), }); let mut property_map_inner = quote! {}; @@ -491,8 +491,8 @@ pub fn make_block_states(input: TokenStream) -> TokenStream { fn as_block_state(&self) -> BlockState { #as_block_state } - fn as_registry_block(&self) -> azalea_registry::Block { - azalea_registry::Block::#block_name_pascal_case + fn as_registry_block(&self) -> BlockKind { + BlockKind::#block_name_pascal_case } fn property_map(&self) -> std::collections::HashMap<&'static str, &'static str> { @@ -557,6 +557,7 @@ pub fn make_block_states(input: TokenStream) -> TokenStream { pub mod blocks { use super::*; + use azalea_registry::builtin::BlockKind; #block_structs @@ -569,27 +570,27 @@ pub fn make_block_states(input: TokenStream) -> TokenStream { } } } - impl From<azalea_registry::Block> for Box<dyn BlockTrait> { - fn from(block: azalea_registry::Block) -> Self { + impl From<BlockKind> for Box<dyn BlockTrait> { + fn from(block: BlockKind) -> Self { match block { #from_registry_block_to_block_match - _ => unreachable!("There should always be a block struct for every azalea_registry::Block variant") + _ => unreachable!("There should always be a block struct for every BlockKind variant") } } } - impl From<azalea_registry::Block> for BlockState { - fn from(block: azalea_registry::Block) -> Self { + impl From<BlockKind> for BlockState { + fn from(block: BlockKind) -> Self { match block { #from_registry_block_to_blockstate_match - _ => unreachable!("There should always be a block state for every azalea_registry::Block variant") + _ => unreachable!("There should always be a block state for every BlockKind variant") } } } - impl From<azalea_registry::Block> for BlockStates { - fn from(block: azalea_registry::Block) -> Self { + impl From<BlockKind> for BlockStates { + fn from(block: BlockKind) -> Self { match block { #from_registry_block_to_blockstates_match - _ => unreachable!("There should always be a block state for every azalea_registry::Block variant") + _ => unreachable!("There should always be a block state for every BlockKind variant") } } } diff --git a/azalea-block/src/block_state.rs b/azalea-block/src/block_state.rs index e3f894bf..d39961b3 100644 --- a/azalea-block/src/block_state.rs +++ b/azalea-block/src/block_state.rs @@ -4,6 +4,7 @@ use std::{ }; use azalea_buf::{AzaleaRead, AzaleaReadVar, AzaleaWrite, AzaleaWriteVar, BufReadError}; +use azalea_registry::builtin::BlockKind; use crate::BlockTrait; @@ -129,7 +130,7 @@ impl Debug for BlockState { } } -impl From<BlockState> for azalea_registry::Block { +impl From<BlockState> for BlockKind { fn from(value: BlockState) -> Self { Box::<dyn BlockTrait>::from(value).as_registry_block() } @@ -156,22 +157,16 @@ mod tests { assert_eq!(block.id(), "air"); let block: Box<dyn BlockTrait> = - Box::<dyn BlockTrait>::from(BlockState::from(azalea_registry::Block::FloweringAzalea)); + Box::<dyn BlockTrait>::from(BlockState::from(BlockKind::FloweringAzalea)); assert_eq!(block.id(), "flowering_azalea"); } #[test] fn test_debug_blockstate() { - let formatted = format!( - "{:?}", - BlockState::from(azalea_registry::Block::FloweringAzalea) - ); + let formatted = format!("{:?}", BlockState::from(BlockKind::FloweringAzalea)); assert!(formatted.ends_with(", FloweringAzalea)"), "{}", formatted); - let formatted = format!( - "{:?}", - BlockState::from(azalea_registry::Block::BigDripleafStem) - ); + let formatted = format!("{:?}", BlockState::from(BlockKind::BigDripleafStem)); assert!( formatted.ends_with(", BigDripleafStem { facing: North, waterlogged: false })"), "{}", diff --git a/azalea-block/src/fluid_state.rs b/azalea-block/src/fluid_state.rs index 80d0953b..0a8f7336 100644 --- a/azalea-block/src/fluid_state.rs +++ b/azalea-block/src/fluid_state.rs @@ -1,3 +1,5 @@ +use azalea_registry::builtin::BlockKind; + use crate::block_state::{BlockState, BlockStateIntegerRepr}; #[derive(Clone, Debug)] @@ -80,9 +82,9 @@ impl From<BlockState> for FluidState { }; } - let registry_block = azalea_registry::Block::from(state); + let registry_block = BlockKind::from(state); match registry_block { - azalea_registry::Block::Water => { + BlockKind::Water => { let level = state .property::<crate::properties::WaterLevel>() .expect("water block should always have WaterLevel"); @@ -92,7 +94,7 @@ impl From<BlockState> for FluidState { falling: false, }; } - azalea_registry::Block::Lava => { + BlockKind::Lava => { let level = state .property::<crate::properties::LavaLevel>() .expect("lava block should always have LavaLevel"); @@ -102,7 +104,7 @@ impl From<BlockState> for FluidState { falling: false, }; } - azalea_registry::Block::BubbleColumn => { + BlockKind::BubbleColumn => { return Self::new_source_block(FluidKind::Water, false); } _ => {} diff --git a/azalea-block/src/lib.rs b/azalea-block/src/lib.rs index 2cab022e..ad78102c 100644 --- a/azalea-block/src/lib.rs +++ b/azalea-block/src/lib.rs @@ -9,6 +9,7 @@ mod range; use core::fmt::Debug; use std::{any::Any, collections::HashMap}; +use azalea_registry::builtin::BlockKind; pub use behavior::BlockBehavior; // re-exported for convenience pub use block_state::BlockState; @@ -21,16 +22,16 @@ pub trait BlockTrait: Debug + Any { /// /// For example, `stone` or `grass_block`. fn id(&self) -> &'static str; - /// Convert the block to a block state. + /// Convert the block struct to a [`BlockState`]. /// /// This is a lossless conversion, as [`BlockState`] also contains state /// data. fn as_block_state(&self) -> BlockState; - /// Convert the block to an [`azalea_registry::Block`]. + /// Convert the block struct to a [`BlockKind`]. /// - /// This is a lossy conversion, as [`azalea_registry::Block`] doesn't - /// contain any state data. - fn as_registry_block(&self) -> azalea_registry::Block; + /// This is a lossy conversion, as [`BlockKind`] doesn't contain any state + /// data. + fn as_registry_block(&self) -> BlockKind; /// Returns a map of property names on this block to their values as /// strings. diff --git a/azalea-block/src/range.rs b/azalea-block/src/range.rs index 76b18079..53d2c10f 100644 --- a/azalea-block/src/range.rs +++ b/azalea-block/src/range.rs @@ -1,9 +1,10 @@ use std::{ collections::{HashSet, hash_set}, ops::{Add, RangeInclusive}, + sync::LazyLock, }; -use azalea_registry::Block; +use azalea_registry::{builtin::BlockKind, tags::RegistryTag}; use crate::{BlockState, block_state::BlockStateIntegerRepr}; @@ -47,14 +48,14 @@ impl Add for BlockStates { } } -impl From<HashSet<Block>> for BlockStates { - fn from(set: HashSet<Block>) -> Self { +impl From<HashSet<BlockKind>> for BlockStates { + fn from(set: HashSet<BlockKind>) -> Self { Self::from(&set) } } -impl From<&HashSet<Block>> for BlockStates { - fn from(set: &HashSet<Block>) -> Self { +impl From<&HashSet<BlockKind>> for BlockStates { + fn from(set: &HashSet<BlockKind>) -> Self { let mut block_states = HashSet::with_capacity(set.len()); for &block in set { block_states.extend(BlockStates::from(block)); @@ -63,13 +64,8 @@ impl From<&HashSet<Block>> for BlockStates { } } -impl<const N: usize> From<[Block; N]> for BlockStates { - fn from(arr: [Block; N]) -> Self { - Self::from(&arr[..]) - } -} -impl From<&[Block]> for BlockStates { - fn from(arr: &[Block]) -> Self { +impl From<&[BlockKind]> for BlockStates { + fn from(arr: &[BlockKind]) -> Self { let mut block_states = HashSet::with_capacity(arr.len()); for &block in arr { block_states.extend(BlockStates::from(block)); @@ -77,3 +73,20 @@ impl From<&[Block]> for BlockStates { Self { set: block_states } } } +impl<const N: usize> From<[BlockKind; N]> for BlockStates { + fn from(arr: [BlockKind; N]) -> Self { + Self::from(&arr[..]) + } +} +impl From<&RegistryTag<BlockKind>> for BlockStates { + fn from(tag: &RegistryTag<BlockKind>) -> Self { + Self::from(&**tag) + } +} +// allows users to do like `BlockStates::from(&tags::blocks::LOGS)` instead of +// `BlockStates::from(&&tags::blocks::LOGS)` +impl From<&LazyLock<RegistryTag<BlockKind>>> for BlockStates { + fn from(tag: &LazyLock<RegistryTag<BlockKind>>) -> Self { + Self::from(&**tag) + } +} diff --git a/azalea-chat/src/numbers.rs b/azalea-chat/src/numbers.rs index 7da54fe4..6f943621 100644 --- a/azalea-chat/src/numbers.rs +++ b/azalea-chat/src/numbers.rs @@ -5,7 +5,7 @@ use std::io::{self, Cursor, Write}; #[cfg(feature = "azalea-buf")] use azalea_buf::{AzaleaRead, AzaleaWrite}; -use azalea_registry::NumberFormatKind; +use azalea_registry::builtin::NumberFormatKind; use simdnbt::owned::Nbt; use crate::FormattedText; diff --git a/azalea-client/src/client.rs b/azalea-client/src/client.rs index 970d8da0..aa2da1d5 100644 --- a/azalea-client/src/client.rs +++ b/azalea-client/src/client.rs @@ -10,7 +10,9 @@ use std::{ use azalea_auth::game_profile::GameProfile; use azalea_core::{ - data_registry::ResolvableDataRegistry, identifier::Identifier, position::Vec3, tick::GameTick, + data_registry::{DataRegistryWithKey, ResolvableDataRegistry}, + position::Vec3, + tick::GameTick, }; use azalea_entity::{ Attributes, EntityUpdateSystems, PlayerAbilities, Position, @@ -26,6 +28,7 @@ use azalea_protocol::{ packets::{Packet, game::ServerboundGamePacket}, resolve, }; +use azalea_registry::{DataRegistryKeyRef, identifier::Identifier}; use azalea_world::{Instance, InstanceContainer, InstanceName, MinecraftEntityId, PartialInstance}; use bevy_app::{App, AppExit, Plugin, PluginsState, SubApp, Update}; use bevy_ecs::{ @@ -517,7 +520,7 @@ impl Client { &self, registry: &impl ResolvableDataRegistry, ) -> Option<Identifier> { - self.with_registry_holder(|registries| registry.resolve_name(registries).cloned()) + self.with_registry_holder(|registries| registry.key(registries).map(|r| r.into_ident())) } /// Resolve the given registry to its name and data and call the given /// function with it. diff --git a/azalea-client/src/plugins/interact/mod.rs b/azalea-client/src/plugins/interact/mod.rs index 47ada08a..8269197c 100644 --- a/azalea-client/src/plugins/interact/mod.rs +++ b/azalea-client/src/plugins/interact/mod.rs @@ -30,7 +30,7 @@ use azalea_protocol::packets::game::{ s_swing::ServerboundSwing, s_use_item_on::ServerboundUseItemOn, }; -use azalea_registry::Item; +use azalea_registry::builtin::ItemKind; use azalea_world::Instance; use bevy_app::{App, Plugin, Update}; use bevy_ecs::prelude::*; @@ -527,45 +527,45 @@ fn update_attributes_for_held_item( } } -fn added_attack_speed_for_item(item: Item) -> f64 { +fn added_attack_speed_for_item(item: ItemKind) -> f64 { match item { - Item::WoodenSword => -2.4, - Item::WoodenShovel => -3.0, - Item::WoodenPickaxe => -2.8, - Item::WoodenAxe => -3.2, - Item::WoodenHoe => -3.0, - - Item::StoneSword => -2.4, - Item::StoneShovel => -3.0, - Item::StonePickaxe => -2.8, - Item::StoneAxe => -3.2, - Item::StoneHoe => -2.0, - - Item::GoldenSword => -2.4, - Item::GoldenShovel => -3.0, - Item::GoldenPickaxe => -2.8, - Item::GoldenAxe => -3.0, - Item::GoldenHoe => -3.0, - - Item::IronSword => -2.4, - Item::IronShovel => -3.0, - Item::IronPickaxe => -2.8, - Item::IronAxe => -3.1, - Item::IronHoe => -1.0, - - Item::DiamondSword => -2.4, - Item::DiamondShovel => -3.0, - Item::DiamondPickaxe => -2.8, - Item::DiamondAxe => -3.0, - Item::DiamondHoe => 0.0, - - Item::NetheriteSword => -2.4, - Item::NetheriteShovel => -3.0, - Item::NetheritePickaxe => -2.8, - Item::NetheriteAxe => -3.0, - Item::NetheriteHoe => 0.0, - - Item::Trident => -2.9, + ItemKind::WoodenSword => -2.4, + ItemKind::WoodenShovel => -3.0, + ItemKind::WoodenPickaxe => -2.8, + ItemKind::WoodenAxe => -3.2, + ItemKind::WoodenHoe => -3.0, + + ItemKind::StoneSword => -2.4, + ItemKind::StoneShovel => -3.0, + ItemKind::StonePickaxe => -2.8, + ItemKind::StoneAxe => -3.2, + ItemKind::StoneHoe => -2.0, + + ItemKind::GoldenSword => -2.4, + ItemKind::GoldenShovel => -3.0, + ItemKind::GoldenPickaxe => -2.8, + ItemKind::GoldenAxe => -3.0, + ItemKind::GoldenHoe => -3.0, + + ItemKind::IronSword => -2.4, + ItemKind::IronShovel => -3.0, + ItemKind::IronPickaxe => -2.8, + ItemKind::IronAxe => -3.1, + ItemKind::IronHoe => -1.0, + + ItemKind::DiamondSword => -2.4, + ItemKind::DiamondShovel => -3.0, + ItemKind::DiamondPickaxe => -2.8, + ItemKind::DiamondAxe => -3.0, + ItemKind::DiamondHoe => 0.0, + + ItemKind::NetheriteSword => -2.4, + ItemKind::NetheriteShovel => -3.0, + ItemKind::NetheritePickaxe => -2.8, + ItemKind::NetheriteAxe => -3.0, + ItemKind::NetheriteHoe => 0.0, + + ItemKind::Trident => -2.9, _ => 0., } } diff --git a/azalea-client/src/plugins/inventory/equipment_effects.rs b/azalea-client/src/plugins/inventory/equipment_effects.rs index 4294cc2f..c02f8ad5 100644 --- a/azalea-client/src/plugins/inventory/equipment_effects.rs +++ b/azalea-client/src/plugins/inventory/equipment_effects.rs @@ -2,15 +2,13 @@ use std::collections::HashMap; -use azalea_core::{ - data_registry::ResolvableDataRegistry, identifier::Identifier, - registry_holder::value::AttributeEffect, -}; +use azalea_core::{data_registry::ResolvableDataRegistry, registry_holder::value::AttributeEffect}; use azalea_entity::{Attributes, inventory::Inventory}; use azalea_inventory::{ ItemStack, components::{self, AttributeModifier, EquipmentSlot}, }; +use azalea_registry::identifier::Identifier; use bevy_ecs::{ component::Component, entity::Entity, @@ -147,7 +145,7 @@ fn collect_attribute_modifiers_from_item( slot: EquipmentSlot, item: &ItemStack, instance_holder: &InstanceHolder, -) -> Vec<(azalea_registry::Attribute, AttributeModifier)> { +) -> Vec<(azalea_registry::builtin::Attribute, AttributeModifier)> { let mut modifiers = Vec::new(); // handle the attribute_modifiers component first diff --git a/azalea-client/src/plugins/inventory/mod.rs b/azalea-client/src/plugins/inventory/mod.rs index f0d4a9ce..93be9e96 100644 --- a/azalea-client/src/plugins/inventory/mod.rs +++ b/azalea-client/src/plugins/inventory/mod.rs @@ -10,7 +10,7 @@ use azalea_protocol::packets::game::{ s_container_close::ServerboundContainerClose, s_set_carried_item::ServerboundSetCarriedItem, }; -use azalea_registry::MenuKind; +use azalea_registry::builtin::MenuKind; use azalea_world::{InstanceContainer, InstanceName}; use bevy_app::{App, Plugin}; use bevy_ecs::prelude::*; @@ -25,6 +25,7 @@ use crate::{ // TODO: when this is removed, remove the Inv alias above (which just exists to // avoid conflicting with this pub deprecated type) +#[doc(hidden)] #[deprecated = "moved to `azalea_entity::inventory::Inventory`."] pub type Inventory = azalea_entity::inventory::Inventory; diff --git a/azalea-client/src/plugins/mining.rs b/azalea-client/src/plugins/mining.rs index 73f2733d..4ed14482 100644 --- a/azalea-client/src/plugins/mining.rs +++ b/azalea-client/src/plugins/mining.rs @@ -7,6 +7,7 @@ use azalea_entity::{ use azalea_inventory::ItemStack; use azalea_physics::{PhysicsSystems, collision::BlockWithShape}; use azalea_protocol::packets::game::s_player_action::{self, ServerboundPlayerAction}; +use azalea_registry::builtin::{BlockKind, ItemKind}; use azalea_world::{InstanceContainer, InstanceName}; use bevy_app::{App, Plugin, Update}; use bevy_ecs::prelude::*; @@ -525,10 +526,8 @@ pub fn handle_finish_mining_block_observer( if game_mode.current == GameMode::Creative { let held_item = inventory.held_item().kind(); - if matches!( - held_item, - azalea_registry::Item::Trident | azalea_registry::Item::DebugStick - ) || azalea_registry::tags::items::SWORDS.contains(&held_item) + if matches!(held_item, ItemKind::Trident | ItemKind::DebugStick) + || azalea_registry::tags::items::SWORDS.contains(&held_item) { return; } @@ -538,12 +537,11 @@ pub fn handle_finish_mining_block_observer( return; }; - let registry_block: azalea_registry::Block = - Box::<dyn BlockTrait>::from(block_state).as_registry_block(); + let registry_block = Box::<dyn BlockTrait>::from(block_state).as_registry_block(); if !can_use_game_master_blocks(abilities, permission_level) && matches!( registry_block, - azalea_registry::Block::CommandBlock | azalea_registry::Block::StructureBlock + BlockKind::CommandBlock | BlockKind::StructureBlock ) { return; diff --git a/azalea-client/src/plugins/movement.rs b/azalea-client/src/plugins/movement.rs index 587bc05b..703b5557 100644 --- a/azalea-client/src/plugins/movement.rs +++ b/azalea-client/src/plugins/movement.rs @@ -29,7 +29,7 @@ use azalea_protocol::{ }, }, }; -use azalea_registry::EntityKind; +use azalea_registry::builtin::EntityKind; use azalea_world::{Instance, MinecraftEntityId}; use bevy_app::{App, Plugin, Update}; use bevy_ecs::prelude::*; diff --git a/azalea-client/src/plugins/packet/game/events.rs b/azalea-client/src/plugins/packet/game/events.rs index 53d93855..9ce4c252 100644 --- a/azalea-client/src/plugins/packet/game/events.rs +++ b/azalea-client/src/plugins/packet/game/events.rs @@ -1,11 +1,11 @@ use std::sync::{Arc, Weak}; use azalea_chat::FormattedText; -use azalea_core::identifier::Identifier; use azalea_protocol::packets::{ Packet, game::{ClientboundGamePacket, ClientboundPlayerCombatKill, ServerboundGamePacket}, }; +use azalea_registry::identifier::Identifier; use azalea_world::Instance; use bevy_ecs::prelude::*; use parking_lot::RwLock; diff --git a/azalea-client/src/plugins/packet/game/mod.rs b/azalea-client/src/plugins/packet/game/mod.rs index 7446a506..89b33274 100644 --- a/azalea-client/src/plugins/packet/game/mod.rs +++ b/azalea-client/src/plugins/packet/game/mod.rs @@ -17,6 +17,7 @@ use azalea_protocol::{ common::movements::MoveFlags, packets::{ConnectionProtocol, game::*}, }; +use azalea_registry::builtin::EntityKind; use azalea_world::{InstanceContainer, InstanceName, MinecraftEntityId, PartialInstance}; use bevy_ecs::{prelude::*, system::SystemState}; pub use events::*; @@ -292,7 +293,7 @@ impl GamePacketHandler<'_> { let entity_bundle = EntityBundle::new( game_profile.uuid, Vec3::ZERO, - azalea_registry::EntityKind::Player, + EntityKind::Player, new_instance_name, ); let entity_id = p.player_id; @@ -1478,7 +1479,7 @@ impl GamePacketHandler<'_> { let entity_bundle = EntityBundle::new( game_profile.uuid, Vec3::ZERO, - azalea_registry::EntityKind::Player, + EntityKind::Player, new_instance_name, ); // update the local gamemode and metadata things diff --git a/azalea-client/src/test_utils/simulation.rs b/azalea-client/src/test_utils/simulation.rs index 0aeec3ea..1946fd6d 100644 --- a/azalea-client/src/test_utils/simulation.rs +++ b/azalea-client/src/test_utils/simulation.rs @@ -6,7 +6,6 @@ use azalea_buf::AzaleaWrite; use azalea_core::{ delta::LpVec3, game_type::{GameMode, OptionalGameType}, - identifier::Identifier, position::{BlockPos, ChunkPos, Vec3}, tick::GameTick, }; @@ -25,7 +24,12 @@ use azalea_protocol::{ }, }, }; -use azalea_registry::{Biome, DataRegistry, DimensionType, EntityKind}; +use azalea_registry::{ + DataRegistry, + builtin::EntityKind, + data::{Biome, DimensionKind}, + identifier::Identifier, +}; use azalea_world::{Chunk, Instance, MinecraftEntityId, Section, palette::PalettedContainer}; use bevy_app::App; use bevy_ecs::{ @@ -318,13 +322,13 @@ fn tick_app(app: &mut App) { pub fn default_login_packet() -> ClientboundLogin { make_basic_login_packet( - DimensionType::new_raw(0), // overworld + DimensionKind::new_raw(0), // overworld Identifier::new("minecraft:overworld"), ) } pub fn make_basic_login_packet( - dimension_type: DimensionType, + dimension_type: DimensionKind, dimension: Identifier, ) -> ClientboundLogin { ClientboundLogin { @@ -354,7 +358,7 @@ pub fn make_basic_login_packet( } pub fn make_basic_respawn_packet( - dimension_type: DimensionType, + dimension_type: DimensionKind, dimension: Identifier, ) -> ClientboundRespawn { ClientboundRespawn { 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 9594da04..134c7cbf 100644 --- a/azalea-client/tests/change_dimension_to_nether_and_back.rs +++ b/azalea-client/tests/change_dimension_to_nether_and_back.rs @@ -1,11 +1,11 @@ use azalea_client::{InConfigState, InGameState, test_utils::prelude::*}; -use azalea_core::{identifier::Identifier, position::ChunkPos}; +use azalea_core::position::ChunkPos; use azalea_entity::LocalEntity; use azalea_protocol::packets::{ ConnectionProtocol, Packet, config::{ClientboundFinishConfiguration, ClientboundRegistryData}, }; -use azalea_registry::{DataRegistry, DimensionType}; +use azalea_registry::{DataRegistry, data::DimensionKind, identifier::Identifier}; use azalea_world::InstanceName; use simdnbt::owned::{NbtCompound, NbtTag}; @@ -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: Identifier| { + |dimension: DimensionKind, instance_name: Identifier| { make_basic_respawn_packet(dimension, instance_name).into_variant() } } else { - |dimension: DimensionType, instance_name: Identifier| { + |dimension: DimensionKind, instance_name: Identifier| { make_basic_login_packet(dimension, instance_name).into_variant() } }; @@ -75,7 +75,7 @@ fn generic_test_change_dimension_to_nether_and_back(using_respawn: bool) { // simulation.receive_packet(make_basic_login_packet( - DimensionType::new_raw(1), // overworld + DimensionKind::new_raw(1), // overworld Identifier::new("azalea:a"), )); simulation.tick(); @@ -98,7 +98,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 + DimensionKind::new_raw(2), // nether Identifier::new("azalea:b"), )); simulation.tick(); @@ -120,7 +120,7 @@ fn generic_test_change_dimension_to_nether_and_back(using_respawn: bool) { .chunk(ChunkPos::new(0, 0)) .expect("chunk should exist"); simulation.receive_packet(make_basic_login_or_respawn_packet( - DimensionType::new_raw(2), // nether + DimensionKind::new_raw(2), // nether Identifier::new("minecraft:nether"), )); simulation.tick(); @@ -130,7 +130,7 @@ fn generic_test_change_dimension_to_nether_and_back(using_respawn: bool) { // simulation.receive_packet(make_basic_login_packet( - DimensionType::new_raw(1), // overworld + DimensionKind::new_raw(1), // overworld Identifier::new("azalea:a"), )); simulation.tick(); diff --git a/azalea-client/tests/close_open_container.rs b/azalea-client/tests/close_open_container.rs index 96978c59..32a9874d 100644 --- a/azalea-client/tests/close_open_container.rs +++ b/azalea-client/tests/close_open_container.rs @@ -6,7 +6,7 @@ use azalea_protocol::packets::{ ConnectionProtocol, game::{ClientboundContainerClose, ClientboundOpenScreen, ClientboundSetChunkCacheCenter}, }; -use azalea_registry::MenuKind; +use azalea_registry::builtin::MenuKind; #[test] fn test_close_open_container() { diff --git a/azalea-client/tests/correct_movement.rs b/azalea-client/tests/correct_movement.rs index 5aaea9a3..de494111 100644 --- a/azalea-client/tests/correct_movement.rs +++ b/azalea-client/tests/correct_movement.rs @@ -11,7 +11,7 @@ use azalea_protocol::{ }, }, }; -use azalea_registry::Block; +use azalea_registry::builtin::BlockKind; #[test] fn test_correct_movement() { @@ -34,7 +34,7 @@ fn test_correct_movement() { )); simulation.receive_packet(ClientboundBlockUpdate { pos: BlockPos::new(31, 63, 370), - block_state: Block::Stone.into(), + block_state: BlockKind::Stone.into(), }); simulation.receive_packet(ClientboundPlayerPosition { id: 1, diff --git a/azalea-client/tests/correct_sneak_movement.rs b/azalea-client/tests/correct_sneak_movement.rs index 0e06633a..1186ce8b 100644 --- a/azalea-client/tests/correct_sneak_movement.rs +++ b/azalea-client/tests/correct_sneak_movement.rs @@ -11,7 +11,7 @@ use azalea_protocol::{ }, }, }; -use azalea_registry::Block; +use azalea_registry::builtin::BlockKind; #[test] fn test_correct_sneak_movement() { @@ -29,11 +29,11 @@ fn test_correct_sneak_movement() { simulation.receive_packet(make_basic_empty_chunk(ChunkPos::new(0, 0), (384 + 64) / 16)); simulation.receive_packet(ClientboundBlockUpdate { pos: BlockPos::new(0, 119, 0), - block_state: Block::Stone.into(), + block_state: BlockKind::Stone.into(), }); simulation.receive_packet(ClientboundBlockUpdate { pos: BlockPos::new(0, 119, 1), - block_state: Block::Stone.into(), + block_state: BlockKind::Stone.into(), }); simulation.receive_packet(ClientboundPlayerPosition { id: 1, diff --git a/azalea-client/tests/correct_sprint_sneak_movement.rs b/azalea-client/tests/correct_sprint_sneak_movement.rs index c76bc158..8ab955b8 100644 --- a/azalea-client/tests/correct_sprint_sneak_movement.rs +++ b/azalea-client/tests/correct_sprint_sneak_movement.rs @@ -11,7 +11,7 @@ use azalea_protocol::{ }, }, }; -use azalea_registry::Block; +use azalea_registry::builtin::BlockKind; #[test] fn test_correct_sprint_sneak_movement() { @@ -29,11 +29,11 @@ fn test_correct_sprint_sneak_movement() { simulation.receive_packet(make_basic_empty_chunk(ChunkPos::new(0, 0), (384 + 64) / 16)); simulation.receive_packet(ClientboundBlockUpdate { pos: BlockPos::new(0, 119, 0), - block_state: Block::Stone.into(), + block_state: BlockKind::Stone.into(), }); simulation.receive_packet(ClientboundBlockUpdate { pos: BlockPos::new(0, 119, 1), - block_state: Block::Stone.into(), + block_state: BlockKind::Stone.into(), }); simulation.receive_packet(ClientboundPlayerPosition { id: 1, diff --git a/azalea-client/tests/despawn_entities_when_changing_dimension.rs b/azalea-client/tests/despawn_entities_when_changing_dimension.rs index 38388c04..466da948 100644 --- a/azalea-client/tests/despawn_entities_when_changing_dimension.rs +++ b/azalea-client/tests/despawn_entities_when_changing_dimension.rs @@ -1,11 +1,13 @@ use azalea_client::test_utils::prelude::*; -use azalea_core::{identifier::Identifier, position::ChunkPos}; +use azalea_core::position::ChunkPos; use azalea_entity::metadata::Cow; use azalea_protocol::packets::{ ConnectionProtocol, config::{ClientboundFinishConfiguration, ClientboundRegistryData}, }; -use azalea_registry::{DataRegistry, DimensionType, EntityKind}; +use azalea_registry::{ + DataRegistry, builtin::EntityKind, data::DimensionKind, identifier::Identifier, +}; use bevy_ecs::query::With; use simdnbt::owned::{NbtCompound, NbtTag}; @@ -44,7 +46,7 @@ fn test_despawn_entities_when_changing_dimension() { // simulation.receive_packet(make_basic_login_packet( - DimensionType::new_raw(0), // overworld + DimensionKind::new_raw(0), // overworld Identifier::new("azalea:a"), )); simulation.tick(); @@ -64,7 +66,7 @@ fn test_despawn_entities_when_changing_dimension() { // simulation.receive_packet(make_basic_respawn_packet( - DimensionType::new_raw(1), // nether + DimensionKind::new_raw(1), // nether Identifier::new("azalea:b"), )); simulation.tick(); diff --git a/azalea-client/tests/enchantments.rs b/azalea-client/tests/enchantments.rs index 55b7c452..8e1a695c 100644 --- a/azalea-client/tests/enchantments.rs +++ b/azalea-client/tests/enchantments.rs @@ -1,5 +1,4 @@ use azalea_client::test_utils::prelude::*; -use azalea_core::identifier::Identifier; use azalea_entity::Attributes; use azalea_inventory::{ItemStack, components::Enchantments}; use azalea_protocol::packets::{ @@ -7,7 +6,7 @@ use azalea_protocol::packets::{ config::{ClientboundFinishConfiguration, ClientboundRegistryData}, game::ClientboundContainerSetSlot, }; -use azalea_registry::{Enchantment, Item, Registry}; +use azalea_registry::{Registry, builtin::ItemKind, data::Enchantment, identifier::Identifier}; use simdnbt::owned::{NbtCompound, NbtTag}; #[test] @@ -92,7 +91,7 @@ fn test_enchantments() { container_id: 0, state_id: 1, slot: *azalea_inventory::Player::HOTBAR_SLOTS.start() as u16, - item_stack: Item::DiamondPickaxe.into(), + item_stack: ItemKind::DiamondPickaxe.into(), }); s.tick(); @@ -103,7 +102,7 @@ fn test_enchantments() { container_id: 0, state_id: 2, slot: *azalea_inventory::Player::HOTBAR_SLOTS.start() as u16, - item_stack: ItemStack::from(Item::DiamondPickaxe).with_component(Enchantments { + item_stack: ItemStack::from(ItemKind::DiamondPickaxe).with_component(Enchantments { levels: [(Enchantment::from_u32(0).unwrap(), 1)].into(), }), }); @@ -116,7 +115,7 @@ fn test_enchantments() { container_id: 0, state_id: 1, slot: *azalea_inventory::Player::HOTBAR_SLOTS.start() as u16, - item_stack: Item::DiamondPickaxe.into(), + item_stack: ItemKind::DiamondPickaxe.into(), }); s.tick(); diff --git a/azalea-client/tests/fast_login.rs b/azalea-client/tests/fast_login.rs index 7962d79e..5a653425 100644 --- a/azalea-client/tests/fast_login.rs +++ b/azalea-client/tests/fast_login.rs @@ -1,11 +1,11 @@ use azalea_client::{InConfigState, test_utils::prelude::*}; -use azalea_core::identifier::Identifier; use azalea_entity::metadata::Health; use azalea_protocol::packets::{ ConnectionProtocol, config::{ClientboundFinishConfiguration, ClientboundRegistryData}, game::ClientboundSetHealth, }; +use azalea_registry::identifier::Identifier; use simdnbt::owned::{NbtCompound, NbtTag}; #[test] 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 0a28cfd3..4adced62 100644 --- a/azalea-client/tests/login_to_dimension_with_same_name.rs +++ b/azalea-client/tests/login_to_dimension_with_same_name.rs @@ -1,14 +1,14 @@ use azalea_client::{ InConfigState, InGameState, local_player::InstanceHolder, test_utils::prelude::*, }; -use azalea_core::{identifier::Identifier, position::ChunkPos}; +use azalea_core::position::ChunkPos; use azalea_entity::LocalEntity; use azalea_protocol::packets::{ ConnectionProtocol, Packet, config::{ClientboundFinishConfiguration, ClientboundRegistryData}, game::ClientboundStartConfiguration, }; -use azalea_registry::{DataRegistry, DimensionType}; +use azalea_registry::{DataRegistry, data::DimensionKind, identifier::Identifier}; use azalea_world::InstanceName; use simdnbt::owned::{NbtCompound, NbtTag}; @@ -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: Identifier| { + |dimension: DimensionKind, instance_name: Identifier| { make_basic_respawn_packet(dimension, instance_name).into_variant() } } else { - |dimension: DimensionType, instance_name: Identifier| { + |dimension: DimensionKind, instance_name: Identifier| { make_basic_login_packet(dimension, instance_name).into_variant() } }; @@ -60,7 +60,7 @@ fn generic_test_login_to_dimension_with_same_name(using_respawn: bool) { // simulation.receive_packet(make_basic_login_packet( - DimensionType::new_raw(0), // overworld + DimensionKind::new_raw(0), // overworld Identifier::new("azalea:overworld"), )); simulation.tick(); @@ -97,7 +97,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), + DimensionKind::new_raw(0), Identifier::new("azalea:overworld"), )); simulation.tick(); diff --git a/azalea-client/tests/mine_block_rollback.rs b/azalea-client/tests/mine_block_rollback.rs index 44ad629f..7d2ed1a5 100644 --- a/azalea-client/tests/mine_block_rollback.rs +++ b/azalea-client/tests/mine_block_rollback.rs @@ -4,7 +4,7 @@ use azalea_protocol::packets::{ ConnectionProtocol, game::{ClientboundBlockChangedAck, ClientboundBlockUpdate}, }; -use azalea_registry::Block; +use azalea_registry::builtin::BlockKind; #[test] fn test_mine_block_rollback() { @@ -21,10 +21,10 @@ fn test_mine_block_rollback() { pos, // tnt is used for this test because it's insta-mineable so we don't have to waste ticks // waiting - block_state: Block::Tnt.into(), + block_state: BlockKind::Tnt.into(), }); simulation.tick(); - assert_eq!(simulation.get_block_state(pos), Some(Block::Tnt.into())); + assert_eq!(simulation.get_block_state(pos), Some(BlockKind::Tnt.into())); println!("set serverside tnt"); simulation.write_message(StartMiningBlockEvent { @@ -33,12 +33,12 @@ fn test_mine_block_rollback() { force: true, }); simulation.tick(); - assert_eq!(simulation.get_block_state(pos), Some(Block::Air.into())); + assert_eq!(simulation.get_block_state(pos), Some(BlockKind::Air.into())); println!("set clientside air"); // server didn't send the new block, so the change should be rolled back simulation.receive_packet(ClientboundBlockChangedAck { seq: 1 }); simulation.tick(); - assert_eq!(simulation.get_block_state(pos), Some(Block::Tnt.into())); + assert_eq!(simulation.get_block_state(pos), Some(BlockKind::Tnt.into())); println!("reset serverside tnt"); } diff --git a/azalea-client/tests/mine_block_timing_hand.rs b/azalea-client/tests/mine_block_timing_hand.rs index 650e630e..6f583e7b 100644 --- a/azalea-client/tests/mine_block_timing_hand.rs +++ b/azalea-client/tests/mine_block_timing_hand.rs @@ -15,7 +15,7 @@ use azalea_protocol::{ }, }, }; -use azalea_registry::Block; +use azalea_registry::builtin::BlockKind; #[test] fn test_mine_block_timing_hand() { @@ -31,7 +31,7 @@ fn test_mine_block_timing_hand() { let pos = BlockPos::new(0, 2, 0); simulation.receive_packet(ClientboundBlockUpdate { pos, - block_state: Block::Stone.into(), + block_state: BlockKind::Stone.into(), }); simulation.receive_packet(ClientboundPlayerPosition { id: 1, @@ -43,7 +43,10 @@ fn test_mine_block_timing_hand() { relative: RelativeMovements::all_absolute(), }); simulation.tick(); - assert_eq!(simulation.get_block_state(pos), Some(Block::Stone.into())); + assert_eq!( + simulation.get_block_state(pos), + Some(BlockKind::Stone.into()) + ); println!("set serverside stone"); simulation.with_component_mut::<LookDirection>(|look| { // look down diff --git a/azalea-client/tests/mine_block_without_rollback.rs b/azalea-client/tests/mine_block_without_rollback.rs index a5a437a0..b6020ea2 100644 --- a/azalea-client/tests/mine_block_without_rollback.rs +++ b/azalea-client/tests/mine_block_without_rollback.rs @@ -4,7 +4,7 @@ use azalea_protocol::packets::{ ConnectionProtocol, game::{ClientboundBlockChangedAck, ClientboundBlockUpdate}, }; -use azalea_registry::Block; +use azalea_registry::builtin::BlockKind; #[test] fn test_mine_block_without_rollback() { @@ -21,10 +21,10 @@ fn test_mine_block_without_rollback() { pos, // tnt is used for this test because it's insta-mineable so we don't have to waste ticks // waiting - block_state: Block::Tnt.into(), + block_state: BlockKind::Tnt.into(), }); simulation.tick(); - assert_eq!(simulation.get_block_state(pos), Some(Block::Tnt.into())); + assert_eq!(simulation.get_block_state(pos), Some(BlockKind::Tnt.into())); simulation.write_message(StartMiningBlockEvent { entity: simulation.entity, @@ -32,15 +32,15 @@ fn test_mine_block_without_rollback() { force: true, }); simulation.tick(); - assert_eq!(simulation.get_block_state(pos), Some(Block::Air.into())); + assert_eq!(simulation.get_block_state(pos), Some(BlockKind::Air.into())); // server acknowledged our change by sending a BlockUpdate + BlockChangedAck, so // no rollback simulation.receive_packet(ClientboundBlockUpdate { pos, - block_state: Block::Air.into(), + block_state: BlockKind::Air.into(), }); simulation.receive_packet(ClientboundBlockChangedAck { seq: 1 }); simulation.tick(); - assert_eq!(simulation.get_block_state(pos), Some(Block::Air.into())); + assert_eq!(simulation.get_block_state(pos), Some(BlockKind::Air.into())); } diff --git a/azalea-client/tests/move_and_despawn_entity.rs b/azalea-client/tests/move_and_despawn_entity.rs index c05c3f0e..8a143243 100644 --- a/azalea-client/tests/move_and_despawn_entity.rs +++ b/azalea-client/tests/move_and_despawn_entity.rs @@ -7,7 +7,7 @@ use azalea_protocol::{ game::{ClientboundRemoveEntities, ClientboundTeleportEntity}, }, }; -use azalea_registry::EntityKind; +use azalea_registry::builtin::EntityKind; use azalea_world::MinecraftEntityId; #[test] diff --git a/azalea-client/tests/move_despawned_entity.rs b/azalea-client/tests/move_despawned_entity.rs index 8407bfe1..dad2a710 100644 --- a/azalea-client/tests/move_despawned_entity.rs +++ b/azalea-client/tests/move_despawned_entity.rs @@ -2,7 +2,7 @@ use azalea_client::test_utils::prelude::*; use azalea_core::position::ChunkPos; use azalea_entity::metadata::Cow; use azalea_protocol::packets::{ConnectionProtocol, game::ClientboundMoveEntityRot}; -use azalea_registry::EntityKind; +use azalea_registry::builtin::EntityKind; use azalea_world::MinecraftEntityId; use bevy_ecs::query::With; use tracing::Level; diff --git a/azalea-client/tests/packet_order.rs b/azalea-client/tests/packet_order.rs index 90496292..619ed0b6 100644 --- a/azalea-client/tests/packet_order.rs +++ b/azalea-client/tests/packet_order.rs @@ -11,7 +11,7 @@ use azalea_protocol::{ }, }, }; -use azalea_registry::Block; +use azalea_registry::builtin::BlockKind; #[test] fn test_packet_order() { @@ -30,7 +30,7 @@ fn test_packet_order() { simulation.receive_packet(make_basic_empty_chunk(ChunkPos::new(0, 0), (384 + 64) / 16)); simulation.receive_packet(ClientboundBlockUpdate { pos: BlockPos::new(1, 1, 3), - block_state: Block::Stone.into(), + block_state: BlockKind::Stone.into(), }); simulation.receive_packet(ClientboundPlayerPosition { id: 1, @@ -44,7 +44,7 @@ fn test_packet_order() { simulation.tick(); assert_eq!( simulation.get_block_state(BlockPos::new(1, 1, 3)), - Some(Block::Stone.into()) + Some(BlockKind::Stone.into()) ); sent_packets.expect("AcceptTeleportation", |p| { matches!( diff --git a/azalea-client/tests/packet_order_set_carried_item.rs b/azalea-client/tests/packet_order_set_carried_item.rs index a357dec0..e8ac386f 100644 --- a/azalea-client/tests/packet_order_set_carried_item.rs +++ b/azalea-client/tests/packet_order_set_carried_item.rs @@ -17,7 +17,7 @@ use azalea_protocol::{ }, }, }; -use azalea_registry::Block; +use azalea_registry::builtin::BlockKind; #[test] fn test_packet_order_set_carried_item() { @@ -33,7 +33,7 @@ fn test_packet_order_set_carried_item() { let pos = BlockPos::new(0, 2, 0); simulation.receive_packet(ClientboundBlockUpdate { pos, - block_state: Block::Stone.into(), + block_state: BlockKind::Stone.into(), }); simulation.receive_packet(ClientboundPlayerPosition { id: 1, @@ -45,7 +45,10 @@ fn test_packet_order_set_carried_item() { relative: RelativeMovements::all_absolute(), }); simulation.tick(); - assert_eq!(simulation.get_block_state(pos), Some(Block::Stone.into())); + assert_eq!( + simulation.get_block_state(pos), + Some(BlockKind::Stone.into()) + ); simulation.with_component_mut::<LookDirection>(|look| { // look down look.update_x_rot(90.); diff --git a/azalea-client/tests/receive_spawn_entity_and_start_config_packet.rs b/azalea-client/tests/receive_spawn_entity_and_start_config_packet.rs index 8fa3d925..dfb1fef9 100644 --- a/azalea-client/tests/receive_spawn_entity_and_start_config_packet.rs +++ b/azalea-client/tests/receive_spawn_entity_and_start_config_packet.rs @@ -4,7 +4,7 @@ use azalea_protocol::packets::{ ConnectionProtocol, game::{ClientboundAddEntity, ClientboundStartConfiguration}, }; -use azalea_registry::EntityKind; +use azalea_registry::builtin::EntityKind; use azalea_world::InstanceName; use uuid::Uuid; diff --git a/azalea-client/tests/reply_to_ping_with_pong.rs b/azalea-client/tests/reply_to_ping_with_pong.rs index ff369a1d..6b7cb4ca 100644 --- a/azalea-client/tests/reply_to_ping_with_pong.rs +++ b/azalea-client/tests/reply_to_ping_with_pong.rs @@ -4,7 +4,6 @@ use azalea_client::{ packet::{config::SendConfigPacketEvent, game::SendGamePacketEvent}, test_utils::prelude::*, }; -use azalea_core::identifier::Identifier; use azalea_protocol::packets::{ ConnectionProtocol, config::{ @@ -12,6 +11,7 @@ use azalea_protocol::packets::{ }, game::{self, ServerboundGamePacket}, }; +use azalea_registry::identifier::Identifier; use bevy_ecs::observer::On; use parking_lot::Mutex; use simdnbt::owned::{NbtCompound, NbtTag}; diff --git a/azalea-client/tests/set_health_before_login.rs b/azalea-client/tests/set_health_before_login.rs index 5b2dfc8e..4c1ec3f6 100644 --- a/azalea-client/tests/set_health_before_login.rs +++ b/azalea-client/tests/set_health_before_login.rs @@ -1,11 +1,11 @@ use azalea_client::{InConfigState, test_utils::prelude::*}; -use azalea_core::identifier::Identifier; use azalea_entity::{LocalEntity, metadata::Health}; use azalea_protocol::packets::{ ConnectionProtocol, config::{ClientboundFinishConfiguration, ClientboundRegistryData}, game::ClientboundSetHealth, }; +use azalea_registry::identifier::Identifier; use simdnbt::owned::{NbtCompound, NbtTag}; #[test] diff --git a/azalea-client/tests/teleport_movement.rs b/azalea-client/tests/teleport_movement.rs index 48fc11d5..03df5b92 100644 --- a/azalea-client/tests/teleport_movement.rs +++ b/azalea-client/tests/teleport_movement.rs @@ -15,7 +15,7 @@ use azalea_protocol::{ }, }, }; -use azalea_registry::Block; +use azalea_registry::builtin::BlockKind; use azalea_world::MinecraftEntityId; #[test] @@ -39,7 +39,7 @@ fn test_teleport_movement() { )); simulation.receive_packet(ClientboundBlockUpdate { pos: BlockPos::new(31, 63, 370), - block_state: Block::Stone.into(), + block_state: BlockKind::Stone.into(), }); simulation.receive_packet(ClientboundPlayerPosition { id: 1, diff --git a/azalea-core/src/checksum.rs b/azalea-core/src/checksum.rs index ac13fcc7..490d5ea4 100644 --- a/azalea-core/src/checksum.rs +++ b/azalea-core/src/checksum.rs @@ -1,12 +1,13 @@ use std::{cmp::Ordering, fmt, hash::Hasher}; use azalea_buf::AzBuf; +use azalea_registry::identifier::Identifier; use crc32c::Crc32cHasher; use serde::{Serialize, ser}; use thiserror::Error; use tracing::error; -use crate::{identifier::Identifier, registry_holder::RegistryHolder}; +use crate::registry_holder::RegistryHolder; #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Default, AzBuf)] pub struct Checksum(pub u32); diff --git a/azalea-core/src/data_registry.rs b/azalea-core/src/data_registry.rs index cf82772a..07837b19 100644 --- a/azalea-core/src/data_registry.rs +++ b/azalea-core/src/data_registry.rs @@ -1,16 +1,30 @@ -use azalea_registry::DataRegistry; -use simdnbt::owned::NbtCompound; - -use crate::{ +use azalea_registry::{ + DataRegistry, DataRegistryKey, DataRegistryKeyRef, + data::{self}, identifier::Identifier, - registry_holder::{self, RegistryDeserializesTo, RegistryHolder}, }; +use simdnbt::owned::NbtCompound; + +use crate::registry_holder::{self, RegistryDeserializesTo, RegistryHolder}; + +pub trait DataRegistryWithKey: DataRegistry { + fn key<'s, 'a: 's>( + &'s self, + registries: &'a RegistryHolder, + ) -> Option<<Self::Key as DataRegistryKey>::Borrow<'s>> { + registries + .protocol_id_to_identifier(Identifier::from(Self::NAME), self.protocol_id()) + .map(DataRegistryKeyRef::from_ident) + } +} +impl<R: DataRegistry> DataRegistryWithKey for R {} pub trait ResolvableDataRegistry: DataRegistry { type DeserializesTo: RegistryDeserializesTo; + #[doc(hidden)] + #[deprecated = "use `DataRegistryWithKey::key` instead."] fn resolve_name<'a>(&self, registries: &'a RegistryHolder) -> Option<&'a Identifier> { - // self.resolve(registries).map(|(name, _)| name.clone()) registries.protocol_id_to_identifier(Identifier::from(Self::NAME), self.protocol_id()) } @@ -42,20 +56,20 @@ macro_rules! define_default_deserializes_to { } define_deserializes_to! { - azalea_registry::DimensionType => registry_holder::dimension_type::DimensionTypeElement, - azalea_registry::Enchantment => registry_holder::enchantment::EnchantmentData, + data::DimensionKind => registry_holder::dimension_type::DimensionKindElement, + data::Enchantment => registry_holder::enchantment::EnchantmentData, } define_default_deserializes_to! { - azalea_registry::DamageKind, - azalea_registry::Dialog, - azalea_registry::WolfSoundVariant, - azalea_registry::CowVariant, - azalea_registry::ChickenVariant, - azalea_registry::FrogVariant, - azalea_registry::CatVariant, - azalea_registry::PigVariant, - azalea_registry::PaintingVariant, - azalea_registry::WolfVariant, - azalea_registry::Biome, + data::DamageKind, + data::Dialog, + data::WolfSoundVariant, + data::CowVariant, + data::ChickenVariant, + data::FrogVariant, + data::CatVariant, + data::PigVariant, + data::PaintingVariant, + data::WolfVariant, + data::Biome, } diff --git a/azalea-core/src/lib.rs b/azalea-core/src/lib.rs index 16b23c01..d61690aa 100644 --- a/azalea-core/src/lib.rs +++ b/azalea-core/src/lib.rs @@ -16,15 +16,21 @@ pub mod direction; pub mod filterable; pub mod game_type; pub mod hit_result; -pub mod identifier; pub mod math; pub mod objectives; pub mod position; pub mod registry_holder; +#[doc(hidden)] pub mod resource_location { - #![deprecated(note = "renamed to `identifier`.")] - #[deprecated(note = "renamed to `identifier::Identifier`.")] - pub type ResourceLocation = crate::identifier::Identifier; + #![deprecated(note = "moved to `azalea_registry::identifier`.")] + #[deprecated(note = "moved to `azalea_registry::identifier::Identifier`.")] + pub type ResourceLocation = azalea_registry::identifier::Identifier; +} +#[doc(hidden)] +pub mod identifier { + #![deprecated(note = "moved to `azalea_registry::identifier`.")] + #[deprecated(note = "moved to `azalea_registry::identifier::Identifier`.")] + pub type Identifier = azalea_registry::identifier::Identifier; } pub mod sound; #[cfg(feature = "bevy_ecs")] diff --git a/azalea-core/src/position.rs b/azalea-core/src/position.rs index 7cd86a03..1deb1892 100644 --- a/azalea-core/src/position.rs +++ b/azalea-core/src/position.rs @@ -13,10 +13,11 @@ use std::{ }; use azalea_buf::{AzBuf, AzaleaRead, AzaleaWrite, BufReadError}; +use azalea_registry::identifier::Identifier; use serde::{Serialize, Serializer}; use simdnbt::borrow::NbtTag; -use crate::{codec_utils::IntArray, direction::Direction, identifier::Identifier, math}; +use crate::{codec_utils::IntArray, direction::Direction, math}; macro_rules! vec3_impl { ($name:ident, $type:ty) => { diff --git a/azalea-core/src/registry_holder/components.rs b/azalea-core/src/registry_holder/components.rs index e7f94cd8..cbd6384d 100644 --- a/azalea-core/src/registry_holder/components.rs +++ b/azalea-core/src/registry_holder/components.rs @@ -1,6 +1,6 @@ use std::{any::Any, fmt::Debug, mem::ManuallyDrop, str::FromStr}; -use azalea_registry::{EnchantmentEffectComponentKind, SoundEvent}; +use azalea_registry::builtin::{EnchantmentEffectComponentKind, SoundEvent}; use simdnbt::{ DeserializeError, borrow::{NbtCompound, NbtList, NbtTag}, diff --git a/azalea-core/src/registry_holder/dimension_type.rs b/azalea-core/src/registry_holder/dimension_type.rs index ca158277..86dd2b3e 100644 --- a/azalea-core/src/registry_holder/dimension_type.rs +++ b/azalea-core/src/registry_holder/dimension_type.rs @@ -1,12 +1,13 @@ use std::collections::HashMap; use azalea_buf::AzBuf; +use azalea_registry::{builtin::SoundEvent, identifier::Identifier}; use simdnbt::{ Deserialize, FromNbtTag, Serialize, ToNbtTag, owned::{NbtCompound, NbtTag}, }; -use crate::{codec_utils::*, identifier::Identifier}; +use crate::codec_utils::*; #[derive(Debug, Clone, Serialize, Deserialize)] #[cfg_attr(feature = "strict_registry", simdnbt(deny_unknown_fields))] @@ -51,7 +52,7 @@ pub struct ChatTypeStyle { #[cfg(feature = "strict_registry")] #[derive(Debug, Clone, Serialize, Deserialize)] #[simdnbt(deny_unknown_fields)] -pub struct DimensionTypeElement { +pub struct DimensionKindElement { pub ambient_light: f32, pub bed_works: bool, pub coordinate_scale: f32, @@ -75,7 +76,7 @@ pub struct DimensionTypeElement { /// Dimension attributes. #[cfg(not(feature = "strict_registry"))] #[derive(Debug, Clone, Serialize, Deserialize)] -pub struct DimensionTypeElement { +pub struct DimensionKindElement { pub height: u32, pub min_y: i32, pub ultrawarm: Option<bool>, @@ -208,7 +209,7 @@ pub struct BiomeMusic { pub replace_current_music: bool, pub max_delay: u32, pub min_delay: u32, - pub sound: azalea_registry::SoundEvent, + pub sound: SoundEvent, } #[derive(Debug, Clone, Serialize, Deserialize)] @@ -217,14 +218,14 @@ pub struct BiomeMoodSound { pub tick_delay: u32, pub block_search_extent: u32, pub offset: f32, - pub sound: azalea_registry::SoundEvent, + pub sound: SoundEvent, } #[derive(Debug, Clone, Serialize, Deserialize)] #[cfg_attr(feature = "strict_registry", simdnbt(deny_unknown_fields))] pub struct AdditionsSound { pub tick_chance: f32, - pub sound: azalea_registry::SoundEvent, + pub sound: SoundEvent, } /// Biome particles. diff --git a/azalea-core/src/registry_holder/enchantment.rs b/azalea-core/src/registry_holder/enchantment.rs index 0f78843c..8d825baf 100644 --- a/azalea-core/src/registry_holder/enchantment.rs +++ b/azalea-core/src/registry_holder/enchantment.rs @@ -1,6 +1,6 @@ use std::{any::Any, fmt::Debug, str::FromStr}; -use azalea_registry::EnchantmentEffectComponentKind; +use azalea_registry::builtin::EnchantmentEffectComponentKind; use indexmap::IndexMap; use simdnbt::{DeserializeError, borrow::NbtCompound}; diff --git a/azalea-core/src/registry_holder/entity_effect.rs b/azalea-core/src/registry_holder/entity_effect.rs index 442b0e1a..ef08b7f0 100644 --- a/azalea-core/src/registry_holder/entity_effect.rs +++ b/azalea-core/src/registry_holder/entity_effect.rs @@ -1,7 +1,12 @@ use std::{collections::HashMap, str::FromStr}; use azalea_registry::{ - EnchantmentEntityEffectKind as EntityEffectKind, GameEvent, Holder, ParticleKind, SoundEvent, + Holder, + builtin::{ + EnchantmentEntityEffectKind as EntityEffectKind, GameEvent, ParticleKind, SoundEvent, + }, + data::DamageKindKey, + identifier::Identifier, }; use simdnbt::{ Deserialize, DeserializeError, @@ -9,7 +14,6 @@ use simdnbt::{ }; use crate::{ - identifier::Identifier, position::{Vec3, Vec3i}, registry_holder::{ block_predicate::BlockPredicate, block_state_provider::BlockStateProvider, @@ -129,17 +133,15 @@ pub struct ChangeItemDamage { pub struct DamageEntity { pub min_damage: LevelBasedValue, pub max_damage: LevelBasedValue, - // TODO: convert to a DamageKind after azalea-registry refactor #[simdnbt(rename = "damage_type")] - pub damage_kind: Identifier, + pub damage_kind: DamageKindKey, } #[derive(Debug, Clone, simdnbt::Deserialize)] pub struct Explode { pub attribute_to_user: Option<bool>, - // TODO: convert to a DamageKind after azalea-registry refactor #[simdnbt(rename = "damage_type")] - pub damage_kind: Option<Identifier>, + pub damage_kind: Option<DamageKindKey>, pub knockback_multiplier: Option<LevelBasedValue>, pub immune_blocks: Option<HomogeneousList>, pub offset: Option<Vec3>, diff --git a/azalea-core/src/registry_holder/float_provider.rs b/azalea-core/src/registry_holder/float_provider.rs index 6ce6b26d..c7d56bf9 100644 --- a/azalea-core/src/registry_holder/float_provider.rs +++ b/azalea-core/src/registry_holder/float_provider.rs @@ -1,6 +1,6 @@ use std::ops::Range; -use azalea_registry::FloatProviderKind; +use azalea_registry::builtin::FloatProviderKind; use simdnbt::{ DeserializeError, FromNbtTag, borrow::{NbtCompound, NbtTag}, diff --git a/azalea-core/src/registry_holder/mod.rs b/azalea-core/src/registry_holder/mod.rs index 269cf454..886c75e1 100644 --- a/azalea-core/src/registry_holder/mod.rs +++ b/azalea-core/src/registry_holder/mod.rs @@ -16,13 +16,12 @@ pub mod value; use std::{collections::HashMap, io::Cursor}; +use azalea_registry::identifier::Identifier; use indexmap::IndexMap; use simdnbt::{DeserializeError, FromNbtTag, borrow, owned::NbtCompound}; use thiserror::Error; use tracing::error; -use crate::identifier::Identifier; - /// The base of the registry. /// /// This is the registry that is sent to the client upon login. @@ -39,7 +38,7 @@ pub struct RegistryHolder { #[rustfmt::skip] // allow empty line /// Attributes about the dimension. - pub dimension_type: RegistryType<dimension_type::DimensionTypeElement>, + pub dimension_type: RegistryType<dimension_type::DimensionKindElement>, pub enchantment: RegistryType<enchantment::EnchantmentData>, @@ -93,7 +92,6 @@ macro_rules! registry_holder { ) -> Option<&Identifier> { let index = protocol_id as usize; - if registry.namespace() == "minecraft" { match registry.path() { $( @@ -189,7 +187,7 @@ impl RegistryDeserializesTo for NbtCompound { .get_index(protocol_id as usize) } } -impl RegistryDeserializesTo for dimension_type::DimensionTypeElement { +impl RegistryDeserializesTo for dimension_type::DimensionKindElement { fn get_for_registry<'a>( registries: &'a RegistryHolder, registry_name: &'static str, diff --git a/azalea-core/src/registry_holder/value.rs b/azalea-core/src/registry_holder/value.rs index ccd7f9ea..964d1e5a 100644 --- a/azalea-core/src/registry_holder/value.rs +++ b/azalea-core/src/registry_holder/value.rs @@ -1,6 +1,9 @@ use azalea_registry::{ - Attribute, EnchantmentLevelBasedValueKind as LevelBasedValueKind, - EnchantmentValueEffectKind as ValueEffectKind, + builtin::{ + Attribute, EnchantmentLevelBasedValueKind as LevelBasedValueKind, + EnchantmentValueEffectKind as ValueEffectKind, + }, + identifier::Identifier, }; use simdnbt::{ DeserializeError, FromNbtTag, @@ -9,7 +12,6 @@ use simdnbt::{ use crate::{ attribute_modifier_operation::AttributeModifierOperation, - identifier::Identifier, registry_holder::{components::impl_from_effect_nbt_tag, get_in_compound}, }; diff --git a/azalea-core/src/sound.rs b/azalea-core/src/sound.rs index a3b74b43..9ac568b6 100644 --- a/azalea-core/src/sound.rs +++ b/azalea-core/src/sound.rs @@ -1,8 +1,7 @@ use azalea_buf::AzBuf; +use azalea_registry::identifier::Identifier; use serde::Serialize; -use crate::identifier::Identifier; - #[derive(Clone, Debug, PartialEq, AzBuf, Serialize, simdnbt::Deserialize)] pub struct CustomSound { pub sound_id: Identifier, diff --git a/azalea-core/src/tier.rs b/azalea-core/src/tier.rs index e921899f..a25a3c1a 100644 --- a/azalea-core/src/tier.rs +++ b/azalea-core/src/tier.rs @@ -1,5 +1,7 @@ -pub fn get_item_tier(item: azalea_registry::Item) -> Option<Tier> { - use azalea_registry::Item::*; +use azalea_registry::builtin::ItemKind; + +pub fn get_item_tier(item: ItemKind) -> Option<Tier> { + use ItemKind::*; Some(match item { WoodenPickaxe | WoodenShovel | WoodenAxe | WoodenHoe | WoodenSword => Tier::Wood, StonePickaxe | StoneShovel | StoneAxe | StoneHoe | StoneSword => Tier::Stone, diff --git a/azalea-crypto/src/lib.rs b/azalea-crypto/src/lib.rs index 539461e5..948b3715 100644 --- a/azalea-crypto/src/lib.rs +++ b/azalea-crypto/src/lib.rs @@ -12,14 +12,17 @@ use rand::{TryRngCore, rngs::OsRng}; use sha1::{Digest, Sha1}; #[cfg(feature = "signing")] +#[doc(hidden)] #[deprecated = "moved to `signing::MessageSignature`."] pub type MessageSignature = signing::MessageSignature; #[cfg(feature = "signing")] +#[doc(hidden)] #[deprecated = "moved to `signing::SignChatMessageOptions`."] pub type SignChatMessageOptions = signing::SignChatMessageOptions; #[cfg(feature = "signing")] +#[doc(hidden)] #[deprecated = "moved to `signing::make_salt`."] pub fn make_salt() -> u64 { signing::make_salt() diff --git a/azalea-entity/src/attributes.rs b/azalea-entity/src/attributes.rs index d0bd2c21..95b13c98 100644 --- a/azalea-entity/src/attributes.rs +++ b/azalea-entity/src/attributes.rs @@ -2,11 +2,9 @@ use std::collections::{HashMap, hash_map}; -use azalea_core::{ - attribute_modifier_operation::AttributeModifierOperation, identifier::Identifier, -}; +use azalea_core::attribute_modifier_operation::AttributeModifierOperation; use azalea_inventory::components::AttributeModifier; -use azalea_registry::Attribute; +use azalea_registry::{builtin::Attribute, identifier::Identifier}; use bevy_ecs::component::Component; use thiserror::Error; diff --git a/azalea-entity/src/data.rs b/azalea-entity/src/data.rs index c535bb72..bb73cbed 100644 --- a/azalea-entity/src/data.rs +++ b/azalea-entity/src/data.rs @@ -12,6 +12,7 @@ use azalea_core::{ position::{BlockPos, GlobalPos, Vec3f32}, }; use azalea_inventory::{ItemStack, components}; +use azalea_registry::builtin::{VillagerKind, VillagerProfession}; use bevy_ecs::component::Component; use derive_more::Deref; use enum_as_inner::EnumAsInner; @@ -83,16 +84,16 @@ pub enum EntityDataValue { // 0 for absent; 1 + actual value otherwise. Used for entity IDs. OptionalUnsignedInt(OptionalUnsignedInt), Pose(Pose), - CatVariant(azalea_registry::CatVariant), - ChickenVariant(azalea_registry::ChickenVariant), - CowVariant(azalea_registry::CowVariant), - WolfVariant(azalea_registry::WolfVariant), - WolfSoundVariant(azalea_registry::WolfSoundVariant), - FrogVariant(azalea_registry::FrogVariant), - PigVariant(azalea_registry::PigVariant), - ZombieNautilusVariant(azalea_registry::ZombieNautilusVariant), + CatVariant(azalea_registry::data::CatVariant), + ChickenVariant(azalea_registry::data::ChickenVariant), + CowVariant(azalea_registry::data::CowVariant), + WolfVariant(azalea_registry::data::WolfVariant), + WolfSoundVariant(azalea_registry::data::WolfSoundVariant), + FrogVariant(azalea_registry::data::FrogVariant), + PigVariant(azalea_registry::data::PigVariant), + ZombieNautilusVariant(azalea_registry::data::ZombieNautilusVariant), OptionalGlobalPos(Option<GlobalPos>), - PaintingVariant(azalea_registry::PaintingVariant), + PaintingVariant(azalea_registry::data::PaintingVariant), SnifferState(SnifferStateKind), ArmadilloState(ArmadilloStateKind), CopperGolemState(CopperGolemStateKind), @@ -176,8 +177,8 @@ pub enum Pose { #[derive(Debug, Clone, AzBuf, PartialEq)] pub struct VillagerData { - pub kind: azalea_registry::VillagerKind, - pub profession: azalea_registry::VillagerProfession, + pub kind: VillagerKind, + pub profession: VillagerProfession, #[var] pub level: u32, } diff --git a/azalea-entity/src/dimensions.rs b/azalea-entity/src/dimensions.rs index c5118d55..5660e032 100644 --- a/azalea-entity/src/dimensions.rs +++ b/azalea-entity/src/dimensions.rs @@ -1,5 +1,5 @@ use azalea_core::{aabb::Aabb, position::Vec3}; -use azalea_registry::EntityKind; +use azalea_registry::builtin::EntityKind; use bevy_ecs::component::Component; use crate::Pose; diff --git a/azalea-entity/src/effects.rs b/azalea-entity/src/effects.rs index 9519c627..aa930a78 100644 --- a/azalea-entity/src/effects.rs +++ b/azalea-entity/src/effects.rs @@ -5,7 +5,7 @@ use std::{ use azalea_buf::{AzBuf, AzaleaRead, AzaleaWrite, BufReadError}; use azalea_core::bitset::FixedBitSet; -use azalea_registry::MobEffect; +use azalea_registry::builtin::MobEffect; use bevy_ecs::component::Component; /// Data about an active mob effect. diff --git a/azalea-entity/src/inventory.rs b/azalea-entity/src/inventory.rs index 5dd933a2..d6fabb1e 100644 --- a/azalea-entity/src/inventory.rs +++ b/azalea-entity/src/inventory.rs @@ -681,13 +681,13 @@ impl Default for Inventory { #[cfg(test)] mod tests { use azalea_inventory::SlotList; - use azalea_registry::Item; + use azalea_registry::builtin::ItemKind; use super::*; #[test] fn test_simulate_shift_click_in_crafting_table() { - let spruce_planks = ItemStack::new(Item::SprucePlanks, 4); + let spruce_planks = ItemStack::new(ItemKind::SprucePlanks, 4); let mut inventory = Inventory { inventory_menu: Menu::Player(azalea_inventory::Player::default()), diff --git a/azalea-entity/src/lib.rs b/azalea-entity/src/lib.rs index 84e1c9f7..d95a2f20 100644 --- a/azalea-entity/src/lib.rs +++ b/azalea-entity/src/lib.rs @@ -22,11 +22,10 @@ use azalea_block::{BlockState, fluid_state::FluidKind}; use azalea_buf::AzBuf; use azalea_core::{ aabb::Aabb, - identifier::Identifier, math, position::{BlockPos, ChunkPos, Vec3}, }; -use azalea_registry::EntityKind; +use azalea_registry::{builtin::EntityKind, identifier::Identifier}; use azalea_world::{ChunkStorage, InstanceName}; use bevy_ecs::{bundle::Bundle, component::Component}; pub use data::*; @@ -460,12 +459,12 @@ impl Physics { #[derive(Component, Copy, Clone, Default)] pub struct Dead; -/// A component NewType for [`azalea_registry::EntityKind`]. +/// A component NewType for [`EntityKind`]. /// /// Most of the time, you should be using `azalea_registry::EntityKind` /// directly instead. #[derive(Component, Clone, Copy, Debug, PartialEq, Deref)] -pub struct EntityKindComponent(pub azalea_registry::EntityKind); +pub struct EntityKindComponent(pub EntityKind); /// A bundle of components that every entity has. /// @@ -492,12 +491,7 @@ pub struct EntityBundle { } impl EntityBundle { - pub fn new( - uuid: Uuid, - pos: Vec3, - kind: azalea_registry::EntityKind, - world_name: Identifier, - ) -> Self { + pub fn new(uuid: Uuid, pos: Vec3, kind: EntityKind, world_name: Identifier) -> Self { let dimensions = EntityDimensions::from(kind); Self { diff --git a/azalea-entity/src/metadata.rs b/azalea-entity/src/metadata.rs index e858a170..c3fb480f 100644 --- a/azalea-entity/src/metadata.rs +++ b/azalea-entity/src/metadata.rs @@ -9,7 +9,7 @@ use azalea_core::{ position::{BlockPos, Vec3f32}, }; use azalea_inventory::{ItemStack, components}; -use azalea_registry::DataRegistry; +use azalea_registry::{DataRegistry, builtin::EntityKind}; use bevy_ecs::{bundle::Bundle, component::Component}; use derive_more::{Deref, DerefMut}; use thiserror::Error; @@ -1692,7 +1692,7 @@ pub struct InSittingPose(pub bool); #[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct Owneruuid(pub Option<Uuid>); #[derive(Component, Deref, DerefMut, Clone, PartialEq)] -pub struct CatVariant(pub azalea_registry::CatVariant); +pub struct CatVariant(pub azalea_registry::data::CatVariant); #[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct IsLying(pub bool); #[derive(Component, Deref, DerefMut, Clone, PartialEq)] @@ -1791,7 +1791,7 @@ impl Default for CatMetadataBundle { in_sitting_pose: InSittingPose(false), owneruuid: Owneruuid(None), }, - cat_variant: CatVariant(azalea_registry::CatVariant::new_raw(0)), + cat_variant: CatVariant(azalea_registry::data::CatVariant::new_raw(0)), is_lying: IsLying(false), relax_state_one: RelaxStateOne(false), cat_collar_color: CatCollarColor(Default::default()), @@ -2050,7 +2050,7 @@ impl Default for ChestMinecartMetadataBundle { } #[derive(Component, Deref, DerefMut, Clone, PartialEq)] -pub struct ChickenVariant(pub azalea_registry::PigVariant); +pub struct ChickenVariant(pub azalea_registry::data::PigVariant); #[derive(Component)] pub struct Chicken; impl Chicken { @@ -2125,7 +2125,7 @@ impl Default for ChickenMetadataBundle { abstract_ageable_baby: AbstractAgeableBaby(false), }, }, - chicken_variant: ChickenVariant(azalea_registry::PigVariant::new_raw(0)), + chicken_variant: ChickenVariant(azalea_registry::data::PigVariant::new_raw(0)), } } } @@ -2351,7 +2351,7 @@ impl Default for CopperGolemMetadataBundle { } #[derive(Component, Deref, DerefMut, Clone, PartialEq)] -pub struct CowVariant(pub azalea_registry::ChickenVariant); +pub struct CowVariant(pub azalea_registry::data::ChickenVariant); #[derive(Component)] pub struct Cow; impl Cow { @@ -2426,7 +2426,7 @@ impl Default for CowMetadataBundle { abstract_ageable_baby: AbstractAgeableBaby(false), }, }, - cow_variant: CowVariant(azalea_registry::ChickenVariant::new_raw(0)), + cow_variant: CowVariant(azalea_registry::data::ChickenVariant::new_raw(0)), } } } @@ -4141,7 +4141,7 @@ impl Default for FoxMetadataBundle { } #[derive(Component, Deref, DerefMut, Clone, PartialEq)] -pub struct FrogVariant(pub azalea_registry::WolfSoundVariant); +pub struct FrogVariant(pub azalea_registry::data::WolfSoundVariant); #[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct TongueTarget(pub OptionalUnsignedInt); #[derive(Component)] @@ -4222,7 +4222,7 @@ impl Default for FrogMetadataBundle { abstract_ageable_baby: AbstractAgeableBaby(false), }, }, - frog_variant: FrogVariant(azalea_registry::WolfSoundVariant::new_raw(0)), + frog_variant: FrogVariant(azalea_registry::data::WolfSoundVariant::new_raw(0)), tongue_target: TongueTarget(OptionalUnsignedInt(None)), } } @@ -6826,7 +6826,7 @@ impl Default for OminousItemSpawnerMetadataBundle { #[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct PaintingDirection(pub Direction); #[derive(Component, Deref, DerefMut, Clone, PartialEq)] -pub struct PaintingVariant(pub azalea_registry::PaintingVariant); +pub struct PaintingVariant(pub azalea_registry::data::PaintingVariant); #[derive(Component)] pub struct Painting; impl Painting { @@ -6877,7 +6877,7 @@ impl Default for PaintingMetadataBundle { ticks_frozen: TicksFrozen(Default::default()), }, painting_direction: PaintingDirection(Default::default()), - painting_variant: PaintingVariant(azalea_registry::PaintingVariant::new_raw(0)), + painting_variant: PaintingVariant(azalea_registry::data::PaintingVariant::new_raw(0)), } } } @@ -7355,7 +7355,7 @@ impl Default for PhantomMetadataBundle { #[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct PigBoostTime(pub i32); #[derive(Component, Deref, DerefMut, Clone, PartialEq)] -pub struct PigVariant(pub azalea_registry::FrogVariant); +pub struct PigVariant(pub azalea_registry::data::FrogVariant); #[derive(Component)] pub struct Pig; impl Pig { @@ -7435,7 +7435,7 @@ impl Default for PigMetadataBundle { }, }, pig_boost_time: PigBoostTime(0), - pig_variant: PigVariant(azalea_registry::FrogVariant::new_raw(0)), + pig_variant: PigVariant(azalea_registry::data::FrogVariant::new_raw(0)), } } } @@ -10294,8 +10294,8 @@ impl Default for VillagerMetadataBundle { abstract_villager_unhappy_counter: AbstractVillagerUnhappyCounter(0), }, villager_villager_data: VillagerVillagerData(VillagerData { - kind: azalea_registry::VillagerKind::Plains, - profession: azalea_registry::VillagerProfession::None, + kind: azalea_registry::builtin::VillagerKind::Plains, + profession: azalea_registry::builtin::VillagerProfession::None, level: 0, }), } @@ -10875,9 +10875,9 @@ pub struct WolfCollarColor(pub i32); #[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct WolfAngerEndTime(pub i64); #[derive(Component, Deref, DerefMut, Clone, PartialEq)] -pub struct WolfVariant(pub azalea_registry::CowVariant); +pub struct WolfVariant(pub azalea_registry::data::CowVariant); #[derive(Component, Deref, DerefMut, Clone, PartialEq)] -pub struct SoundVariant(pub azalea_registry::WolfVariant); +pub struct SoundVariant(pub azalea_registry::data::WolfVariant); #[derive(Component)] pub struct Wolf; impl Wolf { @@ -10977,8 +10977,8 @@ impl Default for WolfMetadataBundle { wolf_interested: WolfInterested(false), wolf_collar_color: WolfCollarColor(Default::default()), wolf_anger_end_time: WolfAngerEndTime(-1), - wolf_variant: WolfVariant(azalea_registry::CowVariant::new_raw(0)), - sound_variant: SoundVariant(azalea_registry::WolfVariant::new_raw(0)), + wolf_variant: WolfVariant(azalea_registry::data::CowVariant::new_raw(0)), + sound_variant: SoundVariant(azalea_registry::data::WolfVariant::new_raw(0)), } } } @@ -11225,7 +11225,7 @@ 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); +pub struct ZombieNautilusVariant(pub azalea_registry::data::ZombieNautilusVariant); #[derive(Component)] pub struct ZombieNautilus; impl ZombieNautilus { @@ -11314,7 +11314,7 @@ impl Default for ZombieNautilusMetadataBundle { }, zombie_nautilus_dash: ZombieNautilusDash(false), zombie_nautilus_variant: ZombieNautilusVariant( - azalea_registry::ZombieNautilusVariant::new_raw(0), + azalea_registry::data::ZombieNautilusVariant::new_raw(0), ), } } @@ -11406,8 +11406,8 @@ impl Default for ZombieVillagerMetadataBundle { }, converting: Converting(false), zombie_villager_villager_data: ZombieVillagerVillagerData(VillagerData { - kind: azalea_registry::VillagerKind::Plains, - profession: azalea_registry::VillagerProfession::None, + kind: azalea_registry::builtin::VillagerKind::Plains, + profession: azalea_registry::builtin::VillagerProfession::None, level: 0, }), } @@ -13139,791 +13139,791 @@ impl Default for AbstractVillagerMetadataBundle { pub fn apply_metadata( entity: &mut bevy_ecs::system::EntityCommands, - entity_kind: azalea_registry::EntityKind, + entity_kind: EntityKind, items: Vec<EntityDataItem>, ) -> Result<(), UpdateMetadataError> { match entity_kind { - azalea_registry::EntityKind::AcaciaBoat => { + EntityKind::AcaciaBoat => { for d in items { AcaciaBoat::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::AcaciaChestBoat => { + EntityKind::AcaciaChestBoat => { for d in items { AcaciaChestBoat::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Allay => { + EntityKind::Allay => { for d in items { Allay::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::AreaEffectCloud => { + EntityKind::AreaEffectCloud => { for d in items { AreaEffectCloud::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Armadillo => { + EntityKind::Armadillo => { for d in items { Armadillo::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::ArmorStand => { + EntityKind::ArmorStand => { for d in items { ArmorStand::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Arrow => { + EntityKind::Arrow => { for d in items { Arrow::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Axolotl => { + EntityKind::Axolotl => { for d in items { Axolotl::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::BambooChestRaft => { + EntityKind::BambooChestRaft => { for d in items { BambooChestRaft::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::BambooRaft => { + EntityKind::BambooRaft => { for d in items { BambooRaft::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Bat => { + EntityKind::Bat => { for d in items { Bat::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Bee => { + EntityKind::Bee => { for d in items { Bee::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::BirchBoat => { + EntityKind::BirchBoat => { for d in items { BirchBoat::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::BirchChestBoat => { + EntityKind::BirchChestBoat => { for d in items { BirchChestBoat::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Blaze => { + EntityKind::Blaze => { for d in items { Blaze::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::BlockDisplay => { + EntityKind::BlockDisplay => { for d in items { BlockDisplay::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Bogged => { + EntityKind::Bogged => { for d in items { Bogged::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Breeze => { + EntityKind::Breeze => { for d in items { Breeze::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::BreezeWindCharge => { + EntityKind::BreezeWindCharge => { for d in items { BreezeWindCharge::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Camel => { + EntityKind::Camel => { for d in items { Camel::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::CamelHusk => { + EntityKind::CamelHusk => { for d in items { CamelHusk::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Cat => { + EntityKind::Cat => { for d in items { Cat::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::CaveSpider => { + EntityKind::CaveSpider => { for d in items { CaveSpider::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::CherryBoat => { + EntityKind::CherryBoat => { for d in items { CherryBoat::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::CherryChestBoat => { + EntityKind::CherryChestBoat => { for d in items { CherryChestBoat::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::ChestMinecart => { + EntityKind::ChestMinecart => { for d in items { ChestMinecart::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Chicken => { + EntityKind::Chicken => { for d in items { Chicken::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Cod => { + EntityKind::Cod => { for d in items { Cod::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::CommandBlockMinecart => { + EntityKind::CommandBlockMinecart => { for d in items { CommandBlockMinecart::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::CopperGolem => { + EntityKind::CopperGolem => { for d in items { CopperGolem::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Cow => { + EntityKind::Cow => { for d in items { Cow::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Creaking => { + EntityKind::Creaking => { for d in items { Creaking::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Creeper => { + EntityKind::Creeper => { for d in items { Creeper::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::DarkOakBoat => { + EntityKind::DarkOakBoat => { for d in items { DarkOakBoat::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::DarkOakChestBoat => { + EntityKind::DarkOakChestBoat => { for d in items { DarkOakChestBoat::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Dolphin => { + EntityKind::Dolphin => { for d in items { Dolphin::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Donkey => { + EntityKind::Donkey => { for d in items { Donkey::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::DragonFireball => { + EntityKind::DragonFireball => { for d in items { DragonFireball::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Drowned => { + EntityKind::Drowned => { for d in items { Drowned::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Egg => { + EntityKind::Egg => { for d in items { Egg::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::ElderGuardian => { + EntityKind::ElderGuardian => { for d in items { ElderGuardian::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::EndCrystal => { + EntityKind::EndCrystal => { for d in items { EndCrystal::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::EnderDragon => { + EntityKind::EnderDragon => { for d in items { EnderDragon::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::EnderPearl => { + EntityKind::EnderPearl => { for d in items { EnderPearl::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Enderman => { + EntityKind::Enderman => { for d in items { Enderman::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Endermite => { + EntityKind::Endermite => { for d in items { Endermite::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Evoker => { + EntityKind::Evoker => { for d in items { Evoker::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::EvokerFangs => { + EntityKind::EvokerFangs => { for d in items { EvokerFangs::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::ExperienceBottle => { + EntityKind::ExperienceBottle => { for d in items { ExperienceBottle::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::ExperienceOrb => { + EntityKind::ExperienceOrb => { for d in items { ExperienceOrb::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::EyeOfEnder => { + EntityKind::EyeOfEnder => { for d in items { EyeOfEnder::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::FallingBlock => { + EntityKind::FallingBlock => { for d in items { FallingBlock::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Fireball => { + EntityKind::Fireball => { for d in items { Fireball::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::FireworkRocket => { + EntityKind::FireworkRocket => { for d in items { FireworkRocket::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::FishingBobber => { + EntityKind::FishingBobber => { for d in items { FishingBobber::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Fox => { + EntityKind::Fox => { for d in items { Fox::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Frog => { + EntityKind::Frog => { for d in items { Frog::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::FurnaceMinecart => { + EntityKind::FurnaceMinecart => { for d in items { FurnaceMinecart::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Ghast => { + EntityKind::Ghast => { for d in items { Ghast::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Giant => { + EntityKind::Giant => { for d in items { Giant::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::GlowItemFrame => { + EntityKind::GlowItemFrame => { for d in items { GlowItemFrame::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::GlowSquid => { + EntityKind::GlowSquid => { for d in items { GlowSquid::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Goat => { + EntityKind::Goat => { for d in items { Goat::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Guardian => { + EntityKind::Guardian => { for d in items { Guardian::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::HappyGhast => { + EntityKind::HappyGhast => { for d in items { HappyGhast::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Hoglin => { + EntityKind::Hoglin => { for d in items { Hoglin::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::HopperMinecart => { + EntityKind::HopperMinecart => { for d in items { HopperMinecart::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Horse => { + EntityKind::Horse => { for d in items { Horse::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Husk => { + EntityKind::Husk => { for d in items { Husk::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Illusioner => { + EntityKind::Illusioner => { for d in items { Illusioner::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Interaction => { + EntityKind::Interaction => { for d in items { Interaction::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::IronGolem => { + EntityKind::IronGolem => { for d in items { IronGolem::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Item => { + EntityKind::Item => { for d in items { Item::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::ItemDisplay => { + EntityKind::ItemDisplay => { for d in items { ItemDisplay::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::ItemFrame => { + EntityKind::ItemFrame => { for d in items { ItemFrame::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::JungleBoat => { + EntityKind::JungleBoat => { for d in items { JungleBoat::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::JungleChestBoat => { + EntityKind::JungleChestBoat => { for d in items { JungleChestBoat::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::LeashKnot => { + EntityKind::LeashKnot => { for d in items { LeashKnot::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::LightningBolt => { + EntityKind::LightningBolt => { for d in items { LightningBolt::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::LingeringPotion => { + EntityKind::LingeringPotion => { for d in items { LingeringPotion::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Llama => { + EntityKind::Llama => { for d in items { Llama::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::LlamaSpit => { + EntityKind::LlamaSpit => { for d in items { LlamaSpit::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::MagmaCube => { + EntityKind::MagmaCube => { for d in items { MagmaCube::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::MangroveBoat => { + EntityKind::MangroveBoat => { for d in items { MangroveBoat::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::MangroveChestBoat => { + EntityKind::MangroveChestBoat => { for d in items { MangroveChestBoat::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Mannequin => { + EntityKind::Mannequin => { for d in items { Mannequin::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Marker => { + EntityKind::Marker => { for d in items { Marker::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Minecart => { + EntityKind::Minecart => { for d in items { Minecart::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Mooshroom => { + EntityKind::Mooshroom => { for d in items { Mooshroom::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Mule => { + EntityKind::Mule => { for d in items { Mule::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Nautilus => { + EntityKind::Nautilus => { for d in items { Nautilus::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::OakBoat => { + EntityKind::OakBoat => { for d in items { OakBoat::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::OakChestBoat => { + EntityKind::OakChestBoat => { for d in items { OakChestBoat::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Ocelot => { + EntityKind::Ocelot => { for d in items { Ocelot::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::OminousItemSpawner => { + EntityKind::OminousItemSpawner => { for d in items { OminousItemSpawner::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Painting => { + EntityKind::Painting => { for d in items { Painting::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::PaleOakBoat => { + EntityKind::PaleOakBoat => { for d in items { PaleOakBoat::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::PaleOakChestBoat => { + EntityKind::PaleOakChestBoat => { for d in items { PaleOakChestBoat::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Panda => { + EntityKind::Panda => { for d in items { Panda::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Parched => { + EntityKind::Parched => { for d in items { Parched::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Parrot => { + EntityKind::Parrot => { for d in items { Parrot::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Phantom => { + EntityKind::Phantom => { for d in items { Phantom::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Pig => { + EntityKind::Pig => { for d in items { Pig::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Piglin => { + EntityKind::Piglin => { for d in items { Piglin::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::PiglinBrute => { + EntityKind::PiglinBrute => { for d in items { PiglinBrute::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Pillager => { + EntityKind::Pillager => { for d in items { Pillager::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Player => { + EntityKind::Player => { for d in items { Player::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::PolarBear => { + EntityKind::PolarBear => { for d in items { PolarBear::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Pufferfish => { + EntityKind::Pufferfish => { for d in items { Pufferfish::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Rabbit => { + EntityKind::Rabbit => { for d in items { Rabbit::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Ravager => { + EntityKind::Ravager => { for d in items { Ravager::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Salmon => { + EntityKind::Salmon => { for d in items { Salmon::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Sheep => { + EntityKind::Sheep => { for d in items { Sheep::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Shulker => { + EntityKind::Shulker => { for d in items { Shulker::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::ShulkerBullet => { + EntityKind::ShulkerBullet => { for d in items { ShulkerBullet::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Silverfish => { + EntityKind::Silverfish => { for d in items { Silverfish::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Skeleton => { + EntityKind::Skeleton => { for d in items { Skeleton::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::SkeletonHorse => { + EntityKind::SkeletonHorse => { for d in items { SkeletonHorse::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Slime => { + EntityKind::Slime => { for d in items { Slime::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::SmallFireball => { + EntityKind::SmallFireball => { for d in items { SmallFireball::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Sniffer => { + EntityKind::Sniffer => { for d in items { Sniffer::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::SnowGolem => { + EntityKind::SnowGolem => { for d in items { SnowGolem::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Snowball => { + EntityKind::Snowball => { for d in items { Snowball::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::SpawnerMinecart => { + EntityKind::SpawnerMinecart => { for d in items { SpawnerMinecart::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::SpectralArrow => { + EntityKind::SpectralArrow => { for d in items { SpectralArrow::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Spider => { + EntityKind::Spider => { for d in items { Spider::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::SplashPotion => { + EntityKind::SplashPotion => { for d in items { SplashPotion::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::SpruceBoat => { + EntityKind::SpruceBoat => { for d in items { SpruceBoat::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::SpruceChestBoat => { + EntityKind::SpruceChestBoat => { for d in items { SpruceChestBoat::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Squid => { + EntityKind::Squid => { for d in items { Squid::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Stray => { + EntityKind::Stray => { for d in items { Stray::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Strider => { + EntityKind::Strider => { for d in items { Strider::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Tadpole => { + EntityKind::Tadpole => { for d in items { Tadpole::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::TextDisplay => { + EntityKind::TextDisplay => { for d in items { TextDisplay::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Tnt => { + EntityKind::Tnt => { for d in items { Tnt::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::TntMinecart => { + EntityKind::TntMinecart => { for d in items { TntMinecart::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::TraderLlama => { + EntityKind::TraderLlama => { for d in items { TraderLlama::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Trident => { + EntityKind::Trident => { for d in items { Trident::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::TropicalFish => { + EntityKind::TropicalFish => { for d in items { TropicalFish::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Turtle => { + EntityKind::Turtle => { for d in items { Turtle::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Vex => { + EntityKind::Vex => { for d in items { Vex::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Villager => { + EntityKind::Villager => { for d in items { Villager::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Vindicator => { + EntityKind::Vindicator => { for d in items { Vindicator::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::WanderingTrader => { + EntityKind::WanderingTrader => { for d in items { WanderingTrader::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Warden => { + EntityKind::Warden => { for d in items { Warden::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::WindCharge => { + EntityKind::WindCharge => { for d in items { WindCharge::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Witch => { + EntityKind::Witch => { for d in items { Witch::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Wither => { + EntityKind::Wither => { for d in items { Wither::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::WitherSkeleton => { + EntityKind::WitherSkeleton => { for d in items { WitherSkeleton::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::WitherSkull => { + EntityKind::WitherSkull => { for d in items { WitherSkull::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Wolf => { + EntityKind::Wolf => { for d in items { Wolf::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Zoglin => { + EntityKind::Zoglin => { for d in items { Zoglin::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Zombie => { + EntityKind::Zombie => { for d in items { Zombie::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::ZombieHorse => { + EntityKind::ZombieHorse => { for d in items { ZombieHorse::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::ZombieNautilus => { + EntityKind::ZombieNautilus => { for d in items { ZombieNautilus::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::ZombieVillager => { + EntityKind::ZombieVillager => { for d in items { ZombieVillager::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::ZombifiedPiglin => { + EntityKind::ZombifiedPiglin => { for d in items { ZombifiedPiglin::apply_metadata(entity, d)?; } @@ -13932,480 +13932,477 @@ pub fn apply_metadata( Ok(()) } -pub fn apply_default_metadata( - entity: &mut bevy_ecs::system::EntityCommands, - kind: azalea_registry::EntityKind, -) { +pub fn apply_default_metadata(entity: &mut bevy_ecs::system::EntityCommands, kind: EntityKind) { match kind { - azalea_registry::EntityKind::AcaciaBoat => { + EntityKind::AcaciaBoat => { entity.insert(AcaciaBoatMetadataBundle::default()); } - azalea_registry::EntityKind::AcaciaChestBoat => { + EntityKind::AcaciaChestBoat => { entity.insert(AcaciaChestBoatMetadataBundle::default()); } - azalea_registry::EntityKind::Allay => { + EntityKind::Allay => { entity.insert(AllayMetadataBundle::default()); } - azalea_registry::EntityKind::AreaEffectCloud => { + EntityKind::AreaEffectCloud => { entity.insert(AreaEffectCloudMetadataBundle::default()); } - azalea_registry::EntityKind::Armadillo => { + EntityKind::Armadillo => { entity.insert(ArmadilloMetadataBundle::default()); } - azalea_registry::EntityKind::ArmorStand => { + EntityKind::ArmorStand => { entity.insert(ArmorStandMetadataBundle::default()); } - azalea_registry::EntityKind::Arrow => { + EntityKind::Arrow => { entity.insert(ArrowMetadataBundle::default()); } - azalea_registry::EntityKind::Axolotl => { + EntityKind::Axolotl => { entity.insert(AxolotlMetadataBundle::default()); } - azalea_registry::EntityKind::BambooChestRaft => { + EntityKind::BambooChestRaft => { entity.insert(BambooChestRaftMetadataBundle::default()); } - azalea_registry::EntityKind::BambooRaft => { + EntityKind::BambooRaft => { entity.insert(BambooRaftMetadataBundle::default()); } - azalea_registry::EntityKind::Bat => { + EntityKind::Bat => { entity.insert(BatMetadataBundle::default()); } - azalea_registry::EntityKind::Bee => { + EntityKind::Bee => { entity.insert(BeeMetadataBundle::default()); } - azalea_registry::EntityKind::BirchBoat => { + EntityKind::BirchBoat => { entity.insert(BirchBoatMetadataBundle::default()); } - azalea_registry::EntityKind::BirchChestBoat => { + EntityKind::BirchChestBoat => { entity.insert(BirchChestBoatMetadataBundle::default()); } - azalea_registry::EntityKind::Blaze => { + EntityKind::Blaze => { entity.insert(BlazeMetadataBundle::default()); } - azalea_registry::EntityKind::BlockDisplay => { + EntityKind::BlockDisplay => { entity.insert(BlockDisplayMetadataBundle::default()); } - azalea_registry::EntityKind::Bogged => { + EntityKind::Bogged => { entity.insert(BoggedMetadataBundle::default()); } - azalea_registry::EntityKind::Breeze => { + EntityKind::Breeze => { entity.insert(BreezeMetadataBundle::default()); } - azalea_registry::EntityKind::BreezeWindCharge => { + EntityKind::BreezeWindCharge => { entity.insert(BreezeWindChargeMetadataBundle::default()); } - azalea_registry::EntityKind::Camel => { + EntityKind::Camel => { entity.insert(CamelMetadataBundle::default()); } - azalea_registry::EntityKind::CamelHusk => { + EntityKind::CamelHusk => { entity.insert(CamelHuskMetadataBundle::default()); } - azalea_registry::EntityKind::Cat => { + EntityKind::Cat => { entity.insert(CatMetadataBundle::default()); } - azalea_registry::EntityKind::CaveSpider => { + EntityKind::CaveSpider => { entity.insert(CaveSpiderMetadataBundle::default()); } - azalea_registry::EntityKind::CherryBoat => { + EntityKind::CherryBoat => { entity.insert(CherryBoatMetadataBundle::default()); } - azalea_registry::EntityKind::CherryChestBoat => { + EntityKind::CherryChestBoat => { entity.insert(CherryChestBoatMetadataBundle::default()); } - azalea_registry::EntityKind::ChestMinecart => { + EntityKind::ChestMinecart => { entity.insert(ChestMinecartMetadataBundle::default()); } - azalea_registry::EntityKind::Chicken => { + EntityKind::Chicken => { entity.insert(ChickenMetadataBundle::default()); } - azalea_registry::EntityKind::Cod => { + EntityKind::Cod => { entity.insert(CodMetadataBundle::default()); } - azalea_registry::EntityKind::CommandBlockMinecart => { + EntityKind::CommandBlockMinecart => { entity.insert(CommandBlockMinecartMetadataBundle::default()); } - azalea_registry::EntityKind::CopperGolem => { + EntityKind::CopperGolem => { entity.insert(CopperGolemMetadataBundle::default()); } - azalea_registry::EntityKind::Cow => { + EntityKind::Cow => { entity.insert(CowMetadataBundle::default()); } - azalea_registry::EntityKind::Creaking => { + EntityKind::Creaking => { entity.insert(CreakingMetadataBundle::default()); } - azalea_registry::EntityKind::Creeper => { + EntityKind::Creeper => { entity.insert(CreeperMetadataBundle::default()); } - azalea_registry::EntityKind::DarkOakBoat => { + EntityKind::DarkOakBoat => { entity.insert(DarkOakBoatMetadataBundle::default()); } - azalea_registry::EntityKind::DarkOakChestBoat => { + EntityKind::DarkOakChestBoat => { entity.insert(DarkOakChestBoatMetadataBundle::default()); } - azalea_registry::EntityKind::Dolphin => { + EntityKind::Dolphin => { entity.insert(DolphinMetadataBundle::default()); } - azalea_registry::EntityKind::Donkey => { + EntityKind::Donkey => { entity.insert(DonkeyMetadataBundle::default()); } - azalea_registry::EntityKind::DragonFireball => { + EntityKind::DragonFireball => { entity.insert(DragonFireballMetadataBundle::default()); } - azalea_registry::EntityKind::Drowned => { + EntityKind::Drowned => { entity.insert(DrownedMetadataBundle::default()); } - azalea_registry::EntityKind::Egg => { + EntityKind::Egg => { entity.insert(EggMetadataBundle::default()); } - azalea_registry::EntityKind::ElderGuardian => { + EntityKind::ElderGuardian => { entity.insert(ElderGuardianMetadataBundle::default()); } - azalea_registry::EntityKind::EndCrystal => { + EntityKind::EndCrystal => { entity.insert(EndCrystalMetadataBundle::default()); } - azalea_registry::EntityKind::EnderDragon => { + EntityKind::EnderDragon => { entity.insert(EnderDragonMetadataBundle::default()); } - azalea_registry::EntityKind::EnderPearl => { + EntityKind::EnderPearl => { entity.insert(EnderPearlMetadataBundle::default()); } - azalea_registry::EntityKind::Enderman => { + EntityKind::Enderman => { entity.insert(EndermanMetadataBundle::default()); } - azalea_registry::EntityKind::Endermite => { + EntityKind::Endermite => { entity.insert(EndermiteMetadataBundle::default()); } - azalea_registry::EntityKind::Evoker => { + EntityKind::Evoker => { entity.insert(EvokerMetadataBundle::default()); } - azalea_registry::EntityKind::EvokerFangs => { + EntityKind::EvokerFangs => { entity.insert(EvokerFangsMetadataBundle::default()); } - azalea_registry::EntityKind::ExperienceBottle => { + EntityKind::ExperienceBottle => { entity.insert(ExperienceBottleMetadataBundle::default()); } - azalea_registry::EntityKind::ExperienceOrb => { + EntityKind::ExperienceOrb => { entity.insert(ExperienceOrbMetadataBundle::default()); } - azalea_registry::EntityKind::EyeOfEnder => { + EntityKind::EyeOfEnder => { entity.insert(EyeOfEnderMetadataBundle::default()); } - azalea_registry::EntityKind::FallingBlock => { + EntityKind::FallingBlock => { entity.insert(FallingBlockMetadataBundle::default()); } - azalea_registry::EntityKind::Fireball => { + EntityKind::Fireball => { entity.insert(FireballMetadataBundle::default()); } - azalea_registry::EntityKind::FireworkRocket => { + EntityKind::FireworkRocket => { entity.insert(FireworkRocketMetadataBundle::default()); } - azalea_registry::EntityKind::FishingBobber => { + EntityKind::FishingBobber => { entity.insert(FishingBobberMetadataBundle::default()); } - azalea_registry::EntityKind::Fox => { + EntityKind::Fox => { entity.insert(FoxMetadataBundle::default()); } - azalea_registry::EntityKind::Frog => { + EntityKind::Frog => { entity.insert(FrogMetadataBundle::default()); } - azalea_registry::EntityKind::FurnaceMinecart => { + EntityKind::FurnaceMinecart => { entity.insert(FurnaceMinecartMetadataBundle::default()); } - azalea_registry::EntityKind::Ghast => { + EntityKind::Ghast => { entity.insert(GhastMetadataBundle::default()); } - azalea_registry::EntityKind::Giant => { + EntityKind::Giant => { entity.insert(GiantMetadataBundle::default()); } - azalea_registry::EntityKind::GlowItemFrame => { + EntityKind::GlowItemFrame => { entity.insert(GlowItemFrameMetadataBundle::default()); } - azalea_registry::EntityKind::GlowSquid => { + EntityKind::GlowSquid => { entity.insert(GlowSquidMetadataBundle::default()); } - azalea_registry::EntityKind::Goat => { + EntityKind::Goat => { entity.insert(GoatMetadataBundle::default()); } - azalea_registry::EntityKind::Guardian => { + EntityKind::Guardian => { entity.insert(GuardianMetadataBundle::default()); } - azalea_registry::EntityKind::HappyGhast => { + EntityKind::HappyGhast => { entity.insert(HappyGhastMetadataBundle::default()); } - azalea_registry::EntityKind::Hoglin => { + EntityKind::Hoglin => { entity.insert(HoglinMetadataBundle::default()); } - azalea_registry::EntityKind::HopperMinecart => { + EntityKind::HopperMinecart => { entity.insert(HopperMinecartMetadataBundle::default()); } - azalea_registry::EntityKind::Horse => { + EntityKind::Horse => { entity.insert(HorseMetadataBundle::default()); } - azalea_registry::EntityKind::Husk => { + EntityKind::Husk => { entity.insert(HuskMetadataBundle::default()); } - azalea_registry::EntityKind::Illusioner => { + EntityKind::Illusioner => { entity.insert(IllusionerMetadataBundle::default()); } - azalea_registry::EntityKind::Interaction => { + EntityKind::Interaction => { entity.insert(InteractionMetadataBundle::default()); } - azalea_registry::EntityKind::IronGolem => { + EntityKind::IronGolem => { entity.insert(IronGolemMetadataBundle::default()); } - azalea_registry::EntityKind::Item => { + EntityKind::Item => { entity.insert(ItemMetadataBundle::default()); } - azalea_registry::EntityKind::ItemDisplay => { + EntityKind::ItemDisplay => { entity.insert(ItemDisplayMetadataBundle::default()); } - azalea_registry::EntityKind::ItemFrame => { + EntityKind::ItemFrame => { entity.insert(ItemFrameMetadataBundle::default()); } - azalea_registry::EntityKind::JungleBoat => { + EntityKind::JungleBoat => { entity.insert(JungleBoatMetadataBundle::default()); } - azalea_registry::EntityKind::JungleChestBoat => { + EntityKind::JungleChestBoat => { entity.insert(JungleChestBoatMetadataBundle::default()); } - azalea_registry::EntityKind::LeashKnot => { + EntityKind::LeashKnot => { entity.insert(LeashKnotMetadataBundle::default()); } - azalea_registry::EntityKind::LightningBolt => { + EntityKind::LightningBolt => { entity.insert(LightningBoltMetadataBundle::default()); } - azalea_registry::EntityKind::LingeringPotion => { + EntityKind::LingeringPotion => { entity.insert(LingeringPotionMetadataBundle::default()); } - azalea_registry::EntityKind::Llama => { + EntityKind::Llama => { entity.insert(LlamaMetadataBundle::default()); } - azalea_registry::EntityKind::LlamaSpit => { + EntityKind::LlamaSpit => { entity.insert(LlamaSpitMetadataBundle::default()); } - azalea_registry::EntityKind::MagmaCube => { + EntityKind::MagmaCube => { entity.insert(MagmaCubeMetadataBundle::default()); } - azalea_registry::EntityKind::MangroveBoat => { + EntityKind::MangroveBoat => { entity.insert(MangroveBoatMetadataBundle::default()); } - azalea_registry::EntityKind::MangroveChestBoat => { + EntityKind::MangroveChestBoat => { entity.insert(MangroveChestBoatMetadataBundle::default()); } - azalea_registry::EntityKind::Mannequin => { + EntityKind::Mannequin => { entity.insert(MannequinMetadataBundle::default()); } - azalea_registry::EntityKind::Marker => { + EntityKind::Marker => { entity.insert(MarkerMetadataBundle::default()); } - azalea_registry::EntityKind::Minecart => { + EntityKind::Minecart => { entity.insert(MinecartMetadataBundle::default()); } - azalea_registry::EntityKind::Mooshroom => { + EntityKind::Mooshroom => { entity.insert(MooshroomMetadataBundle::default()); } - azalea_registry::EntityKind::Mule => { + EntityKind::Mule => { entity.insert(MuleMetadataBundle::default()); } - azalea_registry::EntityKind::Nautilus => { + EntityKind::Nautilus => { entity.insert(NautilusMetadataBundle::default()); } - azalea_registry::EntityKind::OakBoat => { + EntityKind::OakBoat => { entity.insert(OakBoatMetadataBundle::default()); } - azalea_registry::EntityKind::OakChestBoat => { + EntityKind::OakChestBoat => { entity.insert(OakChestBoatMetadataBundle::default()); } - azalea_registry::EntityKind::Ocelot => { + EntityKind::Ocelot => { entity.insert(OcelotMetadataBundle::default()); } - azalea_registry::EntityKind::OminousItemSpawner => { + EntityKind::OminousItemSpawner => { entity.insert(OminousItemSpawnerMetadataBundle::default()); } - azalea_registry::EntityKind::Painting => { + EntityKind::Painting => { entity.insert(PaintingMetadataBundle::default()); } - azalea_registry::EntityKind::PaleOakBoat => { + EntityKind::PaleOakBoat => { entity.insert(PaleOakBoatMetadataBundle::default()); } - azalea_registry::EntityKind::PaleOakChestBoat => { + EntityKind::PaleOakChestBoat => { entity.insert(PaleOakChestBoatMetadataBundle::default()); } - azalea_registry::EntityKind::Panda => { + EntityKind::Panda => { entity.insert(PandaMetadataBundle::default()); } - azalea_registry::EntityKind::Parched => { + EntityKind::Parched => { entity.insert(ParchedMetadataBundle::default()); } - azalea_registry::EntityKind::Parrot => { + EntityKind::Parrot => { entity.insert(ParrotMetadataBundle::default()); } - azalea_registry::EntityKind::Phantom => { + EntityKind::Phantom => { entity.insert(PhantomMetadataBundle::default()); } - azalea_registry::EntityKind::Pig => { + EntityKind::Pig => { entity.insert(PigMetadataBundle::default()); } - azalea_registry::EntityKind::Piglin => { + EntityKind::Piglin => { entity.insert(PiglinMetadataBundle::default()); } - azalea_registry::EntityKind::PiglinBrute => { + EntityKind::PiglinBrute => { entity.insert(PiglinBruteMetadataBundle::default()); } - azalea_registry::EntityKind::Pillager => { + EntityKind::Pillager => { entity.insert(PillagerMetadataBundle::default()); } - azalea_registry::EntityKind::Player => { + EntityKind::Player => { entity.insert(PlayerMetadataBundle::default()); } - azalea_registry::EntityKind::PolarBear => { + EntityKind::PolarBear => { entity.insert(PolarBearMetadataBundle::default()); } - azalea_registry::EntityKind::Pufferfish => { + EntityKind::Pufferfish => { entity.insert(PufferfishMetadataBundle::default()); } - azalea_registry::EntityKind::Rabbit => { + EntityKind::Rabbit => { entity.insert(RabbitMetadataBundle::default()); } - azalea_registry::EntityKind::Ravager => { + EntityKind::Ravager => { entity.insert(RavagerMetadataBundle::default()); } - azalea_registry::EntityKind::Salmon => { + EntityKind::Salmon => { entity.insert(SalmonMetadataBundle::default()); } - azalea_registry::EntityKind::Sheep => { + EntityKind::Sheep => { entity.insert(SheepMetadataBundle::default()); } - azalea_registry::EntityKind::Shulker => { + EntityKind::Shulker => { entity.insert(ShulkerMetadataBundle::default()); } - azalea_registry::EntityKind::ShulkerBullet => { + EntityKind::ShulkerBullet => { entity.insert(ShulkerBulletMetadataBundle::default()); } - azalea_registry::EntityKind::Silverfish => { + EntityKind::Silverfish => { entity.insert(SilverfishMetadataBundle::default()); } - azalea_registry::EntityKind::Skeleton => { + EntityKind::Skeleton => { entity.insert(SkeletonMetadataBundle::default()); } - azalea_registry::EntityKind::SkeletonHorse => { + EntityKind::SkeletonHorse => { entity.insert(SkeletonHorseMetadataBundle::default()); } - azalea_registry::EntityKind::Slime => { + EntityKind::Slime => { entity.insert(SlimeMetadataBundle::default()); } - azalea_registry::EntityKind::SmallFireball => { + EntityKind::SmallFireball => { entity.insert(SmallFireballMetadataBundle::default()); } - azalea_registry::EntityKind::Sniffer => { + EntityKind::Sniffer => { entity.insert(SnifferMetadataBundle::default()); } - azalea_registry::EntityKind::SnowGolem => { + EntityKind::SnowGolem => { entity.insert(SnowGolemMetadataBundle::default()); } - azalea_registry::EntityKind::Snowball => { + EntityKind::Snowball => { entity.insert(SnowballMetadataBundle::default()); } - azalea_registry::EntityKind::SpawnerMinecart => { + EntityKind::SpawnerMinecart => { entity.insert(SpawnerMinecartMetadataBundle::default()); } - azalea_registry::EntityKind::SpectralArrow => { + EntityKind::SpectralArrow => { entity.insert(SpectralArrowMetadataBundle::default()); } - azalea_registry::EntityKind::Spider => { + EntityKind::Spider => { entity.insert(SpiderMetadataBundle::default()); } - azalea_registry::EntityKind::SplashPotion => { + EntityKind::SplashPotion => { entity.insert(SplashPotionMetadataBundle::default()); } - azalea_registry::EntityKind::SpruceBoat => { + EntityKind::SpruceBoat => { entity.insert(SpruceBoatMetadataBundle::default()); } - azalea_registry::EntityKind::SpruceChestBoat => { + EntityKind::SpruceChestBoat => { entity.insert(SpruceChestBoatMetadataBundle::default()); } - azalea_registry::EntityKind::Squid => { + EntityKind::Squid => { entity.insert(SquidMetadataBundle::default()); } - azalea_registry::EntityKind::Stray => { + EntityKind::Stray => { entity.insert(StrayMetadataBundle::default()); } - azalea_registry::EntityKind::Strider => { + EntityKind::Strider => { entity.insert(StriderMetadataBundle::default()); } - azalea_registry::EntityKind::Tadpole => { + EntityKind::Tadpole => { entity.insert(TadpoleMetadataBundle::default()); } - azalea_registry::EntityKind::TextDisplay => { + EntityKind::TextDisplay => { entity.insert(TextDisplayMetadataBundle::default()); } - azalea_registry::EntityKind::Tnt => { + EntityKind::Tnt => { entity.insert(TntMetadataBundle::default()); } - azalea_registry::EntityKind::TntMinecart => { + EntityKind::TntMinecart => { entity.insert(TntMinecartMetadataBundle::default()); } - azalea_registry::EntityKind::TraderLlama => { + EntityKind::TraderLlama => { entity.insert(TraderLlamaMetadataBundle::default()); } - azalea_registry::EntityKind::Trident => { + EntityKind::Trident => { entity.insert(TridentMetadataBundle::default()); } - azalea_registry::EntityKind::TropicalFish => { + EntityKind::TropicalFish => { entity.insert(TropicalFishMetadataBundle::default()); } - azalea_registry::EntityKind::Turtle => { + EntityKind::Turtle => { entity.insert(TurtleMetadataBundle::default()); } - azalea_registry::EntityKind::Vex => { + EntityKind::Vex => { entity.insert(VexMetadataBundle::default()); } - azalea_registry::EntityKind::Villager => { + EntityKind::Villager => { entity.insert(VillagerMetadataBundle::default()); } - azalea_registry::EntityKind::Vindicator => { + EntityKind::Vindicator => { entity.insert(VindicatorMetadataBundle::default()); } - azalea_registry::EntityKind::WanderingTrader => { + EntityKind::WanderingTrader => { entity.insert(WanderingTraderMetadataBundle::default()); } - azalea_registry::EntityKind::Warden => { + EntityKind::Warden => { entity.insert(WardenMetadataBundle::default()); } - azalea_registry::EntityKind::WindCharge => { + EntityKind::WindCharge => { entity.insert(WindChargeMetadataBundle::default()); } - azalea_registry::EntityKind::Witch => { + EntityKind::Witch => { entity.insert(WitchMetadataBundle::default()); } - azalea_registry::EntityKind::Wither => { + EntityKind::Wither => { entity.insert(WitherMetadataBundle::default()); } - azalea_registry::EntityKind::WitherSkeleton => { + EntityKind::WitherSkeleton => { entity.insert(WitherSkeletonMetadataBundle::default()); } - azalea_registry::EntityKind::WitherSkull => { + EntityKind::WitherSkull => { entity.insert(WitherSkullMetadataBundle::default()); } - azalea_registry::EntityKind::Wolf => { + EntityKind::Wolf => { entity.insert(WolfMetadataBundle::default()); } - azalea_registry::EntityKind::Zoglin => { + EntityKind::Zoglin => { entity.insert(ZoglinMetadataBundle::default()); } - azalea_registry::EntityKind::Zombie => { + EntityKind::Zombie => { entity.insert(ZombieMetadataBundle::default()); } - azalea_registry::EntityKind::ZombieHorse => { + EntityKind::ZombieHorse => { entity.insert(ZombieHorseMetadataBundle::default()); } - azalea_registry::EntityKind::ZombieNautilus => { + EntityKind::ZombieNautilus => { entity.insert(ZombieNautilusMetadataBundle::default()); } - azalea_registry::EntityKind::ZombieVillager => { + EntityKind::ZombieVillager => { entity.insert(ZombieVillagerMetadataBundle::default()); } - azalea_registry::EntityKind::ZombifiedPiglin => { + EntityKind::ZombifiedPiglin => { entity.insert(ZombifiedPiglinMetadataBundle::default()); } } diff --git a/azalea-entity/src/mining.rs b/azalea-entity/src/mining.rs index b387367f..bda75bd9 100644 --- a/azalea-entity/src/mining.rs +++ b/azalea-entity/src/mining.rs @@ -1,6 +1,9 @@ use azalea_block::{BlockBehavior, BlockTrait}; use azalea_core::tier::get_item_tier; -use azalea_registry::{self as registry, MobEffect}; +use azalea_registry::{ + builtin::{BlockKind, ItemKind, MobEffect}, + tags, +}; use crate::{ActiveEffects, Attributes, FluidOnEyes, Physics}; @@ -16,7 +19,7 @@ use crate::{ActiveEffects, Attributes, FluidOnEyes, Physics}; /// to your mining speed. pub fn get_mine_progress( block: &dyn BlockTrait, - held_item: registry::Item, + held_item: ItemKind, fluid_on_eyes: &FluidOnEyes, physics: &Physics, attributes: &Attributes, @@ -45,30 +48,28 @@ pub fn get_mine_progress( (base_destroy_speed / destroy_time) / divisor as f32 } -fn has_correct_tool_for_drops(block: &dyn BlockTrait, tool: registry::Item) -> bool { +fn has_correct_tool_for_drops(block: &dyn BlockTrait, tool: ItemKind) -> bool { if !block.behavior().requires_correct_tool_for_drops { return true; } let registry_block = block.as_registry_block(); - if tool == registry::Item::Shears { + if tool == ItemKind::Shears { matches!( registry_block, - registry::Block::Cobweb | registry::Block::RedstoneWire | registry::Block::Tripwire + BlockKind::Cobweb | BlockKind::RedstoneWire | BlockKind::Tripwire ) - } else if registry::tags::items::SWORDS.contains(&tool) { - registry_block == registry::Block::Cobweb - } else if registry::tags::items::PICKAXES.contains(&tool) - || registry::tags::items::SHOVELS.contains(&tool) - || registry::tags::items::HOES.contains(&tool) - || registry::tags::items::AXES.contains(&tool) + } else if tags::items::SWORDS.contains(&tool) { + registry_block == BlockKind::Cobweb + } else if tags::items::PICKAXES.contains(&tool) + || tags::items::SHOVELS.contains(&tool) + || tags::items::HOES.contains(&tool) + || tags::items::AXES.contains(&tool) { let tier = get_item_tier(tool).expect("all pickaxes and shovels should be matched"); let tier_level = tier.level(); - !((tier_level < 3 && registry::tags::blocks::NEEDS_DIAMOND_TOOL.contains(®istry_block)) - || (tier_level < 2 - && registry::tags::blocks::NEEDS_IRON_TOOL.contains(®istry_block)) - || (tier_level < 1 - && registry::tags::blocks::NEEDS_STONE_TOOL.contains(®istry_block))) + !((tier_level < 3 && tags::blocks::NEEDS_DIAMOND_TOOL.contains(®istry_block)) + || (tier_level < 2 && tags::blocks::NEEDS_IRON_TOOL.contains(®istry_block)) + || (tier_level < 1 && tags::blocks::NEEDS_STONE_TOOL.contains(®istry_block))) } else { false } @@ -77,10 +78,11 @@ fn has_correct_tool_for_drops(block: &dyn BlockTrait, tool: registry::Item) -> b /// Returns the destroy speed of the given block with the given tool, taking /// enchantments and effects into account. /// -/// If the player is not holding anything, then `tool` should be `Item::Air`. +/// If the player is not holding anything, then `tool` should be +/// `ItemKind::Air`. fn destroy_speed( - block: registry::Block, - tool: registry::Item, + block: BlockKind, + tool: ItemKind, _fluid_on_eyes: &FluidOnEyes, physics: &Physics, attributes: &Attributes, @@ -122,45 +124,45 @@ fn destroy_speed( base_destroy_speed } -fn base_destroy_speed(block: registry::Block, tool: registry::Item) -> f32 { - if tool == registry::Item::Shears { - if block == registry::Block::Cobweb || registry::tags::blocks::LEAVES.contains(&block) { +fn base_destroy_speed(block: BlockKind, tool: ItemKind) -> f32 { + if tool == ItemKind::Shears { + if block == BlockKind::Cobweb || tags::blocks::LEAVES.contains(&block) { 15. - } else if registry::tags::blocks::WOOL.contains(&block) { + } else if tags::blocks::WOOL.contains(&block) { 5. - } else if matches!(block, registry::Block::Vine | registry::Block::GlowLichen) { + } else if matches!(block, BlockKind::Vine | BlockKind::GlowLichen) { 2. } else { 1. } - } else if registry::tags::items::SWORDS.contains(&tool) { - if block == registry::Block::Cobweb { + } else if tags::items::SWORDS.contains(&tool) { + if block == BlockKind::Cobweb { 15. - } else if registry::tags::blocks::SWORD_EFFICIENT.contains(&block) { + } else if tags::blocks::SWORD_EFFICIENT.contains(&block) { 1.5 } else { 1. } - } else if registry::tags::items::PICKAXES.contains(&tool) { - if registry::tags::blocks::MINEABLE_PICKAXE.contains(&block) { + } else if tags::items::PICKAXES.contains(&tool) { + if tags::blocks::MINEABLE_PICKAXE.contains(&block) { get_item_tier(tool).unwrap().speed() } else { 1. } - } else if registry::tags::items::SHOVELS.contains(&tool) { - if registry::tags::blocks::MINEABLE_SHOVEL.contains(&block) { + } else if tags::items::SHOVELS.contains(&tool) { + if tags::blocks::MINEABLE_SHOVEL.contains(&block) { get_item_tier(tool).unwrap().speed() } else { 1. } - } else if registry::tags::items::HOES.contains(&tool) { - if registry::tags::blocks::MINEABLE_HOE.contains(&block) { + } else if tags::items::HOES.contains(&tool) { + if tags::blocks::MINEABLE_HOE.contains(&block) { get_item_tier(tool).unwrap().speed() } else { 1. } - } else if registry::tags::items::AXES.contains(&tool) { - if registry::tags::blocks::MINEABLE_AXE.contains(&block) { + } else if tags::items::AXES.contains(&tool) { + if tags::blocks::MINEABLE_AXE.contains(&block) { get_item_tier(tool).unwrap().speed() } else { 1. diff --git a/azalea-entity/src/particle.rs b/azalea-entity/src/particle.rs index 5b7bb6af..41977d9f 100644 --- a/azalea-entity/src/particle.rs +++ b/azalea-entity/src/particle.rs @@ -2,7 +2,7 @@ use azalea_block::BlockState; use azalea_buf::AzBuf; use azalea_core::{color::RgbColor, position::BlockPos}; use azalea_inventory::ItemStack; -use azalea_registry::ParticleKind; +use azalea_registry::builtin::ParticleKind; use azalea_world::MinecraftEntityId; use bevy_ecs::component::Component; diff --git a/azalea-entity/src/plugin/mod.rs b/azalea-entity/src/plugin/mod.rs index a3ea11d0..4ff6f4cd 100644 --- a/azalea-entity/src/plugin/mod.rs +++ b/azalea-entity/src/plugin/mod.rs @@ -3,11 +3,12 @@ mod relative_updates; use std::collections::HashSet; -use azalea_block::{BlockState, fluid_state::FluidKind}; +use azalea_block::{BlockState, BlockTrait, fluid_state::FluidKind, properties}; use azalea_core::{ position::{BlockPos, ChunkPos, Vec3}, tick::GameTick, }; +use azalea_registry::{builtin::BlockKind, tags}; use azalea_world::{InstanceContainer, InstanceName, MinecraftEntityId}; use bevy_app::{App, Plugin, PostUpdate, Update}; use bevy_ecs::prelude::*; @@ -143,11 +144,11 @@ pub fn update_on_climbable( let block_pos = BlockPos::from(position); let block_state_at_feet = instance.get_block_state(block_pos).unwrap_or_default(); - let block_at_feet = Box::<dyn azalea_block::BlockTrait>::from(block_state_at_feet); + let block_at_feet = Box::<dyn BlockTrait>::from(block_state_at_feet); let registry_block_at_feet = block_at_feet.as_registry_block(); - **on_climbable = azalea_registry::tags::blocks::CLIMBABLE.contains(®istry_block_at_feet) - || (azalea_registry::tags::blocks::TRAPDOORS.contains(®istry_block_at_feet) + **on_climbable = tags::blocks::CLIMBABLE.contains(®istry_block_at_feet) + || (tags::blocks::TRAPDOORS.contains(®istry_block_at_feet) && is_trapdoor_useable_as_ladder(block_state_at_feet, block_pos, &instance)); } } @@ -159,7 +160,7 @@ fn is_trapdoor_useable_as_ladder( ) -> bool { // trapdoor must be open if !block_state - .property::<azalea_block::properties::Open>() + .property::<properties::Open>() .unwrap_or_default() { return false; @@ -169,17 +170,16 @@ fn is_trapdoor_useable_as_ladder( let block_below = instance .get_block_state(block_pos.down(1)) .unwrap_or_default(); - let registry_block_below = - Box::<dyn azalea_block::BlockTrait>::from(block_below).as_registry_block(); - if registry_block_below != azalea_registry::Block::Ladder { + let registry_block_below = Box::<dyn BlockTrait>::from(block_below).as_registry_block(); + if registry_block_below != BlockKind::Ladder { return false; } // and the ladder must be facing the same direction as the trapdoor let ladder_facing = block_below - .property::<azalea_block::properties::FacingCardinal>() + .property::<properties::FacingCardinal>() .expect("ladder block must have facing property"); let trapdoor_facing = block_state - .property::<azalea_block::properties::FacingCardinal>() + .property::<properties::FacingCardinal>() .expect("trapdoor block must have facing property"); if ladder_facing != trapdoor_facing { return false; @@ -292,6 +292,7 @@ mod tests { properties::{FacingCardinal, TopBottom}, }; use azalea_core::position::{BlockPos, ChunkPos}; + use azalea_registry::builtin::BlockKind; use azalea_world::{Chunk, ChunkStorage, Instance, PartialInstance}; use super::is_trapdoor_useable_as_ladder; @@ -307,7 +308,7 @@ mod tests { ); partial_instance.chunks.set_block_state( BlockPos::new(0, 0, 0), - azalea_registry::Block::Stone.into(), + BlockKind::Stone.into(), &chunks, ); diff --git a/azalea-inventory/azalea-inventory-macros/src/menu_impl.rs b/azalea-inventory/azalea-inventory-macros/src/menu_impl.rs index 1540fdff..1b017d17 100644 --- a/azalea-inventory/azalea-inventory-macros/src/menu_impl.rs +++ b/azalea-inventory/azalea-inventory-macros/src/menu_impl.rs @@ -138,7 +138,7 @@ pub fn generate(input: &DeclareMenus) -> TokenStream { } } - pub fn from_kind(kind: azalea_registry::MenuKind) -> Self { + pub fn from_kind(kind: azalea_registry::builtin::MenuKind) -> Self { match kind { #kind_match_variants } @@ -275,8 +275,8 @@ pub fn generate_match_variant_for_len(menu: &Menu) -> TokenStream { } pub fn generate_match_variant_for_kind(menu: &Menu) -> TokenStream { - // azalea_registry::MenuKind::Generic9x3 => Menu::Generic9x3 { contents: - // Default::default(), player: Default::default() }, + // azalea_registry::builtin::MenuKind::Generic9x3 => Menu::Generic9x3 { + // contents: Default::default(), player: Default::default() }, let menu_name = &menu.name; let menu_field_names = if menu.name == "Player" { @@ -292,7 +292,7 @@ pub fn generate_match_variant_for_kind(menu: &Menu) -> TokenStream { }; quote! { - azalea_registry::MenuKind::#menu_name => Menu::#menu_name #menu_field_names, + azalea_registry::builtin::MenuKind::#menu_name => Menu::#menu_name #menu_field_names, } } diff --git a/azalea-inventory/src/components/mod.rs b/azalea-inventory/src/components/mod.rs index 87d4256b..a344b5b3 100644 --- a/azalea-inventory/src/components/mod.rs +++ b/azalea-inventory/src/components/mod.rs @@ -16,17 +16,21 @@ use azalea_core::{ checksum::{Checksum, get_checksum}, codec_utils::*, filterable::Filterable, - identifier::Identifier, position::GlobalPos, registry_holder::{RegistryHolder, dimension_type::DamageTypeElement}, sound::CustomSound, }; use azalea_registry::{ - self as registry, Attribute, Block, DamageKind, DataComponentKind, Enchantment, EntityKind, - Holder, HolderSet, Item, MobEffect, Potion, SoundEvent, TrimMaterial, TrimPattern, + Holder, HolderSet, + builtin::{ + Attribute, BlockKind, DataComponentKind, EntityKind, ItemKind, MobEffect, Potion, + SoundEvent, VillagerKind, + }, + data::{self, DamageKind, Enchantment, JukeboxSong, TrimMaterial, TrimPattern}, + identifier::Identifier, }; pub use profile::*; -use serde::{Serialize, ser::SerializeMap}; +use serde::{Serialize, Serializer, ser::SerializeMap}; use simdnbt::owned::{Nbt, NbtCompound}; use tracing::trace; @@ -383,7 +387,7 @@ pub struct BlockStatePropertyMatcher { #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] pub struct BlockPredicate { #[serde(skip_serializing_if = "is_default")] - pub blocks: Option<HolderSet<Block, Identifier>>, + pub blocks: Option<HolderSet<BlockKind, Identifier>>, #[serde(skip_serializing_if = "is_default")] pub properties: Option<Vec<BlockStatePropertyMatcher>>, #[serde(skip_serializing_if = "is_default")] @@ -561,7 +565,7 @@ impl Food { #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] pub struct ToolRule { - pub blocks: HolderSet<Block, Identifier>, + pub blocks: HolderSet<BlockKind, Identifier>, #[serde(skip_serializing_if = "is_default")] pub speed: Option<f32>, #[serde(skip_serializing_if = "is_default")] @@ -760,8 +764,8 @@ pub struct BlockEntityData { #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] #[serde(untagged)] pub enum Instrument { - Registry(registry::Instrument), - Holder(Holder<registry::Instrument, InstrumentData>), + Registry(data::Instrument), + Holder(Holder<data::Instrument, InstrumentData>), } #[derive(Clone, PartialEq, Debug, AzBuf, Serialize)] @@ -889,7 +893,7 @@ pub struct BaseColor { #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] #[serde(transparent)] pub struct PotDecorations { - pub items: Vec<Item>, + pub items: Vec<ItemKind>, } #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] @@ -934,7 +938,7 @@ pub struct ContainerLoot { #[serde(untagged)] pub enum JukeboxPlayable { Referenced(Identifier), - Direct(Holder<registry::JukeboxSong, JukeboxSongData>), + Direct(Holder<JukeboxSong, JukeboxSongData>), } #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] @@ -990,7 +994,7 @@ pub enum ItemUseAnimation { None, Eat, Drink, - Block, + BlockKind, Bow, Spear, Crossbow, @@ -1034,7 +1038,7 @@ pub struct Enchantable { #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] pub struct Repairable { - pub items: HolderSet<Item, Identifier>, + pub items: HolderSet<ItemKind, Identifier>, } #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] @@ -1212,13 +1216,13 @@ pub struct PotionDurationScale { #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] #[serde(transparent)] pub struct VillagerVariant { - pub variant: registry::VillagerKind, + pub variant: VillagerKind, } #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] #[serde(transparent)] pub struct WolfVariant { - pub variant: registry::WolfVariant, + pub variant: data::WolfVariant, } #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] @@ -1230,7 +1234,30 @@ pub struct WolfCollar { #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] #[serde(transparent)] pub struct FoxVariant { - pub variant: registry::FoxVariant, + pub variant: FoxVariantKind, +} + +#[derive(Default, AzBuf, Clone, Copy, Debug, PartialEq)] +pub enum FoxVariantKind { + #[default] + Red, + Snow, +} +impl Display for FoxVariantKind { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + match self { + Self::Red => write!(f, "minecraft:red"), + Self::Snow => write!(f, "minecraft:snow"), + } + } +} +impl Serialize for FoxVariantKind { + fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> + where + S: Serializer, + { + serializer.serialize_str(&self.to_string()) + } } #[derive(Clone, Copy, PartialEq, AzBuf, Debug, Serialize)] @@ -1244,7 +1271,34 @@ pub enum SalmonSize { #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] #[serde(transparent)] pub struct ParrotVariant { - pub variant: registry::ParrotVariant, + pub variant: ParrotVariantKind, +} +#[derive(AzBuf, Clone, Copy, Debug, PartialEq)] +pub enum ParrotVariantKind { + RedBlue, + Blue, + Green, + YellowBlue, + Gray, +} +impl Display for ParrotVariantKind { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + match self { + Self::RedBlue => write!(f, "minecraft:red_blue"), + Self::Blue => write!(f, "minecraft:blue"), + Self::Green => write!(f, "minecraft:green"), + Self::YellowBlue => write!(f, "minecraft:yellow_blue"), + Self::Gray => write!(f, "minecraft:gray"), + } + } +} +impl Serialize for ParrotVariantKind { + fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> + where + S: Serializer, + { + serializer.serialize_str(&self.to_string()) + } } #[derive(Clone, Copy, PartialEq, AzBuf, Debug, Serialize)] @@ -1279,37 +1333,123 @@ pub struct TropicalFishPatternColor { #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] #[serde(transparent)] pub struct MooshroomVariant { - pub variant: registry::MooshroomVariant, + pub variant: MooshroomVariantKind, +} +#[derive(Default, AzBuf, Clone, Copy, Debug, PartialEq)] +pub enum MooshroomVariantKind { + #[default] + Red, + Brown, +} +impl Display for MooshroomVariantKind { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + match self { + Self::Red => write!(f, "minecraft:red"), + Self::Brown => write!(f, "minecraft:brown"), + } + } +} +impl Serialize for MooshroomVariantKind { + fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> + where + S: Serializer, + { + serializer.serialize_str(&self.to_string()) + } } #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] #[serde(transparent)] pub struct RabbitVariant { - pub variant: registry::RabbitVariant, + pub variant: RabbitVariantKind, +} +#[derive(Default, AzBuf, Clone, Copy, Debug, PartialEq)] +pub enum RabbitVariantKind { + #[default] + Brown, + White, + Black, + WhiteSplotched, + Gold, + Salt, + Evil, +} +impl Display for RabbitVariantKind { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + match self { + Self::Brown => write!(f, "minecraft:brown"), + Self::White => write!(f, "minecraft:white"), + Self::Black => write!(f, "minecraft:black"), + Self::WhiteSplotched => write!(f, "minecraft:white_splotched"), + Self::Gold => write!(f, "minecraft:gold"), + Self::Salt => write!(f, "minecraft:salt"), + Self::Evil => write!(f, "minecraft:evil"), + } + } +} +impl Serialize for RabbitVariantKind { + fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> + where + S: Serializer, + { + serializer.serialize_str(&self.to_string()) + } } #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] #[serde(transparent)] pub struct PigVariant { - pub variant: registry::PigVariant, + pub variant: data::PigVariant, } #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] #[serde(transparent)] pub struct FrogVariant { - pub variant: registry::FrogVariant, + pub variant: data::FrogVariant, } #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] #[serde(transparent)] pub struct HorseVariant { - pub variant: registry::HorseVariant, + pub variant: HorseVariantKind, +} +#[derive(Default, AzBuf, Clone, Copy, Debug, PartialEq)] +pub enum HorseVariantKind { + #[default] + White, + Creamy, + Chestnut, + Brown, + Black, + Gray, + DarkBrown, +} +impl Display for HorseVariantKind { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + match self { + Self::White => write!(f, "minecraft:white"), + Self::Creamy => write!(f, "minecraft:creamy"), + Self::Chestnut => write!(f, "minecraft:chestnut"), + Self::Brown => write!(f, "minecraft:brown"), + Self::Black => write!(f, "minecraft:black"), + Self::Gray => write!(f, "minecraft:gray"), + Self::DarkBrown => write!(f, "minecraft:dark_brown"), + } + } +} +impl Serialize for HorseVariantKind { + fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> + where + S: Serializer, + { + serializer.serialize_str(&self.to_string()) + } } #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] #[serde(transparent)] pub struct PaintingVariant { - pub variant: Holder<registry::PaintingVariant, PaintingVariantData>, + pub variant: Holder<data::PaintingVariant, PaintingVariantData>, } #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] @@ -1328,19 +1468,73 @@ pub struct PaintingVariantData { #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] #[serde(transparent)] pub struct LlamaVariant { - pub variant: registry::LlamaVariant, + pub variant: LlamaVariantKind, +} +#[derive(Default, AzBuf, Clone, Copy, Debug, PartialEq)] +pub enum LlamaVariantKind { + #[default] + Creamy, + White, + Brown, + Gray, +} +impl Display for LlamaVariantKind { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + match self { + Self::Creamy => write!(f, "minecraft:creamy"), + Self::White => write!(f, "minecraft:white"), + Self::Brown => write!(f, "minecraft:brown"), + Self::Gray => write!(f, "minecraft:gray"), + } + } +} +impl Serialize for LlamaVariantKind { + fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> + where + S: Serializer, + { + serializer.serialize_str(&self.to_string()) + } } #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] #[serde(transparent)] pub struct AxolotlVariant { - pub variant: registry::AxolotlVariant, + pub variant: AxolotlVariantKind, +} +#[derive(Default, AzBuf, Clone, Copy, Debug, PartialEq)] +pub enum AxolotlVariantKind { + #[default] + Lucy, + Wild, + Gold, + Cyan, + Blue, +} +impl Display for AxolotlVariantKind { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + match self { + Self::Lucy => write!(f, "minecraft:lucy"), + Self::Wild => write!(f, "minecraft:wild"), + Self::Gold => write!(f, "minecraft:gold"), + Self::Cyan => write!(f, "minecraft:cyan"), + Self::Blue => write!(f, "minecraft:blue"), + } + } +} +impl Serialize for AxolotlVariantKind { + fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> + where + S: Serializer, + { + serializer.serialize_str(&self.to_string()) + } } #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] #[serde(transparent)] pub struct CatVariant { - pub variant: registry::CatVariant, + pub variant: data::CatVariant, } #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] @@ -1495,13 +1689,13 @@ pub struct BreakSound { #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] #[serde(transparent)] pub struct WolfSoundVariant { - pub variant: azalea_registry::WolfSoundVariant, + pub variant: azalea_registry::data::WolfSoundVariant, } #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] #[serde(transparent)] pub struct CowVariant { - pub variant: azalea_registry::CowVariant, + pub variant: azalea_registry::data::CowVariant, } #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] @@ -1513,7 +1707,7 @@ pub enum ChickenVariant { #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] pub struct ChickenVariantData { - pub registry: azalea_registry::ChickenVariant, + pub registry: azalea_registry::data::ChickenVariant, } // TODO: check in-game if this is correct @@ -1525,7 +1719,7 @@ pub enum ZombieNautilusVariant { #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] #[serde(transparent)] pub struct ZombieNautilusVariantData { - pub value: azalea_registry::ZombieNautilusVariant, + pub value: azalea_registry::data::ZombieNautilusVariant, } #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] @@ -1559,8 +1753,8 @@ pub struct MinimumAttackCharge { #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] #[serde(untagged)] pub enum DamageType { - Registry(registry::DamageKind), - Holder(Holder<registry::DamageKind, DamageTypeElement>), + Registry(DamageKind), + Holder(Holder<DamageKind, DamageTypeElement>), } #[derive(Clone, PartialEq, AzBuf, Debug, Serialize)] diff --git a/azalea-inventory/src/components/profile.rs b/azalea-inventory/src/components/profile.rs index 153b43d3..11b0e6e1 100644 --- a/azalea-inventory/src/components/profile.rs +++ b/azalea-inventory/src/components/profile.rs @@ -2,7 +2,8 @@ use azalea_auth::game_profile::{ GameProfile, GameProfileProperties, SerializableProfileProperties, }; use azalea_buf::AzBuf; -use azalea_core::{codec_utils::*, identifier::Identifier}; +use azalea_core::codec_utils::*; +use azalea_registry::identifier::Identifier; use serde::{Serialize, Serializer}; use uuid::Uuid; diff --git a/azalea-inventory/src/default_components/generated.rs b/azalea-inventory/src/default_components/generated.rs index 11f8d160..290cb431 100644 --- a/azalea-inventory/src/default_components/generated.rs +++ b/azalea-inventory/src/default_components/generated.rs @@ -8,7 +8,9 @@ use std::collections::HashMap; use azalea_chat::translatable_component::TranslatableComponent; use azalea_core::attribute_modifier_operation::AttributeModifierOperation; use azalea_registry::{ - Attribute, Block, DataRegistry, EntityKind, HolderSet, Item, MobEffect, SoundEvent, + DataRegistry, HolderSet, + builtin::{Attribute, BlockKind, EntityKind, ItemKind, MobEffect, SoundEvent}, + data, }; use simdnbt::owned::NbtCompound; @@ -18,9 +20,9 @@ use crate::{ }; impl DefaultableComponent for AttributeModifiers { - fn default_for_item(item: Item) -> Option<Self> { + fn default_for_item(item: ItemKind) -> Option<Self> { let value = match item { - Item::CarvedPumpkin => vec![AttributeModifiersEntry { + ItemKind::CarvedPumpkin => vec![AttributeModifiersEntry { display: AttributeModifierDisplay::Hidden, slot: EquipmentSlotGroup::Head, kind: Attribute::WaypointTransmitRange, @@ -30,7 +32,7 @@ impl DefaultableComponent for AttributeModifiers { operation: AttributeModifierOperation::AddMultipliedTotal, }, }], - Item::ChainmailBoots => vec![ + ItemKind::ChainmailBoots => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Feet, kind: Attribute::Armor, @@ -52,7 +54,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::ChainmailChestplate => vec![ + ItemKind::ChainmailChestplate => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Chest, kind: Attribute::Armor, @@ -74,7 +76,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::ChainmailHelmet => vec![ + ItemKind::ChainmailHelmet => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Head, kind: Attribute::Armor, @@ -96,7 +98,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::ChainmailLeggings => vec![ + ItemKind::ChainmailLeggings => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Legs, kind: Attribute::Armor, @@ -118,7 +120,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::CopperAxe => vec![ + ItemKind::CopperAxe => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, @@ -140,7 +142,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::CopperBoots => vec![ + ItemKind::CopperBoots => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Feet, kind: Attribute::Armor, @@ -162,7 +164,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::CopperChestplate => vec![ + ItemKind::CopperChestplate => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Chest, kind: Attribute::Armor, @@ -184,7 +186,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::CopperHelmet => vec![ + ItemKind::CopperHelmet => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Head, kind: Attribute::Armor, @@ -206,7 +208,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::CopperHoe => vec![ + ItemKind::CopperHoe => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, @@ -228,7 +230,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::CopperHorseArmor => vec![ + ItemKind::CopperHorseArmor => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Body, kind: Attribute::Armor, @@ -250,7 +252,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::CopperLeggings => vec![ + ItemKind::CopperLeggings => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Legs, kind: Attribute::Armor, @@ -272,7 +274,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::CopperNautilusArmor => vec![ + ItemKind::CopperNautilusArmor => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Body, kind: Attribute::Armor, @@ -294,7 +296,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::CopperPickaxe => vec![ + ItemKind::CopperPickaxe => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, @@ -316,7 +318,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::CopperShovel => vec![ + ItemKind::CopperShovel => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, @@ -338,7 +340,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::CopperSpear => vec![ + ItemKind::CopperSpear => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, @@ -360,7 +362,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::CopperSword => vec![ + ItemKind::CopperSword => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, @@ -382,7 +384,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::CreeperHead => vec![AttributeModifiersEntry { + ItemKind::CreeperHead => vec![AttributeModifiersEntry { display: AttributeModifierDisplay::Hidden, slot: EquipmentSlotGroup::Head, kind: Attribute::WaypointTransmitRange, @@ -392,7 +394,7 @@ impl DefaultableComponent for AttributeModifiers { operation: AttributeModifierOperation::AddMultipliedTotal, }, }], - Item::DiamondAxe => vec![ + ItemKind::DiamondAxe => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, @@ -414,7 +416,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::DiamondBoots => vec![ + ItemKind::DiamondBoots => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Feet, kind: Attribute::Armor, @@ -436,7 +438,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::DiamondChestplate => vec![ + ItemKind::DiamondChestplate => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Chest, kind: Attribute::Armor, @@ -458,7 +460,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::DiamondHelmet => vec![ + ItemKind::DiamondHelmet => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Head, kind: Attribute::Armor, @@ -480,7 +482,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::DiamondHoe => vec![ + ItemKind::DiamondHoe => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, @@ -502,7 +504,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::DiamondHorseArmor => vec![ + ItemKind::DiamondHorseArmor => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Body, kind: Attribute::Armor, @@ -524,7 +526,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::DiamondLeggings => vec![ + ItemKind::DiamondLeggings => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Legs, kind: Attribute::Armor, @@ -546,7 +548,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::DiamondNautilusArmor => vec![ + ItemKind::DiamondNautilusArmor => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Body, kind: Attribute::Armor, @@ -568,7 +570,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::DiamondPickaxe => vec![ + ItemKind::DiamondPickaxe => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, @@ -590,7 +592,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::DiamondShovel => vec![ + ItemKind::DiamondShovel => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, @@ -612,7 +614,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::DiamondSpear => vec![ + ItemKind::DiamondSpear => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, @@ -634,7 +636,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::DiamondSword => vec![ + ItemKind::DiamondSword => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, @@ -656,7 +658,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::DragonHead => vec![AttributeModifiersEntry { + ItemKind::DragonHead => vec![AttributeModifiersEntry { display: AttributeModifierDisplay::Hidden, slot: EquipmentSlotGroup::Head, kind: Attribute::WaypointTransmitRange, @@ -666,7 +668,7 @@ impl DefaultableComponent for AttributeModifiers { operation: AttributeModifierOperation::AddMultipliedTotal, }, }], - Item::GoldenAxe => vec![ + ItemKind::GoldenAxe => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, @@ -688,7 +690,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::GoldenBoots => vec![ + ItemKind::GoldenBoots => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Feet, kind: Attribute::Armor, @@ -710,7 +712,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::GoldenChestplate => vec![ + ItemKind::GoldenChestplate => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Chest, kind: Attribute::Armor, @@ -732,7 +734,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::GoldenHelmet => vec![ + ItemKind::GoldenHelmet => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Head, kind: Attribute::Armor, @@ -754,7 +756,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::GoldenHoe => vec![ + ItemKind::GoldenHoe => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, @@ -776,7 +778,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::GoldenHorseArmor => vec![ + ItemKind::GoldenHorseArmor => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Body, kind: Attribute::Armor, @@ -798,7 +800,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::GoldenLeggings => vec![ + ItemKind::GoldenLeggings => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Legs, kind: Attribute::Armor, @@ -820,7 +822,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::GoldenNautilusArmor => vec![ + ItemKind::GoldenNautilusArmor => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Body, kind: Attribute::Armor, @@ -842,7 +844,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::GoldenPickaxe => vec![ + ItemKind::GoldenPickaxe => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, @@ -864,7 +866,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::GoldenShovel => vec![ + ItemKind::GoldenShovel => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, @@ -886,7 +888,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::GoldenSpear => vec![ + ItemKind::GoldenSpear => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, @@ -908,7 +910,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::GoldenSword => vec![ + ItemKind::GoldenSword => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, @@ -930,7 +932,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::IronAxe => vec![ + ItemKind::IronAxe => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, @@ -952,7 +954,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::IronBoots => vec![ + ItemKind::IronBoots => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Feet, kind: Attribute::Armor, @@ -974,7 +976,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::IronChestplate => vec![ + ItemKind::IronChestplate => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Chest, kind: Attribute::Armor, @@ -996,7 +998,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::IronHelmet => vec![ + ItemKind::IronHelmet => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Head, kind: Attribute::Armor, @@ -1018,7 +1020,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::IronHoe => vec![ + ItemKind::IronHoe => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, @@ -1040,7 +1042,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::IronHorseArmor => vec![ + ItemKind::IronHorseArmor => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Body, kind: Attribute::Armor, @@ -1062,7 +1064,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::IronLeggings => vec![ + ItemKind::IronLeggings => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Legs, kind: Attribute::Armor, @@ -1084,7 +1086,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::IronNautilusArmor => vec![ + ItemKind::IronNautilusArmor => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Body, kind: Attribute::Armor, @@ -1106,7 +1108,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::IronPickaxe => vec![ + ItemKind::IronPickaxe => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, @@ -1128,7 +1130,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::IronShovel => vec![ + ItemKind::IronShovel => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, @@ -1150,7 +1152,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::IronSpear => vec![ + ItemKind::IronSpear => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, @@ -1172,7 +1174,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::IronSword => vec![ + ItemKind::IronSword => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, @@ -1194,7 +1196,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::LeatherBoots => vec![ + ItemKind::LeatherBoots => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Feet, kind: Attribute::Armor, @@ -1216,7 +1218,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::LeatherChestplate => vec![ + ItemKind::LeatherChestplate => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Chest, kind: Attribute::Armor, @@ -1238,7 +1240,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::LeatherHelmet => vec![ + ItemKind::LeatherHelmet => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Head, kind: Attribute::Armor, @@ -1260,7 +1262,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::LeatherHorseArmor => vec![ + ItemKind::LeatherHorseArmor => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Body, kind: Attribute::Armor, @@ -1282,7 +1284,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::LeatherLeggings => vec![ + ItemKind::LeatherLeggings => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Legs, kind: Attribute::Armor, @@ -1304,7 +1306,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::Mace => vec![ + ItemKind::Mace => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, @@ -1326,7 +1328,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::NetheriteAxe => vec![ + ItemKind::NetheriteAxe => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, @@ -1348,7 +1350,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::NetheriteBoots => vec![ + ItemKind::NetheriteBoots => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Feet, kind: Attribute::Armor, @@ -1380,7 +1382,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::NetheriteChestplate => vec![ + ItemKind::NetheriteChestplate => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Chest, kind: Attribute::Armor, @@ -1412,7 +1414,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::NetheriteHelmet => vec![ + ItemKind::NetheriteHelmet => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Head, kind: Attribute::Armor, @@ -1444,7 +1446,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::NetheriteHoe => vec![ + ItemKind::NetheriteHoe => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, @@ -1466,7 +1468,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::NetheriteHorseArmor => vec![ + ItemKind::NetheriteHorseArmor => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Body, kind: Attribute::Armor, @@ -1498,7 +1500,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::NetheriteLeggings => vec![ + ItemKind::NetheriteLeggings => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Legs, kind: Attribute::Armor, @@ -1530,7 +1532,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::NetheriteNautilusArmor => vec![ + ItemKind::NetheriteNautilusArmor => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Body, kind: Attribute::Armor, @@ -1562,7 +1564,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::NetheritePickaxe => vec![ + ItemKind::NetheritePickaxe => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, @@ -1584,7 +1586,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::NetheriteShovel => vec![ + ItemKind::NetheriteShovel => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, @@ -1606,7 +1608,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::NetheriteSpear => vec![ + ItemKind::NetheriteSpear => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, @@ -1628,7 +1630,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::NetheriteSword => vec![ + ItemKind::NetheriteSword => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, @@ -1650,7 +1652,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::PiglinHead => vec![AttributeModifiersEntry { + ItemKind::PiglinHead => vec![AttributeModifiersEntry { display: AttributeModifierDisplay::Hidden, slot: EquipmentSlotGroup::Head, kind: Attribute::WaypointTransmitRange, @@ -1660,7 +1662,7 @@ impl DefaultableComponent for AttributeModifiers { operation: AttributeModifierOperation::AddMultipliedTotal, }, }], - Item::PlayerHead => vec![AttributeModifiersEntry { + ItemKind::PlayerHead => vec![AttributeModifiersEntry { display: AttributeModifierDisplay::Hidden, slot: EquipmentSlotGroup::Head, kind: Attribute::WaypointTransmitRange, @@ -1670,7 +1672,7 @@ impl DefaultableComponent for AttributeModifiers { operation: AttributeModifierOperation::AddMultipliedTotal, }, }], - Item::SkeletonSkull => vec![AttributeModifiersEntry { + ItemKind::SkeletonSkull => vec![AttributeModifiersEntry { display: AttributeModifierDisplay::Hidden, slot: EquipmentSlotGroup::Head, kind: Attribute::WaypointTransmitRange, @@ -1680,7 +1682,7 @@ impl DefaultableComponent for AttributeModifiers { operation: AttributeModifierOperation::AddMultipliedTotal, }, }], - Item::StoneAxe => vec![ + ItemKind::StoneAxe => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, @@ -1702,7 +1704,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::StoneHoe => vec![ + ItemKind::StoneHoe => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, @@ -1724,7 +1726,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::StonePickaxe => vec![ + ItemKind::StonePickaxe => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, @@ -1746,7 +1748,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::StoneShovel => vec![ + ItemKind::StoneShovel => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, @@ -1768,7 +1770,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::StoneSpear => vec![ + ItemKind::StoneSpear => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, @@ -1790,7 +1792,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::StoneSword => vec![ + ItemKind::StoneSword => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, @@ -1812,7 +1814,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::Trident => vec![ + ItemKind::Trident => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, @@ -1834,7 +1836,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::TurtleHelmet => vec![ + ItemKind::TurtleHelmet => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Head, kind: Attribute::Armor, @@ -1856,7 +1858,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::WitherSkeletonSkull => vec![AttributeModifiersEntry { + ItemKind::WitherSkeletonSkull => vec![AttributeModifiersEntry { display: AttributeModifierDisplay::Hidden, slot: EquipmentSlotGroup::Head, kind: Attribute::WaypointTransmitRange, @@ -1866,7 +1868,7 @@ impl DefaultableComponent for AttributeModifiers { operation: AttributeModifierOperation::AddMultipliedTotal, }, }], - Item::WolfArmor => vec![ + ItemKind::WolfArmor => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Body, kind: Attribute::Armor, @@ -1888,7 +1890,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::WoodenAxe => vec![ + ItemKind::WoodenAxe => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, @@ -1910,7 +1912,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::WoodenHoe => vec![ + ItemKind::WoodenHoe => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, @@ -1932,7 +1934,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::WoodenPickaxe => vec![ + ItemKind::WoodenPickaxe => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, @@ -1954,7 +1956,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::WoodenShovel => vec![ + ItemKind::WoodenShovel => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, @@ -1976,7 +1978,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::WoodenSpear => vec![ + ItemKind::WoodenSpear => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, @@ -1998,7 +2000,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::WoodenSword => vec![ + ItemKind::WoodenSword => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, @@ -2020,7 +2022,7 @@ impl DefaultableComponent for AttributeModifiers { }, }, ], - Item::ZombieHead => vec![AttributeModifiersEntry { + ItemKind::ZombieHead => vec![AttributeModifiersEntry { display: AttributeModifierDisplay::Hidden, slot: EquipmentSlotGroup::Head, kind: Attribute::WaypointTransmitRange, @@ -2036,17 +2038,19 @@ impl DefaultableComponent for AttributeModifiers { } } impl DefaultableComponent for BreakSound { - fn default_for_item(item: Item) -> Option<Self> { + fn default_for_item(item: ItemKind) -> Option<Self> { let value = match item { - Item::Shield => azalea_registry::Holder::Reference(SoundEvent::ItemShieldBreak), - Item::WolfArmor => azalea_registry::Holder::Reference(SoundEvent::ItemWolfArmorBreak), + ItemKind::Shield => azalea_registry::Holder::Reference(SoundEvent::ItemShieldBreak), + ItemKind::WolfArmor => { + azalea_registry::Holder::Reference(SoundEvent::ItemWolfArmorBreak) + } _ => azalea_registry::Holder::Reference(SoundEvent::EntityItemBreak), }; Some(BreakSound { sound: value }) } } impl DefaultableComponent for Enchantments { - fn default_for_item(_item: Item) -> Option<Self> { + fn default_for_item(_item: ItemKind) -> Option<Self> { Some(Enchantments { levels: HashMap::from_iter([]), }) @@ -2055,7 +2059,7 @@ impl DefaultableComponent for Enchantments { #[rustfmt::skip] 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<Self> { + fn default_for_item(item: ItemKind) -> Option<Self> { let value = ITEM_MODEL_VALUES[item as usize]; Some(ItemModel { resource_location: value.into(), @@ -2065,7 +2069,7 @@ impl DefaultableComponent for ItemModel { #[rustfmt::skip] 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<Self> { + fn default_for_item(item: ItemKind) -> Option<Self> { let value = ITEM_NAME_VALUES[item as usize]; Some(ItemName { name: TranslatableComponent::from(value).into(), @@ -2073,173 +2077,173 @@ impl DefaultableComponent for ItemName { } } impl DefaultableComponent for Lore { - fn default_for_item(_item: Item) -> Option<Self> { + fn default_for_item(_item: ItemKind) -> Option<Self> { Some(Lore { lines: vec![] }) } } #[rustfmt::skip] 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<Self> { + fn default_for_item(item: ItemKind) -> Option<Self> { let value = MAX_STACK_SIZE_VALUES[item as usize]; Some(MaxStackSize { count: value }) } } impl DefaultableComponent for Rarity { - fn default_for_item(item: Item) -> Option<Self> { + fn default_for_item(item: ItemKind) -> Option<Self> { let value = match item { - Item::AnglerPotterySherd => Rarity::Uncommon, - Item::ArcherPotterySherd => Rarity::Uncommon, - Item::ArmsUpPotterySherd => Rarity::Uncommon, - Item::Barrier => Rarity::Epic, - Item::Beacon => Rarity::Rare, - Item::BladePotterySherd => Rarity::Uncommon, - Item::BoltArmorTrimSmithingTemplate => Rarity::Uncommon, - Item::BrewerPotterySherd => Rarity::Uncommon, - Item::BurnPotterySherd => Rarity::Uncommon, - Item::ChainCommandBlock => Rarity::Epic, - Item::ChainmailBoots => Rarity::Uncommon, - Item::ChainmailChestplate => Rarity::Uncommon, - Item::ChainmailHelmet => Rarity::Uncommon, - Item::ChainmailLeggings => Rarity::Uncommon, - Item::CoastArmorTrimSmithingTemplate => Rarity::Uncommon, - Item::CommandBlock => Rarity::Epic, - Item::CommandBlockMinecart => Rarity::Epic, - Item::Conduit => Rarity::Uncommon, - Item::CreeperBannerPattern => Rarity::Uncommon, - Item::CreeperHead => Rarity::Uncommon, - Item::DangerPotterySherd => Rarity::Uncommon, - Item::DebugStick => Rarity::Epic, - Item::DiscFragment5 => Rarity::Uncommon, - Item::DragonBreath => Rarity::Uncommon, - Item::DragonEgg => Rarity::Epic, - Item::DragonHead => Rarity::Epic, - Item::DuneArmorTrimSmithingTemplate => Rarity::Uncommon, - Item::EchoShard => Rarity::Uncommon, - Item::Elytra => Rarity::Epic, - Item::EnchantedBook => Rarity::Rare, - Item::EnchantedGoldenApple => Rarity::Rare, - Item::ExperienceBottle => Rarity::Uncommon, - Item::ExplorerPotterySherd => Rarity::Uncommon, - Item::EyeArmorTrimSmithingTemplate => Rarity::Rare, - Item::FlowArmorTrimSmithingTemplate => Rarity::Uncommon, - Item::FlowBannerPattern => Rarity::Rare, - Item::FlowPotterySherd => Rarity::Uncommon, - Item::FriendPotterySherd => Rarity::Uncommon, - Item::GoatHorn => Rarity::Uncommon, - Item::GusterBannerPattern => Rarity::Rare, - Item::GusterPotterySherd => Rarity::Uncommon, - Item::HeartOfTheSea => Rarity::Uncommon, - Item::HeartPotterySherd => Rarity::Uncommon, - Item::HeartbreakPotterySherd => Rarity::Uncommon, - Item::HeavyCore => Rarity::Epic, - Item::HostArmorTrimSmithingTemplate => Rarity::Uncommon, - Item::HowlPotterySherd => Rarity::Uncommon, - Item::Jigsaw => Rarity::Epic, - Item::KnowledgeBook => Rarity::Epic, - Item::Light => Rarity::Epic, - Item::Mace => Rarity::Epic, - Item::MinerPotterySherd => Rarity::Uncommon, - Item::MojangBannerPattern => Rarity::Rare, - Item::MournerPotterySherd => Rarity::Uncommon, - Item::MusicDisc11 => Rarity::Uncommon, - Item::MusicDisc13 => Rarity::Uncommon, - Item::MusicDisc5 => Rarity::Uncommon, - Item::MusicDiscBlocks => Rarity::Uncommon, - Item::MusicDiscCat => Rarity::Uncommon, - Item::MusicDiscChirp => Rarity::Uncommon, - Item::MusicDiscCreator => Rarity::Rare, - Item::MusicDiscCreatorMusicBox => Rarity::Uncommon, - Item::MusicDiscFar => Rarity::Uncommon, - Item::MusicDiscLavaChicken => Rarity::Rare, - Item::MusicDiscMall => Rarity::Uncommon, - Item::MusicDiscMellohi => Rarity::Uncommon, - Item::MusicDiscOtherside => Rarity::Rare, - Item::MusicDiscPigstep => Rarity::Rare, - Item::MusicDiscPrecipice => Rarity::Uncommon, - Item::MusicDiscRelic => Rarity::Uncommon, - Item::MusicDiscStal => Rarity::Uncommon, - Item::MusicDiscStrad => Rarity::Uncommon, - Item::MusicDiscTears => Rarity::Uncommon, - Item::MusicDiscWait => Rarity::Uncommon, - Item::MusicDiscWard => Rarity::Uncommon, - Item::NautilusShell => Rarity::Uncommon, - Item::NetherStar => Rarity::Rare, - Item::NetheriteUpgradeSmithingTemplate => Rarity::Uncommon, - Item::OminousBottle => Rarity::Uncommon, - Item::PiglinBannerPattern => Rarity::Uncommon, - Item::PiglinHead => Rarity::Uncommon, - Item::PlayerHead => Rarity::Uncommon, - Item::PlentyPotterySherd => Rarity::Uncommon, - Item::PrizePotterySherd => Rarity::Uncommon, - Item::RaiserArmorTrimSmithingTemplate => Rarity::Uncommon, - Item::RecoveryCompass => Rarity::Uncommon, - Item::RepeatingCommandBlock => Rarity::Epic, - Item::RibArmorTrimSmithingTemplate => Rarity::Uncommon, - Item::ScrapePotterySherd => Rarity::Uncommon, - Item::SentryArmorTrimSmithingTemplate => Rarity::Uncommon, - Item::ShaperArmorTrimSmithingTemplate => Rarity::Uncommon, - Item::SheafPotterySherd => Rarity::Uncommon, - Item::ShelterPotterySherd => Rarity::Uncommon, - Item::SilenceArmorTrimSmithingTemplate => Rarity::Epic, - Item::SkeletonSkull => Rarity::Uncommon, - Item::SkullBannerPattern => Rarity::Rare, - Item::SkullPotterySherd => Rarity::Uncommon, - Item::SnifferEgg => Rarity::Uncommon, - Item::SnortPotterySherd => Rarity::Uncommon, - Item::SnoutArmorTrimSmithingTemplate => Rarity::Uncommon, - Item::SpireArmorTrimSmithingTemplate => Rarity::Rare, - Item::StructureBlock => Rarity::Epic, - Item::StructureVoid => Rarity::Epic, - Item::TestBlock => Rarity::Epic, - Item::TestInstanceBlock => Rarity::Epic, - Item::TideArmorTrimSmithingTemplate => Rarity::Uncommon, - Item::TotemOfUndying => Rarity::Uncommon, - Item::Trident => Rarity::Rare, - Item::VexArmorTrimSmithingTemplate => Rarity::Rare, - Item::WardArmorTrimSmithingTemplate => Rarity::Rare, - Item::WayfinderArmorTrimSmithingTemplate => Rarity::Uncommon, - Item::WildArmorTrimSmithingTemplate => Rarity::Uncommon, - Item::WitherSkeletonSkull => Rarity::Rare, - Item::ZombieHead => Rarity::Uncommon, + ItemKind::AnglerPotterySherd => Rarity::Uncommon, + ItemKind::ArcherPotterySherd => Rarity::Uncommon, + ItemKind::ArmsUpPotterySherd => Rarity::Uncommon, + ItemKind::Barrier => Rarity::Epic, + ItemKind::Beacon => Rarity::Rare, + ItemKind::BladePotterySherd => Rarity::Uncommon, + ItemKind::BoltArmorTrimSmithingTemplate => Rarity::Uncommon, + ItemKind::BrewerPotterySherd => Rarity::Uncommon, + ItemKind::BurnPotterySherd => Rarity::Uncommon, + ItemKind::ChainCommandBlock => Rarity::Epic, + ItemKind::ChainmailBoots => Rarity::Uncommon, + ItemKind::ChainmailChestplate => Rarity::Uncommon, + ItemKind::ChainmailHelmet => Rarity::Uncommon, + ItemKind::ChainmailLeggings => Rarity::Uncommon, + ItemKind::CoastArmorTrimSmithingTemplate => Rarity::Uncommon, + ItemKind::CommandBlock => Rarity::Epic, + ItemKind::CommandBlockMinecart => Rarity::Epic, + ItemKind::Conduit => Rarity::Uncommon, + ItemKind::CreeperBannerPattern => Rarity::Uncommon, + ItemKind::CreeperHead => Rarity::Uncommon, + ItemKind::DangerPotterySherd => Rarity::Uncommon, + ItemKind::DebugStick => Rarity::Epic, + ItemKind::DiscFragment5 => Rarity::Uncommon, + ItemKind::DragonBreath => Rarity::Uncommon, + ItemKind::DragonEgg => Rarity::Epic, + ItemKind::DragonHead => Rarity::Epic, + ItemKind::DuneArmorTrimSmithingTemplate => Rarity::Uncommon, + ItemKind::EchoShard => Rarity::Uncommon, + ItemKind::Elytra => Rarity::Epic, + ItemKind::EnchantedBook => Rarity::Rare, + ItemKind::EnchantedGoldenApple => Rarity::Rare, + ItemKind::ExperienceBottle => Rarity::Uncommon, + ItemKind::ExplorerPotterySherd => Rarity::Uncommon, + ItemKind::EyeArmorTrimSmithingTemplate => Rarity::Rare, + ItemKind::FlowArmorTrimSmithingTemplate => Rarity::Uncommon, + ItemKind::FlowBannerPattern => Rarity::Rare, + ItemKind::FlowPotterySherd => Rarity::Uncommon, + ItemKind::FriendPotterySherd => Rarity::Uncommon, + ItemKind::GoatHorn => Rarity::Uncommon, + ItemKind::GusterBannerPattern => Rarity::Rare, + ItemKind::GusterPotterySherd => Rarity::Uncommon, + ItemKind::HeartOfTheSea => Rarity::Uncommon, + ItemKind::HeartPotterySherd => Rarity::Uncommon, + ItemKind::HeartbreakPotterySherd => Rarity::Uncommon, + ItemKind::HeavyCore => Rarity::Epic, + ItemKind::HostArmorTrimSmithingTemplate => Rarity::Uncommon, + ItemKind::HowlPotterySherd => Rarity::Uncommon, + ItemKind::Jigsaw => Rarity::Epic, + ItemKind::KnowledgeBook => Rarity::Epic, + ItemKind::Light => Rarity::Epic, + ItemKind::Mace => Rarity::Epic, + ItemKind::MinerPotterySherd => Rarity::Uncommon, + ItemKind::MojangBannerPattern => Rarity::Rare, + ItemKind::MournerPotterySherd => Rarity::Uncommon, + ItemKind::MusicDisc11 => Rarity::Uncommon, + ItemKind::MusicDisc13 => Rarity::Uncommon, + ItemKind::MusicDisc5 => Rarity::Uncommon, + ItemKind::MusicDiscBlocks => Rarity::Uncommon, + ItemKind::MusicDiscCat => Rarity::Uncommon, + ItemKind::MusicDiscChirp => Rarity::Uncommon, + ItemKind::MusicDiscCreator => Rarity::Rare, + ItemKind::MusicDiscCreatorMusicBox => Rarity::Uncommon, + ItemKind::MusicDiscFar => Rarity::Uncommon, + ItemKind::MusicDiscLavaChicken => Rarity::Rare, + ItemKind::MusicDiscMall => Rarity::Uncommon, + ItemKind::MusicDiscMellohi => Rarity::Uncommon, + ItemKind::MusicDiscOtherside => Rarity::Rare, + ItemKind::MusicDiscPigstep => Rarity::Rare, + ItemKind::MusicDiscPrecipice => Rarity::Uncommon, + ItemKind::MusicDiscRelic => Rarity::Uncommon, + ItemKind::MusicDiscStal => Rarity::Uncommon, + ItemKind::MusicDiscStrad => Rarity::Uncommon, + ItemKind::MusicDiscTears => Rarity::Uncommon, + ItemKind::MusicDiscWait => Rarity::Uncommon, + ItemKind::MusicDiscWard => Rarity::Uncommon, + ItemKind::NautilusShell => Rarity::Uncommon, + ItemKind::NetherStar => Rarity::Rare, + ItemKind::NetheriteUpgradeSmithingTemplate => Rarity::Uncommon, + ItemKind::OminousBottle => Rarity::Uncommon, + ItemKind::PiglinBannerPattern => Rarity::Uncommon, + ItemKind::PiglinHead => Rarity::Uncommon, + ItemKind::PlayerHead => Rarity::Uncommon, + ItemKind::PlentyPotterySherd => Rarity::Uncommon, + ItemKind::PrizePotterySherd => Rarity::Uncommon, + ItemKind::RaiserArmorTrimSmithingTemplate => Rarity::Uncommon, + ItemKind::RecoveryCompass => Rarity::Uncommon, + ItemKind::RepeatingCommandBlock => Rarity::Epic, + ItemKind::RibArmorTrimSmithingTemplate => Rarity::Uncommon, + ItemKind::ScrapePotterySherd => Rarity::Uncommon, + ItemKind::SentryArmorTrimSmithingTemplate => Rarity::Uncommon, + ItemKind::ShaperArmorTrimSmithingTemplate => Rarity::Uncommon, + ItemKind::SheafPotterySherd => Rarity::Uncommon, + ItemKind::ShelterPotterySherd => Rarity::Uncommon, + ItemKind::SilenceArmorTrimSmithingTemplate => Rarity::Epic, + ItemKind::SkeletonSkull => Rarity::Uncommon, + ItemKind::SkullBannerPattern => Rarity::Rare, + ItemKind::SkullPotterySherd => Rarity::Uncommon, + ItemKind::SnifferEgg => Rarity::Uncommon, + ItemKind::SnortPotterySherd => Rarity::Uncommon, + ItemKind::SnoutArmorTrimSmithingTemplate => Rarity::Uncommon, + ItemKind::SpireArmorTrimSmithingTemplate => Rarity::Rare, + ItemKind::StructureBlock => Rarity::Epic, + ItemKind::StructureVoid => Rarity::Epic, + ItemKind::TestBlock => Rarity::Epic, + ItemKind::TestInstanceBlock => Rarity::Epic, + ItemKind::TideArmorTrimSmithingTemplate => Rarity::Uncommon, + ItemKind::TotemOfUndying => Rarity::Uncommon, + ItemKind::Trident => Rarity::Rare, + ItemKind::VexArmorTrimSmithingTemplate => Rarity::Rare, + ItemKind::WardArmorTrimSmithingTemplate => Rarity::Rare, + ItemKind::WayfinderArmorTrimSmithingTemplate => Rarity::Uncommon, + ItemKind::WildArmorTrimSmithingTemplate => Rarity::Uncommon, + ItemKind::WitherSkeletonSkull => Rarity::Rare, + ItemKind::ZombieHead => Rarity::Uncommon, _ => Rarity::Common, }; Some(value) } } impl DefaultableComponent for RepairCost { - fn default_for_item(_item: Item) -> Option<Self> { + fn default_for_item(_item: ItemKind) -> Option<Self> { Some(RepairCost { cost: 0 }) } } impl DefaultableComponent for SwingAnimation { - fn default_for_item(item: Item) -> Option<Self> { + fn default_for_item(item: ItemKind) -> Option<Self> { let value = match item { - Item::CopperSpear => SwingAnimation { + ItemKind::CopperSpear => SwingAnimation { kind: SwingAnimationKind::Stab, duration: 17, }, - Item::DiamondSpear => SwingAnimation { + ItemKind::DiamondSpear => SwingAnimation { kind: SwingAnimationKind::Stab, duration: 21, }, - Item::GoldenSpear => SwingAnimation { + ItemKind::GoldenSpear => SwingAnimation { kind: SwingAnimationKind::Stab, duration: 19, }, - Item::IronSpear => SwingAnimation { + ItemKind::IronSpear => SwingAnimation { kind: SwingAnimationKind::Stab, duration: 19, }, - Item::NetheriteSpear => SwingAnimation { + ItemKind::NetheriteSpear => SwingAnimation { kind: SwingAnimationKind::Stab, duration: 23, }, - Item::StoneSpear => SwingAnimation { + ItemKind::StoneSpear => SwingAnimation { kind: SwingAnimationKind::Stab, duration: 15, }, - Item::WoodenSpear => SwingAnimation { + ItemKind::WoodenSpear => SwingAnimation { kind: SwingAnimationKind::Stab, duration: 13, }, @@ -2249,44 +2253,44 @@ impl DefaultableComponent for SwingAnimation { } } impl DefaultableComponent for TooltipDisplay { - fn default_for_item(_item: Item) -> Option<Self> { + fn default_for_item(_item: ItemKind) -> Option<Self> { Some(TooltipDisplay::new()) } } impl DefaultableComponent for UseEffects { - fn default_for_item(item: Item) -> Option<Self> { + fn default_for_item(item: ItemKind) -> Option<Self> { let value = match item { - Item::CopperSpear => UseEffects { + ItemKind::CopperSpear => UseEffects { can_sprint: true, interact_vibrations: false, speed_multiplier: 1.0, }, - Item::DiamondSpear => UseEffects { + ItemKind::DiamondSpear => UseEffects { can_sprint: true, interact_vibrations: false, speed_multiplier: 1.0, }, - Item::GoldenSpear => UseEffects { + ItemKind::GoldenSpear => UseEffects { can_sprint: true, interact_vibrations: false, speed_multiplier: 1.0, }, - Item::IronSpear => UseEffects { + ItemKind::IronSpear => UseEffects { can_sprint: true, interact_vibrations: false, speed_multiplier: 1.0, }, - Item::NetheriteSpear => UseEffects { + ItemKind::NetheriteSpear => UseEffects { can_sprint: true, interact_vibrations: false, speed_multiplier: 1.0, }, - Item::StoneSpear => UseEffects { + ItemKind::StoneSpear => UseEffects { can_sprint: true, interact_vibrations: false, speed_multiplier: 1.0, }, - Item::WoodenSpear => UseEffects { + ItemKind::WoodenSpear => UseEffects { can_sprint: true, interact_vibrations: false, speed_multiplier: 1.0, @@ -2297,147 +2301,147 @@ impl DefaultableComponent for UseEffects { } } impl DefaultableComponent for Container { - fn default_for_item(item: Item) -> Option<Self> { + fn default_for_item(item: ItemKind) -> Option<Self> { let value = match item { - Item::AcaciaShelf => vec![], - Item::BambooShelf => vec![], - Item::Barrel => vec![], - Item::BirchShelf => vec![], - Item::BlackShulkerBox => vec![], - Item::BlastFurnace => vec![], - Item::BlueShulkerBox => vec![], - Item::BrewingStand => vec![], - Item::BrownShulkerBox => vec![], - Item::Campfire => vec![], - Item::CherryShelf => vec![], - Item::Chest => vec![], - Item::ChiseledBookshelf => vec![], - Item::Crafter => vec![], - Item::CrimsonShelf => vec![], - Item::CyanShulkerBox => vec![], - Item::DarkOakShelf => vec![], - Item::DecoratedPot => vec![], - Item::Dispenser => vec![], - Item::Dropper => vec![], - Item::Furnace => vec![], - Item::GrayShulkerBox => vec![], - Item::GreenShulkerBox => vec![], - Item::Hopper => vec![], - Item::JungleShelf => vec![], - Item::LightBlueShulkerBox => vec![], - Item::LightGrayShulkerBox => vec![], - Item::LimeShulkerBox => vec![], - Item::MagentaShulkerBox => vec![], - Item::MangroveShelf => vec![], - Item::OakShelf => vec![], - Item::OrangeShulkerBox => vec![], - Item::PaleOakShelf => vec![], - Item::PinkShulkerBox => vec![], - Item::PurpleShulkerBox => vec![], - Item::RedShulkerBox => vec![], - Item::ShulkerBox => vec![], - Item::Smoker => vec![], - Item::SoulCampfire => vec![], - Item::SpruceShelf => vec![], - Item::TrappedChest => vec![], - Item::WarpedShelf => vec![], - Item::WhiteShulkerBox => vec![], - Item::YellowShulkerBox => vec![], + ItemKind::AcaciaShelf => vec![], + ItemKind::BambooShelf => vec![], + ItemKind::Barrel => vec![], + ItemKind::BirchShelf => vec![], + ItemKind::BlackShulkerBox => vec![], + ItemKind::BlastFurnace => vec![], + ItemKind::BlueShulkerBox => vec![], + ItemKind::BrewingStand => vec![], + ItemKind::BrownShulkerBox => vec![], + ItemKind::Campfire => vec![], + ItemKind::CherryShelf => vec![], + ItemKind::Chest => vec![], + ItemKind::ChiseledBookshelf => vec![], + ItemKind::Crafter => vec![], + ItemKind::CrimsonShelf => vec![], + ItemKind::CyanShulkerBox => vec![], + ItemKind::DarkOakShelf => vec![], + ItemKind::DecoratedPot => vec![], + ItemKind::Dispenser => vec![], + ItemKind::Dropper => vec![], + ItemKind::Furnace => vec![], + ItemKind::GrayShulkerBox => vec![], + ItemKind::GreenShulkerBox => vec![], + ItemKind::Hopper => vec![], + ItemKind::JungleShelf => vec![], + ItemKind::LightBlueShulkerBox => vec![], + ItemKind::LightGrayShulkerBox => vec![], + ItemKind::LimeShulkerBox => vec![], + ItemKind::MagentaShulkerBox => vec![], + ItemKind::MangroveShelf => vec![], + ItemKind::OakShelf => vec![], + ItemKind::OrangeShulkerBox => vec![], + ItemKind::PaleOakShelf => vec![], + ItemKind::PinkShulkerBox => vec![], + ItemKind::PurpleShulkerBox => vec![], + ItemKind::RedShulkerBox => vec![], + ItemKind::ShulkerBox => vec![], + ItemKind::Smoker => vec![], + ItemKind::SoulCampfire => vec![], + ItemKind::SpruceShelf => vec![], + ItemKind::TrappedChest => vec![], + ItemKind::WarpedShelf => vec![], + ItemKind::WhiteShulkerBox => vec![], + ItemKind::YellowShulkerBox => vec![], _ => return None, }; Some(Container { items: value }) } } impl DefaultableComponent for EntityData { - fn default_for_item(item: Item) -> Option<Self> { + fn default_for_item(item: ItemKind) -> Option<Self> { let value = match item { - Item::AllaySpawnEgg => EntityKind::Allay, - Item::ArmadilloSpawnEgg => EntityKind::Armadillo, - Item::AxolotlSpawnEgg => EntityKind::Axolotl, - Item::BatSpawnEgg => EntityKind::Bat, - Item::BeeSpawnEgg => EntityKind::Bee, - 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, - Item::ChickenSpawnEgg => EntityKind::Chicken, - Item::CodSpawnEgg => EntityKind::Cod, - Item::CopperGolemSpawnEgg => EntityKind::CopperGolem, - Item::CowSpawnEgg => EntityKind::Cow, - Item::CreakingSpawnEgg => EntityKind::Creaking, - Item::CreeperSpawnEgg => EntityKind::Creeper, - Item::DolphinSpawnEgg => EntityKind::Dolphin, - Item::DonkeySpawnEgg => EntityKind::Donkey, - Item::DrownedSpawnEgg => EntityKind::Drowned, - Item::ElderGuardianSpawnEgg => EntityKind::ElderGuardian, - Item::EnderDragonSpawnEgg => EntityKind::EnderDragon, - Item::EndermanSpawnEgg => EntityKind::Enderman, - Item::EndermiteSpawnEgg => EntityKind::Endermite, - Item::EvokerSpawnEgg => EntityKind::Evoker, - Item::FoxSpawnEgg => EntityKind::Fox, - Item::FrogSpawnEgg => EntityKind::Frog, - Item::GhastSpawnEgg => EntityKind::Ghast, - Item::GlowSquidSpawnEgg => EntityKind::GlowSquid, - Item::GoatSpawnEgg => EntityKind::Goat, - Item::GuardianSpawnEgg => EntityKind::Guardian, - Item::HappyGhastSpawnEgg => EntityKind::HappyGhast, - Item::HoglinSpawnEgg => EntityKind::Hoglin, - Item::HorseSpawnEgg => EntityKind::Horse, - Item::HuskSpawnEgg => EntityKind::Husk, - Item::IronGolemSpawnEgg => EntityKind::IronGolem, - Item::LlamaSpawnEgg => EntityKind::Llama, - 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, - Item::PiglinBruteSpawnEgg => EntityKind::PiglinBrute, - Item::PiglinSpawnEgg => EntityKind::Piglin, - Item::PillagerSpawnEgg => EntityKind::Pillager, - Item::PolarBearSpawnEgg => EntityKind::PolarBear, - Item::PufferfishSpawnEgg => EntityKind::Pufferfish, - Item::RabbitSpawnEgg => EntityKind::Rabbit, - Item::RavagerSpawnEgg => EntityKind::Ravager, - Item::SalmonSpawnEgg => EntityKind::Salmon, - Item::SheepSpawnEgg => EntityKind::Sheep, - Item::ShulkerSpawnEgg => EntityKind::Shulker, - Item::SilverfishSpawnEgg => EntityKind::Silverfish, - Item::SkeletonHorseSpawnEgg => EntityKind::SkeletonHorse, - Item::SkeletonSpawnEgg => EntityKind::Skeleton, - Item::SlimeSpawnEgg => EntityKind::Slime, - Item::SnifferSpawnEgg => EntityKind::Sniffer, - Item::SnowGolemSpawnEgg => EntityKind::SnowGolem, - Item::SpiderSpawnEgg => EntityKind::Spider, - Item::SquidSpawnEgg => EntityKind::Squid, - Item::StraySpawnEgg => EntityKind::Stray, - Item::StriderSpawnEgg => EntityKind::Strider, - Item::TadpoleSpawnEgg => EntityKind::Tadpole, - Item::TraderLlamaSpawnEgg => EntityKind::TraderLlama, - Item::TropicalFishSpawnEgg => EntityKind::TropicalFish, - Item::TurtleSpawnEgg => EntityKind::Turtle, - Item::VexSpawnEgg => EntityKind::Vex, - Item::VillagerSpawnEgg => EntityKind::Villager, - Item::VindicatorSpawnEgg => EntityKind::Vindicator, - Item::WanderingTraderSpawnEgg => EntityKind::WanderingTrader, - Item::WardenSpawnEgg => EntityKind::Warden, - Item::WitchSpawnEgg => EntityKind::Witch, - Item::WitherSkeletonSpawnEgg => EntityKind::WitherSkeleton, - Item::WitherSpawnEgg => EntityKind::Wither, - 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, + ItemKind::AllaySpawnEgg => EntityKind::Allay, + ItemKind::ArmadilloSpawnEgg => EntityKind::Armadillo, + ItemKind::AxolotlSpawnEgg => EntityKind::Axolotl, + ItemKind::BatSpawnEgg => EntityKind::Bat, + ItemKind::BeeSpawnEgg => EntityKind::Bee, + ItemKind::BlazeSpawnEgg => EntityKind::Blaze, + ItemKind::BoggedSpawnEgg => EntityKind::Bogged, + ItemKind::BreezeSpawnEgg => EntityKind::Breeze, + ItemKind::CamelHuskSpawnEgg => EntityKind::CamelHusk, + ItemKind::CamelSpawnEgg => EntityKind::Camel, + ItemKind::CatSpawnEgg => EntityKind::Cat, + ItemKind::CaveSpiderSpawnEgg => EntityKind::CaveSpider, + ItemKind::ChickenSpawnEgg => EntityKind::Chicken, + ItemKind::CodSpawnEgg => EntityKind::Cod, + ItemKind::CopperGolemSpawnEgg => EntityKind::CopperGolem, + ItemKind::CowSpawnEgg => EntityKind::Cow, + ItemKind::CreakingSpawnEgg => EntityKind::Creaking, + ItemKind::CreeperSpawnEgg => EntityKind::Creeper, + ItemKind::DolphinSpawnEgg => EntityKind::Dolphin, + ItemKind::DonkeySpawnEgg => EntityKind::Donkey, + ItemKind::DrownedSpawnEgg => EntityKind::Drowned, + ItemKind::ElderGuardianSpawnEgg => EntityKind::ElderGuardian, + ItemKind::EnderDragonSpawnEgg => EntityKind::EnderDragon, + ItemKind::EndermanSpawnEgg => EntityKind::Enderman, + ItemKind::EndermiteSpawnEgg => EntityKind::Endermite, + ItemKind::EvokerSpawnEgg => EntityKind::Evoker, + ItemKind::FoxSpawnEgg => EntityKind::Fox, + ItemKind::FrogSpawnEgg => EntityKind::Frog, + ItemKind::GhastSpawnEgg => EntityKind::Ghast, + ItemKind::GlowSquidSpawnEgg => EntityKind::GlowSquid, + ItemKind::GoatSpawnEgg => EntityKind::Goat, + ItemKind::GuardianSpawnEgg => EntityKind::Guardian, + ItemKind::HappyGhastSpawnEgg => EntityKind::HappyGhast, + ItemKind::HoglinSpawnEgg => EntityKind::Hoglin, + ItemKind::HorseSpawnEgg => EntityKind::Horse, + ItemKind::HuskSpawnEgg => EntityKind::Husk, + ItemKind::IronGolemSpawnEgg => EntityKind::IronGolem, + ItemKind::LlamaSpawnEgg => EntityKind::Llama, + ItemKind::MagmaCubeSpawnEgg => EntityKind::MagmaCube, + ItemKind::MooshroomSpawnEgg => EntityKind::Mooshroom, + ItemKind::MuleSpawnEgg => EntityKind::Mule, + ItemKind::NautilusSpawnEgg => EntityKind::Nautilus, + ItemKind::OcelotSpawnEgg => EntityKind::Ocelot, + ItemKind::PandaSpawnEgg => EntityKind::Panda, + ItemKind::ParchedSpawnEgg => EntityKind::Parched, + ItemKind::ParrotSpawnEgg => EntityKind::Parrot, + ItemKind::PhantomSpawnEgg => EntityKind::Phantom, + ItemKind::PigSpawnEgg => EntityKind::Pig, + ItemKind::PiglinBruteSpawnEgg => EntityKind::PiglinBrute, + ItemKind::PiglinSpawnEgg => EntityKind::Piglin, + ItemKind::PillagerSpawnEgg => EntityKind::Pillager, + ItemKind::PolarBearSpawnEgg => EntityKind::PolarBear, + ItemKind::PufferfishSpawnEgg => EntityKind::Pufferfish, + ItemKind::RabbitSpawnEgg => EntityKind::Rabbit, + ItemKind::RavagerSpawnEgg => EntityKind::Ravager, + ItemKind::SalmonSpawnEgg => EntityKind::Salmon, + ItemKind::SheepSpawnEgg => EntityKind::Sheep, + ItemKind::ShulkerSpawnEgg => EntityKind::Shulker, + ItemKind::SilverfishSpawnEgg => EntityKind::Silverfish, + ItemKind::SkeletonHorseSpawnEgg => EntityKind::SkeletonHorse, + ItemKind::SkeletonSpawnEgg => EntityKind::Skeleton, + ItemKind::SlimeSpawnEgg => EntityKind::Slime, + ItemKind::SnifferSpawnEgg => EntityKind::Sniffer, + ItemKind::SnowGolemSpawnEgg => EntityKind::SnowGolem, + ItemKind::SpiderSpawnEgg => EntityKind::Spider, + ItemKind::SquidSpawnEgg => EntityKind::Squid, + ItemKind::StraySpawnEgg => EntityKind::Stray, + ItemKind::StriderSpawnEgg => EntityKind::Strider, + ItemKind::TadpoleSpawnEgg => EntityKind::Tadpole, + ItemKind::TraderLlamaSpawnEgg => EntityKind::TraderLlama, + ItemKind::TropicalFishSpawnEgg => EntityKind::TropicalFish, + ItemKind::TurtleSpawnEgg => EntityKind::Turtle, + ItemKind::VexSpawnEgg => EntityKind::Vex, + ItemKind::VillagerSpawnEgg => EntityKind::Villager, + ItemKind::VindicatorSpawnEgg => EntityKind::Vindicator, + ItemKind::WanderingTraderSpawnEgg => EntityKind::WanderingTrader, + ItemKind::WardenSpawnEgg => EntityKind::Warden, + ItemKind::WitchSpawnEgg => EntityKind::Witch, + ItemKind::WitherSkeletonSpawnEgg => EntityKind::WitherSkeleton, + ItemKind::WitherSpawnEgg => EntityKind::Wither, + ItemKind::WolfSpawnEgg => EntityKind::Wolf, + ItemKind::ZoglinSpawnEgg => EntityKind::Zoglin, + ItemKind::ZombieHorseSpawnEgg => EntityKind::ZombieHorse, + ItemKind::ZombieNautilusSpawnEgg => EntityKind::ZombieNautilus, + ItemKind::ZombieSpawnEgg => EntityKind::Zombie, + ItemKind::ZombieVillagerSpawnEgg => EntityKind::ZombieVillager, + ItemKind::ZombifiedPiglinSpawnEgg => EntityKind::ZombifiedPiglin, _ => return None, }; Some(EntityData { @@ -2447,60 +2451,64 @@ impl DefaultableComponent for EntityData { } } impl DefaultableComponent for ProvidesTrimMaterial { - fn default_for_item(item: Item) -> Option<Self> { + fn default_for_item(item: ItemKind) -> Option<Self> { let value = match item { - Item::AmethystShard => ProvidesTrimMaterial::Referenced("minecraft:amethyst".into()), - Item::CopperIngot => ProvidesTrimMaterial::Referenced("minecraft:copper".into()), - Item::Diamond => ProvidesTrimMaterial::Referenced("minecraft:diamond".into()), - Item::Emerald => ProvidesTrimMaterial::Referenced("minecraft:emerald".into()), - Item::GoldIngot => ProvidesTrimMaterial::Referenced("minecraft:gold".into()), - Item::IronIngot => ProvidesTrimMaterial::Referenced("minecraft:iron".into()), - Item::LapisLazuli => ProvidesTrimMaterial::Referenced("minecraft:lapis".into()), - Item::NetheriteIngot => ProvidesTrimMaterial::Referenced("minecraft:netherite".into()), - Item::Quartz => ProvidesTrimMaterial::Referenced("minecraft:quartz".into()), - Item::Redstone => ProvidesTrimMaterial::Referenced("minecraft:redstone".into()), - Item::ResinBrick => ProvidesTrimMaterial::Referenced("minecraft:resin".into()), + ItemKind::AmethystShard => { + ProvidesTrimMaterial::Referenced("minecraft:amethyst".into()) + } + ItemKind::CopperIngot => ProvidesTrimMaterial::Referenced("minecraft:copper".into()), + ItemKind::Diamond => ProvidesTrimMaterial::Referenced("minecraft:diamond".into()), + ItemKind::Emerald => ProvidesTrimMaterial::Referenced("minecraft:emerald".into()), + ItemKind::GoldIngot => ProvidesTrimMaterial::Referenced("minecraft:gold".into()), + ItemKind::IronIngot => ProvidesTrimMaterial::Referenced("minecraft:iron".into()), + ItemKind::LapisLazuli => ProvidesTrimMaterial::Referenced("minecraft:lapis".into()), + ItemKind::NetheriteIngot => { + ProvidesTrimMaterial::Referenced("minecraft:netherite".into()) + } + ItemKind::Quartz => ProvidesTrimMaterial::Referenced("minecraft:quartz".into()), + ItemKind::Redstone => ProvidesTrimMaterial::Referenced("minecraft:redstone".into()), + ItemKind::ResinBrick => ProvidesTrimMaterial::Referenced("minecraft:resin".into()), _ => return None, }; Some(value) } } impl DefaultableComponent for DamageResistant { - fn default_for_item(item: Item) -> Option<Self> { + fn default_for_item(item: ItemKind) -> Option<Self> { let value = match item { - Item::AncientDebris => "#minecraft:is_fire".into(), - Item::NetherStar => "#minecraft:is_explosion".into(), - Item::NetheriteAxe => "#minecraft:is_fire".into(), - Item::NetheriteBlock => "#minecraft:is_fire".into(), - Item::NetheriteBoots => "#minecraft:is_fire".into(), - 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(), - 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(), + ItemKind::AncientDebris => "#minecraft:is_fire".into(), + ItemKind::NetherStar => "#minecraft:is_explosion".into(), + ItemKind::NetheriteAxe => "#minecraft:is_fire".into(), + ItemKind::NetheriteBlock => "#minecraft:is_fire".into(), + ItemKind::NetheriteBoots => "#minecraft:is_fire".into(), + ItemKind::NetheriteChestplate => "#minecraft:is_fire".into(), + ItemKind::NetheriteHelmet => "#minecraft:is_fire".into(), + ItemKind::NetheriteHoe => "#minecraft:is_fire".into(), + ItemKind::NetheriteHorseArmor => "#minecraft:is_fire".into(), + ItemKind::NetheriteIngot => "#minecraft:is_fire".into(), + ItemKind::NetheriteLeggings => "#minecraft:is_fire".into(), + ItemKind::NetheriteNautilusArmor => "#minecraft:is_fire".into(), + ItemKind::NetheritePickaxe => "#minecraft:is_fire".into(), + ItemKind::NetheriteScrap => "#minecraft:is_fire".into(), + ItemKind::NetheriteShovel => "#minecraft:is_fire".into(), + ItemKind::NetheriteSpear => "#minecraft:is_fire".into(), + ItemKind::NetheriteSword => "#minecraft:is_fire".into(), _ => return None, }; Some(DamageResistant { types: value }) } } impl DefaultableComponent for Consumable { - fn default_for_item(item: Item) -> Option<Self> { + fn default_for_item(item: ItemKind) -> Option<Self> { let value = match item { - Item::Apple => Consumable::new(), - Item::BakedPotato => Consumable::new(), - Item::Beef => Consumable::new(), - Item::Beetroot => Consumable::new(), - Item::BeetrootSoup => Consumable::new(), - Item::Bread => Consumable::new(), - Item::Carrot => Consumable::new(), - Item::Chicken => Consumable { + ItemKind::Apple => Consumable::new(), + ItemKind::BakedPotato => Consumable::new(), + ItemKind::Beef => Consumable::new(), + ItemKind::Beetroot => Consumable::new(), + ItemKind::BeetrootSoup => Consumable::new(), + ItemKind::Bread => Consumable::new(), + ItemKind::Carrot => Consumable::new(), + ItemKind::Chicken => Consumable { on_consume_effects: vec![ConsumeEffect::ApplyEffects { effects: vec![MobEffectInstance { id: MobEffect::Hunger, @@ -2514,24 +2522,24 @@ impl DefaultableComponent for Consumable { }], ..Consumable::new() }, - Item::ChorusFruit => Consumable { + ItemKind::ChorusFruit => Consumable { on_consume_effects: vec![ConsumeEffect::TeleportRandomly { diameter: 16.0 }], ..Consumable::new() }, - Item::Cod => Consumable::new(), - Item::CookedBeef => Consumable::new(), - Item::CookedChicken => Consumable::new(), - Item::CookedCod => Consumable::new(), - Item::CookedMutton => Consumable::new(), - Item::CookedPorkchop => Consumable::new(), - Item::CookedRabbit => Consumable::new(), - Item::CookedSalmon => Consumable::new(), - Item::Cookie => Consumable::new(), - Item::DriedKelp => Consumable { + ItemKind::Cod => Consumable::new(), + ItemKind::CookedBeef => Consumable::new(), + ItemKind::CookedChicken => Consumable::new(), + ItemKind::CookedCod => Consumable::new(), + ItemKind::CookedMutton => Consumable::new(), + ItemKind::CookedPorkchop => Consumable::new(), + ItemKind::CookedRabbit => Consumable::new(), + ItemKind::CookedSalmon => Consumable::new(), + ItemKind::Cookie => Consumable::new(), + ItemKind::DriedKelp => Consumable { consume_seconds: 0.8, ..Consumable::new() }, - Item::EnchantedGoldenApple => Consumable { + ItemKind::EnchantedGoldenApple => Consumable { on_consume_effects: vec![ConsumeEffect::ApplyEffects { effects: vec![ MobEffectInstance { @@ -2573,8 +2581,8 @@ impl DefaultableComponent for Consumable { }], ..Consumable::new() }, - Item::GlowBerries => Consumable::new(), - Item::GoldenApple => Consumable { + ItemKind::GlowBerries => Consumable::new(), + ItemKind::GoldenApple => Consumable { on_consume_effects: vec![ConsumeEffect::ApplyEffects { effects: vec![ MobEffectInstance { @@ -2599,8 +2607,8 @@ impl DefaultableComponent for Consumable { }], ..Consumable::new() }, - Item::GoldenCarrot => Consumable::new(), - Item::HoneyBottle => Consumable { + ItemKind::GoldenCarrot => Consumable::new(), + ItemKind::HoneyBottle => Consumable { animation: ItemUseAnimation::Drink, consume_seconds: 2.0, has_consume_particles: false, @@ -2611,17 +2619,17 @@ impl DefaultableComponent for Consumable { }], sound: azalea_registry::Holder::Reference(SoundEvent::ItemHoneyBottleDrink), }, - Item::MelonSlice => Consumable::new(), - Item::MilkBucket => Consumable { + ItemKind::MelonSlice => Consumable::new(), + ItemKind::MilkBucket => Consumable { animation: ItemUseAnimation::Drink, has_consume_particles: false, on_consume_effects: vec![ConsumeEffect::ClearAllEffects {}], sound: azalea_registry::Holder::Reference(SoundEvent::EntityGenericDrink), ..Consumable::new() }, - Item::MushroomStew => Consumable::new(), - Item::Mutton => Consumable::new(), - Item::OminousBottle => Consumable { + ItemKind::MushroomStew => Consumable::new(), + ItemKind::Mutton => Consumable::new(), + ItemKind::OminousBottle => Consumable { animation: ItemUseAnimation::Drink, has_consume_particles: false, on_consume_effects: vec![ConsumeEffect::PlaySound { @@ -2630,7 +2638,7 @@ impl DefaultableComponent for Consumable { sound: azalea_registry::Holder::Reference(SoundEvent::EntityGenericDrink), ..Consumable::new() }, - Item::PoisonousPotato => Consumable { + ItemKind::PoisonousPotato => Consumable { on_consume_effects: vec![ConsumeEffect::ApplyEffects { effects: vec![MobEffectInstance { id: MobEffect::Poison, @@ -2644,15 +2652,15 @@ impl DefaultableComponent for Consumable { }], ..Consumable::new() }, - Item::Porkchop => Consumable::new(), - Item::Potato => Consumable::new(), - Item::Potion => Consumable { + ItemKind::Porkchop => Consumable::new(), + ItemKind::Potato => Consumable::new(), + ItemKind::Potion => Consumable { animation: ItemUseAnimation::Drink, has_consume_particles: false, sound: azalea_registry::Holder::Reference(SoundEvent::EntityGenericDrink), ..Consumable::new() }, - Item::Pufferfish => Consumable { + ItemKind::Pufferfish => Consumable { on_consume_effects: vec![ConsumeEffect::ApplyEffects { effects: vec![ MobEffectInstance { @@ -2686,10 +2694,10 @@ impl DefaultableComponent for Consumable { }], ..Consumable::new() }, - Item::PumpkinPie => Consumable::new(), - Item::Rabbit => Consumable::new(), - Item::RabbitStew => Consumable::new(), - Item::RottenFlesh => Consumable { + ItemKind::PumpkinPie => Consumable::new(), + ItemKind::Rabbit => Consumable::new(), + ItemKind::RabbitStew => Consumable::new(), + ItemKind::RottenFlesh => Consumable { on_consume_effects: vec![ConsumeEffect::ApplyEffects { effects: vec![MobEffectInstance { id: MobEffect::Hunger, @@ -2703,8 +2711,8 @@ impl DefaultableComponent for Consumable { }], ..Consumable::new() }, - Item::Salmon => Consumable::new(), - Item::SpiderEye => Consumable { + ItemKind::Salmon => Consumable::new(), + ItemKind::SpiderEye => Consumable { on_consume_effects: vec![ConsumeEffect::ApplyEffects { effects: vec![MobEffectInstance { id: MobEffect::Poison, @@ -2718,233 +2726,233 @@ impl DefaultableComponent for Consumable { }], ..Consumable::new() }, - Item::SuspiciousStew => Consumable::new(), - Item::SweetBerries => Consumable::new(), - Item::TropicalFish => Consumable::new(), + ItemKind::SuspiciousStew => Consumable::new(), + ItemKind::SweetBerries => Consumable::new(), + ItemKind::TropicalFish => Consumable::new(), _ => return None, }; Some(value) } } impl DefaultableComponent for Food { - fn default_for_item(item: Item) -> Option<Self> { + fn default_for_item(item: ItemKind) -> Option<Self> { let value = match item { - Item::Apple => Food { + ItemKind::Apple => Food { nutrition: 4, saturation: 2.4, ..Food::new() }, - Item::BakedPotato => Food { + ItemKind::BakedPotato => Food { nutrition: 5, saturation: 6.0, ..Food::new() }, - Item::Beef => Food { + ItemKind::Beef => Food { nutrition: 3, saturation: 1.8000001, ..Food::new() }, - Item::Beetroot => Food { + ItemKind::Beetroot => Food { nutrition: 1, saturation: 1.2, ..Food::new() }, - Item::BeetrootSoup => Food { + ItemKind::BeetrootSoup => Food { nutrition: 6, saturation: 7.2000003, ..Food::new() }, - Item::Bread => Food { + ItemKind::Bread => Food { nutrition: 5, saturation: 6.0, ..Food::new() }, - Item::Carrot => Food { + ItemKind::Carrot => Food { nutrition: 3, saturation: 3.6000001, ..Food::new() }, - Item::Chicken => Food { + ItemKind::Chicken => Food { nutrition: 2, saturation: 1.2, ..Food::new() }, - Item::ChorusFruit => Food { + ItemKind::ChorusFruit => Food { can_always_eat: true, nutrition: 4, saturation: 2.4, }, - Item::Cod => Food { + ItemKind::Cod => Food { nutrition: 2, saturation: 0.4, ..Food::new() }, - Item::CodBucket => Food { + ItemKind::CodBucket => Food { nutrition: 2, saturation: 0.4, ..Food::new() }, - Item::CookedBeef => Food { + ItemKind::CookedBeef => Food { nutrition: 8, saturation: 12.8, ..Food::new() }, - Item::CookedChicken => Food { + ItemKind::CookedChicken => Food { nutrition: 6, saturation: 7.2000003, ..Food::new() }, - Item::CookedCod => Food { + ItemKind::CookedCod => Food { nutrition: 5, saturation: 6.0, ..Food::new() }, - Item::CookedMutton => Food { + ItemKind::CookedMutton => Food { nutrition: 6, saturation: 9.6, ..Food::new() }, - Item::CookedPorkchop => Food { + ItemKind::CookedPorkchop => Food { nutrition: 8, saturation: 12.8, ..Food::new() }, - Item::CookedRabbit => Food { + ItemKind::CookedRabbit => Food { nutrition: 5, saturation: 6.0, ..Food::new() }, - Item::CookedSalmon => Food { + ItemKind::CookedSalmon => Food { nutrition: 6, saturation: 9.6, ..Food::new() }, - Item::Cookie => Food { + ItemKind::Cookie => Food { nutrition: 2, saturation: 0.4, ..Food::new() }, - Item::DriedKelp => Food { + ItemKind::DriedKelp => Food { nutrition: 1, saturation: 0.6, ..Food::new() }, - Item::EnchantedGoldenApple => Food { + ItemKind::EnchantedGoldenApple => Food { can_always_eat: true, nutrition: 4, saturation: 9.6, }, - Item::GlowBerries => Food { + ItemKind::GlowBerries => Food { nutrition: 2, saturation: 0.4, ..Food::new() }, - Item::GoldenApple => Food { + ItemKind::GoldenApple => Food { can_always_eat: true, nutrition: 4, saturation: 9.6, }, - Item::GoldenCarrot => Food { + ItemKind::GoldenCarrot => Food { nutrition: 6, saturation: 14.400001, ..Food::new() }, - Item::HoneyBottle => Food { + ItemKind::HoneyBottle => Food { can_always_eat: true, nutrition: 6, saturation: 1.2, }, - Item::MelonSlice => Food { + ItemKind::MelonSlice => Food { nutrition: 2, saturation: 1.2, ..Food::new() }, - Item::MushroomStew => Food { + ItemKind::MushroomStew => Food { nutrition: 6, saturation: 7.2000003, ..Food::new() }, - Item::Mutton => Food { + ItemKind::Mutton => Food { nutrition: 2, saturation: 1.2, ..Food::new() }, - Item::PoisonousPotato => Food { + ItemKind::PoisonousPotato => Food { nutrition: 2, saturation: 1.2, ..Food::new() }, - Item::Porkchop => Food { + ItemKind::Porkchop => Food { nutrition: 3, saturation: 1.8000001, ..Food::new() }, - Item::Potato => Food { + ItemKind::Potato => Food { nutrition: 1, saturation: 0.6, ..Food::new() }, - Item::Pufferfish => Food { + ItemKind::Pufferfish => Food { nutrition: 1, saturation: 0.2, ..Food::new() }, - Item::PufferfishBucket => Food { + ItemKind::PufferfishBucket => Food { nutrition: 1, saturation: 0.2, ..Food::new() }, - Item::PumpkinPie => Food { + ItemKind::PumpkinPie => Food { nutrition: 8, saturation: 4.8, ..Food::new() }, - Item::Rabbit => Food { + ItemKind::Rabbit => Food { nutrition: 3, saturation: 1.8000001, ..Food::new() }, - Item::RabbitStew => Food { + ItemKind::RabbitStew => Food { nutrition: 10, saturation: 12.0, ..Food::new() }, - Item::RottenFlesh => Food { + ItemKind::RottenFlesh => Food { nutrition: 4, saturation: 0.8, ..Food::new() }, - Item::Salmon => Food { + ItemKind::Salmon => Food { nutrition: 2, saturation: 0.4, ..Food::new() }, - Item::SalmonBucket => Food { + ItemKind::SalmonBucket => Food { nutrition: 2, saturation: 0.4, ..Food::new() }, - Item::SpiderEye => Food { + ItemKind::SpiderEye => Food { nutrition: 2, saturation: 3.2, ..Food::new() }, - Item::SuspiciousStew => Food { + ItemKind::SuspiciousStew => Food { can_always_eat: true, nutrition: 6, saturation: 7.2000003, }, - Item::SweetBerries => Food { + ItemKind::SweetBerries => Food { nutrition: 2, saturation: 0.4, ..Food::new() }, - Item::TropicalFish => Food { + ItemKind::TropicalFish => Food { nutrition: 1, saturation: 0.2, ..Food::new() }, - Item::TropicalFishBucket => Food { + ItemKind::TropicalFishBucket => Food { nutrition: 1, saturation: 0.2, ..Food::new() @@ -2955,58 +2963,58 @@ impl DefaultableComponent for Food { } } impl DefaultableComponent for BucketEntityData { - fn default_for_item(item: Item) -> Option<Self> { + fn default_for_item(item: ItemKind) -> Option<Self> { let value = match item { - Item::AxolotlBucket => NbtCompound::from_values(vec![]), - Item::CodBucket => NbtCompound::from_values(vec![]), - Item::PufferfishBucket => NbtCompound::from_values(vec![]), - Item::SalmonBucket => NbtCompound::from_values(vec![]), - Item::TadpoleBucket => NbtCompound::from_values(vec![]), - Item::TropicalFishBucket => NbtCompound::from_values(vec![]), + ItemKind::AxolotlBucket => NbtCompound::from_values(vec![]), + ItemKind::CodBucket => NbtCompound::from_values(vec![]), + ItemKind::PufferfishBucket => NbtCompound::from_values(vec![]), + ItemKind::SalmonBucket => NbtCompound::from_values(vec![]), + ItemKind::TadpoleBucket => NbtCompound::from_values(vec![]), + ItemKind::TropicalFishBucket => NbtCompound::from_values(vec![]), _ => return None, }; Some(BucketEntityData { entity: value }) } } impl DefaultableComponent for Bees { - fn default_for_item(item: Item) -> Option<Self> { + fn default_for_item(item: ItemKind) -> Option<Self> { let value = match item { - Item::BeeNest => vec![], - Item::Beehive => vec![], + ItemKind::BeeNest => vec![], + ItemKind::Beehive => vec![], _ => return None, }; Some(Bees { occupants: value }) } } impl DefaultableComponent for BlockState { - fn default_for_item(item: Item) -> Option<Self> { + fn default_for_item(item: ItemKind) -> Option<Self> { let value = match item { - Item::BeeNest => HashMap::from_iter([("honey_level".to_string(), "0".to_string())]), - Item::Beehive => HashMap::from_iter([("honey_level".to_string(), "0".to_string())]), - Item::CopperGolemStatue => { + ItemKind::BeeNest => HashMap::from_iter([("honey_level".to_string(), "0".to_string())]), + ItemKind::Beehive => HashMap::from_iter([("honey_level".to_string(), "0".to_string())]), + ItemKind::CopperGolemStatue => { HashMap::from_iter([("copper_golem_pose".to_string(), "standing".to_string())]) } - Item::ExposedCopperGolemStatue => { + ItemKind::ExposedCopperGolemStatue => { HashMap::from_iter([("copper_golem_pose".to_string(), "standing".to_string())]) } - Item::Light => HashMap::from_iter([("level".to_string(), "15".to_string())]), - Item::OxidizedCopperGolemStatue => { + ItemKind::Light => HashMap::from_iter([("level".to_string(), "15".to_string())]), + ItemKind::OxidizedCopperGolemStatue => { HashMap::from_iter([("copper_golem_pose".to_string(), "standing".to_string())]) } - Item::TestBlock => HashMap::from_iter([("mode".to_string(), "start".to_string())]), - Item::WaxedCopperGolemStatue => { + ItemKind::TestBlock => HashMap::from_iter([("mode".to_string(), "start".to_string())]), + ItemKind::WaxedCopperGolemStatue => { HashMap::from_iter([("copper_golem_pose".to_string(), "standing".to_string())]) } - Item::WaxedExposedCopperGolemStatue => { + ItemKind::WaxedExposedCopperGolemStatue => { HashMap::from_iter([("copper_golem_pose".to_string(), "standing".to_string())]) } - Item::WaxedOxidizedCopperGolemStatue => { + ItemKind::WaxedOxidizedCopperGolemStatue => { HashMap::from_iter([("copper_golem_pose".to_string(), "standing".to_string())]) } - Item::WaxedWeatheredCopperGolemStatue => { + ItemKind::WaxedWeatheredCopperGolemStatue => { HashMap::from_iter([("copper_golem_pose".to_string(), "standing".to_string())]) } - Item::WeatheredCopperGolemStatue => { + ItemKind::WeatheredCopperGolemStatue => { HashMap::from_iter([("copper_golem_pose".to_string(), "standing".to_string())]) } _ => return None, @@ -3015,15 +3023,15 @@ impl DefaultableComponent for BlockState { } } impl DefaultableComponent for UseRemainder { - fn default_for_item(item: Item) -> Option<Self> { + fn default_for_item(item: ItemKind) -> Option<Self> { let value = match item { - Item::BeetrootSoup => ItemStack::from(Item::Bowl), - Item::HoneyBottle => ItemStack::from(Item::GlassBottle), - Item::MilkBucket => ItemStack::from(Item::Bucket), - Item::MushroomStew => ItemStack::from(Item::Bowl), - Item::Potion => ItemStack::from(Item::GlassBottle), - Item::RabbitStew => ItemStack::from(Item::Bowl), - Item::SuspiciousStew => ItemStack::from(Item::Bowl), + ItemKind::BeetrootSoup => ItemStack::from(ItemKind::Bowl), + ItemKind::HoneyBottle => ItemStack::from(ItemKind::GlassBottle), + ItemKind::MilkBucket => ItemStack::from(ItemKind::Bucket), + ItemKind::MushroomStew => ItemStack::from(ItemKind::Bowl), + ItemKind::Potion => ItemStack::from(ItemKind::GlassBottle), + ItemKind::RabbitStew => ItemStack::from(ItemKind::Bowl), + ItemKind::SuspiciousStew => ItemStack::from(ItemKind::Bowl), _ => return None, }; Some(UseRemainder { @@ -3032,59 +3040,59 @@ impl DefaultableComponent for UseRemainder { } } impl DefaultableComponent for BannerPatterns { - fn default_for_item(item: Item) -> Option<Self> { + fn default_for_item(item: ItemKind) -> Option<Self> { let value = match item { - Item::BlackBanner => vec![], - Item::BlueBanner => vec![], - Item::BrownBanner => vec![], - Item::CyanBanner => vec![], - Item::GrayBanner => vec![], - Item::GreenBanner => vec![], - Item::LightBlueBanner => vec![], - Item::LightGrayBanner => vec![], - Item::LimeBanner => vec![], - Item::MagentaBanner => vec![], - Item::OrangeBanner => vec![], - Item::PinkBanner => vec![], - Item::PurpleBanner => vec![], - Item::RedBanner => vec![], - Item::Shield => vec![], - Item::WhiteBanner => vec![], - Item::YellowBanner => vec![], + ItemKind::BlackBanner => vec![], + ItemKind::BlueBanner => vec![], + ItemKind::BrownBanner => vec![], + ItemKind::CyanBanner => vec![], + ItemKind::GrayBanner => vec![], + ItemKind::GreenBanner => vec![], + ItemKind::LightBlueBanner => vec![], + ItemKind::LightGrayBanner => vec![], + ItemKind::LimeBanner => vec![], + ItemKind::MagentaBanner => vec![], + ItemKind::OrangeBanner => vec![], + ItemKind::PinkBanner => vec![], + ItemKind::PurpleBanner => vec![], + ItemKind::RedBanner => vec![], + ItemKind::Shield => vec![], + ItemKind::WhiteBanner => vec![], + ItemKind::YellowBanner => vec![], _ => return None, }; Some(BannerPatterns { patterns: value }) } } impl DefaultableComponent for BundleContents { - fn default_for_item(item: Item) -> Option<Self> { + fn default_for_item(item: ItemKind) -> Option<Self> { let value = match item { - Item::BlackBundle => vec![], - Item::BlueBundle => vec![], - Item::BrownBundle => vec![], - Item::Bundle => vec![], - Item::CyanBundle => vec![], - Item::GrayBundle => vec![], - Item::GreenBundle => vec![], - Item::LightBlueBundle => vec![], - Item::LightGrayBundle => vec![], - Item::LimeBundle => vec![], - Item::MagentaBundle => vec![], - Item::OrangeBundle => vec![], - Item::PinkBundle => vec![], - Item::PurpleBundle => vec![], - Item::RedBundle => vec![], - Item::WhiteBundle => vec![], - Item::YellowBundle => vec![], + ItemKind::BlackBundle => vec![], + ItemKind::BlueBundle => vec![], + ItemKind::BrownBundle => vec![], + ItemKind::Bundle => vec![], + ItemKind::CyanBundle => vec![], + ItemKind::GrayBundle => vec![], + ItemKind::GreenBundle => vec![], + ItemKind::LightBlueBundle => vec![], + ItemKind::LightGrayBundle => vec![], + ItemKind::LimeBundle => vec![], + ItemKind::MagentaBundle => vec![], + ItemKind::OrangeBundle => vec![], + ItemKind::PinkBundle => vec![], + ItemKind::PurpleBundle => vec![], + ItemKind::RedBundle => vec![], + ItemKind::WhiteBundle => vec![], + ItemKind::YellowBundle => vec![], _ => return None, }; Some(BundleContents { items: value }) } } impl DefaultableComponent for Equippable { - fn default_for_item(item: Item) -> Option<Self> { + fn default_for_item(item: ItemKind) -> Option<Self> { let value = match item { - Item::BlackCarpet => Equippable { + ItemKind::BlackCarpet => Equippable { allowed_entities: Some(HolderSet::Direct { contents: vec![EntityKind::Llama, EntityKind::TraderLlama], }), @@ -3095,7 +3103,7 @@ impl DefaultableComponent for Equippable { slot: EquipmentSlot::Body, ..Equippable::new() }, - Item::BlackHarness => Equippable { + ItemKind::BlackHarness => Equippable { allowed_entities: Some(HolderSet::Direct { contents: azalea_registry::tags::entities::CAN_EQUIP_HARNESS .clone() @@ -3110,7 +3118,7 @@ impl DefaultableComponent for Equippable { slot: EquipmentSlot::Body, ..Equippable::new() }, - Item::BlueCarpet => Equippable { + ItemKind::BlueCarpet => Equippable { allowed_entities: Some(HolderSet::Direct { contents: vec![EntityKind::Llama, EntityKind::TraderLlama], }), @@ -3121,7 +3129,7 @@ impl DefaultableComponent for Equippable { slot: EquipmentSlot::Body, ..Equippable::new() }, - Item::BlueHarness => Equippable { + ItemKind::BlueHarness => Equippable { allowed_entities: Some(HolderSet::Direct { contents: azalea_registry::tags::entities::CAN_EQUIP_HARNESS .clone() @@ -3136,7 +3144,7 @@ impl DefaultableComponent for Equippable { slot: EquipmentSlot::Body, ..Equippable::new() }, - Item::BrownCarpet => Equippable { + ItemKind::BrownCarpet => Equippable { allowed_entities: Some(HolderSet::Direct { contents: vec![EntityKind::Llama, EntityKind::TraderLlama], }), @@ -3147,7 +3155,7 @@ impl DefaultableComponent for Equippable { slot: EquipmentSlot::Body, ..Equippable::new() }, - Item::BrownHarness => Equippable { + ItemKind::BrownHarness => Equippable { allowed_entities: Some(HolderSet::Direct { contents: azalea_registry::tags::entities::CAN_EQUIP_HARNESS .clone() @@ -3162,55 +3170,55 @@ impl DefaultableComponent for Equippable { slot: EquipmentSlot::Body, ..Equippable::new() }, - Item::CarvedPumpkin => Equippable { + ItemKind::CarvedPumpkin => Equippable { camera_overlay: Some("minecraft:misc/pumpkinblur".into()), slot: EquipmentSlot::Head, swappable: false, ..Equippable::new() }, - Item::ChainmailBoots => Equippable { + ItemKind::ChainmailBoots => Equippable { asset_id: Some("minecraft:chainmail".into()), equip_sound: SoundEvent::ItemArmorEquipChain, slot: EquipmentSlot::Feet, ..Equippable::new() }, - Item::ChainmailChestplate => Equippable { + ItemKind::ChainmailChestplate => Equippable { asset_id: Some("minecraft:chainmail".into()), equip_sound: SoundEvent::ItemArmorEquipChain, slot: EquipmentSlot::Chest, ..Equippable::new() }, - Item::ChainmailHelmet => Equippable { + ItemKind::ChainmailHelmet => Equippable { asset_id: Some("minecraft:chainmail".into()), equip_sound: SoundEvent::ItemArmorEquipChain, slot: EquipmentSlot::Head, ..Equippable::new() }, - Item::ChainmailLeggings => Equippable { + ItemKind::ChainmailLeggings => Equippable { asset_id: Some("minecraft:chainmail".into()), equip_sound: SoundEvent::ItemArmorEquipChain, slot: EquipmentSlot::Legs, ..Equippable::new() }, - Item::CopperBoots => Equippable { + ItemKind::CopperBoots => Equippable { asset_id: Some("minecraft:copper".into()), equip_sound: SoundEvent::ItemArmorEquipCopper, slot: EquipmentSlot::Feet, ..Equippable::new() }, - Item::CopperChestplate => Equippable { + ItemKind::CopperChestplate => Equippable { asset_id: Some("minecraft:copper".into()), equip_sound: SoundEvent::ItemArmorEquipCopper, slot: EquipmentSlot::Chest, ..Equippable::new() }, - Item::CopperHelmet => Equippable { + ItemKind::CopperHelmet => Equippable { asset_id: Some("minecraft:copper".into()), equip_sound: SoundEvent::ItemArmorEquipCopper, slot: EquipmentSlot::Head, ..Equippable::new() }, - Item::CopperHorseArmor => Equippable { + ItemKind::CopperHorseArmor => Equippable { allowed_entities: Some(HolderSet::Direct { contents: azalea_registry::tags::entities::CAN_WEAR_HORSE_ARMOR .clone() @@ -3225,13 +3233,13 @@ impl DefaultableComponent for Equippable { slot: EquipmentSlot::Body, ..Equippable::new() }, - Item::CopperLeggings => Equippable { + ItemKind::CopperLeggings => Equippable { asset_id: Some("minecraft:copper".into()), equip_sound: SoundEvent::ItemArmorEquipCopper, slot: EquipmentSlot::Legs, ..Equippable::new() }, - Item::CopperNautilusArmor => Equippable { + ItemKind::CopperNautilusArmor => Equippable { allowed_entities: Some(HolderSet::Direct { contents: azalea_registry::tags::entities::CAN_WEAR_NAUTILUS_ARMOR .clone() @@ -3247,12 +3255,12 @@ impl DefaultableComponent for Equippable { slot: EquipmentSlot::Body, ..Equippable::new() }, - Item::CreeperHead => Equippable { + ItemKind::CreeperHead => Equippable { slot: EquipmentSlot::Head, swappable: false, ..Equippable::new() }, - Item::CyanCarpet => Equippable { + ItemKind::CyanCarpet => Equippable { allowed_entities: Some(HolderSet::Direct { contents: vec![EntityKind::Llama, EntityKind::TraderLlama], }), @@ -3263,7 +3271,7 @@ impl DefaultableComponent for Equippable { slot: EquipmentSlot::Body, ..Equippable::new() }, - Item::CyanHarness => Equippable { + ItemKind::CyanHarness => Equippable { allowed_entities: Some(HolderSet::Direct { contents: azalea_registry::tags::entities::CAN_EQUIP_HARNESS .clone() @@ -3278,25 +3286,25 @@ impl DefaultableComponent for Equippable { slot: EquipmentSlot::Body, ..Equippable::new() }, - Item::DiamondBoots => Equippable { + ItemKind::DiamondBoots => Equippable { asset_id: Some("minecraft:diamond".into()), equip_sound: SoundEvent::ItemArmorEquipDiamond, slot: EquipmentSlot::Feet, ..Equippable::new() }, - Item::DiamondChestplate => Equippable { + ItemKind::DiamondChestplate => Equippable { asset_id: Some("minecraft:diamond".into()), equip_sound: SoundEvent::ItemArmorEquipDiamond, slot: EquipmentSlot::Chest, ..Equippable::new() }, - Item::DiamondHelmet => Equippable { + ItemKind::DiamondHelmet => Equippable { asset_id: Some("minecraft:diamond".into()), equip_sound: SoundEvent::ItemArmorEquipDiamond, slot: EquipmentSlot::Head, ..Equippable::new() }, - Item::DiamondHorseArmor => Equippable { + ItemKind::DiamondHorseArmor => Equippable { allowed_entities: Some(HolderSet::Direct { contents: azalea_registry::tags::entities::CAN_WEAR_HORSE_ARMOR .clone() @@ -3311,13 +3319,13 @@ impl DefaultableComponent for Equippable { slot: EquipmentSlot::Body, ..Equippable::new() }, - Item::DiamondLeggings => Equippable { + ItemKind::DiamondLeggings => Equippable { asset_id: Some("minecraft:diamond".into()), equip_sound: SoundEvent::ItemArmorEquipDiamond, slot: EquipmentSlot::Legs, ..Equippable::new() }, - Item::DiamondNautilusArmor => Equippable { + ItemKind::DiamondNautilusArmor => Equippable { allowed_entities: Some(HolderSet::Direct { contents: azalea_registry::tags::entities::CAN_WEAR_NAUTILUS_ARMOR .clone() @@ -3333,37 +3341,37 @@ impl DefaultableComponent for Equippable { slot: EquipmentSlot::Body, ..Equippable::new() }, - Item::DragonHead => Equippable { + ItemKind::DragonHead => Equippable { slot: EquipmentSlot::Head, swappable: false, ..Equippable::new() }, - Item::Elytra => Equippable { + ItemKind::Elytra => Equippable { asset_id: Some("minecraft:elytra".into()), damage_on_hurt: false, equip_sound: SoundEvent::ItemArmorEquipElytra, slot: EquipmentSlot::Chest, ..Equippable::new() }, - Item::GoldenBoots => Equippable { + ItemKind::GoldenBoots => Equippable { asset_id: Some("minecraft:gold".into()), equip_sound: SoundEvent::ItemArmorEquipGold, slot: EquipmentSlot::Feet, ..Equippable::new() }, - Item::GoldenChestplate => Equippable { + ItemKind::GoldenChestplate => Equippable { asset_id: Some("minecraft:gold".into()), equip_sound: SoundEvent::ItemArmorEquipGold, slot: EquipmentSlot::Chest, ..Equippable::new() }, - Item::GoldenHelmet => Equippable { + ItemKind::GoldenHelmet => Equippable { asset_id: Some("minecraft:gold".into()), equip_sound: SoundEvent::ItemArmorEquipGold, slot: EquipmentSlot::Head, ..Equippable::new() }, - Item::GoldenHorseArmor => Equippable { + ItemKind::GoldenHorseArmor => Equippable { allowed_entities: Some(HolderSet::Direct { contents: azalea_registry::tags::entities::CAN_WEAR_HORSE_ARMOR .clone() @@ -3378,13 +3386,13 @@ impl DefaultableComponent for Equippable { slot: EquipmentSlot::Body, ..Equippable::new() }, - Item::GoldenLeggings => Equippable { + ItemKind::GoldenLeggings => Equippable { asset_id: Some("minecraft:gold".into()), equip_sound: SoundEvent::ItemArmorEquipGold, slot: EquipmentSlot::Legs, ..Equippable::new() }, - Item::GoldenNautilusArmor => Equippable { + ItemKind::GoldenNautilusArmor => Equippable { allowed_entities: Some(HolderSet::Direct { contents: azalea_registry::tags::entities::CAN_WEAR_NAUTILUS_ARMOR .clone() @@ -3400,7 +3408,7 @@ impl DefaultableComponent for Equippable { slot: EquipmentSlot::Body, ..Equippable::new() }, - Item::GrayCarpet => Equippable { + ItemKind::GrayCarpet => Equippable { allowed_entities: Some(HolderSet::Direct { contents: vec![EntityKind::Llama, EntityKind::TraderLlama], }), @@ -3411,7 +3419,7 @@ impl DefaultableComponent for Equippable { slot: EquipmentSlot::Body, ..Equippable::new() }, - Item::GrayHarness => Equippable { + ItemKind::GrayHarness => Equippable { allowed_entities: Some(HolderSet::Direct { contents: azalea_registry::tags::entities::CAN_EQUIP_HARNESS .clone() @@ -3426,7 +3434,7 @@ impl DefaultableComponent for Equippable { slot: EquipmentSlot::Body, ..Equippable::new() }, - Item::GreenCarpet => Equippable { + ItemKind::GreenCarpet => Equippable { allowed_entities: Some(HolderSet::Direct { contents: vec![EntityKind::Llama, EntityKind::TraderLlama], }), @@ -3437,7 +3445,7 @@ impl DefaultableComponent for Equippable { slot: EquipmentSlot::Body, ..Equippable::new() }, - Item::GreenHarness => Equippable { + ItemKind::GreenHarness => Equippable { allowed_entities: Some(HolderSet::Direct { contents: azalea_registry::tags::entities::CAN_EQUIP_HARNESS .clone() @@ -3452,25 +3460,25 @@ impl DefaultableComponent for Equippable { slot: EquipmentSlot::Body, ..Equippable::new() }, - Item::IronBoots => Equippable { + ItemKind::IronBoots => Equippable { asset_id: Some("minecraft:iron".into()), equip_sound: SoundEvent::ItemArmorEquipIron, slot: EquipmentSlot::Feet, ..Equippable::new() }, - Item::IronChestplate => Equippable { + ItemKind::IronChestplate => Equippable { asset_id: Some("minecraft:iron".into()), equip_sound: SoundEvent::ItemArmorEquipIron, slot: EquipmentSlot::Chest, ..Equippable::new() }, - Item::IronHelmet => Equippable { + ItemKind::IronHelmet => Equippable { asset_id: Some("minecraft:iron".into()), equip_sound: SoundEvent::ItemArmorEquipIron, slot: EquipmentSlot::Head, ..Equippable::new() }, - Item::IronHorseArmor => Equippable { + ItemKind::IronHorseArmor => Equippable { allowed_entities: Some(HolderSet::Direct { contents: azalea_registry::tags::entities::CAN_WEAR_HORSE_ARMOR .clone() @@ -3485,13 +3493,13 @@ impl DefaultableComponent for Equippable { slot: EquipmentSlot::Body, ..Equippable::new() }, - Item::IronLeggings => Equippable { + ItemKind::IronLeggings => Equippable { asset_id: Some("minecraft:iron".into()), equip_sound: SoundEvent::ItemArmorEquipIron, slot: EquipmentSlot::Legs, ..Equippable::new() }, - Item::IronNautilusArmor => Equippable { + ItemKind::IronNautilusArmor => Equippable { allowed_entities: Some(HolderSet::Direct { contents: azalea_registry::tags::entities::CAN_WEAR_NAUTILUS_ARMOR .clone() @@ -3507,25 +3515,25 @@ impl DefaultableComponent for Equippable { slot: EquipmentSlot::Body, ..Equippable::new() }, - Item::LeatherBoots => Equippable { + ItemKind::LeatherBoots => Equippable { asset_id: Some("minecraft:leather".into()), equip_sound: SoundEvent::ItemArmorEquipLeather, slot: EquipmentSlot::Feet, ..Equippable::new() }, - Item::LeatherChestplate => Equippable { + ItemKind::LeatherChestplate => Equippable { asset_id: Some("minecraft:leather".into()), equip_sound: SoundEvent::ItemArmorEquipLeather, slot: EquipmentSlot::Chest, ..Equippable::new() }, - Item::LeatherHelmet => Equippable { + ItemKind::LeatherHelmet => Equippable { asset_id: Some("minecraft:leather".into()), equip_sound: SoundEvent::ItemArmorEquipLeather, slot: EquipmentSlot::Head, ..Equippable::new() }, - Item::LeatherHorseArmor => Equippable { + ItemKind::LeatherHorseArmor => Equippable { allowed_entities: Some(HolderSet::Direct { contents: azalea_registry::tags::entities::CAN_WEAR_HORSE_ARMOR .clone() @@ -3540,13 +3548,13 @@ impl DefaultableComponent for Equippable { slot: EquipmentSlot::Body, ..Equippable::new() }, - Item::LeatherLeggings => Equippable { + ItemKind::LeatherLeggings => Equippable { asset_id: Some("minecraft:leather".into()), equip_sound: SoundEvent::ItemArmorEquipLeather, slot: EquipmentSlot::Legs, ..Equippable::new() }, - Item::LightBlueCarpet => Equippable { + ItemKind::LightBlueCarpet => Equippable { allowed_entities: Some(HolderSet::Direct { contents: vec![EntityKind::Llama, EntityKind::TraderLlama], }), @@ -3557,7 +3565,7 @@ impl DefaultableComponent for Equippable { slot: EquipmentSlot::Body, ..Equippable::new() }, - Item::LightBlueHarness => Equippable { + ItemKind::LightBlueHarness => Equippable { allowed_entities: Some(HolderSet::Direct { contents: azalea_registry::tags::entities::CAN_EQUIP_HARNESS .clone() @@ -3572,7 +3580,7 @@ impl DefaultableComponent for Equippable { slot: EquipmentSlot::Body, ..Equippable::new() }, - Item::LightGrayCarpet => Equippable { + ItemKind::LightGrayCarpet => Equippable { allowed_entities: Some(HolderSet::Direct { contents: vec![EntityKind::Llama, EntityKind::TraderLlama], }), @@ -3583,7 +3591,7 @@ impl DefaultableComponent for Equippable { slot: EquipmentSlot::Body, ..Equippable::new() }, - Item::LightGrayHarness => Equippable { + ItemKind::LightGrayHarness => Equippable { allowed_entities: Some(HolderSet::Direct { contents: azalea_registry::tags::entities::CAN_EQUIP_HARNESS .clone() @@ -3598,7 +3606,7 @@ impl DefaultableComponent for Equippable { slot: EquipmentSlot::Body, ..Equippable::new() }, - Item::LimeCarpet => Equippable { + ItemKind::LimeCarpet => Equippable { allowed_entities: Some(HolderSet::Direct { contents: vec![EntityKind::Llama, EntityKind::TraderLlama], }), @@ -3609,7 +3617,7 @@ impl DefaultableComponent for Equippable { slot: EquipmentSlot::Body, ..Equippable::new() }, - Item::LimeHarness => Equippable { + ItemKind::LimeHarness => Equippable { allowed_entities: Some(HolderSet::Direct { contents: azalea_registry::tags::entities::CAN_EQUIP_HARNESS .clone() @@ -3624,7 +3632,7 @@ impl DefaultableComponent for Equippable { slot: EquipmentSlot::Body, ..Equippable::new() }, - Item::MagentaCarpet => Equippable { + ItemKind::MagentaCarpet => Equippable { allowed_entities: Some(HolderSet::Direct { contents: vec![EntityKind::Llama, EntityKind::TraderLlama], }), @@ -3635,7 +3643,7 @@ impl DefaultableComponent for Equippable { slot: EquipmentSlot::Body, ..Equippable::new() }, - Item::MagentaHarness => Equippable { + ItemKind::MagentaHarness => Equippable { allowed_entities: Some(HolderSet::Direct { contents: azalea_registry::tags::entities::CAN_EQUIP_HARNESS .clone() @@ -3650,25 +3658,25 @@ impl DefaultableComponent for Equippable { slot: EquipmentSlot::Body, ..Equippable::new() }, - Item::NetheriteBoots => Equippable { + ItemKind::NetheriteBoots => Equippable { asset_id: Some("minecraft:netherite".into()), equip_sound: SoundEvent::ItemArmorEquipNetherite, slot: EquipmentSlot::Feet, ..Equippable::new() }, - Item::NetheriteChestplate => Equippable { + ItemKind::NetheriteChestplate => Equippable { asset_id: Some("minecraft:netherite".into()), equip_sound: SoundEvent::ItemArmorEquipNetherite, slot: EquipmentSlot::Chest, ..Equippable::new() }, - Item::NetheriteHelmet => Equippable { + ItemKind::NetheriteHelmet => Equippable { asset_id: Some("minecraft:netherite".into()), equip_sound: SoundEvent::ItemArmorEquipNetherite, slot: EquipmentSlot::Head, ..Equippable::new() }, - Item::NetheriteHorseArmor => Equippable { + ItemKind::NetheriteHorseArmor => Equippable { allowed_entities: Some(HolderSet::Direct { contents: azalea_registry::tags::entities::CAN_WEAR_HORSE_ARMOR .clone() @@ -3683,13 +3691,13 @@ impl DefaultableComponent for Equippable { slot: EquipmentSlot::Body, ..Equippable::new() }, - Item::NetheriteLeggings => Equippable { + ItemKind::NetheriteLeggings => Equippable { asset_id: Some("minecraft:netherite".into()), equip_sound: SoundEvent::ItemArmorEquipNetherite, slot: EquipmentSlot::Legs, ..Equippable::new() }, - Item::NetheriteNautilusArmor => Equippable { + ItemKind::NetheriteNautilusArmor => Equippable { allowed_entities: Some(HolderSet::Direct { contents: azalea_registry::tags::entities::CAN_WEAR_NAUTILUS_ARMOR .clone() @@ -3705,7 +3713,7 @@ impl DefaultableComponent for Equippable { slot: EquipmentSlot::Body, ..Equippable::new() }, - Item::OrangeCarpet => Equippable { + ItemKind::OrangeCarpet => Equippable { allowed_entities: Some(HolderSet::Direct { contents: vec![EntityKind::Llama, EntityKind::TraderLlama], }), @@ -3716,7 +3724,7 @@ impl DefaultableComponent for Equippable { slot: EquipmentSlot::Body, ..Equippable::new() }, - Item::OrangeHarness => Equippable { + ItemKind::OrangeHarness => Equippable { allowed_entities: Some(HolderSet::Direct { contents: azalea_registry::tags::entities::CAN_EQUIP_HARNESS .clone() @@ -3731,12 +3739,12 @@ impl DefaultableComponent for Equippable { slot: EquipmentSlot::Body, ..Equippable::new() }, - Item::PiglinHead => Equippable { + ItemKind::PiglinHead => Equippable { slot: EquipmentSlot::Head, swappable: false, ..Equippable::new() }, - Item::PinkCarpet => Equippable { + ItemKind::PinkCarpet => Equippable { allowed_entities: Some(HolderSet::Direct { contents: vec![EntityKind::Llama, EntityKind::TraderLlama], }), @@ -3747,7 +3755,7 @@ impl DefaultableComponent for Equippable { slot: EquipmentSlot::Body, ..Equippable::new() }, - Item::PinkHarness => Equippable { + ItemKind::PinkHarness => Equippable { allowed_entities: Some(HolderSet::Direct { contents: azalea_registry::tags::entities::CAN_EQUIP_HARNESS .clone() @@ -3762,12 +3770,12 @@ impl DefaultableComponent for Equippable { slot: EquipmentSlot::Body, ..Equippable::new() }, - Item::PlayerHead => Equippable { + ItemKind::PlayerHead => Equippable { slot: EquipmentSlot::Head, swappable: false, ..Equippable::new() }, - Item::PurpleCarpet => Equippable { + ItemKind::PurpleCarpet => Equippable { allowed_entities: Some(HolderSet::Direct { contents: vec![EntityKind::Llama, EntityKind::TraderLlama], }), @@ -3778,7 +3786,7 @@ impl DefaultableComponent for Equippable { slot: EquipmentSlot::Body, ..Equippable::new() }, - Item::PurpleHarness => Equippable { + ItemKind::PurpleHarness => Equippable { allowed_entities: Some(HolderSet::Direct { contents: azalea_registry::tags::entities::CAN_EQUIP_HARNESS .clone() @@ -3793,7 +3801,7 @@ impl DefaultableComponent for Equippable { slot: EquipmentSlot::Body, ..Equippable::new() }, - Item::RedCarpet => Equippable { + ItemKind::RedCarpet => Equippable { allowed_entities: Some(HolderSet::Direct { contents: vec![EntityKind::Llama, EntityKind::TraderLlama], }), @@ -3804,7 +3812,7 @@ impl DefaultableComponent for Equippable { slot: EquipmentSlot::Body, ..Equippable::new() }, - Item::RedHarness => Equippable { + ItemKind::RedHarness => Equippable { allowed_entities: Some(HolderSet::Direct { contents: azalea_registry::tags::entities::CAN_EQUIP_HARNESS .clone() @@ -3819,7 +3827,7 @@ impl DefaultableComponent for Equippable { slot: EquipmentSlot::Body, ..Equippable::new() }, - Item::Saddle => Equippable { + ItemKind::Saddle => Equippable { allowed_entities: Some(HolderSet::Direct { contents: azalea_registry::tags::entities::CAN_EQUIP_SADDLE .clone() @@ -3834,23 +3842,23 @@ impl DefaultableComponent for Equippable { slot: EquipmentSlot::Saddle, ..Equippable::new() }, - Item::Shield => Equippable { + ItemKind::Shield => Equippable { slot: EquipmentSlot::Offhand, swappable: false, ..Equippable::new() }, - Item::SkeletonSkull => Equippable { + ItemKind::SkeletonSkull => Equippable { slot: EquipmentSlot::Head, swappable: false, ..Equippable::new() }, - Item::TurtleHelmet => Equippable { + ItemKind::TurtleHelmet => Equippable { asset_id: Some("minecraft:turtle_scute".into()), equip_sound: SoundEvent::ItemArmorEquipTurtle, slot: EquipmentSlot::Head, ..Equippable::new() }, - Item::WhiteCarpet => Equippable { + ItemKind::WhiteCarpet => Equippable { allowed_entities: Some(HolderSet::Direct { contents: vec![EntityKind::Llama, EntityKind::TraderLlama], }), @@ -3861,7 +3869,7 @@ impl DefaultableComponent for Equippable { slot: EquipmentSlot::Body, ..Equippable::new() }, - Item::WhiteHarness => Equippable { + ItemKind::WhiteHarness => Equippable { allowed_entities: Some(HolderSet::Direct { contents: azalea_registry::tags::entities::CAN_EQUIP_HARNESS .clone() @@ -3876,12 +3884,12 @@ impl DefaultableComponent for Equippable { slot: EquipmentSlot::Body, ..Equippable::new() }, - Item::WitherSkeletonSkull => Equippable { + ItemKind::WitherSkeletonSkull => Equippable { slot: EquipmentSlot::Head, swappable: false, ..Equippable::new() }, - Item::WolfArmor => Equippable { + ItemKind::WolfArmor => Equippable { allowed_entities: Some(HolderSet::Direct { contents: vec![EntityKind::Wolf], }), @@ -3892,7 +3900,7 @@ impl DefaultableComponent for Equippable { slot: EquipmentSlot::Body, ..Equippable::new() }, - Item::YellowCarpet => Equippable { + ItemKind::YellowCarpet => Equippable { allowed_entities: Some(HolderSet::Direct { contents: vec![EntityKind::Llama, EntityKind::TraderLlama], }), @@ -3903,7 +3911,7 @@ impl DefaultableComponent for Equippable { slot: EquipmentSlot::Body, ..Equippable::new() }, - Item::YellowHarness => Equippable { + ItemKind::YellowHarness => Equippable { allowed_entities: Some(HolderSet::Direct { contents: azalea_registry::tags::entities::CAN_EQUIP_HARNESS .clone() @@ -3918,7 +3926,7 @@ impl DefaultableComponent for Equippable { slot: EquipmentSlot::Body, ..Equippable::new() }, - Item::ZombieHead => Equippable { + ItemKind::ZombieHead => Equippable { slot: EquipmentSlot::Head, swappable: false, ..Equippable::new() @@ -3929,745 +3937,747 @@ impl DefaultableComponent for Equippable { } } impl DefaultableComponent for ChickenVariant { - fn default_for_item(item: Item) -> Option<Self> { + fn default_for_item(item: ItemKind) -> Option<Self> { let value = match item { - Item::BlueEgg => ChickenVariant::Referenced("minecraft:cold".into()), - Item::BrownEgg => ChickenVariant::Referenced("minecraft:warm".into()), - Item::Egg => ChickenVariant::Referenced("minecraft:temperate".into()), + ItemKind::BlueEgg => ChickenVariant::Referenced("minecraft:cold".into()), + ItemKind::BrownEgg => ChickenVariant::Referenced("minecraft:warm".into()), + ItemKind::Egg => ChickenVariant::Referenced("minecraft:temperate".into()), _ => return None, }; Some(value) } } impl DefaultableComponent for Enchantable { - fn default_for_item(item: Item) -> Option<Self> { + fn default_for_item(item: ItemKind) -> Option<Self> { let value = match item { - Item::Book => 1, - Item::Bow => 1, - Item::ChainmailBoots => 12, - Item::ChainmailChestplate => 12, - Item::ChainmailHelmet => 12, - Item::ChainmailLeggings => 12, - Item::CopperAxe => 13, - Item::CopperBoots => 8, - Item::CopperChestplate => 8, - Item::CopperHelmet => 8, - Item::CopperHoe => 13, - Item::CopperLeggings => 8, - Item::CopperPickaxe => 13, - Item::CopperShovel => 13, - Item::CopperSpear => 13, - Item::CopperSword => 13, - Item::Crossbow => 1, - Item::DiamondAxe => 10, - Item::DiamondBoots => 10, - Item::DiamondChestplate => 10, - Item::DiamondHelmet => 10, - Item::DiamondHoe => 10, - Item::DiamondLeggings => 10, - Item::DiamondPickaxe => 10, - Item::DiamondShovel => 10, - Item::DiamondSpear => 10, - Item::DiamondSword => 10, - Item::FishingRod => 1, - Item::GoldenAxe => 22, - Item::GoldenBoots => 25, - Item::GoldenChestplate => 25, - Item::GoldenHelmet => 25, - Item::GoldenHoe => 22, - Item::GoldenLeggings => 25, - Item::GoldenPickaxe => 22, - Item::GoldenShovel => 22, - Item::GoldenSpear => 22, - Item::GoldenSword => 22, - Item::IronAxe => 14, - Item::IronBoots => 9, - Item::IronChestplate => 9, - Item::IronHelmet => 9, - Item::IronHoe => 14, - Item::IronLeggings => 9, - Item::IronPickaxe => 14, - Item::IronShovel => 14, - Item::IronSpear => 14, - Item::IronSword => 14, - Item::LeatherBoots => 15, - Item::LeatherChestplate => 15, - Item::LeatherHelmet => 15, - Item::LeatherLeggings => 15, - Item::Mace => 15, - Item::NetheriteAxe => 15, - Item::NetheriteBoots => 15, - Item::NetheriteChestplate => 15, - Item::NetheriteHelmet => 15, - Item::NetheriteHoe => 15, - 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, - Item::WoodenAxe => 15, - Item::WoodenHoe => 15, - Item::WoodenPickaxe => 15, - Item::WoodenShovel => 15, - Item::WoodenSpear => 15, - Item::WoodenSword => 15, + ItemKind::Book => 1, + ItemKind::Bow => 1, + ItemKind::ChainmailBoots => 12, + ItemKind::ChainmailChestplate => 12, + ItemKind::ChainmailHelmet => 12, + ItemKind::ChainmailLeggings => 12, + ItemKind::CopperAxe => 13, + ItemKind::CopperBoots => 8, + ItemKind::CopperChestplate => 8, + ItemKind::CopperHelmet => 8, + ItemKind::CopperHoe => 13, + ItemKind::CopperLeggings => 8, + ItemKind::CopperPickaxe => 13, + ItemKind::CopperShovel => 13, + ItemKind::CopperSpear => 13, + ItemKind::CopperSword => 13, + ItemKind::Crossbow => 1, + ItemKind::DiamondAxe => 10, + ItemKind::DiamondBoots => 10, + ItemKind::DiamondChestplate => 10, + ItemKind::DiamondHelmet => 10, + ItemKind::DiamondHoe => 10, + ItemKind::DiamondLeggings => 10, + ItemKind::DiamondPickaxe => 10, + ItemKind::DiamondShovel => 10, + ItemKind::DiamondSpear => 10, + ItemKind::DiamondSword => 10, + ItemKind::FishingRod => 1, + ItemKind::GoldenAxe => 22, + ItemKind::GoldenBoots => 25, + ItemKind::GoldenChestplate => 25, + ItemKind::GoldenHelmet => 25, + ItemKind::GoldenHoe => 22, + ItemKind::GoldenLeggings => 25, + ItemKind::GoldenPickaxe => 22, + ItemKind::GoldenShovel => 22, + ItemKind::GoldenSpear => 22, + ItemKind::GoldenSword => 22, + ItemKind::IronAxe => 14, + ItemKind::IronBoots => 9, + ItemKind::IronChestplate => 9, + ItemKind::IronHelmet => 9, + ItemKind::IronHoe => 14, + ItemKind::IronLeggings => 9, + ItemKind::IronPickaxe => 14, + ItemKind::IronShovel => 14, + ItemKind::IronSpear => 14, + ItemKind::IronSword => 14, + ItemKind::LeatherBoots => 15, + ItemKind::LeatherChestplate => 15, + ItemKind::LeatherHelmet => 15, + ItemKind::LeatherLeggings => 15, + ItemKind::Mace => 15, + ItemKind::NetheriteAxe => 15, + ItemKind::NetheriteBoots => 15, + ItemKind::NetheriteChestplate => 15, + ItemKind::NetheriteHelmet => 15, + ItemKind::NetheriteHoe => 15, + ItemKind::NetheriteLeggings => 15, + ItemKind::NetheritePickaxe => 15, + ItemKind::NetheriteShovel => 15, + ItemKind::NetheriteSpear => 15, + ItemKind::NetheriteSword => 15, + ItemKind::StoneAxe => 5, + ItemKind::StoneHoe => 5, + ItemKind::StonePickaxe => 5, + ItemKind::StoneShovel => 5, + ItemKind::StoneSpear => 5, + ItemKind::StoneSword => 5, + ItemKind::Trident => 1, + ItemKind::TurtleHelmet => 9, + ItemKind::WoodenAxe => 15, + ItemKind::WoodenHoe => 15, + ItemKind::WoodenPickaxe => 15, + ItemKind::WoodenShovel => 15, + ItemKind::WoodenSpear => 15, + ItemKind::WoodenSword => 15, _ => return None, }; Some(Enchantable { value: value }) } } impl DefaultableComponent for ProvidesBannerPatterns { - fn default_for_item(item: Item) -> Option<Self> { + fn default_for_item(item: ItemKind) -> Option<Self> { let value = match item { - Item::BordureIndentedBannerPattern => "#minecraft:pattern_item/bordure_indented".into(), - Item::CreeperBannerPattern => "#minecraft:pattern_item/creeper".into(), - Item::FieldMasonedBannerPattern => "#minecraft:pattern_item/field_masoned".into(), - Item::FlowBannerPattern => "#minecraft:pattern_item/flow".into(), - Item::FlowerBannerPattern => "#minecraft:pattern_item/flower".into(), - Item::GlobeBannerPattern => "#minecraft:pattern_item/globe".into(), - Item::GusterBannerPattern => "#minecraft:pattern_item/guster".into(), - Item::MojangBannerPattern => "#minecraft:pattern_item/mojang".into(), - Item::PiglinBannerPattern => "#minecraft:pattern_item/piglin".into(), - Item::SkullBannerPattern => "#minecraft:pattern_item/skull".into(), + ItemKind::BordureIndentedBannerPattern => { + "#minecraft:pattern_item/bordure_indented".into() + } + ItemKind::CreeperBannerPattern => "#minecraft:pattern_item/creeper".into(), + ItemKind::FieldMasonedBannerPattern => "#minecraft:pattern_item/field_masoned".into(), + ItemKind::FlowBannerPattern => "#minecraft:pattern_item/flow".into(), + ItemKind::FlowerBannerPattern => "#minecraft:pattern_item/flower".into(), + ItemKind::GlobeBannerPattern => "#minecraft:pattern_item/globe".into(), + ItemKind::GusterBannerPattern => "#minecraft:pattern_item/guster".into(), + ItemKind::MojangBannerPattern => "#minecraft:pattern_item/mojang".into(), + ItemKind::PiglinBannerPattern => "#minecraft:pattern_item/piglin".into(), + ItemKind::SkullBannerPattern => "#minecraft:pattern_item/skull".into(), _ => return None, }; Some(ProvidesBannerPatterns { key: value }) } } impl DefaultableComponent for Damage { - fn default_for_item(item: Item) -> Option<Self> { + fn default_for_item(item: ItemKind) -> Option<Self> { let value = match item { - Item::Bow => 0, - Item::Brush => 0, - Item::CarrotOnAStick => 0, - Item::ChainmailBoots => 0, - Item::ChainmailChestplate => 0, - Item::ChainmailHelmet => 0, - Item::ChainmailLeggings => 0, - Item::CopperAxe => 0, - Item::CopperBoots => 0, - Item::CopperChestplate => 0, - Item::CopperHelmet => 0, - Item::CopperHoe => 0, - Item::CopperLeggings => 0, - Item::CopperPickaxe => 0, - Item::CopperShovel => 0, - Item::CopperSpear => 0, - Item::CopperSword => 0, - Item::Crossbow => 0, - Item::DiamondAxe => 0, - Item::DiamondBoots => 0, - Item::DiamondChestplate => 0, - Item::DiamondHelmet => 0, - Item::DiamondHoe => 0, - Item::DiamondLeggings => 0, - Item::DiamondPickaxe => 0, - Item::DiamondShovel => 0, - Item::DiamondSpear => 0, - Item::DiamondSword => 0, - Item::Elytra => 0, - Item::FishingRod => 0, - Item::FlintAndSteel => 0, - Item::GoldenAxe => 0, - Item::GoldenBoots => 0, - Item::GoldenChestplate => 0, - Item::GoldenHelmet => 0, - Item::GoldenHoe => 0, - Item::GoldenLeggings => 0, - Item::GoldenPickaxe => 0, - Item::GoldenShovel => 0, - Item::GoldenSpear => 0, - Item::GoldenSword => 0, - Item::IronAxe => 0, - Item::IronBoots => 0, - Item::IronChestplate => 0, - Item::IronHelmet => 0, - Item::IronHoe => 0, - Item::IronLeggings => 0, - Item::IronPickaxe => 0, - Item::IronShovel => 0, - Item::IronSpear => 0, - Item::IronSword => 0, - Item::LeatherBoots => 0, - Item::LeatherChestplate => 0, - Item::LeatherHelmet => 0, - Item::LeatherLeggings => 0, - Item::Mace => 0, - Item::NetheriteAxe => 0, - Item::NetheriteBoots => 0, - Item::NetheriteChestplate => 0, - Item::NetheriteHelmet => 0, - Item::NetheriteHoe => 0, - Item::NetheriteLeggings => 0, - Item::NetheritePickaxe => 0, - Item::NetheriteShovel => 0, - Item::NetheriteSpear => 0, - Item::NetheriteSword => 0, - Item::Shears => 0, - Item::Shield => 0, - Item::StoneAxe => 0, - Item::StoneHoe => 0, - Item::StonePickaxe => 0, - Item::StoneShovel => 0, - Item::StoneSpear => 0, - Item::StoneSword => 0, - Item::Trident => 0, - Item::TurtleHelmet => 0, - Item::WarpedFungusOnAStick => 0, - Item::WolfArmor => 0, - Item::WoodenAxe => 0, - Item::WoodenHoe => 0, - Item::WoodenPickaxe => 0, - Item::WoodenShovel => 0, - Item::WoodenSpear => 0, - Item::WoodenSword => 0, + ItemKind::Bow => 0, + ItemKind::Brush => 0, + ItemKind::CarrotOnAStick => 0, + ItemKind::ChainmailBoots => 0, + ItemKind::ChainmailChestplate => 0, + ItemKind::ChainmailHelmet => 0, + ItemKind::ChainmailLeggings => 0, + ItemKind::CopperAxe => 0, + ItemKind::CopperBoots => 0, + ItemKind::CopperChestplate => 0, + ItemKind::CopperHelmet => 0, + ItemKind::CopperHoe => 0, + ItemKind::CopperLeggings => 0, + ItemKind::CopperPickaxe => 0, + ItemKind::CopperShovel => 0, + ItemKind::CopperSpear => 0, + ItemKind::CopperSword => 0, + ItemKind::Crossbow => 0, + ItemKind::DiamondAxe => 0, + ItemKind::DiamondBoots => 0, + ItemKind::DiamondChestplate => 0, + ItemKind::DiamondHelmet => 0, + ItemKind::DiamondHoe => 0, + ItemKind::DiamondLeggings => 0, + ItemKind::DiamondPickaxe => 0, + ItemKind::DiamondShovel => 0, + ItemKind::DiamondSpear => 0, + ItemKind::DiamondSword => 0, + ItemKind::Elytra => 0, + ItemKind::FishingRod => 0, + ItemKind::FlintAndSteel => 0, + ItemKind::GoldenAxe => 0, + ItemKind::GoldenBoots => 0, + ItemKind::GoldenChestplate => 0, + ItemKind::GoldenHelmet => 0, + ItemKind::GoldenHoe => 0, + ItemKind::GoldenLeggings => 0, + ItemKind::GoldenPickaxe => 0, + ItemKind::GoldenShovel => 0, + ItemKind::GoldenSpear => 0, + ItemKind::GoldenSword => 0, + ItemKind::IronAxe => 0, + ItemKind::IronBoots => 0, + ItemKind::IronChestplate => 0, + ItemKind::IronHelmet => 0, + ItemKind::IronHoe => 0, + ItemKind::IronLeggings => 0, + ItemKind::IronPickaxe => 0, + ItemKind::IronShovel => 0, + ItemKind::IronSpear => 0, + ItemKind::IronSword => 0, + ItemKind::LeatherBoots => 0, + ItemKind::LeatherChestplate => 0, + ItemKind::LeatherHelmet => 0, + ItemKind::LeatherLeggings => 0, + ItemKind::Mace => 0, + ItemKind::NetheriteAxe => 0, + ItemKind::NetheriteBoots => 0, + ItemKind::NetheriteChestplate => 0, + ItemKind::NetheriteHelmet => 0, + ItemKind::NetheriteHoe => 0, + ItemKind::NetheriteLeggings => 0, + ItemKind::NetheritePickaxe => 0, + ItemKind::NetheriteShovel => 0, + ItemKind::NetheriteSpear => 0, + ItemKind::NetheriteSword => 0, + ItemKind::Shears => 0, + ItemKind::Shield => 0, + ItemKind::StoneAxe => 0, + ItemKind::StoneHoe => 0, + ItemKind::StonePickaxe => 0, + ItemKind::StoneShovel => 0, + ItemKind::StoneSpear => 0, + ItemKind::StoneSword => 0, + ItemKind::Trident => 0, + ItemKind::TurtleHelmet => 0, + ItemKind::WarpedFungusOnAStick => 0, + ItemKind::WolfArmor => 0, + ItemKind::WoodenAxe => 0, + ItemKind::WoodenHoe => 0, + ItemKind::WoodenPickaxe => 0, + ItemKind::WoodenShovel => 0, + ItemKind::WoodenSpear => 0, + ItemKind::WoodenSword => 0, _ => return None, }; Some(Damage { amount: value }) } } impl DefaultableComponent for MaxDamage { - fn default_for_item(item: Item) -> Option<Self> { + fn default_for_item(item: ItemKind) -> Option<Self> { let value = match item { - Item::Bow => 384, - Item::Brush => 64, - Item::CarrotOnAStick => 25, - Item::ChainmailBoots => 195, - Item::ChainmailChestplate => 240, - Item::ChainmailHelmet => 165, - Item::ChainmailLeggings => 225, - Item::CopperAxe => 190, - Item::CopperBoots => 143, - Item::CopperChestplate => 176, - Item::CopperHelmet => 121, - Item::CopperHoe => 190, - Item::CopperLeggings => 165, - Item::CopperPickaxe => 190, - Item::CopperShovel => 190, - Item::CopperSpear => 190, - Item::CopperSword => 190, - Item::Crossbow => 465, - Item::DiamondAxe => 1561, - Item::DiamondBoots => 429, - Item::DiamondChestplate => 528, - Item::DiamondHelmet => 363, - Item::DiamondHoe => 1561, - Item::DiamondLeggings => 495, - Item::DiamondPickaxe => 1561, - Item::DiamondShovel => 1561, - Item::DiamondSpear => 1561, - Item::DiamondSword => 1561, - Item::Elytra => 432, - Item::FishingRod => 64, - Item::FlintAndSteel => 64, - Item::GoldenAxe => 32, - Item::GoldenBoots => 91, - Item::GoldenChestplate => 112, - Item::GoldenHelmet => 77, - Item::GoldenHoe => 32, - Item::GoldenLeggings => 105, - Item::GoldenPickaxe => 32, - Item::GoldenShovel => 32, - Item::GoldenSpear => 32, - Item::GoldenSword => 32, - Item::IronAxe => 250, - Item::IronBoots => 195, - Item::IronChestplate => 240, - Item::IronHelmet => 165, - Item::IronHoe => 250, - Item::IronLeggings => 225, - Item::IronPickaxe => 250, - Item::IronShovel => 250, - Item::IronSpear => 250, - Item::IronSword => 250, - Item::LeatherBoots => 65, - Item::LeatherChestplate => 80, - Item::LeatherHelmet => 55, - Item::LeatherLeggings => 75, - Item::Mace => 500, - Item::NetheriteAxe => 2031, - Item::NetheriteBoots => 481, - Item::NetheriteChestplate => 592, - Item::NetheriteHelmet => 407, - Item::NetheriteHoe => 2031, - Item::NetheriteLeggings => 555, - Item::NetheritePickaxe => 2031, - Item::NetheriteShovel => 2031, - Item::NetheriteSpear => 2031, - Item::NetheriteSword => 2031, - Item::Shears => 238, - Item::Shield => 336, - Item::StoneAxe => 131, - Item::StoneHoe => 131, - Item::StonePickaxe => 131, - Item::StoneShovel => 131, - Item::StoneSpear => 131, - Item::StoneSword => 131, - Item::Trident => 250, - Item::TurtleHelmet => 275, - Item::WarpedFungusOnAStick => 100, - Item::WolfArmor => 64, - Item::WoodenAxe => 59, - Item::WoodenHoe => 59, - Item::WoodenPickaxe => 59, - Item::WoodenShovel => 59, - Item::WoodenSpear => 59, - Item::WoodenSword => 59, + ItemKind::Bow => 384, + ItemKind::Brush => 64, + ItemKind::CarrotOnAStick => 25, + ItemKind::ChainmailBoots => 195, + ItemKind::ChainmailChestplate => 240, + ItemKind::ChainmailHelmet => 165, + ItemKind::ChainmailLeggings => 225, + ItemKind::CopperAxe => 190, + ItemKind::CopperBoots => 143, + ItemKind::CopperChestplate => 176, + ItemKind::CopperHelmet => 121, + ItemKind::CopperHoe => 190, + ItemKind::CopperLeggings => 165, + ItemKind::CopperPickaxe => 190, + ItemKind::CopperShovel => 190, + ItemKind::CopperSpear => 190, + ItemKind::CopperSword => 190, + ItemKind::Crossbow => 465, + ItemKind::DiamondAxe => 1561, + ItemKind::DiamondBoots => 429, + ItemKind::DiamondChestplate => 528, + ItemKind::DiamondHelmet => 363, + ItemKind::DiamondHoe => 1561, + ItemKind::DiamondLeggings => 495, + ItemKind::DiamondPickaxe => 1561, + ItemKind::DiamondShovel => 1561, + ItemKind::DiamondSpear => 1561, + ItemKind::DiamondSword => 1561, + ItemKind::Elytra => 432, + ItemKind::FishingRod => 64, + ItemKind::FlintAndSteel => 64, + ItemKind::GoldenAxe => 32, + ItemKind::GoldenBoots => 91, + ItemKind::GoldenChestplate => 112, + ItemKind::GoldenHelmet => 77, + ItemKind::GoldenHoe => 32, + ItemKind::GoldenLeggings => 105, + ItemKind::GoldenPickaxe => 32, + ItemKind::GoldenShovel => 32, + ItemKind::GoldenSpear => 32, + ItemKind::GoldenSword => 32, + ItemKind::IronAxe => 250, + ItemKind::IronBoots => 195, + ItemKind::IronChestplate => 240, + ItemKind::IronHelmet => 165, + ItemKind::IronHoe => 250, + ItemKind::IronLeggings => 225, + ItemKind::IronPickaxe => 250, + ItemKind::IronShovel => 250, + ItemKind::IronSpear => 250, + ItemKind::IronSword => 250, + ItemKind::LeatherBoots => 65, + ItemKind::LeatherChestplate => 80, + ItemKind::LeatherHelmet => 55, + ItemKind::LeatherLeggings => 75, + ItemKind::Mace => 500, + ItemKind::NetheriteAxe => 2031, + ItemKind::NetheriteBoots => 481, + ItemKind::NetheriteChestplate => 592, + ItemKind::NetheriteHelmet => 407, + ItemKind::NetheriteHoe => 2031, + ItemKind::NetheriteLeggings => 555, + ItemKind::NetheritePickaxe => 2031, + ItemKind::NetheriteShovel => 2031, + ItemKind::NetheriteSpear => 2031, + ItemKind::NetheriteSword => 2031, + ItemKind::Shears => 238, + ItemKind::Shield => 336, + ItemKind::StoneAxe => 131, + ItemKind::StoneHoe => 131, + ItemKind::StonePickaxe => 131, + ItemKind::StoneShovel => 131, + ItemKind::StoneSpear => 131, + ItemKind::StoneSword => 131, + ItemKind::Trident => 250, + ItemKind::TurtleHelmet => 275, + ItemKind::WarpedFungusOnAStick => 100, + ItemKind::WolfArmor => 64, + ItemKind::WoodenAxe => 59, + ItemKind::WoodenHoe => 59, + ItemKind::WoodenPickaxe => 59, + ItemKind::WoodenShovel => 59, + ItemKind::WoodenSpear => 59, + ItemKind::WoodenSword => 59, _ => return None, }; Some(MaxDamage { amount: value }) } } impl DefaultableComponent for Repairable { - fn default_for_item(item: Item) -> Option<Self> { + fn default_for_item(item: ItemKind) -> Option<Self> { let value = match item { - Item::ChainmailBoots => HolderSet::Direct { + ItemKind::ChainmailBoots => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_CHAIN_ARMOR .clone() .into_iter() .collect(), }, - Item::ChainmailChestplate => HolderSet::Direct { + ItemKind::ChainmailChestplate => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_CHAIN_ARMOR .clone() .into_iter() .collect(), }, - Item::ChainmailHelmet => HolderSet::Direct { + ItemKind::ChainmailHelmet => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_CHAIN_ARMOR .clone() .into_iter() .collect(), }, - Item::ChainmailLeggings => HolderSet::Direct { + ItemKind::ChainmailLeggings => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_CHAIN_ARMOR .clone() .into_iter() .collect(), }, - Item::CopperAxe => HolderSet::Direct { + ItemKind::CopperAxe => HolderSet::Direct { contents: azalea_registry::tags::items::COPPER_TOOL_MATERIALS .clone() .into_iter() .collect(), }, - Item::CopperBoots => HolderSet::Direct { + ItemKind::CopperBoots => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_COPPER_ARMOR .clone() .into_iter() .collect(), }, - Item::CopperChestplate => HolderSet::Direct { + ItemKind::CopperChestplate => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_COPPER_ARMOR .clone() .into_iter() .collect(), }, - Item::CopperHelmet => HolderSet::Direct { + ItemKind::CopperHelmet => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_COPPER_ARMOR .clone() .into_iter() .collect(), }, - Item::CopperHoe => HolderSet::Direct { + ItemKind::CopperHoe => HolderSet::Direct { contents: azalea_registry::tags::items::COPPER_TOOL_MATERIALS .clone() .into_iter() .collect(), }, - Item::CopperLeggings => HolderSet::Direct { + ItemKind::CopperLeggings => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_COPPER_ARMOR .clone() .into_iter() .collect(), }, - Item::CopperPickaxe => HolderSet::Direct { + ItemKind::CopperPickaxe => HolderSet::Direct { contents: azalea_registry::tags::items::COPPER_TOOL_MATERIALS .clone() .into_iter() .collect(), }, - Item::CopperShovel => HolderSet::Direct { + ItemKind::CopperShovel => HolderSet::Direct { contents: azalea_registry::tags::items::COPPER_TOOL_MATERIALS .clone() .into_iter() .collect(), }, - Item::CopperSpear => HolderSet::Direct { + ItemKind::CopperSpear => HolderSet::Direct { contents: azalea_registry::tags::items::COPPER_TOOL_MATERIALS .clone() .into_iter() .collect(), }, - Item::CopperSword => HolderSet::Direct { + ItemKind::CopperSword => HolderSet::Direct { contents: azalea_registry::tags::items::COPPER_TOOL_MATERIALS .clone() .into_iter() .collect(), }, - Item::DiamondAxe => HolderSet::Direct { + ItemKind::DiamondAxe => HolderSet::Direct { contents: azalea_registry::tags::items::DIAMOND_TOOL_MATERIALS .clone() .into_iter() .collect(), }, - Item::DiamondBoots => HolderSet::Direct { + ItemKind::DiamondBoots => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_DIAMOND_ARMOR .clone() .into_iter() .collect(), }, - Item::DiamondChestplate => HolderSet::Direct { + ItemKind::DiamondChestplate => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_DIAMOND_ARMOR .clone() .into_iter() .collect(), }, - Item::DiamondHelmet => HolderSet::Direct { + ItemKind::DiamondHelmet => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_DIAMOND_ARMOR .clone() .into_iter() .collect(), }, - Item::DiamondHoe => HolderSet::Direct { + ItemKind::DiamondHoe => HolderSet::Direct { contents: azalea_registry::tags::items::DIAMOND_TOOL_MATERIALS .clone() .into_iter() .collect(), }, - Item::DiamondLeggings => HolderSet::Direct { + ItemKind::DiamondLeggings => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_DIAMOND_ARMOR .clone() .into_iter() .collect(), }, - Item::DiamondPickaxe => HolderSet::Direct { + ItemKind::DiamondPickaxe => HolderSet::Direct { contents: azalea_registry::tags::items::DIAMOND_TOOL_MATERIALS .clone() .into_iter() .collect(), }, - Item::DiamondShovel => HolderSet::Direct { + ItemKind::DiamondShovel => HolderSet::Direct { contents: azalea_registry::tags::items::DIAMOND_TOOL_MATERIALS .clone() .into_iter() .collect(), }, - Item::DiamondSpear => HolderSet::Direct { + ItemKind::DiamondSpear => HolderSet::Direct { contents: azalea_registry::tags::items::DIAMOND_TOOL_MATERIALS .clone() .into_iter() .collect(), }, - Item::DiamondSword => HolderSet::Direct { + ItemKind::DiamondSword => HolderSet::Direct { contents: azalea_registry::tags::items::DIAMOND_TOOL_MATERIALS .clone() .into_iter() .collect(), }, - Item::Elytra => HolderSet::Direct { - contents: vec![Item::PhantomMembrane], + ItemKind::Elytra => HolderSet::Direct { + contents: vec![ItemKind::PhantomMembrane], }, - Item::GoldenAxe => HolderSet::Direct { + ItemKind::GoldenAxe => HolderSet::Direct { contents: azalea_registry::tags::items::GOLD_TOOL_MATERIALS .clone() .into_iter() .collect(), }, - Item::GoldenBoots => HolderSet::Direct { + ItemKind::GoldenBoots => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_GOLD_ARMOR .clone() .into_iter() .collect(), }, - Item::GoldenChestplate => HolderSet::Direct { + ItemKind::GoldenChestplate => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_GOLD_ARMOR .clone() .into_iter() .collect(), }, - Item::GoldenHelmet => HolderSet::Direct { + ItemKind::GoldenHelmet => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_GOLD_ARMOR .clone() .into_iter() .collect(), }, - Item::GoldenHoe => HolderSet::Direct { + ItemKind::GoldenHoe => HolderSet::Direct { contents: azalea_registry::tags::items::GOLD_TOOL_MATERIALS .clone() .into_iter() .collect(), }, - Item::GoldenLeggings => HolderSet::Direct { + ItemKind::GoldenLeggings => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_GOLD_ARMOR .clone() .into_iter() .collect(), }, - Item::GoldenPickaxe => HolderSet::Direct { + ItemKind::GoldenPickaxe => HolderSet::Direct { contents: azalea_registry::tags::items::GOLD_TOOL_MATERIALS .clone() .into_iter() .collect(), }, - Item::GoldenShovel => HolderSet::Direct { + ItemKind::GoldenShovel => HolderSet::Direct { contents: azalea_registry::tags::items::GOLD_TOOL_MATERIALS .clone() .into_iter() .collect(), }, - Item::GoldenSpear => HolderSet::Direct { + ItemKind::GoldenSpear => HolderSet::Direct { contents: azalea_registry::tags::items::GOLD_TOOL_MATERIALS .clone() .into_iter() .collect(), }, - Item::GoldenSword => HolderSet::Direct { + ItemKind::GoldenSword => HolderSet::Direct { contents: azalea_registry::tags::items::GOLD_TOOL_MATERIALS .clone() .into_iter() .collect(), }, - Item::IronAxe => HolderSet::Direct { + ItemKind::IronAxe => HolderSet::Direct { contents: azalea_registry::tags::items::IRON_TOOL_MATERIALS .clone() .into_iter() .collect(), }, - Item::IronBoots => HolderSet::Direct { + ItemKind::IronBoots => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_IRON_ARMOR .clone() .into_iter() .collect(), }, - Item::IronChestplate => HolderSet::Direct { + ItemKind::IronChestplate => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_IRON_ARMOR .clone() .into_iter() .collect(), }, - Item::IronHelmet => HolderSet::Direct { + ItemKind::IronHelmet => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_IRON_ARMOR .clone() .into_iter() .collect(), }, - Item::IronHoe => HolderSet::Direct { + ItemKind::IronHoe => HolderSet::Direct { contents: azalea_registry::tags::items::IRON_TOOL_MATERIALS .clone() .into_iter() .collect(), }, - Item::IronLeggings => HolderSet::Direct { + ItemKind::IronLeggings => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_IRON_ARMOR .clone() .into_iter() .collect(), }, - Item::IronPickaxe => HolderSet::Direct { + ItemKind::IronPickaxe => HolderSet::Direct { contents: azalea_registry::tags::items::IRON_TOOL_MATERIALS .clone() .into_iter() .collect(), }, - Item::IronShovel => HolderSet::Direct { + ItemKind::IronShovel => HolderSet::Direct { contents: azalea_registry::tags::items::IRON_TOOL_MATERIALS .clone() .into_iter() .collect(), }, - Item::IronSpear => HolderSet::Direct { + ItemKind::IronSpear => HolderSet::Direct { contents: azalea_registry::tags::items::IRON_TOOL_MATERIALS .clone() .into_iter() .collect(), }, - Item::IronSword => HolderSet::Direct { + ItemKind::IronSword => HolderSet::Direct { contents: azalea_registry::tags::items::IRON_TOOL_MATERIALS .clone() .into_iter() .collect(), }, - Item::LeatherBoots => HolderSet::Direct { + ItemKind::LeatherBoots => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_LEATHER_ARMOR .clone() .into_iter() .collect(), }, - Item::LeatherChestplate => HolderSet::Direct { + ItemKind::LeatherChestplate => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_LEATHER_ARMOR .clone() .into_iter() .collect(), }, - Item::LeatherHelmet => HolderSet::Direct { + ItemKind::LeatherHelmet => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_LEATHER_ARMOR .clone() .into_iter() .collect(), }, - Item::LeatherLeggings => HolderSet::Direct { + ItemKind::LeatherLeggings => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_LEATHER_ARMOR .clone() .into_iter() .collect(), }, - Item::Mace => HolderSet::Direct { - contents: vec![Item::BreezeRod], + ItemKind::Mace => HolderSet::Direct { + contents: vec![ItemKind::BreezeRod], }, - Item::NetheriteAxe => HolderSet::Direct { + ItemKind::NetheriteAxe => HolderSet::Direct { contents: azalea_registry::tags::items::NETHERITE_TOOL_MATERIALS .clone() .into_iter() .collect(), }, - Item::NetheriteBoots => HolderSet::Direct { + ItemKind::NetheriteBoots => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_NETHERITE_ARMOR .clone() .into_iter() .collect(), }, - Item::NetheriteChestplate => HolderSet::Direct { + ItemKind::NetheriteChestplate => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_NETHERITE_ARMOR .clone() .into_iter() .collect(), }, - Item::NetheriteHelmet => HolderSet::Direct { + ItemKind::NetheriteHelmet => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_NETHERITE_ARMOR .clone() .into_iter() .collect(), }, - Item::NetheriteHoe => HolderSet::Direct { + ItemKind::NetheriteHoe => HolderSet::Direct { contents: azalea_registry::tags::items::NETHERITE_TOOL_MATERIALS .clone() .into_iter() .collect(), }, - Item::NetheriteLeggings => HolderSet::Direct { + ItemKind::NetheriteLeggings => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_NETHERITE_ARMOR .clone() .into_iter() .collect(), }, - Item::NetheritePickaxe => HolderSet::Direct { + ItemKind::NetheritePickaxe => HolderSet::Direct { contents: azalea_registry::tags::items::NETHERITE_TOOL_MATERIALS .clone() .into_iter() .collect(), }, - Item::NetheriteShovel => HolderSet::Direct { + ItemKind::NetheriteShovel => HolderSet::Direct { contents: azalea_registry::tags::items::NETHERITE_TOOL_MATERIALS .clone() .into_iter() .collect(), }, - Item::NetheriteSpear => HolderSet::Direct { + ItemKind::NetheriteSpear => HolderSet::Direct { contents: azalea_registry::tags::items::NETHERITE_TOOL_MATERIALS .clone() .into_iter() .collect(), }, - Item::NetheriteSword => HolderSet::Direct { + ItemKind::NetheriteSword => HolderSet::Direct { contents: azalea_registry::tags::items::NETHERITE_TOOL_MATERIALS .clone() .into_iter() .collect(), }, - Item::Shield => HolderSet::Direct { + ItemKind::Shield => HolderSet::Direct { contents: azalea_registry::tags::items::WOODEN_TOOL_MATERIALS .clone() .into_iter() .collect(), }, - Item::StoneAxe => HolderSet::Direct { + ItemKind::StoneAxe => HolderSet::Direct { contents: azalea_registry::tags::items::STONE_TOOL_MATERIALS .clone() .into_iter() .collect(), }, - Item::StoneHoe => HolderSet::Direct { + ItemKind::StoneHoe => HolderSet::Direct { contents: azalea_registry::tags::items::STONE_TOOL_MATERIALS .clone() .into_iter() .collect(), }, - Item::StonePickaxe => HolderSet::Direct { + ItemKind::StonePickaxe => HolderSet::Direct { contents: azalea_registry::tags::items::STONE_TOOL_MATERIALS .clone() .into_iter() .collect(), }, - Item::StoneShovel => HolderSet::Direct { + ItemKind::StoneShovel => HolderSet::Direct { contents: azalea_registry::tags::items::STONE_TOOL_MATERIALS .clone() .into_iter() .collect(), }, - Item::StoneSpear => HolderSet::Direct { + ItemKind::StoneSpear => HolderSet::Direct { contents: azalea_registry::tags::items::STONE_TOOL_MATERIALS .clone() .into_iter() .collect(), }, - Item::StoneSword => HolderSet::Direct { + ItemKind::StoneSword => HolderSet::Direct { contents: azalea_registry::tags::items::STONE_TOOL_MATERIALS .clone() .into_iter() .collect(), }, - Item::TurtleHelmet => HolderSet::Direct { + ItemKind::TurtleHelmet => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_TURTLE_HELMET .clone() .into_iter() .collect(), }, - Item::WolfArmor => HolderSet::Direct { + ItemKind::WolfArmor => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_WOLF_ARMOR .clone() .into_iter() .collect(), }, - Item::WoodenAxe => HolderSet::Direct { + ItemKind::WoodenAxe => HolderSet::Direct { contents: azalea_registry::tags::items::WOODEN_TOOL_MATERIALS .clone() .into_iter() .collect(), }, - Item::WoodenHoe => HolderSet::Direct { + ItemKind::WoodenHoe => HolderSet::Direct { contents: azalea_registry::tags::items::WOODEN_TOOL_MATERIALS .clone() .into_iter() .collect(), }, - Item::WoodenPickaxe => HolderSet::Direct { + ItemKind::WoodenPickaxe => HolderSet::Direct { contents: azalea_registry::tags::items::WOODEN_TOOL_MATERIALS .clone() .into_iter() .collect(), }, - Item::WoodenShovel => HolderSet::Direct { + ItemKind::WoodenShovel => HolderSet::Direct { contents: azalea_registry::tags::items::WOODEN_TOOL_MATERIALS .clone() .into_iter() .collect(), }, - Item::WoodenSpear => HolderSet::Direct { + ItemKind::WoodenSpear => HolderSet::Direct { contents: azalea_registry::tags::items::WOODEN_TOOL_MATERIALS .clone() .into_iter() .collect(), }, - Item::WoodenSword => HolderSet::Direct { + ItemKind::WoodenSword => HolderSet::Direct { contents: azalea_registry::tags::items::WOODEN_TOOL_MATERIALS .clone() .into_iter() @@ -4679,17 +4689,17 @@ impl DefaultableComponent for Repairable { } } impl DefaultableComponent for UseCooldown { - fn default_for_item(item: Item) -> Option<Self> { + fn default_for_item(item: ItemKind) -> Option<Self> { let value = match item { - Item::ChorusFruit => UseCooldown { + ItemKind::ChorusFruit => UseCooldown { seconds: 1.0, ..UseCooldown::new() }, - Item::EnderPearl => UseCooldown { + ItemKind::EnderPearl => UseCooldown { seconds: 1.0, ..UseCooldown::new() }, - Item::WindCharge => UseCooldown { + ItemKind::WindCharge => UseCooldown { seconds: 0.5, ..UseCooldown::new() }, @@ -4699,9 +4709,9 @@ impl DefaultableComponent for UseCooldown { } } impl DefaultableComponent for Tool { - fn default_for_item(item: Item) -> Option<Self> { + fn default_for_item(item: ItemKind) -> Option<Self> { let value = match item { - Item::CopperAxe => Tool { + ItemKind::CopperAxe => Tool { rules: vec![ ToolRule { blocks: HolderSet::Direct { @@ -4726,7 +4736,7 @@ impl DefaultableComponent for Tool { ], ..Tool::new() }, - Item::CopperHoe => Tool { + ItemKind::CopperHoe => Tool { rules: vec![ ToolRule { blocks: HolderSet::Direct { @@ -4751,7 +4761,7 @@ impl DefaultableComponent for Tool { ], ..Tool::new() }, - Item::CopperPickaxe => Tool { + ItemKind::CopperPickaxe => Tool { rules: vec![ ToolRule { blocks: HolderSet::Direct { @@ -4776,7 +4786,7 @@ impl DefaultableComponent for Tool { ], ..Tool::new() }, - Item::CopperShovel => Tool { + ItemKind::CopperShovel => Tool { rules: vec![ ToolRule { blocks: HolderSet::Direct { @@ -4801,13 +4811,13 @@ impl DefaultableComponent for Tool { ], ..Tool::new() }, - Item::CopperSword => Tool { + ItemKind::CopperSword => Tool { can_destroy_blocks_in_creative: false, damage_per_block: 2, rules: vec![ ToolRule { blocks: HolderSet::Direct { - contents: vec![Block::Cobweb], + contents: vec![BlockKind::Cobweb], }, correct_for_drops: Some(true), speed: Some(15.0), @@ -4835,7 +4845,7 @@ impl DefaultableComponent for Tool { ], ..Tool::new() }, - Item::DiamondAxe => Tool { + ItemKind::DiamondAxe => Tool { rules: vec![ ToolRule { blocks: HolderSet::Direct { @@ -4860,7 +4870,7 @@ impl DefaultableComponent for Tool { ], ..Tool::new() }, - Item::DiamondHoe => Tool { + ItemKind::DiamondHoe => Tool { rules: vec![ ToolRule { blocks: HolderSet::Direct { @@ -4885,7 +4895,7 @@ impl DefaultableComponent for Tool { ], ..Tool::new() }, - Item::DiamondPickaxe => Tool { + ItemKind::DiamondPickaxe => Tool { rules: vec![ ToolRule { blocks: HolderSet::Direct { @@ -4910,7 +4920,7 @@ impl DefaultableComponent for Tool { ], ..Tool::new() }, - Item::DiamondShovel => Tool { + ItemKind::DiamondShovel => Tool { rules: vec![ ToolRule { blocks: HolderSet::Direct { @@ -4935,13 +4945,13 @@ impl DefaultableComponent for Tool { ], ..Tool::new() }, - Item::DiamondSword => Tool { + ItemKind::DiamondSword => Tool { can_destroy_blocks_in_creative: false, damage_per_block: 2, rules: vec![ ToolRule { blocks: HolderSet::Direct { - contents: vec![Block::Cobweb], + contents: vec![BlockKind::Cobweb], }, correct_for_drops: Some(true), speed: Some(15.0), @@ -4969,7 +4979,7 @@ impl DefaultableComponent for Tool { ], ..Tool::new() }, - Item::GoldenAxe => Tool { + ItemKind::GoldenAxe => Tool { rules: vec![ ToolRule { blocks: HolderSet::Direct { @@ -4994,7 +5004,7 @@ impl DefaultableComponent for Tool { ], ..Tool::new() }, - Item::GoldenHoe => Tool { + ItemKind::GoldenHoe => Tool { rules: vec![ ToolRule { blocks: HolderSet::Direct { @@ -5019,7 +5029,7 @@ impl DefaultableComponent for Tool { ], ..Tool::new() }, - Item::GoldenPickaxe => Tool { + ItemKind::GoldenPickaxe => Tool { rules: vec![ ToolRule { blocks: HolderSet::Direct { @@ -5044,7 +5054,7 @@ impl DefaultableComponent for Tool { ], ..Tool::new() }, - Item::GoldenShovel => Tool { + ItemKind::GoldenShovel => Tool { rules: vec![ ToolRule { blocks: HolderSet::Direct { @@ -5069,13 +5079,13 @@ impl DefaultableComponent for Tool { ], ..Tool::new() }, - Item::GoldenSword => Tool { + ItemKind::GoldenSword => Tool { can_destroy_blocks_in_creative: false, damage_per_block: 2, rules: vec![ ToolRule { blocks: HolderSet::Direct { - contents: vec![Block::Cobweb], + contents: vec![BlockKind::Cobweb], }, correct_for_drops: Some(true), speed: Some(15.0), @@ -5103,7 +5113,7 @@ impl DefaultableComponent for Tool { ], ..Tool::new() }, - Item::IronAxe => Tool { + ItemKind::IronAxe => Tool { rules: vec![ ToolRule { blocks: HolderSet::Direct { @@ -5128,7 +5138,7 @@ impl DefaultableComponent for Tool { ], ..Tool::new() }, - Item::IronHoe => Tool { + ItemKind::IronHoe => Tool { rules: vec![ ToolRule { blocks: HolderSet::Direct { @@ -5153,7 +5163,7 @@ impl DefaultableComponent for Tool { ], ..Tool::new() }, - Item::IronPickaxe => Tool { + ItemKind::IronPickaxe => Tool { rules: vec![ ToolRule { blocks: HolderSet::Direct { @@ -5178,7 +5188,7 @@ impl DefaultableComponent for Tool { ], ..Tool::new() }, - Item::IronShovel => Tool { + ItemKind::IronShovel => Tool { rules: vec![ ToolRule { blocks: HolderSet::Direct { @@ -5203,13 +5213,13 @@ impl DefaultableComponent for Tool { ], ..Tool::new() }, - Item::IronSword => Tool { + ItemKind::IronSword => Tool { can_destroy_blocks_in_creative: false, damage_per_block: 2, rules: vec![ ToolRule { blocks: HolderSet::Direct { - contents: vec![Block::Cobweb], + contents: vec![BlockKind::Cobweb], }, correct_for_drops: Some(true), speed: Some(15.0), @@ -5237,13 +5247,13 @@ impl DefaultableComponent for Tool { ], ..Tool::new() }, - Item::Mace => Tool { + ItemKind::Mace => Tool { can_destroy_blocks_in_creative: false, damage_per_block: 2, rules: vec![], ..Tool::new() }, - Item::NetheriteAxe => Tool { + ItemKind::NetheriteAxe => Tool { rules: vec![ ToolRule { blocks: HolderSet::Direct { @@ -5268,7 +5278,7 @@ impl DefaultableComponent for Tool { ], ..Tool::new() }, - Item::NetheriteHoe => Tool { + ItemKind::NetheriteHoe => Tool { rules: vec![ ToolRule { blocks: HolderSet::Direct { @@ -5293,7 +5303,7 @@ impl DefaultableComponent for Tool { ], ..Tool::new() }, - Item::NetheritePickaxe => Tool { + ItemKind::NetheritePickaxe => Tool { rules: vec![ ToolRule { blocks: HolderSet::Direct { @@ -5318,7 +5328,7 @@ impl DefaultableComponent for Tool { ], ..Tool::new() }, - Item::NetheriteShovel => Tool { + ItemKind::NetheriteShovel => Tool { rules: vec![ ToolRule { blocks: HolderSet::Direct { @@ -5343,13 +5353,13 @@ impl DefaultableComponent for Tool { ], ..Tool::new() }, - Item::NetheriteSword => Tool { + ItemKind::NetheriteSword => Tool { can_destroy_blocks_in_creative: false, damage_per_block: 2, rules: vec![ ToolRule { blocks: HolderSet::Direct { - contents: vec![Block::Cobweb], + contents: vec![BlockKind::Cobweb], }, correct_for_drops: Some(true), speed: Some(15.0), @@ -5377,11 +5387,11 @@ impl DefaultableComponent for Tool { ], ..Tool::new() }, - Item::Shears => Tool { + ItemKind::Shears => Tool { rules: vec![ ToolRule { blocks: HolderSet::Direct { - contents: vec![Block::Cobweb], + contents: vec![BlockKind::Cobweb], }, correct_for_drops: Some(true), speed: Some(15.0), @@ -5408,7 +5418,7 @@ impl DefaultableComponent for Tool { }, ToolRule { blocks: HolderSet::Direct { - contents: vec![Block::Vine, Block::GlowLichen], + contents: vec![BlockKind::Vine, BlockKind::GlowLichen], }, speed: Some(2.0), ..ToolRule::new() @@ -5416,7 +5426,7 @@ impl DefaultableComponent for Tool { ], ..Tool::new() }, - Item::StoneAxe => Tool { + ItemKind::StoneAxe => Tool { rules: vec![ ToolRule { blocks: HolderSet::Direct { @@ -5441,7 +5451,7 @@ impl DefaultableComponent for Tool { ], ..Tool::new() }, - Item::StoneHoe => Tool { + ItemKind::StoneHoe => Tool { rules: vec![ ToolRule { blocks: HolderSet::Direct { @@ -5466,7 +5476,7 @@ impl DefaultableComponent for Tool { ], ..Tool::new() }, - Item::StonePickaxe => Tool { + ItemKind::StonePickaxe => Tool { rules: vec![ ToolRule { blocks: HolderSet::Direct { @@ -5491,7 +5501,7 @@ impl DefaultableComponent for Tool { ], ..Tool::new() }, - Item::StoneShovel => Tool { + ItemKind::StoneShovel => Tool { rules: vec![ ToolRule { blocks: HolderSet::Direct { @@ -5516,13 +5526,13 @@ impl DefaultableComponent for Tool { ], ..Tool::new() }, - Item::StoneSword => Tool { + ItemKind::StoneSword => Tool { can_destroy_blocks_in_creative: false, damage_per_block: 2, rules: vec![ ToolRule { blocks: HolderSet::Direct { - contents: vec![Block::Cobweb], + contents: vec![BlockKind::Cobweb], }, correct_for_drops: Some(true), speed: Some(15.0), @@ -5550,13 +5560,13 @@ impl DefaultableComponent for Tool { ], ..Tool::new() }, - Item::Trident => Tool { + ItemKind::Trident => Tool { can_destroy_blocks_in_creative: false, damage_per_block: 2, rules: vec![], ..Tool::new() }, - Item::WoodenAxe => Tool { + ItemKind::WoodenAxe => Tool { rules: vec![ ToolRule { blocks: HolderSet::Direct { @@ -5581,7 +5591,7 @@ impl DefaultableComponent for Tool { ], ..Tool::new() }, - Item::WoodenHoe => Tool { + ItemKind::WoodenHoe => Tool { rules: vec![ ToolRule { blocks: HolderSet::Direct { @@ -5606,7 +5616,7 @@ impl DefaultableComponent for Tool { ], ..Tool::new() }, - Item::WoodenPickaxe => Tool { + ItemKind::WoodenPickaxe => Tool { rules: vec![ ToolRule { blocks: HolderSet::Direct { @@ -5631,7 +5641,7 @@ impl DefaultableComponent for Tool { ], ..Tool::new() }, - Item::WoodenShovel => Tool { + ItemKind::WoodenShovel => Tool { rules: vec![ ToolRule { blocks: HolderSet::Direct { @@ -5656,13 +5666,13 @@ impl DefaultableComponent for Tool { ], ..Tool::new() }, - Item::WoodenSword => Tool { + ItemKind::WoodenSword => Tool { can_destroy_blocks_in_creative: false, damage_per_block: 2, rules: vec![ ToolRule { blocks: HolderSet::Direct { - contents: vec![Block::Cobweb], + contents: vec![BlockKind::Cobweb], }, correct_for_drops: Some(true), speed: Some(15.0), @@ -5696,145 +5706,145 @@ impl DefaultableComponent for Tool { } } impl DefaultableComponent for Weapon { - fn default_for_item(item: Item) -> Option<Self> { + fn default_for_item(item: ItemKind) -> Option<Self> { let value = match item { - Item::CopperAxe => Weapon { + ItemKind::CopperAxe => Weapon { disable_blocking_for_seconds: 5.0, item_damage_per_attack: 2, }, - Item::CopperHoe => Weapon { + ItemKind::CopperHoe => Weapon { item_damage_per_attack: 2, ..Weapon::new() }, - Item::CopperPickaxe => Weapon { + ItemKind::CopperPickaxe => Weapon { item_damage_per_attack: 2, ..Weapon::new() }, - Item::CopperShovel => Weapon { + ItemKind::CopperShovel => Weapon { item_damage_per_attack: 2, ..Weapon::new() }, - Item::CopperSpear => Weapon::new(), - Item::CopperSword => Weapon::new(), - Item::DiamondAxe => Weapon { + ItemKind::CopperSpear => Weapon::new(), + ItemKind::CopperSword => Weapon::new(), + ItemKind::DiamondAxe => Weapon { disable_blocking_for_seconds: 5.0, item_damage_per_attack: 2, }, - Item::DiamondHoe => Weapon { + ItemKind::DiamondHoe => Weapon { item_damage_per_attack: 2, ..Weapon::new() }, - Item::DiamondPickaxe => Weapon { + ItemKind::DiamondPickaxe => Weapon { item_damage_per_attack: 2, ..Weapon::new() }, - Item::DiamondShovel => Weapon { + ItemKind::DiamondShovel => Weapon { item_damage_per_attack: 2, ..Weapon::new() }, - Item::DiamondSpear => Weapon::new(), - Item::DiamondSword => Weapon::new(), - Item::GoldenAxe => Weapon { + ItemKind::DiamondSpear => Weapon::new(), + ItemKind::DiamondSword => Weapon::new(), + ItemKind::GoldenAxe => Weapon { disable_blocking_for_seconds: 5.0, item_damage_per_attack: 2, }, - Item::GoldenHoe => Weapon { + ItemKind::GoldenHoe => Weapon { item_damage_per_attack: 2, ..Weapon::new() }, - Item::GoldenPickaxe => Weapon { + ItemKind::GoldenPickaxe => Weapon { item_damage_per_attack: 2, ..Weapon::new() }, - Item::GoldenShovel => Weapon { + ItemKind::GoldenShovel => Weapon { item_damage_per_attack: 2, ..Weapon::new() }, - Item::GoldenSpear => Weapon::new(), - Item::GoldenSword => Weapon::new(), - Item::IronAxe => Weapon { + ItemKind::GoldenSpear => Weapon::new(), + ItemKind::GoldenSword => Weapon::new(), + ItemKind::IronAxe => Weapon { disable_blocking_for_seconds: 5.0, item_damage_per_attack: 2, }, - Item::IronHoe => Weapon { + ItemKind::IronHoe => Weapon { item_damage_per_attack: 2, ..Weapon::new() }, - Item::IronPickaxe => Weapon { + ItemKind::IronPickaxe => Weapon { item_damage_per_attack: 2, ..Weapon::new() }, - Item::IronShovel => Weapon { + ItemKind::IronShovel => Weapon { item_damage_per_attack: 2, ..Weapon::new() }, - Item::IronSpear => Weapon::new(), - Item::IronSword => Weapon::new(), - Item::Mace => Weapon::new(), - Item::NetheriteAxe => Weapon { + ItemKind::IronSpear => Weapon::new(), + ItemKind::IronSword => Weapon::new(), + ItemKind::Mace => Weapon::new(), + ItemKind::NetheriteAxe => Weapon { disable_blocking_for_seconds: 5.0, item_damage_per_attack: 2, }, - Item::NetheriteHoe => Weapon { + ItemKind::NetheriteHoe => Weapon { item_damage_per_attack: 2, ..Weapon::new() }, - Item::NetheritePickaxe => Weapon { + ItemKind::NetheritePickaxe => Weapon { item_damage_per_attack: 2, ..Weapon::new() }, - Item::NetheriteShovel => Weapon { + ItemKind::NetheriteShovel => Weapon { item_damage_per_attack: 2, ..Weapon::new() }, - Item::NetheriteSpear => Weapon::new(), - Item::NetheriteSword => Weapon::new(), - Item::StoneAxe => Weapon { + ItemKind::NetheriteSpear => Weapon::new(), + ItemKind::NetheriteSword => Weapon::new(), + ItemKind::StoneAxe => Weapon { disable_blocking_for_seconds: 5.0, item_damage_per_attack: 2, }, - Item::StoneHoe => Weapon { + ItemKind::StoneHoe => Weapon { item_damage_per_attack: 2, ..Weapon::new() }, - Item::StonePickaxe => Weapon { + ItemKind::StonePickaxe => Weapon { item_damage_per_attack: 2, ..Weapon::new() }, - Item::StoneShovel => Weapon { + ItemKind::StoneShovel => Weapon { item_damage_per_attack: 2, ..Weapon::new() }, - Item::StoneSpear => Weapon::new(), - Item::StoneSword => Weapon::new(), - Item::Trident => Weapon::new(), - Item::WoodenAxe => Weapon { + ItemKind::StoneSpear => Weapon::new(), + ItemKind::StoneSword => Weapon::new(), + ItemKind::Trident => Weapon::new(), + ItemKind::WoodenAxe => Weapon { disable_blocking_for_seconds: 5.0, item_damage_per_attack: 2, }, - Item::WoodenHoe => Weapon { + ItemKind::WoodenHoe => Weapon { item_damage_per_attack: 2, ..Weapon::new() }, - Item::WoodenPickaxe => Weapon { + ItemKind::WoodenPickaxe => Weapon { item_damage_per_attack: 2, ..Weapon::new() }, - Item::WoodenShovel => Weapon { + ItemKind::WoodenShovel => Weapon { item_damage_per_attack: 2, ..Weapon::new() }, - Item::WoodenSpear => Weapon::new(), - Item::WoodenSword => Weapon::new(), + ItemKind::WoodenSpear => Weapon::new(), + ItemKind::WoodenSword => Weapon::new(), _ => return None, }; Some(value) } } impl DefaultableComponent for AttackRange { - fn default_for_item(item: Item) -> Option<Self> { + fn default_for_item(item: ItemKind) -> Option<Self> { let value = match item { - Item::CopperSpear => AttackRange { + ItemKind::CopperSpear => AttackRange { hitbox_margin: 0.125, max_creative_reach: 6.5, max_reach: 4.5, @@ -5842,7 +5852,7 @@ impl DefaultableComponent for AttackRange { min_reach: 2.0, mob_factor: 0.5, }, - Item::DiamondSpear => AttackRange { + ItemKind::DiamondSpear => AttackRange { hitbox_margin: 0.125, max_creative_reach: 6.5, max_reach: 4.5, @@ -5850,7 +5860,7 @@ impl DefaultableComponent for AttackRange { min_reach: 2.0, mob_factor: 0.5, }, - Item::GoldenSpear => AttackRange { + ItemKind::GoldenSpear => AttackRange { hitbox_margin: 0.125, max_creative_reach: 6.5, max_reach: 4.5, @@ -5858,7 +5868,7 @@ impl DefaultableComponent for AttackRange { min_reach: 2.0, mob_factor: 0.5, }, - Item::IronSpear => AttackRange { + ItemKind::IronSpear => AttackRange { hitbox_margin: 0.125, max_creative_reach: 6.5, max_reach: 4.5, @@ -5866,7 +5876,7 @@ impl DefaultableComponent for AttackRange { min_reach: 2.0, mob_factor: 0.5, }, - Item::NetheriteSpear => AttackRange { + ItemKind::NetheriteSpear => AttackRange { hitbox_margin: 0.125, max_creative_reach: 6.5, max_reach: 4.5, @@ -5874,7 +5884,7 @@ impl DefaultableComponent for AttackRange { min_reach: 2.0, mob_factor: 0.5, }, - Item::StoneSpear => AttackRange { + ItemKind::StoneSpear => AttackRange { hitbox_margin: 0.125, max_creative_reach: 6.5, max_reach: 4.5, @@ -5882,7 +5892,7 @@ impl DefaultableComponent for AttackRange { min_reach: 2.0, mob_factor: 0.5, }, - Item::WoodenSpear => AttackRange { + ItemKind::WoodenSpear => AttackRange { hitbox_margin: 0.125, max_creative_reach: 6.5, max_reach: 4.5, @@ -5896,24 +5906,38 @@ impl DefaultableComponent for AttackRange { } } impl DefaultableComponent for DamageType { - fn default_for_item(item: Item) -> Option<Self> { + fn default_for_item(item: ItemKind) -> Option<Self> { let value = match item { - 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)), + ItemKind::CopperSpear => { + DamageType::Registry(azalea_registry::data::DamageKind::new_raw(0)) + } + ItemKind::DiamondSpear => { + DamageType::Registry(azalea_registry::data::DamageKind::new_raw(0)) + } + ItemKind::GoldenSpear => { + DamageType::Registry(azalea_registry::data::DamageKind::new_raw(0)) + } + ItemKind::IronSpear => { + DamageType::Registry(azalea_registry::data::DamageKind::new_raw(0)) + } + ItemKind::NetheriteSpear => { + DamageType::Registry(azalea_registry::data::DamageKind::new_raw(0)) + } + ItemKind::StoneSpear => { + DamageType::Registry(azalea_registry::data::DamageKind::new_raw(0)) + } + ItemKind::WoodenSpear => { + DamageType::Registry(azalea_registry::data::DamageKind::new_raw(0)) + } _ => return None, }; Some(value) } } impl DefaultableComponent for KineticWeapon { - fn default_for_item(item: Item) -> Option<Self> { + fn default_for_item(item: ItemKind) -> Option<Self> { let value = match item { - Item::CopperSpear => KineticWeapon { + ItemKind::CopperSpear => KineticWeapon { damage_conditions: Some(KineticWeaponCondition { max_duration_ticks: 250, min_relative_speed: 4.6, @@ -5936,7 +5960,7 @@ impl DefaultableComponent for KineticWeapon { sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearUse)), ..KineticWeapon::new() }, - Item::DiamondSpear => KineticWeapon { + ItemKind::DiamondSpear => KineticWeapon { damage_conditions: Some(KineticWeaponCondition { max_duration_ticks: 200, min_relative_speed: 4.6, @@ -5959,7 +5983,7 @@ impl DefaultableComponent for KineticWeapon { sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearUse)), ..KineticWeapon::new() }, - Item::GoldenSpear => KineticWeapon { + ItemKind::GoldenSpear => KineticWeapon { damage_conditions: Some(KineticWeaponCondition { max_duration_ticks: 275, min_relative_speed: 4.6, @@ -5982,7 +6006,7 @@ impl DefaultableComponent for KineticWeapon { sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearUse)), ..KineticWeapon::new() }, - Item::IronSpear => KineticWeapon { + ItemKind::IronSpear => KineticWeapon { damage_conditions: Some(KineticWeaponCondition { max_duration_ticks: 225, min_relative_speed: 4.6, @@ -6005,7 +6029,7 @@ impl DefaultableComponent for KineticWeapon { sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearUse)), ..KineticWeapon::new() }, - Item::NetheriteSpear => KineticWeapon { + ItemKind::NetheriteSpear => KineticWeapon { damage_conditions: Some(KineticWeaponCondition { max_duration_ticks: 175, min_relative_speed: 4.6, @@ -6028,7 +6052,7 @@ impl DefaultableComponent for KineticWeapon { sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearUse)), ..KineticWeapon::new() }, - Item::StoneSpear => KineticWeapon { + ItemKind::StoneSpear => KineticWeapon { damage_conditions: Some(KineticWeaponCondition { max_duration_ticks: 275, min_relative_speed: 4.6, @@ -6051,7 +6075,7 @@ impl DefaultableComponent for KineticWeapon { sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearUse)), ..KineticWeapon::new() }, - Item::WoodenSpear => KineticWeapon { + ItemKind::WoodenSpear => KineticWeapon { damage_conditions: Some(KineticWeaponCondition { max_duration_ticks: 300, min_relative_speed: 4.6, @@ -6084,66 +6108,66 @@ impl DefaultableComponent for KineticWeapon { } } impl DefaultableComponent for MinimumAttackCharge { - fn default_for_item(item: Item) -> Option<Self> { + fn default_for_item(item: ItemKind) -> Option<Self> { 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, + ItemKind::CopperSpear => 1.0, + ItemKind::DiamondSpear => 1.0, + ItemKind::GoldenSpear => 1.0, + ItemKind::IronSpear => 1.0, + ItemKind::NetheriteSpear => 1.0, + ItemKind::StoneSpear => 1.0, + ItemKind::WoodenSpear => 1.0, _ => return None, }; Some(MinimumAttackCharge { value: value }) } } impl DefaultableComponent for PiercingWeapon { - fn default_for_item(item: Item) -> Option<Self> { + fn default_for_item(item: ItemKind) -> Option<Self> { let value = match item { - Item::CopperSpear => PiercingWeapon { + ItemKind::CopperSpear => PiercingWeapon { hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)), sound: Some(azalea_registry::Holder::Reference( SoundEvent::ItemSpearAttack, )), ..PiercingWeapon::new() }, - Item::DiamondSpear => PiercingWeapon { + ItemKind::DiamondSpear => PiercingWeapon { hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)), sound: Some(azalea_registry::Holder::Reference( SoundEvent::ItemSpearAttack, )), ..PiercingWeapon::new() }, - Item::GoldenSpear => PiercingWeapon { + ItemKind::GoldenSpear => PiercingWeapon { hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)), sound: Some(azalea_registry::Holder::Reference( SoundEvent::ItemSpearAttack, )), ..PiercingWeapon::new() }, - Item::IronSpear => PiercingWeapon { + ItemKind::IronSpear => PiercingWeapon { hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)), sound: Some(azalea_registry::Holder::Reference( SoundEvent::ItemSpearAttack, )), ..PiercingWeapon::new() }, - Item::NetheriteSpear => PiercingWeapon { + ItemKind::NetheriteSpear => PiercingWeapon { hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)), sound: Some(azalea_registry::Holder::Reference( SoundEvent::ItemSpearAttack, )), ..PiercingWeapon::new() }, - Item::StoneSpear => PiercingWeapon { + ItemKind::StoneSpear => PiercingWeapon { hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)), sound: Some(azalea_registry::Holder::Reference( SoundEvent::ItemSpearAttack, )), ..PiercingWeapon::new() }, - Item::WoodenSpear => PiercingWeapon { + ItemKind::WoodenSpear => PiercingWeapon { hit_sound: Some(azalea_registry::Holder::Reference( SoundEvent::ItemSpearWoodHit, )), @@ -6158,60 +6182,65 @@ impl DefaultableComponent for PiercingWeapon { } } impl DefaultableComponent for ChargedProjectiles { - fn default_for_item(item: Item) -> Option<Self> { + fn default_for_item(item: ItemKind) -> Option<Self> { let value = match item { - Item::Crossbow => vec![], + ItemKind::Crossbow => vec![], _ => return None, }; Some(ChargedProjectiles { items: value }) } } impl DefaultableComponent for DebugStickState { - fn default_for_item(item: Item) -> Option<Self> { + fn default_for_item(item: ItemKind) -> Option<Self> { let value = match item { - Item::DebugStick => NbtCompound::from_values(vec![]), + ItemKind::DebugStick => NbtCompound::from_values(vec![]), _ => return None, }; Some(DebugStickState { properties: value }) } } impl DefaultableComponent for EnchantmentGlintOverride { - fn default_for_item(item: Item) -> Option<Self> { + fn default_for_item(item: ItemKind) -> Option<Self> { let value = match item { - Item::DebugStick => true, - Item::EnchantedBook => true, - Item::EnchantedGoldenApple => true, - Item::EndCrystal => true, - Item::ExperienceBottle => true, - Item::NetherStar => true, - Item::WrittenBook => true, + ItemKind::DebugStick => true, + ItemKind::EnchantedBook => true, + ItemKind::EnchantedGoldenApple => true, + ItemKind::EndCrystal => true, + ItemKind::ExperienceBottle => true, + ItemKind::NetherStar => true, + ItemKind::WrittenBook => true, _ => return None, }; Some(EnchantmentGlintOverride { show_glint: value }) } } impl DefaultableComponent for PotDecorations { - fn default_for_item(item: Item) -> Option<Self> { + fn default_for_item(item: ItemKind) -> Option<Self> { let value = match item { - Item::DecoratedPot => vec![Item::Brick, Item::Brick, Item::Brick, Item::Brick], + ItemKind::DecoratedPot => vec![ + ItemKind::Brick, + ItemKind::Brick, + ItemKind::Brick, + ItemKind::Brick, + ], _ => return None, }; Some(PotDecorations { items: value }) } } impl DefaultableComponent for Glider { - fn default_for_item(item: Item) -> Option<Self> { + fn default_for_item(item: ItemKind) -> Option<Self> { let value = match item { - Item::Elytra => Glider, + ItemKind::Elytra => Glider, _ => return None, }; Some(value) } } impl DefaultableComponent for StoredEnchantments { - fn default_for_item(item: Item) -> Option<Self> { + fn default_for_item(item: ItemKind) -> Option<Self> { let value = match item { - Item::EnchantedBook => HashMap::from_iter([]), + ItemKind::EnchantedBook => HashMap::from_iter([]), _ => return None, }; Some(StoredEnchantments { @@ -6220,27 +6249,27 @@ impl DefaultableComponent for StoredEnchantments { } } impl DefaultableComponent for MapColor { - fn default_for_item(item: Item) -> Option<Self> { + fn default_for_item(item: ItemKind) -> Option<Self> { let value = match item { - Item::FilledMap => 4603950, + ItemKind::FilledMap => 4603950, _ => return None, }; Some(MapColor { color: value }) } } impl DefaultableComponent for MapDecorations { - fn default_for_item(item: Item) -> Option<Self> { + fn default_for_item(item: ItemKind) -> Option<Self> { let value = match item { - Item::FilledMap => NbtCompound::from_values(vec![]), + ItemKind::FilledMap => NbtCompound::from_values(vec![]), _ => return None, }; Some(MapDecorations { decorations: value }) } } impl DefaultableComponent for Fireworks { - fn default_for_item(item: Item) -> Option<Self> { + fn default_for_item(item: ItemKind) -> Option<Self> { let value = match item { - Item::FireworkRocket => Fireworks { + ItemKind::FireworkRocket => Fireworks { flight_duration: 1, ..Fireworks::new() }, @@ -6250,91 +6279,95 @@ impl DefaultableComponent for Fireworks { } } impl DefaultableComponent for Instrument { - fn default_for_item(item: Item) -> Option<Self> { + fn default_for_item(item: ItemKind) -> Option<Self> { let value = match item { - Item::GoatHorn => Instrument::Registry(azalea_registry::Instrument::PonderGoatHorn), + ItemKind::GoatHorn => Instrument::Registry(data::Instrument::new_raw(0)), _ => return None, }; Some(value) } } impl DefaultableComponent for Recipes { - fn default_for_item(item: Item) -> Option<Self> { + fn default_for_item(item: ItemKind) -> Option<Self> { let value = match item { - Item::KnowledgeBook => vec![], + ItemKind::KnowledgeBook => vec![], _ => return None, }; Some(Recipes { recipes: value }) } } impl DefaultableComponent for PotionContents { - fn default_for_item(item: Item) -> Option<Self> { + fn default_for_item(item: ItemKind) -> Option<Self> { let value = match item { - Item::LingeringPotion => PotionContents::new(), - Item::Potion => PotionContents::new(), - Item::SplashPotion => PotionContents::new(), - Item::TippedArrow => PotionContents::new(), + ItemKind::LingeringPotion => PotionContents::new(), + ItemKind::Potion => PotionContents::new(), + ItemKind::SplashPotion => PotionContents::new(), + ItemKind::TippedArrow => PotionContents::new(), _ => return None, }; Some(value) } } impl DefaultableComponent for PotionDurationScale { - fn default_for_item(item: Item) -> Option<Self> { + fn default_for_item(item: ItemKind) -> Option<Self> { let value = match item { - Item::LingeringPotion => 0.25, - Item::TippedArrow => 0.125, + ItemKind::LingeringPotion => 0.25, + ItemKind::TippedArrow => 0.125, _ => return None, }; Some(PotionDurationScale { value: value }) } } impl DefaultableComponent for JukeboxPlayable { - fn default_for_item(item: Item) -> Option<Self> { + fn default_for_item(item: ItemKind) -> Option<Self> { let value = match item { - Item::MusicDisc11 => JukeboxPlayable::Referenced("minecraft:11".into()), - Item::MusicDisc13 => JukeboxPlayable::Referenced("minecraft:13".into()), - Item::MusicDisc5 => JukeboxPlayable::Referenced("minecraft:5".into()), - Item::MusicDiscBlocks => JukeboxPlayable::Referenced("minecraft:blocks".into()), - Item::MusicDiscCat => JukeboxPlayable::Referenced("minecraft:cat".into()), - Item::MusicDiscChirp => JukeboxPlayable::Referenced("minecraft:chirp".into()), - Item::MusicDiscCreator => JukeboxPlayable::Referenced("minecraft:creator".into()), - Item::MusicDiscCreatorMusicBox => { + ItemKind::MusicDisc11 => JukeboxPlayable::Referenced("minecraft:11".into()), + ItemKind::MusicDisc13 => JukeboxPlayable::Referenced("minecraft:13".into()), + ItemKind::MusicDisc5 => JukeboxPlayable::Referenced("minecraft:5".into()), + ItemKind::MusicDiscBlocks => JukeboxPlayable::Referenced("minecraft:blocks".into()), + ItemKind::MusicDiscCat => JukeboxPlayable::Referenced("minecraft:cat".into()), + ItemKind::MusicDiscChirp => JukeboxPlayable::Referenced("minecraft:chirp".into()), + ItemKind::MusicDiscCreator => JukeboxPlayable::Referenced("minecraft:creator".into()), + ItemKind::MusicDiscCreatorMusicBox => { JukeboxPlayable::Referenced("minecraft:creator_music_box".into()) } - Item::MusicDiscFar => JukeboxPlayable::Referenced("minecraft:far".into()), - Item::MusicDiscLavaChicken => { + ItemKind::MusicDiscFar => JukeboxPlayable::Referenced("minecraft:far".into()), + ItemKind::MusicDiscLavaChicken => { JukeboxPlayable::Referenced("minecraft:lava_chicken".into()) } - Item::MusicDiscMall => JukeboxPlayable::Referenced("minecraft:mall".into()), - Item::MusicDiscMellohi => JukeboxPlayable::Referenced("minecraft:mellohi".into()), - Item::MusicDiscOtherside => JukeboxPlayable::Referenced("minecraft:otherside".into()), - Item::MusicDiscPigstep => JukeboxPlayable::Referenced("minecraft:pigstep".into()), - Item::MusicDiscPrecipice => JukeboxPlayable::Referenced("minecraft:precipice".into()), - Item::MusicDiscRelic => JukeboxPlayable::Referenced("minecraft:relic".into()), - Item::MusicDiscStal => JukeboxPlayable::Referenced("minecraft:stal".into()), - Item::MusicDiscStrad => JukeboxPlayable::Referenced("minecraft:strad".into()), - Item::MusicDiscTears => JukeboxPlayable::Referenced("minecraft:tears".into()), - Item::MusicDiscWait => JukeboxPlayable::Referenced("minecraft:wait".into()), - Item::MusicDiscWard => JukeboxPlayable::Referenced("minecraft:ward".into()), + ItemKind::MusicDiscMall => JukeboxPlayable::Referenced("minecraft:mall".into()), + ItemKind::MusicDiscMellohi => JukeboxPlayable::Referenced("minecraft:mellohi".into()), + ItemKind::MusicDiscOtherside => { + JukeboxPlayable::Referenced("minecraft:otherside".into()) + } + ItemKind::MusicDiscPigstep => JukeboxPlayable::Referenced("minecraft:pigstep".into()), + ItemKind::MusicDiscPrecipice => { + JukeboxPlayable::Referenced("minecraft:precipice".into()) + } + ItemKind::MusicDiscRelic => JukeboxPlayable::Referenced("minecraft:relic".into()), + ItemKind::MusicDiscStal => JukeboxPlayable::Referenced("minecraft:stal".into()), + ItemKind::MusicDiscStrad => JukeboxPlayable::Referenced("minecraft:strad".into()), + ItemKind::MusicDiscTears => JukeboxPlayable::Referenced("minecraft:tears".into()), + ItemKind::MusicDiscWait => JukeboxPlayable::Referenced("minecraft:wait".into()), + ItemKind::MusicDiscWard => JukeboxPlayable::Referenced("minecraft:ward".into()), _ => return None, }; Some(value) } } impl DefaultableComponent for OminousBottleAmplifier { - fn default_for_item(item: Item) -> Option<Self> { + fn default_for_item(item: ItemKind) -> Option<Self> { let value = match item { - Item::OminousBottle => 0, + ItemKind::OminousBottle => 0, _ => return None, }; Some(OminousBottleAmplifier { amplifier: value }) } } impl DefaultableComponent for BlocksAttacks { - fn default_for_item(item: Item) -> Option<Self> { + fn default_for_item(item: ItemKind) -> Option<Self> { let value = match item { - Item::Shield => BlocksAttacks { + ItemKind::Shield => BlocksAttacks { block_delay_seconds: 0.25, block_sound: Some(azalea_registry::Holder::Reference( SoundEvent::ItemShieldBlock, @@ -6356,18 +6389,18 @@ impl DefaultableComponent for BlocksAttacks { } } impl DefaultableComponent for SuspiciousStewEffects { - fn default_for_item(item: Item) -> Option<Self> { + fn default_for_item(item: ItemKind) -> Option<Self> { let value = match item { - Item::SuspiciousStew => vec![], + ItemKind::SuspiciousStew => vec![], _ => return None, }; Some(SuspiciousStewEffects { effects: value }) } } impl DefaultableComponent for DeathProtection { - fn default_for_item(item: Item) -> Option<Self> { + fn default_for_item(item: ItemKind) -> Option<Self> { let value = match item { - Item::TotemOfUndying => vec![ + ItemKind::TotemOfUndying => vec![ ConsumeEffect::ClearAllEffects {}, ConsumeEffect::ApplyEffects { effects: vec![ @@ -6409,9 +6442,9 @@ impl DefaultableComponent for DeathProtection { } } impl DefaultableComponent for WritableBookContent { - fn default_for_item(item: Item) -> Option<Self> { + fn default_for_item(item: ItemKind) -> Option<Self> { let value = match item { - Item::WritableBook => Vec::new(), + ItemKind::WritableBook => Vec::new(), _ => return None, }; Some(WritableBookContent { pages: value }) diff --git a/azalea-inventory/src/default_components/mod.rs b/azalea-inventory/src/default_components/mod.rs index 74b7248e..2cc96d51 100644 --- a/azalea-inventory/src/default_components/mod.rs +++ b/azalea-inventory/src/default_components/mod.rs @@ -1,21 +1,21 @@ pub mod generated; -use azalea_registry::Item; +use azalea_registry::builtin::ItemKind; use crate::components::DataComponentTrait; -/// A trait for data components that some [`Item`]s may have a default value +/// A trait for data components that some [`ItemKind`]s may have a default value /// for. pub trait DefaultableComponent: DataComponentTrait { - fn default_for_item(item: Item) -> Option<Self> + fn default_for_item(item: ItemKind) -> Option<Self> where Self: Sized; } impl<T: DataComponentTrait> DefaultableComponent for T { - default fn default_for_item(_item: Item) -> Option<Self> { + default fn default_for_item(_item: ItemKind) -> Option<Self> { None } } -pub fn get_default_component<T: DefaultableComponent>(item: Item) -> Option<T> { +pub fn get_default_component<T: DefaultableComponent>(item: ItemKind) -> Option<T> { T::default_for_item(item) } diff --git a/azalea-inventory/src/item/consume_effect.rs b/azalea-inventory/src/item/consume_effect.rs index 7054e6c8..9b8a198d 100644 --- a/azalea-inventory/src/item/consume_effect.rs +++ b/azalea-inventory/src/item/consume_effect.rs @@ -1,6 +1,10 @@ use azalea_buf::AzBuf; -use azalea_core::{codec_utils::is_default, identifier::Identifier}; -use azalea_registry::{HolderSet, MobEffect, SoundEvent}; +use azalea_core::codec_utils::is_default; +use azalea_registry::{ + HolderSet, + builtin::{ConsumeEffectKind, MobEffect, SoundEvent}, + identifier::Identifier, +}; use serde::Serialize; use crate::components::MobEffectInstance; @@ -28,18 +32,14 @@ pub enum ConsumeEffect { }, } -impl From<ConsumeEffect> for azalea_registry::ConsumeEffectKind { +impl From<ConsumeEffect> for ConsumeEffectKind { fn from(effect: ConsumeEffect) -> Self { match effect { - ConsumeEffect::ApplyEffects { .. } => azalea_registry::ConsumeEffectKind::ApplyEffects, - ConsumeEffect::RemoveEffects { .. } => { - azalea_registry::ConsumeEffectKind::RemoveEffects - } - ConsumeEffect::ClearAllEffects => azalea_registry::ConsumeEffectKind::ClearAllEffects, - ConsumeEffect::TeleportRandomly { .. } => { - azalea_registry::ConsumeEffectKind::TeleportRandomly - } - ConsumeEffect::PlaySound { .. } => azalea_registry::ConsumeEffectKind::PlaySound, + ConsumeEffect::ApplyEffects { .. } => ConsumeEffectKind::ApplyEffects, + ConsumeEffect::RemoveEffects { .. } => ConsumeEffectKind::RemoveEffects, + ConsumeEffect::ClearAllEffects => ConsumeEffectKind::ClearAllEffects, + ConsumeEffect::TeleportRandomly { .. } => ConsumeEffectKind::TeleportRandomly, + ConsumeEffect::PlaySound { .. } => ConsumeEffectKind::PlaySound, } } } diff --git a/azalea-inventory/src/item/mod.rs b/azalea-inventory/src/item/mod.rs index 0e9947e2..015ca0e2 100644 --- a/azalea-inventory/src/item/mod.rs +++ b/azalea-inventory/src/item/mod.rs @@ -1,3 +1,5 @@ +use azalea_registry::builtin::ItemKind; + use crate::{components::MaxStackSize, default_components::get_default_component}; pub mod consume_effect; @@ -19,7 +21,7 @@ pub trait MaxStackSizeExt { } } -impl MaxStackSizeExt for azalea_registry::Item { +impl MaxStackSizeExt for ItemKind { fn max_stack_size(&self) -> i32 { get_default_component::<MaxStackSize>(*self).map_or(64, |s| s.count) } diff --git a/azalea-inventory/src/slot.rs b/azalea-inventory/src/slot.rs index c3134214..e99d34a3 100644 --- a/azalea-inventory/src/slot.rs +++ b/azalea-inventory/src/slot.rs @@ -7,7 +7,7 @@ use std::{ use azalea_buf::{AzaleaRead, AzaleaReadVar, AzaleaWrite, AzaleaWriteVar, BufReadError}; use azalea_core::codec_utils::is_default; -use azalea_registry::{DataComponentKind, Item}; +use azalea_registry::builtin::{DataComponentKind, ItemKind}; use indexmap::IndexMap; use serde::{Serialize, ser::SerializeMap}; @@ -25,11 +25,11 @@ pub enum ItemStack { } impl ItemStack { - /// Create a new [`ItemStack`] with the given number of [`Item`]s. + /// Create a new [`ItemStack`] with the given number of [`ItemKind`]s. /// /// If item is air or the count isn't positive, then it'll be set to an /// empty `ItemStack`. - pub fn new(item: Item, count: i32) -> Self { + pub fn new(item: ItemKind, count: i32) -> Self { let mut i = ItemStack::Present(ItemStackData::new(item, count)); // set it to Empty if the item is air or if the count isn't positive i.update_empty(); @@ -79,10 +79,10 @@ impl ItemStack { } } - /// Get the `kind` of the item in this slot, or [`Item::Air`] - pub fn kind(&self) -> Item { + /// Get the `kind` of the item in this slot, or [`ItemKind::Air`] + pub fn kind(&self) -> ItemKind { match self { - ItemStack::Empty => Item::Air, + ItemStack::Empty => ItemKind::Air, ItemStack::Present(i) => i.kind, } } @@ -147,11 +147,12 @@ impl Serialize for ItemStack { /// An item in an inventory, with a count and a set of data components. /// -/// Usually you want [`ItemStack`] or [`azalea_registry::Item`] instead. +/// Usually you want [`ItemStack`] or +/// [`ItemKind`](azalea_registry::builtin::ItemKind) instead. #[derive(Debug, Clone, PartialEq, Serialize)] pub struct ItemStackData { #[serde(rename = "id")] - pub kind: Item, + pub kind: ItemKind, /// The amount of the item in this slot. /// /// The count can be zero or negative, but this is rare. @@ -163,8 +164,8 @@ pub struct ItemStackData { } impl ItemStackData { - /// Create a new [`ItemStackData`] with the given number of [`Item`]s. - pub fn new(item: Item, count: i32) -> Self { + /// Create a new [`ItemStackData`] with the given number of [`ItemKind`]s. + pub fn new(item: ItemKind, count: i32) -> Self { ItemStackData { count, kind: item, @@ -183,19 +184,19 @@ impl ItemStackData { /// Check if the count of the item is <= 0 or if the item is air. pub fn is_empty(&self) -> bool { - self.count <= 0 || self.kind == Item::Air + self.count <= 0 || self.kind == ItemKind::Air } /// Whether this item is the same as another item, ignoring the count. /// /// ``` /// # use azalea_inventory::ItemStackData; - /// # use azalea_registry::Item; - /// let mut a = ItemStackData::from(Item::Stone); - /// let mut b = ItemStackData::new(Item::Stone, 2); + /// # use azalea_registry::builtin::ItemKind; + /// let mut a = ItemStackData::from(ItemKind::Stone); + /// let mut b = ItemStackData::new(ItemKind::Stone, 2); /// assert!(a.is_same_item_and_components(&b)); /// - /// b.kind = Item::Dirt; + /// b.kind = ItemKind::Dirt; /// assert!(!a.is_same_item_and_components(&b)); /// ``` pub fn is_same_item_and_components(&self, other: &ItemStackData) -> bool { @@ -221,7 +222,7 @@ impl AzaleaRead for ItemStack { if count <= 0 { Ok(ItemStack::Empty) } else { - let kind = Item::azalea_read(buf)?; + let kind = ItemKind::azalea_read(buf)?; let component_patch = DataComponentPatch::azalea_read(buf)?; Ok(ItemStack::Present(ItemStackData { count, @@ -255,23 +256,23 @@ impl From<ItemStackData> for ItemStack { } } } -impl From<Item> for ItemStack { - fn from(item: Item) -> Self { +impl From<ItemKind> for ItemStack { + fn from(item: ItemKind) -> Self { ItemStack::new(item, 1) } } -impl From<(Item, i32)> for ItemStack { - fn from(item: (Item, i32)) -> Self { +impl From<(ItemKind, i32)> for ItemStack { + fn from(item: (ItemKind, i32)) -> Self { ItemStack::new(item.0, item.1) } } -impl From<Item> for ItemStackData { - fn from(item: Item) -> Self { +impl From<ItemKind> for ItemStackData { + fn from(item: ItemKind) -> Self { ItemStackData::new(item, 1) } } -impl From<(Item, i32)> for ItemStackData { - fn from(item: (Item, i32)) -> Self { +impl From<(ItemKind, i32)> for ItemStackData { + fn from(item: (ItemKind, i32)) -> Self { ItemStackData::new(item.0, item.1) } } @@ -291,7 +292,7 @@ impl DataComponentPatch { /// /// ``` /// # use azalea_inventory::{ItemStackData, DataComponentPatch, components}; - /// # use azalea_registry::Item; + /// # use azalea_registry::builtin::ItemKind; /// # fn example(item: &ItemStackData) -> Option<()> { /// let item_nutrition = item.component_patch.get::<components::Food>()?.nutrition; /// # Some(()) @@ -321,8 +322,8 @@ impl DataComponentPatch { /// /// ``` /// # use azalea_inventory::{ItemStackData, DataComponentPatch, components}; - /// # use azalea_registry::Item; - /// # let item = ItemStackData::from(Item::Stone); + /// # use azalea_registry::builtin::ItemKind; + /// # let item = ItemStackData::from(ItemKind::Stone); /// let is_edible = item.component_patch.has::<components::Food>(); /// # assert!(!is_edible); /// ``` @@ -506,7 +507,7 @@ mod tests { #[test] fn test_get_component() { - let item = ItemStack::from(Item::Map).with_component(MapId { id: 1 }); + let item = ItemStack::from(ItemKind::Map).with_component(MapId { id: 1 }); let map_id = item.get_component::<MapId>().unwrap(); assert_eq!(map_id.id, 1); } diff --git a/azalea-inventory/tests/components.rs b/azalea-inventory/tests/components.rs index b55eb71e..4a5af7ce 100644 --- a/azalea-inventory/tests/components.rs +++ b/azalea-inventory/tests/components.rs @@ -17,7 +17,7 @@ use azalea_inventory::{ PotDecorations, Rarity, }, }; -use azalea_registry::{Attribute, Block, Item}; +use azalea_registry::builtin::{Attribute, BlockKind, ItemKind}; use simdnbt::owned::{BaseNbt, Nbt, NbtCompound, NbtList, NbtTag}; #[test] @@ -79,7 +79,7 @@ fn test_can_place_on_checksum() { let c = CanPlaceOn { predicate: AdventureModePredicate { predicates: vec![BlockPredicate { - blocks: Some(vec![Block::GrassBlock].into()), + blocks: Some(vec![BlockKind::GrassBlock].into()), properties: None, nbt: None, }], @@ -150,7 +150,7 @@ fn test_firework_explosion_checksum() { #[test] fn test_charged_projectile_checksum() { let c = ChargedProjectiles { - items: vec![ItemStack::from(Item::MusicDiscCat)], + items: vec![ItemStack::from(ItemKind::MusicDiscCat)], }; assert_eq!(get_checksum(&c, &Default::default()).unwrap().0, 3435761017); @@ -160,10 +160,10 @@ fn test_charged_projectile_checksum() { fn test_charged_projectile_with_components_checksum() { let c = ChargedProjectiles { items: vec![ - ItemStack::from(Item::MusicDiscCat) + ItemStack::from(ItemKind::MusicDiscCat) .with_component::<JukeboxPlayable>(None) .with_component(ChargedProjectiles { - items: vec![ItemStack::from(Item::MusicDiscCat)], + items: vec![ItemStack::from(ItemKind::MusicDiscCat)], }), ], }; @@ -187,7 +187,12 @@ fn test_lodestone_tracker_checksum() { #[test] fn test_pot_decorations_checksum() { let c = PotDecorations { - items: vec![Item::Stick, Item::Brick, Item::Brick, Item::Brick], + items: vec![ + ItemKind::Stick, + ItemKind::Brick, + ItemKind::Brick, + ItemKind::Brick, + ], }; assert_eq!(get_checksum(&c, &Default::default()).unwrap().0, 1951715383); diff --git a/azalea-physics/src/clip.rs b/azalea-physics/src/clip.rs index dbab0da6..625a709e 100644 --- a/azalea-physics/src/clip.rs +++ b/azalea-physics/src/clip.rs @@ -11,6 +11,7 @@ use azalea_core::{ math::{self, EPSILON, lerp}, position::{BlockPos, Vec3}, }; +use azalea_registry::{builtin::BlockKind, tags}; use azalea_world::ChunkStorage; use crate::collision::{BlockWithShape, EMPTY_SHAPE, VoxelShape}; @@ -34,9 +35,7 @@ impl ClipContext { BlockShapeType::Outline => block_state.outline_shape(), BlockShapeType::Visual => block_state.collision_shape(), BlockShapeType::FallDamageResetting => { - if azalea_registry::tags::blocks::FALL_DAMAGE_RESETTING - .contains(&azalea_registry::Block::from(block_state)) - { + if tags::blocks::FALL_DAMAGE_RESETTING.contains(&BlockKind::from(block_state)) { block_state.collision_shape() } else { &EMPTY_SHAPE diff --git a/azalea-physics/src/collision/mod.rs b/azalea-physics/src/collision/mod.rs index e6423fc4..6c622d40 100644 --- a/azalea-physics/src/collision/mod.rs +++ b/azalea-physics/src/collision/mod.rs @@ -7,7 +7,7 @@ pub mod world_collisions; use std::{ops::Add, sync::LazyLock}; -use azalea_block::{BlockState, fluid_state::FluidState}; +use azalea_block::{BlockState, BlockTrait, fluid_state::FluidState}; use azalea_core::{ aabb::Aabb, direction::Axis, @@ -18,6 +18,7 @@ use azalea_entity::{ Attributes, Jumping, LookDirection, OnClimbable, Physics, PlayerAbilities, Pose, Position, metadata::Sprinting, }; +use azalea_registry::builtin::BlockKind; use azalea_world::{ChunkStorage, Instance}; use bevy_ecs::{entity::Entity, world::Mut}; pub use blocks::BlockWithShape; @@ -483,15 +484,15 @@ pub fn legacy_blocks_motion(block: BlockState) -> bool { return false; } - let registry_block = azalea_registry::Block::from(block); + let registry_block = BlockKind::from(block); legacy_calculate_solid(block) - && registry_block != azalea_registry::Block::Cobweb - && registry_block != azalea_registry::Block::BambooSapling + && registry_block != BlockKind::Cobweb + && registry_block != BlockKind::BambooSapling } pub fn legacy_calculate_solid(block: BlockState) -> bool { // force_solid has to be checked before anything else - let block_trait = Box::<dyn azalea_block::BlockTrait>::from(block); + let block_trait = Box::<dyn BlockTrait>::from(block); if let Some(solid) = block_trait.behavior().force_solid { return solid; } diff --git a/azalea-physics/src/fluids.rs b/azalea-physics/src/fluids.rs index 3675ca3e..fa6a1586 100644 --- a/azalea-physics/src/fluids.rs +++ b/azalea-physics/src/fluids.rs @@ -7,6 +7,7 @@ use azalea_core::{ position::{BlockPos, Vec3}, }; use azalea_entity::{HasClientLoaded, LocalEntity, Physics, Position}; +use azalea_registry::builtin::BlockKind; use azalea_world::{Instance, InstanceContainer, InstanceName}; use bevy_ecs::prelude::*; @@ -255,11 +256,11 @@ fn is_solid_face( if direction == Direction::Up { return true; } - let registry_block = azalea_registry::Block::from(block_state); + let registry_block = BlockKind::from(block_state); if matches!( registry_block, // frosted ice is from frost walker - azalea_registry::Block::Ice | azalea_registry::Block::FrostedIce + BlockKind::Ice | BlockKind::FrostedIce ) { return false; } diff --git a/azalea-physics/src/lib.rs b/azalea-physics/src/lib.rs index b993a7b5..663c60db 100644 --- a/azalea-physics/src/lib.rs +++ b/azalea-physics/src/lib.rs @@ -20,7 +20,7 @@ use azalea_entity::{ LookDirection, OnClimbable, Physics, Pose, Position, dimensions::EntityDimensions, metadata::Sprinting, move_relative, }; -use azalea_registry::{Block, EntityKind, MobEffect}; +use azalea_registry::builtin::{BlockKind, EntityKind, MobEffect}; use azalea_world::{Instance, InstanceContainer, InstanceName}; use bevy_app::{App, Plugin, Update}; use bevy_ecs::prelude::*; @@ -296,10 +296,10 @@ fn handle_entity_inside_block( block_pos: BlockPos, physics: &mut Physics, ) { - let registry_block = azalea_registry::Block::from(block); + let registry_block = BlockKind::from(block); #[allow(clippy::single_match)] match registry_block { - azalea_registry::Block::BubbleColumn => { + BlockKind::BubbleColumn => { let block_above = world.get_block_state(block_pos.up(1)).unwrap_or_default(); let is_block_above_empty = block_above.is_collision_shape_empty() && FluidState::from(block_above).is_empty(); @@ -417,14 +417,14 @@ fn handle_relative_friction_and_calculate_movement(ctx: &mut MoveCtx, block_fric // Vec3(var3.x, 0.2D, var3.z); } if ctx.physics.horizontal_collision || *ctx.jumping { - let block_at_feet: Block = ctx + let block_at_feet: BlockKind = ctx .world .chunks .get_block_state(BlockPos::from(*ctx.position)) .unwrap_or_default() .into(); - if *ctx.on_climbable || block_at_feet == Block::PowderSnow { + if *ctx.on_climbable || block_at_feet == BlockKind::PowderSnow { ctx.physics.velocity.y = 0.2; } } @@ -454,12 +454,12 @@ fn handle_on_climbable( // sneaking on ladders/vines if y < 0.0 && pose == Some(Pose::Crouching) - && azalea_registry::Block::from( + && BlockKind::from( world .chunks .get_block_state(position.into()) .unwrap_or_default(), - ) != azalea_registry::Block::Scaffolding + ) != BlockKind::Scaffolding { y = 0.; } diff --git a/azalea-physics/tests/physics.rs b/azalea-physics/tests/physics.rs index 09cb5379..57747692 100644 --- a/azalea-physics/tests/physics.rs +++ b/azalea-physics/tests/physics.rs @@ -5,13 +5,16 @@ use azalea_block::{ properties::WaterLevel, }; use azalea_core::{ - identifier::Identifier, position::{BlockPos, ChunkPos, Vec3}, registry_holder::RegistryHolder, tick::GameTick, }; use azalea_entity::{EntityBundle, EntityPlugin, HasClientLoaded, LocalEntity, Physics, Position}; use azalea_physics::PhysicsPlugin; +use azalea_registry::{ + builtin::{BlockKind, EntityKind}, + identifier::Identifier, +}; use azalea_world::{Chunk, Instance, InstanceContainer, MinecraftEntityId, PartialInstance}; use bevy_app::App; use parking_lot::RwLock; @@ -58,7 +61,7 @@ fn test_gravity() { y: 70., z: 0., }, - azalea_registry::EntityKind::Zombie, + EntityKind::Zombie, Identifier::new("minecraft:overworld"), ), MinecraftEntityId(0), @@ -114,7 +117,7 @@ fn test_collision() { y: 70., z: 0.5, }, - azalea_registry::EntityKind::Player, + EntityKind::Player, Identifier::new("minecraft:overworld"), ), MinecraftEntityId(0), @@ -124,12 +127,12 @@ fn test_collision() { .id(); let block_state = partial_world.chunks.set_block_state( BlockPos { x: 0, y: 69, z: 0 }, - azalea_registry::Block::Stone.into(), + BlockKind::Stone.into(), &world_lock.write().chunks, ); assert!( block_state.is_some(), - "Block state should exist, if this fails that means the chunk wasn't loaded and the block didn't get placed" + "BlockKind state should exist, if this fails that means the chunk wasn't loaded and the block didn't get placed" ); app.update(); app.world_mut().run_schedule(GameTick); @@ -171,7 +174,7 @@ fn test_slab_collision() { y: 71., z: 0.5, }, - azalea_registry::EntityKind::Player, + EntityKind::Player, Identifier::new("minecraft:overworld"), ), MinecraftEntityId(0), @@ -190,7 +193,7 @@ fn test_slab_collision() { ); assert!( block_state.is_some(), - "Block state should exist, if this fails that means the chunk wasn't loaded and the block didn't get placed" + "BlockKind state should exist, if this fails that means the chunk wasn't loaded and the block didn't get placed" ); // do a few steps so we fall on the slab for _ in 0..20 { @@ -222,7 +225,7 @@ fn test_top_slab_collision() { y: 71., z: 0.5, }, - azalea_registry::EntityKind::Player, + EntityKind::Player, Identifier::new("minecraft:overworld"), ), MinecraftEntityId(0), @@ -240,7 +243,7 @@ fn test_top_slab_collision() { ); assert!( block_state.is_some(), - "Block state should exist, if this fails that means the chunk wasn't loaded and the block didn't get placed" + "BlockKind state should exist, if this fails that means the chunk wasn't loaded and the block didn't get placed" ); // do a few steps so we fall on the slab for _ in 0..20 { @@ -280,7 +283,7 @@ fn test_weird_wall_collision() { y: 73., z: 0.5, }, - azalea_registry::EntityKind::Player, + EntityKind::Player, Identifier::new("minecraft:overworld"), ), MinecraftEntityId(0), @@ -302,7 +305,7 @@ fn test_weird_wall_collision() { ); assert!( block_state.is_some(), - "Block state should exist, if this fails that means the chunk wasn't loaded and the block didn't get placed" + "BlockKind state should exist, if this fails that means the chunk wasn't loaded and the block didn't get placed" ); // do a few steps so we fall on the wall for _ in 0..20 { @@ -343,7 +346,7 @@ fn test_negative_coordinates_weird_wall_collision() { y: 73., z: -7.5, }, - azalea_registry::EntityKind::Player, + EntityKind::Player, Identifier::new("minecraft:overworld"), ), MinecraftEntityId(0), @@ -369,7 +372,7 @@ fn test_negative_coordinates_weird_wall_collision() { ); assert!( block_state.is_some(), - "Block state should exist, if this fails that means the chunk wasn't loaded and the block didn't get placed" + "BlockKind state should exist, if this fails that means the chunk wasn't loaded and the block didn't get placed" ); // do a few steps so we fall on the wall for _ in 0..20 { @@ -410,7 +413,7 @@ fn spawn_and_unload_world() { y: 73., z: -7.5, }, - azalea_registry::EntityKind::Player, + EntityKind::Player, Identifier::new("minecraft:overworld"), ), MinecraftEntityId(0), @@ -526,7 +529,7 @@ fn test_afk_pool() { y: 70., z: 1.5, }, - azalea_registry::EntityKind::Player, + EntityKind::Player, Identifier::new("minecraft:overworld"), ), MinecraftEntityId(0), diff --git a/azalea-protocol/src/common/debug_subscription.rs b/azalea-protocol/src/common/debug_subscription.rs index 221cd98c..0be792e1 100644 --- a/azalea-protocol/src/common/debug_subscription.rs +++ b/azalea-protocol/src/common/debug_subscription.rs @@ -2,7 +2,7 @@ use std::fmt::Debug; use azalea_buf::AzBuf; use azalea_core::position::{BlockPos, Vec3}; -use azalea_registry::{Block, DebugSubscription, GameEvent, PointOfInterestKind}; +use azalea_registry::builtin::{BlockKind, DebugSubscription, GameEvent, PointOfInterestKind}; // see DebugSubscriptions.java @@ -119,7 +119,7 @@ pub enum DebugEntityBlockIntersection { #[derive(Clone, Debug, AzBuf, PartialEq)] pub struct DebugHiveInfo { - pub kind: Block, + pub kind: BlockKind, #[var] pub occupant_count: i32, #[var] diff --git a/azalea-protocol/src/common/recipe.rs b/azalea-protocol/src/common/recipe.rs index 709679f1..43a64469 100644 --- a/azalea-protocol/src/common/recipe.rs +++ b/azalea-protocol/src/common/recipe.rs @@ -1,7 +1,6 @@ use azalea_buf::AzBuf; -use azalea_core::identifier::Identifier; use azalea_inventory::ItemStack; -use azalea_registry::HolderSet; +use azalea_registry::{HolderSet, builtin::ItemKind, identifier::Identifier}; /// [`azalea_registry::RecipeDisplay`] #[derive(Clone, Debug, AzBuf, PartialEq)] @@ -56,7 +55,7 @@ pub struct SmithingRecipeDisplay { #[derive(Clone, Debug, PartialEq, AzBuf)] pub struct Ingredient { - pub allowed: HolderSet<azalea_registry::Item, Identifier>, + pub allowed: HolderSet<ItemKind, Identifier>, } /// [`azalea_registry::SlotDisplay`] @@ -64,7 +63,7 @@ pub struct Ingredient { pub enum SlotDisplayData { Empty, AnyFuel, - Item(ItemStackDisplay), + ItemKind(ItemStackDisplay), ItemStack(ItemStackSlotDisplay), Tag(Identifier), SmithingTrim(Box<SmithingTrimDemoSlotDisplay>), @@ -74,7 +73,7 @@ pub enum SlotDisplayData { #[derive(Clone, Debug, PartialEq, AzBuf)] pub struct ItemStackDisplay { - pub item: azalea_registry::Item, + pub item: ItemKind, } #[derive(Clone, Debug, PartialEq, AzBuf)] pub struct ItemStackSlotDisplay { @@ -82,7 +81,7 @@ pub struct ItemStackSlotDisplay { } #[derive(Clone, Debug, PartialEq, AzBuf)] pub struct TagSlotDisplay { - pub tag: azalea_registry::Item, + pub tag: ItemKind, } #[derive(Clone, Debug, PartialEq, AzBuf)] pub struct SmithingTrimDemoSlotDisplay { diff --git a/azalea-protocol/src/common/tags.rs b/azalea-protocol/src/common/tags.rs index f8ddfc81..f22175ee 100644 --- a/azalea-protocol/src/common/tags.rs +++ b/azalea-protocol/src/common/tags.rs @@ -4,7 +4,7 @@ use std::{ }; use azalea_buf::{AzaleaRead, AzaleaReadVar, AzaleaWrite, AzaleaWriteVar, BufReadError}; -use azalea_core::identifier::Identifier; +use azalea_registry::identifier::Identifier; use indexmap::IndexMap; #[derive(Clone, Debug, PartialEq)] diff --git a/azalea-protocol/src/lib.rs b/azalea-protocol/src/lib.rs index 45abf240..b5c0fd1e 100644 --- a/azalea-protocol/src/lib.rs +++ b/azalea-protocol/src/lib.rs @@ -27,6 +27,7 @@ pub mod read; pub mod resolve; pub mod write; +#[doc(hidden)] #[deprecated(note = "Renamed to resolve")] pub mod resolver { pub use super::resolve::*; diff --git a/azalea-protocol/src/packets/common.rs b/azalea-protocol/src/packets/common.rs index eb377683..a6cfc03f 100644 --- a/azalea-protocol/src/packets/common.rs +++ b/azalea-protocol/src/packets/common.rs @@ -2,15 +2,15 @@ use azalea_buf::AzBuf; use azalea_core::{ data_registry::ResolvableDataRegistry, game_type::{GameMode, OptionalGameType}, - identifier::Identifier, position::GlobalPos, - registry_holder::{RegistryHolder, dimension_type::DimensionTypeElement}, + registry_holder::{RegistryHolder, dimension_type::DimensionKindElement}, }; +use azalea_registry::{data::DimensionKind, identifier::Identifier}; use tracing::error; #[derive(Clone, Debug, AzBuf, PartialEq)] pub struct CommonPlayerSpawnInfo { - pub dimension_type: azalea_registry::DimensionType, + pub dimension_type: DimensionKind, pub dimension: Identifier, pub seed: i64, pub game_type: GameMode, @@ -27,7 +27,7 @@ impl CommonPlayerSpawnInfo { pub fn dimension_type<'a>( &self, registry_holder: &'a RegistryHolder, - ) -> Option<(&'a Identifier, &'a DimensionTypeElement)> { + ) -> Option<(&'a Identifier, &'a DimensionKindElement)> { let dimension_res = self.dimension_type.resolve(registry_holder); let Some((dimension_type, dimension_data)) = dimension_res else { error!("Couldn't resolve dimension_type {:?}", self.dimension_type); diff --git a/azalea-protocol/src/packets/config/c_cookie_request.rs b/azalea-protocol/src/packets/config/c_cookie_request.rs index ff368b63..0edbf21e 100644 --- a/azalea-protocol/src/packets/config/c_cookie_request.rs +++ b/azalea-protocol/src/packets/config/c_cookie_request.rs @@ -1,5 +1,5 @@ use azalea_buf::AzBuf; -use azalea_core::identifier::Identifier; +use azalea_registry::identifier::Identifier; use azalea_protocol_macros::ClientboundConfigPacket; #[derive(Clone, Debug, AzBuf, PartialEq, ClientboundConfigPacket)] diff --git a/azalea-protocol/src/packets/config/c_custom_payload.rs b/azalea-protocol/src/packets/config/c_custom_payload.rs index 03776bf9..c9417dcd 100644 --- a/azalea-protocol/src/packets/config/c_custom_payload.rs +++ b/azalea-protocol/src/packets/config/c_custom_payload.rs @@ -1,5 +1,5 @@ use azalea_buf::{AzBuf, UnsizedByteArray}; -use azalea_core::identifier::Identifier; +use azalea_registry::identifier::Identifier; use azalea_protocol_macros::ClientboundConfigPacket; #[derive(Clone, Debug, AzBuf, PartialEq, ClientboundConfigPacket)] diff --git a/azalea-protocol/src/packets/config/c_registry_data.rs b/azalea-protocol/src/packets/config/c_registry_data.rs index 16a86a9f..cb46958c 100644 --- a/azalea-protocol/src/packets/config/c_registry_data.rs +++ b/azalea-protocol/src/packets/config/c_registry_data.rs @@ -1,5 +1,5 @@ use azalea_buf::AzBuf; -use azalea_core::identifier::Identifier; +use azalea_registry::identifier::Identifier; use azalea_protocol_macros::ClientboundConfigPacket; use simdnbt::owned::NbtCompound; diff --git a/azalea-protocol/src/packets/config/c_store_cookie.rs b/azalea-protocol/src/packets/config/c_store_cookie.rs index 3d797d18..1b695b22 100644 --- a/azalea-protocol/src/packets/config/c_store_cookie.rs +++ b/azalea-protocol/src/packets/config/c_store_cookie.rs @@ -1,5 +1,5 @@ use azalea_buf::AzBuf; -use azalea_core::identifier::Identifier; +use azalea_registry::identifier::Identifier; use azalea_protocol_macros::ClientboundConfigPacket; #[derive(Clone, Debug, AzBuf, PartialEq, ClientboundConfigPacket)] 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 b4e0e9c1..0080b65a 100644 --- a/azalea-protocol/src/packets/config/c_update_enabled_features.rs +++ b/azalea-protocol/src/packets/config/c_update_enabled_features.rs @@ -1,5 +1,5 @@ use azalea_buf::AzBuf; -use azalea_core::identifier::Identifier; +use azalea_registry::identifier::Identifier; use azalea_protocol_macros::ClientboundConfigPacket; #[derive(Clone, Debug, AzBuf, PartialEq, ClientboundConfigPacket)] diff --git a/azalea-protocol/src/packets/config/s_cookie_response.rs b/azalea-protocol/src/packets/config/s_cookie_response.rs index ae44953e..44f74150 100644 --- a/azalea-protocol/src/packets/config/s_cookie_response.rs +++ b/azalea-protocol/src/packets/config/s_cookie_response.rs @@ -1,5 +1,5 @@ use azalea_buf::AzBuf; -use azalea_core::identifier::Identifier; +use azalea_registry::identifier::Identifier; use azalea_protocol_macros::ServerboundConfigPacket; #[derive(Clone, Debug, AzBuf, PartialEq, ServerboundConfigPacket)] 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 21b5cfbb..c36c2080 100644 --- a/azalea-protocol/src/packets/config/s_custom_click_action.rs +++ b/azalea-protocol/src/packets/config/s_custom_click_action.rs @@ -1,5 +1,5 @@ use azalea_buf::AzBuf; -use azalea_core::identifier::Identifier; +use azalea_registry::identifier::Identifier; use azalea_protocol_macros::ServerboundConfigPacket; use simdnbt::owned::Nbt; diff --git a/azalea-protocol/src/packets/config/s_custom_payload.rs b/azalea-protocol/src/packets/config/s_custom_payload.rs index 1bdc85af..e602bdca 100644 --- a/azalea-protocol/src/packets/config/s_custom_payload.rs +++ b/azalea-protocol/src/packets/config/s_custom_payload.rs @@ -1,5 +1,5 @@ use azalea_buf::{AzBuf, UnsizedByteArray}; -use azalea_core::identifier::Identifier; +use azalea_registry::identifier::Identifier; use azalea_protocol_macros::ServerboundConfigPacket; #[derive(Clone, Debug, AzBuf, PartialEq, ServerboundConfigPacket)] diff --git a/azalea-protocol/src/packets/game/c_add_entity.rs b/azalea-protocol/src/packets/game/c_add_entity.rs index fbd2cb8a..e7b46750 100644 --- a/azalea-protocol/src/packets/game/c_add_entity.rs +++ b/azalea-protocol/src/packets/game/c_add_entity.rs @@ -1,7 +1,8 @@ use azalea_buf::AzBuf; -use azalea_core::{delta::LpVec3, identifier::Identifier, position::Vec3}; +use azalea_core::{delta::LpVec3, position::Vec3}; use azalea_entity::{EntityBundle, metadata::apply_default_metadata}; use azalea_protocol_macros::ClientboundGamePacket; +use azalea_registry::{builtin::EntityKind, identifier::Identifier}; use azalea_world::MinecraftEntityId; use uuid::Uuid; @@ -11,7 +12,7 @@ pub struct ClientboundAddEntity { #[var] pub id: MinecraftEntityId, pub uuid: Uuid, - pub entity_type: azalea_registry::EntityKind, + pub entity_type: EntityKind, pub position: Vec3, pub movement: LpVec3, pub x_rot: i8, diff --git a/azalea-protocol/src/packets/game/c_award_stats.rs b/azalea-protocol/src/packets/game/c_award_stats.rs index bb58a066..79a00f7b 100644 --- a/azalea-protocol/src/packets/game/c_award_stats.rs +++ b/azalea-protocol/src/packets/game/c_award_stats.rs @@ -2,6 +2,7 @@ use std::collections::HashMap; use azalea_buf::AzBuf; use azalea_protocol_macros::ClientboundGamePacket; +use azalea_registry::builtin::{BlockKind, CustomStat, EntityKind, ItemKind}; #[derive(Clone, Debug, AzBuf, PartialEq, ClientboundGamePacket)] pub struct ClientboundAwardStats { @@ -11,13 +12,13 @@ pub struct ClientboundAwardStats { #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, AzBuf)] pub enum Stat { - Mined(azalea_registry::Block), - Crafted(azalea_registry::Item), - Used(azalea_registry::Item), - Broken(azalea_registry::Item), - PickedUp(azalea_registry::Item), - Dropped(azalea_registry::Item), - Killed(azalea_registry::EntityKind), - KilledBy(azalea_registry::EntityKind), - Custom(azalea_registry::CustomStat), + Mined(BlockKind), + Crafted(ItemKind), + Used(ItemKind), + Broken(ItemKind), + PickedUp(ItemKind), + Dropped(ItemKind), + Killed(EntityKind), + KilledBy(EntityKind), + Custom(CustomStat), } diff --git a/azalea-protocol/src/packets/game/c_block_entity_data.rs b/azalea-protocol/src/packets/game/c_block_entity_data.rs index e0c7bb1b..0798e2bd 100644 --- a/azalea-protocol/src/packets/game/c_block_entity_data.rs +++ b/azalea-protocol/src/packets/game/c_block_entity_data.rs @@ -1,11 +1,12 @@ use azalea_buf::AzBuf; use azalea_core::position::BlockPos; use azalea_protocol_macros::ClientboundGamePacket; +use azalea_registry::builtin::BlockEntityKind; use simdnbt::owned::Nbt; #[derive(Clone, Debug, AzBuf, PartialEq, ClientboundGamePacket)] pub struct ClientboundBlockEntityData { pub pos: BlockPos, - pub block_entity_type: azalea_registry::BlockEntityKind, + pub block_entity_type: BlockEntityKind, pub tag: Nbt, } diff --git a/azalea-protocol/src/packets/game/c_block_event.rs b/azalea-protocol/src/packets/game/c_block_event.rs index 38b5099b..30bb8e6c 100644 --- a/azalea-protocol/src/packets/game/c_block_event.rs +++ b/azalea-protocol/src/packets/game/c_block_event.rs @@ -1,12 +1,12 @@ use azalea_buf::AzBuf; use azalea_core::position::BlockPos; use azalea_protocol_macros::ClientboundGamePacket; -use azalea_registry::Block; +use azalea_registry::builtin::BlockKind; #[derive(Clone, Debug, AzBuf, PartialEq, ClientboundGamePacket)] pub struct ClientboundBlockEvent { pub pos: BlockPos, pub action_id: u8, pub action_parameter: u8, - pub block: Block, + pub block: BlockKind, } diff --git a/azalea-protocol/src/packets/game/c_commands.rs b/azalea-protocol/src/packets/game/c_commands.rs index 46be5613..f96e7ef0 100644 --- a/azalea-protocol/src/packets/game/c_commands.rs +++ b/azalea-protocol/src/packets/game/c_commands.rs @@ -1,8 +1,9 @@ use std::io::{self, Cursor, Write}; use azalea_buf::{AzBuf, AzaleaRead, AzaleaReadVar, AzaleaWrite, AzaleaWriteVar, BufReadError}; -use azalea_core::{bitset::FixedBitSet, identifier::Identifier}; +use azalea_core::bitset::FixedBitSet; use azalea_protocol_macros::ClientboundGamePacket; +use azalea_registry::identifier::Identifier; use tracing::warn; #[derive(Clone, Debug, AzBuf, PartialEq, ClientboundGamePacket)] diff --git a/azalea-protocol/src/packets/game/c_cookie_request.rs b/azalea-protocol/src/packets/game/c_cookie_request.rs index 7b1e8e30..283b686d 100644 --- a/azalea-protocol/src/packets/game/c_cookie_request.rs +++ b/azalea-protocol/src/packets/game/c_cookie_request.rs @@ -1,5 +1,5 @@ use azalea_buf::AzBuf; -use azalea_core::identifier::Identifier; +use azalea_registry::identifier::Identifier; use azalea_protocol_macros::ClientboundGamePacket; #[derive(Clone, Debug, AzBuf, PartialEq, ClientboundGamePacket)] diff --git a/azalea-protocol/src/packets/game/c_cooldown.rs b/azalea-protocol/src/packets/game/c_cooldown.rs index c25bdad6..398690f4 100644 --- a/azalea-protocol/src/packets/game/c_cooldown.rs +++ b/azalea-protocol/src/packets/game/c_cooldown.rs @@ -1,9 +1,10 @@ use azalea_buf::AzBuf; use azalea_protocol_macros::ClientboundGamePacket; +use azalea_registry::builtin::ItemKind; #[derive(Clone, Debug, AzBuf, PartialEq, ClientboundGamePacket)] pub struct ClientboundCooldown { - pub item: azalea_registry::Item, + pub item: ItemKind, #[var] pub duration: u32, } diff --git a/azalea-protocol/src/packets/game/c_custom_payload.rs b/azalea-protocol/src/packets/game/c_custom_payload.rs index e76967a6..a198c547 100644 --- a/azalea-protocol/src/packets/game/c_custom_payload.rs +++ b/azalea-protocol/src/packets/game/c_custom_payload.rs @@ -1,5 +1,5 @@ use azalea_buf::{AzBuf, UnsizedByteArray}; -use azalea_core::identifier::Identifier; +use azalea_registry::identifier::Identifier; use azalea_protocol_macros::ClientboundGamePacket; #[derive(Clone, Debug, AzBuf, PartialEq, ClientboundGamePacket)] diff --git a/azalea-protocol/src/packets/game/c_disguised_chat.rs b/azalea-protocol/src/packets/game/c_disguised_chat.rs index e0225096..1b7505c6 100644 --- a/azalea-protocol/src/packets/game/c_disguised_chat.rs +++ b/azalea-protocol/src/packets/game/c_disguised_chat.rs @@ -3,14 +3,16 @@ use azalea_chat::{ FormattedText, translatable_component::{PrimitiveOrComponent, TranslatableComponent}, }; +use azalea_core::registry_holder::RegistryHolder; use azalea_protocol_macros::ClientboundGamePacket; use super::c_player_chat::ChatTypeBound; +use crate::packets::game::c_player_chat::GUESSED_DEFAULT_REGISTRIES_FOR_CHAT; -// A disguised chat packet is basically the same as a normal -// [`ClientboundPlayerChat`], except that it doesn't have any of the chat -// signing things. Vanilla servers use this when messages are sent from the -// console. +/// Similar to a [`ClientboundPlayerChat`](super::ClientboundPlayerChat), but +/// without chat signing. +/// +/// Vanilla servers use this packet when messages are sent from the console. #[derive(Clone, Debug, AzBuf, PartialEq, ClientboundGamePacket)] pub struct ClientboundDisguisedChat { pub message: FormattedText, @@ -19,8 +21,22 @@ pub struct ClientboundDisguisedChat { impl ClientboundDisguisedChat { /// Get the full message, including the sender part. + /// + /// Note that the returned message may be incorrect on servers that + /// customize the chat type registry. Consider using + /// [`Self::message_using_registries`] if you'd like to avoid that + /// problem. #[must_use] pub fn message(&self) -> FormattedText { + self.message_using_registries(&GUESSED_DEFAULT_REGISTRIES_FOR_CHAT) + } + + /// Get the full message, including the sender part, while ensuring that the + /// message chat type is correct based on the server's registries. + /// + /// Also see [`Self::message`]. + #[must_use] + pub fn message_using_registries(&self, registries: &RegistryHolder) -> FormattedText { let sender = self.chat_type.name.clone(); let content = self.message.clone(); let target = self.chat_type.target_name.clone(); @@ -33,7 +49,7 @@ impl ClientboundDisguisedChat { args.push(PrimitiveOrComponent::FormattedText(target)); } - let translation_key = self.chat_type.translation_key(); + let translation_key = self.chat_type.translation_key(registries); let component = TranslatableComponent::new(translation_key.to_string(), args); FormattedText::Translatable(component) diff --git a/azalea-protocol/src/packets/game/c_explode.rs b/azalea-protocol/src/packets/game/c_explode.rs index 15e036ea..e8744b79 100644 --- a/azalea-protocol/src/packets/game/c_explode.rs +++ b/azalea-protocol/src/packets/game/c_explode.rs @@ -2,7 +2,7 @@ use azalea_buf::AzBuf; use azalea_core::position::Vec3; use azalea_entity::particle::Particle; use azalea_protocol_macros::ClientboundGamePacket; -use azalea_registry::SoundEvent; +use azalea_registry::builtin::SoundEvent; #[derive(Clone, Debug, AzBuf, PartialEq, ClientboundGamePacket)] pub struct ClientboundExplode { diff --git a/azalea-protocol/src/packets/game/c_level_chunk_with_light.rs b/azalea-protocol/src/packets/game/c_level_chunk_with_light.rs index af2228eb..d9d1097f 100644 --- a/azalea-protocol/src/packets/game/c_level_chunk_with_light.rs +++ b/azalea-protocol/src/packets/game/c_level_chunk_with_light.rs @@ -2,6 +2,7 @@ use std::sync::Arc; use azalea_buf::AzBuf; use azalea_protocol_macros::ClientboundGamePacket; +use azalea_registry::builtin::BlockEntityKind; use azalea_world::heightmap::HeightmapKind; use simdnbt::owned::Nbt; @@ -34,6 +35,6 @@ pub struct ClientboundLevelChunkPacketData { pub struct BlockEntity { pub packed_xz: u8, pub y: u16, - pub kind: azalea_registry::BlockEntityKind, + pub kind: BlockEntityKind, pub data: Nbt, } diff --git a/azalea-protocol/src/packets/game/c_login.rs b/azalea-protocol/src/packets/game/c_login.rs index 1c89dbac..9439eec9 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::identifier::Identifier; +use azalea_registry::identifier::Identifier; use azalea_protocol_macros::ClientboundGamePacket; use azalea_world::MinecraftEntityId; diff --git a/azalea-protocol/src/packets/game/c_merchant_offers.rs b/azalea-protocol/src/packets/game/c_merchant_offers.rs index c8baff78..079041f6 100644 --- a/azalea-protocol/src/packets/game/c_merchant_offers.rs +++ b/azalea-protocol/src/packets/game/c_merchant_offers.rs @@ -10,7 +10,7 @@ use azalea_inventory::{ components::{self, DataComponentUnion}, }; use azalea_protocol_macros::ClientboundGamePacket; -use azalea_registry::{DataComponentKind, Item}; +use azalea_registry::builtin::{DataComponentKind, ItemKind}; #[derive(Clone, Debug, AzBuf, PartialEq, ClientboundGamePacket)] pub struct ClientboundMerchantOffers { @@ -45,7 +45,7 @@ pub struct MerchantOffer { /// [`Self::into_item_stack`]. #[derive(Clone, Debug, AzBuf, PartialEq)] pub struct ItemCost { - pub item: Item, + pub item: ItemKind, #[var] pub count: i32, pub components: DataComponentExactPredicate, diff --git a/azalea-protocol/src/packets/game/c_open_screen.rs b/azalea-protocol/src/packets/game/c_open_screen.rs index b4a38387..cac3495f 100644 --- a/azalea-protocol/src/packets/game/c_open_screen.rs +++ b/azalea-protocol/src/packets/game/c_open_screen.rs @@ -1,11 +1,12 @@ use azalea_buf::AzBuf; use azalea_chat::FormattedText; use azalea_protocol_macros::ClientboundGamePacket; +use azalea_registry::builtin::MenuKind; #[derive(Clone, Debug, AzBuf, PartialEq, ClientboundGamePacket)] pub struct ClientboundOpenScreen { #[var] pub container_id: i32, - pub menu_type: azalea_registry::MenuKind, + pub menu_type: MenuKind, pub title: FormattedText, } diff --git a/azalea-protocol/src/packets/game/c_player_chat.rs b/azalea-protocol/src/packets/game/c_player_chat.rs index f3201e3f..3904d0d9 100644 --- a/azalea-protocol/src/packets/game/c_player_chat.rs +++ b/azalea-protocol/src/packets/game/c_player_chat.rs @@ -1,14 +1,25 @@ -use std::io::{self, Cursor, Write}; +use std::{ + io::{self, Cursor, Write}, + sync::LazyLock, +}; use azalea_buf::{AzBuf, AzaleaRead, AzaleaReadVar, AzaleaWrite, AzaleaWriteVar, BufReadError}; use azalea_chat::{ FormattedText, translatable_component::{PrimitiveOrComponent, TranslatableComponent}, }; -use azalea_core::bitset::BitSet; +use azalea_core::{ + bitset::BitSet, + data_registry::DataRegistryWithKey, + registry_holder::{RegistryHolder, RegistryType}, +}; use azalea_crypto::signing::MessageSignature; use azalea_protocol_macros::ClientboundGamePacket; -use azalea_registry::Holder; +use azalea_registry::{ + DataRegistryKey, Holder, + data::{ChatKind, ChatKindKey}, + identifier::Identifier, +}; use simdnbt::owned::NbtCompound; use uuid::Uuid; @@ -57,7 +68,7 @@ pub enum FilterMask { #[derive(Clone, Debug, PartialEq, AzBuf)] pub struct ChatTypeBound { - pub chat_type: Holder<azalea_registry::ChatType, DirectChatType>, + pub chat_type: Holder<ChatKind, DirectChatType>, pub name: FormattedText, pub target_name: Option<FormattedText>, } @@ -87,6 +98,27 @@ pub struct MessageSignatureCache { pub entries: Vec<Option<MessageSignature>>, } +/// A `RegistryHolder` that only has the `chat_type` registry (without values), +/// with the keys being in the default order for vanilla servers. +/// +/// This is used when we call [`ClientboundPlayerChat::message`] without also +/// passing registries. +pub static GUESSED_DEFAULT_REGISTRIES_FOR_CHAT: LazyLock<RegistryHolder> = + LazyLock::new(|| RegistryHolder { + extra: [( + Identifier::new("chat_type"), + RegistryType { + map: ChatKindKey::ALL + .iter() + .map(|k| (k.clone().into_ident(), NbtCompound::new())) + .collect(), + }, + )] + .into_iter() + .collect(), + ..Default::default() + }); + impl ClientboundPlayerChat { /// Returns the content of the message. /// @@ -100,8 +132,22 @@ impl ClientboundPlayerChat { } /// Get the full message, including the sender part. + /// + /// Note that the returned message may be incorrect on servers that + /// customize the chat type registry. Consider using + /// [`Self::message_using_registries`] if you'd like to avoid that + /// problem. #[must_use] pub fn message(&self) -> FormattedText { + self.message_using_registries(&GUESSED_DEFAULT_REGISTRIES_FOR_CHAT) + } + + /// Get the full message, including the sender part, while ensuring that the + /// message chat type is correct based on the server's registries. + /// + /// Also see [`Self::message`]. + #[must_use] + pub fn message_using_registries(&self, registries: &RegistryHolder) -> FormattedText { let sender = self.chat_type.name.clone(); let content = self.content(); let target = self.chat_type.target_name.clone(); @@ -114,7 +160,8 @@ impl ClientboundPlayerChat { args.push(PrimitiveOrComponent::FormattedText(target)); } - let translation_key = self.chat_type.translation_key(); + // TODO: implement chat type registry and apply the styles from it here + let translation_key = self.chat_type.translation_key(registries); let component = TranslatableComponent::new(translation_key.to_string(), args); FormattedText::Translatable(component) @@ -122,9 +169,12 @@ impl ClientboundPlayerChat { } impl ChatTypeBound { - pub fn translation_key(&self) -> &str { + pub fn translation_key(&self, registries: &RegistryHolder) -> &str { match &self.chat_type { - Holder::Reference(r) => r.chat_translation_key(), + Holder::Reference(r) => r + .key(registries) + .map(|r| r.chat_translation_key()) + .unwrap_or("chat.type.text"), Holder::Direct(d) => d.chat.translation_key.as_str(), } } diff --git a/azalea-protocol/src/packets/game/c_recipe_book_add.rs b/azalea-protocol/src/packets/game/c_recipe_book_add.rs index 699843fa..0fcd8b04 100644 --- a/azalea-protocol/src/packets/game/c_recipe_book_add.rs +++ b/azalea-protocol/src/packets/game/c_recipe_book_add.rs @@ -1,5 +1,6 @@ use azalea_buf::AzBuf; use azalea_protocol_macros::ClientboundGamePacket; +use azalea_registry::builtin::RecipeBookCategory; use crate::common::recipe::{Ingredient, RecipeDisplayData}; @@ -23,6 +24,6 @@ pub struct RecipeDisplayEntry { // optional varint #[var] pub group: u32, - pub category: azalea_registry::RecipeBookCategory, + pub category: RecipeBookCategory, pub crafting_requirements: Option<Vec<Ingredient>>, } diff --git a/azalea-protocol/src/packets/game/c_remove_mob_effect.rs b/azalea-protocol/src/packets/game/c_remove_mob_effect.rs index 950c07ec..f17cfd37 100644 --- a/azalea-protocol/src/packets/game/c_remove_mob_effect.rs +++ b/azalea-protocol/src/packets/game/c_remove_mob_effect.rs @@ -1,10 +1,11 @@ use azalea_buf::AzBuf; use azalea_protocol_macros::ClientboundGamePacket; +use azalea_registry::builtin::MobEffect; use azalea_world::MinecraftEntityId; #[derive(Clone, Debug, AzBuf, PartialEq, ClientboundGamePacket)] pub struct ClientboundRemoveMobEffect { #[var] pub entity_id: MinecraftEntityId, - pub effect: azalea_registry::MobEffect, + pub effect: MobEffect, } 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 0eee09de..0ff46365 100644 --- a/azalea-protocol/src/packets/game/c_select_advancements_tab.rs +++ b/azalea-protocol/src/packets/game/c_select_advancements_tab.rs @@ -1,5 +1,5 @@ use azalea_buf::AzBuf; -use azalea_core::identifier::Identifier; +use azalea_registry::identifier::Identifier; use azalea_protocol_macros::ClientboundGamePacket; #[derive(Clone, Debug, AzBuf, PartialEq, ClientboundGamePacket)] diff --git a/azalea-protocol/src/packets/game/c_show_dialog.rs b/azalea-protocol/src/packets/game/c_show_dialog.rs index 1bcce17f..52d9be78 100644 --- a/azalea-protocol/src/packets/game/c_show_dialog.rs +++ b/azalea-protocol/src/packets/game/c_show_dialog.rs @@ -1,9 +1,9 @@ use azalea_buf::AzBuf; use azalea_protocol_macros::ClientboundGamePacket; -use azalea_registry::Holder; +use azalea_registry::{Holder, data::Dialog}; use simdnbt::owned::Nbt; #[derive(Clone, Debug, AzBuf, PartialEq, ClientboundGamePacket)] pub struct ClientboundShowDialog { - pub dialog: Holder<azalea_registry::Dialog, Nbt>, + pub dialog: Holder<Dialog, Nbt>, } diff --git a/azalea-protocol/src/packets/game/c_sound.rs b/azalea-protocol/src/packets/game/c_sound.rs index a125546a..31d30942 100644 --- a/azalea-protocol/src/packets/game/c_sound.rs +++ b/azalea-protocol/src/packets/game/c_sound.rs @@ -1,7 +1,7 @@ use azalea_buf::AzBuf; use azalea_core::sound::CustomSound; use azalea_protocol_macros::ClientboundGamePacket; -use azalea_registry::SoundEvent; +use azalea_registry::builtin::SoundEvent; #[derive(Clone, Debug, AzBuf, PartialEq, ClientboundGamePacket)] pub struct ClientboundSound { diff --git a/azalea-protocol/src/packets/game/c_sound_entity.rs b/azalea-protocol/src/packets/game/c_sound_entity.rs index e728e6eb..72325c04 100644 --- a/azalea-protocol/src/packets/game/c_sound_entity.rs +++ b/azalea-protocol/src/packets/game/c_sound_entity.rs @@ -1,7 +1,7 @@ use azalea_buf::AzBuf; use azalea_core::sound::CustomSound; use azalea_protocol_macros::ClientboundGamePacket; -use azalea_registry::SoundEvent; +use azalea_registry::builtin::SoundEvent; use azalea_world::MinecraftEntityId; use super::c_sound::SoundSource; diff --git a/azalea-protocol/src/packets/game/c_stop_sound.rs b/azalea-protocol/src/packets/game/c_stop_sound.rs index f6b42325..419216eb 100644 --- a/azalea-protocol/src/packets/game/c_stop_sound.rs +++ b/azalea-protocol/src/packets/game/c_stop_sound.rs @@ -1,8 +1,9 @@ use std::io::{self, Cursor, Write}; use azalea_buf::{AzaleaRead, AzaleaWrite, BufReadError}; -use azalea_core::{bitset::FixedBitSet, identifier::Identifier}; +use azalea_core::bitset::FixedBitSet; use azalea_protocol_macros::ClientboundGamePacket; +use azalea_registry::identifier::Identifier; use super::c_sound::SoundSource; diff --git a/azalea-protocol/src/packets/game/c_store_cookie.rs b/azalea-protocol/src/packets/game/c_store_cookie.rs index 9646c3b9..fff6fb71 100644 --- a/azalea-protocol/src/packets/game/c_store_cookie.rs +++ b/azalea-protocol/src/packets/game/c_store_cookie.rs @@ -1,5 +1,5 @@ use azalea_buf::AzBuf; -use azalea_core::identifier::Identifier; +use azalea_registry::identifier::Identifier; use azalea_protocol_macros::ClientboundGamePacket; #[derive(Clone, Debug, AzBuf, PartialEq, ClientboundGamePacket)] diff --git a/azalea-protocol/src/packets/game/c_update_advancements.rs b/azalea-protocol/src/packets/game/c_update_advancements.rs index 7296d916..bba53998 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::identifier::Identifier; +use azalea_registry::identifier::Identifier; use azalea_inventory::ItemStack; use azalea_protocol_macros::ClientboundGamePacket; use indexmap::IndexMap; diff --git a/azalea-protocol/src/packets/game/c_update_attributes.rs b/azalea-protocol/src/packets/game/c_update_attributes.rs index d11b08cb..80e4729f 100644 --- a/azalea-protocol/src/packets/game/c_update_attributes.rs +++ b/azalea-protocol/src/packets/game/c_update_attributes.rs @@ -1,7 +1,7 @@ use azalea_buf::AzBuf; use azalea_inventory::components::AttributeModifier; use azalea_protocol_macros::ClientboundGamePacket; -use azalea_registry::Attribute; +use azalea_registry::builtin::Attribute; use azalea_world::MinecraftEntityId; #[derive(Clone, Debug, AzBuf, PartialEq, ClientboundGamePacket)] diff --git a/azalea-protocol/src/packets/game/c_update_mob_effect.rs b/azalea-protocol/src/packets/game/c_update_mob_effect.rs index e9892950..adc33f62 100644 --- a/azalea-protocol/src/packets/game/c_update_mob_effect.rs +++ b/azalea-protocol/src/packets/game/c_update_mob_effect.rs @@ -1,7 +1,7 @@ use azalea_buf::AzBuf; use azalea_entity::MobEffectData; use azalea_protocol_macros::ClientboundGamePacket; -use azalea_registry::MobEffect; +use azalea_registry::builtin::MobEffect; use azalea_world::MinecraftEntityId; #[derive(Clone, Debug, AzBuf, PartialEq, ClientboundGamePacket)] diff --git a/azalea-protocol/src/packets/game/c_update_recipes.rs b/azalea-protocol/src/packets/game/c_update_recipes.rs index e05708a3..de9f6e3b 100644 --- a/azalea-protocol/src/packets/game/c_update_recipes.rs +++ b/azalea-protocol/src/packets/game/c_update_recipes.rs @@ -1,8 +1,9 @@ use std::collections::HashMap; use azalea_buf::AzBuf; -use azalea_core::identifier::Identifier; +use azalea_registry::identifier::Identifier; use azalea_protocol_macros::ClientboundGamePacket; +use azalea_registry::builtin::ItemKind; use crate::common::recipe::{Ingredient, SlotDisplayData}; @@ -24,5 +25,5 @@ pub struct SelectableRecipe { #[derive(Clone, Debug, PartialEq, AzBuf)] pub struct RecipePropertySet { - pub items: Vec<azalea_registry::Item>, + pub items: Vec<ItemKind>, } diff --git a/azalea-protocol/src/packets/game/c_waypoint.rs b/azalea-protocol/src/packets/game/c_waypoint.rs index 0debb0d0..a701622f 100644 --- a/azalea-protocol/src/packets/game/c_waypoint.rs +++ b/azalea-protocol/src/packets/game/c_waypoint.rs @@ -1,8 +1,9 @@ use std::io::{self, Cursor, Write}; use azalea_buf::{AzBuf, AzaleaRead, AzaleaWrite, BufReadError}; -use azalea_core::{color::RgbColor, identifier::Identifier, position::Vec3i}; +use azalea_core::{color::RgbColor, position::Vec3i}; use azalea_protocol_macros::ClientboundGamePacket; +use azalea_registry::identifier::Identifier; use uuid::Uuid; #[derive(Clone, Debug, AzBuf, PartialEq, ClientboundGamePacket)] diff --git a/azalea-protocol/src/packets/game/s_container_click.rs b/azalea-protocol/src/packets/game/s_container_click.rs index ef2e832d..bfce320e 100644 --- a/azalea-protocol/src/packets/game/s_container_click.rs +++ b/azalea-protocol/src/packets/game/s_container_click.rs @@ -2,6 +2,7 @@ use azalea_buf::AzBuf; use azalea_core::{checksum::Checksum, registry_holder::RegistryHolder}; use azalea_inventory::{ItemStack, operations::ClickType}; use azalea_protocol_macros::ServerboundGamePacket; +use azalea_registry::builtin::{DataComponentKind, ItemKind}; use indexmap::IndexMap; #[derive(Clone, Debug, AzBuf, PartialEq, ServerboundGamePacket)] @@ -24,7 +25,7 @@ pub struct HashedStack(pub Option<HashedActualItem>); #[derive(Clone, Debug, AzBuf, PartialEq)] pub struct HashedActualItem { - pub kind: azalea_registry::Item, + pub kind: ItemKind, #[var] pub count: i32, pub components: HashedPatchMap, @@ -33,9 +34,9 @@ pub struct HashedActualItem { #[derive(Clone, Debug, AzBuf, PartialEq)] pub struct HashedPatchMap { #[limit(256)] - pub added_components: Vec<(azalea_registry::DataComponentKind, Checksum)>, + pub added_components: Vec<(DataComponentKind, Checksum)>, #[limit(256)] - pub removed_components: Vec<azalea_registry::DataComponentKind>, + pub removed_components: Vec<DataComponentKind>, } impl HashedStack { diff --git a/azalea-protocol/src/packets/game/s_cookie_response.rs b/azalea-protocol/src/packets/game/s_cookie_response.rs index a6a99cf7..72b95f4d 100644 --- a/azalea-protocol/src/packets/game/s_cookie_response.rs +++ b/azalea-protocol/src/packets/game/s_cookie_response.rs @@ -1,5 +1,5 @@ use azalea_buf::AzBuf; -use azalea_core::identifier::Identifier; +use azalea_registry::identifier::Identifier; use azalea_protocol_macros::ServerboundGamePacket; #[derive(Clone, Debug, AzBuf, PartialEq, ServerboundGamePacket)] 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 193405df..e10e8749 100644 --- a/azalea-protocol/src/packets/game/s_custom_click_action.rs +++ b/azalea-protocol/src/packets/game/s_custom_click_action.rs @@ -1,5 +1,5 @@ use azalea_buf::AzBuf; -use azalea_core::identifier::Identifier; +use azalea_registry::identifier::Identifier; use azalea_protocol_macros::ServerboundGamePacket; use simdnbt::owned::Nbt; diff --git a/azalea-protocol/src/packets/game/s_custom_payload.rs b/azalea-protocol/src/packets/game/s_custom_payload.rs index 8753c7f7..7e5468d9 100644 --- a/azalea-protocol/src/packets/game/s_custom_payload.rs +++ b/azalea-protocol/src/packets/game/s_custom_payload.rs @@ -1,5 +1,5 @@ use azalea_buf::{AzBuf, UnsizedByteArray}; -use azalea_core::identifier::Identifier; +use azalea_registry::identifier::Identifier; use azalea_protocol_macros::ServerboundGamePacket; #[derive(Clone, Debug, AzBuf, PartialEq, ServerboundGamePacket)] diff --git a/azalea-protocol/src/packets/game/s_debug_subscription_request.rs b/azalea-protocol/src/packets/game/s_debug_subscription_request.rs index ea31b113..23bd49a5 100644 --- a/azalea-protocol/src/packets/game/s_debug_subscription_request.rs +++ b/azalea-protocol/src/packets/game/s_debug_subscription_request.rs @@ -1,6 +1,6 @@ use azalea_buf::AzBuf; use azalea_protocol_macros::ServerboundGamePacket; -use azalea_registry::DebugSubscription; +use azalea_registry::builtin::DebugSubscription; #[derive(Clone, Debug, AzBuf, PartialEq, ServerboundGamePacket)] pub struct ServerboundDebugSubscriptionRequest { diff --git a/azalea-protocol/src/packets/game/s_place_recipe.rs b/azalea-protocol/src/packets/game/s_place_recipe.rs index a1f007a0..90821d08 100644 --- a/azalea-protocol/src/packets/game/s_place_recipe.rs +++ b/azalea-protocol/src/packets/game/s_place_recipe.rs @@ -1,5 +1,5 @@ use azalea_buf::AzBuf; -use azalea_core::identifier::Identifier; +use azalea_registry::identifier::Identifier; use azalea_protocol_macros::ServerboundGamePacket; #[derive(Clone, Debug, AzBuf, PartialEq, ServerboundGamePacket)] 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 350c7290..e9766a64 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,5 +1,5 @@ use azalea_buf::AzBuf; -use azalea_core::identifier::Identifier; +use azalea_registry::identifier::Identifier; use azalea_protocol_macros::ServerboundGamePacket; #[derive(Clone, Debug, AzBuf, PartialEq, ServerboundGamePacket)] diff --git a/azalea-protocol/src/packets/game/s_seen_advancements.rs b/azalea-protocol/src/packets/game/s_seen_advancements.rs index 7d9e552b..7e001b7f 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::identifier::Identifier; +use azalea_registry::identifier::Identifier; use azalea_protocol_macros::ServerboundGamePacket; use crate::packets::BufReadError; 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 ac942d88..2203d3e9 100644 --- a/azalea-protocol/src/packets/game/s_set_jigsaw_block.rs +++ b/azalea-protocol/src/packets/game/s_set_jigsaw_block.rs @@ -4,8 +4,9 @@ use std::{ }; use azalea_buf::{AzBuf, AzaleaRead}; -use azalea_core::{identifier::Identifier, position::BlockPos}; +use azalea_core::position::BlockPos; use azalea_protocol_macros::ServerboundGamePacket; +use azalea_registry::identifier::Identifier; use crate::packets::{AzaleaWrite, BufReadError}; diff --git a/azalea-protocol/src/packets/game/s_test_instance_block_action.rs b/azalea-protocol/src/packets/game/s_test_instance_block_action.rs index eacf18a6..c4baf78d 100644 --- a/azalea-protocol/src/packets/game/s_test_instance_block_action.rs +++ b/azalea-protocol/src/packets/game/s_test_instance_block_action.rs @@ -2,7 +2,7 @@ use azalea_buf::AzBuf; use azalea_chat::FormattedText; use azalea_core::position::{BlockPos, Vec3i}; use azalea_protocol_macros::ServerboundGamePacket; -use azalea_registry::TestInstanceKind; +use azalea_registry::builtin::TestInstanceKind; use super::s_set_structure_block::Rotation; diff --git a/azalea-protocol/src/packets/login/c_cookie_request.rs b/azalea-protocol/src/packets/login/c_cookie_request.rs index fbe72c6a..2df3aaa0 100644 --- a/azalea-protocol/src/packets/login/c_cookie_request.rs +++ b/azalea-protocol/src/packets/login/c_cookie_request.rs @@ -1,5 +1,5 @@ use azalea_buf::AzBuf; -use azalea_core::identifier::Identifier; +use azalea_registry::identifier::Identifier; use azalea_protocol_macros::ClientboundLoginPacket; #[derive(Clone, Debug, AzBuf, PartialEq, ClientboundLoginPacket)] diff --git a/azalea-protocol/src/packets/login/c_custom_query.rs b/azalea-protocol/src/packets/login/c_custom_query.rs index 9c7ee50a..6f975cf4 100644 --- a/azalea-protocol/src/packets/login/c_custom_query.rs +++ b/azalea-protocol/src/packets/login/c_custom_query.rs @@ -1,7 +1,7 @@ use std::hash::Hash; use azalea_buf::{AzBuf, UnsizedByteArray}; -use azalea_core::identifier::Identifier; +use azalea_registry::identifier::Identifier; use azalea_protocol_macros::ClientboundLoginPacket; #[derive(Hash, Clone, Debug, AzBuf, PartialEq, ClientboundLoginPacket)] diff --git a/azalea-protocol/src/packets/login/s_cookie_response.rs b/azalea-protocol/src/packets/login/s_cookie_response.rs index c9e7ced9..73efc2a8 100644 --- a/azalea-protocol/src/packets/login/s_cookie_response.rs +++ b/azalea-protocol/src/packets/login/s_cookie_response.rs @@ -1,5 +1,5 @@ use azalea_buf::AzBuf; -use azalea_core::identifier::Identifier; +use azalea_registry::identifier::Identifier; use azalea_protocol_macros::ServerboundLoginPacket; #[derive(Clone, Debug, AzBuf, PartialEq, ServerboundLoginPacket)] diff --git a/azalea-protocol/src/resolve.rs b/azalea-protocol/src/resolve.rs index f18a04a8..468371aa 100644 --- a/azalea-protocol/src/resolve.rs +++ b/azalea-protocol/src/resolve.rs @@ -10,6 +10,7 @@ use hickory_resolver::{Name, TokioResolver, name_server::TokioConnectionProvider use crate::ServerAddress; +#[doc(hidden)] #[deprecated(note = "Renamed to ResolveError")] pub type ResolverError = ResolveError; diff --git a/azalea-registry/README.md b/azalea-registry/README.md index a0121972..34a7baa0 100644 --- a/azalea-registry/README.md +++ b/azalea-registry/README.md @@ -1,5 +1,8 @@ -# Azalea Registry +# `azalea-registry` -Minecraft has a concept called "registries", which are primarily used to determine IDs in the protocol. +Minecraft's registries are a system that give identifiers to certain enums the game. + +Some registries, defined in [`crate::builtin`], are static for the client and server. This includes blocks and items. + +Other registries, defined in [`crate::data`], are sent to us by the server. This includes things such as enchantments and biomes. -The contents of this crate are automatically generated using Minecraft's built-in data generator. diff --git a/azalea-registry/azalea-registry-macros/src/lib.rs b/azalea-registry/azalea-registry-macros/src/lib.rs index e8c95d74..e2e371b5 100644 --- a/azalea-registry/azalea-registry-macros/src/lib.rs +++ b/azalea-registry/azalea-registry-macros/src/lib.rs @@ -34,7 +34,7 @@ impl Parse for RegistryItem { impl Parse for Registry { fn parse(input: ParseStream) -> Result<Self> { - // enum Block { + // enum BlockKind { // Air => "minecraft:air", // Stone => "minecraft:stone" // } @@ -63,7 +63,7 @@ pub fn registry(input: TokenStream) -> TokenStream { let name = input.name; let mut generated = quote! {}; - // enum Block { + // enum BlockKind { // Air = 0, // Stone, // } @@ -80,7 +80,7 @@ pub fn registry(input: TokenStream) -> TokenStream { let attributes = input.attrs; generated.extend(quote! { #(#attributes)* - #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, azalea_buf::AzBuf)] + #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, azalea_buf::AzBuf)] #[repr(u32)] pub enum #name { #enum_items @@ -108,7 +108,7 @@ pub fn registry(input: TokenStream) -> TokenStream { id <= #max_id } } - impl Registry for #name { + impl crate::Registry for #name { fn from_u32(value: u32) -> Option<Self> { if Self::is_valid_id(value) { Some(unsafe { Self::from_u32_unchecked(value) }) @@ -130,7 +130,7 @@ pub fn registry(input: TokenStream) -> TokenStream { #[doc = #doc_0] fn try_from(id: u32) -> Result<Self, Self::Error> { - if let Some(value) = Self::from_u32(id) { + if let Some(value) = crate::Registry::from_u32(id) { Ok(value) } else { Err(()) diff --git a/azalea-registry/src/builtin.rs b/azalea-registry/src/builtin.rs new file mode 100644 index 00000000..cd0f71ab --- /dev/null +++ b/azalea-registry/src/builtin.rs @@ -0,0 +1,7233 @@ +//! All built-in registries. +//! +//! This is different from data-driven registries, which are defined in +//! [`azalea_registry::data`](crate::data). + +use azalea_registry_macros::registry; + +registry! { +/// The AI code that's currently being executed for the entity. +enum Activity { + Core => "minecraft:core", + Idle => "minecraft:idle", + Work => "minecraft:work", + Play => "minecraft:play", + Rest => "minecraft:rest", + Meet => "minecraft:meet", + Panic => "minecraft:panic", + Raid => "minecraft:raid", + PreRaid => "minecraft:pre_raid", + Hide => "minecraft:hide", + Fight => "minecraft:fight", + Celebrate => "minecraft:celebrate", + AdmireItem => "minecraft:admire_item", + Avoid => "minecraft:avoid", + Ride => "minecraft:ride", + PlayDead => "minecraft:play_dead", + LongJump => "minecraft:long_jump", + Ram => "minecraft:ram", + Tongue => "minecraft:tongue", + Swim => "minecraft:swim", + LaySpawn => "minecraft:lay_spawn", + Sniff => "minecraft:sniff", + Investigate => "minecraft:investigate", + Roar => "minecraft:roar", + Emerge => "minecraft:emerge", + Dig => "minecraft:dig", +} +} + +registry! { +enum Attribute { + Armor => "minecraft:armor", + ArmorToughness => "minecraft:armor_toughness", + AttackDamage => "minecraft:attack_damage", + AttackKnockback => "minecraft:attack_knockback", + AttackSpeed => "minecraft:attack_speed", + BlockBreakSpeed => "minecraft:block_break_speed", + BlockInteractionRange => "minecraft:block_interaction_range", + BurningTime => "minecraft:burning_time", + CameraDistance => "minecraft:camera_distance", + ExplosionKnockbackResistance => "minecraft:explosion_knockback_resistance", + EntityInteractionRange => "minecraft:entity_interaction_range", + FallDamageMultiplier => "minecraft:fall_damage_multiplier", + FlyingSpeed => "minecraft:flying_speed", + FollowRange => "minecraft:follow_range", + Gravity => "minecraft:gravity", + JumpStrength => "minecraft:jump_strength", + KnockbackResistance => "minecraft:knockback_resistance", + Luck => "minecraft:luck", + MaxAbsorption => "minecraft:max_absorption", + MaxHealth => "minecraft:max_health", + MiningEfficiency => "minecraft:mining_efficiency", + MovementEfficiency => "minecraft:movement_efficiency", + MovementSpeed => "minecraft:movement_speed", + OxygenBonus => "minecraft:oxygen_bonus", + SafeFallDistance => "minecraft:safe_fall_distance", + Scale => "minecraft:scale", + SneakingSpeed => "minecraft:sneaking_speed", + SpawnReinforcements => "minecraft:spawn_reinforcements", + StepHeight => "minecraft:step_height", + SubmergedMiningSpeed => "minecraft:submerged_mining_speed", + SweepingDamageRatio => "minecraft:sweeping_damage_ratio", + TemptRange => "minecraft:tempt_range", + WaterMovementEfficiency => "minecraft:water_movement_efficiency", + WaypointTransmitRange => "minecraft:waypoint_transmit_range", + WaypointReceiveRange => "minecraft:waypoint_receive_range", +} +} + +registry! { +/// An enum that contains every type of block entity. +/// +/// A block entity is a block that contains data that can't be represented as +/// just a block state, like how chests store items. +enum BlockEntityKind { + Furnace => "minecraft:furnace", + Chest => "minecraft:chest", + TrappedChest => "minecraft:trapped_chest", + EnderChest => "minecraft:ender_chest", + Jukebox => "minecraft:jukebox", + Dispenser => "minecraft:dispenser", + Dropper => "minecraft:dropper", + Sign => "minecraft:sign", + HangingSign => "minecraft:hanging_sign", + MobSpawner => "minecraft:mob_spawner", + CreakingHeart => "minecraft:creaking_heart", + Piston => "minecraft:piston", + BrewingStand => "minecraft:brewing_stand", + EnchantingTable => "minecraft:enchanting_table", + EndPortal => "minecraft:end_portal", + Beacon => "minecraft:beacon", + Skull => "minecraft:skull", + DaylightDetector => "minecraft:daylight_detector", + Hopper => "minecraft:hopper", + Comparator => "minecraft:comparator", + Banner => "minecraft:banner", + StructureBlock => "minecraft:structure_block", + EndGateway => "minecraft:end_gateway", + CommandBlock => "minecraft:command_block", + ShulkerBox => "minecraft:shulker_box", + Bed => "minecraft:bed", + Conduit => "minecraft:conduit", + Barrel => "minecraft:barrel", + Smoker => "minecraft:smoker", + BlastFurnace => "minecraft:blast_furnace", + Lectern => "minecraft:lectern", + Bell => "minecraft:bell", + Jigsaw => "minecraft:jigsaw", + Campfire => "minecraft:campfire", + Beehive => "minecraft:beehive", + SculkSensor => "minecraft:sculk_sensor", + CalibratedSculkSensor => "minecraft:calibrated_sculk_sensor", + SculkCatalyst => "minecraft:sculk_catalyst", + SculkShrieker => "minecraft:sculk_shrieker", + ChiseledBookshelf => "minecraft:chiseled_bookshelf", + Shelf => "minecraft:shelf", + BrushableBlock => "minecraft:brushable_block", + DecoratedPot => "minecraft:decorated_pot", + Crafter => "minecraft:crafter", + TrialSpawner => "minecraft:trial_spawner", + Vault => "minecraft:vault", + TestBlock => "minecraft:test_block", + TestInstanceBlock => "minecraft:test_instance_block", + CopperGolemStatue => "minecraft:copper_golem_statue", +} +} + +registry! { +enum BlockPredicateKind { + MatchingBlocks => "minecraft:matching_blocks", + MatchingBlockTag => "minecraft:matching_block_tag", + MatchingFluids => "minecraft:matching_fluids", + HasSturdyFace => "minecraft:has_sturdy_face", + Solid => "minecraft:solid", + Replaceable => "minecraft:replaceable", + WouldSurvive => "minecraft:would_survive", + InsideWorldBounds => "minecraft:inside_world_bounds", + AnyOf => "minecraft:any_of", + AllOf => "minecraft:all_of", + Not => "minecraft:not", + True => "minecraft:true", + Unobstructed => "minecraft:unobstructed", +} +} + +registry! { +enum ChunkStatus { + Empty => "minecraft:empty", + StructureStarts => "minecraft:structure_starts", + StructureReferences => "minecraft:structure_references", + Biomes => "minecraft:biomes", + Noise => "minecraft:noise", + Surface => "minecraft:surface", + Carvers => "minecraft:carvers", + Features => "minecraft:features", + InitializeLight => "minecraft:initialize_light", + Light => "minecraft:light", + Spawn => "minecraft:spawn", + Full => "minecraft:full", +} +} + +registry! { +enum CommandArgumentKind { + Bool => "brigadier:bool", + Float => "brigadier:float", + Double => "brigadier:double", + Integer => "brigadier:integer", + Long => "brigadier:long", + String => "brigadier:string", + Entity => "minecraft:entity", + GameProfile => "minecraft:game_profile", + BlockPos => "minecraft:block_pos", + ColumnPos => "minecraft:column_pos", + Vec3 => "minecraft:vec3", + Vec2 => "minecraft:vec2", + BlockState => "minecraft:block_state", + BlockPredicate => "minecraft:block_predicate", + ItemStack => "minecraft:item_stack", + ItemPredicate => "minecraft:item_predicate", + Color => "minecraft:color", + HexColor => "minecraft:hex_color", + Component => "minecraft:component", + Style => "minecraft:style", + Message => "minecraft:message", + NbtCompoundTag => "minecraft:nbt_compound_tag", + NbtTag => "minecraft:nbt_tag", + NbtPath => "minecraft:nbt_path", + Objective => "minecraft:objective", + ObjectiveCriteria => "minecraft:objective_criteria", + Operation => "minecraft:operation", + Particle => "minecraft:particle", + Angle => "minecraft:angle", + Rotation => "minecraft:rotation", + ScoreboardSlot => "minecraft:scoreboard_slot", + ScoreHolder => "minecraft:score_holder", + Swizzle => "minecraft:swizzle", + Team => "minecraft:team", + ItemSlot => "minecraft:item_slot", + ItemSlots => "minecraft:item_slots", + ResourceLocation => "minecraft:resource_location", + Function => "minecraft:function", + EntityAnchor => "minecraft:entity_anchor", + IntRange => "minecraft:int_range", + FloatRange => "minecraft:float_range", + Dimension => "minecraft:dimension", + Gamemode => "minecraft:gamemode", + Time => "minecraft:time", + ResourceOrTag => "minecraft:resource_or_tag", + ResourceOrTagKey => "minecraft:resource_or_tag_key", + Resource => "minecraft:resource", + ResourceKey => "minecraft:resource_key", + ResourceSelector => "minecraft:resource_selector", + TemplateMirror => "minecraft:template_mirror", + TemplateRotation => "minecraft:template_rotation", + Heightmap => "minecraft:heightmap", + LootTable => "minecraft:loot_table", + LootPredicate => "minecraft:loot_predicate", + LootModifier => "minecraft:loot_modifier", + Dialog => "minecraft:dialog", + Uuid => "minecraft:uuid", +} +} + +registry! { +enum CustomStat { + LeaveGame => "minecraft:leave_game", + PlayTime => "minecraft:play_time", + TotalWorldTime => "minecraft:total_world_time", + TimeSinceDeath => "minecraft:time_since_death", + TimeSinceRest => "minecraft:time_since_rest", + SneakTime => "minecraft:sneak_time", + WalkOneCm => "minecraft:walk_one_cm", + CrouchOneCm => "minecraft:crouch_one_cm", + SprintOneCm => "minecraft:sprint_one_cm", + WalkOnWaterOneCm => "minecraft:walk_on_water_one_cm", + FallOneCm => "minecraft:fall_one_cm", + ClimbOneCm => "minecraft:climb_one_cm", + FlyOneCm => "minecraft:fly_one_cm", + WalkUnderWaterOneCm => "minecraft:walk_under_water_one_cm", + MinecartOneCm => "minecraft:minecart_one_cm", + BoatOneCm => "minecraft:boat_one_cm", + PigOneCm => "minecraft:pig_one_cm", + HappyGhastOneCm => "minecraft:happy_ghast_one_cm", + HorseOneCm => "minecraft:horse_one_cm", + 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", + DamageDealtAbsorbed => "minecraft:damage_dealt_absorbed", + DamageDealtResisted => "minecraft:damage_dealt_resisted", + DamageTaken => "minecraft:damage_taken", + DamageBlockedByShield => "minecraft:damage_blocked_by_shield", + DamageAbsorbed => "minecraft:damage_absorbed", + DamageResisted => "minecraft:damage_resisted", + Deaths => "minecraft:deaths", + MobKills => "minecraft:mob_kills", + AnimalsBred => "minecraft:animals_bred", + PlayerKills => "minecraft:player_kills", + FishCaught => "minecraft:fish_caught", + TalkedToVillager => "minecraft:talked_to_villager", + TradedWithVillager => "minecraft:traded_with_villager", + EatCakeSlice => "minecraft:eat_cake_slice", + FillCauldron => "minecraft:fill_cauldron", + UseCauldron => "minecraft:use_cauldron", + CleanArmor => "minecraft:clean_armor", + CleanBanner => "minecraft:clean_banner", + CleanShulkerBox => "minecraft:clean_shulker_box", + InteractWithBrewingstand => "minecraft:interact_with_brewingstand", + InteractWithBeacon => "minecraft:interact_with_beacon", + InspectDropper => "minecraft:inspect_dropper", + InspectHopper => "minecraft:inspect_hopper", + InspectDispenser => "minecraft:inspect_dispenser", + PlayNoteblock => "minecraft:play_noteblock", + TuneNoteblock => "minecraft:tune_noteblock", + PotFlower => "minecraft:pot_flower", + TriggerTrappedChest => "minecraft:trigger_trapped_chest", + OpenEnderchest => "minecraft:open_enderchest", + EnchantItem => "minecraft:enchant_item", + PlayRecord => "minecraft:play_record", + InteractWithFurnace => "minecraft:interact_with_furnace", + InteractWithCraftingTable => "minecraft:interact_with_crafting_table", + OpenChest => "minecraft:open_chest", + SleepInBed => "minecraft:sleep_in_bed", + OpenShulkerBox => "minecraft:open_shulker_box", + OpenBarrel => "minecraft:open_barrel", + InteractWithBlastFurnace => "minecraft:interact_with_blast_furnace", + InteractWithSmoker => "minecraft:interact_with_smoker", + InteractWithLectern => "minecraft:interact_with_lectern", + InteractWithCampfire => "minecraft:interact_with_campfire", + InteractWithCartographyTable => "minecraft:interact_with_cartography_table", + InteractWithLoom => "minecraft:interact_with_loom", + InteractWithStonecutter => "minecraft:interact_with_stonecutter", + BellRing => "minecraft:bell_ring", + RaidTrigger => "minecraft:raid_trigger", + RaidWin => "minecraft:raid_win", + InteractWithAnvil => "minecraft:interact_with_anvil", + InteractWithGrindstone => "minecraft:interact_with_grindstone", + TargetHit => "minecraft:target_hit", + InteractWithSmithingTable => "minecraft:interact_with_smithing_table", +} +} + +registry! { +/// An enum that contains every type of entity. +enum EntityKind { + AcaciaBoat => "minecraft:acacia_boat", + AcaciaChestBoat => "minecraft:acacia_chest_boat", + Allay => "minecraft:allay", + AreaEffectCloud => "minecraft:area_effect_cloud", + Armadillo => "minecraft:armadillo", + ArmorStand => "minecraft:armor_stand", + Arrow => "minecraft:arrow", + Axolotl => "minecraft:axolotl", + BambooChestRaft => "minecraft:bamboo_chest_raft", + BambooRaft => "minecraft:bamboo_raft", + Bat => "minecraft:bat", + Bee => "minecraft:bee", + BirchBoat => "minecraft:birch_boat", + BirchChestBoat => "minecraft:birch_chest_boat", + Blaze => "minecraft:blaze", + BlockDisplay => "minecraft:block_display", + Bogged => "minecraft:bogged", + 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", + CherryChestBoat => "minecraft:cherry_chest_boat", + ChestMinecart => "minecraft:chest_minecart", + Chicken => "minecraft:chicken", + Cod => "minecraft:cod", + CopperGolem => "minecraft:copper_golem", + CommandBlockMinecart => "minecraft:command_block_minecart", + Cow => "minecraft:cow", + Creaking => "minecraft:creaking", + Creeper => "minecraft:creeper", + DarkOakBoat => "minecraft:dark_oak_boat", + DarkOakChestBoat => "minecraft:dark_oak_chest_boat", + Dolphin => "minecraft:dolphin", + Donkey => "minecraft:donkey", + DragonFireball => "minecraft:dragon_fireball", + Drowned => "minecraft:drowned", + Egg => "minecraft:egg", + ElderGuardian => "minecraft:elder_guardian", + Enderman => "minecraft:enderman", + Endermite => "minecraft:endermite", + EnderDragon => "minecraft:ender_dragon", + EnderPearl => "minecraft:ender_pearl", + EndCrystal => "minecraft:end_crystal", + Evoker => "minecraft:evoker", + EvokerFangs => "minecraft:evoker_fangs", + ExperienceBottle => "minecraft:experience_bottle", + ExperienceOrb => "minecraft:experience_orb", + EyeOfEnder => "minecraft:eye_of_ender", + FallingBlock => "minecraft:falling_block", + Fireball => "minecraft:fireball", + FireworkRocket => "minecraft:firework_rocket", + Fox => "minecraft:fox", + Frog => "minecraft:frog", + FurnaceMinecart => "minecraft:furnace_minecart", + Ghast => "minecraft:ghast", + HappyGhast => "minecraft:happy_ghast", + Giant => "minecraft:giant", + GlowItemFrame => "minecraft:glow_item_frame", + GlowSquid => "minecraft:glow_squid", + Goat => "minecraft:goat", + Guardian => "minecraft:guardian", + Hoglin => "minecraft:hoglin", + HopperMinecart => "minecraft:hopper_minecart", + Horse => "minecraft:horse", + Husk => "minecraft:husk", + Illusioner => "minecraft:illusioner", + Interaction => "minecraft:interaction", + IronGolem => "minecraft:iron_golem", + Item => "minecraft:item", + ItemDisplay => "minecraft:item_display", + ItemFrame => "minecraft:item_frame", + JungleBoat => "minecraft:jungle_boat", + JungleChestBoat => "minecraft:jungle_chest_boat", + LeashKnot => "minecraft:leash_knot", + LightningBolt => "minecraft:lightning_bolt", + Llama => "minecraft:llama", + LlamaSpit => "minecraft:llama_spit", + MagmaCube => "minecraft:magma_cube", + MangroveBoat => "minecraft:mangrove_boat", + MangroveChestBoat => "minecraft:mangrove_chest_boat", + Mannequin => "minecraft:mannequin", + Marker => "minecraft:marker", + Minecart => "minecraft:minecart", + Mooshroom => "minecraft:mooshroom", + Mule => "minecraft:mule", + Nautilus => "minecraft:nautilus", + OakBoat => "minecraft:oak_boat", + OakChestBoat => "minecraft:oak_chest_boat", + Ocelot => "minecraft:ocelot", + OminousItemSpawner => "minecraft:ominous_item_spawner", + Painting => "minecraft:painting", + 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", + Piglin => "minecraft:piglin", + PiglinBrute => "minecraft:piglin_brute", + Pillager => "minecraft:pillager", + PolarBear => "minecraft:polar_bear", + SplashPotion => "minecraft:splash_potion", + LingeringPotion => "minecraft:lingering_potion", + Pufferfish => "minecraft:pufferfish", + Rabbit => "minecraft:rabbit", + Ravager => "minecraft:ravager", + Salmon => "minecraft:salmon", + Sheep => "minecraft:sheep", + Shulker => "minecraft:shulker", + ShulkerBullet => "minecraft:shulker_bullet", + Silverfish => "minecraft:silverfish", + Skeleton => "minecraft:skeleton", + SkeletonHorse => "minecraft:skeleton_horse", + Slime => "minecraft:slime", + SmallFireball => "minecraft:small_fireball", + Sniffer => "minecraft:sniffer", + Snowball => "minecraft:snowball", + SnowGolem => "minecraft:snow_golem", + SpawnerMinecart => "minecraft:spawner_minecart", + SpectralArrow => "minecraft:spectral_arrow", + Spider => "minecraft:spider", + SpruceBoat => "minecraft:spruce_boat", + SpruceChestBoat => "minecraft:spruce_chest_boat", + Squid => "minecraft:squid", + Stray => "minecraft:stray", + Strider => "minecraft:strider", + Tadpole => "minecraft:tadpole", + TextDisplay => "minecraft:text_display", + Tnt => "minecraft:tnt", + TntMinecart => "minecraft:tnt_minecart", + TraderLlama => "minecraft:trader_llama", + Trident => "minecraft:trident", + TropicalFish => "minecraft:tropical_fish", + Turtle => "minecraft:turtle", + Vex => "minecraft:vex", + Villager => "minecraft:villager", + Vindicator => "minecraft:vindicator", + WanderingTrader => "minecraft:wandering_trader", + Warden => "minecraft:warden", + WindCharge => "minecraft:wind_charge", + Witch => "minecraft:witch", + Wither => "minecraft:wither", + WitherSkeleton => "minecraft:wither_skeleton", + WitherSkull => "minecraft:wither_skull", + Wolf => "minecraft:wolf", + 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", + FishingBobber => "minecraft:fishing_bobber", +} +} + +registry! { +enum FloatProviderKind { + Constant => "minecraft:constant", + Uniform => "minecraft:uniform", + ClampedNormal => "minecraft:clamped_normal", + Trapezoid => "minecraft:trapezoid", +} +} + +registry! { +enum Fluid { + Empty => "minecraft:empty", + FlowingWater => "minecraft:flowing_water", + Water => "minecraft:water", + FlowingLava => "minecraft:flowing_lava", + Lava => "minecraft:lava", +} +} + +registry! { +enum GameEvent { + BlockActivate => "minecraft:block_activate", + BlockAttach => "minecraft:block_attach", + BlockChange => "minecraft:block_change", + BlockClose => "minecraft:block_close", + BlockDeactivate => "minecraft:block_deactivate", + BlockDestroy => "minecraft:block_destroy", + BlockDetach => "minecraft:block_detach", + BlockOpen => "minecraft:block_open", + BlockPlace => "minecraft:block_place", + ContainerClose => "minecraft:container_close", + ContainerOpen => "minecraft:container_open", + Drink => "minecraft:drink", + Eat => "minecraft:eat", + ElytraGlide => "minecraft:elytra_glide", + EntityDamage => "minecraft:entity_damage", + EntityDie => "minecraft:entity_die", + EntityDismount => "minecraft:entity_dismount", + EntityInteract => "minecraft:entity_interact", + EntityMount => "minecraft:entity_mount", + EntityPlace => "minecraft:entity_place", + EntityAction => "minecraft:entity_action", + Equip => "minecraft:equip", + Explode => "minecraft:explode", + Flap => "minecraft:flap", + FluidPickup => "minecraft:fluid_pickup", + FluidPlace => "minecraft:fluid_place", + HitGround => "minecraft:hit_ground", + InstrumentPlay => "minecraft:instrument_play", + ItemInteractFinish => "minecraft:item_interact_finish", + ItemInteractStart => "minecraft:item_interact_start", + JukeboxPlay => "minecraft:jukebox_play", + JukeboxStopPlay => "minecraft:jukebox_stop_play", + LightningStrike => "minecraft:lightning_strike", + NoteBlockPlay => "minecraft:note_block_play", + PrimeFuse => "minecraft:prime_fuse", + ProjectileLand => "minecraft:projectile_land", + ProjectileShoot => "minecraft:projectile_shoot", + SculkSensorTendrilsClicking => "minecraft:sculk_sensor_tendrils_clicking", + Shear => "minecraft:shear", + Shriek => "minecraft:shriek", + Splash => "minecraft:splash", + Step => "minecraft:step", + Swim => "minecraft:swim", + Teleport => "minecraft:teleport", + Unequip => "minecraft:unequip", + Resonate1 => "minecraft:resonate_1", + Resonate2 => "minecraft:resonate_2", + Resonate3 => "minecraft:resonate_3", + Resonate4 => "minecraft:resonate_4", + Resonate5 => "minecraft:resonate_5", + Resonate6 => "minecraft:resonate_6", + Resonate7 => "minecraft:resonate_7", + Resonate8 => "minecraft:resonate_8", + Resonate9 => "minecraft:resonate_9", + Resonate10 => "minecraft:resonate_10", + Resonate11 => "minecraft:resonate_11", + Resonate12 => "minecraft:resonate_12", + Resonate13 => "minecraft:resonate_13", + Resonate14 => "minecraft:resonate_14", + Resonate15 => "minecraft:resonate_15", +} +} + +registry! { +enum HeightProviderKind { + Constant => "minecraft:constant", + Uniform => "minecraft:uniform", + BiasedToBottom => "minecraft:biased_to_bottom", + VeryBiasedToBottom => "minecraft:very_biased_to_bottom", + Trapezoid => "minecraft:trapezoid", + WeightedList => "minecraft:weighted_list", +} +} + +registry! { +enum IntProviderKind { + Constant => "minecraft:constant", + Uniform => "minecraft:uniform", + BiasedToBottom => "minecraft:biased_to_bottom", + Clamped => "minecraft:clamped", + WeightedList => "minecraft:weighted_list", + ClampedNormal => "minecraft:clamped_normal", +} +} + +registry! { +enum LootConditionKind { + Inverted => "minecraft:inverted", + AnyOf => "minecraft:any_of", + AllOf => "minecraft:all_of", + RandomChance => "minecraft:random_chance", + RandomChanceWithEnchantedBonus => "minecraft:random_chance_with_enchanted_bonus", + EntityProperties => "minecraft:entity_properties", + KilledByPlayer => "minecraft:killed_by_player", + EntityScores => "minecraft:entity_scores", + BlockStateProperty => "minecraft:block_state_property", + MatchTool => "minecraft:match_tool", + TableBonus => "minecraft:table_bonus", + SurvivesExplosion => "minecraft:survives_explosion", + DamageSourceProperties => "minecraft:damage_source_properties", + LocationCheck => "minecraft:location_check", + WeatherCheck => "minecraft:weather_check", + Reference => "minecraft:reference", + TimeCheck => "minecraft:time_check", + ValueCheck => "minecraft:value_check", + EnchantmentActiveCheck => "minecraft:enchantment_active_check", +} +} + +registry! { +enum LootFunctionKind { + SetCount => "minecraft:set_count", + SetItem => "minecraft:set_item", + EnchantWithLevels => "minecraft:enchant_with_levels", + EnchantRandomly => "minecraft:enchant_randomly", + SetEnchantments => "minecraft:set_enchantments", + SetCustomData => "minecraft:set_custom_data", + SetComponents => "minecraft:set_components", + FurnaceSmelt => "minecraft:furnace_smelt", + EnchantedCountIncrease => "minecraft:enchanted_count_increase", + SetDamage => "minecraft:set_damage", + SetAttributes => "minecraft:set_attributes", + SetName => "minecraft:set_name", + ExplorationMap => "minecraft:exploration_map", + SetStewEffect => "minecraft:set_stew_effect", + CopyName => "minecraft:copy_name", + SetContents => "minecraft:set_contents", + ModifyContents => "minecraft:modify_contents", + Filtered => "minecraft:filtered", + LimitCount => "minecraft:limit_count", + ApplyBonus => "minecraft:apply_bonus", + SetLootTable => "minecraft:set_loot_table", + ExplosionDecay => "minecraft:explosion_decay", + SetLore => "minecraft:set_lore", + FillPlayerHead => "minecraft:fill_player_head", + CopyCustomData => "minecraft:copy_custom_data", + CopyState => "minecraft:copy_state", + SetBannerPattern => "minecraft:set_banner_pattern", + SetPotion => "minecraft:set_potion", + SetInstrument => "minecraft:set_instrument", + Reference => "minecraft:reference", + Sequence => "minecraft:sequence", + CopyComponents => "minecraft:copy_components", + SetFireworks => "minecraft:set_fireworks", + SetFireworkExplosion => "minecraft:set_firework_explosion", + SetBookCover => "minecraft:set_book_cover", + SetWrittenBookPages => "minecraft:set_written_book_pages", + SetWritableBookPages => "minecraft:set_writable_book_pages", + ToggleTooltips => "minecraft:toggle_tooltips", + SetOminousBottleAmplifier => "minecraft:set_ominous_bottle_amplifier", + SetCustomModelData => "minecraft:set_custom_model_data", + Discard => "minecraft:discard", +} +} + +registry! { +enum LootNbtProviderKind { + Storage => "minecraft:storage", + Context => "minecraft:context", +} +} + +registry! { +enum LootNumberProviderKind { + Constant => "minecraft:constant", + Uniform => "minecraft:uniform", + Binomial => "minecraft:binomial", + Score => "minecraft:score", + Storage => "minecraft:storage", + EnchantmentLevel => "minecraft:enchantment_level", +} +} + +registry! { +enum LootPoolEntryKind { + Empty => "minecraft:empty", + Item => "minecraft:item", + LootTable => "minecraft:loot_table", + Dynamic => "minecraft:dynamic", + Tag => "minecraft:tag", + Slots => "minecraft:slots", + Alternatives => "minecraft:alternatives", + Sequence => "minecraft:sequence", + Group => "minecraft:group", +} +} + +registry! { +enum LootScoreProviderKind { + Fixed => "minecraft:fixed", + Context => "minecraft:context", +} +} + +registry! { +enum MemoryModuleKind { + Dummy => "minecraft:dummy", + Home => "minecraft:home", + JobSite => "minecraft:job_site", + PotentialJobSite => "minecraft:potential_job_site", + MeetingPoint => "minecraft:meeting_point", + SecondaryJobSite => "minecraft:secondary_job_site", + Mobs => "minecraft:mobs", + VisibleMobs => "minecraft:visible_mobs", + VisibleVillagerBabies => "minecraft:visible_villager_babies", + NearestPlayers => "minecraft:nearest_players", + NearestVisiblePlayer => "minecraft:nearest_visible_player", + NearestVisibleTargetablePlayer => "minecraft:nearest_visible_targetable_player", + NearestVisibleTargetablePlayers => "minecraft:nearest_visible_targetable_players", + WalkTarget => "minecraft:walk_target", + LookTarget => "minecraft:look_target", + AttackTarget => "minecraft:attack_target", + AttackCoolingDown => "minecraft:attack_cooling_down", + InteractionTarget => "minecraft:interaction_target", + BreedTarget => "minecraft:breed_target", + RideTarget => "minecraft:ride_target", + Path => "minecraft:path", + InteractableDoors => "minecraft:interactable_doors", + DoorsToClose => "minecraft:doors_to_close", + NearestBed => "minecraft:nearest_bed", + HurtBy => "minecraft:hurt_by", + HurtByEntity => "minecraft:hurt_by_entity", + AvoidTarget => "minecraft:avoid_target", + NearestHostile => "minecraft:nearest_hostile", + NearestAttackable => "minecraft:nearest_attackable", + HidingPlace => "minecraft:hiding_place", + HeardBellTime => "minecraft:heard_bell_time", + CantReachWalkTargetSince => "minecraft:cant_reach_walk_target_since", + GolemDetectedRecently => "minecraft:golem_detected_recently", + DangerDetectedRecently => "minecraft:danger_detected_recently", + LastSlept => "minecraft:last_slept", + LastWoken => "minecraft:last_woken", + LastWorkedAtPoi => "minecraft:last_worked_at_poi", + NearestVisibleAdult => "minecraft:nearest_visible_adult", + NearestVisibleWantedItem => "minecraft:nearest_visible_wanted_item", + NearestVisibleNemesis => "minecraft:nearest_visible_nemesis", + PlayDeadTicks => "minecraft:play_dead_ticks", + TemptingPlayer => "minecraft:tempting_player", + TemptationCooldownTicks => "minecraft:temptation_cooldown_ticks", + GazeCooldownTicks => "minecraft:gaze_cooldown_ticks", + IsTempted => "minecraft:is_tempted", + LongJumpCoolingDown => "minecraft:long_jump_cooling_down", + LongJumpMidJump => "minecraft:long_jump_mid_jump", + HasHuntingCooldown => "minecraft:has_hunting_cooldown", + RamCooldownTicks => "minecraft:ram_cooldown_ticks", + RamTarget => "minecraft:ram_target", + IsInWater => "minecraft:is_in_water", + IsPregnant => "minecraft:is_pregnant", + IsPanicking => "minecraft:is_panicking", + UnreachableTongueTargets => "minecraft:unreachable_tongue_targets", + 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", + 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", + TimeTryingToReachAdmireItem => "minecraft:time_trying_to_reach_admire_item", + DisableWalkToAdmireItem => "minecraft:disable_walk_to_admire_item", + AdmiringDisabled => "minecraft:admiring_disabled", + HuntedRecently => "minecraft:hunted_recently", + CelebrateLocation => "minecraft:celebrate_location", + Dancing => "minecraft:dancing", + NearestVisibleHuntableHoglin => "minecraft:nearest_visible_huntable_hoglin", + NearestVisibleBabyHoglin => "minecraft:nearest_visible_baby_hoglin", + NearestTargetablePlayerNotWearingGold => "minecraft:nearest_targetable_player_not_wearing_gold", + NearbyAdultPiglins => "minecraft:nearby_adult_piglins", + NearestVisibleAdultPiglins => "minecraft:nearest_visible_adult_piglins", + NearestVisibleAdultHoglins => "minecraft:nearest_visible_adult_hoglins", + NearestVisibleAdultPiglin => "minecraft:nearest_visible_adult_piglin", + NearestVisibleZombified => "minecraft:nearest_visible_zombified", + VisibleAdultPiglinCount => "minecraft:visible_adult_piglin_count", + VisibleAdultHoglinCount => "minecraft:visible_adult_hoglin_count", + NearestPlayerHoldingWantedItem => "minecraft:nearest_player_holding_wanted_item", + AteRecently => "minecraft:ate_recently", + NearestRepellent => "minecraft:nearest_repellent", + Pacified => "minecraft:pacified", + RoarTarget => "minecraft:roar_target", + DisturbanceLocation => "minecraft:disturbance_location", + RecentProjectile => "minecraft:recent_projectile", + IsSniffing => "minecraft:is_sniffing", + IsEmerging => "minecraft:is_emerging", + RoarSoundDelay => "minecraft:roar_sound_delay", + DigCooldown => "minecraft:dig_cooldown", + RoarSoundCooldown => "minecraft:roar_sound_cooldown", + SniffCooldown => "minecraft:sniff_cooldown", + TouchCooldown => "minecraft:touch_cooldown", + VibrationCooldown => "minecraft:vibration_cooldown", + SonicBoomCooldown => "minecraft:sonic_boom_cooldown", + SonicBoomSoundCooldown => "minecraft:sonic_boom_sound_cooldown", + SonicBoomSoundDelay => "minecraft:sonic_boom_sound_delay", + LikedPlayer => "minecraft:liked_player", + LikedNoteblock => "minecraft:liked_noteblock", + LikedNoteblockCooldownTicks => "minecraft:liked_noteblock_cooldown_ticks", + ItemPickupCooldownTicks => "minecraft:item_pickup_cooldown_ticks", + SnifferExploredPositions => "minecraft:sniffer_explored_positions", + SnifferSniffingTarget => "minecraft:sniffer_sniffing_target", + SnifferDigging => "minecraft:sniffer_digging", + SnifferHappy => "minecraft:sniffer_happy", + BreezeJumpCooldown => "minecraft:breeze_jump_cooldown", + BreezeShoot => "minecraft:breeze_shoot", + BreezeShootCharging => "minecraft:breeze_shoot_charging", + BreezeShootRecover => "minecraft:breeze_shoot_recover", + BreezeShootCooldown => "minecraft:breeze_shoot_cooldown", + BreezeJumpInhaling => "minecraft:breeze_jump_inhaling", + BreezeJumpTarget => "minecraft:breeze_jump_target", + BreezeLeavingWater => "minecraft:breeze_leaving_water", +} +} + +registry! { +enum MobEffect { + Speed => "minecraft:speed", + Slowness => "minecraft:slowness", + Haste => "minecraft:haste", + MiningFatigue => "minecraft:mining_fatigue", + Strength => "minecraft:strength", + InstantHealth => "minecraft:instant_health", + InstantDamage => "minecraft:instant_damage", + JumpBoost => "minecraft:jump_boost", + Nausea => "minecraft:nausea", + Regeneration => "minecraft:regeneration", + Resistance => "minecraft:resistance", + FireResistance => "minecraft:fire_resistance", + WaterBreathing => "minecraft:water_breathing", + Invisibility => "minecraft:invisibility", + Blindness => "minecraft:blindness", + NightVision => "minecraft:night_vision", + Hunger => "minecraft:hunger", + Weakness => "minecraft:weakness", + Poison => "minecraft:poison", + Wither => "minecraft:wither", + HealthBoost => "minecraft:health_boost", + Absorption => "minecraft:absorption", + Saturation => "minecraft:saturation", + Glowing => "minecraft:glowing", + Levitation => "minecraft:levitation", + Luck => "minecraft:luck", + Unluck => "minecraft:unluck", + SlowFalling => "minecraft:slow_falling", + ConduitPower => "minecraft:conduit_power", + DolphinsGrace => "minecraft:dolphins_grace", + BadOmen => "minecraft:bad_omen", + HeroOfTheVillage => "minecraft:hero_of_the_village", + Darkness => "minecraft:darkness", + TrialOmen => "minecraft:trial_omen", + RaidOmen => "minecraft:raid_omen", + WindCharged => "minecraft:wind_charged", + Weaving => "minecraft:weaving", + Oozing => "minecraft:oozing", + Infested => "minecraft:infested", + BreathOfTheNautilus => "minecraft:breath_of_the_nautilus", +} +} + +registry! { +enum ParticleKind { + AngryVillager => "minecraft:angry_villager", + Block => "minecraft:block", + BlockMarker => "minecraft:block_marker", + Bubble => "minecraft:bubble", + Cloud => "minecraft:cloud", + CopperFireFlame => "minecraft:copper_fire_flame", + Crit => "minecraft:crit", + DamageIndicator => "minecraft:damage_indicator", + DragonBreath => "minecraft:dragon_breath", + DrippingLava => "minecraft:dripping_lava", + FallingLava => "minecraft:falling_lava", + LandingLava => "minecraft:landing_lava", + DrippingWater => "minecraft:dripping_water", + FallingWater => "minecraft:falling_water", + Dust => "minecraft:dust", + DustColorTransition => "minecraft:dust_color_transition", + Effect => "minecraft:effect", + ElderGuardian => "minecraft:elder_guardian", + EnchantedHit => "minecraft:enchanted_hit", + Enchant => "minecraft:enchant", + EndRod => "minecraft:end_rod", + EntityEffect => "minecraft:entity_effect", + ExplosionEmitter => "minecraft:explosion_emitter", + Explosion => "minecraft:explosion", + Gust => "minecraft:gust", + SmallGust => "minecraft:small_gust", + GustEmitterLarge => "minecraft:gust_emitter_large", + GustEmitterSmall => "minecraft:gust_emitter_small", + SonicBoom => "minecraft:sonic_boom", + FallingDust => "minecraft:falling_dust", + Firework => "minecraft:firework", + Fishing => "minecraft:fishing", + Flame => "minecraft:flame", + Infested => "minecraft:infested", + CherryLeaves => "minecraft:cherry_leaves", + PaleOakLeaves => "minecraft:pale_oak_leaves", + TintedLeaves => "minecraft:tinted_leaves", + SculkSoul => "minecraft:sculk_soul", + SculkCharge => "minecraft:sculk_charge", + SculkChargePop => "minecraft:sculk_charge_pop", + SoulFireFlame => "minecraft:soul_fire_flame", + Soul => "minecraft:soul", + Flash => "minecraft:flash", + HappyVillager => "minecraft:happy_villager", + Composter => "minecraft:composter", + Heart => "minecraft:heart", + InstantEffect => "minecraft:instant_effect", + Item => "minecraft:item", + Vibration => "minecraft:vibration", + Trail => "minecraft:trail", + ItemSlime => "minecraft:item_slime", + ItemCobweb => "minecraft:item_cobweb", + ItemSnowball => "minecraft:item_snowball", + LargeSmoke => "minecraft:large_smoke", + Lava => "minecraft:lava", + Mycelium => "minecraft:mycelium", + Note => "minecraft:note", + Poof => "minecraft:poof", + Portal => "minecraft:portal", + Rain => "minecraft:rain", + Smoke => "minecraft:smoke", + WhiteSmoke => "minecraft:white_smoke", + Sneeze => "minecraft:sneeze", + Spit => "minecraft:spit", + SquidInk => "minecraft:squid_ink", + SweepAttack => "minecraft:sweep_attack", + TotemOfUndying => "minecraft:totem_of_undying", + Underwater => "minecraft:underwater", + Splash => "minecraft:splash", + Witch => "minecraft:witch", + BubblePop => "minecraft:bubble_pop", + CurrentDown => "minecraft:current_down", + BubbleColumnUp => "minecraft:bubble_column_up", + Nautilus => "minecraft:nautilus", + Dolphin => "minecraft:dolphin", + CampfireCosySmoke => "minecraft:campfire_cosy_smoke", + CampfireSignalSmoke => "minecraft:campfire_signal_smoke", + DrippingHoney => "minecraft:dripping_honey", + FallingHoney => "minecraft:falling_honey", + LandingHoney => "minecraft:landing_honey", + FallingNectar => "minecraft:falling_nectar", + FallingSporeBlossom => "minecraft:falling_spore_blossom", + Ash => "minecraft:ash", + CrimsonSpore => "minecraft:crimson_spore", + WarpedSpore => "minecraft:warped_spore", + SporeBlossomAir => "minecraft:spore_blossom_air", + DrippingObsidianTear => "minecraft:dripping_obsidian_tear", + FallingObsidianTear => "minecraft:falling_obsidian_tear", + LandingObsidianTear => "minecraft:landing_obsidian_tear", + ReversePortal => "minecraft:reverse_portal", + WhiteAsh => "minecraft:white_ash", + SmallFlame => "minecraft:small_flame", + Snowflake => "minecraft:snowflake", + DrippingDripstoneLava => "minecraft:dripping_dripstone_lava", + FallingDripstoneLava => "minecraft:falling_dripstone_lava", + DrippingDripstoneWater => "minecraft:dripping_dripstone_water", + FallingDripstoneWater => "minecraft:falling_dripstone_water", + GlowSquidInk => "minecraft:glow_squid_ink", + Glow => "minecraft:glow", + WaxOn => "minecraft:wax_on", + WaxOff => "minecraft:wax_off", + ElectricSpark => "minecraft:electric_spark", + Scrape => "minecraft:scrape", + Shriek => "minecraft:shriek", + EggCrack => "minecraft:egg_crack", + DustPlume => "minecraft:dust_plume", + TrialSpawnerDetection => "minecraft:trial_spawner_detection", + TrialSpawnerDetectionOminous => "minecraft:trial_spawner_detection_ominous", + VaultConnection => "minecraft:vault_connection", + DustPillar => "minecraft:dust_pillar", + OminousSpawning => "minecraft:ominous_spawning", + RaidOmen => "minecraft:raid_omen", + TrialOmen => "minecraft:trial_omen", + BlockCrumble => "minecraft:block_crumble", + Firefly => "minecraft:firefly", +} +} + +registry! { +enum PointOfInterestKind { + Armorer => "minecraft:armorer", + Butcher => "minecraft:butcher", + Cartographer => "minecraft:cartographer", + Cleric => "minecraft:cleric", + Farmer => "minecraft:farmer", + Fisherman => "minecraft:fisherman", + Fletcher => "minecraft:fletcher", + Leatherworker => "minecraft:leatherworker", + Librarian => "minecraft:librarian", + Mason => "minecraft:mason", + Shepherd => "minecraft:shepherd", + Toolsmith => "minecraft:toolsmith", + Weaponsmith => "minecraft:weaponsmith", + Home => "minecraft:home", + Meeting => "minecraft:meeting", + Beehive => "minecraft:beehive", + BeeNest => "minecraft:bee_nest", + NetherPortal => "minecraft:nether_portal", + Lodestone => "minecraft:lodestone", + TestInstance => "minecraft:test_instance", + LightningRod => "minecraft:lightning_rod", +} +} + +registry! { +enum PosRuleTest { + AlwaysTrue => "minecraft:always_true", + LinearPos => "minecraft:linear_pos", + AxisAlignedLinearPos => "minecraft:axis_aligned_linear_pos", +} +} + +registry! { +enum PositionSourceKind { + Block => "minecraft:block", + Entity => "minecraft:entity", +} +} + +registry! { +enum Potion { + Water => "minecraft:water", + Mundane => "minecraft:mundane", + Thick => "minecraft:thick", + Awkward => "minecraft:awkward", + NightVision => "minecraft:night_vision", + LongNightVision => "minecraft:long_night_vision", + Invisibility => "minecraft:invisibility", + LongInvisibility => "minecraft:long_invisibility", + Leaping => "minecraft:leaping", + LongLeaping => "minecraft:long_leaping", + StrongLeaping => "minecraft:strong_leaping", + FireResistance => "minecraft:fire_resistance", + LongFireResistance => "minecraft:long_fire_resistance", + Swiftness => "minecraft:swiftness", + LongSwiftness => "minecraft:long_swiftness", + StrongSwiftness => "minecraft:strong_swiftness", + Slowness => "minecraft:slowness", + LongSlowness => "minecraft:long_slowness", + StrongSlowness => "minecraft:strong_slowness", + TurtleMaster => "minecraft:turtle_master", + LongTurtleMaster => "minecraft:long_turtle_master", + StrongTurtleMaster => "minecraft:strong_turtle_master", + WaterBreathing => "minecraft:water_breathing", + LongWaterBreathing => "minecraft:long_water_breathing", + Healing => "minecraft:healing", + StrongHealing => "minecraft:strong_healing", + Harming => "minecraft:harming", + StrongHarming => "minecraft:strong_harming", + Poison => "minecraft:poison", + LongPoison => "minecraft:long_poison", + StrongPoison => "minecraft:strong_poison", + Regeneration => "minecraft:regeneration", + LongRegeneration => "minecraft:long_regeneration", + StrongRegeneration => "minecraft:strong_regeneration", + Strength => "minecraft:strength", + LongStrength => "minecraft:long_strength", + StrongStrength => "minecraft:strong_strength", + Weakness => "minecraft:weakness", + LongWeakness => "minecraft:long_weakness", + Luck => "minecraft:luck", + SlowFalling => "minecraft:slow_falling", + LongSlowFalling => "minecraft:long_slow_falling", + WindCharged => "minecraft:wind_charged", + Weaving => "minecraft:weaving", + Oozing => "minecraft:oozing", + Infested => "minecraft:infested", +} +} + +registry! { +enum RecipeSerializer { + CraftingShaped => "minecraft:crafting_shaped", + CraftingShapeless => "minecraft:crafting_shapeless", + CraftingSpecialArmordye => "minecraft:crafting_special_armordye", + CraftingSpecialBookcloning => "minecraft:crafting_special_bookcloning", + CraftingSpecialMapcloning => "minecraft:crafting_special_mapcloning", + CraftingSpecialMapextending => "minecraft:crafting_special_mapextending", + CraftingSpecialFireworkRocket => "minecraft:crafting_special_firework_rocket", + CraftingSpecialFireworkStar => "minecraft:crafting_special_firework_star", + CraftingSpecialFireworkStarFade => "minecraft:crafting_special_firework_star_fade", + CraftingSpecialTippedarrow => "minecraft:crafting_special_tippedarrow", + CraftingSpecialBannerduplicate => "minecraft:crafting_special_bannerduplicate", + CraftingSpecialShielddecoration => "minecraft:crafting_special_shielddecoration", + CraftingTransmute => "minecraft:crafting_transmute", + CraftingSpecialRepairitem => "minecraft:crafting_special_repairitem", + Smelting => "minecraft:smelting", + Blasting => "minecraft:blasting", + Smoking => "minecraft:smoking", + CampfireCooking => "minecraft:campfire_cooking", + Stonecutting => "minecraft:stonecutting", + SmithingTransform => "minecraft:smithing_transform", + SmithingTrim => "minecraft:smithing_trim", + CraftingDecoratedPot => "minecraft:crafting_decorated_pot", +} +} + +registry! { +enum RecipeKind { + Crafting => "minecraft:crafting", + Smelting => "minecraft:smelting", + Blasting => "minecraft:blasting", + Smoking => "minecraft:smoking", + CampfireCooking => "minecraft:campfire_cooking", + Stonecutting => "minecraft:stonecutting", + Smithing => "minecraft:smithing", +} +} + +registry! { +enum RuleTest { + AlwaysTrue => "minecraft:always_true", + BlockMatch => "minecraft:block_match", + BlockstateMatch => "minecraft:blockstate_match", + TagMatch => "minecraft:tag_match", + RandomBlockMatch => "minecraft:random_block_match", + RandomBlockstateMatch => "minecraft:random_blockstate_match", +} +} + +registry! { +enum SensorKind { + Dummy => "minecraft:dummy", + NearestItems => "minecraft:nearest_items", + NearestLivingEntities => "minecraft:nearest_living_entities", + NearestPlayers => "minecraft:nearest_players", + NearestBed => "minecraft:nearest_bed", + HurtBy => "minecraft:hurt_by", + VillagerHostiles => "minecraft:villager_hostiles", + VillagerBabies => "minecraft:villager_babies", + SecondaryPois => "minecraft:secondary_pois", + GolemDetected => "minecraft:golem_detected", + ArmadilloScareDetected => "minecraft:armadillo_scare_detected", + PiglinSpecificSensor => "minecraft:piglin_specific_sensor", + PiglinBruteSpecificSensor => "minecraft:piglin_brute_specific_sensor", + HoglinSpecificSensor => "minecraft:hoglin_specific_sensor", + NearestAdult => "minecraft:nearest_adult", + NearestAdultAnyType => "minecraft:nearest_adult_any_type", + AxolotlAttackables => "minecraft:axolotl_attackables", + FoodTemptations => "minecraft:food_temptations", + FrogTemptations => "minecraft:frog_temptations", + NautilusTemptations => "minecraft:nautilus_temptations", + FrogAttackables => "minecraft:frog_attackables", + IsInWater => "minecraft:is_in_water", + WardenEntitySensor => "minecraft:warden_entity_sensor", + BreezeAttackEntitySensor => "minecraft:breeze_attack_entity_sensor", +} +} + +registry! { +/// A known type of sound in Minecraft. +/// +/// If you need to support custom sounds from resource packs, you should use +/// `azalea_registry::Holder<SoundEvent, azalea_core::sound::CustomSound>` instead. +enum SoundEvent { + EntityAllayAmbientWithItem => "minecraft:entity.allay.ambient_with_item", + EntityAllayAmbientWithoutItem => "minecraft:entity.allay.ambient_without_item", + EntityAllayDeath => "minecraft:entity.allay.death", + EntityAllayHurt => "minecraft:entity.allay.hurt", + EntityAllayItemGiven => "minecraft:entity.allay.item_given", + EntityAllayItemTaken => "minecraft:entity.allay.item_taken", + EntityAllayItemThrown => "minecraft:entity.allay.item_thrown", + AmbientCave => "minecraft:ambient.cave", + AmbientBasaltDeltasAdditions => "minecraft:ambient.basalt_deltas.additions", + AmbientBasaltDeltasLoop => "minecraft:ambient.basalt_deltas.loop", + AmbientBasaltDeltasMood => "minecraft:ambient.basalt_deltas.mood", + AmbientCrimsonForestAdditions => "minecraft:ambient.crimson_forest.additions", + AmbientCrimsonForestLoop => "minecraft:ambient.crimson_forest.loop", + AmbientCrimsonForestMood => "minecraft:ambient.crimson_forest.mood", + AmbientNetherWastesAdditions => "minecraft:ambient.nether_wastes.additions", + AmbientNetherWastesLoop => "minecraft:ambient.nether_wastes.loop", + AmbientNetherWastesMood => "minecraft:ambient.nether_wastes.mood", + AmbientSoulSandValleyAdditions => "minecraft:ambient.soul_sand_valley.additions", + AmbientSoulSandValleyLoop => "minecraft:ambient.soul_sand_valley.loop", + AmbientSoulSandValleyMood => "minecraft:ambient.soul_sand_valley.mood", + AmbientWarpedForestAdditions => "minecraft:ambient.warped_forest.additions", + AmbientWarpedForestLoop => "minecraft:ambient.warped_forest.loop", + AmbientWarpedForestMood => "minecraft:ambient.warped_forest.mood", + AmbientUnderwaterEnter => "minecraft:ambient.underwater.enter", + AmbientUnderwaterExit => "minecraft:ambient.underwater.exit", + AmbientUnderwaterLoop => "minecraft:ambient.underwater.loop", + AmbientUnderwaterLoopAdditions => "minecraft:ambient.underwater.loop.additions", + AmbientUnderwaterLoopAdditionsRare => "minecraft:ambient.underwater.loop.additions.rare", + AmbientUnderwaterLoopAdditionsUltraRare => "minecraft:ambient.underwater.loop.additions.ultra_rare", + BlockAmethystBlockBreak => "minecraft:block.amethyst_block.break", + BlockAmethystBlockChime => "minecraft:block.amethyst_block.chime", + BlockAmethystBlockFall => "minecraft:block.amethyst_block.fall", + BlockAmethystBlockHit => "minecraft:block.amethyst_block.hit", + BlockAmethystBlockPlace => "minecraft:block.amethyst_block.place", + BlockAmethystBlockResonate => "minecraft:block.amethyst_block.resonate", + BlockAmethystBlockStep => "minecraft:block.amethyst_block.step", + BlockAmethystClusterBreak => "minecraft:block.amethyst_cluster.break", + BlockAmethystClusterFall => "minecraft:block.amethyst_cluster.fall", + BlockAmethystClusterHit => "minecraft:block.amethyst_cluster.hit", + BlockAmethystClusterPlace => "minecraft:block.amethyst_cluster.place", + BlockAmethystClusterStep => "minecraft:block.amethyst_cluster.step", + BlockAncientDebrisBreak => "minecraft:block.ancient_debris.break", + BlockAncientDebrisStep => "minecraft:block.ancient_debris.step", + BlockAncientDebrisPlace => "minecraft:block.ancient_debris.place", + BlockAncientDebrisHit => "minecraft:block.ancient_debris.hit", + BlockAncientDebrisFall => "minecraft:block.ancient_debris.fall", + BlockAnvilBreak => "minecraft:block.anvil.break", + BlockAnvilDestroy => "minecraft:block.anvil.destroy", + BlockAnvilFall => "minecraft:block.anvil.fall", + BlockAnvilHit => "minecraft:block.anvil.hit", + BlockAnvilLand => "minecraft:block.anvil.land", + BlockAnvilPlace => "minecraft:block.anvil.place", + BlockAnvilStep => "minecraft:block.anvil.step", + BlockAnvilUse => "minecraft:block.anvil.use", + EntityArmadilloEat => "minecraft:entity.armadillo.eat", + EntityArmadilloHurt => "minecraft:entity.armadillo.hurt", + EntityArmadilloHurtReduced => "minecraft:entity.armadillo.hurt_reduced", + EntityArmadilloAmbient => "minecraft:entity.armadillo.ambient", + EntityArmadilloStep => "minecraft:entity.armadillo.step", + EntityArmadilloDeath => "minecraft:entity.armadillo.death", + EntityArmadilloRoll => "minecraft:entity.armadillo.roll", + EntityArmadilloLand => "minecraft:entity.armadillo.land", + EntityArmadilloScuteDrop => "minecraft:entity.armadillo.scute_drop", + EntityArmadilloUnrollFinish => "minecraft:entity.armadillo.unroll_finish", + EntityArmadilloPeek => "minecraft:entity.armadillo.peek", + EntityArmadilloUnrollStart => "minecraft:entity.armadillo.unroll_start", + EntityArmadilloBrush => "minecraft:entity.armadillo.brush", + ItemArmorEquipChain => "minecraft:item.armor.equip_chain", + ItemArmorEquipDiamond => "minecraft:item.armor.equip_diamond", + ItemArmorEquipElytra => "minecraft:item.armor.equip_elytra", + ItemArmorEquipGeneric => "minecraft:item.armor.equip_generic", + ItemArmorEquipGold => "minecraft:item.armor.equip_gold", + ItemArmorEquipIron => "minecraft:item.armor.equip_iron", + ItemArmorEquipLeather => "minecraft:item.armor.equip_leather", + ItemArmorEquipCopper => "minecraft:item.armor.equip_copper", + ItemArmorEquipNetherite => "minecraft:item.armor.equip_netherite", + 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", + EntityArmorStandPlace => "minecraft:entity.armor_stand.place", + EntityArrowHit => "minecraft:entity.arrow.hit", + EntityArrowHitPlayer => "minecraft:entity.arrow.hit_player", + EntityArrowShoot => "minecraft:entity.arrow.shoot", + ItemAxeStrip => "minecraft:item.axe.strip", + ItemAxeScrape => "minecraft:item.axe.scrape", + ItemAxeWaxOff => "minecraft:item.axe.wax_off", + EntityAxolotlAttack => "minecraft:entity.axolotl.attack", + EntityAxolotlDeath => "minecraft:entity.axolotl.death", + EntityAxolotlHurt => "minecraft:entity.axolotl.hurt", + EntityAxolotlIdleAir => "minecraft:entity.axolotl.idle_air", + EntityAxolotlIdleWater => "minecraft:entity.axolotl.idle_water", + EntityAxolotlSplash => "minecraft:entity.axolotl.splash", + EntityAxolotlSwim => "minecraft:entity.axolotl.swim", + BlockAzaleaBreak => "minecraft:block.azalea.break", + BlockAzaleaFall => "minecraft:block.azalea.fall", + BlockAzaleaHit => "minecraft:block.azalea.hit", + BlockAzaleaPlace => "minecraft:block.azalea.place", + BlockAzaleaStep => "minecraft:block.azalea.step", + BlockAzaleaLeavesBreak => "minecraft:block.azalea_leaves.break", + BlockAzaleaLeavesFall => "minecraft:block.azalea_leaves.fall", + BlockAzaleaLeavesHit => "minecraft:block.azalea_leaves.hit", + 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", + BlockBambooFall => "minecraft:block.bamboo.fall", + BlockBambooHit => "minecraft:block.bamboo.hit", + BlockBambooPlace => "minecraft:block.bamboo.place", + BlockBambooStep => "minecraft:block.bamboo.step", + BlockBambooSaplingBreak => "minecraft:block.bamboo_sapling.break", + BlockBambooSaplingHit => "minecraft:block.bamboo_sapling.hit", + BlockBambooSaplingPlace => "minecraft:block.bamboo_sapling.place", + BlockBambooWoodBreak => "minecraft:block.bamboo_wood.break", + BlockBambooWoodFall => "minecraft:block.bamboo_wood.fall", + BlockBambooWoodHit => "minecraft:block.bamboo_wood.hit", + BlockBambooWoodPlace => "minecraft:block.bamboo_wood.place", + BlockBambooWoodStep => "minecraft:block.bamboo_wood.step", + BlockBambooWoodDoorClose => "minecraft:block.bamboo_wood_door.close", + BlockBambooWoodDoorOpen => "minecraft:block.bamboo_wood_door.open", + BlockBambooWoodTrapdoorClose => "minecraft:block.bamboo_wood_trapdoor.close", + BlockBambooWoodTrapdoorOpen => "minecraft:block.bamboo_wood_trapdoor.open", + BlockBambooWoodButtonClickOff => "minecraft:block.bamboo_wood_button.click_off", + BlockBambooWoodButtonClickOn => "minecraft:block.bamboo_wood_button.click_on", + BlockBambooWoodPressurePlateClickOff => "minecraft:block.bamboo_wood_pressure_plate.click_off", + BlockBambooWoodPressurePlateClickOn => "minecraft:block.bamboo_wood_pressure_plate.click_on", + BlockBambooWoodFenceGateClose => "minecraft:block.bamboo_wood_fence_gate.close", + BlockBambooWoodFenceGateOpen => "minecraft:block.bamboo_wood_fence_gate.open", + BlockBarrelClose => "minecraft:block.barrel.close", + BlockBarrelOpen => "minecraft:block.barrel.open", + BlockBasaltBreak => "minecraft:block.basalt.break", + BlockBasaltStep => "minecraft:block.basalt.step", + BlockBasaltPlace => "minecraft:block.basalt.place", + BlockBasaltHit => "minecraft:block.basalt.hit", + BlockBasaltFall => "minecraft:block.basalt.fall", + EntityBatAmbient => "minecraft:entity.bat.ambient", + EntityBatDeath => "minecraft:entity.bat.death", + EntityBatHurt => "minecraft:entity.bat.hurt", + EntityBatLoop => "minecraft:entity.bat.loop", + EntityBatTakeoff => "minecraft:entity.bat.takeoff", + BlockBeaconActivate => "minecraft:block.beacon.activate", + BlockBeaconAmbient => "minecraft:block.beacon.ambient", + BlockBeaconDeactivate => "minecraft:block.beacon.deactivate", + BlockBeaconPowerSelect => "minecraft:block.beacon.power_select", + EntityBeeDeath => "minecraft:entity.bee.death", + EntityBeeHurt => "minecraft:entity.bee.hurt", + EntityBeeLoopAggressive => "minecraft:entity.bee.loop_aggressive", + EntityBeeLoop => "minecraft:entity.bee.loop", + EntityBeeSting => "minecraft:entity.bee.sting", + EntityBeePollinate => "minecraft:entity.bee.pollinate", + BlockBeehiveDrip => "minecraft:block.beehive.drip", + BlockBeehiveEnter => "minecraft:block.beehive.enter", + BlockBeehiveExit => "minecraft:block.beehive.exit", + BlockBeehiveShear => "minecraft:block.beehive.shear", + BlockBeehiveWork => "minecraft:block.beehive.work", + BlockBellUse => "minecraft:block.bell.use", + BlockBellResonate => "minecraft:block.bell.resonate", + BlockBigDripleafBreak => "minecraft:block.big_dripleaf.break", + BlockBigDripleafFall => "minecraft:block.big_dripleaf.fall", + BlockBigDripleafHit => "minecraft:block.big_dripleaf.hit", + BlockBigDripleafPlace => "minecraft:block.big_dripleaf.place", + BlockBigDripleafStep => "minecraft:block.big_dripleaf.step", + EntityBlazeAmbient => "minecraft:entity.blaze.ambient", + EntityBlazeBurn => "minecraft:entity.blaze.burn", + EntityBlazeDeath => "minecraft:entity.blaze.death", + EntityBlazeHurt => "minecraft:entity.blaze.hurt", + EntityBlazeShoot => "minecraft:entity.blaze.shoot", + EntityBoatPaddleLand => "minecraft:entity.boat.paddle_land", + EntityBoatPaddleWater => "minecraft:entity.boat.paddle_water", + EntityBoggedAmbient => "minecraft:entity.bogged.ambient", + EntityBoggedDeath => "minecraft:entity.bogged.death", + EntityBoggedHurt => "minecraft:entity.bogged.hurt", + EntityBoggedShear => "minecraft:entity.bogged.shear", + EntityBoggedStep => "minecraft:entity.bogged.step", + BlockBoneBlockBreak => "minecraft:block.bone_block.break", + BlockBoneBlockFall => "minecraft:block.bone_block.fall", + BlockBoneBlockHit => "minecraft:block.bone_block.hit", + BlockBoneBlockPlace => "minecraft:block.bone_block.place", + BlockBoneBlockStep => "minecraft:block.bone_block.step", + ItemBoneMealUse => "minecraft:item.bone_meal.use", + ItemBookPageTurn => "minecraft:item.book.page_turn", + ItemBookPut => "minecraft:item.book.put", + BlockBlastfurnaceFireCrackle => "minecraft:block.blastfurnace.fire_crackle", + ItemBottleEmpty => "minecraft:item.bottle.empty", + ItemBottleFill => "minecraft:item.bottle.fill", + ItemBottleFillDragonbreath => "minecraft:item.bottle.fill_dragonbreath", + EntityBreezeCharge => "minecraft:entity.breeze.charge", + EntityBreezeDeflect => "minecraft:entity.breeze.deflect", + EntityBreezeInhale => "minecraft:entity.breeze.inhale", + EntityBreezeIdleGround => "minecraft:entity.breeze.idle_ground", + EntityBreezeIdleAir => "minecraft:entity.breeze.idle_air", + EntityBreezeShoot => "minecraft:entity.breeze.shoot", + EntityBreezeJump => "minecraft:entity.breeze.jump", + EntityBreezeLand => "minecraft:entity.breeze.land", + EntityBreezeSlide => "minecraft:entity.breeze.slide", + EntityBreezeDeath => "minecraft:entity.breeze.death", + EntityBreezeHurt => "minecraft:entity.breeze.hurt", + EntityBreezeWhirl => "minecraft:entity.breeze.whirl", + EntityBreezeWindBurst => "minecraft:entity.breeze.wind_burst", + BlockBrewingStandBrew => "minecraft:block.brewing_stand.brew", + ItemBrushBrushingGeneric => "minecraft:item.brush.brushing.generic", + ItemBrushBrushingSand => "minecraft:item.brush.brushing.sand", + ItemBrushBrushingGravel => "minecraft:item.brush.brushing.gravel", + ItemBrushBrushingSandComplete => "minecraft:item.brush.brushing.sand.complete", + ItemBrushBrushingGravelComplete => "minecraft:item.brush.brushing.gravel.complete", + BlockBubbleColumnBubblePop => "minecraft:block.bubble_column.bubble_pop", + BlockBubbleColumnUpwardsAmbient => "minecraft:block.bubble_column.upwards_ambient", + BlockBubbleColumnUpwardsInside => "minecraft:block.bubble_column.upwards_inside", + BlockBubbleColumnWhirlpoolAmbient => "minecraft:block.bubble_column.whirlpool_ambient", + BlockBubbleColumnWhirlpoolInside => "minecraft:block.bubble_column.whirlpool_inside", + UiHudBubblePop => "minecraft:ui.hud.bubble_pop", + ItemBucketEmpty => "minecraft:item.bucket.empty", + ItemBucketEmptyAxolotl => "minecraft:item.bucket.empty_axolotl", + ItemBucketEmptyFish => "minecraft:item.bucket.empty_fish", + ItemBucketEmptyLava => "minecraft:item.bucket.empty_lava", + ItemBucketEmptyPowderSnow => "minecraft:item.bucket.empty_powder_snow", + ItemBucketEmptyTadpole => "minecraft:item.bucket.empty_tadpole", + ItemBucketFill => "minecraft:item.bucket.fill", + ItemBucketFillAxolotl => "minecraft:item.bucket.fill_axolotl", + ItemBucketFillFish => "minecraft:item.bucket.fill_fish", + ItemBucketFillLava => "minecraft:item.bucket.fill_lava", + ItemBucketFillPowderSnow => "minecraft:item.bucket.fill_powder_snow", + ItemBucketFillTadpole => "minecraft:item.bucket.fill_tadpole", + ItemBundleDropContents => "minecraft:item.bundle.drop_contents", + ItemBundleInsert => "minecraft:item.bundle.insert", + ItemBundleInsertFail => "minecraft:item.bundle.insert_fail", + ItemBundleRemoveOne => "minecraft:item.bundle.remove_one", + BlockCactusFlowerBreak => "minecraft:block.cactus_flower.break", + BlockCactusFlowerPlace => "minecraft:block.cactus_flower.place", + BlockCakeAddCandle => "minecraft:block.cake.add_candle", + BlockCalciteBreak => "minecraft:block.calcite.break", + BlockCalciteStep => "minecraft:block.calcite.step", + 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", + EntityCamelDeath => "minecraft:entity.camel.death", + EntityCamelEat => "minecraft:entity.camel.eat", + EntityCamelHurt => "minecraft:entity.camel.hurt", + EntityCamelSaddle => "minecraft:entity.camel.saddle", + EntityCamelSit => "minecraft:entity.camel.sit", + EntityCamelStand => "minecraft:entity.camel.stand", + EntityCamelStep => "minecraft:entity.camel.step", + EntityCamelStepSand => "minecraft:entity.camel.step_sand", + BlockCampfireCrackle => "minecraft:block.campfire.crackle", + BlockCandleAmbient => "minecraft:block.candle.ambient", + BlockCandleBreak => "minecraft:block.candle.break", + BlockCandleExtinguish => "minecraft:block.candle.extinguish", + BlockCandleFall => "minecraft:block.candle.fall", + BlockCandleHit => "minecraft:block.candle.hit", + BlockCandlePlace => "minecraft:block.candle.place", + BlockCandleStep => "minecraft:block.candle.step", + EntityCatAmbient => "minecraft:entity.cat.ambient", + EntityCatStrayAmbient => "minecraft:entity.cat.stray_ambient", + EntityCatDeath => "minecraft:entity.cat.death", + EntityCatEat => "minecraft:entity.cat.eat", + EntityCatHiss => "minecraft:entity.cat.hiss", + EntityCatBegForFood => "minecraft:entity.cat.beg_for_food", + EntityCatHurt => "minecraft:entity.cat.hurt", + EntityCatPurr => "minecraft:entity.cat.purr", + EntityCatPurreow => "minecraft:entity.cat.purreow", + BlockCaveVinesBreak => "minecraft:block.cave_vines.break", + BlockCaveVinesFall => "minecraft:block.cave_vines.fall", + BlockCaveVinesHit => "minecraft:block.cave_vines.hit", + BlockCaveVinesPlace => "minecraft:block.cave_vines.place", + BlockCaveVinesStep => "minecraft:block.cave_vines.step", + BlockCaveVinesPickBerries => "minecraft:block.cave_vines.pick_berries", + BlockChainBreak => "minecraft:block.chain.break", + BlockChainFall => "minecraft:block.chain.fall", + BlockChainHit => "minecraft:block.chain.hit", + BlockChainPlace => "minecraft:block.chain.place", + BlockChainStep => "minecraft:block.chain.step", + BlockCherryWoodBreak => "minecraft:block.cherry_wood.break", + BlockCherryWoodFall => "minecraft:block.cherry_wood.fall", + BlockCherryWoodHit => "minecraft:block.cherry_wood.hit", + BlockCherryWoodPlace => "minecraft:block.cherry_wood.place", + BlockCherryWoodStep => "minecraft:block.cherry_wood.step", + BlockCherrySaplingBreak => "minecraft:block.cherry_sapling.break", + BlockCherrySaplingFall => "minecraft:block.cherry_sapling.fall", + BlockCherrySaplingHit => "minecraft:block.cherry_sapling.hit", + BlockCherrySaplingPlace => "minecraft:block.cherry_sapling.place", + BlockCherrySaplingStep => "minecraft:block.cherry_sapling.step", + BlockCherryLeavesBreak => "minecraft:block.cherry_leaves.break", + BlockCherryLeavesFall => "minecraft:block.cherry_leaves.fall", + BlockCherryLeavesHit => "minecraft:block.cherry_leaves.hit", + BlockCherryLeavesPlace => "minecraft:block.cherry_leaves.place", + BlockCherryLeavesStep => "minecraft:block.cherry_leaves.step", + BlockCherryWoodHangingSignStep => "minecraft:block.cherry_wood_hanging_sign.step", + BlockCherryWoodHangingSignBreak => "minecraft:block.cherry_wood_hanging_sign.break", + BlockCherryWoodHangingSignFall => "minecraft:block.cherry_wood_hanging_sign.fall", + BlockCherryWoodHangingSignHit => "minecraft:block.cherry_wood_hanging_sign.hit", + BlockCherryWoodHangingSignPlace => "minecraft:block.cherry_wood_hanging_sign.place", + BlockCherryWoodDoorClose => "minecraft:block.cherry_wood_door.close", + BlockCherryWoodDoorOpen => "minecraft:block.cherry_wood_door.open", + BlockCherryWoodTrapdoorClose => "minecraft:block.cherry_wood_trapdoor.close", + BlockCherryWoodTrapdoorOpen => "minecraft:block.cherry_wood_trapdoor.open", + BlockCherryWoodButtonClickOff => "minecraft:block.cherry_wood_button.click_off", + BlockCherryWoodButtonClickOn => "minecraft:block.cherry_wood_button.click_on", + BlockCherryWoodPressurePlateClickOff => "minecraft:block.cherry_wood_pressure_plate.click_off", + BlockCherryWoodPressurePlateClickOn => "minecraft:block.cherry_wood_pressure_plate.click_on", + BlockCherryWoodFenceGateClose => "minecraft:block.cherry_wood_fence_gate.close", + BlockCherryWoodFenceGateOpen => "minecraft:block.cherry_wood_fence_gate.open", + BlockChestClose => "minecraft:block.chest.close", + BlockChestLocked => "minecraft:block.chest.locked", + BlockChestOpen => "minecraft:block.chest.open", + EntityChickenAmbient => "minecraft:entity.chicken.ambient", + EntityChickenDeath => "minecraft:entity.chicken.death", + EntityChickenEgg => "minecraft:entity.chicken.egg", + EntityChickenHurt => "minecraft:entity.chicken.hurt", + EntityChickenStep => "minecraft:entity.chicken.step", + BlockChiseledBookshelfBreak => "minecraft:block.chiseled_bookshelf.break", + BlockChiseledBookshelfFall => "minecraft:block.chiseled_bookshelf.fall", + BlockChiseledBookshelfHit => "minecraft:block.chiseled_bookshelf.hit", + BlockChiseledBookshelfInsert => "minecraft:block.chiseled_bookshelf.insert", + BlockChiseledBookshelfInsertEnchanted => "minecraft:block.chiseled_bookshelf.insert.enchanted", + BlockChiseledBookshelfStep => "minecraft:block.chiseled_bookshelf.step", + BlockChiseledBookshelfPickup => "minecraft:block.chiseled_bookshelf.pickup", + BlockChiseledBookshelfPickupEnchanted => "minecraft:block.chiseled_bookshelf.pickup.enchanted", + BlockChiseledBookshelfPlace => "minecraft:block.chiseled_bookshelf.place", + BlockChorusFlowerDeath => "minecraft:block.chorus_flower.death", + BlockChorusFlowerGrow => "minecraft:block.chorus_flower.grow", + ItemChorusFruitTeleport => "minecraft:item.chorus_fruit.teleport", + BlockCobwebBreak => "minecraft:block.cobweb.break", + BlockCobwebStep => "minecraft:block.cobweb.step", + BlockCobwebPlace => "minecraft:block.cobweb.place", + BlockCobwebHit => "minecraft:block.cobweb.hit", + BlockCobwebFall => "minecraft:block.cobweb.fall", + EntityCodAmbient => "minecraft:entity.cod.ambient", + EntityCodDeath => "minecraft:entity.cod.death", + EntityCodFlop => "minecraft:entity.cod.flop", + EntityCodHurt => "minecraft:entity.cod.hurt", + BlockComparatorClick => "minecraft:block.comparator.click", + BlockComposterEmpty => "minecraft:block.composter.empty", + BlockComposterFill => "minecraft:block.composter.fill", + BlockComposterFillSuccess => "minecraft:block.composter.fill_success", + BlockComposterReady => "minecraft:block.composter.ready", + BlockConduitActivate => "minecraft:block.conduit.activate", + BlockConduitAmbient => "minecraft:block.conduit.ambient", + BlockConduitAmbientShort => "minecraft:block.conduit.ambient.short", + BlockConduitAttackTarget => "minecraft:block.conduit.attack.target", + BlockConduitDeactivate => "minecraft:block.conduit.deactivate", + BlockCopperBulbBreak => "minecraft:block.copper_bulb.break", + BlockCopperBulbStep => "minecraft:block.copper_bulb.step", + BlockCopperBulbPlace => "minecraft:block.copper_bulb.place", + BlockCopperBulbHit => "minecraft:block.copper_bulb.hit", + BlockCopperBulbFall => "minecraft:block.copper_bulb.fall", + BlockCopperBulbTurnOn => "minecraft:block.copper_bulb.turn_on", + BlockCopperBulbTurnOff => "minecraft:block.copper_bulb.turn_off", + BlockCopperBreak => "minecraft:block.copper.break", + BlockCopperStep => "minecraft:block.copper.step", + BlockCopperPlace => "minecraft:block.copper.place", + BlockCopperHit => "minecraft:block.copper.hit", + BlockCopperFall => "minecraft:block.copper.fall", + BlockCopperChestClose => "minecraft:block.copper_chest.close", + BlockCopperChestOpen => "minecraft:block.copper_chest.open", + BlockCopperChestWeatheredClose => "minecraft:block.copper_chest_weathered.close", + BlockCopperChestWeatheredOpen => "minecraft:block.copper_chest_weathered.open", + BlockCopperChestOxidizedClose => "minecraft:block.copper_chest_oxidized.close", + BlockCopperChestOxidizedOpen => "minecraft:block.copper_chest_oxidized.open", + BlockCopperDoorClose => "minecraft:block.copper_door.close", + BlockCopperDoorOpen => "minecraft:block.copper_door.open", + EntityCopperGolemStep => "minecraft:entity.copper_golem.step", + EntityCopperGolemHurt => "minecraft:entity.copper_golem.hurt", + EntityCopperGolemDeath => "minecraft:entity.copper_golem.death", + EntityCopperGolemWeatheredStep => "minecraft:entity.copper_golem_weathered.step", + EntityCopperGolemWeatheredHurt => "minecraft:entity.copper_golem_weathered.hurt", + EntityCopperGolemWeatheredDeath => "minecraft:entity.copper_golem_weathered.death", + EntityCopperGolemOxidizedStep => "minecraft:entity.copper_golem_oxidized.step", + EntityCopperGolemOxidizedHurt => "minecraft:entity.copper_golem_oxidized.hurt", + EntityCopperGolemOxidizedDeath => "minecraft:entity.copper_golem_oxidized.death", + EntityCopperGolemSpin => "minecraft:entity.copper_golem.spin", + EntityCopperGolemWeatheredSpin => "minecraft:entity.copper_golem_weathered.spin", + EntityCopperGolemOxidizedSpin => "minecraft:entity.copper_golem_oxidized.spin", + EntityCopperGolemNoItemGet => "minecraft:entity.copper_golem.no_item_get", + EntityCopperGolemNoItemNoGet => "minecraft:entity.copper_golem.no_item_no_get", + EntityCopperGolemItemDrop => "minecraft:entity.copper_golem.item_drop", + EntityCopperGolemItemNoDrop => "minecraft:entity.copper_golem.item_no_drop", + EntityCopperGolemBecomeStatue => "minecraft:entity.copper_golem_become_statue", + BlockCopperGolemStatueBreak => "minecraft:block.copper_golem_statue.break", + BlockCopperGolemStatuePlace => "minecraft:block.copper_golem_statue.place", + BlockCopperGolemStatueHit => "minecraft:block.copper_golem_statue.hit", + BlockCopperGolemStatueStep => "minecraft:block.copper_golem_statue.step", + BlockCopperGolemStatueFall => "minecraft:block.copper_golem_statue.fall", + EntityCopperGolemSpawn => "minecraft:entity.copper_golem.spawn", + EntityCopperGolemShear => "minecraft:entity.copper_golem.shear", + BlockCopperGrateBreak => "minecraft:block.copper_grate.break", + BlockCopperGrateStep => "minecraft:block.copper_grate.step", + BlockCopperGratePlace => "minecraft:block.copper_grate.place", + BlockCopperGrateHit => "minecraft:block.copper_grate.hit", + BlockCopperGrateFall => "minecraft:block.copper_grate.fall", + BlockCopperTrapdoorClose => "minecraft:block.copper_trapdoor.close", + BlockCopperTrapdoorOpen => "minecraft:block.copper_trapdoor.open", + BlockCoralBlockBreak => "minecraft:block.coral_block.break", + BlockCoralBlockFall => "minecraft:block.coral_block.fall", + BlockCoralBlockHit => "minecraft:block.coral_block.hit", + BlockCoralBlockPlace => "minecraft:block.coral_block.place", + BlockCoralBlockStep => "minecraft:block.coral_block.step", + EntityCowAmbient => "minecraft:entity.cow.ambient", + EntityCowDeath => "minecraft:entity.cow.death", + EntityCowHurt => "minecraft:entity.cow.hurt", + EntityCowMilk => "minecraft:entity.cow.milk", + EntityCowStep => "minecraft:entity.cow.step", + BlockCrafterCraft => "minecraft:block.crafter.craft", + BlockCrafterFail => "minecraft:block.crafter.fail", + EntityCreakingAmbient => "minecraft:entity.creaking.ambient", + EntityCreakingActivate => "minecraft:entity.creaking.activate", + EntityCreakingDeactivate => "minecraft:entity.creaking.deactivate", + EntityCreakingAttack => "minecraft:entity.creaking.attack", + EntityCreakingDeath => "minecraft:entity.creaking.death", + EntityCreakingStep => "minecraft:entity.creaking.step", + EntityCreakingFreeze => "minecraft:entity.creaking.freeze", + EntityCreakingUnfreeze => "minecraft:entity.creaking.unfreeze", + EntityCreakingSpawn => "minecraft:entity.creaking.spawn", + EntityCreakingSway => "minecraft:entity.creaking.sway", + EntityCreakingTwitch => "minecraft:entity.creaking.twitch", + BlockCreakingHeartBreak => "minecraft:block.creaking_heart.break", + BlockCreakingHeartFall => "minecraft:block.creaking_heart.fall", + BlockCreakingHeartHit => "minecraft:block.creaking_heart.hit", + BlockCreakingHeartHurt => "minecraft:block.creaking_heart.hurt", + BlockCreakingHeartPlace => "minecraft:block.creaking_heart.place", + BlockCreakingHeartStep => "minecraft:block.creaking_heart.step", + BlockCreakingHeartIdle => "minecraft:block.creaking_heart.idle", + BlockCreakingHeartSpawn => "minecraft:block.creaking_heart.spawn", + EntityCreeperDeath => "minecraft:entity.creeper.death", + EntityCreeperHurt => "minecraft:entity.creeper.hurt", + EntityCreeperPrimed => "minecraft:entity.creeper.primed", + BlockCropBreak => "minecraft:block.crop.break", + ItemCropPlant => "minecraft:item.crop.plant", + ItemCrossbowHit => "minecraft:item.crossbow.hit", + ItemCrossbowLoadingEnd => "minecraft:item.crossbow.loading_end", + ItemCrossbowLoadingMiddle => "minecraft:item.crossbow.loading_middle", + ItemCrossbowLoadingStart => "minecraft:item.crossbow.loading_start", + ItemCrossbowQuickCharge1 => "minecraft:item.crossbow.quick_charge_1", + ItemCrossbowQuickCharge2 => "minecraft:item.crossbow.quick_charge_2", + ItemCrossbowQuickCharge3 => "minecraft:item.crossbow.quick_charge_3", + ItemCrossbowShoot => "minecraft:item.crossbow.shoot", + BlockDeadbushIdle => "minecraft:block.deadbush.idle", + BlockDecoratedPotBreak => "minecraft:block.decorated_pot.break", + BlockDecoratedPotFall => "minecraft:block.decorated_pot.fall", + BlockDecoratedPotHit => "minecraft:block.decorated_pot.hit", + BlockDecoratedPotInsert => "minecraft:block.decorated_pot.insert", + BlockDecoratedPotInsertFail => "minecraft:block.decorated_pot.insert_fail", + BlockDecoratedPotStep => "minecraft:block.decorated_pot.step", + BlockDecoratedPotPlace => "minecraft:block.decorated_pot.place", + BlockDecoratedPotShatter => "minecraft:block.decorated_pot.shatter", + BlockDeepslateBricksBreak => "minecraft:block.deepslate_bricks.break", + BlockDeepslateBricksFall => "minecraft:block.deepslate_bricks.fall", + BlockDeepslateBricksHit => "minecraft:block.deepslate_bricks.hit", + BlockDeepslateBricksPlace => "minecraft:block.deepslate_bricks.place", + BlockDeepslateBricksStep => "minecraft:block.deepslate_bricks.step", + BlockDeepslateBreak => "minecraft:block.deepslate.break", + BlockDeepslateFall => "minecraft:block.deepslate.fall", + BlockDeepslateHit => "minecraft:block.deepslate.hit", + BlockDeepslatePlace => "minecraft:block.deepslate.place", + BlockDeepslateStep => "minecraft:block.deepslate.step", + BlockDeepslateTilesBreak => "minecraft:block.deepslate_tiles.break", + BlockDeepslateTilesFall => "minecraft:block.deepslate_tiles.fall", + BlockDeepslateTilesHit => "minecraft:block.deepslate_tiles.hit", + BlockDeepslateTilesPlace => "minecraft:block.deepslate_tiles.place", + BlockDeepslateTilesStep => "minecraft:block.deepslate_tiles.step", + BlockDispenserDispense => "minecraft:block.dispenser.dispense", + BlockDispenserFail => "minecraft:block.dispenser.fail", + BlockDispenserLaunch => "minecraft:block.dispenser.launch", + EntityDolphinAmbient => "minecraft:entity.dolphin.ambient", + EntityDolphinAmbientWater => "minecraft:entity.dolphin.ambient_water", + EntityDolphinAttack => "minecraft:entity.dolphin.attack", + EntityDolphinDeath => "minecraft:entity.dolphin.death", + EntityDolphinEat => "minecraft:entity.dolphin.eat", + EntityDolphinHurt => "minecraft:entity.dolphin.hurt", + EntityDolphinJump => "minecraft:entity.dolphin.jump", + EntityDolphinPlay => "minecraft:entity.dolphin.play", + EntityDolphinSplash => "minecraft:entity.dolphin.splash", + EntityDolphinSwim => "minecraft:entity.dolphin.swim", + EntityDonkeyAmbient => "minecraft:entity.donkey.ambient", + EntityDonkeyAngry => "minecraft:entity.donkey.angry", + EntityDonkeyChest => "minecraft:entity.donkey.chest", + EntityDonkeyDeath => "minecraft:entity.donkey.death", + EntityDonkeyEat => "minecraft:entity.donkey.eat", + EntityDonkeyHurt => "minecraft:entity.donkey.hurt", + EntityDonkeyJump => "minecraft:entity.donkey.jump", + BlockDriedGhastBreak => "minecraft:block.dried_ghast.break", + BlockDriedGhastStep => "minecraft:block.dried_ghast.step", + BlockDriedGhastFall => "minecraft:block.dried_ghast.fall", + BlockDriedGhastAmbient => "minecraft:block.dried_ghast.ambient", + BlockDriedGhastAmbientWater => "minecraft:block.dried_ghast.ambient_water", + BlockDriedGhastPlace => "minecraft:block.dried_ghast.place", + BlockDriedGhastPlaceInWater => "minecraft:block.dried_ghast.place_in_water", + BlockDriedGhastTransition => "minecraft:block.dried_ghast.transition", + BlockDripstoneBlockBreak => "minecraft:block.dripstone_block.break", + BlockDripstoneBlockStep => "minecraft:block.dripstone_block.step", + BlockDripstoneBlockPlace => "minecraft:block.dripstone_block.place", + BlockDripstoneBlockHit => "minecraft:block.dripstone_block.hit", + BlockDripstoneBlockFall => "minecraft:block.dripstone_block.fall", + BlockDryGrassAmbient => "minecraft:block.dry_grass.ambient", + BlockPointedDripstoneBreak => "minecraft:block.pointed_dripstone.break", + BlockPointedDripstoneStep => "minecraft:block.pointed_dripstone.step", + BlockPointedDripstonePlace => "minecraft:block.pointed_dripstone.place", + BlockPointedDripstoneHit => "minecraft:block.pointed_dripstone.hit", + BlockPointedDripstoneFall => "minecraft:block.pointed_dripstone.fall", + BlockPointedDripstoneLand => "minecraft:block.pointed_dripstone.land", + BlockPointedDripstoneDripLava => "minecraft:block.pointed_dripstone.drip_lava", + BlockPointedDripstoneDripWater => "minecraft:block.pointed_dripstone.drip_water", + BlockPointedDripstoneDripLavaIntoCauldron => "minecraft:block.pointed_dripstone.drip_lava_into_cauldron", + BlockPointedDripstoneDripWaterIntoCauldron => "minecraft:block.pointed_dripstone.drip_water_into_cauldron", + BlockBigDripleafTiltDown => "minecraft:block.big_dripleaf.tilt_down", + BlockBigDripleafTiltUp => "minecraft:block.big_dripleaf.tilt_up", + EntityDrownedAmbient => "minecraft:entity.drowned.ambient", + EntityDrownedAmbientWater => "minecraft:entity.drowned.ambient_water", + EntityDrownedDeath => "minecraft:entity.drowned.death", + EntityDrownedDeathWater => "minecraft:entity.drowned.death_water", + EntityDrownedHurt => "minecraft:entity.drowned.hurt", + EntityDrownedHurtWater => "minecraft:entity.drowned.hurt_water", + EntityDrownedShoot => "minecraft:entity.drowned.shoot", + EntityDrownedStep => "minecraft:entity.drowned.step", + EntityDrownedSwim => "minecraft:entity.drowned.swim", + ItemDyeUse => "minecraft:item.dye.use", + EntityEggThrow => "minecraft:entity.egg.throw", + EntityElderGuardianAmbient => "minecraft:entity.elder_guardian.ambient", + EntityElderGuardianAmbientLand => "minecraft:entity.elder_guardian.ambient_land", + EntityElderGuardianCurse => "minecraft:entity.elder_guardian.curse", + EntityElderGuardianDeath => "minecraft:entity.elder_guardian.death", + EntityElderGuardianDeathLand => "minecraft:entity.elder_guardian.death_land", + EntityElderGuardianFlop => "minecraft:entity.elder_guardian.flop", + EntityElderGuardianHurt => "minecraft:entity.elder_guardian.hurt", + EntityElderGuardianHurtLand => "minecraft:entity.elder_guardian.hurt_land", + ItemElytraFlying => "minecraft:item.elytra.flying", + BlockEnchantmentTableUse => "minecraft:block.enchantment_table.use", + BlockEnderChestClose => "minecraft:block.ender_chest.close", + BlockEnderChestOpen => "minecraft:block.ender_chest.open", + EntityEnderDragonAmbient => "minecraft:entity.ender_dragon.ambient", + EntityEnderDragonDeath => "minecraft:entity.ender_dragon.death", + EntityDragonFireballExplode => "minecraft:entity.dragon_fireball.explode", + EntityEnderDragonFlap => "minecraft:entity.ender_dragon.flap", + EntityEnderDragonGrowl => "minecraft:entity.ender_dragon.growl", + EntityEnderDragonHurt => "minecraft:entity.ender_dragon.hurt", + EntityEnderDragonShoot => "minecraft:entity.ender_dragon.shoot", + EntityEnderEyeDeath => "minecraft:entity.ender_eye.death", + EntityEnderEyeLaunch => "minecraft:entity.ender_eye.launch", + EntityEndermanAmbient => "minecraft:entity.enderman.ambient", + EntityEndermanDeath => "minecraft:entity.enderman.death", + EntityEndermanHurt => "minecraft:entity.enderman.hurt", + EntityEndermanScream => "minecraft:entity.enderman.scream", + EntityEndermanStare => "minecraft:entity.enderman.stare", + EntityEndermanTeleport => "minecraft:entity.enderman.teleport", + EntityEndermiteAmbient => "minecraft:entity.endermite.ambient", + EntityEndermiteDeath => "minecraft:entity.endermite.death", + EntityEndermiteHurt => "minecraft:entity.endermite.hurt", + EntityEndermiteStep => "minecraft:entity.endermite.step", + EntityEnderPearlThrow => "minecraft:entity.ender_pearl.throw", + BlockEndGatewaySpawn => "minecraft:block.end_gateway.spawn", + BlockEndPortalFrameFill => "minecraft:block.end_portal_frame.fill", + BlockEndPortalSpawn => "minecraft:block.end_portal.spawn", + EntityEvokerAmbient => "minecraft:entity.evoker.ambient", + EntityEvokerCastSpell => "minecraft:entity.evoker.cast_spell", + EntityEvokerCelebrate => "minecraft:entity.evoker.celebrate", + EntityEvokerDeath => "minecraft:entity.evoker.death", + EntityEvokerFangsAttack => "minecraft:entity.evoker_fangs.attack", + EntityEvokerHurt => "minecraft:entity.evoker.hurt", + EntityEvokerPrepareAttack => "minecraft:entity.evoker.prepare_attack", + EntityEvokerPrepareSummon => "minecraft:entity.evoker.prepare_summon", + EntityEvokerPrepareWololo => "minecraft:entity.evoker.prepare_wololo", + EntityExperienceBottleThrow => "minecraft:entity.experience_bottle.throw", + EntityExperienceOrbPickup => "minecraft:entity.experience_orb.pickup", + BlockEyeblossomOpenLong => "minecraft:block.eyeblossom.open_long", + BlockEyeblossomOpen => "minecraft:block.eyeblossom.open", + BlockEyeblossomCloseLong => "minecraft:block.eyeblossom.close_long", + BlockEyeblossomClose => "minecraft:block.eyeblossom.close", + BlockEyeblossomIdle => "minecraft:block.eyeblossom.idle", + BlockFenceGateClose => "minecraft:block.fence_gate.close", + BlockFenceGateOpen => "minecraft:block.fence_gate.open", + ItemFirechargeUse => "minecraft:item.firecharge.use", + BlockFireflyBushIdle => "minecraft:block.firefly_bush.idle", + EntityFireworkRocketBlast => "minecraft:entity.firework_rocket.blast", + EntityFireworkRocketBlastFar => "minecraft:entity.firework_rocket.blast_far", + EntityFireworkRocketLargeBlast => "minecraft:entity.firework_rocket.large_blast", + EntityFireworkRocketLargeBlastFar => "minecraft:entity.firework_rocket.large_blast_far", + EntityFireworkRocketLaunch => "minecraft:entity.firework_rocket.launch", + EntityFireworkRocketShoot => "minecraft:entity.firework_rocket.shoot", + EntityFireworkRocketTwinkle => "minecraft:entity.firework_rocket.twinkle", + EntityFireworkRocketTwinkleFar => "minecraft:entity.firework_rocket.twinkle_far", + BlockFireAmbient => "minecraft:block.fire.ambient", + BlockFireExtinguish => "minecraft:block.fire.extinguish", + EntityFishSwim => "minecraft:entity.fish.swim", + EntityFishingBobberRetrieve => "minecraft:entity.fishing_bobber.retrieve", + EntityFishingBobberSplash => "minecraft:entity.fishing_bobber.splash", + EntityFishingBobberThrow => "minecraft:entity.fishing_bobber.throw", + ItemFlintandsteelUse => "minecraft:item.flintandsteel.use", + BlockFloweringAzaleaBreak => "minecraft:block.flowering_azalea.break", + BlockFloweringAzaleaFall => "minecraft:block.flowering_azalea.fall", + BlockFloweringAzaleaHit => "minecraft:block.flowering_azalea.hit", + BlockFloweringAzaleaPlace => "minecraft:block.flowering_azalea.place", + BlockFloweringAzaleaStep => "minecraft:block.flowering_azalea.step", + EntityFoxAggro => "minecraft:entity.fox.aggro", + EntityFoxAmbient => "minecraft:entity.fox.ambient", + EntityFoxBite => "minecraft:entity.fox.bite", + EntityFoxDeath => "minecraft:entity.fox.death", + EntityFoxEat => "minecraft:entity.fox.eat", + EntityFoxHurt => "minecraft:entity.fox.hurt", + EntityFoxScreech => "minecraft:entity.fox.screech", + EntityFoxSleep => "minecraft:entity.fox.sleep", + EntityFoxSniff => "minecraft:entity.fox.sniff", + EntityFoxSpit => "minecraft:entity.fox.spit", + EntityFoxTeleport => "minecraft:entity.fox.teleport", + BlockSuspiciousSandBreak => "minecraft:block.suspicious_sand.break", + BlockSuspiciousSandStep => "minecraft:block.suspicious_sand.step", + BlockSuspiciousSandPlace => "minecraft:block.suspicious_sand.place", + BlockSuspiciousSandHit => "minecraft:block.suspicious_sand.hit", + BlockSuspiciousSandFall => "minecraft:block.suspicious_sand.fall", + BlockSuspiciousGravelBreak => "minecraft:block.suspicious_gravel.break", + BlockSuspiciousGravelStep => "minecraft:block.suspicious_gravel.step", + BlockSuspiciousGravelPlace => "minecraft:block.suspicious_gravel.place", + BlockSuspiciousGravelHit => "minecraft:block.suspicious_gravel.hit", + BlockSuspiciousGravelFall => "minecraft:block.suspicious_gravel.fall", + BlockFroglightBreak => "minecraft:block.froglight.break", + BlockFroglightFall => "minecraft:block.froglight.fall", + BlockFroglightHit => "minecraft:block.froglight.hit", + BlockFroglightPlace => "minecraft:block.froglight.place", + BlockFroglightStep => "minecraft:block.froglight.step", + BlockFrogspawnStep => "minecraft:block.frogspawn.step", + BlockFrogspawnBreak => "minecraft:block.frogspawn.break", + BlockFrogspawnFall => "minecraft:block.frogspawn.fall", + BlockFrogspawnHatch => "minecraft:block.frogspawn.hatch", + BlockFrogspawnHit => "minecraft:block.frogspawn.hit", + BlockFrogspawnPlace => "minecraft:block.frogspawn.place", + EntityFrogAmbient => "minecraft:entity.frog.ambient", + EntityFrogDeath => "minecraft:entity.frog.death", + EntityFrogEat => "minecraft:entity.frog.eat", + EntityFrogHurt => "minecraft:entity.frog.hurt", + EntityFrogLaySpawn => "minecraft:entity.frog.lay_spawn", + EntityFrogLongJump => "minecraft:entity.frog.long_jump", + EntityFrogStep => "minecraft:entity.frog.step", + EntityFrogTongue => "minecraft:entity.frog.tongue", + BlockRootsBreak => "minecraft:block.roots.break", + BlockRootsStep => "minecraft:block.roots.step", + BlockRootsPlace => "minecraft:block.roots.place", + BlockRootsHit => "minecraft:block.roots.hit", + BlockRootsFall => "minecraft:block.roots.fall", + BlockFurnaceFireCrackle => "minecraft:block.furnace.fire_crackle", + EntityGenericBigFall => "minecraft:entity.generic.big_fall", + EntityGenericBurn => "minecraft:entity.generic.burn", + EntityGenericDeath => "minecraft:entity.generic.death", + EntityGenericDrink => "minecraft:entity.generic.drink", + EntityGenericEat => "minecraft:entity.generic.eat", + EntityGenericExplode => "minecraft:entity.generic.explode", + EntityGenericExtinguishFire => "minecraft:entity.generic.extinguish_fire", + EntityGenericHurt => "minecraft:entity.generic.hurt", + EntityGenericSmallFall => "minecraft:entity.generic.small_fall", + EntityGenericSplash => "minecraft:entity.generic.splash", + EntityGenericSwim => "minecraft:entity.generic.swim", + EntityGhastAmbient => "minecraft:entity.ghast.ambient", + EntityGhastDeath => "minecraft:entity.ghast.death", + EntityGhastHurt => "minecraft:entity.ghast.hurt", + EntityGhastScream => "minecraft:entity.ghast.scream", + EntityGhastShoot => "minecraft:entity.ghast.shoot", + EntityGhastWarn => "minecraft:entity.ghast.warn", + EntityGhastlingAmbient => "minecraft:entity.ghastling.ambient", + EntityGhastlingDeath => "minecraft:entity.ghastling.death", + EntityGhastlingHurt => "minecraft:entity.ghastling.hurt", + EntityGhastlingSpawn => "minecraft:entity.ghastling.spawn", + BlockGildedBlackstoneBreak => "minecraft:block.gilded_blackstone.break", + BlockGildedBlackstoneFall => "minecraft:block.gilded_blackstone.fall", + BlockGildedBlackstoneHit => "minecraft:block.gilded_blackstone.hit", + BlockGildedBlackstonePlace => "minecraft:block.gilded_blackstone.place", + BlockGildedBlackstoneStep => "minecraft:block.gilded_blackstone.step", + BlockGlassBreak => "minecraft:block.glass.break", + BlockGlassFall => "minecraft:block.glass.fall", + BlockGlassHit => "minecraft:block.glass.hit", + BlockGlassPlace => "minecraft:block.glass.place", + BlockGlassStep => "minecraft:block.glass.step", + ItemGlowInkSacUse => "minecraft:item.glow_ink_sac.use", + EntityGlowItemFrameAddItem => "minecraft:entity.glow_item_frame.add_item", + EntityGlowItemFrameBreak => "minecraft:entity.glow_item_frame.break", + EntityGlowItemFramePlace => "minecraft:entity.glow_item_frame.place", + EntityGlowItemFrameRemoveItem => "minecraft:entity.glow_item_frame.remove_item", + EntityGlowItemFrameRotateItem => "minecraft:entity.glow_item_frame.rotate_item", + EntityGlowSquidAmbient => "minecraft:entity.glow_squid.ambient", + EntityGlowSquidDeath => "minecraft:entity.glow_squid.death", + EntityGlowSquidHurt => "minecraft:entity.glow_squid.hurt", + EntityGlowSquidSquirt => "minecraft:entity.glow_squid.squirt", + EntityGoatAmbient => "minecraft:entity.goat.ambient", + EntityGoatDeath => "minecraft:entity.goat.death", + EntityGoatEat => "minecraft:entity.goat.eat", + EntityGoatHurt => "minecraft:entity.goat.hurt", + EntityGoatLongJump => "minecraft:entity.goat.long_jump", + EntityGoatMilk => "minecraft:entity.goat.milk", + EntityGoatPrepareRam => "minecraft:entity.goat.prepare_ram", + EntityGoatRamImpact => "minecraft:entity.goat.ram_impact", + EntityGoatHornBreak => "minecraft:entity.goat.horn_break", + EntityGoatScreamingAmbient => "minecraft:entity.goat.screaming.ambient", + EntityGoatScreamingDeath => "minecraft:entity.goat.screaming.death", + EntityGoatScreamingEat => "minecraft:entity.goat.screaming.eat", + EntityGoatScreamingHurt => "minecraft:entity.goat.screaming.hurt", + EntityGoatScreamingLongJump => "minecraft:entity.goat.screaming.long_jump", + EntityGoatScreamingMilk => "minecraft:entity.goat.screaming.milk", + EntityGoatScreamingPrepareRam => "minecraft:entity.goat.screaming.prepare_ram", + EntityGoatScreamingRamImpact => "minecraft:entity.goat.screaming.ram_impact", + EntityGoatStep => "minecraft:entity.goat.step", + BlockGrassBreak => "minecraft:block.grass.break", + BlockGrassFall => "minecraft:block.grass.fall", + BlockGrassHit => "minecraft:block.grass.hit", + BlockGrassPlace => "minecraft:block.grass.place", + BlockGrassStep => "minecraft:block.grass.step", + BlockGravelBreak => "minecraft:block.gravel.break", + BlockGravelFall => "minecraft:block.gravel.fall", + BlockGravelHit => "minecraft:block.gravel.hit", + BlockGravelPlace => "minecraft:block.gravel.place", + BlockGravelStep => "minecraft:block.gravel.step", + BlockGrindstoneUse => "minecraft:block.grindstone.use", + BlockGrowingPlantCrop => "minecraft:block.growing_plant.crop", + EntityGuardianAmbient => "minecraft:entity.guardian.ambient", + EntityGuardianAmbientLand => "minecraft:entity.guardian.ambient_land", + EntityGuardianAttack => "minecraft:entity.guardian.attack", + EntityGuardianDeath => "minecraft:entity.guardian.death", + EntityGuardianDeathLand => "minecraft:entity.guardian.death_land", + EntityGuardianFlop => "minecraft:entity.guardian.flop", + EntityGuardianHurt => "minecraft:entity.guardian.hurt", + EntityGuardianHurtLand => "minecraft:entity.guardian.hurt_land", + BlockHangingRootsBreak => "minecraft:block.hanging_roots.break", + BlockHangingRootsFall => "minecraft:block.hanging_roots.fall", + BlockHangingRootsHit => "minecraft:block.hanging_roots.hit", + BlockHangingRootsPlace => "minecraft:block.hanging_roots.place", + BlockHangingRootsStep => "minecraft:block.hanging_roots.step", + BlockHangingSignStep => "minecraft:block.hanging_sign.step", + BlockHangingSignBreak => "minecraft:block.hanging_sign.break", + BlockHangingSignFall => "minecraft:block.hanging_sign.fall", + BlockHangingSignHit => "minecraft:block.hanging_sign.hit", + BlockHangingSignPlace => "minecraft:block.hanging_sign.place", + EntityHappyGhastAmbient => "minecraft:entity.happy_ghast.ambient", + EntityHappyGhastDeath => "minecraft:entity.happy_ghast.death", + EntityHappyGhastHurt => "minecraft:entity.happy_ghast.hurt", + EntityHappyGhastRiding => "minecraft:entity.happy_ghast.riding", + BlockHeavyCoreBreak => "minecraft:block.heavy_core.break", + BlockHeavyCoreFall => "minecraft:block.heavy_core.fall", + BlockHeavyCoreHit => "minecraft:block.heavy_core.hit", + BlockHeavyCorePlace => "minecraft:block.heavy_core.place", + BlockHeavyCoreStep => "minecraft:block.heavy_core.step", + BlockNetherWoodHangingSignStep => "minecraft:block.nether_wood_hanging_sign.step", + BlockNetherWoodHangingSignBreak => "minecraft:block.nether_wood_hanging_sign.break", + BlockNetherWoodHangingSignFall => "minecraft:block.nether_wood_hanging_sign.fall", + BlockNetherWoodHangingSignHit => "minecraft:block.nether_wood_hanging_sign.hit", + BlockNetherWoodHangingSignPlace => "minecraft:block.nether_wood_hanging_sign.place", + BlockBambooWoodHangingSignStep => "minecraft:block.bamboo_wood_hanging_sign.step", + BlockBambooWoodHangingSignBreak => "minecraft:block.bamboo_wood_hanging_sign.break", + BlockBambooWoodHangingSignFall => "minecraft:block.bamboo_wood_hanging_sign.fall", + BlockBambooWoodHangingSignHit => "minecraft:block.bamboo_wood_hanging_sign.hit", + BlockBambooWoodHangingSignPlace => "minecraft:block.bamboo_wood_hanging_sign.place", + BlockTrialSpawnerBreak => "minecraft:block.trial_spawner.break", + BlockTrialSpawnerStep => "minecraft:block.trial_spawner.step", + BlockTrialSpawnerPlace => "minecraft:block.trial_spawner.place", + BlockTrialSpawnerHit => "minecraft:block.trial_spawner.hit", + BlockTrialSpawnerFall => "minecraft:block.trial_spawner.fall", + BlockTrialSpawnerSpawnMob => "minecraft:block.trial_spawner.spawn_mob", + BlockTrialSpawnerAboutToSpawnItem => "minecraft:block.trial_spawner.about_to_spawn_item", + BlockTrialSpawnerSpawnItem => "minecraft:block.trial_spawner.spawn_item", + BlockTrialSpawnerSpawnItemBegin => "minecraft:block.trial_spawner.spawn_item_begin", + BlockTrialSpawnerDetectPlayer => "minecraft:block.trial_spawner.detect_player", + BlockTrialSpawnerOminousActivate => "minecraft:block.trial_spawner.ominous_activate", + BlockTrialSpawnerAmbient => "minecraft:block.trial_spawner.ambient", + BlockTrialSpawnerAmbientOminous => "minecraft:block.trial_spawner.ambient_ominous", + BlockTrialSpawnerOpenShutter => "minecraft:block.trial_spawner.open_shutter", + BlockTrialSpawnerCloseShutter => "minecraft:block.trial_spawner.close_shutter", + BlockTrialSpawnerEjectItem => "minecraft:block.trial_spawner.eject_item", + EntityHappyGhastEquip => "minecraft:entity.happy_ghast.equip", + EntityHappyGhastUnequip => "minecraft:entity.happy_ghast.unequip", + EntityHappyGhastHarnessGogglesUp => "minecraft:entity.happy_ghast.harness_goggles_up", + EntityHappyGhastHarnessGogglesDown => "minecraft:entity.happy_ghast.harness_goggles_down", + ItemHoeTill => "minecraft:item.hoe.till", + EntityHoglinAmbient => "minecraft:entity.hoglin.ambient", + EntityHoglinAngry => "minecraft:entity.hoglin.angry", + EntityHoglinAttack => "minecraft:entity.hoglin.attack", + EntityHoglinConvertedToZombified => "minecraft:entity.hoglin.converted_to_zombified", + EntityHoglinDeath => "minecraft:entity.hoglin.death", + EntityHoglinHurt => "minecraft:entity.hoglin.hurt", + EntityHoglinRetreat => "minecraft:entity.hoglin.retreat", + EntityHoglinStep => "minecraft:entity.hoglin.step", + BlockHoneyBlockBreak => "minecraft:block.honey_block.break", + BlockHoneyBlockFall => "minecraft:block.honey_block.fall", + BlockHoneyBlockHit => "minecraft:block.honey_block.hit", + BlockHoneyBlockPlace => "minecraft:block.honey_block.place", + BlockHoneyBlockSlide => "minecraft:block.honey_block.slide", + BlockHoneyBlockStep => "minecraft:block.honey_block.step", + ItemHoneycombWaxOn => "minecraft:item.honeycomb.wax_on", + ItemHoneyBottleDrink => "minecraft:item.honey_bottle.drink", + ItemGoatHornSound0 => "minecraft:item.goat_horn.sound.0", + ItemGoatHornSound1 => "minecraft:item.goat_horn.sound.1", + ItemGoatHornSound2 => "minecraft:item.goat_horn.sound.2", + ItemGoatHornSound3 => "minecraft:item.goat_horn.sound.3", + ItemGoatHornSound4 => "minecraft:item.goat_horn.sound.4", + ItemGoatHornSound5 => "minecraft:item.goat_horn.sound.5", + ItemGoatHornSound6 => "minecraft:item.goat_horn.sound.6", + ItemGoatHornSound7 => "minecraft:item.goat_horn.sound.7", + EntityHorseAmbient => "minecraft:entity.horse.ambient", + EntityHorseAngry => "minecraft:entity.horse.angry", + EntityHorseArmor => "minecraft:entity.horse.armor", + ItemHorseArmorUnequip => "minecraft:item.horse_armor.unequip", + EntityHorseBreathe => "minecraft:entity.horse.breathe", + EntityHorseDeath => "minecraft:entity.horse.death", + EntityHorseEat => "minecraft:entity.horse.eat", + EntityHorseGallop => "minecraft:entity.horse.gallop", + EntityHorseHurt => "minecraft:entity.horse.hurt", + EntityHorseJump => "minecraft:entity.horse.jump", + EntityHorseLand => "minecraft:entity.horse.land", + EntityHorseSaddle => "minecraft:entity.horse.saddle", + EntityHorseStep => "minecraft:entity.horse.step", + EntityHorseStepWood => "minecraft:entity.horse.step_wood", + EntityHostileBigFall => "minecraft:entity.hostile.big_fall", + EntityHostileDeath => "minecraft:entity.hostile.death", + EntityHostileHurt => "minecraft:entity.hostile.hurt", + EntityHostileSmallFall => "minecraft:entity.hostile.small_fall", + EntityHostileSplash => "minecraft:entity.hostile.splash", + EntityHostileSwim => "minecraft:entity.hostile.swim", + EntityHuskAmbient => "minecraft:entity.husk.ambient", + EntityHuskConvertedToZombie => "minecraft:entity.husk.converted_to_zombie", + EntityHuskDeath => "minecraft:entity.husk.death", + EntityHuskHurt => "minecraft:entity.husk.hurt", + EntityHuskStep => "minecraft:entity.husk.step", + EntityIllusionerAmbient => "minecraft:entity.illusioner.ambient", + EntityIllusionerCastSpell => "minecraft:entity.illusioner.cast_spell", + EntityIllusionerDeath => "minecraft:entity.illusioner.death", + EntityIllusionerHurt => "minecraft:entity.illusioner.hurt", + EntityIllusionerMirrorMove => "minecraft:entity.illusioner.mirror_move", + EntityIllusionerPrepareBlindness => "minecraft:entity.illusioner.prepare_blindness", + EntityIllusionerPrepareMirror => "minecraft:entity.illusioner.prepare_mirror", + ItemInkSacUse => "minecraft:item.ink_sac.use", + BlockIronBreak => "minecraft:block.iron.break", + BlockIronStep => "minecraft:block.iron.step", + BlockIronPlace => "minecraft:block.iron.place", + BlockIronHit => "minecraft:block.iron.hit", + BlockIronFall => "minecraft:block.iron.fall", + BlockIronDoorClose => "minecraft:block.iron_door.close", + BlockIronDoorOpen => "minecraft:block.iron_door.open", + EntityIronGolemAttack => "minecraft:entity.iron_golem.attack", + EntityIronGolemDamage => "minecraft:entity.iron_golem.damage", + EntityIronGolemDeath => "minecraft:entity.iron_golem.death", + EntityIronGolemHurt => "minecraft:entity.iron_golem.hurt", + EntityIronGolemRepair => "minecraft:entity.iron_golem.repair", + EntityIronGolemStep => "minecraft:entity.iron_golem.step", + BlockIronTrapdoorClose => "minecraft:block.iron_trapdoor.close", + BlockIronTrapdoorOpen => "minecraft:block.iron_trapdoor.open", + EntityItemFrameAddItem => "minecraft:entity.item_frame.add_item", + EntityItemFrameBreak => "minecraft:entity.item_frame.break", + EntityItemFramePlace => "minecraft:entity.item_frame.place", + EntityItemFrameRemoveItem => "minecraft:entity.item_frame.remove_item", + EntityItemFrameRotateItem => "minecraft:entity.item_frame.rotate_item", + EntityItemBreak => "minecraft:entity.item.break", + EntityItemPickup => "minecraft:entity.item.pickup", + BlockLadderBreak => "minecraft:block.ladder.break", + BlockLadderFall => "minecraft:block.ladder.fall", + BlockLadderHit => "minecraft:block.ladder.hit", + BlockLadderPlace => "minecraft:block.ladder.place", + BlockLadderStep => "minecraft:block.ladder.step", + BlockLanternBreak => "minecraft:block.lantern.break", + BlockLanternFall => "minecraft:block.lantern.fall", + BlockLanternHit => "minecraft:block.lantern.hit", + BlockLanternPlace => "minecraft:block.lantern.place", + BlockLanternStep => "minecraft:block.lantern.step", + BlockLargeAmethystBudBreak => "minecraft:block.large_amethyst_bud.break", + BlockLargeAmethystBudPlace => "minecraft:block.large_amethyst_bud.place", + BlockLavaAmbient => "minecraft:block.lava.ambient", + BlockLavaExtinguish => "minecraft:block.lava.extinguish", + BlockLavaPop => "minecraft:block.lava.pop", + BlockLeafLitterBreak => "minecraft:block.leaf_litter.break", + BlockLeafLitterStep => "minecraft:block.leaf_litter.step", + BlockLeafLitterPlace => "minecraft:block.leaf_litter.place", + BlockLeafLitterHit => "minecraft:block.leaf_litter.hit", + BlockLeafLitterFall => "minecraft:block.leaf_litter.fall", + ItemLeadUntied => "minecraft:item.lead.untied", + ItemLeadTied => "minecraft:item.lead.tied", + ItemLeadBreak => "minecraft:item.lead.break", + BlockLeverClick => "minecraft:block.lever.click", + EntityLightningBoltImpact => "minecraft:entity.lightning_bolt.impact", + EntityLightningBoltThunder => "minecraft:entity.lightning_bolt.thunder", + EntityLingeringPotionThrow => "minecraft:entity.lingering_potion.throw", + EntityLlamaAmbient => "minecraft:entity.llama.ambient", + EntityLlamaAngry => "minecraft:entity.llama.angry", + EntityLlamaChest => "minecraft:entity.llama.chest", + EntityLlamaDeath => "minecraft:entity.llama.death", + EntityLlamaEat => "minecraft:entity.llama.eat", + EntityLlamaHurt => "minecraft:entity.llama.hurt", + EntityLlamaSpit => "minecraft:entity.llama.spit", + EntityLlamaStep => "minecraft:entity.llama.step", + EntityLlamaSwag => "minecraft:entity.llama.swag", + ItemLlamaCarpetUnequip => "minecraft:item.llama_carpet.unequip", + EntityMagmaCubeDeathSmall => "minecraft:entity.magma_cube.death_small", + BlockLodestoneBreak => "minecraft:block.lodestone.break", + BlockLodestoneStep => "minecraft:block.lodestone.step", + BlockLodestonePlace => "minecraft:block.lodestone.place", + 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", + EntityMagmaCubeDeath => "minecraft:entity.magma_cube.death", + EntityMagmaCubeHurt => "minecraft:entity.magma_cube.hurt", + EntityMagmaCubeHurtSmall => "minecraft:entity.magma_cube.hurt_small", + EntityMagmaCubeJump => "minecraft:entity.magma_cube.jump", + EntityMagmaCubeSquish => "minecraft:entity.magma_cube.squish", + EntityMagmaCubeSquishSmall => "minecraft:entity.magma_cube.squish_small", + BlockMangroveRootsBreak => "minecraft:block.mangrove_roots.break", + BlockMangroveRootsFall => "minecraft:block.mangrove_roots.fall", + BlockMangroveRootsHit => "minecraft:block.mangrove_roots.hit", + BlockMangroveRootsPlace => "minecraft:block.mangrove_roots.place", + BlockMangroveRootsStep => "minecraft:block.mangrove_roots.step", + BlockMediumAmethystBudBreak => "minecraft:block.medium_amethyst_bud.break", + BlockMediumAmethystBudPlace => "minecraft:block.medium_amethyst_bud.place", + BlockMetalBreak => "minecraft:block.metal.break", + BlockMetalFall => "minecraft:block.metal.fall", + BlockMetalHit => "minecraft:block.metal.hit", + BlockMetalPlace => "minecraft:block.metal.place", + BlockMetalPressurePlateClickOff => "minecraft:block.metal_pressure_plate.click_off", + BlockMetalPressurePlateClickOn => "minecraft:block.metal_pressure_plate.click_on", + BlockMetalStep => "minecraft:block.metal.step", + EntityMinecartInsideUnderwater => "minecraft:entity.minecart.inside.underwater", + EntityMinecartInside => "minecraft:entity.minecart.inside", + EntityMinecartRiding => "minecraft:entity.minecart.riding", + EntityMooshroomConvert => "minecraft:entity.mooshroom.convert", + EntityMooshroomEat => "minecraft:entity.mooshroom.eat", + EntityMooshroomMilk => "minecraft:entity.mooshroom.milk", + EntityMooshroomSuspiciousMilk => "minecraft:entity.mooshroom.suspicious_milk", + EntityMooshroomShear => "minecraft:entity.mooshroom.shear", + BlockMossCarpetBreak => "minecraft:block.moss_carpet.break", + BlockMossCarpetFall => "minecraft:block.moss_carpet.fall", + BlockMossCarpetHit => "minecraft:block.moss_carpet.hit", + BlockMossCarpetPlace => "minecraft:block.moss_carpet.place", + BlockMossCarpetStep => "minecraft:block.moss_carpet.step", + BlockPinkPetalsBreak => "minecraft:block.pink_petals.break", + BlockPinkPetalsFall => "minecraft:block.pink_petals.fall", + BlockPinkPetalsHit => "minecraft:block.pink_petals.hit", + BlockPinkPetalsPlace => "minecraft:block.pink_petals.place", + BlockPinkPetalsStep => "minecraft:block.pink_petals.step", + BlockMossBreak => "minecraft:block.moss.break", + BlockMossFall => "minecraft:block.moss.fall", + BlockMossHit => "minecraft:block.moss.hit", + BlockMossPlace => "minecraft:block.moss.place", + BlockMossStep => "minecraft:block.moss.step", + BlockMudBreak => "minecraft:block.mud.break", + BlockMudFall => "minecraft:block.mud.fall", + BlockMudHit => "minecraft:block.mud.hit", + BlockMudPlace => "minecraft:block.mud.place", + BlockMudStep => "minecraft:block.mud.step", + BlockMudBricksBreak => "minecraft:block.mud_bricks.break", + BlockMudBricksFall => "minecraft:block.mud_bricks.fall", + BlockMudBricksHit => "minecraft:block.mud_bricks.hit", + BlockMudBricksPlace => "minecraft:block.mud_bricks.place", + BlockMudBricksStep => "minecraft:block.mud_bricks.step", + BlockMuddyMangroveRootsBreak => "minecraft:block.muddy_mangrove_roots.break", + BlockMuddyMangroveRootsFall => "minecraft:block.muddy_mangrove_roots.fall", + BlockMuddyMangroveRootsHit => "minecraft:block.muddy_mangrove_roots.hit", + BlockMuddyMangroveRootsPlace => "minecraft:block.muddy_mangrove_roots.place", + BlockMuddyMangroveRootsStep => "minecraft:block.muddy_mangrove_roots.step", + EntityMuleAmbient => "minecraft:entity.mule.ambient", + EntityMuleAngry => "minecraft:entity.mule.angry", + EntityMuleChest => "minecraft:entity.mule.chest", + EntityMuleDeath => "minecraft:entity.mule.death", + EntityMuleEat => "minecraft:entity.mule.eat", + EntityMuleHurt => "minecraft:entity.mule.hurt", + EntityMuleJump => "minecraft:entity.mule.jump", + MusicCreative => "minecraft:music.creative", + MusicCredits => "minecraft:music.credits", + MusicDisc5 => "minecraft:music_disc.5", + MusicDisc11 => "minecraft:music_disc.11", + MusicDisc13 => "minecraft:music_disc.13", + MusicDiscBlocks => "minecraft:music_disc.blocks", + MusicDiscCat => "minecraft:music_disc.cat", + MusicDiscChirp => "minecraft:music_disc.chirp", + MusicDiscFar => "minecraft:music_disc.far", + MusicDiscLavaChicken => "minecraft:music_disc.lava_chicken", + MusicDiscMall => "minecraft:music_disc.mall", + MusicDiscMellohi => "minecraft:music_disc.mellohi", + MusicDiscPigstep => "minecraft:music_disc.pigstep", + MusicDiscStal => "minecraft:music_disc.stal", + MusicDiscStrad => "minecraft:music_disc.strad", + MusicDiscWait => "minecraft:music_disc.wait", + MusicDiscWard => "minecraft:music_disc.ward", + MusicDiscOtherside => "minecraft:music_disc.otherside", + MusicDiscRelic => "minecraft:music_disc.relic", + MusicDiscCreator => "minecraft:music_disc.creator", + MusicDiscCreatorMusicBox => "minecraft:music_disc.creator_music_box", + MusicDiscPrecipice => "minecraft:music_disc.precipice", + MusicDiscTears => "minecraft:music_disc.tears", + MusicDragon => "minecraft:music.dragon", + MusicEnd => "minecraft:music.end", + MusicGame => "minecraft:music.game", + MusicMenu => "minecraft:music.menu", + MusicNetherBasaltDeltas => "minecraft:music.nether.basalt_deltas", + MusicNetherCrimsonForest => "minecraft:music.nether.crimson_forest", + MusicOverworldDeepDark => "minecraft:music.overworld.deep_dark", + MusicOverworldDripstoneCaves => "minecraft:music.overworld.dripstone_caves", + MusicOverworldGrove => "minecraft:music.overworld.grove", + MusicOverworldJaggedPeaks => "minecraft:music.overworld.jagged_peaks", + MusicOverworldLushCaves => "minecraft:music.overworld.lush_caves", + MusicOverworldSwamp => "minecraft:music.overworld.swamp", + MusicOverworldForest => "minecraft:music.overworld.forest", + MusicOverworldOldGrowthTaiga => "minecraft:music.overworld.old_growth_taiga", + MusicOverworldMeadow => "minecraft:music.overworld.meadow", + MusicOverworldCherryGrove => "minecraft:music.overworld.cherry_grove", + MusicNetherNetherWastes => "minecraft:music.nether.nether_wastes", + MusicOverworldFrozenPeaks => "minecraft:music.overworld.frozen_peaks", + MusicOverworldSnowySlopes => "minecraft:music.overworld.snowy_slopes", + MusicNetherSoulSandValley => "minecraft:music.nether.soul_sand_valley", + MusicOverworldStonyPeaks => "minecraft:music.overworld.stony_peaks", + MusicNetherWarpedForest => "minecraft:music.nether.warped_forest", + MusicOverworldFlowerForest => "minecraft:music.overworld.flower_forest", + MusicOverworldDesert => "minecraft:music.overworld.desert", + MusicOverworldBadlands => "minecraft:music.overworld.badlands", + MusicOverworldJungle => "minecraft:music.overworld.jungle", + MusicOverworldSparseJungle => "minecraft:music.overworld.sparse_jungle", + 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", + BlockNetherBricksPlace => "minecraft:block.nether_bricks.place", + BlockNetherBricksHit => "minecraft:block.nether_bricks.hit", + BlockNetherBricksFall => "minecraft:block.nether_bricks.fall", + BlockNetherWartBreak => "minecraft:block.nether_wart.break", + ItemNetherWartPlant => "minecraft:item.nether_wart.plant", + BlockNetherWoodBreak => "minecraft:block.nether_wood.break", + BlockNetherWoodFall => "minecraft:block.nether_wood.fall", + BlockNetherWoodHit => "minecraft:block.nether_wood.hit", + BlockNetherWoodPlace => "minecraft:block.nether_wood.place", + BlockNetherWoodStep => "minecraft:block.nether_wood.step", + BlockNetherWoodDoorClose => "minecraft:block.nether_wood_door.close", + BlockNetherWoodDoorOpen => "minecraft:block.nether_wood_door.open", + BlockNetherWoodTrapdoorClose => "minecraft:block.nether_wood_trapdoor.close", + BlockNetherWoodTrapdoorOpen => "minecraft:block.nether_wood_trapdoor.open", + BlockNetherWoodButtonClickOff => "minecraft:block.nether_wood_button.click_off", + BlockNetherWoodButtonClickOn => "minecraft:block.nether_wood_button.click_on", + BlockNetherWoodPressurePlateClickOff => "minecraft:block.nether_wood_pressure_plate.click_off", + BlockNetherWoodPressurePlateClickOn => "minecraft:block.nether_wood_pressure_plate.click_on", + BlockNetherWoodFenceGateClose => "minecraft:block.nether_wood_fence_gate.close", + BlockNetherWoodFenceGateOpen => "minecraft:block.nether_wood_fence_gate.open", + IntentionallyEmpty => "minecraft:intentionally_empty", + BlockPackedMudBreak => "minecraft:block.packed_mud.break", + BlockPackedMudFall => "minecraft:block.packed_mud.fall", + BlockPackedMudHit => "minecraft:block.packed_mud.hit", + BlockPackedMudPlace => "minecraft:block.packed_mud.place", + BlockPackedMudStep => "minecraft:block.packed_mud.step", + BlockStemBreak => "minecraft:block.stem.break", + BlockStemStep => "minecraft:block.stem.step", + BlockStemPlace => "minecraft:block.stem.place", + BlockStemHit => "minecraft:block.stem.hit", + BlockStemFall => "minecraft:block.stem.fall", + BlockNyliumBreak => "minecraft:block.nylium.break", + BlockNyliumStep => "minecraft:block.nylium.step", + BlockNyliumPlace => "minecraft:block.nylium.place", + BlockNyliumHit => "minecraft:block.nylium.hit", + BlockNyliumFall => "minecraft:block.nylium.fall", + BlockNetherSproutsBreak => "minecraft:block.nether_sprouts.break", + BlockNetherSproutsStep => "minecraft:block.nether_sprouts.step", + BlockNetherSproutsPlace => "minecraft:block.nether_sprouts.place", + BlockNetherSproutsHit => "minecraft:block.nether_sprouts.hit", + BlockNetherSproutsFall => "minecraft:block.nether_sprouts.fall", + BlockFungusBreak => "minecraft:block.fungus.break", + BlockFungusStep => "minecraft:block.fungus.step", + BlockFungusPlace => "minecraft:block.fungus.place", + BlockFungusHit => "minecraft:block.fungus.hit", + BlockFungusFall => "minecraft:block.fungus.fall", + BlockWeepingVinesBreak => "minecraft:block.weeping_vines.break", + BlockWeepingVinesStep => "minecraft:block.weeping_vines.step", + BlockWeepingVinesPlace => "minecraft:block.weeping_vines.place", + BlockWeepingVinesHit => "minecraft:block.weeping_vines.hit", + BlockWeepingVinesFall => "minecraft:block.weeping_vines.fall", + BlockWartBlockBreak => "minecraft:block.wart_block.break", + BlockWartBlockStep => "minecraft:block.wart_block.step", + BlockWartBlockPlace => "minecraft:block.wart_block.place", + BlockWartBlockHit => "minecraft:block.wart_block.hit", + BlockWartBlockFall => "minecraft:block.wart_block.fall", + BlockNetheriteBlockBreak => "minecraft:block.netherite_block.break", + BlockNetheriteBlockStep => "minecraft:block.netherite_block.step", + BlockNetheriteBlockPlace => "minecraft:block.netherite_block.place", + BlockNetheriteBlockHit => "minecraft:block.netherite_block.hit", + BlockNetheriteBlockFall => "minecraft:block.netherite_block.fall", + BlockNetherrackBreak => "minecraft:block.netherrack.break", + BlockNetherrackStep => "minecraft:block.netherrack.step", + BlockNetherrackPlace => "minecraft:block.netherrack.place", + BlockNetherrackHit => "minecraft:block.netherrack.hit", + BlockNetherrackFall => "minecraft:block.netherrack.fall", + BlockNoteBlockBasedrum => "minecraft:block.note_block.basedrum", + BlockNoteBlockBass => "minecraft:block.note_block.bass", + BlockNoteBlockBell => "minecraft:block.note_block.bell", + BlockNoteBlockChime => "minecraft:block.note_block.chime", + BlockNoteBlockFlute => "minecraft:block.note_block.flute", + BlockNoteBlockGuitar => "minecraft:block.note_block.guitar", + BlockNoteBlockHarp => "minecraft:block.note_block.harp", + BlockNoteBlockHat => "minecraft:block.note_block.hat", + BlockNoteBlockPling => "minecraft:block.note_block.pling", + BlockNoteBlockSnare => "minecraft:block.note_block.snare", + BlockNoteBlockXylophone => "minecraft:block.note_block.xylophone", + BlockNoteBlockIronXylophone => "minecraft:block.note_block.iron_xylophone", + BlockNoteBlockCowBell => "minecraft:block.note_block.cow_bell", + BlockNoteBlockDidgeridoo => "minecraft:block.note_block.didgeridoo", + BlockNoteBlockBit => "minecraft:block.note_block.bit", + BlockNoteBlockBanjo => "minecraft:block.note_block.banjo", + BlockNoteBlockImitateZombie => "minecraft:block.note_block.imitate.zombie", + BlockNoteBlockImitateSkeleton => "minecraft:block.note_block.imitate.skeleton", + BlockNoteBlockImitateCreeper => "minecraft:block.note_block.imitate.creeper", + BlockNoteBlockImitateEnderDragon => "minecraft:block.note_block.imitate.ender_dragon", + BlockNoteBlockImitateWitherSkeleton => "minecraft:block.note_block.imitate.wither_skeleton", + BlockNoteBlockImitatePiglin => "minecraft:block.note_block.imitate.piglin", + EntityOcelotHurt => "minecraft:entity.ocelot.hurt", + EntityOcelotAmbient => "minecraft:entity.ocelot.ambient", + EntityOcelotDeath => "minecraft:entity.ocelot.death", + ItemOminousBottleDispose => "minecraft:item.ominous_bottle.dispose", + EntityPaintingBreak => "minecraft:entity.painting.break", + EntityPaintingPlace => "minecraft:entity.painting.place", + BlockPaleHangingMossIdle => "minecraft:block.pale_hanging_moss.idle", + EntityPandaPreSneeze => "minecraft:entity.panda.pre_sneeze", + EntityPandaSneeze => "minecraft:entity.panda.sneeze", + EntityPandaAmbient => "minecraft:entity.panda.ambient", + EntityPandaDeath => "minecraft:entity.panda.death", + EntityPandaEat => "minecraft:entity.panda.eat", + EntityPandaStep => "minecraft:entity.panda.step", + EntityPandaCantBreed => "minecraft:entity.panda.cant_breed", + EntityPandaAggressiveAmbient => "minecraft:entity.panda.aggressive_ambient", + 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", + EntityParrotFly => "minecraft:entity.parrot.fly", + EntityParrotHurt => "minecraft:entity.parrot.hurt", + 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", + EntityParrotImitateElderGuardian => "minecraft:entity.parrot.imitate.elder_guardian", + EntityParrotImitateEnderDragon => "minecraft:entity.parrot.imitate.ender_dragon", + EntityParrotImitateEndermite => "minecraft:entity.parrot.imitate.endermite", + EntityParrotImitateEvoker => "minecraft:entity.parrot.imitate.evoker", + EntityParrotImitateGhast => "minecraft:entity.parrot.imitate.ghast", + EntityParrotImitateGuardian => "minecraft:entity.parrot.imitate.guardian", + EntityParrotImitateHoglin => "minecraft:entity.parrot.imitate.hoglin", + EntityParrotImitateHusk => "minecraft:entity.parrot.imitate.husk", + 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", + EntityParrotImitateRavager => "minecraft:entity.parrot.imitate.ravager", + EntityParrotImitateShulker => "minecraft:entity.parrot.imitate.shulker", + EntityParrotImitateSilverfish => "minecraft:entity.parrot.imitate.silverfish", + EntityParrotImitateSkeleton => "minecraft:entity.parrot.imitate.skeleton", + EntityParrotImitateSlime => "minecraft:entity.parrot.imitate.slime", + EntityParrotImitateSpider => "minecraft:entity.parrot.imitate.spider", + EntityParrotImitateStray => "minecraft:entity.parrot.imitate.stray", + EntityParrotImitateVex => "minecraft:entity.parrot.imitate.vex", + EntityParrotImitateVindicator => "minecraft:entity.parrot.imitate.vindicator", + EntityParrotImitateWarden => "minecraft:entity.parrot.imitate.warden", + EntityParrotImitateWitch => "minecraft:entity.parrot.imitate.witch", + EntityParrotImitateWither => "minecraft:entity.parrot.imitate.wither", + 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", + EntityPhantomBite => "minecraft:entity.phantom.bite", + EntityPhantomDeath => "minecraft:entity.phantom.death", + EntityPhantomFlap => "minecraft:entity.phantom.flap", + EntityPhantomHurt => "minecraft:entity.phantom.hurt", + EntityPhantomSwoop => "minecraft:entity.phantom.swoop", + EntityPigAmbient => "minecraft:entity.pig.ambient", + EntityPigDeath => "minecraft:entity.pig.death", + EntityPigHurt => "minecraft:entity.pig.hurt", + EntityPigSaddle => "minecraft:entity.pig.saddle", + EntityPigStep => "minecraft:entity.pig.step", + EntityPiglinAdmiringItem => "minecraft:entity.piglin.admiring_item", + EntityPiglinAmbient => "minecraft:entity.piglin.ambient", + EntityPiglinAngry => "minecraft:entity.piglin.angry", + EntityPiglinCelebrate => "minecraft:entity.piglin.celebrate", + EntityPiglinDeath => "minecraft:entity.piglin.death", + EntityPiglinJealous => "minecraft:entity.piglin.jealous", + EntityPiglinHurt => "minecraft:entity.piglin.hurt", + EntityPiglinRetreat => "minecraft:entity.piglin.retreat", + EntityPiglinStep => "minecraft:entity.piglin.step", + EntityPiglinConvertedToZombified => "minecraft:entity.piglin.converted_to_zombified", + EntityPiglinBruteAmbient => "minecraft:entity.piglin_brute.ambient", + EntityPiglinBruteAngry => "minecraft:entity.piglin_brute.angry", + EntityPiglinBruteDeath => "minecraft:entity.piglin_brute.death", + EntityPiglinBruteHurt => "minecraft:entity.piglin_brute.hurt", + EntityPiglinBruteStep => "minecraft:entity.piglin_brute.step", + EntityPiglinBruteConvertedToZombified => "minecraft:entity.piglin_brute.converted_to_zombified", + EntityPillagerAmbient => "minecraft:entity.pillager.ambient", + EntityPillagerCelebrate => "minecraft:entity.pillager.celebrate", + EntityPillagerDeath => "minecraft:entity.pillager.death", + EntityPillagerHurt => "minecraft:entity.pillager.hurt", + BlockPistonContract => "minecraft:block.piston.contract", + BlockPistonExtend => "minecraft:block.piston.extend", + EntityPlayerAttackCrit => "minecraft:entity.player.attack.crit", + EntityPlayerAttackKnockback => "minecraft:entity.player.attack.knockback", + EntityPlayerAttackNodamage => "minecraft:entity.player.attack.nodamage", + EntityPlayerAttackStrong => "minecraft:entity.player.attack.strong", + EntityPlayerAttackSweep => "minecraft:entity.player.attack.sweep", + EntityPlayerAttackWeak => "minecraft:entity.player.attack.weak", + EntityPlayerBigFall => "minecraft:entity.player.big_fall", + EntityPlayerBreath => "minecraft:entity.player.breath", + EntityPlayerBurp => "minecraft:entity.player.burp", + EntityPlayerDeath => "minecraft:entity.player.death", + EntityPlayerHurt => "minecraft:entity.player.hurt", + EntityPlayerHurtDrown => "minecraft:entity.player.hurt_drown", + EntityPlayerHurtFreeze => "minecraft:entity.player.hurt_freeze", + EntityPlayerHurtOnFire => "minecraft:entity.player.hurt_on_fire", + EntityPlayerHurtSweetBerryBush => "minecraft:entity.player.hurt_sweet_berry_bush", + EntityPlayerLevelup => "minecraft:entity.player.levelup", + EntityPlayerSmallFall => "minecraft:entity.player.small_fall", + EntityPlayerSplash => "minecraft:entity.player.splash", + EntityPlayerSplashHighSpeed => "minecraft:entity.player.splash.high_speed", + EntityPlayerSwim => "minecraft:entity.player.swim", + EntityPlayerTeleport => "minecraft:entity.player.teleport", + EntityPolarBearAmbient => "minecraft:entity.polar_bear.ambient", + EntityPolarBearAmbientBaby => "minecraft:entity.polar_bear.ambient_baby", + EntityPolarBearDeath => "minecraft:entity.polar_bear.death", + EntityPolarBearHurt => "minecraft:entity.polar_bear.hurt", + EntityPolarBearStep => "minecraft:entity.polar_bear.step", + EntityPolarBearWarning => "minecraft:entity.polar_bear.warning", + BlockPolishedDeepslateBreak => "minecraft:block.polished_deepslate.break", + BlockPolishedDeepslateFall => "minecraft:block.polished_deepslate.fall", + BlockPolishedDeepslateHit => "minecraft:block.polished_deepslate.hit", + BlockPolishedDeepslatePlace => "minecraft:block.polished_deepslate.place", + BlockPolishedDeepslateStep => "minecraft:block.polished_deepslate.step", + BlockPortalAmbient => "minecraft:block.portal.ambient", + BlockPortalTravel => "minecraft:block.portal.travel", + BlockPortalTrigger => "minecraft:block.portal.trigger", + BlockPowderSnowBreak => "minecraft:block.powder_snow.break", + BlockPowderSnowFall => "minecraft:block.powder_snow.fall", + BlockPowderSnowHit => "minecraft:block.powder_snow.hit", + BlockPowderSnowPlace => "minecraft:block.powder_snow.place", + BlockPowderSnowStep => "minecraft:block.powder_snow.step", + EntityPufferFishBlowOut => "minecraft:entity.puffer_fish.blow_out", + EntityPufferFishBlowUp => "minecraft:entity.puffer_fish.blow_up", + EntityPufferFishDeath => "minecraft:entity.puffer_fish.death", + EntityPufferFishFlop => "minecraft:entity.puffer_fish.flop", + EntityPufferFishHurt => "minecraft:entity.puffer_fish.hurt", + EntityPufferFishSting => "minecraft:entity.puffer_fish.sting", + BlockPumpkinCarve => "minecraft:block.pumpkin.carve", + EntityRabbitAmbient => "minecraft:entity.rabbit.ambient", + EntityRabbitAttack => "minecraft:entity.rabbit.attack", + EntityRabbitDeath => "minecraft:entity.rabbit.death", + EntityRabbitHurt => "minecraft:entity.rabbit.hurt", + EntityRabbitJump => "minecraft:entity.rabbit.jump", + EventRaidHorn => "minecraft:event.raid.horn", + EntityRavagerAmbient => "minecraft:entity.ravager.ambient", + EntityRavagerAttack => "minecraft:entity.ravager.attack", + EntityRavagerCelebrate => "minecraft:entity.ravager.celebrate", + EntityRavagerDeath => "minecraft:entity.ravager.death", + EntityRavagerHurt => "minecraft:entity.ravager.hurt", + EntityRavagerStep => "minecraft:entity.ravager.step", + EntityRavagerStunned => "minecraft:entity.ravager.stunned", + EntityRavagerRoar => "minecraft:entity.ravager.roar", + BlockNetherGoldOreBreak => "minecraft:block.nether_gold_ore.break", + BlockNetherGoldOreFall => "minecraft:block.nether_gold_ore.fall", + BlockNetherGoldOreHit => "minecraft:block.nether_gold_ore.hit", + BlockNetherGoldOrePlace => "minecraft:block.nether_gold_ore.place", + BlockNetherGoldOreStep => "minecraft:block.nether_gold_ore.step", + BlockNetherOreBreak => "minecraft:block.nether_ore.break", + BlockNetherOreFall => "minecraft:block.nether_ore.fall", + BlockNetherOreHit => "minecraft:block.nether_ore.hit", + 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", + BlockRespawnAnchorSetSpawn => "minecraft:block.respawn_anchor.set_spawn", + BlockRootedDirtBreak => "minecraft:block.rooted_dirt.break", + BlockRootedDirtFall => "minecraft:block.rooted_dirt.fall", + BlockRootedDirtHit => "minecraft:block.rooted_dirt.hit", + BlockRootedDirtPlace => "minecraft:block.rooted_dirt.place", + BlockRootedDirtStep => "minecraft:block.rooted_dirt.step", + EntitySalmonAmbient => "minecraft:entity.salmon.ambient", + EntitySalmonDeath => "minecraft:entity.salmon.death", + EntitySalmonFlop => "minecraft:entity.salmon.flop", + EntitySalmonHurt => "minecraft:entity.salmon.hurt", + BlockSandBreak => "minecraft:block.sand.break", + BlockSandFall => "minecraft:block.sand.fall", + BlockSandHit => "minecraft:block.sand.hit", + BlockSandPlace => "minecraft:block.sand.place", + BlockSandStep => "minecraft:block.sand.step", + BlockSandIdle => "minecraft:block.sand.idle", + BlockScaffoldingBreak => "minecraft:block.scaffolding.break", + BlockScaffoldingFall => "minecraft:block.scaffolding.fall", + BlockScaffoldingHit => "minecraft:block.scaffolding.hit", + BlockScaffoldingPlace => "minecraft:block.scaffolding.place", + BlockScaffoldingStep => "minecraft:block.scaffolding.step", + BlockSculkSpread => "minecraft:block.sculk.spread", + BlockSculkCharge => "minecraft:block.sculk.charge", + BlockSculkBreak => "minecraft:block.sculk.break", + BlockSculkFall => "minecraft:block.sculk.fall", + BlockSculkHit => "minecraft:block.sculk.hit", + BlockSculkPlace => "minecraft:block.sculk.place", + BlockSculkStep => "minecraft:block.sculk.step", + BlockSculkCatalystBloom => "minecraft:block.sculk_catalyst.bloom", + BlockSculkCatalystBreak => "minecraft:block.sculk_catalyst.break", + BlockSculkCatalystFall => "minecraft:block.sculk_catalyst.fall", + BlockSculkCatalystHit => "minecraft:block.sculk_catalyst.hit", + BlockSculkCatalystPlace => "minecraft:block.sculk_catalyst.place", + BlockSculkCatalystStep => "minecraft:block.sculk_catalyst.step", + BlockSculkSensorClicking => "minecraft:block.sculk_sensor.clicking", + BlockSculkSensorClickingStop => "minecraft:block.sculk_sensor.clicking_stop", + BlockSculkSensorBreak => "minecraft:block.sculk_sensor.break", + BlockSculkSensorFall => "minecraft:block.sculk_sensor.fall", + BlockSculkSensorHit => "minecraft:block.sculk_sensor.hit", + BlockSculkSensorPlace => "minecraft:block.sculk_sensor.place", + BlockSculkSensorStep => "minecraft:block.sculk_sensor.step", + BlockSculkShriekerBreak => "minecraft:block.sculk_shrieker.break", + BlockSculkShriekerFall => "minecraft:block.sculk_shrieker.fall", + BlockSculkShriekerHit => "minecraft:block.sculk_shrieker.hit", + BlockSculkShriekerPlace => "minecraft:block.sculk_shrieker.place", + BlockSculkShriekerShriek => "minecraft:block.sculk_shrieker.shriek", + BlockSculkShriekerStep => "minecraft:block.sculk_shrieker.step", + BlockSculkVeinBreak => "minecraft:block.sculk_vein.break", + BlockSculkVeinFall => "minecraft:block.sculk_vein.fall", + BlockSculkVeinHit => "minecraft:block.sculk_vein.hit", + BlockSculkVeinPlace => "minecraft:block.sculk_vein.place", + BlockSculkVeinStep => "minecraft:block.sculk_vein.step", + EntitySheepAmbient => "minecraft:entity.sheep.ambient", + EntitySheepDeath => "minecraft:entity.sheep.death", + EntitySheepHurt => "minecraft:entity.sheep.hurt", + EntitySheepShear => "minecraft:entity.sheep.shear", + EntitySheepStep => "minecraft:entity.sheep.step", + ItemShearsSnip => "minecraft:item.shears.snip", + BlockShelfActivate => "minecraft:block.shelf.activate", + BlockShelfBreak => "minecraft:block.shelf.break", + BlockShelfDeactivate => "minecraft:block.shelf.deactivate", + BlockShelfFall => "minecraft:block.shelf.fall", + BlockShelfHit => "minecraft:block.shelf.hit", + BlockShelfMultiSwap => "minecraft:block.shelf.multi_swap", + BlockShelfPlace => "minecraft:block.shelf.place", + BlockShelfPlaceItem => "minecraft:block.shelf.place_item", + BlockShelfSingleSwap => "minecraft:block.shelf.single_swap", + BlockShelfStep => "minecraft:block.shelf.step", + BlockShelfTakeItem => "minecraft:block.shelf.take_item", + ItemShieldBlock => "minecraft:item.shield.block", + ItemShieldBreak => "minecraft:item.shield.break", + BlockShroomlightBreak => "minecraft:block.shroomlight.break", + BlockShroomlightStep => "minecraft:block.shroomlight.step", + BlockShroomlightPlace => "minecraft:block.shroomlight.place", + BlockShroomlightHit => "minecraft:block.shroomlight.hit", + BlockShroomlightFall => "minecraft:block.shroomlight.fall", + ItemShovelFlatten => "minecraft:item.shovel.flatten", + EntityShulkerAmbient => "minecraft:entity.shulker.ambient", + BlockShulkerBoxClose => "minecraft:block.shulker_box.close", + BlockShulkerBoxOpen => "minecraft:block.shulker_box.open", + EntityShulkerBulletHit => "minecraft:entity.shulker_bullet.hit", + EntityShulkerBulletHurt => "minecraft:entity.shulker_bullet.hurt", + EntityShulkerClose => "minecraft:entity.shulker.close", + EntityShulkerDeath => "minecraft:entity.shulker.death", + EntityShulkerHurt => "minecraft:entity.shulker.hurt", + EntityShulkerHurtClosed => "minecraft:entity.shulker.hurt_closed", + EntityShulkerOpen => "minecraft:entity.shulker.open", + EntityShulkerShoot => "minecraft:entity.shulker.shoot", + EntityShulkerTeleport => "minecraft:entity.shulker.teleport", + EntitySilverfishAmbient => "minecraft:entity.silverfish.ambient", + EntitySilverfishDeath => "minecraft:entity.silverfish.death", + EntitySilverfishHurt => "minecraft:entity.silverfish.hurt", + EntitySilverfishStep => "minecraft:entity.silverfish.step", + EntitySkeletonAmbient => "minecraft:entity.skeleton.ambient", + EntitySkeletonConvertedToStray => "minecraft:entity.skeleton.converted_to_stray", + EntitySkeletonDeath => "minecraft:entity.skeleton.death", + EntitySkeletonHorseAmbient => "minecraft:entity.skeleton_horse.ambient", + EntitySkeletonHorseDeath => "minecraft:entity.skeleton_horse.death", + EntitySkeletonHorseHurt => "minecraft:entity.skeleton_horse.hurt", + EntitySkeletonHorseSwim => "minecraft:entity.skeleton_horse.swim", + EntitySkeletonHorseAmbientWater => "minecraft:entity.skeleton_horse.ambient_water", + EntitySkeletonHorseGallopWater => "minecraft:entity.skeleton_horse.gallop_water", + EntitySkeletonHorseJumpWater => "minecraft:entity.skeleton_horse.jump_water", + EntitySkeletonHorseStepWater => "minecraft:entity.skeleton_horse.step_water", + EntitySkeletonHurt => "minecraft:entity.skeleton.hurt", + EntitySkeletonShoot => "minecraft:entity.skeleton.shoot", + EntitySkeletonStep => "minecraft:entity.skeleton.step", + EntitySlimeAttack => "minecraft:entity.slime.attack", + EntitySlimeDeath => "minecraft:entity.slime.death", + EntitySlimeHurt => "minecraft:entity.slime.hurt", + EntitySlimeJump => "minecraft:entity.slime.jump", + EntitySlimeSquish => "minecraft:entity.slime.squish", + BlockSlimeBlockBreak => "minecraft:block.slime_block.break", + BlockSlimeBlockFall => "minecraft:block.slime_block.fall", + BlockSlimeBlockHit => "minecraft:block.slime_block.hit", + BlockSlimeBlockPlace => "minecraft:block.slime_block.place", + BlockSlimeBlockStep => "minecraft:block.slime_block.step", + BlockSmallAmethystBudBreak => "minecraft:block.small_amethyst_bud.break", + BlockSmallAmethystBudPlace => "minecraft:block.small_amethyst_bud.place", + BlockSmallDripleafBreak => "minecraft:block.small_dripleaf.break", + BlockSmallDripleafFall => "minecraft:block.small_dripleaf.fall", + BlockSmallDripleafHit => "minecraft:block.small_dripleaf.hit", + BlockSmallDripleafPlace => "minecraft:block.small_dripleaf.place", + BlockSmallDripleafStep => "minecraft:block.small_dripleaf.step", + BlockSoulSandBreak => "minecraft:block.soul_sand.break", + BlockSoulSandStep => "minecraft:block.soul_sand.step", + BlockSoulSandPlace => "minecraft:block.soul_sand.place", + BlockSoulSandHit => "minecraft:block.soul_sand.hit", + BlockSoulSandFall => "minecraft:block.soul_sand.fall", + BlockSoulSoilBreak => "minecraft:block.soul_soil.break", + BlockSoulSoilStep => "minecraft:block.soul_soil.step", + BlockSoulSoilPlace => "minecraft:block.soul_soil.place", + BlockSoulSoilHit => "minecraft:block.soul_soil.hit", + BlockSoulSoilFall => "minecraft:block.soul_soil.fall", + ParticleSoulEscape => "minecraft:particle.soul_escape", + BlockSpawnerBreak => "minecraft:block.spawner.break", + BlockSpawnerFall => "minecraft:block.spawner.fall", + BlockSpawnerHit => "minecraft:block.spawner.hit", + BlockSpawnerPlace => "minecraft:block.spawner.place", + BlockSpawnerStep => "minecraft:block.spawner.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", + BlockSporeBlossomPlace => "minecraft:block.spore_blossom.place", + BlockSporeBlossomStep => "minecraft:block.spore_blossom.step", + EntityStriderAmbient => "minecraft:entity.strider.ambient", + EntityStriderHappy => "minecraft:entity.strider.happy", + EntityStriderRetreat => "minecraft:entity.strider.retreat", + EntityStriderDeath => "minecraft:entity.strider.death", + EntityStriderHurt => "minecraft:entity.strider.hurt", + EntityStriderStep => "minecraft:entity.strider.step", + EntityStriderStepLava => "minecraft:entity.strider.step_lava", + EntityStriderEat => "minecraft:entity.strider.eat", + EntityStriderSaddle => "minecraft:entity.strider.saddle", + EntitySlimeDeathSmall => "minecraft:entity.slime.death_small", + EntitySlimeHurtSmall => "minecraft:entity.slime.hurt_small", + EntitySlimeJumpSmall => "minecraft:entity.slime.jump_small", + EntitySlimeSquishSmall => "minecraft:entity.slime.squish_small", + BlockSmithingTableUse => "minecraft:block.smithing_table.use", + BlockSmokerSmoke => "minecraft:block.smoker.smoke", + EntitySnifferStep => "minecraft:entity.sniffer.step", + EntitySnifferEat => "minecraft:entity.sniffer.eat", + EntitySnifferIdle => "minecraft:entity.sniffer.idle", + EntitySnifferHurt => "minecraft:entity.sniffer.hurt", + EntitySnifferDeath => "minecraft:entity.sniffer.death", + EntitySnifferDropSeed => "minecraft:entity.sniffer.drop_seed", + EntitySnifferScenting => "minecraft:entity.sniffer.scenting", + EntitySnifferSniffing => "minecraft:entity.sniffer.sniffing", + EntitySnifferSearching => "minecraft:entity.sniffer.searching", + EntitySnifferDigging => "minecraft:entity.sniffer.digging", + EntitySnifferDiggingStop => "minecraft:entity.sniffer.digging_stop", + EntitySnifferHappy => "minecraft:entity.sniffer.happy", + BlockSnifferEggPlop => "minecraft:block.sniffer_egg.plop", + BlockSnifferEggCrack => "minecraft:block.sniffer_egg.crack", + BlockSnifferEggHatch => "minecraft:block.sniffer_egg.hatch", + EntitySnowballThrow => "minecraft:entity.snowball.throw", + BlockSnowBreak => "minecraft:block.snow.break", + BlockSnowFall => "minecraft:block.snow.fall", + EntitySnowGolemAmbient => "minecraft:entity.snow_golem.ambient", + EntitySnowGolemDeath => "minecraft:entity.snow_golem.death", + EntitySnowGolemHurt => "minecraft:entity.snow_golem.hurt", + EntitySnowGolemShoot => "minecraft:entity.snow_golem.shoot", + EntitySnowGolemShear => "minecraft:entity.snow_golem.shear", + BlockSnowHit => "minecraft:block.snow.hit", + BlockSnowPlace => "minecraft:block.snow.place", + BlockSnowStep => "minecraft:block.snow.step", + EntitySpiderAmbient => "minecraft:entity.spider.ambient", + EntitySpiderDeath => "minecraft:entity.spider.death", + EntitySpiderHurt => "minecraft:entity.spider.hurt", + EntitySpiderStep => "minecraft:entity.spider.step", + EntitySplashPotionBreak => "minecraft:entity.splash_potion.break", + EntitySplashPotionThrow => "minecraft:entity.splash_potion.throw", + BlockSpongeBreak => "minecraft:block.sponge.break", + BlockSpongeFall => "minecraft:block.sponge.fall", + BlockSpongeHit => "minecraft:block.sponge.hit", + BlockSpongePlace => "minecraft:block.sponge.place", + BlockSpongeStep => "minecraft:block.sponge.step", + BlockSpongeAbsorb => "minecraft:block.sponge.absorb", + ItemSpyglassUse => "minecraft:item.spyglass.use", + ItemSpyglassStopUsing => "minecraft:item.spyglass.stop_using", + EntitySquidAmbient => "minecraft:entity.squid.ambient", + EntitySquidDeath => "minecraft:entity.squid.death", + EntitySquidHurt => "minecraft:entity.squid.hurt", + EntitySquidSquirt => "minecraft:entity.squid.squirt", + BlockStoneBreak => "minecraft:block.stone.break", + BlockStoneButtonClickOff => "minecraft:block.stone_button.click_off", + BlockStoneButtonClickOn => "minecraft:block.stone_button.click_on", + BlockStoneFall => "minecraft:block.stone.fall", + BlockStoneHit => "minecraft:block.stone.hit", + BlockStonePlace => "minecraft:block.stone.place", + BlockStonePressurePlateClickOff => "minecraft:block.stone_pressure_plate.click_off", + BlockStonePressurePlateClickOn => "minecraft:block.stone_pressure_plate.click_on", + BlockStoneStep => "minecraft:block.stone.step", + EntityStrayAmbient => "minecraft:entity.stray.ambient", + EntityStrayDeath => "minecraft:entity.stray.death", + EntityStrayHurt => "minecraft:entity.stray.hurt", + EntityStrayStep => "minecraft:entity.stray.step", + BlockSweetBerryBushBreak => "minecraft:block.sweet_berry_bush.break", + BlockSweetBerryBushPlace => "minecraft:block.sweet_berry_bush.place", + BlockSweetBerryBushPickBerries => "minecraft:block.sweet_berry_bush.pick_berries", + EntityTadpoleDeath => "minecraft:entity.tadpole.death", + EntityTadpoleFlop => "minecraft:entity.tadpole.flop", + EntityTadpoleGrowUp => "minecraft:entity.tadpole.grow_up", + EntityTadpoleHurt => "minecraft:entity.tadpole.hurt", + EnchantThornsHit => "minecraft:enchant.thorns.hit", + EntityTntPrimed => "minecraft:entity.tnt.primed", + ItemTotemUse => "minecraft:item.totem.use", + ItemTridentHit => "minecraft:item.trident.hit", + ItemTridentHitGround => "minecraft:item.trident.hit_ground", + ItemTridentReturn => "minecraft:item.trident.return", + ItemTridentRiptide1 => "minecraft:item.trident.riptide_1", + ItemTridentRiptide2 => "minecraft:item.trident.riptide_2", + ItemTridentRiptide3 => "minecraft:item.trident.riptide_3", + ItemTridentThrow => "minecraft:item.trident.throw", + ItemTridentThunder => "minecraft:item.trident.thunder", + BlockTripwireAttach => "minecraft:block.tripwire.attach", + BlockTripwireClickOff => "minecraft:block.tripwire.click_off", + BlockTripwireClickOn => "minecraft:block.tripwire.click_on", + BlockTripwireDetach => "minecraft:block.tripwire.detach", + EntityTropicalFishAmbient => "minecraft:entity.tropical_fish.ambient", + EntityTropicalFishDeath => "minecraft:entity.tropical_fish.death", + EntityTropicalFishFlop => "minecraft:entity.tropical_fish.flop", + EntityTropicalFishHurt => "minecraft:entity.tropical_fish.hurt", + BlockTuffBreak => "minecraft:block.tuff.break", + BlockTuffStep => "minecraft:block.tuff.step", + BlockTuffPlace => "minecraft:block.tuff.place", + BlockTuffHit => "minecraft:block.tuff.hit", + BlockTuffFall => "minecraft:block.tuff.fall", + BlockTuffBricksBreak => "minecraft:block.tuff_bricks.break", + BlockTuffBricksFall => "minecraft:block.tuff_bricks.fall", + BlockTuffBricksHit => "minecraft:block.tuff_bricks.hit", + BlockTuffBricksPlace => "minecraft:block.tuff_bricks.place", + BlockTuffBricksStep => "minecraft:block.tuff_bricks.step", + BlockPolishedTuffBreak => "minecraft:block.polished_tuff.break", + BlockPolishedTuffFall => "minecraft:block.polished_tuff.fall", + BlockPolishedTuffHit => "minecraft:block.polished_tuff.hit", + BlockPolishedTuffPlace => "minecraft:block.polished_tuff.place", + BlockPolishedTuffStep => "minecraft:block.polished_tuff.step", + EntityTurtleAmbientLand => "minecraft:entity.turtle.ambient_land", + EntityTurtleDeath => "minecraft:entity.turtle.death", + EntityTurtleDeathBaby => "minecraft:entity.turtle.death_baby", + EntityTurtleEggBreak => "minecraft:entity.turtle.egg_break", + EntityTurtleEggCrack => "minecraft:entity.turtle.egg_crack", + EntityTurtleEggHatch => "minecraft:entity.turtle.egg_hatch", + EntityTurtleHurt => "minecraft:entity.turtle.hurt", + EntityTurtleHurtBaby => "minecraft:entity.turtle.hurt_baby", + EntityTurtleLayEgg => "minecraft:entity.turtle.lay_egg", + EntityTurtleShamble => "minecraft:entity.turtle.shamble", + EntityTurtleShambleBaby => "minecraft:entity.turtle.shamble_baby", + EntityTurtleSwim => "minecraft:entity.turtle.swim", + UiButtonClick => "minecraft:ui.button.click", + UiLoomSelectPattern => "minecraft:ui.loom.select_pattern", + UiLoomTakeResult => "minecraft:ui.loom.take_result", + UiCartographyTableTakeResult => "minecraft:ui.cartography_table.take_result", + UiStonecutterTakeResult => "minecraft:ui.stonecutter.take_result", + UiStonecutterSelectRecipe => "minecraft:ui.stonecutter.select_recipe", + UiToastChallengeComplete => "minecraft:ui.toast.challenge_complete", + UiToastIn => "minecraft:ui.toast.in", + UiToastOut => "minecraft:ui.toast.out", + BlockVaultActivate => "minecraft:block.vault.activate", + BlockVaultAmbient => "minecraft:block.vault.ambient", + BlockVaultBreak => "minecraft:block.vault.break", + BlockVaultCloseShutter => "minecraft:block.vault.close_shutter", + BlockVaultDeactivate => "minecraft:block.vault.deactivate", + BlockVaultEjectItem => "minecraft:block.vault.eject_item", + BlockVaultRejectRewardedPlayer => "minecraft:block.vault.reject_rewarded_player", + BlockVaultFall => "minecraft:block.vault.fall", + BlockVaultHit => "minecraft:block.vault.hit", + BlockVaultInsertItem => "minecraft:block.vault.insert_item", + BlockVaultInsertItemFail => "minecraft:block.vault.insert_item_fail", + BlockVaultOpenShutter => "minecraft:block.vault.open_shutter", + BlockVaultPlace => "minecraft:block.vault.place", + BlockVaultStep => "minecraft:block.vault.step", + EntityVexAmbient => "minecraft:entity.vex.ambient", + EntityVexCharge => "minecraft:entity.vex.charge", + EntityVexDeath => "minecraft:entity.vex.death", + EntityVexHurt => "minecraft:entity.vex.hurt", + EntityVillagerAmbient => "minecraft:entity.villager.ambient", + EntityVillagerCelebrate => "minecraft:entity.villager.celebrate", + EntityVillagerDeath => "minecraft:entity.villager.death", + EntityVillagerHurt => "minecraft:entity.villager.hurt", + EntityVillagerNo => "minecraft:entity.villager.no", + EntityVillagerTrade => "minecraft:entity.villager.trade", + EntityVillagerYes => "minecraft:entity.villager.yes", + EntityVillagerWorkArmorer => "minecraft:entity.villager.work_armorer", + EntityVillagerWorkButcher => "minecraft:entity.villager.work_butcher", + EntityVillagerWorkCartographer => "minecraft:entity.villager.work_cartographer", + EntityVillagerWorkCleric => "minecraft:entity.villager.work_cleric", + EntityVillagerWorkFarmer => "minecraft:entity.villager.work_farmer", + EntityVillagerWorkFisherman => "minecraft:entity.villager.work_fisherman", + EntityVillagerWorkFletcher => "minecraft:entity.villager.work_fletcher", + EntityVillagerWorkLeatherworker => "minecraft:entity.villager.work_leatherworker", + EntityVillagerWorkLibrarian => "minecraft:entity.villager.work_librarian", + EntityVillagerWorkMason => "minecraft:entity.villager.work_mason", + EntityVillagerWorkShepherd => "minecraft:entity.villager.work_shepherd", + EntityVillagerWorkToolsmith => "minecraft:entity.villager.work_toolsmith", + EntityVillagerWorkWeaponsmith => "minecraft:entity.villager.work_weaponsmith", + EntityVindicatorAmbient => "minecraft:entity.vindicator.ambient", + EntityVindicatorCelebrate => "minecraft:entity.vindicator.celebrate", + EntityVindicatorDeath => "minecraft:entity.vindicator.death", + EntityVindicatorHurt => "minecraft:entity.vindicator.hurt", + BlockVineBreak => "minecraft:block.vine.break", + BlockVineFall => "minecraft:block.vine.fall", + BlockVineHit => "minecraft:block.vine.hit", + BlockVinePlace => "minecraft:block.vine.place", + BlockVineStep => "minecraft:block.vine.step", + BlockLilyPadPlace => "minecraft:block.lily_pad.place", + EntityWanderingTraderAmbient => "minecraft:entity.wandering_trader.ambient", + EntityWanderingTraderDeath => "minecraft:entity.wandering_trader.death", + EntityWanderingTraderDisappeared => "minecraft:entity.wandering_trader.disappeared", + EntityWanderingTraderDrinkMilk => "minecraft:entity.wandering_trader.drink_milk", + EntityWanderingTraderDrinkPotion => "minecraft:entity.wandering_trader.drink_potion", + EntityWanderingTraderHurt => "minecraft:entity.wandering_trader.hurt", + EntityWanderingTraderNo => "minecraft:entity.wandering_trader.no", + EntityWanderingTraderReappeared => "minecraft:entity.wandering_trader.reappeared", + EntityWanderingTraderTrade => "minecraft:entity.wandering_trader.trade", + EntityWanderingTraderYes => "minecraft:entity.wandering_trader.yes", + EntityWardenAgitated => "minecraft:entity.warden.agitated", + EntityWardenAmbient => "minecraft:entity.warden.ambient", + EntityWardenAngry => "minecraft:entity.warden.angry", + EntityWardenAttackImpact => "minecraft:entity.warden.attack_impact", + EntityWardenDeath => "minecraft:entity.warden.death", + EntityWardenDig => "minecraft:entity.warden.dig", + EntityWardenEmerge => "minecraft:entity.warden.emerge", + EntityWardenHeartbeat => "minecraft:entity.warden.heartbeat", + EntityWardenHurt => "minecraft:entity.warden.hurt", + EntityWardenListening => "minecraft:entity.warden.listening", + EntityWardenListeningAngry => "minecraft:entity.warden.listening_angry", + EntityWardenNearbyClose => "minecraft:entity.warden.nearby_close", + EntityWardenNearbyCloser => "minecraft:entity.warden.nearby_closer", + EntityWardenNearbyClosest => "minecraft:entity.warden.nearby_closest", + EntityWardenRoar => "minecraft:entity.warden.roar", + EntityWardenSniff => "minecraft:entity.warden.sniff", + EntityWardenSonicBoom => "minecraft:entity.warden.sonic_boom", + EntityWardenSonicCharge => "minecraft:entity.warden.sonic_charge", + EntityWardenStep => "minecraft:entity.warden.step", + EntityWardenTendrilClicks => "minecraft:entity.warden.tendril_clicks", + BlockHangingSignWaxedInteractFail => "minecraft:block.hanging_sign.waxed_interact_fail", + BlockSignWaxedInteractFail => "minecraft:block.sign.waxed_interact_fail", + BlockWaterAmbient => "minecraft:block.water.ambient", + WeatherEndFlash => "minecraft:weather.end_flash", + WeatherRain => "minecraft:weather.rain", + WeatherRainAbove => "minecraft:weather.rain.above", + BlockWetGrassBreak => "minecraft:block.wet_grass.break", + BlockWetGrassFall => "minecraft:block.wet_grass.fall", + BlockWetGrassHit => "minecraft:block.wet_grass.hit", + BlockWetGrassPlace => "minecraft:block.wet_grass.place", + BlockWetGrassStep => "minecraft:block.wet_grass.step", + BlockWetSpongeBreak => "minecraft:block.wet_sponge.break", + BlockWetSpongeDries => "minecraft:block.wet_sponge.dries", + BlockWetSpongeFall => "minecraft:block.wet_sponge.fall", + BlockWetSpongeHit => "minecraft:block.wet_sponge.hit", + BlockWetSpongePlace => "minecraft:block.wet_sponge.place", + BlockWetSpongeStep => "minecraft:block.wet_sponge.step", + EntityWindChargeWindBurst => "minecraft:entity.wind_charge.wind_burst", + EntityWindChargeThrow => "minecraft:entity.wind_charge.throw", + EntityWitchAmbient => "minecraft:entity.witch.ambient", + EntityWitchCelebrate => "minecraft:entity.witch.celebrate", + EntityWitchDeath => "minecraft:entity.witch.death", + EntityWitchDrink => "minecraft:entity.witch.drink", + EntityWitchHurt => "minecraft:entity.witch.hurt", + EntityWitchThrow => "minecraft:entity.witch.throw", + EntityWitherAmbient => "minecraft:entity.wither.ambient", + EntityWitherBreakBlock => "minecraft:entity.wither.break_block", + EntityWitherDeath => "minecraft:entity.wither.death", + EntityWitherHurt => "minecraft:entity.wither.hurt", + EntityWitherShoot => "minecraft:entity.wither.shoot", + EntityWitherSkeletonAmbient => "minecraft:entity.wither_skeleton.ambient", + EntityWitherSkeletonDeath => "minecraft:entity.wither_skeleton.death", + EntityWitherSkeletonHurt => "minecraft:entity.wither_skeleton.hurt", + EntityWitherSkeletonStep => "minecraft:entity.wither_skeleton.step", + EntityWitherSpawn => "minecraft:entity.wither.spawn", + ItemWolfArmorBreak => "minecraft:item.wolf_armor.break", + ItemWolfArmorCrack => "minecraft:item.wolf_armor.crack", + ItemWolfArmorDamage => "minecraft:item.wolf_armor.damage", + ItemWolfArmorRepair => "minecraft:item.wolf_armor.repair", + EntityWolfShake => "minecraft:entity.wolf.shake", + EntityWolfStep => "minecraft:entity.wolf.step", + EntityWolfAmbient => "minecraft:entity.wolf.ambient", + EntityWolfDeath => "minecraft:entity.wolf.death", + EntityWolfGrowl => "minecraft:entity.wolf.growl", + EntityWolfHurt => "minecraft:entity.wolf.hurt", + EntityWolfPant => "minecraft:entity.wolf.pant", + EntityWolfWhine => "minecraft:entity.wolf.whine", + EntityWolfPuglinAmbient => "minecraft:entity.wolf_puglin.ambient", + EntityWolfPuglinDeath => "minecraft:entity.wolf_puglin.death", + EntityWolfPuglinGrowl => "minecraft:entity.wolf_puglin.growl", + EntityWolfPuglinHurt => "minecraft:entity.wolf_puglin.hurt", + EntityWolfPuglinPant => "minecraft:entity.wolf_puglin.pant", + EntityWolfPuglinWhine => "minecraft:entity.wolf_puglin.whine", + EntityWolfSadAmbient => "minecraft:entity.wolf_sad.ambient", + EntityWolfSadDeath => "minecraft:entity.wolf_sad.death", + EntityWolfSadGrowl => "minecraft:entity.wolf_sad.growl", + EntityWolfSadHurt => "minecraft:entity.wolf_sad.hurt", + EntityWolfSadPant => "minecraft:entity.wolf_sad.pant", + EntityWolfSadWhine => "minecraft:entity.wolf_sad.whine", + EntityWolfAngryAmbient => "minecraft:entity.wolf_angry.ambient", + EntityWolfAngryDeath => "minecraft:entity.wolf_angry.death", + EntityWolfAngryGrowl => "minecraft:entity.wolf_angry.growl", + EntityWolfAngryHurt => "minecraft:entity.wolf_angry.hurt", + EntityWolfAngryPant => "minecraft:entity.wolf_angry.pant", + EntityWolfAngryWhine => "minecraft:entity.wolf_angry.whine", + EntityWolfGrumpyAmbient => "minecraft:entity.wolf_grumpy.ambient", + EntityWolfGrumpyDeath => "minecraft:entity.wolf_grumpy.death", + EntityWolfGrumpyGrowl => "minecraft:entity.wolf_grumpy.growl", + EntityWolfGrumpyHurt => "minecraft:entity.wolf_grumpy.hurt", + EntityWolfGrumpyPant => "minecraft:entity.wolf_grumpy.pant", + EntityWolfGrumpyWhine => "minecraft:entity.wolf_grumpy.whine", + EntityWolfBigAmbient => "minecraft:entity.wolf_big.ambient", + EntityWolfBigDeath => "minecraft:entity.wolf_big.death", + EntityWolfBigGrowl => "minecraft:entity.wolf_big.growl", + EntityWolfBigHurt => "minecraft:entity.wolf_big.hurt", + EntityWolfBigPant => "minecraft:entity.wolf_big.pant", + EntityWolfBigWhine => "minecraft:entity.wolf_big.whine", + EntityWolfCuteAmbient => "minecraft:entity.wolf_cute.ambient", + EntityWolfCuteDeath => "minecraft:entity.wolf_cute.death", + EntityWolfCuteGrowl => "minecraft:entity.wolf_cute.growl", + EntityWolfCuteHurt => "minecraft:entity.wolf_cute.hurt", + EntityWolfCutePant => "minecraft:entity.wolf_cute.pant", + EntityWolfCuteWhine => "minecraft:entity.wolf_cute.whine", + BlockWoodenDoorClose => "minecraft:block.wooden_door.close", + BlockWoodenDoorOpen => "minecraft:block.wooden_door.open", + BlockWoodenTrapdoorClose => "minecraft:block.wooden_trapdoor.close", + BlockWoodenTrapdoorOpen => "minecraft:block.wooden_trapdoor.open", + BlockWoodenButtonClickOff => "minecraft:block.wooden_button.click_off", + BlockWoodenButtonClickOn => "minecraft:block.wooden_button.click_on", + BlockWoodenPressurePlateClickOff => "minecraft:block.wooden_pressure_plate.click_off", + BlockWoodenPressurePlateClickOn => "minecraft:block.wooden_pressure_plate.click_on", + BlockWoodBreak => "minecraft:block.wood.break", + BlockWoodFall => "minecraft:block.wood.fall", + BlockWoodHit => "minecraft:block.wood.hit", + BlockWoodPlace => "minecraft:block.wood.place", + BlockWoodStep => "minecraft:block.wood.step", + BlockWoolBreak => "minecraft:block.wool.break", + BlockWoolFall => "minecraft:block.wool.fall", + BlockWoolHit => "minecraft:block.wool.hit", + BlockWoolPlace => "minecraft:block.wool.place", + BlockWoolStep => "minecraft:block.wool.step", + EntityZoglinAmbient => "minecraft:entity.zoglin.ambient", + EntityZoglinAngry => "minecraft:entity.zoglin.angry", + EntityZoglinAttack => "minecraft:entity.zoglin.attack", + EntityZoglinDeath => "minecraft:entity.zoglin.death", + EntityZoglinHurt => "minecraft:entity.zoglin.hurt", + EntityZoglinStep => "minecraft:entity.zoglin.step", + EntityZombieAmbient => "minecraft:entity.zombie.ambient", + EntityZombieAttackWoodenDoor => "minecraft:entity.zombie.attack_wooden_door", + EntityZombieAttackIronDoor => "minecraft:entity.zombie.attack_iron_door", + EntityZombieBreakWoodenDoor => "minecraft:entity.zombie.break_wooden_door", + EntityZombieConvertedToDrowned => "minecraft:entity.zombie.converted_to_drowned", + 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", + EntityZombieHorseEat => "minecraft:entity.zombie_horse.eat", + EntityZombieHorseHurt => "minecraft:entity.zombie_horse.hurt", + 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", + EntityZombifiedPiglinDeath => "minecraft:entity.zombified_piglin.death", + EntityZombifiedPiglinHurt => "minecraft:entity.zombified_piglin.hurt", + EntityZombieStep => "minecraft:entity.zombie.step", + EntityZombieVillagerAmbient => "minecraft:entity.zombie_villager.ambient", + EntityZombieVillagerConverted => "minecraft:entity.zombie_villager.converted", + EntityZombieVillagerCure => "minecraft:entity.zombie_villager.cure", + EntityZombieVillagerDeath => "minecraft:entity.zombie_villager.death", + EntityZombieVillagerHurt => "minecraft:entity.zombie_villager.hurt", + EntityZombieVillagerStep => "minecraft:entity.zombie_villager.step", + EventMobEffectBadOmen => "minecraft:event.mob_effect.bad_omen", + 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", +} +} + +registry! { +enum StatKind { + Mined => "minecraft:mined", + Crafted => "minecraft:crafted", + Used => "minecraft:used", + Broken => "minecraft:broken", + PickedUp => "minecraft:picked_up", + Dropped => "minecraft:dropped", + Killed => "minecraft:killed", + KilledBy => "minecraft:killed_by", + Custom => "minecraft:custom", +} +} + +registry! { +enum VillagerProfession { + None => "minecraft:none", + Armorer => "minecraft:armorer", + Butcher => "minecraft:butcher", + Cartographer => "minecraft:cartographer", + Cleric => "minecraft:cleric", + Farmer => "minecraft:farmer", + Fisherman => "minecraft:fisherman", + Fletcher => "minecraft:fletcher", + Leatherworker => "minecraft:leatherworker", + Librarian => "minecraft:librarian", + Mason => "minecraft:mason", + Nitwit => "minecraft:nitwit", + Shepherd => "minecraft:shepherd", + Toolsmith => "minecraft:toolsmith", + Weaponsmith => "minecraft:weaponsmith", +} +} + +registry! { +enum VillagerKind { + Desert => "minecraft:desert", + Jungle => "minecraft:jungle", + Plains => "minecraft:plains", + Savanna => "minecraft:savanna", + Snow => "minecraft:snow", + Swamp => "minecraft:swamp", + Taiga => "minecraft:taiga", +} +} + +registry! { +enum WorldgenBiomeSource { + Fixed => "minecraft:fixed", + MultiNoise => "minecraft:multi_noise", + Checkerboard => "minecraft:checkerboard", + TheEnd => "minecraft:the_end", +} +} + +registry! { +enum WorldgenBlockStateProviderKind { + SimpleStateProvider => "minecraft:simple_state_provider", + WeightedStateProvider => "minecraft:weighted_state_provider", + NoiseThresholdProvider => "minecraft:noise_threshold_provider", + NoiseProvider => "minecraft:noise_provider", + DualNoiseProvider => "minecraft:dual_noise_provider", + RotatedBlockProvider => "minecraft:rotated_block_provider", + RandomizedIntStateProvider => "minecraft:randomized_int_state_provider", +} +} + +registry! { +enum WorldgenCarver { + Cave => "minecraft:cave", + NetherCave => "minecraft:nether_cave", + Canyon => "minecraft:canyon", +} +} + +registry! { +enum WorldgenChunkGenerator { + Noise => "minecraft:noise", + Flat => "minecraft:flat", + Debug => "minecraft:debug", +} +} + +registry! { +enum WorldgenDensityFunctionKind { + BlendAlpha => "minecraft:blend_alpha", + BlendOffset => "minecraft:blend_offset", + Beardifier => "minecraft:beardifier", + OldBlendedNoise => "minecraft:old_blended_noise", + Interpolated => "minecraft:interpolated", + FlatCache => "minecraft:flat_cache", + Cache2d => "minecraft:cache_2d", + CacheOnce => "minecraft:cache_once", + CacheAllInCell => "minecraft:cache_all_in_cell", + Noise => "minecraft:noise", + EndIslands => "minecraft:end_islands", + WeirdScaledSampler => "minecraft:weird_scaled_sampler", + ShiftedNoise => "minecraft:shifted_noise", + RangeChoice => "minecraft:range_choice", + ShiftA => "minecraft:shift_a", + ShiftB => "minecraft:shift_b", + Shift => "minecraft:shift", + BlendDensity => "minecraft:blend_density", + Clamp => "minecraft:clamp", + Abs => "minecraft:abs", + Square => "minecraft:square", + Cube => "minecraft:cube", + HalfNegative => "minecraft:half_negative", + QuarterNegative => "minecraft:quarter_negative", + Invert => "minecraft:invert", + Squeeze => "minecraft:squeeze", + Add => "minecraft:add", + Mul => "minecraft:mul", + Min => "minecraft:min", + Max => "minecraft:max", + Spline => "minecraft:spline", + Constant => "minecraft:constant", + YClampedGradient => "minecraft:y_clamped_gradient", + FindTopSurface => "minecraft:find_top_surface", +} +} + +registry! { +enum WorldgenFeature { + NoOp => "minecraft:no_op", + Tree => "minecraft:tree", + FallenTree => "minecraft:fallen_tree", + Flower => "minecraft:flower", + NoBonemealFlower => "minecraft:no_bonemeal_flower", + RandomPatch => "minecraft:random_patch", + BlockPile => "minecraft:block_pile", + SpringFeature => "minecraft:spring_feature", + ChorusPlant => "minecraft:chorus_plant", + ReplaceSingleBlock => "minecraft:replace_single_block", + VoidStartPlatform => "minecraft:void_start_platform", + DesertWell => "minecraft:desert_well", + Fossil => "minecraft:fossil", + HugeRedMushroom => "minecraft:huge_red_mushroom", + HugeBrownMushroom => "minecraft:huge_brown_mushroom", + IceSpike => "minecraft:ice_spike", + GlowstoneBlob => "minecraft:glowstone_blob", + FreezeTopLayer => "minecraft:freeze_top_layer", + Vines => "minecraft:vines", + BlockColumn => "minecraft:block_column", + VegetationPatch => "minecraft:vegetation_patch", + WaterloggedVegetationPatch => "minecraft:waterlogged_vegetation_patch", + RootSystem => "minecraft:root_system", + MultifaceGrowth => "minecraft:multiface_growth", + UnderwaterMagma => "minecraft:underwater_magma", + MonsterRoom => "minecraft:monster_room", + BlueIce => "minecraft:blue_ice", + Iceberg => "minecraft:iceberg", + ForestRock => "minecraft:forest_rock", + Disk => "minecraft:disk", + Lake => "minecraft:lake", + Ore => "minecraft:ore", + EndPlatform => "minecraft:end_platform", + EndSpike => "minecraft:end_spike", + EndIsland => "minecraft:end_island", + EndGateway => "minecraft:end_gateway", + Seagrass => "minecraft:seagrass", + Kelp => "minecraft:kelp", + CoralTree => "minecraft:coral_tree", + CoralMushroom => "minecraft:coral_mushroom", + CoralClaw => "minecraft:coral_claw", + SeaPickle => "minecraft:sea_pickle", + SimpleBlock => "minecraft:simple_block", + Bamboo => "minecraft:bamboo", + HugeFungus => "minecraft:huge_fungus", + NetherForestVegetation => "minecraft:nether_forest_vegetation", + WeepingVines => "minecraft:weeping_vines", + TwistingVines => "minecraft:twisting_vines", + BasaltColumns => "minecraft:basalt_columns", + DeltaFeature => "minecraft:delta_feature", + NetherrackReplaceBlobs => "minecraft:netherrack_replace_blobs", + FillLayer => "minecraft:fill_layer", + BonusChest => "minecraft:bonus_chest", + BasaltPillar => "minecraft:basalt_pillar", + ScatteredOre => "minecraft:scattered_ore", + RandomSelector => "minecraft:random_selector", + SimpleRandomSelector => "minecraft:simple_random_selector", + RandomBooleanSelector => "minecraft:random_boolean_selector", + Geode => "minecraft:geode", + DripstoneCluster => "minecraft:dripstone_cluster", + LargeDripstone => "minecraft:large_dripstone", + PointedDripstone => "minecraft:pointed_dripstone", + SculkPatch => "minecraft:sculk_patch", +} +} + +registry! { +enum WorldgenFeatureSizeKind { + TwoLayersFeatureSize => "minecraft:two_layers_feature_size", + ThreeLayersFeatureSize => "minecraft:three_layers_feature_size", +} +} + +registry! { +enum WorldgenFoliagePlacerKind { + BlobFoliagePlacer => "minecraft:blob_foliage_placer", + SpruceFoliagePlacer => "minecraft:spruce_foliage_placer", + PineFoliagePlacer => "minecraft:pine_foliage_placer", + AcaciaFoliagePlacer => "minecraft:acacia_foliage_placer", + BushFoliagePlacer => "minecraft:bush_foliage_placer", + FancyFoliagePlacer => "minecraft:fancy_foliage_placer", + JungleFoliagePlacer => "minecraft:jungle_foliage_placer", + MegaPineFoliagePlacer => "minecraft:mega_pine_foliage_placer", + DarkOakFoliagePlacer => "minecraft:dark_oak_foliage_placer", + RandomSpreadFoliagePlacer => "minecraft:random_spread_foliage_placer", + CherryFoliagePlacer => "minecraft:cherry_foliage_placer", +} +} + +registry! { +enum WorldgenMaterialCondition { + Biome => "minecraft:biome", + NoiseThreshold => "minecraft:noise_threshold", + VerticalGradient => "minecraft:vertical_gradient", + YAbove => "minecraft:y_above", + Water => "minecraft:water", + Temperature => "minecraft:temperature", + Steep => "minecraft:steep", + Not => "minecraft:not", + Hole => "minecraft:hole", + AbovePreliminarySurface => "minecraft:above_preliminary_surface", + StoneDepth => "minecraft:stone_depth", +} +} + +registry! { +enum WorldgenMaterialRule { + Bandlands => "minecraft:bandlands", + Block => "minecraft:block", + Sequence => "minecraft:sequence", + Condition => "minecraft:condition", +} +} + +registry! { +enum WorldgenPlacementModifierKind { + BlockPredicateFilter => "minecraft:block_predicate_filter", + RarityFilter => "minecraft:rarity_filter", + SurfaceRelativeThresholdFilter => "minecraft:surface_relative_threshold_filter", + SurfaceWaterDepthFilter => "minecraft:surface_water_depth_filter", + Biome => "minecraft:biome", + Count => "minecraft:count", + NoiseBasedCount => "minecraft:noise_based_count", + NoiseThresholdCount => "minecraft:noise_threshold_count", + CountOnEveryLayer => "minecraft:count_on_every_layer", + EnvironmentScan => "minecraft:environment_scan", + Heightmap => "minecraft:heightmap", + HeightRange => "minecraft:height_range", + InSquare => "minecraft:in_square", + RandomOffset => "minecraft:random_offset", + FixedPlacement => "minecraft:fixed_placement", +} +} + +registry! { +enum WorldgenRootPlacerKind { + MangroveRootPlacer => "minecraft:mangrove_root_placer", +} +} + +registry! { +enum WorldgenStructurePiece { + Mscorridor => "minecraft:mscorridor", + Mscrossing => "minecraft:mscrossing", + Msroom => "minecraft:msroom", + Msstairs => "minecraft:msstairs", + Nebcr => "minecraft:nebcr", + Nebef => "minecraft:nebef", + Nebs => "minecraft:nebs", + Neccs => "minecraft:neccs", + Nectb => "minecraft:nectb", + Nece => "minecraft:nece", + Nescsc => "minecraft:nescsc", + Nesclt => "minecraft:nesclt", + Nesc => "minecraft:nesc", + Nescrt => "minecraft:nescrt", + Necsr => "minecraft:necsr", + Nemt => "minecraft:nemt", + Nerc => "minecraft:nerc", + Nesr => "minecraft:nesr", + Nestart => "minecraft:nestart", + Shcc => "minecraft:shcc", + Shfc => "minecraft:shfc", + Sh5c => "minecraft:sh5c", + Shlt => "minecraft:shlt", + Shli => "minecraft:shli", + Shpr => "minecraft:shpr", + Shph => "minecraft:shph", + Shrt => "minecraft:shrt", + Shrc => "minecraft:shrc", + Shsd => "minecraft:shsd", + Shstart => "minecraft:shstart", + Shs => "minecraft:shs", + Shssd => "minecraft:shssd", + Tejp => "minecraft:tejp", + Orp => "minecraft:orp", + Iglu => "minecraft:iglu", + Rupo => "minecraft:rupo", + Tesh => "minecraft:tesh", + Tedp => "minecraft:tedp", + Omb => "minecraft:omb", + Omcr => "minecraft:omcr", + Omdxr => "minecraft:omdxr", + Omdxyr => "minecraft:omdxyr", + Omdyr => "minecraft:omdyr", + Omdyzr => "minecraft:omdyzr", + Omdzr => "minecraft:omdzr", + Omentry => "minecraft:omentry", + Ompenthouse => "minecraft:ompenthouse", + Omsimple => "minecraft:omsimple", + Omsimplet => "minecraft:omsimplet", + Omwr => "minecraft:omwr", + Ecp => "minecraft:ecp", + Wmp => "minecraft:wmp", + Btp => "minecraft:btp", + Shipwreck => "minecraft:shipwreck", + Nefos => "minecraft:nefos", + Jigsaw => "minecraft:jigsaw", +} +} + +registry! { +enum WorldgenStructurePlacement { + RandomSpread => "minecraft:random_spread", + ConcentricRings => "minecraft:concentric_rings", +} +} + +registry! { +enum WorldgenStructurePoolElement { + SinglePoolElement => "minecraft:single_pool_element", + ListPoolElement => "minecraft:list_pool_element", + FeaturePoolElement => "minecraft:feature_pool_element", + EmptyPoolElement => "minecraft:empty_pool_element", + LegacySinglePoolElement => "minecraft:legacy_single_pool_element", +} +} + +registry! { +enum WorldgenStructureProcessor { + BlockIgnore => "minecraft:block_ignore", + BlockRot => "minecraft:block_rot", + Gravity => "minecraft:gravity", + JigsawReplacement => "minecraft:jigsaw_replacement", + Rule => "minecraft:rule", + Nop => "minecraft:nop", + BlockAge => "minecraft:block_age", + BlackstoneReplace => "minecraft:blackstone_replace", + LavaSubmergedBlock => "minecraft:lava_submerged_block", + ProtectedBlocks => "minecraft:protected_blocks", + Capped => "minecraft:capped", +} +} + +registry! { +enum WorldgenStructureKind { + BuriedTreasure => "minecraft:buried_treasure", + DesertPyramid => "minecraft:desert_pyramid", + EndCity => "minecraft:end_city", + Fortress => "minecraft:fortress", + Igloo => "minecraft:igloo", + Jigsaw => "minecraft:jigsaw", + JungleTemple => "minecraft:jungle_temple", + Mineshaft => "minecraft:mineshaft", + NetherFossil => "minecraft:nether_fossil", + OceanMonument => "minecraft:ocean_monument", + OceanRuin => "minecraft:ocean_ruin", + RuinedPortal => "minecraft:ruined_portal", + Shipwreck => "minecraft:shipwreck", + Stronghold => "minecraft:stronghold", + SwampHut => "minecraft:swamp_hut", + WoodlandMansion => "minecraft:woodland_mansion", +} +} + +registry! { +enum WorldgenTreeDecoratorKind { + TrunkVine => "minecraft:trunk_vine", + LeaveVine => "minecraft:leave_vine", + PaleMoss => "minecraft:pale_moss", + CreakingHeart => "minecraft:creaking_heart", + Cocoa => "minecraft:cocoa", + Beehive => "minecraft:beehive", + AlterGround => "minecraft:alter_ground", + AttachedToLeaves => "minecraft:attached_to_leaves", + PlaceOnGround => "minecraft:place_on_ground", + AttachedToLogs => "minecraft:attached_to_logs", +} +} + +registry! { +enum WorldgenTrunkPlacerKind { + StraightTrunkPlacer => "minecraft:straight_trunk_placer", + ForkingTrunkPlacer => "minecraft:forking_trunk_placer", + GiantTrunkPlacer => "minecraft:giant_trunk_placer", + MegaJungleTrunkPlacer => "minecraft:mega_jungle_trunk_placer", + DarkOakTrunkPlacer => "minecraft:dark_oak_trunk_placer", + FancyTrunkPlacer => "minecraft:fancy_trunk_placer", + BendingTrunkPlacer => "minecraft:bending_trunk_placer", + UpwardsBranchingTrunkPlacer => "minecraft:upwards_branching_trunk_placer", + CherryTrunkPlacer => "minecraft:cherry_trunk_placer", +} +} + +registry! { +enum RuleBlockEntityModifier { + Clear => "minecraft:clear", + Passthrough => "minecraft:passthrough", + AppendStatic => "minecraft:append_static", + AppendLoot => "minecraft:append_loot", +} +} + +registry! { +enum CreativeModeTab { + BuildingBlocks => "minecraft:building_blocks", + ColoredBlocks => "minecraft:colored_blocks", + NaturalBlocks => "minecraft:natural_blocks", + FunctionalBlocks => "minecraft:functional_blocks", + RedstoneBlocks => "minecraft:redstone_blocks", + Hotbar => "minecraft:hotbar", + Search => "minecraft:search", + ToolsAndUtilities => "minecraft:tools_and_utilities", + Combat => "minecraft:combat", + FoodAndDrinks => "minecraft:food_and_drinks", + Ingredients => "minecraft:ingredients", + SpawnEggs => "minecraft:spawn_eggs", + OpBlocks => "minecraft:op_blocks", + Inventory => "minecraft:inventory", +} +} + +registry! { +enum MenuKind { + Generic9x1 => "minecraft:generic_9x1", + Generic9x2 => "minecraft:generic_9x2", + Generic9x3 => "minecraft:generic_9x3", + Generic9x4 => "minecraft:generic_9x4", + Generic9x5 => "minecraft:generic_9x5", + Generic9x6 => "minecraft:generic_9x6", + Generic3x3 => "minecraft:generic_3x3", + Crafter3x3 => "minecraft:crafter_3x3", + Anvil => "minecraft:anvil", + Beacon => "minecraft:beacon", + BlastFurnace => "minecraft:blast_furnace", + BrewingStand => "minecraft:brewing_stand", + Crafting => "minecraft:crafting", + Enchantment => "minecraft:enchantment", + Furnace => "minecraft:furnace", + Grindstone => "minecraft:grindstone", + Hopper => "minecraft:hopper", + Lectern => "minecraft:lectern", + Loom => "minecraft:loom", + Merchant => "minecraft:merchant", + ShulkerBox => "minecraft:shulker_box", + Smithing => "minecraft:smithing", + Smoker => "minecraft:smoker", + CartographyTable => "minecraft:cartography_table", + Stonecutter => "minecraft:stonecutter", +} +} + +registry! { +/// An enum of every type of block in the game. +/// +/// To represent a block *state*, use [`azalea_block::BlockState`] or +/// [`azalea_block::BlockTrait`]. +/// +/// [`azalea_block::BlockState`]: https://docs.rs/azalea-block/latest/azalea_block/struct.BlockState.html +/// [`azalea_block::BlockTrait`]: https://docs.rs/azalea-block/latest/azalea_block/trait.BlockTrait.html +enum BlockKind { + Air => "minecraft:air", + Stone => "minecraft:stone", + Granite => "minecraft:granite", + PolishedGranite => "minecraft:polished_granite", + Diorite => "minecraft:diorite", + PolishedDiorite => "minecraft:polished_diorite", + Andesite => "minecraft:andesite", + PolishedAndesite => "minecraft:polished_andesite", + GrassBlock => "minecraft:grass_block", + Dirt => "minecraft:dirt", + CoarseDirt => "minecraft:coarse_dirt", + Podzol => "minecraft:podzol", + Cobblestone => "minecraft:cobblestone", + OakPlanks => "minecraft:oak_planks", + SprucePlanks => "minecraft:spruce_planks", + BirchPlanks => "minecraft:birch_planks", + JunglePlanks => "minecraft:jungle_planks", + AcaciaPlanks => "minecraft:acacia_planks", + CherryPlanks => "minecraft:cherry_planks", + DarkOakPlanks => "minecraft:dark_oak_planks", + PaleOakWood => "minecraft:pale_oak_wood", + PaleOakPlanks => "minecraft:pale_oak_planks", + MangrovePlanks => "minecraft:mangrove_planks", + BambooPlanks => "minecraft:bamboo_planks", + BambooMosaic => "minecraft:bamboo_mosaic", + OakSapling => "minecraft:oak_sapling", + SpruceSapling => "minecraft:spruce_sapling", + BirchSapling => "minecraft:birch_sapling", + JungleSapling => "minecraft:jungle_sapling", + AcaciaSapling => "minecraft:acacia_sapling", + CherrySapling => "minecraft:cherry_sapling", + DarkOakSapling => "minecraft:dark_oak_sapling", + PaleOakSapling => "minecraft:pale_oak_sapling", + MangrovePropagule => "minecraft:mangrove_propagule", + Bedrock => "minecraft:bedrock", + Water => "minecraft:water", + Lava => "minecraft:lava", + Sand => "minecraft:sand", + SuspiciousSand => "minecraft:suspicious_sand", + RedSand => "minecraft:red_sand", + Gravel => "minecraft:gravel", + SuspiciousGravel => "minecraft:suspicious_gravel", + GoldOre => "minecraft:gold_ore", + DeepslateGoldOre => "minecraft:deepslate_gold_ore", + IronOre => "minecraft:iron_ore", + DeepslateIronOre => "minecraft:deepslate_iron_ore", + CoalOre => "minecraft:coal_ore", + DeepslateCoalOre => "minecraft:deepslate_coal_ore", + NetherGoldOre => "minecraft:nether_gold_ore", + OakLog => "minecraft:oak_log", + SpruceLog => "minecraft:spruce_log", + BirchLog => "minecraft:birch_log", + JungleLog => "minecraft:jungle_log", + AcaciaLog => "minecraft:acacia_log", + CherryLog => "minecraft:cherry_log", + DarkOakLog => "minecraft:dark_oak_log", + PaleOakLog => "minecraft:pale_oak_log", + MangroveLog => "minecraft:mangrove_log", + MangroveRoots => "minecraft:mangrove_roots", + MuddyMangroveRoots => "minecraft:muddy_mangrove_roots", + BambooBlock => "minecraft:bamboo_block", + StrippedSpruceLog => "minecraft:stripped_spruce_log", + StrippedBirchLog => "minecraft:stripped_birch_log", + StrippedJungleLog => "minecraft:stripped_jungle_log", + StrippedAcaciaLog => "minecraft:stripped_acacia_log", + StrippedCherryLog => "minecraft:stripped_cherry_log", + StrippedDarkOakLog => "minecraft:stripped_dark_oak_log", + StrippedPaleOakLog => "minecraft:stripped_pale_oak_log", + StrippedOakLog => "minecraft:stripped_oak_log", + StrippedMangroveLog => "minecraft:stripped_mangrove_log", + StrippedBambooBlock => "minecraft:stripped_bamboo_block", + OakWood => "minecraft:oak_wood", + SpruceWood => "minecraft:spruce_wood", + BirchWood => "minecraft:birch_wood", + JungleWood => "minecraft:jungle_wood", + AcaciaWood => "minecraft:acacia_wood", + CherryWood => "minecraft:cherry_wood", + DarkOakWood => "minecraft:dark_oak_wood", + MangroveWood => "minecraft:mangrove_wood", + StrippedOakWood => "minecraft:stripped_oak_wood", + StrippedSpruceWood => "minecraft:stripped_spruce_wood", + StrippedBirchWood => "minecraft:stripped_birch_wood", + StrippedJungleWood => "minecraft:stripped_jungle_wood", + StrippedAcaciaWood => "minecraft:stripped_acacia_wood", + StrippedCherryWood => "minecraft:stripped_cherry_wood", + StrippedDarkOakWood => "minecraft:stripped_dark_oak_wood", + StrippedPaleOakWood => "minecraft:stripped_pale_oak_wood", + StrippedMangroveWood => "minecraft:stripped_mangrove_wood", + OakLeaves => "minecraft:oak_leaves", + SpruceLeaves => "minecraft:spruce_leaves", + BirchLeaves => "minecraft:birch_leaves", + JungleLeaves => "minecraft:jungle_leaves", + AcaciaLeaves => "minecraft:acacia_leaves", + CherryLeaves => "minecraft:cherry_leaves", + DarkOakLeaves => "minecraft:dark_oak_leaves", + PaleOakLeaves => "minecraft:pale_oak_leaves", + MangroveLeaves => "minecraft:mangrove_leaves", + AzaleaLeaves => "minecraft:azalea_leaves", + FloweringAzaleaLeaves => "minecraft:flowering_azalea_leaves", + Sponge => "minecraft:sponge", + WetSponge => "minecraft:wet_sponge", + Glass => "minecraft:glass", + LapisOre => "minecraft:lapis_ore", + DeepslateLapisOre => "minecraft:deepslate_lapis_ore", + LapisBlock => "minecraft:lapis_block", + Dispenser => "minecraft:dispenser", + Sandstone => "minecraft:sandstone", + ChiseledSandstone => "minecraft:chiseled_sandstone", + CutSandstone => "minecraft:cut_sandstone", + NoteBlock => "minecraft:note_block", + WhiteBed => "minecraft:white_bed", + OrangeBed => "minecraft:orange_bed", + MagentaBed => "minecraft:magenta_bed", + LightBlueBed => "minecraft:light_blue_bed", + YellowBed => "minecraft:yellow_bed", + LimeBed => "minecraft:lime_bed", + PinkBed => "minecraft:pink_bed", + GrayBed => "minecraft:gray_bed", + LightGrayBed => "minecraft:light_gray_bed", + CyanBed => "minecraft:cyan_bed", + PurpleBed => "minecraft:purple_bed", + BlueBed => "minecraft:blue_bed", + BrownBed => "minecraft:brown_bed", + GreenBed => "minecraft:green_bed", + RedBed => "minecraft:red_bed", + BlackBed => "minecraft:black_bed", + PoweredRail => "minecraft:powered_rail", + DetectorRail => "minecraft:detector_rail", + StickyPiston => "minecraft:sticky_piston", + Cobweb => "minecraft:cobweb", + ShortGrass => "minecraft:short_grass", + Fern => "minecraft:fern", + DeadBush => "minecraft:dead_bush", + Bush => "minecraft:bush", + ShortDryGrass => "minecraft:short_dry_grass", + TallDryGrass => "minecraft:tall_dry_grass", + Seagrass => "minecraft:seagrass", + TallSeagrass => "minecraft:tall_seagrass", + Piston => "minecraft:piston", + PistonHead => "minecraft:piston_head", + WhiteWool => "minecraft:white_wool", + OrangeWool => "minecraft:orange_wool", + MagentaWool => "minecraft:magenta_wool", + LightBlueWool => "minecraft:light_blue_wool", + YellowWool => "minecraft:yellow_wool", + LimeWool => "minecraft:lime_wool", + PinkWool => "minecraft:pink_wool", + GrayWool => "minecraft:gray_wool", + LightGrayWool => "minecraft:light_gray_wool", + CyanWool => "minecraft:cyan_wool", + PurpleWool => "minecraft:purple_wool", + BlueWool => "minecraft:blue_wool", + BrownWool => "minecraft:brown_wool", + GreenWool => "minecraft:green_wool", + RedWool => "minecraft:red_wool", + BlackWool => "minecraft:black_wool", + MovingPiston => "minecraft:moving_piston", + Dandelion => "minecraft:dandelion", + Torchflower => "minecraft:torchflower", + Poppy => "minecraft:poppy", + BlueOrchid => "minecraft:blue_orchid", + Allium => "minecraft:allium", + AzureBluet => "minecraft:azure_bluet", + RedTulip => "minecraft:red_tulip", + OrangeTulip => "minecraft:orange_tulip", + WhiteTulip => "minecraft:white_tulip", + PinkTulip => "minecraft:pink_tulip", + OxeyeDaisy => "minecraft:oxeye_daisy", + Cornflower => "minecraft:cornflower", + WitherRose => "minecraft:wither_rose", + LilyOfTheValley => "minecraft:lily_of_the_valley", + BrownMushroom => "minecraft:brown_mushroom", + RedMushroom => "minecraft:red_mushroom", + GoldBlock => "minecraft:gold_block", + IronBlock => "minecraft:iron_block", + Bricks => "minecraft:bricks", + Tnt => "minecraft:tnt", + Bookshelf => "minecraft:bookshelf", + ChiseledBookshelf => "minecraft:chiseled_bookshelf", + AcaciaShelf => "minecraft:acacia_shelf", + BambooShelf => "minecraft:bamboo_shelf", + BirchShelf => "minecraft:birch_shelf", + CherryShelf => "minecraft:cherry_shelf", + CrimsonShelf => "minecraft:crimson_shelf", + DarkOakShelf => "minecraft:dark_oak_shelf", + JungleShelf => "minecraft:jungle_shelf", + MangroveShelf => "minecraft:mangrove_shelf", + OakShelf => "minecraft:oak_shelf", + PaleOakShelf => "minecraft:pale_oak_shelf", + SpruceShelf => "minecraft:spruce_shelf", + WarpedShelf => "minecraft:warped_shelf", + MossyCobblestone => "minecraft:mossy_cobblestone", + Obsidian => "minecraft:obsidian", + Torch => "minecraft:torch", + WallTorch => "minecraft:wall_torch", + Fire => "minecraft:fire", + SoulFire => "minecraft:soul_fire", + Spawner => "minecraft:spawner", + CreakingHeart => "minecraft:creaking_heart", + OakStairs => "minecraft:oak_stairs", + Chest => "minecraft:chest", + RedstoneWire => "minecraft:redstone_wire", + DiamondOre => "minecraft:diamond_ore", + DeepslateDiamondOre => "minecraft:deepslate_diamond_ore", + DiamondBlock => "minecraft:diamond_block", + CraftingTable => "minecraft:crafting_table", + Wheat => "minecraft:wheat", + Farmland => "minecraft:farmland", + Furnace => "minecraft:furnace", + OakSign => "minecraft:oak_sign", + SpruceSign => "minecraft:spruce_sign", + BirchSign => "minecraft:birch_sign", + AcaciaSign => "minecraft:acacia_sign", + CherrySign => "minecraft:cherry_sign", + JungleSign => "minecraft:jungle_sign", + DarkOakSign => "minecraft:dark_oak_sign", + PaleOakSign => "minecraft:pale_oak_sign", + MangroveSign => "minecraft:mangrove_sign", + BambooSign => "minecraft:bamboo_sign", + OakDoor => "minecraft:oak_door", + Ladder => "minecraft:ladder", + Rail => "minecraft:rail", + CobblestoneStairs => "minecraft:cobblestone_stairs", + OakWallSign => "minecraft:oak_wall_sign", + SpruceWallSign => "minecraft:spruce_wall_sign", + BirchWallSign => "minecraft:birch_wall_sign", + AcaciaWallSign => "minecraft:acacia_wall_sign", + CherryWallSign => "minecraft:cherry_wall_sign", + JungleWallSign => "minecraft:jungle_wall_sign", + DarkOakWallSign => "minecraft:dark_oak_wall_sign", + PaleOakWallSign => "minecraft:pale_oak_wall_sign", + MangroveWallSign => "minecraft:mangrove_wall_sign", + BambooWallSign => "minecraft:bamboo_wall_sign", + OakHangingSign => "minecraft:oak_hanging_sign", + SpruceHangingSign => "minecraft:spruce_hanging_sign", + BirchHangingSign => "minecraft:birch_hanging_sign", + AcaciaHangingSign => "minecraft:acacia_hanging_sign", + CherryHangingSign => "minecraft:cherry_hanging_sign", + JungleHangingSign => "minecraft:jungle_hanging_sign", + DarkOakHangingSign => "minecraft:dark_oak_hanging_sign", + PaleOakHangingSign => "minecraft:pale_oak_hanging_sign", + CrimsonHangingSign => "minecraft:crimson_hanging_sign", + WarpedHangingSign => "minecraft:warped_hanging_sign", + MangroveHangingSign => "minecraft:mangrove_hanging_sign", + BambooHangingSign => "minecraft:bamboo_hanging_sign", + OakWallHangingSign => "minecraft:oak_wall_hanging_sign", + SpruceWallHangingSign => "minecraft:spruce_wall_hanging_sign", + BirchWallHangingSign => "minecraft:birch_wall_hanging_sign", + AcaciaWallHangingSign => "minecraft:acacia_wall_hanging_sign", + CherryWallHangingSign => "minecraft:cherry_wall_hanging_sign", + JungleWallHangingSign => "minecraft:jungle_wall_hanging_sign", + DarkOakWallHangingSign => "minecraft:dark_oak_wall_hanging_sign", + PaleOakWallHangingSign => "minecraft:pale_oak_wall_hanging_sign", + MangroveWallHangingSign => "minecraft:mangrove_wall_hanging_sign", + CrimsonWallHangingSign => "minecraft:crimson_wall_hanging_sign", + WarpedWallHangingSign => "minecraft:warped_wall_hanging_sign", + BambooWallHangingSign => "minecraft:bamboo_wall_hanging_sign", + Lever => "minecraft:lever", + StonePressurePlate => "minecraft:stone_pressure_plate", + IronDoor => "minecraft:iron_door", + OakPressurePlate => "minecraft:oak_pressure_plate", + SprucePressurePlate => "minecraft:spruce_pressure_plate", + BirchPressurePlate => "minecraft:birch_pressure_plate", + JunglePressurePlate => "minecraft:jungle_pressure_plate", + AcaciaPressurePlate => "minecraft:acacia_pressure_plate", + CherryPressurePlate => "minecraft:cherry_pressure_plate", + DarkOakPressurePlate => "minecraft:dark_oak_pressure_plate", + PaleOakPressurePlate => "minecraft:pale_oak_pressure_plate", + MangrovePressurePlate => "minecraft:mangrove_pressure_plate", + BambooPressurePlate => "minecraft:bamboo_pressure_plate", + RedstoneOre => "minecraft:redstone_ore", + DeepslateRedstoneOre => "minecraft:deepslate_redstone_ore", + RedstoneTorch => "minecraft:redstone_torch", + RedstoneWallTorch => "minecraft:redstone_wall_torch", + StoneButton => "minecraft:stone_button", + Snow => "minecraft:snow", + Ice => "minecraft:ice", + SnowBlock => "minecraft:snow_block", + Cactus => "minecraft:cactus", + CactusFlower => "minecraft:cactus_flower", + Clay => "minecraft:clay", + SugarCane => "minecraft:sugar_cane", + Jukebox => "minecraft:jukebox", + OakFence => "minecraft:oak_fence", + Netherrack => "minecraft:netherrack", + SoulSand => "minecraft:soul_sand", + SoulSoil => "minecraft:soul_soil", + Basalt => "minecraft:basalt", + PolishedBasalt => "minecraft:polished_basalt", + SoulTorch => "minecraft:soul_torch", + SoulWallTorch => "minecraft:soul_wall_torch", + CopperTorch => "minecraft:copper_torch", + CopperWallTorch => "minecraft:copper_wall_torch", + Glowstone => "minecraft:glowstone", + NetherPortal => "minecraft:nether_portal", + CarvedPumpkin => "minecraft:carved_pumpkin", + JackOLantern => "minecraft:jack_o_lantern", + Cake => "minecraft:cake", + Repeater => "minecraft:repeater", + WhiteStainedGlass => "minecraft:white_stained_glass", + OrangeStainedGlass => "minecraft:orange_stained_glass", + MagentaStainedGlass => "minecraft:magenta_stained_glass", + LightBlueStainedGlass => "minecraft:light_blue_stained_glass", + YellowStainedGlass => "minecraft:yellow_stained_glass", + LimeStainedGlass => "minecraft:lime_stained_glass", + PinkStainedGlass => "minecraft:pink_stained_glass", + GrayStainedGlass => "minecraft:gray_stained_glass", + LightGrayStainedGlass => "minecraft:light_gray_stained_glass", + CyanStainedGlass => "minecraft:cyan_stained_glass", + PurpleStainedGlass => "minecraft:purple_stained_glass", + BlueStainedGlass => "minecraft:blue_stained_glass", + BrownStainedGlass => "minecraft:brown_stained_glass", + GreenStainedGlass => "minecraft:green_stained_glass", + RedStainedGlass => "minecraft:red_stained_glass", + BlackStainedGlass => "minecraft:black_stained_glass", + OakTrapdoor => "minecraft:oak_trapdoor", + SpruceTrapdoor => "minecraft:spruce_trapdoor", + BirchTrapdoor => "minecraft:birch_trapdoor", + JungleTrapdoor => "minecraft:jungle_trapdoor", + AcaciaTrapdoor => "minecraft:acacia_trapdoor", + CherryTrapdoor => "minecraft:cherry_trapdoor", + DarkOakTrapdoor => "minecraft:dark_oak_trapdoor", + PaleOakTrapdoor => "minecraft:pale_oak_trapdoor", + MangroveTrapdoor => "minecraft:mangrove_trapdoor", + BambooTrapdoor => "minecraft:bamboo_trapdoor", + StoneBricks => "minecraft:stone_bricks", + MossyStoneBricks => "minecraft:mossy_stone_bricks", + CrackedStoneBricks => "minecraft:cracked_stone_bricks", + ChiseledStoneBricks => "minecraft:chiseled_stone_bricks", + PackedMud => "minecraft:packed_mud", + MudBricks => "minecraft:mud_bricks", + InfestedStone => "minecraft:infested_stone", + InfestedCobblestone => "minecraft:infested_cobblestone", + InfestedStoneBricks => "minecraft:infested_stone_bricks", + InfestedMossyStoneBricks => "minecraft:infested_mossy_stone_bricks", + InfestedCrackedStoneBricks => "minecraft:infested_cracked_stone_bricks", + InfestedChiseledStoneBricks => "minecraft:infested_chiseled_stone_bricks", + BrownMushroomBlock => "minecraft:brown_mushroom_block", + RedMushroomBlock => "minecraft:red_mushroom_block", + MushroomStem => "minecraft:mushroom_stem", + IronBars => "minecraft:iron_bars", + CopperBars => "minecraft:copper_bars", + ExposedCopperBars => "minecraft:exposed_copper_bars", + WeatheredCopperBars => "minecraft:weathered_copper_bars", + OxidizedCopperBars => "minecraft:oxidized_copper_bars", + WaxedCopperBars => "minecraft:waxed_copper_bars", + WaxedExposedCopperBars => "minecraft:waxed_exposed_copper_bars", + WaxedWeatheredCopperBars => "minecraft:waxed_weathered_copper_bars", + WaxedOxidizedCopperBars => "minecraft:waxed_oxidized_copper_bars", + IronChain => "minecraft:iron_chain", + CopperChain => "minecraft:copper_chain", + ExposedCopperChain => "minecraft:exposed_copper_chain", + WeatheredCopperChain => "minecraft:weathered_copper_chain", + OxidizedCopperChain => "minecraft:oxidized_copper_chain", + WaxedCopperChain => "minecraft:waxed_copper_chain", + WaxedExposedCopperChain => "minecraft:waxed_exposed_copper_chain", + WaxedWeatheredCopperChain => "minecraft:waxed_weathered_copper_chain", + WaxedOxidizedCopperChain => "minecraft:waxed_oxidized_copper_chain", + GlassPane => "minecraft:glass_pane", + Pumpkin => "minecraft:pumpkin", + Melon => "minecraft:melon", + AttachedPumpkinStem => "minecraft:attached_pumpkin_stem", + AttachedMelonStem => "minecraft:attached_melon_stem", + PumpkinStem => "minecraft:pumpkin_stem", + MelonStem => "minecraft:melon_stem", + Vine => "minecraft:vine", + GlowLichen => "minecraft:glow_lichen", + ResinClump => "minecraft:resin_clump", + OakFenceGate => "minecraft:oak_fence_gate", + BrickStairs => "minecraft:brick_stairs", + StoneBrickStairs => "minecraft:stone_brick_stairs", + MudBrickStairs => "minecraft:mud_brick_stairs", + Mycelium => "minecraft:mycelium", + LilyPad => "minecraft:lily_pad", + ResinBlock => "minecraft:resin_block", + ResinBricks => "minecraft:resin_bricks", + ResinBrickStairs => "minecraft:resin_brick_stairs", + ResinBrickSlab => "minecraft:resin_brick_slab", + ResinBrickWall => "minecraft:resin_brick_wall", + ChiseledResinBricks => "minecraft:chiseled_resin_bricks", + NetherBricks => "minecraft:nether_bricks", + NetherBrickFence => "minecraft:nether_brick_fence", + NetherBrickStairs => "minecraft:nether_brick_stairs", + NetherWart => "minecraft:nether_wart", + EnchantingTable => "minecraft:enchanting_table", + BrewingStand => "minecraft:brewing_stand", + Cauldron => "minecraft:cauldron", + WaterCauldron => "minecraft:water_cauldron", + LavaCauldron => "minecraft:lava_cauldron", + PowderSnowCauldron => "minecraft:powder_snow_cauldron", + EndPortal => "minecraft:end_portal", + EndPortalFrame => "minecraft:end_portal_frame", + EndStone => "minecraft:end_stone", + DragonEgg => "minecraft:dragon_egg", + RedstoneLamp => "minecraft:redstone_lamp", + Cocoa => "minecraft:cocoa", + SandstoneStairs => "minecraft:sandstone_stairs", + EmeraldOre => "minecraft:emerald_ore", + DeepslateEmeraldOre => "minecraft:deepslate_emerald_ore", + EnderChest => "minecraft:ender_chest", + TripwireHook => "minecraft:tripwire_hook", + Tripwire => "minecraft:tripwire", + EmeraldBlock => "minecraft:emerald_block", + SpruceStairs => "minecraft:spruce_stairs", + BirchStairs => "minecraft:birch_stairs", + JungleStairs => "minecraft:jungle_stairs", + CommandBlock => "minecraft:command_block", + Beacon => "minecraft:beacon", + CobblestoneWall => "minecraft:cobblestone_wall", + MossyCobblestoneWall => "minecraft:mossy_cobblestone_wall", + FlowerPot => "minecraft:flower_pot", + PottedTorchflower => "minecraft:potted_torchflower", + PottedOakSapling => "minecraft:potted_oak_sapling", + PottedSpruceSapling => "minecraft:potted_spruce_sapling", + PottedBirchSapling => "minecraft:potted_birch_sapling", + PottedJungleSapling => "minecraft:potted_jungle_sapling", + PottedAcaciaSapling => "minecraft:potted_acacia_sapling", + PottedCherrySapling => "minecraft:potted_cherry_sapling", + PottedDarkOakSapling => "minecraft:potted_dark_oak_sapling", + PottedPaleOakSapling => "minecraft:potted_pale_oak_sapling", + PottedMangrovePropagule => "minecraft:potted_mangrove_propagule", + PottedFern => "minecraft:potted_fern", + PottedDandelion => "minecraft:potted_dandelion", + PottedPoppy => "minecraft:potted_poppy", + PottedBlueOrchid => "minecraft:potted_blue_orchid", + PottedAllium => "minecraft:potted_allium", + PottedAzureBluet => "minecraft:potted_azure_bluet", + PottedRedTulip => "minecraft:potted_red_tulip", + PottedOrangeTulip => "minecraft:potted_orange_tulip", + PottedWhiteTulip => "minecraft:potted_white_tulip", + PottedPinkTulip => "minecraft:potted_pink_tulip", + PottedOxeyeDaisy => "minecraft:potted_oxeye_daisy", + PottedCornflower => "minecraft:potted_cornflower", + PottedLilyOfTheValley => "minecraft:potted_lily_of_the_valley", + PottedWitherRose => "minecraft:potted_wither_rose", + PottedRedMushroom => "minecraft:potted_red_mushroom", + PottedBrownMushroom => "minecraft:potted_brown_mushroom", + PottedDeadBush => "minecraft:potted_dead_bush", + PottedCactus => "minecraft:potted_cactus", + Carrots => "minecraft:carrots", + Potatoes => "minecraft:potatoes", + OakButton => "minecraft:oak_button", + SpruceButton => "minecraft:spruce_button", + BirchButton => "minecraft:birch_button", + JungleButton => "minecraft:jungle_button", + AcaciaButton => "minecraft:acacia_button", + CherryButton => "minecraft:cherry_button", + DarkOakButton => "minecraft:dark_oak_button", + PaleOakButton => "minecraft:pale_oak_button", + MangroveButton => "minecraft:mangrove_button", + BambooButton => "minecraft:bamboo_button", + SkeletonSkull => "minecraft:skeleton_skull", + SkeletonWallSkull => "minecraft:skeleton_wall_skull", + WitherSkeletonSkull => "minecraft:wither_skeleton_skull", + WitherSkeletonWallSkull => "minecraft:wither_skeleton_wall_skull", + ZombieHead => "minecraft:zombie_head", + ZombieWallHead => "minecraft:zombie_wall_head", + PlayerHead => "minecraft:player_head", + PlayerWallHead => "minecraft:player_wall_head", + CreeperHead => "minecraft:creeper_head", + CreeperWallHead => "minecraft:creeper_wall_head", + DragonHead => "minecraft:dragon_head", + DragonWallHead => "minecraft:dragon_wall_head", + PiglinHead => "minecraft:piglin_head", + PiglinWallHead => "minecraft:piglin_wall_head", + Anvil => "minecraft:anvil", + ChippedAnvil => "minecraft:chipped_anvil", + DamagedAnvil => "minecraft:damaged_anvil", + TrappedChest => "minecraft:trapped_chest", + LightWeightedPressurePlate => "minecraft:light_weighted_pressure_plate", + HeavyWeightedPressurePlate => "minecraft:heavy_weighted_pressure_plate", + Comparator => "minecraft:comparator", + DaylightDetector => "minecraft:daylight_detector", + RedstoneBlock => "minecraft:redstone_block", + NetherQuartzOre => "minecraft:nether_quartz_ore", + Hopper => "minecraft:hopper", + QuartzBlock => "minecraft:quartz_block", + ChiseledQuartzBlock => "minecraft:chiseled_quartz_block", + QuartzPillar => "minecraft:quartz_pillar", + QuartzStairs => "minecraft:quartz_stairs", + ActivatorRail => "minecraft:activator_rail", + Dropper => "minecraft:dropper", + WhiteTerracotta => "minecraft:white_terracotta", + OrangeTerracotta => "minecraft:orange_terracotta", + MagentaTerracotta => "minecraft:magenta_terracotta", + LightBlueTerracotta => "minecraft:light_blue_terracotta", + YellowTerracotta => "minecraft:yellow_terracotta", + LimeTerracotta => "minecraft:lime_terracotta", + PinkTerracotta => "minecraft:pink_terracotta", + GrayTerracotta => "minecraft:gray_terracotta", + LightGrayTerracotta => "minecraft:light_gray_terracotta", + CyanTerracotta => "minecraft:cyan_terracotta", + PurpleTerracotta => "minecraft:purple_terracotta", + BlueTerracotta => "minecraft:blue_terracotta", + BrownTerracotta => "minecraft:brown_terracotta", + GreenTerracotta => "minecraft:green_terracotta", + RedTerracotta => "minecraft:red_terracotta", + BlackTerracotta => "minecraft:black_terracotta", + WhiteStainedGlassPane => "minecraft:white_stained_glass_pane", + OrangeStainedGlassPane => "minecraft:orange_stained_glass_pane", + MagentaStainedGlassPane => "minecraft:magenta_stained_glass_pane", + LightBlueStainedGlassPane => "minecraft:light_blue_stained_glass_pane", + YellowStainedGlassPane => "minecraft:yellow_stained_glass_pane", + LimeStainedGlassPane => "minecraft:lime_stained_glass_pane", + PinkStainedGlassPane => "minecraft:pink_stained_glass_pane", + GrayStainedGlassPane => "minecraft:gray_stained_glass_pane", + LightGrayStainedGlassPane => "minecraft:light_gray_stained_glass_pane", + CyanStainedGlassPane => "minecraft:cyan_stained_glass_pane", + PurpleStainedGlassPane => "minecraft:purple_stained_glass_pane", + BlueStainedGlassPane => "minecraft:blue_stained_glass_pane", + BrownStainedGlassPane => "minecraft:brown_stained_glass_pane", + GreenStainedGlassPane => "minecraft:green_stained_glass_pane", + RedStainedGlassPane => "minecraft:red_stained_glass_pane", + BlackStainedGlassPane => "minecraft:black_stained_glass_pane", + AcaciaStairs => "minecraft:acacia_stairs", + CherryStairs => "minecraft:cherry_stairs", + DarkOakStairs => "minecraft:dark_oak_stairs", + PaleOakStairs => "minecraft:pale_oak_stairs", + MangroveStairs => "minecraft:mangrove_stairs", + BambooStairs => "minecraft:bamboo_stairs", + BambooMosaicStairs => "minecraft:bamboo_mosaic_stairs", + SlimeBlock => "minecraft:slime_block", + Barrier => "minecraft:barrier", + Light => "minecraft:light", + IronTrapdoor => "minecraft:iron_trapdoor", + Prismarine => "minecraft:prismarine", + PrismarineBricks => "minecraft:prismarine_bricks", + DarkPrismarine => "minecraft:dark_prismarine", + PrismarineStairs => "minecraft:prismarine_stairs", + PrismarineBrickStairs => "minecraft:prismarine_brick_stairs", + DarkPrismarineStairs => "minecraft:dark_prismarine_stairs", + PrismarineSlab => "minecraft:prismarine_slab", + PrismarineBrickSlab => "minecraft:prismarine_brick_slab", + DarkPrismarineSlab => "minecraft:dark_prismarine_slab", + SeaLantern => "minecraft:sea_lantern", + HayBlock => "minecraft:hay_block", + WhiteCarpet => "minecraft:white_carpet", + OrangeCarpet => "minecraft:orange_carpet", + MagentaCarpet => "minecraft:magenta_carpet", + LightBlueCarpet => "minecraft:light_blue_carpet", + YellowCarpet => "minecraft:yellow_carpet", + LimeCarpet => "minecraft:lime_carpet", + PinkCarpet => "minecraft:pink_carpet", + GrayCarpet => "minecraft:gray_carpet", + LightGrayCarpet => "minecraft:light_gray_carpet", + CyanCarpet => "minecraft:cyan_carpet", + PurpleCarpet => "minecraft:purple_carpet", + BlueCarpet => "minecraft:blue_carpet", + BrownCarpet => "minecraft:brown_carpet", + GreenCarpet => "minecraft:green_carpet", + RedCarpet => "minecraft:red_carpet", + BlackCarpet => "minecraft:black_carpet", + Terracotta => "minecraft:terracotta", + CoalBlock => "minecraft:coal_block", + PackedIce => "minecraft:packed_ice", + Sunflower => "minecraft:sunflower", + Lilac => "minecraft:lilac", + RoseBush => "minecraft:rose_bush", + Peony => "minecraft:peony", + TallGrass => "minecraft:tall_grass", + LargeFern => "minecraft:large_fern", + WhiteBanner => "minecraft:white_banner", + OrangeBanner => "minecraft:orange_banner", + MagentaBanner => "minecraft:magenta_banner", + LightBlueBanner => "minecraft:light_blue_banner", + YellowBanner => "minecraft:yellow_banner", + LimeBanner => "minecraft:lime_banner", + PinkBanner => "minecraft:pink_banner", + GrayBanner => "minecraft:gray_banner", + LightGrayBanner => "minecraft:light_gray_banner", + CyanBanner => "minecraft:cyan_banner", + PurpleBanner => "minecraft:purple_banner", + BlueBanner => "minecraft:blue_banner", + BrownBanner => "minecraft:brown_banner", + GreenBanner => "minecraft:green_banner", + RedBanner => "minecraft:red_banner", + BlackBanner => "minecraft:black_banner", + WhiteWallBanner => "minecraft:white_wall_banner", + OrangeWallBanner => "minecraft:orange_wall_banner", + MagentaWallBanner => "minecraft:magenta_wall_banner", + LightBlueWallBanner => "minecraft:light_blue_wall_banner", + YellowWallBanner => "minecraft:yellow_wall_banner", + LimeWallBanner => "minecraft:lime_wall_banner", + PinkWallBanner => "minecraft:pink_wall_banner", + GrayWallBanner => "minecraft:gray_wall_banner", + LightGrayWallBanner => "minecraft:light_gray_wall_banner", + CyanWallBanner => "minecraft:cyan_wall_banner", + PurpleWallBanner => "minecraft:purple_wall_banner", + BlueWallBanner => "minecraft:blue_wall_banner", + BrownWallBanner => "minecraft:brown_wall_banner", + GreenWallBanner => "minecraft:green_wall_banner", + RedWallBanner => "minecraft:red_wall_banner", + BlackWallBanner => "minecraft:black_wall_banner", + RedSandstone => "minecraft:red_sandstone", + ChiseledRedSandstone => "minecraft:chiseled_red_sandstone", + CutRedSandstone => "minecraft:cut_red_sandstone", + RedSandstoneStairs => "minecraft:red_sandstone_stairs", + OakSlab => "minecraft:oak_slab", + SpruceSlab => "minecraft:spruce_slab", + BirchSlab => "minecraft:birch_slab", + JungleSlab => "minecraft:jungle_slab", + AcaciaSlab => "minecraft:acacia_slab", + CherrySlab => "minecraft:cherry_slab", + DarkOakSlab => "minecraft:dark_oak_slab", + PaleOakSlab => "minecraft:pale_oak_slab", + MangroveSlab => "minecraft:mangrove_slab", + BambooSlab => "minecraft:bamboo_slab", + BambooMosaicSlab => "minecraft:bamboo_mosaic_slab", + StoneSlab => "minecraft:stone_slab", + SmoothStoneSlab => "minecraft:smooth_stone_slab", + SandstoneSlab => "minecraft:sandstone_slab", + CutSandstoneSlab => "minecraft:cut_sandstone_slab", + PetrifiedOakSlab => "minecraft:petrified_oak_slab", + CobblestoneSlab => "minecraft:cobblestone_slab", + BrickSlab => "minecraft:brick_slab", + StoneBrickSlab => "minecraft:stone_brick_slab", + MudBrickSlab => "minecraft:mud_brick_slab", + NetherBrickSlab => "minecraft:nether_brick_slab", + QuartzSlab => "minecraft:quartz_slab", + RedSandstoneSlab => "minecraft:red_sandstone_slab", + CutRedSandstoneSlab => "minecraft:cut_red_sandstone_slab", + PurpurSlab => "minecraft:purpur_slab", + SmoothStone => "minecraft:smooth_stone", + SmoothSandstone => "minecraft:smooth_sandstone", + SmoothQuartz => "minecraft:smooth_quartz", + SmoothRedSandstone => "minecraft:smooth_red_sandstone", + SpruceFenceGate => "minecraft:spruce_fence_gate", + BirchFenceGate => "minecraft:birch_fence_gate", + JungleFenceGate => "minecraft:jungle_fence_gate", + AcaciaFenceGate => "minecraft:acacia_fence_gate", + CherryFenceGate => "minecraft:cherry_fence_gate", + DarkOakFenceGate => "minecraft:dark_oak_fence_gate", + PaleOakFenceGate => "minecraft:pale_oak_fence_gate", + MangroveFenceGate => "minecraft:mangrove_fence_gate", + BambooFenceGate => "minecraft:bamboo_fence_gate", + SpruceFence => "minecraft:spruce_fence", + BirchFence => "minecraft:birch_fence", + JungleFence => "minecraft:jungle_fence", + AcaciaFence => "minecraft:acacia_fence", + CherryFence => "minecraft:cherry_fence", + DarkOakFence => "minecraft:dark_oak_fence", + PaleOakFence => "minecraft:pale_oak_fence", + MangroveFence => "minecraft:mangrove_fence", + BambooFence => "minecraft:bamboo_fence", + SpruceDoor => "minecraft:spruce_door", + BirchDoor => "minecraft:birch_door", + JungleDoor => "minecraft:jungle_door", + AcaciaDoor => "minecraft:acacia_door", + CherryDoor => "minecraft:cherry_door", + DarkOakDoor => "minecraft:dark_oak_door", + PaleOakDoor => "minecraft:pale_oak_door", + MangroveDoor => "minecraft:mangrove_door", + BambooDoor => "minecraft:bamboo_door", + EndRod => "minecraft:end_rod", + ChorusPlant => "minecraft:chorus_plant", + ChorusFlower => "minecraft:chorus_flower", + PurpurBlock => "minecraft:purpur_block", + PurpurPillar => "minecraft:purpur_pillar", + PurpurStairs => "minecraft:purpur_stairs", + EndStoneBricks => "minecraft:end_stone_bricks", + TorchflowerCrop => "minecraft:torchflower_crop", + PitcherCrop => "minecraft:pitcher_crop", + PitcherPlant => "minecraft:pitcher_plant", + Beetroots => "minecraft:beetroots", + DirtPath => "minecraft:dirt_path", + EndGateway => "minecraft:end_gateway", + RepeatingCommandBlock => "minecraft:repeating_command_block", + ChainCommandBlock => "minecraft:chain_command_block", + FrostedIce => "minecraft:frosted_ice", + MagmaBlock => "minecraft:magma_block", + NetherWartBlock => "minecraft:nether_wart_block", + RedNetherBricks => "minecraft:red_nether_bricks", + BoneBlock => "minecraft:bone_block", + StructureVoid => "minecraft:structure_void", + Observer => "minecraft:observer", + ShulkerBox => "minecraft:shulker_box", + WhiteShulkerBox => "minecraft:white_shulker_box", + OrangeShulkerBox => "minecraft:orange_shulker_box", + MagentaShulkerBox => "minecraft:magenta_shulker_box", + LightBlueShulkerBox => "minecraft:light_blue_shulker_box", + YellowShulkerBox => "minecraft:yellow_shulker_box", + LimeShulkerBox => "minecraft:lime_shulker_box", + PinkShulkerBox => "minecraft:pink_shulker_box", + GrayShulkerBox => "minecraft:gray_shulker_box", + LightGrayShulkerBox => "minecraft:light_gray_shulker_box", + CyanShulkerBox => "minecraft:cyan_shulker_box", + PurpleShulkerBox => "minecraft:purple_shulker_box", + BlueShulkerBox => "minecraft:blue_shulker_box", + BrownShulkerBox => "minecraft:brown_shulker_box", + GreenShulkerBox => "minecraft:green_shulker_box", + RedShulkerBox => "minecraft:red_shulker_box", + BlackShulkerBox => "minecraft:black_shulker_box", + WhiteGlazedTerracotta => "minecraft:white_glazed_terracotta", + OrangeGlazedTerracotta => "minecraft:orange_glazed_terracotta", + MagentaGlazedTerracotta => "minecraft:magenta_glazed_terracotta", + LightBlueGlazedTerracotta => "minecraft:light_blue_glazed_terracotta", + YellowGlazedTerracotta => "minecraft:yellow_glazed_terracotta", + LimeGlazedTerracotta => "minecraft:lime_glazed_terracotta", + PinkGlazedTerracotta => "minecraft:pink_glazed_terracotta", + GrayGlazedTerracotta => "minecraft:gray_glazed_terracotta", + LightGrayGlazedTerracotta => "minecraft:light_gray_glazed_terracotta", + CyanGlazedTerracotta => "minecraft:cyan_glazed_terracotta", + PurpleGlazedTerracotta => "minecraft:purple_glazed_terracotta", + BlueGlazedTerracotta => "minecraft:blue_glazed_terracotta", + BrownGlazedTerracotta => "minecraft:brown_glazed_terracotta", + GreenGlazedTerracotta => "minecraft:green_glazed_terracotta", + RedGlazedTerracotta => "minecraft:red_glazed_terracotta", + BlackGlazedTerracotta => "minecraft:black_glazed_terracotta", + WhiteConcrete => "minecraft:white_concrete", + OrangeConcrete => "minecraft:orange_concrete", + MagentaConcrete => "minecraft:magenta_concrete", + LightBlueConcrete => "minecraft:light_blue_concrete", + YellowConcrete => "minecraft:yellow_concrete", + LimeConcrete => "minecraft:lime_concrete", + PinkConcrete => "minecraft:pink_concrete", + GrayConcrete => "minecraft:gray_concrete", + LightGrayConcrete => "minecraft:light_gray_concrete", + CyanConcrete => "minecraft:cyan_concrete", + PurpleConcrete => "minecraft:purple_concrete", + BlueConcrete => "minecraft:blue_concrete", + BrownConcrete => "minecraft:brown_concrete", + GreenConcrete => "minecraft:green_concrete", + RedConcrete => "minecraft:red_concrete", + BlackConcrete => "minecraft:black_concrete", + WhiteConcretePowder => "minecraft:white_concrete_powder", + OrangeConcretePowder => "minecraft:orange_concrete_powder", + MagentaConcretePowder => "minecraft:magenta_concrete_powder", + LightBlueConcretePowder => "minecraft:light_blue_concrete_powder", + YellowConcretePowder => "minecraft:yellow_concrete_powder", + LimeConcretePowder => "minecraft:lime_concrete_powder", + PinkConcretePowder => "minecraft:pink_concrete_powder", + GrayConcretePowder => "minecraft:gray_concrete_powder", + LightGrayConcretePowder => "minecraft:light_gray_concrete_powder", + CyanConcretePowder => "minecraft:cyan_concrete_powder", + PurpleConcretePowder => "minecraft:purple_concrete_powder", + BlueConcretePowder => "minecraft:blue_concrete_powder", + BrownConcretePowder => "minecraft:brown_concrete_powder", + GreenConcretePowder => "minecraft:green_concrete_powder", + RedConcretePowder => "minecraft:red_concrete_powder", + BlackConcretePowder => "minecraft:black_concrete_powder", + Kelp => "minecraft:kelp", + KelpPlant => "minecraft:kelp_plant", + DriedKelpBlock => "minecraft:dried_kelp_block", + TurtleEgg => "minecraft:turtle_egg", + SnifferEgg => "minecraft:sniffer_egg", + DriedGhast => "minecraft:dried_ghast", + DeadTubeCoralBlock => "minecraft:dead_tube_coral_block", + DeadBrainCoralBlock => "minecraft:dead_brain_coral_block", + DeadBubbleCoralBlock => "minecraft:dead_bubble_coral_block", + DeadFireCoralBlock => "minecraft:dead_fire_coral_block", + DeadHornCoralBlock => "minecraft:dead_horn_coral_block", + TubeCoralBlock => "minecraft:tube_coral_block", + BrainCoralBlock => "minecraft:brain_coral_block", + BubbleCoralBlock => "minecraft:bubble_coral_block", + FireCoralBlock => "minecraft:fire_coral_block", + HornCoralBlock => "minecraft:horn_coral_block", + DeadTubeCoral => "minecraft:dead_tube_coral", + DeadBrainCoral => "minecraft:dead_brain_coral", + DeadBubbleCoral => "minecraft:dead_bubble_coral", + DeadFireCoral => "minecraft:dead_fire_coral", + DeadHornCoral => "minecraft:dead_horn_coral", + TubeCoral => "minecraft:tube_coral", + BrainCoral => "minecraft:brain_coral", + BubbleCoral => "minecraft:bubble_coral", + FireCoral => "minecraft:fire_coral", + HornCoral => "minecraft:horn_coral", + DeadTubeCoralFan => "minecraft:dead_tube_coral_fan", + DeadBrainCoralFan => "minecraft:dead_brain_coral_fan", + DeadBubbleCoralFan => "minecraft:dead_bubble_coral_fan", + DeadFireCoralFan => "minecraft:dead_fire_coral_fan", + DeadHornCoralFan => "minecraft:dead_horn_coral_fan", + TubeCoralFan => "minecraft:tube_coral_fan", + BrainCoralFan => "minecraft:brain_coral_fan", + BubbleCoralFan => "minecraft:bubble_coral_fan", + FireCoralFan => "minecraft:fire_coral_fan", + HornCoralFan => "minecraft:horn_coral_fan", + DeadTubeCoralWallFan => "minecraft:dead_tube_coral_wall_fan", + DeadBrainCoralWallFan => "minecraft:dead_brain_coral_wall_fan", + DeadBubbleCoralWallFan => "minecraft:dead_bubble_coral_wall_fan", + DeadFireCoralWallFan => "minecraft:dead_fire_coral_wall_fan", + DeadHornCoralWallFan => "minecraft:dead_horn_coral_wall_fan", + TubeCoralWallFan => "minecraft:tube_coral_wall_fan", + BrainCoralWallFan => "minecraft:brain_coral_wall_fan", + BubbleCoralWallFan => "minecraft:bubble_coral_wall_fan", + FireCoralWallFan => "minecraft:fire_coral_wall_fan", + HornCoralWallFan => "minecraft:horn_coral_wall_fan", + SeaPickle => "minecraft:sea_pickle", + BlueIce => "minecraft:blue_ice", + Conduit => "minecraft:conduit", + BambooSapling => "minecraft:bamboo_sapling", + Bamboo => "minecraft:bamboo", + PottedBamboo => "minecraft:potted_bamboo", + VoidAir => "minecraft:void_air", + CaveAir => "minecraft:cave_air", + BubbleColumn => "minecraft:bubble_column", + PolishedGraniteStairs => "minecraft:polished_granite_stairs", + SmoothRedSandstoneStairs => "minecraft:smooth_red_sandstone_stairs", + MossyStoneBrickStairs => "minecraft:mossy_stone_brick_stairs", + PolishedDioriteStairs => "minecraft:polished_diorite_stairs", + MossyCobblestoneStairs => "minecraft:mossy_cobblestone_stairs", + EndStoneBrickStairs => "minecraft:end_stone_brick_stairs", + StoneStairs => "minecraft:stone_stairs", + SmoothSandstoneStairs => "minecraft:smooth_sandstone_stairs", + SmoothQuartzStairs => "minecraft:smooth_quartz_stairs", + GraniteStairs => "minecraft:granite_stairs", + AndesiteStairs => "minecraft:andesite_stairs", + RedNetherBrickStairs => "minecraft:red_nether_brick_stairs", + PolishedAndesiteStairs => "minecraft:polished_andesite_stairs", + DioriteStairs => "minecraft:diorite_stairs", + PolishedGraniteSlab => "minecraft:polished_granite_slab", + SmoothRedSandstoneSlab => "minecraft:smooth_red_sandstone_slab", + MossyStoneBrickSlab => "minecraft:mossy_stone_brick_slab", + PolishedDioriteSlab => "minecraft:polished_diorite_slab", + MossyCobblestoneSlab => "minecraft:mossy_cobblestone_slab", + EndStoneBrickSlab => "minecraft:end_stone_brick_slab", + SmoothSandstoneSlab => "minecraft:smooth_sandstone_slab", + SmoothQuartzSlab => "minecraft:smooth_quartz_slab", + GraniteSlab => "minecraft:granite_slab", + AndesiteSlab => "minecraft:andesite_slab", + RedNetherBrickSlab => "minecraft:red_nether_brick_slab", + PolishedAndesiteSlab => "minecraft:polished_andesite_slab", + DioriteSlab => "minecraft:diorite_slab", + BrickWall => "minecraft:brick_wall", + PrismarineWall => "minecraft:prismarine_wall", + RedSandstoneWall => "minecraft:red_sandstone_wall", + MossyStoneBrickWall => "minecraft:mossy_stone_brick_wall", + GraniteWall => "minecraft:granite_wall", + StoneBrickWall => "minecraft:stone_brick_wall", + MudBrickWall => "minecraft:mud_brick_wall", + NetherBrickWall => "minecraft:nether_brick_wall", + AndesiteWall => "minecraft:andesite_wall", + RedNetherBrickWall => "minecraft:red_nether_brick_wall", + SandstoneWall => "minecraft:sandstone_wall", + EndStoneBrickWall => "minecraft:end_stone_brick_wall", + DioriteWall => "minecraft:diorite_wall", + Scaffolding => "minecraft:scaffolding", + Loom => "minecraft:loom", + Barrel => "minecraft:barrel", + Smoker => "minecraft:smoker", + BlastFurnace => "minecraft:blast_furnace", + CartographyTable => "minecraft:cartography_table", + FletchingTable => "minecraft:fletching_table", + Grindstone => "minecraft:grindstone", + Lectern => "minecraft:lectern", + SmithingTable => "minecraft:smithing_table", + Stonecutter => "minecraft:stonecutter", + Bell => "minecraft:bell", + Lantern => "minecraft:lantern", + SoulLantern => "minecraft:soul_lantern", + CopperLantern => "minecraft:copper_lantern", + ExposedCopperLantern => "minecraft:exposed_copper_lantern", + WeatheredCopperLantern => "minecraft:weathered_copper_lantern", + OxidizedCopperLantern => "minecraft:oxidized_copper_lantern", + WaxedCopperLantern => "minecraft:waxed_copper_lantern", + WaxedExposedCopperLantern => "minecraft:waxed_exposed_copper_lantern", + WaxedWeatheredCopperLantern => "minecraft:waxed_weathered_copper_lantern", + WaxedOxidizedCopperLantern => "minecraft:waxed_oxidized_copper_lantern", + Campfire => "minecraft:campfire", + SoulCampfire => "minecraft:soul_campfire", + SweetBerryBush => "minecraft:sweet_berry_bush", + WarpedStem => "minecraft:warped_stem", + StrippedWarpedStem => "minecraft:stripped_warped_stem", + WarpedHyphae => "minecraft:warped_hyphae", + StrippedWarpedHyphae => "minecraft:stripped_warped_hyphae", + WarpedNylium => "minecraft:warped_nylium", + WarpedFungus => "minecraft:warped_fungus", + WarpedWartBlock => "minecraft:warped_wart_block", + WarpedRoots => "minecraft:warped_roots", + NetherSprouts => "minecraft:nether_sprouts", + CrimsonStem => "minecraft:crimson_stem", + StrippedCrimsonStem => "minecraft:stripped_crimson_stem", + CrimsonHyphae => "minecraft:crimson_hyphae", + StrippedCrimsonHyphae => "minecraft:stripped_crimson_hyphae", + CrimsonNylium => "minecraft:crimson_nylium", + CrimsonFungus => "minecraft:crimson_fungus", + Shroomlight => "minecraft:shroomlight", + WeepingVines => "minecraft:weeping_vines", + WeepingVinesPlant => "minecraft:weeping_vines_plant", + TwistingVines => "minecraft:twisting_vines", + TwistingVinesPlant => "minecraft:twisting_vines_plant", + CrimsonRoots => "minecraft:crimson_roots", + CrimsonPlanks => "minecraft:crimson_planks", + WarpedPlanks => "minecraft:warped_planks", + CrimsonSlab => "minecraft:crimson_slab", + WarpedSlab => "minecraft:warped_slab", + CrimsonPressurePlate => "minecraft:crimson_pressure_plate", + WarpedPressurePlate => "minecraft:warped_pressure_plate", + CrimsonFence => "minecraft:crimson_fence", + WarpedFence => "minecraft:warped_fence", + CrimsonTrapdoor => "minecraft:crimson_trapdoor", + WarpedTrapdoor => "minecraft:warped_trapdoor", + CrimsonFenceGate => "minecraft:crimson_fence_gate", + WarpedFenceGate => "minecraft:warped_fence_gate", + CrimsonStairs => "minecraft:crimson_stairs", + WarpedStairs => "minecraft:warped_stairs", + CrimsonButton => "minecraft:crimson_button", + WarpedButton => "minecraft:warped_button", + CrimsonDoor => "minecraft:crimson_door", + WarpedDoor => "minecraft:warped_door", + CrimsonSign => "minecraft:crimson_sign", + WarpedSign => "minecraft:warped_sign", + CrimsonWallSign => "minecraft:crimson_wall_sign", + WarpedWallSign => "minecraft:warped_wall_sign", + StructureBlock => "minecraft:structure_block", + Jigsaw => "minecraft:jigsaw", + TestBlock => "minecraft:test_block", + TestInstanceBlock => "minecraft:test_instance_block", + Composter => "minecraft:composter", + Target => "minecraft:target", + BeeNest => "minecraft:bee_nest", + Beehive => "minecraft:beehive", + HoneyBlock => "minecraft:honey_block", + HoneycombBlock => "minecraft:honeycomb_block", + NetheriteBlock => "minecraft:netherite_block", + AncientDebris => "minecraft:ancient_debris", + CryingObsidian => "minecraft:crying_obsidian", + RespawnAnchor => "minecraft:respawn_anchor", + PottedCrimsonFungus => "minecraft:potted_crimson_fungus", + PottedWarpedFungus => "minecraft:potted_warped_fungus", + PottedCrimsonRoots => "minecraft:potted_crimson_roots", + PottedWarpedRoots => "minecraft:potted_warped_roots", + Lodestone => "minecraft:lodestone", + Blackstone => "minecraft:blackstone", + BlackstoneStairs => "minecraft:blackstone_stairs", + BlackstoneWall => "minecraft:blackstone_wall", + BlackstoneSlab => "minecraft:blackstone_slab", + PolishedBlackstone => "minecraft:polished_blackstone", + PolishedBlackstoneBricks => "minecraft:polished_blackstone_bricks", + CrackedPolishedBlackstoneBricks => "minecraft:cracked_polished_blackstone_bricks", + ChiseledPolishedBlackstone => "minecraft:chiseled_polished_blackstone", + PolishedBlackstoneBrickSlab => "minecraft:polished_blackstone_brick_slab", + PolishedBlackstoneBrickStairs => "minecraft:polished_blackstone_brick_stairs", + PolishedBlackstoneBrickWall => "minecraft:polished_blackstone_brick_wall", + GildedBlackstone => "minecraft:gilded_blackstone", + PolishedBlackstoneStairs => "minecraft:polished_blackstone_stairs", + PolishedBlackstoneSlab => "minecraft:polished_blackstone_slab", + PolishedBlackstonePressurePlate => "minecraft:polished_blackstone_pressure_plate", + PolishedBlackstoneButton => "minecraft:polished_blackstone_button", + PolishedBlackstoneWall => "minecraft:polished_blackstone_wall", + ChiseledNetherBricks => "minecraft:chiseled_nether_bricks", + CrackedNetherBricks => "minecraft:cracked_nether_bricks", + QuartzBricks => "minecraft:quartz_bricks", + Candle => "minecraft:candle", + WhiteCandle => "minecraft:white_candle", + OrangeCandle => "minecraft:orange_candle", + MagentaCandle => "minecraft:magenta_candle", + LightBlueCandle => "minecraft:light_blue_candle", + YellowCandle => "minecraft:yellow_candle", + LimeCandle => "minecraft:lime_candle", + PinkCandle => "minecraft:pink_candle", + GrayCandle => "minecraft:gray_candle", + LightGrayCandle => "minecraft:light_gray_candle", + CyanCandle => "minecraft:cyan_candle", + PurpleCandle => "minecraft:purple_candle", + BlueCandle => "minecraft:blue_candle", + BrownCandle => "minecraft:brown_candle", + GreenCandle => "minecraft:green_candle", + RedCandle => "minecraft:red_candle", + BlackCandle => "minecraft:black_candle", + CandleCake => "minecraft:candle_cake", + WhiteCandleCake => "minecraft:white_candle_cake", + OrangeCandleCake => "minecraft:orange_candle_cake", + MagentaCandleCake => "minecraft:magenta_candle_cake", + LightBlueCandleCake => "minecraft:light_blue_candle_cake", + YellowCandleCake => "minecraft:yellow_candle_cake", + LimeCandleCake => "minecraft:lime_candle_cake", + PinkCandleCake => "minecraft:pink_candle_cake", + GrayCandleCake => "minecraft:gray_candle_cake", + LightGrayCandleCake => "minecraft:light_gray_candle_cake", + CyanCandleCake => "minecraft:cyan_candle_cake", + PurpleCandleCake => "minecraft:purple_candle_cake", + BlueCandleCake => "minecraft:blue_candle_cake", + BrownCandleCake => "minecraft:brown_candle_cake", + GreenCandleCake => "minecraft:green_candle_cake", + RedCandleCake => "minecraft:red_candle_cake", + BlackCandleCake => "minecraft:black_candle_cake", + AmethystBlock => "minecraft:amethyst_block", + BuddingAmethyst => "minecraft:budding_amethyst", + AmethystCluster => "minecraft:amethyst_cluster", + LargeAmethystBud => "minecraft:large_amethyst_bud", + MediumAmethystBud => "minecraft:medium_amethyst_bud", + SmallAmethystBud => "minecraft:small_amethyst_bud", + Tuff => "minecraft:tuff", + TuffSlab => "minecraft:tuff_slab", + TuffStairs => "minecraft:tuff_stairs", + TuffWall => "minecraft:tuff_wall", + PolishedTuff => "minecraft:polished_tuff", + PolishedTuffSlab => "minecraft:polished_tuff_slab", + PolishedTuffStairs => "minecraft:polished_tuff_stairs", + PolishedTuffWall => "minecraft:polished_tuff_wall", + ChiseledTuff => "minecraft:chiseled_tuff", + TuffBricks => "minecraft:tuff_bricks", + TuffBrickSlab => "minecraft:tuff_brick_slab", + TuffBrickStairs => "minecraft:tuff_brick_stairs", + TuffBrickWall => "minecraft:tuff_brick_wall", + ChiseledTuffBricks => "minecraft:chiseled_tuff_bricks", + Calcite => "minecraft:calcite", + TintedGlass => "minecraft:tinted_glass", + PowderSnow => "minecraft:powder_snow", + SculkSensor => "minecraft:sculk_sensor", + CalibratedSculkSensor => "minecraft:calibrated_sculk_sensor", + Sculk => "minecraft:sculk", + SculkVein => "minecraft:sculk_vein", + SculkCatalyst => "minecraft:sculk_catalyst", + SculkShrieker => "minecraft:sculk_shrieker", + CopperBlock => "minecraft:copper_block", + ExposedCopper => "minecraft:exposed_copper", + WeatheredCopper => "minecraft:weathered_copper", + OxidizedCopper => "minecraft:oxidized_copper", + CopperOre => "minecraft:copper_ore", + DeepslateCopperOre => "minecraft:deepslate_copper_ore", + OxidizedCutCopper => "minecraft:oxidized_cut_copper", + WeatheredCutCopper => "minecraft:weathered_cut_copper", + ExposedCutCopper => "minecraft:exposed_cut_copper", + CutCopper => "minecraft:cut_copper", + OxidizedChiseledCopper => "minecraft:oxidized_chiseled_copper", + WeatheredChiseledCopper => "minecraft:weathered_chiseled_copper", + ExposedChiseledCopper => "minecraft:exposed_chiseled_copper", + ChiseledCopper => "minecraft:chiseled_copper", + WaxedOxidizedChiseledCopper => "minecraft:waxed_oxidized_chiseled_copper", + WaxedWeatheredChiseledCopper => "minecraft:waxed_weathered_chiseled_copper", + WaxedExposedChiseledCopper => "minecraft:waxed_exposed_chiseled_copper", + WaxedChiseledCopper => "minecraft:waxed_chiseled_copper", + OxidizedCutCopperStairs => "minecraft:oxidized_cut_copper_stairs", + WeatheredCutCopperStairs => "minecraft:weathered_cut_copper_stairs", + ExposedCutCopperStairs => "minecraft:exposed_cut_copper_stairs", + CutCopperStairs => "minecraft:cut_copper_stairs", + OxidizedCutCopperSlab => "minecraft:oxidized_cut_copper_slab", + WeatheredCutCopperSlab => "minecraft:weathered_cut_copper_slab", + ExposedCutCopperSlab => "minecraft:exposed_cut_copper_slab", + CutCopperSlab => "minecraft:cut_copper_slab", + WaxedCopperBlock => "minecraft:waxed_copper_block", + WaxedWeatheredCopper => "minecraft:waxed_weathered_copper", + WaxedExposedCopper => "minecraft:waxed_exposed_copper", + WaxedOxidizedCopper => "minecraft:waxed_oxidized_copper", + WaxedOxidizedCutCopper => "minecraft:waxed_oxidized_cut_copper", + WaxedWeatheredCutCopper => "minecraft:waxed_weathered_cut_copper", + WaxedExposedCutCopper => "minecraft:waxed_exposed_cut_copper", + WaxedCutCopper => "minecraft:waxed_cut_copper", + WaxedOxidizedCutCopperStairs => "minecraft:waxed_oxidized_cut_copper_stairs", + WaxedWeatheredCutCopperStairs => "minecraft:waxed_weathered_cut_copper_stairs", + WaxedExposedCutCopperStairs => "minecraft:waxed_exposed_cut_copper_stairs", + WaxedCutCopperStairs => "minecraft:waxed_cut_copper_stairs", + WaxedOxidizedCutCopperSlab => "minecraft:waxed_oxidized_cut_copper_slab", + WaxedWeatheredCutCopperSlab => "minecraft:waxed_weathered_cut_copper_slab", + WaxedExposedCutCopperSlab => "minecraft:waxed_exposed_cut_copper_slab", + WaxedCutCopperSlab => "minecraft:waxed_cut_copper_slab", + CopperDoor => "minecraft:copper_door", + ExposedCopperDoor => "minecraft:exposed_copper_door", + OxidizedCopperDoor => "minecraft:oxidized_copper_door", + WeatheredCopperDoor => "minecraft:weathered_copper_door", + WaxedCopperDoor => "minecraft:waxed_copper_door", + WaxedExposedCopperDoor => "minecraft:waxed_exposed_copper_door", + WaxedOxidizedCopperDoor => "minecraft:waxed_oxidized_copper_door", + WaxedWeatheredCopperDoor => "minecraft:waxed_weathered_copper_door", + CopperTrapdoor => "minecraft:copper_trapdoor", + ExposedCopperTrapdoor => "minecraft:exposed_copper_trapdoor", + OxidizedCopperTrapdoor => "minecraft:oxidized_copper_trapdoor", + WeatheredCopperTrapdoor => "minecraft:weathered_copper_trapdoor", + WaxedCopperTrapdoor => "minecraft:waxed_copper_trapdoor", + WaxedExposedCopperTrapdoor => "minecraft:waxed_exposed_copper_trapdoor", + WaxedOxidizedCopperTrapdoor => "minecraft:waxed_oxidized_copper_trapdoor", + WaxedWeatheredCopperTrapdoor => "minecraft:waxed_weathered_copper_trapdoor", + CopperGrate => "minecraft:copper_grate", + ExposedCopperGrate => "minecraft:exposed_copper_grate", + WeatheredCopperGrate => "minecraft:weathered_copper_grate", + OxidizedCopperGrate => "minecraft:oxidized_copper_grate", + WaxedCopperGrate => "minecraft:waxed_copper_grate", + WaxedExposedCopperGrate => "minecraft:waxed_exposed_copper_grate", + WaxedWeatheredCopperGrate => "minecraft:waxed_weathered_copper_grate", + WaxedOxidizedCopperGrate => "minecraft:waxed_oxidized_copper_grate", + CopperBulb => "minecraft:copper_bulb", + ExposedCopperBulb => "minecraft:exposed_copper_bulb", + WeatheredCopperBulb => "minecraft:weathered_copper_bulb", + OxidizedCopperBulb => "minecraft:oxidized_copper_bulb", + WaxedCopperBulb => "minecraft:waxed_copper_bulb", + WaxedExposedCopperBulb => "minecraft:waxed_exposed_copper_bulb", + WaxedWeatheredCopperBulb => "minecraft:waxed_weathered_copper_bulb", + WaxedOxidizedCopperBulb => "minecraft:waxed_oxidized_copper_bulb", + CopperChest => "minecraft:copper_chest", + ExposedCopperChest => "minecraft:exposed_copper_chest", + WeatheredCopperChest => "minecraft:weathered_copper_chest", + OxidizedCopperChest => "minecraft:oxidized_copper_chest", + WaxedCopperChest => "minecraft:waxed_copper_chest", + WaxedExposedCopperChest => "minecraft:waxed_exposed_copper_chest", + WaxedWeatheredCopperChest => "minecraft:waxed_weathered_copper_chest", + WaxedOxidizedCopperChest => "minecraft:waxed_oxidized_copper_chest", + CopperGolemStatue => "minecraft:copper_golem_statue", + ExposedCopperGolemStatue => "minecraft:exposed_copper_golem_statue", + WeatheredCopperGolemStatue => "minecraft:weathered_copper_golem_statue", + OxidizedCopperGolemStatue => "minecraft:oxidized_copper_golem_statue", + WaxedCopperGolemStatue => "minecraft:waxed_copper_golem_statue", + WaxedExposedCopperGolemStatue => "minecraft:waxed_exposed_copper_golem_statue", + WaxedWeatheredCopperGolemStatue => "minecraft:waxed_weathered_copper_golem_statue", + WaxedOxidizedCopperGolemStatue => "minecraft:waxed_oxidized_copper_golem_statue", + LightningRod => "minecraft:lightning_rod", + ExposedLightningRod => "minecraft:exposed_lightning_rod", + WeatheredLightningRod => "minecraft:weathered_lightning_rod", + OxidizedLightningRod => "minecraft:oxidized_lightning_rod", + WaxedLightningRod => "minecraft:waxed_lightning_rod", + WaxedExposedLightningRod => "minecraft:waxed_exposed_lightning_rod", + WaxedWeatheredLightningRod => "minecraft:waxed_weathered_lightning_rod", + WaxedOxidizedLightningRod => "minecraft:waxed_oxidized_lightning_rod", + PointedDripstone => "minecraft:pointed_dripstone", + DripstoneBlock => "minecraft:dripstone_block", + CaveVines => "minecraft:cave_vines", + CaveVinesPlant => "minecraft:cave_vines_plant", + SporeBlossom => "minecraft:spore_blossom", + Azalea => "minecraft:azalea", + FloweringAzalea => "minecraft:flowering_azalea", + MossCarpet => "minecraft:moss_carpet", + PinkPetals => "minecraft:pink_petals", + Wildflowers => "minecraft:wildflowers", + LeafLitter => "minecraft:leaf_litter", + MossBlock => "minecraft:moss_block", + BigDripleaf => "minecraft:big_dripleaf", + BigDripleafStem => "minecraft:big_dripleaf_stem", + SmallDripleaf => "minecraft:small_dripleaf", + HangingRoots => "minecraft:hanging_roots", + RootedDirt => "minecraft:rooted_dirt", + Mud => "minecraft:mud", + Deepslate => "minecraft:deepslate", + CobbledDeepslate => "minecraft:cobbled_deepslate", + CobbledDeepslateStairs => "minecraft:cobbled_deepslate_stairs", + CobbledDeepslateSlab => "minecraft:cobbled_deepslate_slab", + CobbledDeepslateWall => "minecraft:cobbled_deepslate_wall", + PolishedDeepslate => "minecraft:polished_deepslate", + PolishedDeepslateStairs => "minecraft:polished_deepslate_stairs", + PolishedDeepslateSlab => "minecraft:polished_deepslate_slab", + PolishedDeepslateWall => "minecraft:polished_deepslate_wall", + DeepslateTiles => "minecraft:deepslate_tiles", + DeepslateTileStairs => "minecraft:deepslate_tile_stairs", + DeepslateTileSlab => "minecraft:deepslate_tile_slab", + DeepslateTileWall => "minecraft:deepslate_tile_wall", + DeepslateBricks => "minecraft:deepslate_bricks", + DeepslateBrickStairs => "minecraft:deepslate_brick_stairs", + DeepslateBrickSlab => "minecraft:deepslate_brick_slab", + DeepslateBrickWall => "minecraft:deepslate_brick_wall", + ChiseledDeepslate => "minecraft:chiseled_deepslate", + CrackedDeepslateBricks => "minecraft:cracked_deepslate_bricks", + CrackedDeepslateTiles => "minecraft:cracked_deepslate_tiles", + InfestedDeepslate => "minecraft:infested_deepslate", + SmoothBasalt => "minecraft:smooth_basalt", + RawIronBlock => "minecraft:raw_iron_block", + RawCopperBlock => "minecraft:raw_copper_block", + RawGoldBlock => "minecraft:raw_gold_block", + PottedAzaleaBush => "minecraft:potted_azalea_bush", + PottedFloweringAzaleaBush => "minecraft:potted_flowering_azalea_bush", + OchreFroglight => "minecraft:ochre_froglight", + VerdantFroglight => "minecraft:verdant_froglight", + PearlescentFroglight => "minecraft:pearlescent_froglight", + Frogspawn => "minecraft:frogspawn", + ReinforcedDeepslate => "minecraft:reinforced_deepslate", + DecoratedPot => "minecraft:decorated_pot", + Crafter => "minecraft:crafter", + TrialSpawner => "minecraft:trial_spawner", + Vault => "minecraft:vault", + HeavyCore => "minecraft:heavy_core", + PaleMossBlock => "minecraft:pale_moss_block", + PaleMossCarpet => "minecraft:pale_moss_carpet", + PaleHangingMoss => "minecraft:pale_hanging_moss", + OpenEyeblossom => "minecraft:open_eyeblossom", + ClosedEyeblossom => "minecraft:closed_eyeblossom", + PottedOpenEyeblossom => "minecraft:potted_open_eyeblossom", + PottedClosedEyeblossom => "minecraft:potted_closed_eyeblossom", + FireflyBush => "minecraft:firefly_bush", +} +} + +registry! { +enum WorldgenPoolAliasBinding { + Random => "minecraft:random", + RandomGroup => "minecraft:random_group", + Direct => "minecraft:direct", +} +} + +registry! { +enum TriggerKind { + Impossible => "minecraft:impossible", + PlayerKilledEntity => "minecraft:player_killed_entity", + EntityKilledPlayer => "minecraft:entity_killed_player", + EnterBlock => "minecraft:enter_block", + InventoryChanged => "minecraft:inventory_changed", + RecipeUnlocked => "minecraft:recipe_unlocked", + PlayerHurtEntity => "minecraft:player_hurt_entity", + EntityHurtPlayer => "minecraft:entity_hurt_player", + EnchantedItem => "minecraft:enchanted_item", + FilledBucket => "minecraft:filled_bucket", + BrewedPotion => "minecraft:brewed_potion", + ConstructBeacon => "minecraft:construct_beacon", + UsedEnderEye => "minecraft:used_ender_eye", + SummonedEntity => "minecraft:summoned_entity", + BredAnimals => "minecraft:bred_animals", + Location => "minecraft:location", + SleptInBed => "minecraft:slept_in_bed", + CuredZombieVillager => "minecraft:cured_zombie_villager", + VillagerTrade => "minecraft:villager_trade", + ItemDurabilityChanged => "minecraft:item_durability_changed", + Levitation => "minecraft:levitation", + ChangedDimension => "minecraft:changed_dimension", + Tick => "minecraft:tick", + TameAnimal => "minecraft:tame_animal", + PlacedBlock => "minecraft:placed_block", + ConsumeItem => "minecraft:consume_item", + EffectsChanged => "minecraft:effects_changed", + UsedTotem => "minecraft:used_totem", + NetherTravel => "minecraft:nether_travel", + 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", + SlideDownBlock => "minecraft:slide_down_block", + BeeNestDestroyed => "minecraft:bee_nest_destroyed", + TargetHit => "minecraft:target_hit", + ItemUsedOnBlock => "minecraft:item_used_on_block", + DefaultBlockUse => "minecraft:default_block_use", + AnyBlockUse => "minecraft:any_block_use", + PlayerGeneratesContainerLoot => "minecraft:player_generates_container_loot", + ThrownItemPickedUpByEntity => "minecraft:thrown_item_picked_up_by_entity", + ThrownItemPickedUpByPlayer => "minecraft:thrown_item_picked_up_by_player", + PlayerInteractedWithEntity => "minecraft:player_interacted_with_entity", + PlayerShearedEquipment => "minecraft:player_sheared_equipment", + StartedRiding => "minecraft:started_riding", + LightningStrike => "minecraft:lightning_strike", + UsingItem => "minecraft:using_item", + FallFromHeight => "minecraft:fall_from_height", + RideEntityInLava => "minecraft:ride_entity_in_lava", + KillMobNearSculkCatalyst => "minecraft:kill_mob_near_sculk_catalyst", + AllayDropItemOnBlock => "minecraft:allay_drop_item_on_block", + AvoidVibration => "minecraft:avoid_vibration", + RecipeCrafted => "minecraft:recipe_crafted", + CrafterRecipeCrafted => "minecraft:crafter_recipe_crafted", + FallAfterExplosion => "minecraft:fall_after_explosion", +} +} + +registry! { +enum NumberFormatKind { + Blank => "minecraft:blank", + Styled => "minecraft:styled", + Fixed => "minecraft:fixed", +} +} + +registry! { +enum DataComponentKind { + CustomData => "minecraft:custom_data", + MaxStackSize => "minecraft:max_stack_size", + 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", + Rarity => "minecraft:rarity", + Enchantments => "minecraft:enchantments", + CanPlaceOn => "minecraft:can_place_on", + CanBreak => "minecraft:can_break", + AttributeModifiers => "minecraft:attribute_modifiers", + CustomModelData => "minecraft:custom_model_data", + TooltipDisplay => "minecraft:tooltip_display", + RepairCost => "minecraft:repair_cost", + CreativeSlotLock => "minecraft:creative_slot_lock", + EnchantmentGlintOverride => "minecraft:enchantment_glint_override", + IntangibleProjectile => "minecraft:intangible_projectile", + Food => "minecraft:food", + Consumable => "minecraft:consumable", + UseRemainder => "minecraft:use_remainder", + UseCooldown => "minecraft:use_cooldown", + DamageResistant => "minecraft:damage_resistant", + Tool => "minecraft:tool", + Weapon => "minecraft:weapon", + AttackRange => "minecraft:attack_range", + Enchantable => "minecraft:enchantable", + Equippable => "minecraft:equippable", + Repairable => "minecraft:repairable", + Glider => "minecraft:glider", + 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", + MapId => "minecraft:map_id", + MapDecorations => "minecraft:map_decorations", + MapPostProcessing => "minecraft:map_post_processing", + ChargedProjectiles => "minecraft:charged_projectiles", + BundleContents => "minecraft:bundle_contents", + PotionContents => "minecraft:potion_contents", + PotionDurationScale => "minecraft:potion_duration_scale", + SuspiciousStewEffects => "minecraft:suspicious_stew_effects", + WritableBookContent => "minecraft:writable_book_content", + WrittenBookContent => "minecraft:written_book_content", + Trim => "minecraft:trim", + DebugStickState => "minecraft:debug_stick_state", + EntityData => "minecraft:entity_data", + BucketEntityData => "minecraft:bucket_entity_data", + BlockEntityData => "minecraft:block_entity_data", + Instrument => "minecraft:instrument", + ProvidesTrimMaterial => "minecraft:provides_trim_material", + OminousBottleAmplifier => "minecraft:ominous_bottle_amplifier", + JukeboxPlayable => "minecraft:jukebox_playable", + ProvidesBannerPatterns => "minecraft:provides_banner_patterns", + Recipes => "minecraft:recipes", + LodestoneTracker => "minecraft:lodestone_tracker", + FireworkExplosion => "minecraft:firework_explosion", + Fireworks => "minecraft:fireworks", + Profile => "minecraft:profile", + NoteBlockSound => "minecraft:note_block_sound", + BannerPatterns => "minecraft:banner_patterns", + BaseColor => "minecraft:base_color", + PotDecorations => "minecraft:pot_decorations", + Container => "minecraft:container", + BlockState => "minecraft:block_state", + Bees => "minecraft:bees", + Lock => "minecraft:lock", + ContainerLoot => "minecraft:container_loot", + BreakSound => "minecraft:break_sound", + VillagerVariant => "minecraft:villager/variant", + WolfVariant => "minecraft:wolf/variant", + WolfSoundVariant => "minecraft:wolf/sound_variant", + WolfCollar => "minecraft:wolf/collar", + FoxVariant => "minecraft:fox/variant", + SalmonSize => "minecraft:salmon/size", + ParrotVariant => "minecraft:parrot/variant", + TropicalFishPattern => "minecraft:tropical_fish/pattern", + TropicalFishBaseColor => "minecraft:tropical_fish/base_color", + TropicalFishPatternColor => "minecraft:tropical_fish/pattern_color", + MooshroomVariant => "minecraft:mooshroom/variant", + RabbitVariant => "minecraft:rabbit/variant", + 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", + LlamaVariant => "minecraft:llama/variant", + AxolotlVariant => "minecraft:axolotl/variant", + CatVariant => "minecraft:cat/variant", + CatCollar => "minecraft:cat/collar", + SheepColor => "minecraft:sheep/color", + ShulkerColor => "minecraft:shulker/color", +} +} + +registry! { +enum EntitySubPredicateKind { + Lightning => "minecraft:lightning", + FishingHook => "minecraft:fishing_hook", + Player => "minecraft:player", + Slime => "minecraft:slime", + Raider => "minecraft:raider", + Sheep => "minecraft:sheep", +} +} + +registry! { +enum MapDecorationKind { + Player => "minecraft:player", + Frame => "minecraft:frame", + RedMarker => "minecraft:red_marker", + BlueMarker => "minecraft:blue_marker", + TargetX => "minecraft:target_x", + TargetPoint => "minecraft:target_point", + PlayerOffMap => "minecraft:player_off_map", + PlayerOffLimits => "minecraft:player_off_limits", + Mansion => "minecraft:mansion", + Monument => "minecraft:monument", + BannerWhite => "minecraft:banner_white", + BannerOrange => "minecraft:banner_orange", + BannerMagenta => "minecraft:banner_magenta", + BannerLightBlue => "minecraft:banner_light_blue", + BannerYellow => "minecraft:banner_yellow", + BannerLime => "minecraft:banner_lime", + BannerPink => "minecraft:banner_pink", + BannerGray => "minecraft:banner_gray", + BannerLightGray => "minecraft:banner_light_gray", + BannerCyan => "minecraft:banner_cyan", + BannerPurple => "minecraft:banner_purple", + BannerBlue => "minecraft:banner_blue", + BannerBrown => "minecraft:banner_brown", + BannerGreen => "minecraft:banner_green", + BannerRed => "minecraft:banner_red", + BannerBlack => "minecraft:banner_black", + RedX => "minecraft:red_x", + VillageDesert => "minecraft:village_desert", + VillagePlains => "minecraft:village_plains", + VillageSavanna => "minecraft:village_savanna", + VillageSnowy => "minecraft:village_snowy", + VillageTaiga => "minecraft:village_taiga", + JungleTemple => "minecraft:jungle_temple", + SwampHut => "minecraft:swamp_hut", + TrialChambers => "minecraft:trial_chambers", +} +} + +registry! { +enum EnchantmentEffectComponentKind { + DamageProtection => "minecraft:damage_protection", + DamageImmunity => "minecraft:damage_immunity", + Damage => "minecraft:damage", + SmashDamagePerFallenBlock => "minecraft:smash_damage_per_fallen_block", + 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", + EquipmentDrops => "minecraft:equipment_drops", + LocationChanged => "minecraft:location_changed", + Tick => "minecraft:tick", + AmmoUse => "minecraft:ammo_use", + ProjectilePiercing => "minecraft:projectile_piercing", + ProjectileSpawned => "minecraft:projectile_spawned", + ProjectileSpread => "minecraft:projectile_spread", + ProjectileCount => "minecraft:projectile_count", + TridentReturnAcceleration => "minecraft:trident_return_acceleration", + FishingTimeReduction => "minecraft:fishing_time_reduction", + FishingLuckBonus => "minecraft:fishing_luck_bonus", + BlockExperience => "minecraft:block_experience", + MobExperience => "minecraft:mob_experience", + RepairWithXp => "minecraft:repair_with_xp", + CrossbowChargeTime => "minecraft:crossbow_charge_time", + CrossbowChargingSounds => "minecraft:crossbow_charging_sounds", + TridentSound => "minecraft:trident_sound", + PreventEquipmentDrop => "minecraft:prevent_equipment_drop", + PreventArmorChange => "minecraft:prevent_armor_change", + TridentSpinAttackStrength => "minecraft:trident_spin_attack_strength", +} +} + +registry! { +enum EnchantmentEntityEffectKind { + AllOf => "minecraft:all_of", + ApplyMobEffect => "minecraft:apply_mob_effect", + ChangeItemDamage => "minecraft:change_item_damage", + 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", + RunFunction => "minecraft:run_function", + SetBlockProperties => "minecraft:set_block_properties", + SpawnParticles => "minecraft:spawn_particles", + SummonEntity => "minecraft:summon_entity", +} +} + +registry! { +enum EnchantmentLevelBasedValueKind { + Clamped => "minecraft:clamped", + Fraction => "minecraft:fraction", + LevelsSquared => "minecraft:levels_squared", + Linear => "minecraft:linear", + Exponent => "minecraft:exponent", + Lookup => "minecraft:lookup", +} +} + +registry! { +enum EnchantmentLocationBasedEffectKind { + AllOf => "minecraft:all_of", + ApplyMobEffect => "minecraft:apply_mob_effect", + Attribute => "minecraft:attribute", + ChangeItemDamage => "minecraft:change_item_damage", + 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", + RunFunction => "minecraft:run_function", + SetBlockProperties => "minecraft:set_block_properties", + SpawnParticles => "minecraft:spawn_particles", + SummonEntity => "minecraft:summon_entity", +} +} + +registry! { +enum EnchantmentProviderKind { + ByCost => "minecraft:by_cost", + ByCostWithDifficulty => "minecraft:by_cost_with_difficulty", + Single => "minecraft:single", +} +} + +registry! { +enum EnchantmentValueEffectKind { + Add => "minecraft:add", + AllOf => "minecraft:all_of", + Multiply => "minecraft:multiply", + RemoveBinomial => "minecraft:remove_binomial", + Exponential => "minecraft:exponential", + Set => "minecraft:set", +} +} + +registry! { +enum DecoratedPotPattern { + Angler => "minecraft:angler", + Archer => "minecraft:archer", + ArmsUp => "minecraft:arms_up", + Blade => "minecraft:blade", + Brewer => "minecraft:brewer", + Burn => "minecraft:burn", + Danger => "minecraft:danger", + Explorer => "minecraft:explorer", + Flow => "minecraft:flow", + Friend => "minecraft:friend", + Guster => "minecraft:guster", + Heart => "minecraft:heart", + Heartbreak => "minecraft:heartbreak", + Howl => "minecraft:howl", + Miner => "minecraft:miner", + Mourner => "minecraft:mourner", + Plenty => "minecraft:plenty", + Prize => "minecraft:prize", + Scrape => "minecraft:scrape", + Sheaf => "minecraft:sheaf", + Shelter => "minecraft:shelter", + Skull => "minecraft:skull", + Snort => "minecraft:snort", + Blank => "minecraft:blank", +} +} + +registry! { +enum ConsumeEffectKind { + ApplyEffects => "minecraft:apply_effects", + RemoveEffects => "minecraft:remove_effects", + ClearAllEffects => "minecraft:clear_all_effects", + TeleportRandomly => "minecraft:teleport_randomly", + PlaySound => "minecraft:play_sound", +} +} + +registry! { +enum RecipeBookCategory { + CraftingBuildingBlocks => "minecraft:crafting_building_blocks", + CraftingRedstone => "minecraft:crafting_redstone", + CraftingEquipment => "minecraft:crafting_equipment", + CraftingMisc => "minecraft:crafting_misc", + FurnaceFood => "minecraft:furnace_food", + FurnaceBlocks => "minecraft:furnace_blocks", + FurnaceMisc => "minecraft:furnace_misc", + BlastFurnaceBlocks => "minecraft:blast_furnace_blocks", + BlastFurnaceMisc => "minecraft:blast_furnace_misc", + SmokerFood => "minecraft:smoker_food", + Stonecutter => "minecraft:stonecutter", + Smithing => "minecraft:smithing", + Campfire => "minecraft:campfire", +} +} + +registry! { +enum RecipeDisplay { + CraftingShapeless => "minecraft:crafting_shapeless", + CraftingShaped => "minecraft:crafting_shaped", + Furnace => "minecraft:furnace", + Stonecutter => "minecraft:stonecutter", + Smithing => "minecraft:smithing", +} +} + +registry! { +enum SlotDisplay { + Empty => "minecraft:empty", + AnyFuel => "minecraft:any_fuel", + Item => "minecraft:item", + ItemStack => "minecraft:item_stack", + Tag => "minecraft:tag", + SmithingTrim => "minecraft:smithing_trim", + WithRemainder => "minecraft:with_remainder", + Composite => "minecraft:composite", +} +} + +registry! { +enum TicketKind { + PlayerSpawn => "minecraft:player_spawn", + SpawnSearch => "minecraft:spawn_search", + Dragon => "minecraft:dragon", + PlayerLoading => "minecraft:player_loading", + PlayerSimulation => "minecraft:player_simulation", + Forced => "minecraft:forced", + Portal => "minecraft:portal", + EnderPearl => "minecraft:ender_pearl", + Unknown => "minecraft:unknown", +} +} + +registry! { +enum TestEnvironmentDefinitionKind { + AllOf => "minecraft:all_of", + GameRules => "minecraft:game_rules", + TimeOfDay => "minecraft:time_of_day", + Weather => "minecraft:weather", + Function => "minecraft:function", +} +} + +registry! { +enum TestFunction { + AlwaysPass => "minecraft:always_pass", +} +} + +registry! { +enum TestInstanceKind { + BlockBased => "minecraft:block_based", + Function => "minecraft:function", +} +} + +registry! { +enum DataComponentPredicateKind { + Damage => "minecraft:damage", + Enchantments => "minecraft:enchantments", + StoredEnchantments => "minecraft:stored_enchantments", + PotionContents => "minecraft:potion_contents", + CustomData => "minecraft:custom_data", + Container => "minecraft:container", + BundleContents => "minecraft:bundle_contents", + FireworkExplosion => "minecraft:firework_explosion", + Fireworks => "minecraft:fireworks", + WritableBookContent => "minecraft:writable_book_content", + WrittenBookContent => "minecraft:written_book_content", + AttributeModifiers => "minecraft:attribute_modifiers", + Trim => "minecraft:trim", + JukeboxPlayable => "minecraft:jukebox_playable", +} +} + +registry! { +enum SpawnConditionKind { + Structure => "minecraft:structure", + MoonBrightness => "minecraft:moon_brightness", + Biome => "minecraft:biome", +} +} + +registry! { +enum DialogBodyKind { + Item => "minecraft:item", + PlainMessage => "minecraft:plain_message", +} +} + +registry! { +enum DialogKind { + Notice => "minecraft:notice", + ServerLinks => "minecraft:server_links", + DialogList => "minecraft:dialog_list", + MultiAction => "minecraft:multi_action", + Confirmation => "minecraft:confirmation", +} +} + +registry! { +enum InputControlKind { + Boolean => "minecraft:boolean", + NumberRange => "minecraft:number_range", + SingleOption => "minecraft:single_option", + Text => "minecraft:text", +} +} + +registry! { +enum DialogActionKind { + OpenUrl => "minecraft:open_url", + RunCommand => "minecraft:run_command", + SuggestCommand => "minecraft:suggest_command", + ShowDialog => "minecraft:show_dialog", + ChangePage => "minecraft:change_page", + CopyToClipboard => "minecraft:copy_to_clipboard", + Custom => "minecraft:custom", + DynamicRunCommand => "minecraft:dynamic/run_command", + DynamicCustom => "minecraft:dynamic/custom", +} +} + +registry! { +enum DebugSubscription { + DedicatedServerTickTime => "minecraft:dedicated_server_tick_time", + Bees => "minecraft:bees", + Brains => "minecraft:brains", + Breezes => "minecraft:breezes", + GoalSelectors => "minecraft:goal_selectors", + EntityPaths => "minecraft:entity_paths", + EntityBlockIntersections => "minecraft:entity_block_intersections", + BeeHives => "minecraft:bee_hives", + Pois => "minecraft:pois", + RedstoneWireOrientations => "minecraft:redstone_wire_orientations", + VillageSections => "minecraft:village_sections", + Raids => "minecraft:raids", + Structures => "minecraft:structures", + GameEventListeners => "minecraft:game_event_listeners", + NeighborUpdates => "minecraft:neighbor_updates", + GameEvents => "minecraft:game_events", +} +} + +registry! { +enum IncomingRpcMethods { + Allowlist => "minecraft:allowlist", + AllowlistSet => "minecraft:allowlist/set", + AllowlistAdd => "minecraft:allowlist/add", + AllowlistRemove => "minecraft:allowlist/remove", + AllowlistClear => "minecraft:allowlist/clear", + Bans => "minecraft:bans", + BansSet => "minecraft:bans/set", + BansAdd => "minecraft:bans/add", + BansRemove => "minecraft:bans/remove", + BansClear => "minecraft:bans/clear", + IpBans => "minecraft:ip_bans", + IpBansSet => "minecraft:ip_bans/set", + IpBansAdd => "minecraft:ip_bans/add", + IpBansRemove => "minecraft:ip_bans/remove", + IpBansClear => "minecraft:ip_bans/clear", + Players => "minecraft:players", + PlayersKick => "minecraft:players/kick", + Operators => "minecraft:operators", + OperatorsSet => "minecraft:operators/set", + OperatorsAdd => "minecraft:operators/add", + OperatorsRemove => "minecraft:operators/remove", + OperatorsClear => "minecraft:operators/clear", + ServerStatus => "minecraft:server/status", + ServerSave => "minecraft:server/save", + ServerStop => "minecraft:server/stop", + ServerSystemMessage => "minecraft:server/system_message", + ServersettingsAutosave => "minecraft:serversettings/autosave", + ServersettingsAutosaveSet => "minecraft:serversettings/autosave/set", + ServersettingsDifficulty => "minecraft:serversettings/difficulty", + ServersettingsDifficultySet => "minecraft:serversettings/difficulty/set", + ServersettingsEnforceAllowlist => "minecraft:serversettings/enforce_allowlist", + ServersettingsEnforceAllowlistSet => "minecraft:serversettings/enforce_allowlist/set", + ServersettingsUseAllowlist => "minecraft:serversettings/use_allowlist", + ServersettingsUseAllowlistSet => "minecraft:serversettings/use_allowlist/set", + ServersettingsMaxPlayers => "minecraft:serversettings/max_players", + ServersettingsMaxPlayersSet => "minecraft:serversettings/max_players/set", + ServersettingsPauseWhenEmptySeconds => "minecraft:serversettings/pause_when_empty_seconds", + ServersettingsPauseWhenEmptySecondsSet => "minecraft:serversettings/pause_when_empty_seconds/set", + ServersettingsPlayerIdleTimeout => "minecraft:serversettings/player_idle_timeout", + ServersettingsPlayerIdleTimeoutSet => "minecraft:serversettings/player_idle_timeout/set", + ServersettingsAllowFlight => "minecraft:serversettings/allow_flight", + ServersettingsAllowFlightSet => "minecraft:serversettings/allow_flight/set", + ServersettingsMotd => "minecraft:serversettings/motd", + ServersettingsMotdSet => "minecraft:serversettings/motd/set", + ServersettingsSpawnProtectionRadius => "minecraft:serversettings/spawn_protection_radius", + ServersettingsSpawnProtectionRadiusSet => "minecraft:serversettings/spawn_protection_radius/set", + ServersettingsForceGameMode => "minecraft:serversettings/force_game_mode", + ServersettingsForceGameModeSet => "minecraft:serversettings/force_game_mode/set", + ServersettingsGameMode => "minecraft:serversettings/game_mode", + ServersettingsGameModeSet => "minecraft:serversettings/game_mode/set", + ServersettingsViewDistance => "minecraft:serversettings/view_distance", + ServersettingsViewDistanceSet => "minecraft:serversettings/view_distance/set", + ServersettingsSimulationDistance => "minecraft:serversettings/simulation_distance", + ServersettingsSimulationDistanceSet => "minecraft:serversettings/simulation_distance/set", + ServersettingsAcceptTransfers => "minecraft:serversettings/accept_transfers", + ServersettingsAcceptTransfersSet => "minecraft:serversettings/accept_transfers/set", + ServersettingsStatusHeartbeatInterval => "minecraft:serversettings/status_heartbeat_interval", + ServersettingsStatusHeartbeatIntervalSet => "minecraft:serversettings/status_heartbeat_interval/set", + ServersettingsOperatorUserPermissionLevel => "minecraft:serversettings/operator_user_permission_level", + ServersettingsOperatorUserPermissionLevelSet => "minecraft:serversettings/operator_user_permission_level/set", + ServersettingsHideOnlinePlayers => "minecraft:serversettings/hide_online_players", + ServersettingsHideOnlinePlayersSet => "minecraft:serversettings/hide_online_players/set", + ServersettingsStatusReplies => "minecraft:serversettings/status_replies", + ServersettingsStatusRepliesSet => "minecraft:serversettings/status_replies/set", + ServersettingsEntityBroadcastRange => "minecraft:serversettings/entity_broadcast_range", + ServersettingsEntityBroadcastRangeSet => "minecraft:serversettings/entity_broadcast_range/set", + Gamerules => "minecraft:gamerules", + GamerulesUpdate => "minecraft:gamerules/update", + RpcDiscover => "minecraft:rpc.discover", +} +} + +registry! { +enum OutgoingRpcMethods { + NotificationServerStarted => "minecraft:notification/server/started", + 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", + NotificationOperatorsRemoved => "minecraft:notification/operators/removed", + NotificationAllowlistAdded => "minecraft:notification/allowlist/added", + NotificationAllowlistRemoved => "minecraft:notification/allowlist/removed", + NotificationIpBansAdded => "minecraft:notification/ip_bans/added", + NotificationIpBansRemoved => "minecraft:notification/ip_bans/removed", + NotificationBansAdded => "minecraft:notification/bans/added", + NotificationBansRemoved => "minecraft:notification/bans/removed", + NotificationGamerulesUpdated => "minecraft:notification/gamerules/updated", + NotificationServerStatus => "minecraft:notification/server/status", +} +} + +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", + 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", + 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", + GameplayRespawnAnchorWorks => "minecraft:gameplay/respawn_anchor_works", + 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", +} +} + +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", +} +} + +registry! { +enum AbstractBlockKind { + Block => "minecraft:block", + Air => "minecraft:air", + Amethyst => "minecraft:amethyst", + AmethystCluster => "minecraft:amethyst_cluster", + Anvil => "minecraft:anvil", + AttachedStem => "minecraft:attached_stem", + Azalea => "minecraft:azalea", + BambooSapling => "minecraft:bamboo_sapling", + BambooStalk => "minecraft:bamboo_stalk", + Banner => "minecraft:banner", + Barrel => "minecraft:barrel", + Barrier => "minecraft:barrier", + BaseCoralFan => "minecraft:base_coral_fan", + BaseCoralPlant => "minecraft:base_coral_plant", + BaseCoralWallFan => "minecraft:base_coral_wall_fan", + Beacon => "minecraft:beacon", + Bed => "minecraft:bed", + Beehive => "minecraft:beehive", + Beetroot => "minecraft:beetroot", + Bell => "minecraft:bell", + BigDripleaf => "minecraft:big_dripleaf", + BigDripleafStem => "minecraft:big_dripleaf_stem", + BlastFurnace => "minecraft:blast_furnace", + BrewingStand => "minecraft:brewing_stand", + Brushable => "minecraft:brushable", + BubbleColumn => "minecraft:bubble_column", + BuddingAmethyst => "minecraft:budding_amethyst", + Bush => "minecraft:bush", + Button => "minecraft:button", + Cactus => "minecraft:cactus", + CactusFlower => "minecraft:cactus_flower", + Cake => "minecraft:cake", + CalibratedSculkSensor => "minecraft:calibrated_sculk_sensor", + Campfire => "minecraft:campfire", + CandleCake => "minecraft:candle_cake", + Candle => "minecraft:candle", + Carpet => "minecraft:carpet", + Carrot => "minecraft:carrot", + CartographyTable => "minecraft:cartography_table", + Cauldron => "minecraft:cauldron", + CaveVines => "minecraft:cave_vines", + CaveVinesPlant => "minecraft:cave_vines_plant", + CeilingHangingSign => "minecraft:ceiling_hanging_sign", + Chain => "minecraft:chain", + Chest => "minecraft:chest", + ChiseledBookShelf => "minecraft:chiseled_book_shelf", + ChorusFlower => "minecraft:chorus_flower", + ChorusPlant => "minecraft:chorus_plant", + Cocoa => "minecraft:cocoa", + ColoredFalling => "minecraft:colored_falling", + Command => "minecraft:command", + Comparator => "minecraft:comparator", + Composter => "minecraft:composter", + ConcretePowder => "minecraft:concrete_powder", + Conduit => "minecraft:conduit", + CopperBulbBlock => "minecraft:copper_bulb_block", + CopperChest => "minecraft:copper_chest", + CopperGolemStatue => "minecraft:copper_golem_statue", + Coral => "minecraft:coral", + CoralFan => "minecraft:coral_fan", + CoralPlant => "minecraft:coral_plant", + CoralWallFan => "minecraft:coral_wall_fan", + Crafter => "minecraft:crafter", + CraftingTable => "minecraft:crafting_table", + Crop => "minecraft:crop", + CryingObsidian => "minecraft:crying_obsidian", + DaylightDetector => "minecraft:daylight_detector", + DryVegetation => "minecraft:dry_vegetation", + DecoratedPot => "minecraft:decorated_pot", + DetectorRail => "minecraft:detector_rail", + DirtPath => "minecraft:dirt_path", + Dispenser => "minecraft:dispenser", + Door => "minecraft:door", + DoublePlant => "minecraft:double_plant", + DragonEgg => "minecraft:dragon_egg", + DriedGhast => "minecraft:dried_ghast", + DropExperience => "minecraft:drop_experience", + Dropper => "minecraft:dropper", + EnchantmentTable => "minecraft:enchantment_table", + EnderChest => "minecraft:ender_chest", + EndGateway => "minecraft:end_gateway", + EndPortal => "minecraft:end_portal", + EndPortalFrame => "minecraft:end_portal_frame", + EndRod => "minecraft:end_rod", + Eyeblossom => "minecraft:eyeblossom", + Farm => "minecraft:farm", + BonemealableFeaturePlacer => "minecraft:bonemealable_feature_placer", + Fence => "minecraft:fence", + FenceGate => "minecraft:fence_gate", + Fire => "minecraft:fire", + FireflyBush => "minecraft:firefly_bush", + Flower => "minecraft:flower", + FlowerPot => "minecraft:flower_pot", + Frogspawn => "minecraft:frogspawn", + FrostedIce => "minecraft:frosted_ice", + Fungus => "minecraft:fungus", + Furnace => "minecraft:furnace", + GlazedTerracotta => "minecraft:glazed_terracotta", + GlowLichen => "minecraft:glow_lichen", + Grass => "minecraft:grass", + Grindstone => "minecraft:grindstone", + HalfTransparent => "minecraft:half_transparent", + HangingMoss => "minecraft:hanging_moss", + HangingRoots => "minecraft:hanging_roots", + Hay => "minecraft:hay", + HeavyCore => "minecraft:heavy_core", + Honey => "minecraft:honey", + Hopper => "minecraft:hopper", + HugeMushroom => "minecraft:huge_mushroom", + Ice => "minecraft:ice", + Infested => "minecraft:infested", + InfestedRotatedPillar => "minecraft:infested_rotated_pillar", + IronBars => "minecraft:iron_bars", + JackOLantern => "minecraft:jack_o_lantern", + Jigsaw => "minecraft:jigsaw", + Jukebox => "minecraft:jukebox", + Kelp => "minecraft:kelp", + KelpPlant => "minecraft:kelp_plant", + Ladder => "minecraft:ladder", + Lantern => "minecraft:lantern", + LavaCauldron => "minecraft:lava_cauldron", + LayeredCauldron => "minecraft:layered_cauldron", + LeafLitter => "minecraft:leaf_litter", + Lectern => "minecraft:lectern", + Lever => "minecraft:lever", + Light => "minecraft:light", + LightningRod => "minecraft:lightning_rod", + Liquid => "minecraft:liquid", + Loom => "minecraft:loom", + Magma => "minecraft:magma", + MangroveLeaves => "minecraft:mangrove_leaves", + MangrovePropagule => "minecraft:mangrove_propagule", + MangroveRoots => "minecraft:mangrove_roots", + MossyCarpet => "minecraft:mossy_carpet", + MovingPiston => "minecraft:moving_piston", + Mud => "minecraft:mud", + Multiface => "minecraft:multiface", + Mushroom => "minecraft:mushroom", + Mycelium => "minecraft:mycelium", + NetherPortal => "minecraft:nether_portal", + Netherrack => "minecraft:netherrack", + NetherSprouts => "minecraft:nether_sprouts", + NetherWart => "minecraft:nether_wart", + Note => "minecraft:note", + Nylium => "minecraft:nylium", + Observer => "minecraft:observer", + Piglinwallskull => "minecraft:piglinwallskull", + FlowerBed => "minecraft:flower_bed", + PistonBase => "minecraft:piston_base", + PistonHead => "minecraft:piston_head", + PitcherCrop => "minecraft:pitcher_crop", + PlayerHead => "minecraft:player_head", + PlayerWallHead => "minecraft:player_wall_head", + PointedDripstone => "minecraft:pointed_dripstone", + Potato => "minecraft:potato", + PowderSnow => "minecraft:powder_snow", + Powered => "minecraft:powered", + PoweredRail => "minecraft:powered_rail", + PressurePlate => "minecraft:pressure_plate", + Pumpkin => "minecraft:pumpkin", + Rail => "minecraft:rail", + RedstoneLamp => "minecraft:redstone_lamp", + RedstoneOre => "minecraft:redstone_ore", + RedstoneTorch => "minecraft:redstone_torch", + RedstoneWallTorch => "minecraft:redstone_wall_torch", + RedstoneWire => "minecraft:redstone_wire", + Repeater => "minecraft:repeater", + RespawnAnchor => "minecraft:respawn_anchor", + RootedDirt => "minecraft:rooted_dirt", + Roots => "minecraft:roots", + RotatedPillar => "minecraft:rotated_pillar", + Sapling => "minecraft:sapling", + Sand => "minecraft:sand", + Scaffolding => "minecraft:scaffolding", + SculkCatalyst => "minecraft:sculk_catalyst", + Sculk => "minecraft:sculk", + SculkSensor => "minecraft:sculk_sensor", + SculkShrieker => "minecraft:sculk_shrieker", + SculkVein => "minecraft:sculk_vein", + Seagrass => "minecraft:seagrass", + SeaPickle => "minecraft:sea_pickle", + Shelf => "minecraft:shelf", + ShortDryGrass => "minecraft:short_dry_grass", + ShulkerBox => "minecraft:shulker_box", + Skull => "minecraft:skull", + Slab => "minecraft:slab", + Slime => "minecraft:slime", + SmallDripleaf => "minecraft:small_dripleaf", + SmithingTable => "minecraft:smithing_table", + Smoker => "minecraft:smoker", + SnifferEgg => "minecraft:sniffer_egg", + SnowLayer => "minecraft:snow_layer", + SnowyDirt => "minecraft:snowy_dirt", + SoulFire => "minecraft:soul_fire", + SoulSand => "minecraft:soul_sand", + Spawner => "minecraft:spawner", + CreakingHeart => "minecraft:creaking_heart", + Sponge => "minecraft:sponge", + SporeBlossom => "minecraft:spore_blossom", + StainedGlassPane => "minecraft:stained_glass_pane", + StainedGlass => "minecraft:stained_glass", + Stair => "minecraft:stair", + StandingSign => "minecraft:standing_sign", + Stem => "minecraft:stem", + Stonecutter => "minecraft:stonecutter", + Structure => "minecraft:structure", + StructureVoid => "minecraft:structure_void", + SugarCane => "minecraft:sugar_cane", + SweetBerryBush => "minecraft:sweet_berry_bush", + TallDryGrass => "minecraft:tall_dry_grass", + TallFlower => "minecraft:tall_flower", + TallGrass => "minecraft:tall_grass", + TallSeagrass => "minecraft:tall_seagrass", + Target => "minecraft:target", + Test => "minecraft:test", + TestInstance => "minecraft:test_instance", + TintedGlass => "minecraft:tinted_glass", + TintedParticleLeaves => "minecraft:tinted_particle_leaves", + Tnt => "minecraft:tnt", + TorchflowerCrop => "minecraft:torchflower_crop", + Torch => "minecraft:torch", + Transparent => "minecraft:transparent", + Trapdoor => "minecraft:trapdoor", + TrappedChest => "minecraft:trapped_chest", + TrialSpawner => "minecraft:trial_spawner", + TripWireHook => "minecraft:trip_wire_hook", + Tripwire => "minecraft:tripwire", + TurtleEgg => "minecraft:turtle_egg", + TwistingVinesPlant => "minecraft:twisting_vines_plant", + TwistingVines => "minecraft:twisting_vines", + UntintedParticleLeaves => "minecraft:untinted_particle_leaves", + Vault => "minecraft:vault", + Vine => "minecraft:vine", + WallBanner => "minecraft:wall_banner", + WallHangingSign => "minecraft:wall_hanging_sign", + WallSign => "minecraft:wall_sign", + WallSkull => "minecraft:wall_skull", + WallTorch => "minecraft:wall_torch", + Wall => "minecraft:wall", + Waterlily => "minecraft:waterlily", + WaterloggedTransparent => "minecraft:waterlogged_transparent", + WeatheringCopperBar => "minecraft:weathering_copper_bar", + WeatheringCopperBulb => "minecraft:weathering_copper_bulb", + WeatheringCopperChain => "minecraft:weathering_copper_chain", + WeatheringCopperChest => "minecraft:weathering_copper_chest", + WeatheringCopperDoor => "minecraft:weathering_copper_door", + WeatheringCopperFull => "minecraft:weathering_copper_full", + WeatheringCopperGolemStatue => "minecraft:weathering_copper_golem_statue", + WeatheringCopperGrate => "minecraft:weathering_copper_grate", + WeatheringCopperSlab => "minecraft:weathering_copper_slab", + WeatheringCopperStair => "minecraft:weathering_copper_stair", + WeatheringCopperTrapDoor => "minecraft:weathering_copper_trap_door", + WeatheringLantern => "minecraft:weathering_lantern", + WeatheringLightningRod => "minecraft:weathering_lightning_rod", + Web => "minecraft:web", + WeepingVinesPlant => "minecraft:weeping_vines_plant", + WeepingVines => "minecraft:weeping_vines", + WeightedPressurePlate => "minecraft:weighted_pressure_plate", + WetSponge => "minecraft:wet_sponge", + WitherRose => "minecraft:wither_rose", + WitherSkull => "minecraft:wither_skull", + WitherWallSkull => "minecraft:wither_wall_skull", + WoolCarpet => "minecraft:wool_carpet", +} +} + +registry! { +/// Every type of item in the game. +/// +/// You might find it useful in some cases to check for categories of items +/// with [`azalea_registry::tags::items`](crate::tags::items), like this +/// +/// ``` +/// let item = azalea_registry::Item::OakLog; +/// let is_log = azalea_registry::tags::items::LOGS.contains(&item); +/// assert!(is_log); +enum ItemKind { + Air => "minecraft:air", + Stone => "minecraft:stone", + Granite => "minecraft:granite", + PolishedGranite => "minecraft:polished_granite", + Diorite => "minecraft:diorite", + PolishedDiorite => "minecraft:polished_diorite", + Andesite => "minecraft:andesite", + PolishedAndesite => "minecraft:polished_andesite", + Deepslate => "minecraft:deepslate", + CobbledDeepslate => "minecraft:cobbled_deepslate", + PolishedDeepslate => "minecraft:polished_deepslate", + Calcite => "minecraft:calcite", + Tuff => "minecraft:tuff", + TuffSlab => "minecraft:tuff_slab", + TuffStairs => "minecraft:tuff_stairs", + TuffWall => "minecraft:tuff_wall", + ChiseledTuff => "minecraft:chiseled_tuff", + PolishedTuff => "minecraft:polished_tuff", + PolishedTuffSlab => "minecraft:polished_tuff_slab", + PolishedTuffStairs => "minecraft:polished_tuff_stairs", + PolishedTuffWall => "minecraft:polished_tuff_wall", + TuffBricks => "minecraft:tuff_bricks", + TuffBrickSlab => "minecraft:tuff_brick_slab", + TuffBrickStairs => "minecraft:tuff_brick_stairs", + TuffBrickWall => "minecraft:tuff_brick_wall", + ChiseledTuffBricks => "minecraft:chiseled_tuff_bricks", + DripstoneBlock => "minecraft:dripstone_block", + GrassBlock => "minecraft:grass_block", + Dirt => "minecraft:dirt", + CoarseDirt => "minecraft:coarse_dirt", + Podzol => "minecraft:podzol", + RootedDirt => "minecraft:rooted_dirt", + Mud => "minecraft:mud", + CrimsonNylium => "minecraft:crimson_nylium", + WarpedNylium => "minecraft:warped_nylium", + Cobblestone => "minecraft:cobblestone", + OakPlanks => "minecraft:oak_planks", + SprucePlanks => "minecraft:spruce_planks", + BirchPlanks => "minecraft:birch_planks", + JunglePlanks => "minecraft:jungle_planks", + AcaciaPlanks => "minecraft:acacia_planks", + CherryPlanks => "minecraft:cherry_planks", + DarkOakPlanks => "minecraft:dark_oak_planks", + PaleOakPlanks => "minecraft:pale_oak_planks", + MangrovePlanks => "minecraft:mangrove_planks", + BambooPlanks => "minecraft:bamboo_planks", + CrimsonPlanks => "minecraft:crimson_planks", + WarpedPlanks => "minecraft:warped_planks", + BambooMosaic => "minecraft:bamboo_mosaic", + OakSapling => "minecraft:oak_sapling", + SpruceSapling => "minecraft:spruce_sapling", + BirchSapling => "minecraft:birch_sapling", + JungleSapling => "minecraft:jungle_sapling", + AcaciaSapling => "minecraft:acacia_sapling", + CherrySapling => "minecraft:cherry_sapling", + DarkOakSapling => "minecraft:dark_oak_sapling", + PaleOakSapling => "minecraft:pale_oak_sapling", + MangrovePropagule => "minecraft:mangrove_propagule", + Bedrock => "minecraft:bedrock", + Sand => "minecraft:sand", + SuspiciousSand => "minecraft:suspicious_sand", + SuspiciousGravel => "minecraft:suspicious_gravel", + RedSand => "minecraft:red_sand", + Gravel => "minecraft:gravel", + CoalOre => "minecraft:coal_ore", + DeepslateCoalOre => "minecraft:deepslate_coal_ore", + IronOre => "minecraft:iron_ore", + DeepslateIronOre => "minecraft:deepslate_iron_ore", + CopperOre => "minecraft:copper_ore", + DeepslateCopperOre => "minecraft:deepslate_copper_ore", + GoldOre => "minecraft:gold_ore", + DeepslateGoldOre => "minecraft:deepslate_gold_ore", + RedstoneOre => "minecraft:redstone_ore", + DeepslateRedstoneOre => "minecraft:deepslate_redstone_ore", + EmeraldOre => "minecraft:emerald_ore", + DeepslateEmeraldOre => "minecraft:deepslate_emerald_ore", + LapisOre => "minecraft:lapis_ore", + DeepslateLapisOre => "minecraft:deepslate_lapis_ore", + DiamondOre => "minecraft:diamond_ore", + DeepslateDiamondOre => "minecraft:deepslate_diamond_ore", + NetherGoldOre => "minecraft:nether_gold_ore", + NetherQuartzOre => "minecraft:nether_quartz_ore", + AncientDebris => "minecraft:ancient_debris", + CoalBlock => "minecraft:coal_block", + RawIronBlock => "minecraft:raw_iron_block", + RawCopperBlock => "minecraft:raw_copper_block", + RawGoldBlock => "minecraft:raw_gold_block", + HeavyCore => "minecraft:heavy_core", + AmethystBlock => "minecraft:amethyst_block", + BuddingAmethyst => "minecraft:budding_amethyst", + IronBlock => "minecraft:iron_block", + CopperBlock => "minecraft:copper_block", + GoldBlock => "minecraft:gold_block", + DiamondBlock => "minecraft:diamond_block", + NetheriteBlock => "minecraft:netherite_block", + ExposedCopper => "minecraft:exposed_copper", + WeatheredCopper => "minecraft:weathered_copper", + OxidizedCopper => "minecraft:oxidized_copper", + ChiseledCopper => "minecraft:chiseled_copper", + ExposedChiseledCopper => "minecraft:exposed_chiseled_copper", + WeatheredChiseledCopper => "minecraft:weathered_chiseled_copper", + OxidizedChiseledCopper => "minecraft:oxidized_chiseled_copper", + CutCopper => "minecraft:cut_copper", + ExposedCutCopper => "minecraft:exposed_cut_copper", + WeatheredCutCopper => "minecraft:weathered_cut_copper", + OxidizedCutCopper => "minecraft:oxidized_cut_copper", + CutCopperStairs => "minecraft:cut_copper_stairs", + ExposedCutCopperStairs => "minecraft:exposed_cut_copper_stairs", + WeatheredCutCopperStairs => "minecraft:weathered_cut_copper_stairs", + OxidizedCutCopperStairs => "minecraft:oxidized_cut_copper_stairs", + CutCopperSlab => "minecraft:cut_copper_slab", + ExposedCutCopperSlab => "minecraft:exposed_cut_copper_slab", + WeatheredCutCopperSlab => "minecraft:weathered_cut_copper_slab", + OxidizedCutCopperSlab => "minecraft:oxidized_cut_copper_slab", + WaxedCopperBlock => "minecraft:waxed_copper_block", + WaxedExposedCopper => "minecraft:waxed_exposed_copper", + WaxedWeatheredCopper => "minecraft:waxed_weathered_copper", + WaxedOxidizedCopper => "minecraft:waxed_oxidized_copper", + WaxedChiseledCopper => "minecraft:waxed_chiseled_copper", + WaxedExposedChiseledCopper => "minecraft:waxed_exposed_chiseled_copper", + WaxedWeatheredChiseledCopper => "minecraft:waxed_weathered_chiseled_copper", + WaxedOxidizedChiseledCopper => "minecraft:waxed_oxidized_chiseled_copper", + WaxedCutCopper => "minecraft:waxed_cut_copper", + WaxedExposedCutCopper => "minecraft:waxed_exposed_cut_copper", + WaxedWeatheredCutCopper => "minecraft:waxed_weathered_cut_copper", + WaxedOxidizedCutCopper => "minecraft:waxed_oxidized_cut_copper", + WaxedCutCopperStairs => "minecraft:waxed_cut_copper_stairs", + WaxedExposedCutCopperStairs => "minecraft:waxed_exposed_cut_copper_stairs", + WaxedWeatheredCutCopperStairs => "minecraft:waxed_weathered_cut_copper_stairs", + WaxedOxidizedCutCopperStairs => "minecraft:waxed_oxidized_cut_copper_stairs", + WaxedCutCopperSlab => "minecraft:waxed_cut_copper_slab", + WaxedExposedCutCopperSlab => "minecraft:waxed_exposed_cut_copper_slab", + WaxedWeatheredCutCopperSlab => "minecraft:waxed_weathered_cut_copper_slab", + WaxedOxidizedCutCopperSlab => "minecraft:waxed_oxidized_cut_copper_slab", + OakLog => "minecraft:oak_log", + SpruceLog => "minecraft:spruce_log", + BirchLog => "minecraft:birch_log", + JungleLog => "minecraft:jungle_log", + AcaciaLog => "minecraft:acacia_log", + CherryLog => "minecraft:cherry_log", + PaleOakLog => "minecraft:pale_oak_log", + DarkOakLog => "minecraft:dark_oak_log", + MangroveLog => "minecraft:mangrove_log", + MangroveRoots => "minecraft:mangrove_roots", + MuddyMangroveRoots => "minecraft:muddy_mangrove_roots", + CrimsonStem => "minecraft:crimson_stem", + WarpedStem => "minecraft:warped_stem", + BambooBlock => "minecraft:bamboo_block", + StrippedOakLog => "minecraft:stripped_oak_log", + StrippedSpruceLog => "minecraft:stripped_spruce_log", + StrippedBirchLog => "minecraft:stripped_birch_log", + StrippedJungleLog => "minecraft:stripped_jungle_log", + StrippedAcaciaLog => "minecraft:stripped_acacia_log", + StrippedCherryLog => "minecraft:stripped_cherry_log", + StrippedDarkOakLog => "minecraft:stripped_dark_oak_log", + StrippedPaleOakLog => "minecraft:stripped_pale_oak_log", + StrippedMangroveLog => "minecraft:stripped_mangrove_log", + StrippedCrimsonStem => "minecraft:stripped_crimson_stem", + StrippedWarpedStem => "minecraft:stripped_warped_stem", + StrippedOakWood => "minecraft:stripped_oak_wood", + StrippedSpruceWood => "minecraft:stripped_spruce_wood", + StrippedBirchWood => "minecraft:stripped_birch_wood", + StrippedJungleWood => "minecraft:stripped_jungle_wood", + StrippedAcaciaWood => "minecraft:stripped_acacia_wood", + StrippedCherryWood => "minecraft:stripped_cherry_wood", + StrippedDarkOakWood => "minecraft:stripped_dark_oak_wood", + StrippedPaleOakWood => "minecraft:stripped_pale_oak_wood", + StrippedMangroveWood => "minecraft:stripped_mangrove_wood", + StrippedCrimsonHyphae => "minecraft:stripped_crimson_hyphae", + StrippedWarpedHyphae => "minecraft:stripped_warped_hyphae", + StrippedBambooBlock => "minecraft:stripped_bamboo_block", + OakWood => "minecraft:oak_wood", + SpruceWood => "minecraft:spruce_wood", + BirchWood => "minecraft:birch_wood", + JungleWood => "minecraft:jungle_wood", + AcaciaWood => "minecraft:acacia_wood", + CherryWood => "minecraft:cherry_wood", + PaleOakWood => "minecraft:pale_oak_wood", + DarkOakWood => "minecraft:dark_oak_wood", + MangroveWood => "minecraft:mangrove_wood", + CrimsonHyphae => "minecraft:crimson_hyphae", + WarpedHyphae => "minecraft:warped_hyphae", + OakLeaves => "minecraft:oak_leaves", + SpruceLeaves => "minecraft:spruce_leaves", + BirchLeaves => "minecraft:birch_leaves", + JungleLeaves => "minecraft:jungle_leaves", + AcaciaLeaves => "minecraft:acacia_leaves", + CherryLeaves => "minecraft:cherry_leaves", + DarkOakLeaves => "minecraft:dark_oak_leaves", + PaleOakLeaves => "minecraft:pale_oak_leaves", + MangroveLeaves => "minecraft:mangrove_leaves", + AzaleaLeaves => "minecraft:azalea_leaves", + FloweringAzaleaLeaves => "minecraft:flowering_azalea_leaves", + Sponge => "minecraft:sponge", + WetSponge => "minecraft:wet_sponge", + Glass => "minecraft:glass", + TintedGlass => "minecraft:tinted_glass", + LapisBlock => "minecraft:lapis_block", + Sandstone => "minecraft:sandstone", + ChiseledSandstone => "minecraft:chiseled_sandstone", + CutSandstone => "minecraft:cut_sandstone", + Cobweb => "minecraft:cobweb", + ShortGrass => "minecraft:short_grass", + Fern => "minecraft:fern", + Bush => "minecraft:bush", + Azalea => "minecraft:azalea", + FloweringAzalea => "minecraft:flowering_azalea", + DeadBush => "minecraft:dead_bush", + FireflyBush => "minecraft:firefly_bush", + ShortDryGrass => "minecraft:short_dry_grass", + TallDryGrass => "minecraft:tall_dry_grass", + Seagrass => "minecraft:seagrass", + SeaPickle => "minecraft:sea_pickle", + WhiteWool => "minecraft:white_wool", + OrangeWool => "minecraft:orange_wool", + MagentaWool => "minecraft:magenta_wool", + LightBlueWool => "minecraft:light_blue_wool", + YellowWool => "minecraft:yellow_wool", + LimeWool => "minecraft:lime_wool", + PinkWool => "minecraft:pink_wool", + GrayWool => "minecraft:gray_wool", + LightGrayWool => "minecraft:light_gray_wool", + CyanWool => "minecraft:cyan_wool", + PurpleWool => "minecraft:purple_wool", + BlueWool => "minecraft:blue_wool", + BrownWool => "minecraft:brown_wool", + GreenWool => "minecraft:green_wool", + RedWool => "minecraft:red_wool", + BlackWool => "minecraft:black_wool", + Dandelion => "minecraft:dandelion", + OpenEyeblossom => "minecraft:open_eyeblossom", + ClosedEyeblossom => "minecraft:closed_eyeblossom", + Poppy => "minecraft:poppy", + BlueOrchid => "minecraft:blue_orchid", + Allium => "minecraft:allium", + AzureBluet => "minecraft:azure_bluet", + RedTulip => "minecraft:red_tulip", + OrangeTulip => "minecraft:orange_tulip", + WhiteTulip => "minecraft:white_tulip", + PinkTulip => "minecraft:pink_tulip", + OxeyeDaisy => "minecraft:oxeye_daisy", + Cornflower => "minecraft:cornflower", + LilyOfTheValley => "minecraft:lily_of_the_valley", + WitherRose => "minecraft:wither_rose", + Torchflower => "minecraft:torchflower", + PitcherPlant => "minecraft:pitcher_plant", + SporeBlossom => "minecraft:spore_blossom", + BrownMushroom => "minecraft:brown_mushroom", + RedMushroom => "minecraft:red_mushroom", + CrimsonFungus => "minecraft:crimson_fungus", + WarpedFungus => "minecraft:warped_fungus", + CrimsonRoots => "minecraft:crimson_roots", + WarpedRoots => "minecraft:warped_roots", + NetherSprouts => "minecraft:nether_sprouts", + WeepingVines => "minecraft:weeping_vines", + TwistingVines => "minecraft:twisting_vines", + SugarCane => "minecraft:sugar_cane", + Kelp => "minecraft:kelp", + PinkPetals => "minecraft:pink_petals", + Wildflowers => "minecraft:wildflowers", + LeafLitter => "minecraft:leaf_litter", + MossCarpet => "minecraft:moss_carpet", + MossBlock => "minecraft:moss_block", + PaleMossCarpet => "minecraft:pale_moss_carpet", + PaleHangingMoss => "minecraft:pale_hanging_moss", + PaleMossBlock => "minecraft:pale_moss_block", + HangingRoots => "minecraft:hanging_roots", + BigDripleaf => "minecraft:big_dripleaf", + SmallDripleaf => "minecraft:small_dripleaf", + Bamboo => "minecraft:bamboo", + OakSlab => "minecraft:oak_slab", + SpruceSlab => "minecraft:spruce_slab", + BirchSlab => "minecraft:birch_slab", + JungleSlab => "minecraft:jungle_slab", + AcaciaSlab => "minecraft:acacia_slab", + CherrySlab => "minecraft:cherry_slab", + DarkOakSlab => "minecraft:dark_oak_slab", + PaleOakSlab => "minecraft:pale_oak_slab", + MangroveSlab => "minecraft:mangrove_slab", + BambooSlab => "minecraft:bamboo_slab", + BambooMosaicSlab => "minecraft:bamboo_mosaic_slab", + CrimsonSlab => "minecraft:crimson_slab", + WarpedSlab => "minecraft:warped_slab", + StoneSlab => "minecraft:stone_slab", + SmoothStoneSlab => "minecraft:smooth_stone_slab", + SandstoneSlab => "minecraft:sandstone_slab", + CutSandstoneSlab => "minecraft:cut_sandstone_slab", + PetrifiedOakSlab => "minecraft:petrified_oak_slab", + CobblestoneSlab => "minecraft:cobblestone_slab", + BrickSlab => "minecraft:brick_slab", + StoneBrickSlab => "minecraft:stone_brick_slab", + MudBrickSlab => "minecraft:mud_brick_slab", + NetherBrickSlab => "minecraft:nether_brick_slab", + QuartzSlab => "minecraft:quartz_slab", + RedSandstoneSlab => "minecraft:red_sandstone_slab", + CutRedSandstoneSlab => "minecraft:cut_red_sandstone_slab", + PurpurSlab => "minecraft:purpur_slab", + PrismarineSlab => "minecraft:prismarine_slab", + PrismarineBrickSlab => "minecraft:prismarine_brick_slab", + DarkPrismarineSlab => "minecraft:dark_prismarine_slab", + SmoothQuartz => "minecraft:smooth_quartz", + SmoothRedSandstone => "minecraft:smooth_red_sandstone", + SmoothSandstone => "minecraft:smooth_sandstone", + SmoothStone => "minecraft:smooth_stone", + Bricks => "minecraft:bricks", + AcaciaShelf => "minecraft:acacia_shelf", + BambooShelf => "minecraft:bamboo_shelf", + BirchShelf => "minecraft:birch_shelf", + CherryShelf => "minecraft:cherry_shelf", + CrimsonShelf => "minecraft:crimson_shelf", + DarkOakShelf => "minecraft:dark_oak_shelf", + JungleShelf => "minecraft:jungle_shelf", + MangroveShelf => "minecraft:mangrove_shelf", + OakShelf => "minecraft:oak_shelf", + PaleOakShelf => "minecraft:pale_oak_shelf", + SpruceShelf => "minecraft:spruce_shelf", + WarpedShelf => "minecraft:warped_shelf", + Bookshelf => "minecraft:bookshelf", + ChiseledBookshelf => "minecraft:chiseled_bookshelf", + DecoratedPot => "minecraft:decorated_pot", + MossyCobblestone => "minecraft:mossy_cobblestone", + Obsidian => "minecraft:obsidian", + Torch => "minecraft:torch", + EndRod => "minecraft:end_rod", + ChorusPlant => "minecraft:chorus_plant", + ChorusFlower => "minecraft:chorus_flower", + PurpurBlock => "minecraft:purpur_block", + PurpurPillar => "minecraft:purpur_pillar", + PurpurStairs => "minecraft:purpur_stairs", + Spawner => "minecraft:spawner", + CreakingHeart => "minecraft:creaking_heart", + Chest => "minecraft:chest", + CraftingTable => "minecraft:crafting_table", + Farmland => "minecraft:farmland", + Furnace => "minecraft:furnace", + Ladder => "minecraft:ladder", + CobblestoneStairs => "minecraft:cobblestone_stairs", + Snow => "minecraft:snow", + Ice => "minecraft:ice", + SnowBlock => "minecraft:snow_block", + Cactus => "minecraft:cactus", + CactusFlower => "minecraft:cactus_flower", + Clay => "minecraft:clay", + Jukebox => "minecraft:jukebox", + OakFence => "minecraft:oak_fence", + SpruceFence => "minecraft:spruce_fence", + BirchFence => "minecraft:birch_fence", + JungleFence => "minecraft:jungle_fence", + AcaciaFence => "minecraft:acacia_fence", + CherryFence => "minecraft:cherry_fence", + DarkOakFence => "minecraft:dark_oak_fence", + PaleOakFence => "minecraft:pale_oak_fence", + MangroveFence => "minecraft:mangrove_fence", + BambooFence => "minecraft:bamboo_fence", + CrimsonFence => "minecraft:crimson_fence", + WarpedFence => "minecraft:warped_fence", + Pumpkin => "minecraft:pumpkin", + CarvedPumpkin => "minecraft:carved_pumpkin", + JackOLantern => "minecraft:jack_o_lantern", + Netherrack => "minecraft:netherrack", + SoulSand => "minecraft:soul_sand", + SoulSoil => "minecraft:soul_soil", + Basalt => "minecraft:basalt", + PolishedBasalt => "minecraft:polished_basalt", + SmoothBasalt => "minecraft:smooth_basalt", + SoulTorch => "minecraft:soul_torch", + CopperTorch => "minecraft:copper_torch", + Glowstone => "minecraft:glowstone", + InfestedStone => "minecraft:infested_stone", + InfestedCobblestone => "minecraft:infested_cobblestone", + InfestedStoneBricks => "minecraft:infested_stone_bricks", + InfestedMossyStoneBricks => "minecraft:infested_mossy_stone_bricks", + InfestedCrackedStoneBricks => "minecraft:infested_cracked_stone_bricks", + InfestedChiseledStoneBricks => "minecraft:infested_chiseled_stone_bricks", + InfestedDeepslate => "minecraft:infested_deepslate", + StoneBricks => "minecraft:stone_bricks", + MossyStoneBricks => "minecraft:mossy_stone_bricks", + CrackedStoneBricks => "minecraft:cracked_stone_bricks", + ChiseledStoneBricks => "minecraft:chiseled_stone_bricks", + PackedMud => "minecraft:packed_mud", + MudBricks => "minecraft:mud_bricks", + DeepslateBricks => "minecraft:deepslate_bricks", + CrackedDeepslateBricks => "minecraft:cracked_deepslate_bricks", + DeepslateTiles => "minecraft:deepslate_tiles", + CrackedDeepslateTiles => "minecraft:cracked_deepslate_tiles", + ChiseledDeepslate => "minecraft:chiseled_deepslate", + ReinforcedDeepslate => "minecraft:reinforced_deepslate", + BrownMushroomBlock => "minecraft:brown_mushroom_block", + RedMushroomBlock => "minecraft:red_mushroom_block", + MushroomStem => "minecraft:mushroom_stem", + IronBars => "minecraft:iron_bars", + CopperBars => "minecraft:copper_bars", + ExposedCopperBars => "minecraft:exposed_copper_bars", + WeatheredCopperBars => "minecraft:weathered_copper_bars", + OxidizedCopperBars => "minecraft:oxidized_copper_bars", + WaxedCopperBars => "minecraft:waxed_copper_bars", + WaxedExposedCopperBars => "minecraft:waxed_exposed_copper_bars", + WaxedWeatheredCopperBars => "minecraft:waxed_weathered_copper_bars", + WaxedOxidizedCopperBars => "minecraft:waxed_oxidized_copper_bars", + IronChain => "minecraft:iron_chain", + CopperChain => "minecraft:copper_chain", + ExposedCopperChain => "minecraft:exposed_copper_chain", + WeatheredCopperChain => "minecraft:weathered_copper_chain", + OxidizedCopperChain => "minecraft:oxidized_copper_chain", + WaxedCopperChain => "minecraft:waxed_copper_chain", + WaxedExposedCopperChain => "minecraft:waxed_exposed_copper_chain", + WaxedWeatheredCopperChain => "minecraft:waxed_weathered_copper_chain", + WaxedOxidizedCopperChain => "minecraft:waxed_oxidized_copper_chain", + GlassPane => "minecraft:glass_pane", + Melon => "minecraft:melon", + Vine => "minecraft:vine", + GlowLichen => "minecraft:glow_lichen", + ResinClump => "minecraft:resin_clump", + ResinBlock => "minecraft:resin_block", + ResinBricks => "minecraft:resin_bricks", + ResinBrickStairs => "minecraft:resin_brick_stairs", + ResinBrickSlab => "minecraft:resin_brick_slab", + ResinBrickWall => "minecraft:resin_brick_wall", + ChiseledResinBricks => "minecraft:chiseled_resin_bricks", + BrickStairs => "minecraft:brick_stairs", + StoneBrickStairs => "minecraft:stone_brick_stairs", + MudBrickStairs => "minecraft:mud_brick_stairs", + Mycelium => "minecraft:mycelium", + LilyPad => "minecraft:lily_pad", + NetherBricks => "minecraft:nether_bricks", + CrackedNetherBricks => "minecraft:cracked_nether_bricks", + ChiseledNetherBricks => "minecraft:chiseled_nether_bricks", + NetherBrickFence => "minecraft:nether_brick_fence", + NetherBrickStairs => "minecraft:nether_brick_stairs", + Sculk => "minecraft:sculk", + SculkVein => "minecraft:sculk_vein", + SculkCatalyst => "minecraft:sculk_catalyst", + SculkShrieker => "minecraft:sculk_shrieker", + EnchantingTable => "minecraft:enchanting_table", + EndPortalFrame => "minecraft:end_portal_frame", + EndStone => "minecraft:end_stone", + EndStoneBricks => "minecraft:end_stone_bricks", + DragonEgg => "minecraft:dragon_egg", + SandstoneStairs => "minecraft:sandstone_stairs", + EnderChest => "minecraft:ender_chest", + EmeraldBlock => "minecraft:emerald_block", + OakStairs => "minecraft:oak_stairs", + SpruceStairs => "minecraft:spruce_stairs", + BirchStairs => "minecraft:birch_stairs", + JungleStairs => "minecraft:jungle_stairs", + AcaciaStairs => "minecraft:acacia_stairs", + CherryStairs => "minecraft:cherry_stairs", + DarkOakStairs => "minecraft:dark_oak_stairs", + PaleOakStairs => "minecraft:pale_oak_stairs", + MangroveStairs => "minecraft:mangrove_stairs", + BambooStairs => "minecraft:bamboo_stairs", + BambooMosaicStairs => "minecraft:bamboo_mosaic_stairs", + CrimsonStairs => "minecraft:crimson_stairs", + WarpedStairs => "minecraft:warped_stairs", + CommandBlock => "minecraft:command_block", + Beacon => "minecraft:beacon", + CobblestoneWall => "minecraft:cobblestone_wall", + MossyCobblestoneWall => "minecraft:mossy_cobblestone_wall", + BrickWall => "minecraft:brick_wall", + PrismarineWall => "minecraft:prismarine_wall", + RedSandstoneWall => "minecraft:red_sandstone_wall", + MossyStoneBrickWall => "minecraft:mossy_stone_brick_wall", + GraniteWall => "minecraft:granite_wall", + StoneBrickWall => "minecraft:stone_brick_wall", + MudBrickWall => "minecraft:mud_brick_wall", + NetherBrickWall => "minecraft:nether_brick_wall", + AndesiteWall => "minecraft:andesite_wall", + RedNetherBrickWall => "minecraft:red_nether_brick_wall", + SandstoneWall => "minecraft:sandstone_wall", + EndStoneBrickWall => "minecraft:end_stone_brick_wall", + DioriteWall => "minecraft:diorite_wall", + BlackstoneWall => "minecraft:blackstone_wall", + PolishedBlackstoneWall => "minecraft:polished_blackstone_wall", + PolishedBlackstoneBrickWall => "minecraft:polished_blackstone_brick_wall", + CobbledDeepslateWall => "minecraft:cobbled_deepslate_wall", + PolishedDeepslateWall => "minecraft:polished_deepslate_wall", + DeepslateBrickWall => "minecraft:deepslate_brick_wall", + DeepslateTileWall => "minecraft:deepslate_tile_wall", + Anvil => "minecraft:anvil", + ChippedAnvil => "minecraft:chipped_anvil", + DamagedAnvil => "minecraft:damaged_anvil", + ChiseledQuartzBlock => "minecraft:chiseled_quartz_block", + QuartzBlock => "minecraft:quartz_block", + QuartzBricks => "minecraft:quartz_bricks", + QuartzPillar => "minecraft:quartz_pillar", + QuartzStairs => "minecraft:quartz_stairs", + WhiteTerracotta => "minecraft:white_terracotta", + OrangeTerracotta => "minecraft:orange_terracotta", + MagentaTerracotta => "minecraft:magenta_terracotta", + LightBlueTerracotta => "minecraft:light_blue_terracotta", + YellowTerracotta => "minecraft:yellow_terracotta", + LimeTerracotta => "minecraft:lime_terracotta", + PinkTerracotta => "minecraft:pink_terracotta", + GrayTerracotta => "minecraft:gray_terracotta", + LightGrayTerracotta => "minecraft:light_gray_terracotta", + CyanTerracotta => "minecraft:cyan_terracotta", + PurpleTerracotta => "minecraft:purple_terracotta", + BlueTerracotta => "minecraft:blue_terracotta", + BrownTerracotta => "minecraft:brown_terracotta", + GreenTerracotta => "minecraft:green_terracotta", + RedTerracotta => "minecraft:red_terracotta", + BlackTerracotta => "minecraft:black_terracotta", + Barrier => "minecraft:barrier", + Light => "minecraft:light", + HayBlock => "minecraft:hay_block", + WhiteCarpet => "minecraft:white_carpet", + OrangeCarpet => "minecraft:orange_carpet", + MagentaCarpet => "minecraft:magenta_carpet", + LightBlueCarpet => "minecraft:light_blue_carpet", + YellowCarpet => "minecraft:yellow_carpet", + LimeCarpet => "minecraft:lime_carpet", + PinkCarpet => "minecraft:pink_carpet", + GrayCarpet => "minecraft:gray_carpet", + LightGrayCarpet => "minecraft:light_gray_carpet", + CyanCarpet => "minecraft:cyan_carpet", + PurpleCarpet => "minecraft:purple_carpet", + BlueCarpet => "minecraft:blue_carpet", + BrownCarpet => "minecraft:brown_carpet", + GreenCarpet => "minecraft:green_carpet", + RedCarpet => "minecraft:red_carpet", + BlackCarpet => "minecraft:black_carpet", + Terracotta => "minecraft:terracotta", + PackedIce => "minecraft:packed_ice", + DirtPath => "minecraft:dirt_path", + Sunflower => "minecraft:sunflower", + Lilac => "minecraft:lilac", + RoseBush => "minecraft:rose_bush", + Peony => "minecraft:peony", + TallGrass => "minecraft:tall_grass", + LargeFern => "minecraft:large_fern", + WhiteStainedGlass => "minecraft:white_stained_glass", + OrangeStainedGlass => "minecraft:orange_stained_glass", + MagentaStainedGlass => "minecraft:magenta_stained_glass", + LightBlueStainedGlass => "minecraft:light_blue_stained_glass", + YellowStainedGlass => "minecraft:yellow_stained_glass", + LimeStainedGlass => "minecraft:lime_stained_glass", + PinkStainedGlass => "minecraft:pink_stained_glass", + GrayStainedGlass => "minecraft:gray_stained_glass", + LightGrayStainedGlass => "minecraft:light_gray_stained_glass", + CyanStainedGlass => "minecraft:cyan_stained_glass", + PurpleStainedGlass => "minecraft:purple_stained_glass", + BlueStainedGlass => "minecraft:blue_stained_glass", + BrownStainedGlass => "minecraft:brown_stained_glass", + GreenStainedGlass => "minecraft:green_stained_glass", + RedStainedGlass => "minecraft:red_stained_glass", + BlackStainedGlass => "minecraft:black_stained_glass", + WhiteStainedGlassPane => "minecraft:white_stained_glass_pane", + OrangeStainedGlassPane => "minecraft:orange_stained_glass_pane", + MagentaStainedGlassPane => "minecraft:magenta_stained_glass_pane", + LightBlueStainedGlassPane => "minecraft:light_blue_stained_glass_pane", + YellowStainedGlassPane => "minecraft:yellow_stained_glass_pane", + LimeStainedGlassPane => "minecraft:lime_stained_glass_pane", + PinkStainedGlassPane => "minecraft:pink_stained_glass_pane", + GrayStainedGlassPane => "minecraft:gray_stained_glass_pane", + LightGrayStainedGlassPane => "minecraft:light_gray_stained_glass_pane", + CyanStainedGlassPane => "minecraft:cyan_stained_glass_pane", + PurpleStainedGlassPane => "minecraft:purple_stained_glass_pane", + BlueStainedGlassPane => "minecraft:blue_stained_glass_pane", + BrownStainedGlassPane => "minecraft:brown_stained_glass_pane", + GreenStainedGlassPane => "minecraft:green_stained_glass_pane", + RedStainedGlassPane => "minecraft:red_stained_glass_pane", + BlackStainedGlassPane => "minecraft:black_stained_glass_pane", + Prismarine => "minecraft:prismarine", + PrismarineBricks => "minecraft:prismarine_bricks", + DarkPrismarine => "minecraft:dark_prismarine", + PrismarineStairs => "minecraft:prismarine_stairs", + PrismarineBrickStairs => "minecraft:prismarine_brick_stairs", + DarkPrismarineStairs => "minecraft:dark_prismarine_stairs", + SeaLantern => "minecraft:sea_lantern", + RedSandstone => "minecraft:red_sandstone", + ChiseledRedSandstone => "minecraft:chiseled_red_sandstone", + CutRedSandstone => "minecraft:cut_red_sandstone", + RedSandstoneStairs => "minecraft:red_sandstone_stairs", + RepeatingCommandBlock => "minecraft:repeating_command_block", + ChainCommandBlock => "minecraft:chain_command_block", + MagmaBlock => "minecraft:magma_block", + NetherWartBlock => "minecraft:nether_wart_block", + WarpedWartBlock => "minecraft:warped_wart_block", + RedNetherBricks => "minecraft:red_nether_bricks", + BoneBlock => "minecraft:bone_block", + StructureVoid => "minecraft:structure_void", + ShulkerBox => "minecraft:shulker_box", + WhiteShulkerBox => "minecraft:white_shulker_box", + OrangeShulkerBox => "minecraft:orange_shulker_box", + MagentaShulkerBox => "minecraft:magenta_shulker_box", + LightBlueShulkerBox => "minecraft:light_blue_shulker_box", + YellowShulkerBox => "minecraft:yellow_shulker_box", + LimeShulkerBox => "minecraft:lime_shulker_box", + PinkShulkerBox => "minecraft:pink_shulker_box", + GrayShulkerBox => "minecraft:gray_shulker_box", + LightGrayShulkerBox => "minecraft:light_gray_shulker_box", + CyanShulkerBox => "minecraft:cyan_shulker_box", + PurpleShulkerBox => "minecraft:purple_shulker_box", + BlueShulkerBox => "minecraft:blue_shulker_box", + BrownShulkerBox => "minecraft:brown_shulker_box", + GreenShulkerBox => "minecraft:green_shulker_box", + RedShulkerBox => "minecraft:red_shulker_box", + BlackShulkerBox => "minecraft:black_shulker_box", + WhiteGlazedTerracotta => "minecraft:white_glazed_terracotta", + OrangeGlazedTerracotta => "minecraft:orange_glazed_terracotta", + MagentaGlazedTerracotta => "minecraft:magenta_glazed_terracotta", + LightBlueGlazedTerracotta => "minecraft:light_blue_glazed_terracotta", + YellowGlazedTerracotta => "minecraft:yellow_glazed_terracotta", + LimeGlazedTerracotta => "minecraft:lime_glazed_terracotta", + PinkGlazedTerracotta => "minecraft:pink_glazed_terracotta", + GrayGlazedTerracotta => "minecraft:gray_glazed_terracotta", + LightGrayGlazedTerracotta => "minecraft:light_gray_glazed_terracotta", + CyanGlazedTerracotta => "minecraft:cyan_glazed_terracotta", + PurpleGlazedTerracotta => "minecraft:purple_glazed_terracotta", + BlueGlazedTerracotta => "minecraft:blue_glazed_terracotta", + BrownGlazedTerracotta => "minecraft:brown_glazed_terracotta", + GreenGlazedTerracotta => "minecraft:green_glazed_terracotta", + RedGlazedTerracotta => "minecraft:red_glazed_terracotta", + BlackGlazedTerracotta => "minecraft:black_glazed_terracotta", + WhiteConcrete => "minecraft:white_concrete", + OrangeConcrete => "minecraft:orange_concrete", + MagentaConcrete => "minecraft:magenta_concrete", + LightBlueConcrete => "minecraft:light_blue_concrete", + YellowConcrete => "minecraft:yellow_concrete", + LimeConcrete => "minecraft:lime_concrete", + PinkConcrete => "minecraft:pink_concrete", + GrayConcrete => "minecraft:gray_concrete", + LightGrayConcrete => "minecraft:light_gray_concrete", + CyanConcrete => "minecraft:cyan_concrete", + PurpleConcrete => "minecraft:purple_concrete", + BlueConcrete => "minecraft:blue_concrete", + BrownConcrete => "minecraft:brown_concrete", + GreenConcrete => "minecraft:green_concrete", + RedConcrete => "minecraft:red_concrete", + BlackConcrete => "minecraft:black_concrete", + WhiteConcretePowder => "minecraft:white_concrete_powder", + OrangeConcretePowder => "minecraft:orange_concrete_powder", + MagentaConcretePowder => "minecraft:magenta_concrete_powder", + LightBlueConcretePowder => "minecraft:light_blue_concrete_powder", + YellowConcretePowder => "minecraft:yellow_concrete_powder", + LimeConcretePowder => "minecraft:lime_concrete_powder", + PinkConcretePowder => "minecraft:pink_concrete_powder", + GrayConcretePowder => "minecraft:gray_concrete_powder", + LightGrayConcretePowder => "minecraft:light_gray_concrete_powder", + CyanConcretePowder => "minecraft:cyan_concrete_powder", + PurpleConcretePowder => "minecraft:purple_concrete_powder", + BlueConcretePowder => "minecraft:blue_concrete_powder", + BrownConcretePowder => "minecraft:brown_concrete_powder", + GreenConcretePowder => "minecraft:green_concrete_powder", + RedConcretePowder => "minecraft:red_concrete_powder", + BlackConcretePowder => "minecraft:black_concrete_powder", + TurtleEgg => "minecraft:turtle_egg", + SnifferEgg => "minecraft:sniffer_egg", + DriedGhast => "minecraft:dried_ghast", + DeadTubeCoralBlock => "minecraft:dead_tube_coral_block", + DeadBrainCoralBlock => "minecraft:dead_brain_coral_block", + DeadBubbleCoralBlock => "minecraft:dead_bubble_coral_block", + DeadFireCoralBlock => "minecraft:dead_fire_coral_block", + DeadHornCoralBlock => "minecraft:dead_horn_coral_block", + TubeCoralBlock => "minecraft:tube_coral_block", + BrainCoralBlock => "minecraft:brain_coral_block", + BubbleCoralBlock => "minecraft:bubble_coral_block", + FireCoralBlock => "minecraft:fire_coral_block", + HornCoralBlock => "minecraft:horn_coral_block", + TubeCoral => "minecraft:tube_coral", + BrainCoral => "minecraft:brain_coral", + BubbleCoral => "minecraft:bubble_coral", + FireCoral => "minecraft:fire_coral", + HornCoral => "minecraft:horn_coral", + DeadBrainCoral => "minecraft:dead_brain_coral", + DeadBubbleCoral => "minecraft:dead_bubble_coral", + DeadFireCoral => "minecraft:dead_fire_coral", + DeadHornCoral => "minecraft:dead_horn_coral", + DeadTubeCoral => "minecraft:dead_tube_coral", + TubeCoralFan => "minecraft:tube_coral_fan", + BrainCoralFan => "minecraft:brain_coral_fan", + BubbleCoralFan => "minecraft:bubble_coral_fan", + FireCoralFan => "minecraft:fire_coral_fan", + HornCoralFan => "minecraft:horn_coral_fan", + DeadTubeCoralFan => "minecraft:dead_tube_coral_fan", + DeadBrainCoralFan => "minecraft:dead_brain_coral_fan", + DeadBubbleCoralFan => "minecraft:dead_bubble_coral_fan", + DeadFireCoralFan => "minecraft:dead_fire_coral_fan", + DeadHornCoralFan => "minecraft:dead_horn_coral_fan", + BlueIce => "minecraft:blue_ice", + Conduit => "minecraft:conduit", + PolishedGraniteStairs => "minecraft:polished_granite_stairs", + SmoothRedSandstoneStairs => "minecraft:smooth_red_sandstone_stairs", + MossyStoneBrickStairs => "minecraft:mossy_stone_brick_stairs", + PolishedDioriteStairs => "minecraft:polished_diorite_stairs", + MossyCobblestoneStairs => "minecraft:mossy_cobblestone_stairs", + EndStoneBrickStairs => "minecraft:end_stone_brick_stairs", + StoneStairs => "minecraft:stone_stairs", + SmoothSandstoneStairs => "minecraft:smooth_sandstone_stairs", + SmoothQuartzStairs => "minecraft:smooth_quartz_stairs", + GraniteStairs => "minecraft:granite_stairs", + AndesiteStairs => "minecraft:andesite_stairs", + RedNetherBrickStairs => "minecraft:red_nether_brick_stairs", + PolishedAndesiteStairs => "minecraft:polished_andesite_stairs", + DioriteStairs => "minecraft:diorite_stairs", + CobbledDeepslateStairs => "minecraft:cobbled_deepslate_stairs", + PolishedDeepslateStairs => "minecraft:polished_deepslate_stairs", + DeepslateBrickStairs => "minecraft:deepslate_brick_stairs", + DeepslateTileStairs => "minecraft:deepslate_tile_stairs", + PolishedGraniteSlab => "minecraft:polished_granite_slab", + SmoothRedSandstoneSlab => "minecraft:smooth_red_sandstone_slab", + MossyStoneBrickSlab => "minecraft:mossy_stone_brick_slab", + PolishedDioriteSlab => "minecraft:polished_diorite_slab", + MossyCobblestoneSlab => "minecraft:mossy_cobblestone_slab", + EndStoneBrickSlab => "minecraft:end_stone_brick_slab", + SmoothSandstoneSlab => "minecraft:smooth_sandstone_slab", + SmoothQuartzSlab => "minecraft:smooth_quartz_slab", + GraniteSlab => "minecraft:granite_slab", + AndesiteSlab => "minecraft:andesite_slab", + RedNetherBrickSlab => "minecraft:red_nether_brick_slab", + PolishedAndesiteSlab => "minecraft:polished_andesite_slab", + DioriteSlab => "minecraft:diorite_slab", + CobbledDeepslateSlab => "minecraft:cobbled_deepslate_slab", + PolishedDeepslateSlab => "minecraft:polished_deepslate_slab", + DeepslateBrickSlab => "minecraft:deepslate_brick_slab", + DeepslateTileSlab => "minecraft:deepslate_tile_slab", + Scaffolding => "minecraft:scaffolding", + Redstone => "minecraft:redstone", + RedstoneTorch => "minecraft:redstone_torch", + RedstoneBlock => "minecraft:redstone_block", + Repeater => "minecraft:repeater", + Comparator => "minecraft:comparator", + Piston => "minecraft:piston", + StickyPiston => "minecraft:sticky_piston", + SlimeBlock => "minecraft:slime_block", + HoneyBlock => "minecraft:honey_block", + Observer => "minecraft:observer", + Hopper => "minecraft:hopper", + Dispenser => "minecraft:dispenser", + Dropper => "minecraft:dropper", + Lectern => "minecraft:lectern", + Target => "minecraft:target", + Lever => "minecraft:lever", + LightningRod => "minecraft:lightning_rod", + ExposedLightningRod => "minecraft:exposed_lightning_rod", + WeatheredLightningRod => "minecraft:weathered_lightning_rod", + OxidizedLightningRod => "minecraft:oxidized_lightning_rod", + WaxedLightningRod => "minecraft:waxed_lightning_rod", + WaxedExposedLightningRod => "minecraft:waxed_exposed_lightning_rod", + WaxedWeatheredLightningRod => "minecraft:waxed_weathered_lightning_rod", + WaxedOxidizedLightningRod => "minecraft:waxed_oxidized_lightning_rod", + DaylightDetector => "minecraft:daylight_detector", + SculkSensor => "minecraft:sculk_sensor", + CalibratedSculkSensor => "minecraft:calibrated_sculk_sensor", + TripwireHook => "minecraft:tripwire_hook", + TrappedChest => "minecraft:trapped_chest", + Tnt => "minecraft:tnt", + RedstoneLamp => "minecraft:redstone_lamp", + NoteBlock => "minecraft:note_block", + StoneButton => "minecraft:stone_button", + PolishedBlackstoneButton => "minecraft:polished_blackstone_button", + OakButton => "minecraft:oak_button", + SpruceButton => "minecraft:spruce_button", + BirchButton => "minecraft:birch_button", + JungleButton => "minecraft:jungle_button", + AcaciaButton => "minecraft:acacia_button", + CherryButton => "minecraft:cherry_button", + DarkOakButton => "minecraft:dark_oak_button", + PaleOakButton => "minecraft:pale_oak_button", + MangroveButton => "minecraft:mangrove_button", + BambooButton => "minecraft:bamboo_button", + CrimsonButton => "minecraft:crimson_button", + WarpedButton => "minecraft:warped_button", + StonePressurePlate => "minecraft:stone_pressure_plate", + PolishedBlackstonePressurePlate => "minecraft:polished_blackstone_pressure_plate", + LightWeightedPressurePlate => "minecraft:light_weighted_pressure_plate", + HeavyWeightedPressurePlate => "minecraft:heavy_weighted_pressure_plate", + OakPressurePlate => "minecraft:oak_pressure_plate", + SprucePressurePlate => "minecraft:spruce_pressure_plate", + BirchPressurePlate => "minecraft:birch_pressure_plate", + JunglePressurePlate => "minecraft:jungle_pressure_plate", + AcaciaPressurePlate => "minecraft:acacia_pressure_plate", + CherryPressurePlate => "minecraft:cherry_pressure_plate", + DarkOakPressurePlate => "minecraft:dark_oak_pressure_plate", + PaleOakPressurePlate => "minecraft:pale_oak_pressure_plate", + MangrovePressurePlate => "minecraft:mangrove_pressure_plate", + BambooPressurePlate => "minecraft:bamboo_pressure_plate", + CrimsonPressurePlate => "minecraft:crimson_pressure_plate", + WarpedPressurePlate => "minecraft:warped_pressure_plate", + IronDoor => "minecraft:iron_door", + OakDoor => "minecraft:oak_door", + SpruceDoor => "minecraft:spruce_door", + BirchDoor => "minecraft:birch_door", + JungleDoor => "minecraft:jungle_door", + AcaciaDoor => "minecraft:acacia_door", + CherryDoor => "minecraft:cherry_door", + DarkOakDoor => "minecraft:dark_oak_door", + PaleOakDoor => "minecraft:pale_oak_door", + MangroveDoor => "minecraft:mangrove_door", + BambooDoor => "minecraft:bamboo_door", + CrimsonDoor => "minecraft:crimson_door", + WarpedDoor => "minecraft:warped_door", + CopperDoor => "minecraft:copper_door", + ExposedCopperDoor => "minecraft:exposed_copper_door", + WeatheredCopperDoor => "minecraft:weathered_copper_door", + OxidizedCopperDoor => "minecraft:oxidized_copper_door", + WaxedCopperDoor => "minecraft:waxed_copper_door", + WaxedExposedCopperDoor => "minecraft:waxed_exposed_copper_door", + WaxedWeatheredCopperDoor => "minecraft:waxed_weathered_copper_door", + WaxedOxidizedCopperDoor => "minecraft:waxed_oxidized_copper_door", + IronTrapdoor => "minecraft:iron_trapdoor", + OakTrapdoor => "minecraft:oak_trapdoor", + SpruceTrapdoor => "minecraft:spruce_trapdoor", + BirchTrapdoor => "minecraft:birch_trapdoor", + JungleTrapdoor => "minecraft:jungle_trapdoor", + AcaciaTrapdoor => "minecraft:acacia_trapdoor", + CherryTrapdoor => "minecraft:cherry_trapdoor", + DarkOakTrapdoor => "minecraft:dark_oak_trapdoor", + PaleOakTrapdoor => "minecraft:pale_oak_trapdoor", + MangroveTrapdoor => "minecraft:mangrove_trapdoor", + BambooTrapdoor => "minecraft:bamboo_trapdoor", + CrimsonTrapdoor => "minecraft:crimson_trapdoor", + WarpedTrapdoor => "minecraft:warped_trapdoor", + CopperTrapdoor => "minecraft:copper_trapdoor", + ExposedCopperTrapdoor => "minecraft:exposed_copper_trapdoor", + WeatheredCopperTrapdoor => "minecraft:weathered_copper_trapdoor", + OxidizedCopperTrapdoor => "minecraft:oxidized_copper_trapdoor", + WaxedCopperTrapdoor => "minecraft:waxed_copper_trapdoor", + WaxedExposedCopperTrapdoor => "minecraft:waxed_exposed_copper_trapdoor", + WaxedWeatheredCopperTrapdoor => "minecraft:waxed_weathered_copper_trapdoor", + WaxedOxidizedCopperTrapdoor => "minecraft:waxed_oxidized_copper_trapdoor", + OakFenceGate => "minecraft:oak_fence_gate", + SpruceFenceGate => "minecraft:spruce_fence_gate", + BirchFenceGate => "minecraft:birch_fence_gate", + JungleFenceGate => "minecraft:jungle_fence_gate", + AcaciaFenceGate => "minecraft:acacia_fence_gate", + CherryFenceGate => "minecraft:cherry_fence_gate", + DarkOakFenceGate => "minecraft:dark_oak_fence_gate", + PaleOakFenceGate => "minecraft:pale_oak_fence_gate", + MangroveFenceGate => "minecraft:mangrove_fence_gate", + BambooFenceGate => "minecraft:bamboo_fence_gate", + CrimsonFenceGate => "minecraft:crimson_fence_gate", + WarpedFenceGate => "minecraft:warped_fence_gate", + PoweredRail => "minecraft:powered_rail", + DetectorRail => "minecraft:detector_rail", + Rail => "minecraft:rail", + ActivatorRail => "minecraft:activator_rail", + Saddle => "minecraft:saddle", + WhiteHarness => "minecraft:white_harness", + OrangeHarness => "minecraft:orange_harness", + MagentaHarness => "minecraft:magenta_harness", + LightBlueHarness => "minecraft:light_blue_harness", + YellowHarness => "minecraft:yellow_harness", + LimeHarness => "minecraft:lime_harness", + PinkHarness => "minecraft:pink_harness", + GrayHarness => "minecraft:gray_harness", + LightGrayHarness => "minecraft:light_gray_harness", + CyanHarness => "minecraft:cyan_harness", + PurpleHarness => "minecraft:purple_harness", + BlueHarness => "minecraft:blue_harness", + BrownHarness => "minecraft:brown_harness", + GreenHarness => "minecraft:green_harness", + RedHarness => "minecraft:red_harness", + BlackHarness => "minecraft:black_harness", + Minecart => "minecraft:minecart", + ChestMinecart => "minecraft:chest_minecart", + FurnaceMinecart => "minecraft:furnace_minecart", + TntMinecart => "minecraft:tnt_minecart", + HopperMinecart => "minecraft:hopper_minecart", + CarrotOnAStick => "minecraft:carrot_on_a_stick", + WarpedFungusOnAStick => "minecraft:warped_fungus_on_a_stick", + PhantomMembrane => "minecraft:phantom_membrane", + Elytra => "minecraft:elytra", + OakBoat => "minecraft:oak_boat", + OakChestBoat => "minecraft:oak_chest_boat", + SpruceBoat => "minecraft:spruce_boat", + SpruceChestBoat => "minecraft:spruce_chest_boat", + BirchBoat => "minecraft:birch_boat", + BirchChestBoat => "minecraft:birch_chest_boat", + JungleBoat => "minecraft:jungle_boat", + JungleChestBoat => "minecraft:jungle_chest_boat", + AcaciaBoat => "minecraft:acacia_boat", + AcaciaChestBoat => "minecraft:acacia_chest_boat", + CherryBoat => "minecraft:cherry_boat", + CherryChestBoat => "minecraft:cherry_chest_boat", + DarkOakBoat => "minecraft:dark_oak_boat", + DarkOakChestBoat => "minecraft:dark_oak_chest_boat", + PaleOakBoat => "minecraft:pale_oak_boat", + PaleOakChestBoat => "minecraft:pale_oak_chest_boat", + MangroveBoat => "minecraft:mangrove_boat", + MangroveChestBoat => "minecraft:mangrove_chest_boat", + BambooRaft => "minecraft:bamboo_raft", + BambooChestRaft => "minecraft:bamboo_chest_raft", + StructureBlock => "minecraft:structure_block", + Jigsaw => "minecraft:jigsaw", + TestBlock => "minecraft:test_block", + TestInstanceBlock => "minecraft:test_instance_block", + TurtleHelmet => "minecraft:turtle_helmet", + TurtleScute => "minecraft:turtle_scute", + ArmadilloScute => "minecraft:armadillo_scute", + WolfArmor => "minecraft:wolf_armor", + FlintAndSteel => "minecraft:flint_and_steel", + Bowl => "minecraft:bowl", + Apple => "minecraft:apple", + Bow => "minecraft:bow", + Arrow => "minecraft:arrow", + Coal => "minecraft:coal", + Charcoal => "minecraft:charcoal", + Diamond => "minecraft:diamond", + Emerald => "minecraft:emerald", + LapisLazuli => "minecraft:lapis_lazuli", + Quartz => "minecraft:quartz", + AmethystShard => "minecraft:amethyst_shard", + RawIron => "minecraft:raw_iron", + IronIngot => "minecraft:iron_ingot", + RawCopper => "minecraft:raw_copper", + CopperIngot => "minecraft:copper_ingot", + RawGold => "minecraft:raw_gold", + GoldIngot => "minecraft:gold_ingot", + NetheriteIngot => "minecraft:netherite_ingot", + NetheriteScrap => "minecraft:netherite_scrap", + WoodenSword => "minecraft:wooden_sword", + WoodenShovel => "minecraft:wooden_shovel", + WoodenPickaxe => "minecraft:wooden_pickaxe", + WoodenAxe => "minecraft:wooden_axe", + WoodenHoe => "minecraft:wooden_hoe", + CopperSword => "minecraft:copper_sword", + CopperShovel => "minecraft:copper_shovel", + CopperPickaxe => "minecraft:copper_pickaxe", + CopperAxe => "minecraft:copper_axe", + CopperHoe => "minecraft:copper_hoe", + StoneSword => "minecraft:stone_sword", + StoneShovel => "minecraft:stone_shovel", + StonePickaxe => "minecraft:stone_pickaxe", + StoneAxe => "minecraft:stone_axe", + StoneHoe => "minecraft:stone_hoe", + GoldenSword => "minecraft:golden_sword", + GoldenShovel => "minecraft:golden_shovel", + GoldenPickaxe => "minecraft:golden_pickaxe", + GoldenAxe => "minecraft:golden_axe", + GoldenHoe => "minecraft:golden_hoe", + IronSword => "minecraft:iron_sword", + IronShovel => "minecraft:iron_shovel", + IronPickaxe => "minecraft:iron_pickaxe", + IronAxe => "minecraft:iron_axe", + IronHoe => "minecraft:iron_hoe", + DiamondSword => "minecraft:diamond_sword", + DiamondShovel => "minecraft:diamond_shovel", + DiamondPickaxe => "minecraft:diamond_pickaxe", + DiamondAxe => "minecraft:diamond_axe", + DiamondHoe => "minecraft:diamond_hoe", + NetheriteSword => "minecraft:netherite_sword", + NetheriteShovel => "minecraft:netherite_shovel", + NetheritePickaxe => "minecraft:netherite_pickaxe", + NetheriteAxe => "minecraft:netherite_axe", + NetheriteHoe => "minecraft:netherite_hoe", + Stick => "minecraft:stick", + MushroomStew => "minecraft:mushroom_stew", + String => "minecraft:string", + Feather => "minecraft:feather", + Gunpowder => "minecraft:gunpowder", + WheatSeeds => "minecraft:wheat_seeds", + Wheat => "minecraft:wheat", + Bread => "minecraft:bread", + LeatherHelmet => "minecraft:leather_helmet", + LeatherChestplate => "minecraft:leather_chestplate", + LeatherLeggings => "minecraft:leather_leggings", + LeatherBoots => "minecraft:leather_boots", + CopperHelmet => "minecraft:copper_helmet", + CopperChestplate => "minecraft:copper_chestplate", + CopperLeggings => "minecraft:copper_leggings", + CopperBoots => "minecraft:copper_boots", + ChainmailHelmet => "minecraft:chainmail_helmet", + ChainmailChestplate => "minecraft:chainmail_chestplate", + ChainmailLeggings => "minecraft:chainmail_leggings", + ChainmailBoots => "minecraft:chainmail_boots", + IronHelmet => "minecraft:iron_helmet", + IronChestplate => "minecraft:iron_chestplate", + IronLeggings => "minecraft:iron_leggings", + IronBoots => "minecraft:iron_boots", + DiamondHelmet => "minecraft:diamond_helmet", + DiamondChestplate => "minecraft:diamond_chestplate", + DiamondLeggings => "minecraft:diamond_leggings", + DiamondBoots => "minecraft:diamond_boots", + GoldenHelmet => "minecraft:golden_helmet", + GoldenChestplate => "minecraft:golden_chestplate", + GoldenLeggings => "minecraft:golden_leggings", + GoldenBoots => "minecraft:golden_boots", + NetheriteHelmet => "minecraft:netherite_helmet", + NetheriteChestplate => "minecraft:netherite_chestplate", + NetheriteLeggings => "minecraft:netherite_leggings", + NetheriteBoots => "minecraft:netherite_boots", + Flint => "minecraft:flint", + Porkchop => "minecraft:porkchop", + CookedPorkchop => "minecraft:cooked_porkchop", + Painting => "minecraft:painting", + GoldenApple => "minecraft:golden_apple", + EnchantedGoldenApple => "minecraft:enchanted_golden_apple", + OakSign => "minecraft:oak_sign", + SpruceSign => "minecraft:spruce_sign", + BirchSign => "minecraft:birch_sign", + JungleSign => "minecraft:jungle_sign", + AcaciaSign => "minecraft:acacia_sign", + CherrySign => "minecraft:cherry_sign", + DarkOakSign => "minecraft:dark_oak_sign", + PaleOakSign => "minecraft:pale_oak_sign", + MangroveSign => "minecraft:mangrove_sign", + BambooSign => "minecraft:bamboo_sign", + CrimsonSign => "minecraft:crimson_sign", + WarpedSign => "minecraft:warped_sign", + OakHangingSign => "minecraft:oak_hanging_sign", + SpruceHangingSign => "minecraft:spruce_hanging_sign", + BirchHangingSign => "minecraft:birch_hanging_sign", + JungleHangingSign => "minecraft:jungle_hanging_sign", + AcaciaHangingSign => "minecraft:acacia_hanging_sign", + CherryHangingSign => "minecraft:cherry_hanging_sign", + DarkOakHangingSign => "minecraft:dark_oak_hanging_sign", + PaleOakHangingSign => "minecraft:pale_oak_hanging_sign", + MangroveHangingSign => "minecraft:mangrove_hanging_sign", + BambooHangingSign => "minecraft:bamboo_hanging_sign", + CrimsonHangingSign => "minecraft:crimson_hanging_sign", + WarpedHangingSign => "minecraft:warped_hanging_sign", + Bucket => "minecraft:bucket", + WaterBucket => "minecraft:water_bucket", + LavaBucket => "minecraft:lava_bucket", + PowderSnowBucket => "minecraft:powder_snow_bucket", + Snowball => "minecraft:snowball", + Leather => "minecraft:leather", + MilkBucket => "minecraft:milk_bucket", + PufferfishBucket => "minecraft:pufferfish_bucket", + SalmonBucket => "minecraft:salmon_bucket", + CodBucket => "minecraft:cod_bucket", + TropicalFishBucket => "minecraft:tropical_fish_bucket", + AxolotlBucket => "minecraft:axolotl_bucket", + TadpoleBucket => "minecraft:tadpole_bucket", + Brick => "minecraft:brick", + ClayBall => "minecraft:clay_ball", + DriedKelpBlock => "minecraft:dried_kelp_block", + Paper => "minecraft:paper", + Book => "minecraft:book", + SlimeBall => "minecraft:slime_ball", + Egg => "minecraft:egg", + BlueEgg => "minecraft:blue_egg", + BrownEgg => "minecraft:brown_egg", + Compass => "minecraft:compass", + RecoveryCompass => "minecraft:recovery_compass", + Bundle => "minecraft:bundle", + WhiteBundle => "minecraft:white_bundle", + OrangeBundle => "minecraft:orange_bundle", + MagentaBundle => "minecraft:magenta_bundle", + LightBlueBundle => "minecraft:light_blue_bundle", + YellowBundle => "minecraft:yellow_bundle", + LimeBundle => "minecraft:lime_bundle", + PinkBundle => "minecraft:pink_bundle", + GrayBundle => "minecraft:gray_bundle", + LightGrayBundle => "minecraft:light_gray_bundle", + CyanBundle => "minecraft:cyan_bundle", + PurpleBundle => "minecraft:purple_bundle", + BlueBundle => "minecraft:blue_bundle", + BrownBundle => "minecraft:brown_bundle", + GreenBundle => "minecraft:green_bundle", + RedBundle => "minecraft:red_bundle", + BlackBundle => "minecraft:black_bundle", + FishingRod => "minecraft:fishing_rod", + Clock => "minecraft:clock", + Spyglass => "minecraft:spyglass", + GlowstoneDust => "minecraft:glowstone_dust", + Cod => "minecraft:cod", + Salmon => "minecraft:salmon", + TropicalFish => "minecraft:tropical_fish", + Pufferfish => "minecraft:pufferfish", + CookedCod => "minecraft:cooked_cod", + CookedSalmon => "minecraft:cooked_salmon", + InkSac => "minecraft:ink_sac", + GlowInkSac => "minecraft:glow_ink_sac", + CocoaBeans => "minecraft:cocoa_beans", + WhiteDye => "minecraft:white_dye", + OrangeDye => "minecraft:orange_dye", + MagentaDye => "minecraft:magenta_dye", + LightBlueDye => "minecraft:light_blue_dye", + YellowDye => "minecraft:yellow_dye", + LimeDye => "minecraft:lime_dye", + PinkDye => "minecraft:pink_dye", + GrayDye => "minecraft:gray_dye", + LightGrayDye => "minecraft:light_gray_dye", + CyanDye => "minecraft:cyan_dye", + PurpleDye => "minecraft:purple_dye", + BlueDye => "minecraft:blue_dye", + BrownDye => "minecraft:brown_dye", + GreenDye => "minecraft:green_dye", + RedDye => "minecraft:red_dye", + BlackDye => "minecraft:black_dye", + BoneMeal => "minecraft:bone_meal", + Bone => "minecraft:bone", + Sugar => "minecraft:sugar", + Cake => "minecraft:cake", + WhiteBed => "minecraft:white_bed", + OrangeBed => "minecraft:orange_bed", + MagentaBed => "minecraft:magenta_bed", + LightBlueBed => "minecraft:light_blue_bed", + YellowBed => "minecraft:yellow_bed", + LimeBed => "minecraft:lime_bed", + PinkBed => "minecraft:pink_bed", + GrayBed => "minecraft:gray_bed", + LightGrayBed => "minecraft:light_gray_bed", + CyanBed => "minecraft:cyan_bed", + PurpleBed => "minecraft:purple_bed", + BlueBed => "minecraft:blue_bed", + BrownBed => "minecraft:brown_bed", + GreenBed => "minecraft:green_bed", + RedBed => "minecraft:red_bed", + BlackBed => "minecraft:black_bed", + Cookie => "minecraft:cookie", + Crafter => "minecraft:crafter", + FilledMap => "minecraft:filled_map", + Shears => "minecraft:shears", + MelonSlice => "minecraft:melon_slice", + DriedKelp => "minecraft:dried_kelp", + PumpkinSeeds => "minecraft:pumpkin_seeds", + MelonSeeds => "minecraft:melon_seeds", + Beef => "minecraft:beef", + CookedBeef => "minecraft:cooked_beef", + Chicken => "minecraft:chicken", + CookedChicken => "minecraft:cooked_chicken", + RottenFlesh => "minecraft:rotten_flesh", + EnderPearl => "minecraft:ender_pearl", + BlazeRod => "minecraft:blaze_rod", + GhastTear => "minecraft:ghast_tear", + GoldNugget => "minecraft:gold_nugget", + NetherWart => "minecraft:nether_wart", + GlassBottle => "minecraft:glass_bottle", + Potion => "minecraft:potion", + SpiderEye => "minecraft:spider_eye", + FermentedSpiderEye => "minecraft:fermented_spider_eye", + BlazePowder => "minecraft:blaze_powder", + MagmaCream => "minecraft:magma_cream", + BrewingStand => "minecraft:brewing_stand", + Cauldron => "minecraft:cauldron", + EnderEye => "minecraft:ender_eye", + GlisteringMelonSlice => "minecraft:glistering_melon_slice", + ChickenSpawnEgg => "minecraft:chicken_spawn_egg", + CowSpawnEgg => "minecraft:cow_spawn_egg", + PigSpawnEgg => "minecraft:pig_spawn_egg", + SheepSpawnEgg => "minecraft:sheep_spawn_egg", + CamelSpawnEgg => "minecraft:camel_spawn_egg", + DonkeySpawnEgg => "minecraft:donkey_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", + GoatSpawnEgg => "minecraft:goat_spawn_egg", + LlamaSpawnEgg => "minecraft:llama_spawn_egg", + OcelotSpawnEgg => "minecraft:ocelot_spawn_egg", + PandaSpawnEgg => "minecraft:panda_spawn_egg", + PolarBearSpawnEgg => "minecraft:polar_bear_spawn_egg", + RabbitSpawnEgg => "minecraft:rabbit_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", + SquidSpawnEgg => "minecraft:squid_spawn_egg", + TadpoleSpawnEgg => "minecraft:tadpole_spawn_egg", + TropicalFishSpawnEgg => "minecraft:tropical_fish_spawn_egg", + TurtleSpawnEgg => "minecraft:turtle_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", + WanderingTraderSpawnEgg => "minecraft:wandering_trader_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", + 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", + 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", + WritableBook => "minecraft:writable_book", + WrittenBook => "minecraft:written_book", + BreezeRod => "minecraft:breeze_rod", + Mace => "minecraft:mace", + ItemFrame => "minecraft:item_frame", + GlowItemFrame => "minecraft:glow_item_frame", + FlowerPot => "minecraft:flower_pot", + Carrot => "minecraft:carrot", + Potato => "minecraft:potato", + BakedPotato => "minecraft:baked_potato", + PoisonousPotato => "minecraft:poisonous_potato", + Map => "minecraft:map", + GoldenCarrot => "minecraft:golden_carrot", + SkeletonSkull => "minecraft:skeleton_skull", + WitherSkeletonSkull => "minecraft:wither_skeleton_skull", + PlayerHead => "minecraft:player_head", + ZombieHead => "minecraft:zombie_head", + CreeperHead => "minecraft:creeper_head", + DragonHead => "minecraft:dragon_head", + PiglinHead => "minecraft:piglin_head", + NetherStar => "minecraft:nether_star", + PumpkinPie => "minecraft:pumpkin_pie", + FireworkRocket => "minecraft:firework_rocket", + FireworkStar => "minecraft:firework_star", + EnchantedBook => "minecraft:enchanted_book", + NetherBrick => "minecraft:nether_brick", + ResinBrick => "minecraft:resin_brick", + PrismarineShard => "minecraft:prismarine_shard", + PrismarineCrystals => "minecraft:prismarine_crystals", + Rabbit => "minecraft:rabbit", + CookedRabbit => "minecraft:cooked_rabbit", + RabbitStew => "minecraft:rabbit_stew", + RabbitFoot => "minecraft:rabbit_foot", + RabbitHide => "minecraft:rabbit_hide", + ArmorStand => "minecraft:armor_stand", + CopperHorseArmor => "minecraft:copper_horse_armor", + 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", + CommandBlockMinecart => "minecraft:command_block_minecart", + Mutton => "minecraft:mutton", + CookedMutton => "minecraft:cooked_mutton", + WhiteBanner => "minecraft:white_banner", + OrangeBanner => "minecraft:orange_banner", + MagentaBanner => "minecraft:magenta_banner", + LightBlueBanner => "minecraft:light_blue_banner", + YellowBanner => "minecraft:yellow_banner", + LimeBanner => "minecraft:lime_banner", + PinkBanner => "minecraft:pink_banner", + GrayBanner => "minecraft:gray_banner", + LightGrayBanner => "minecraft:light_gray_banner", + CyanBanner => "minecraft:cyan_banner", + PurpleBanner => "minecraft:purple_banner", + BlueBanner => "minecraft:blue_banner", + BrownBanner => "minecraft:brown_banner", + GreenBanner => "minecraft:green_banner", + RedBanner => "minecraft:red_banner", + BlackBanner => "minecraft:black_banner", + EndCrystal => "minecraft:end_crystal", + ChorusFruit => "minecraft:chorus_fruit", + PoppedChorusFruit => "minecraft:popped_chorus_fruit", + TorchflowerSeeds => "minecraft:torchflower_seeds", + PitcherPod => "minecraft:pitcher_pod", + Beetroot => "minecraft:beetroot", + BeetrootSeeds => "minecraft:beetroot_seeds", + BeetrootSoup => "minecraft:beetroot_soup", + DragonBreath => "minecraft:dragon_breath", + SplashPotion => "minecraft:splash_potion", + SpectralArrow => "minecraft:spectral_arrow", + 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", + CopperNugget => "minecraft:copper_nugget", + KnowledgeBook => "minecraft:knowledge_book", + DebugStick => "minecraft:debug_stick", + MusicDisc13 => "minecraft:music_disc_13", + MusicDiscCat => "minecraft:music_disc_cat", + MusicDiscBlocks => "minecraft:music_disc_blocks", + MusicDiscChirp => "minecraft:music_disc_chirp", + MusicDiscCreator => "minecraft:music_disc_creator", + MusicDiscCreatorMusicBox => "minecraft:music_disc_creator_music_box", + MusicDiscFar => "minecraft:music_disc_far", + MusicDiscLavaChicken => "minecraft:music_disc_lava_chicken", + MusicDiscMall => "minecraft:music_disc_mall", + MusicDiscMellohi => "minecraft:music_disc_mellohi", + MusicDiscStal => "minecraft:music_disc_stal", + MusicDiscStrad => "minecraft:music_disc_strad", + MusicDiscWard => "minecraft:music_disc_ward", + MusicDisc11 => "minecraft:music_disc_11", + MusicDiscWait => "minecraft:music_disc_wait", + MusicDiscOtherside => "minecraft:music_disc_otherside", + MusicDiscRelic => "minecraft:music_disc_relic", + MusicDisc5 => "minecraft:music_disc_5", + MusicDiscPigstep => "minecraft:music_disc_pigstep", + MusicDiscPrecipice => "minecraft:music_disc_precipice", + MusicDiscTears => "minecraft:music_disc_tears", + 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", + Loom => "minecraft:loom", + FlowerBannerPattern => "minecraft:flower_banner_pattern", + CreeperBannerPattern => "minecraft:creeper_banner_pattern", + SkullBannerPattern => "minecraft:skull_banner_pattern", + MojangBannerPattern => "minecraft:mojang_banner_pattern", + GlobeBannerPattern => "minecraft:globe_banner_pattern", + PiglinBannerPattern => "minecraft:piglin_banner_pattern", + FlowBannerPattern => "minecraft:flow_banner_pattern", + GusterBannerPattern => "minecraft:guster_banner_pattern", + FieldMasonedBannerPattern => "minecraft:field_masoned_banner_pattern", + BordureIndentedBannerPattern => "minecraft:bordure_indented_banner_pattern", + GoatHorn => "minecraft:goat_horn", + Composter => "minecraft:composter", + Barrel => "minecraft:barrel", + Smoker => "minecraft:smoker", + BlastFurnace => "minecraft:blast_furnace", + CartographyTable => "minecraft:cartography_table", + FletchingTable => "minecraft:fletching_table", + Grindstone => "minecraft:grindstone", + SmithingTable => "minecraft:smithing_table", + Stonecutter => "minecraft:stonecutter", + Bell => "minecraft:bell", + Lantern => "minecraft:lantern", + SoulLantern => "minecraft:soul_lantern", + CopperLantern => "minecraft:copper_lantern", + ExposedCopperLantern => "minecraft:exposed_copper_lantern", + WeatheredCopperLantern => "minecraft:weathered_copper_lantern", + OxidizedCopperLantern => "minecraft:oxidized_copper_lantern", + WaxedCopperLantern => "minecraft:waxed_copper_lantern", + WaxedExposedCopperLantern => "minecraft:waxed_exposed_copper_lantern", + WaxedWeatheredCopperLantern => "minecraft:waxed_weathered_copper_lantern", + WaxedOxidizedCopperLantern => "minecraft:waxed_oxidized_copper_lantern", + SweetBerries => "minecraft:sweet_berries", + GlowBerries => "minecraft:glow_berries", + Campfire => "minecraft:campfire", + SoulCampfire => "minecraft:soul_campfire", + Shroomlight => "minecraft:shroomlight", + Honeycomb => "minecraft:honeycomb", + BeeNest => "minecraft:bee_nest", + Beehive => "minecraft:beehive", + HoneyBottle => "minecraft:honey_bottle", + HoneycombBlock => "minecraft:honeycomb_block", + Lodestone => "minecraft:lodestone", + CryingObsidian => "minecraft:crying_obsidian", + Blackstone => "minecraft:blackstone", + BlackstoneSlab => "minecraft:blackstone_slab", + BlackstoneStairs => "minecraft:blackstone_stairs", + GildedBlackstone => "minecraft:gilded_blackstone", + PolishedBlackstone => "minecraft:polished_blackstone", + PolishedBlackstoneSlab => "minecraft:polished_blackstone_slab", + PolishedBlackstoneStairs => "minecraft:polished_blackstone_stairs", + ChiseledPolishedBlackstone => "minecraft:chiseled_polished_blackstone", + PolishedBlackstoneBricks => "minecraft:polished_blackstone_bricks", + PolishedBlackstoneBrickSlab => "minecraft:polished_blackstone_brick_slab", + PolishedBlackstoneBrickStairs => "minecraft:polished_blackstone_brick_stairs", + CrackedPolishedBlackstoneBricks => "minecraft:cracked_polished_blackstone_bricks", + RespawnAnchor => "minecraft:respawn_anchor", + Candle => "minecraft:candle", + WhiteCandle => "minecraft:white_candle", + OrangeCandle => "minecraft:orange_candle", + MagentaCandle => "minecraft:magenta_candle", + LightBlueCandle => "minecraft:light_blue_candle", + YellowCandle => "minecraft:yellow_candle", + LimeCandle => "minecraft:lime_candle", + PinkCandle => "minecraft:pink_candle", + GrayCandle => "minecraft:gray_candle", + LightGrayCandle => "minecraft:light_gray_candle", + CyanCandle => "minecraft:cyan_candle", + PurpleCandle => "minecraft:purple_candle", + BlueCandle => "minecraft:blue_candle", + BrownCandle => "minecraft:brown_candle", + GreenCandle => "minecraft:green_candle", + RedCandle => "minecraft:red_candle", + BlackCandle => "minecraft:black_candle", + SmallAmethystBud => "minecraft:small_amethyst_bud", + MediumAmethystBud => "minecraft:medium_amethyst_bud", + LargeAmethystBud => "minecraft:large_amethyst_bud", + AmethystCluster => "minecraft:amethyst_cluster", + PointedDripstone => "minecraft:pointed_dripstone", + OchreFroglight => "minecraft:ochre_froglight", + VerdantFroglight => "minecraft:verdant_froglight", + PearlescentFroglight => "minecraft:pearlescent_froglight", + Frogspawn => "minecraft:frogspawn", + EchoShard => "minecraft:echo_shard", + Brush => "minecraft:brush", + NetheriteUpgradeSmithingTemplate => "minecraft:netherite_upgrade_smithing_template", + SentryArmorTrimSmithingTemplate => "minecraft:sentry_armor_trim_smithing_template", + DuneArmorTrimSmithingTemplate => "minecraft:dune_armor_trim_smithing_template", + CoastArmorTrimSmithingTemplate => "minecraft:coast_armor_trim_smithing_template", + WildArmorTrimSmithingTemplate => "minecraft:wild_armor_trim_smithing_template", + WardArmorTrimSmithingTemplate => "minecraft:ward_armor_trim_smithing_template", + EyeArmorTrimSmithingTemplate => "minecraft:eye_armor_trim_smithing_template", + VexArmorTrimSmithingTemplate => "minecraft:vex_armor_trim_smithing_template", + TideArmorTrimSmithingTemplate => "minecraft:tide_armor_trim_smithing_template", + SnoutArmorTrimSmithingTemplate => "minecraft:snout_armor_trim_smithing_template", + RibArmorTrimSmithingTemplate => "minecraft:rib_armor_trim_smithing_template", + SpireArmorTrimSmithingTemplate => "minecraft:spire_armor_trim_smithing_template", + WayfinderArmorTrimSmithingTemplate => "minecraft:wayfinder_armor_trim_smithing_template", + ShaperArmorTrimSmithingTemplate => "minecraft:shaper_armor_trim_smithing_template", + SilenceArmorTrimSmithingTemplate => "minecraft:silence_armor_trim_smithing_template", + RaiserArmorTrimSmithingTemplate => "minecraft:raiser_armor_trim_smithing_template", + HostArmorTrimSmithingTemplate => "minecraft:host_armor_trim_smithing_template", + FlowArmorTrimSmithingTemplate => "minecraft:flow_armor_trim_smithing_template", + BoltArmorTrimSmithingTemplate => "minecraft:bolt_armor_trim_smithing_template", + AnglerPotterySherd => "minecraft:angler_pottery_sherd", + ArcherPotterySherd => "minecraft:archer_pottery_sherd", + ArmsUpPotterySherd => "minecraft:arms_up_pottery_sherd", + BladePotterySherd => "minecraft:blade_pottery_sherd", + BrewerPotterySherd => "minecraft:brewer_pottery_sherd", + BurnPotterySherd => "minecraft:burn_pottery_sherd", + DangerPotterySherd => "minecraft:danger_pottery_sherd", + ExplorerPotterySherd => "minecraft:explorer_pottery_sherd", + FlowPotterySherd => "minecraft:flow_pottery_sherd", + FriendPotterySherd => "minecraft:friend_pottery_sherd", + GusterPotterySherd => "minecraft:guster_pottery_sherd", + HeartPotterySherd => "minecraft:heart_pottery_sherd", + HeartbreakPotterySherd => "minecraft:heartbreak_pottery_sherd", + HowlPotterySherd => "minecraft:howl_pottery_sherd", + MinerPotterySherd => "minecraft:miner_pottery_sherd", + MournerPotterySherd => "minecraft:mourner_pottery_sherd", + PlentyPotterySherd => "minecraft:plenty_pottery_sherd", + PrizePotterySherd => "minecraft:prize_pottery_sherd", + ScrapePotterySherd => "minecraft:scrape_pottery_sherd", + SheafPotterySherd => "minecraft:sheaf_pottery_sherd", + ShelterPotterySherd => "minecraft:shelter_pottery_sherd", + SkullPotterySherd => "minecraft:skull_pottery_sherd", + SnortPotterySherd => "minecraft:snort_pottery_sherd", + CopperGrate => "minecraft:copper_grate", + ExposedCopperGrate => "minecraft:exposed_copper_grate", + WeatheredCopperGrate => "minecraft:weathered_copper_grate", + OxidizedCopperGrate => "minecraft:oxidized_copper_grate", + WaxedCopperGrate => "minecraft:waxed_copper_grate", + WaxedExposedCopperGrate => "minecraft:waxed_exposed_copper_grate", + WaxedWeatheredCopperGrate => "minecraft:waxed_weathered_copper_grate", + WaxedOxidizedCopperGrate => "minecraft:waxed_oxidized_copper_grate", + CopperBulb => "minecraft:copper_bulb", + ExposedCopperBulb => "minecraft:exposed_copper_bulb", + WeatheredCopperBulb => "minecraft:weathered_copper_bulb", + OxidizedCopperBulb => "minecraft:oxidized_copper_bulb", + WaxedCopperBulb => "minecraft:waxed_copper_bulb", + WaxedExposedCopperBulb => "minecraft:waxed_exposed_copper_bulb", + WaxedWeatheredCopperBulb => "minecraft:waxed_weathered_copper_bulb", + WaxedOxidizedCopperBulb => "minecraft:waxed_oxidized_copper_bulb", + CopperChest => "minecraft:copper_chest", + ExposedCopperChest => "minecraft:exposed_copper_chest", + WeatheredCopperChest => "minecraft:weathered_copper_chest", + OxidizedCopperChest => "minecraft:oxidized_copper_chest", + WaxedCopperChest => "minecraft:waxed_copper_chest", + WaxedExposedCopperChest => "minecraft:waxed_exposed_copper_chest", + WaxedWeatheredCopperChest => "minecraft:waxed_weathered_copper_chest", + WaxedOxidizedCopperChest => "minecraft:waxed_oxidized_copper_chest", + CopperGolemStatue => "minecraft:copper_golem_statue", + ExposedCopperGolemStatue => "minecraft:exposed_copper_golem_statue", + WeatheredCopperGolemStatue => "minecraft:weathered_copper_golem_statue", + OxidizedCopperGolemStatue => "minecraft:oxidized_copper_golem_statue", + WaxedCopperGolemStatue => "minecraft:waxed_copper_golem_statue", + WaxedExposedCopperGolemStatue => "minecraft:waxed_exposed_copper_golem_statue", + WaxedWeatheredCopperGolemStatue => "minecraft:waxed_weathered_copper_golem_statue", + WaxedOxidizedCopperGolemStatue => "minecraft:waxed_oxidized_copper_golem_statue", + TrialSpawner => "minecraft:trial_spawner", + TrialKey => "minecraft:trial_key", + OminousTrialKey => "minecraft:ominous_trial_key", + Vault => "minecraft:vault", + OminousBottle => "minecraft:ominous_bottle", +} +} diff --git a/azalea-registry/src/data.rs b/azalea-registry/src/data.rs index 5355ac01..75fd8439 100644 --- a/azalea-registry/src/data.rs +++ b/azalea-registry/src/data.rs @@ -1,38 +1,30 @@ -use azalea_buf::{AzBuf, AzaleaRead, AzaleaWrite}; +//! Definitions for data-driven registries that implement +//! [`DataRegistry`]. +//! +//! These registries are sent to us by the server on join. -use crate::Registry; +use azalea_buf::AzBuf; -/// A registry which has its values decided by the server in the -/// `ClientboundRegistryData` packet. -/// -/// These can be resolved into their actual values with -/// `ResolvableDataRegistry` from azalea-core. -pub trait DataRegistry: AzaleaRead + AzaleaWrite { - const NAME: &'static str; - - fn protocol_id(&self) -> u32; - fn new_raw(id: u32) -> Self; -} -impl<T: DataRegistry> Registry for T { - fn from_u32(value: u32) -> Option<Self> { - Some(Self::new_raw(value)) - } - - fn to_u32(&self) -> u32 { - self.protocol_id() - } -} +use crate::{DataRegistry, identifier::Identifier}; macro_rules! data_registry { - ($(#[$doc:meta])* $name:ident, $registry_name:expr) => { + ( + $registry:ident => $registry_name:expr, + $(#[$doc:meta])* + enum $enum_name:ident { + $($variant:ident => $variant_name:expr),* $(,)? + } + ) => { $(#[$doc])* - #[derive(Debug, Clone, Copy, AzBuf, PartialEq, Eq, Hash)] - pub struct $name { + #[derive(Debug, Clone, Copy, AzBuf, PartialEq, Eq, Hash, PartialOrd, Ord)] + pub struct $registry { #[var] id: u32, } - impl DataRegistry for $name { + impl crate::DataRegistry for $registry { const NAME: &'static str = $registry_name; + type Key = $enum_name; + fn protocol_id(&self) -> u32 { self.id } @@ -42,7 +34,7 @@ macro_rules! data_registry { } #[cfg(feature = "serde")] - impl serde::Serialize for $name { + impl serde::Serialize for $registry { fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> where S: serde::Serializer, @@ -51,36 +43,130 @@ macro_rules! data_registry { serializer.serialize_newtype_variant(concat!("minecraft:", $registry_name), self.id, "", &()) } } - }; -} -// 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` + #[derive(Debug, PartialEq, Eq, Hash, Clone)] + pub enum $enum_name<Other = Identifier> { + $($variant),*, + Other(Other) + } + impl $enum_name { + /// A static slice containing all known variants of this registry + /// key (except of course for the `Other` variant). + pub const ALL: &'static [Self] = &[ + $( + Self::$variant + ),* + ]; + } + impl<'a> From<&'a Identifier> for $enum_name<&'a Identifier> { + fn from(ident: &'a Identifier) -> Self { + if ident.namespace() != "minecraft" { return Self::Other(ident) } + match ident.path() { + $( + $variant_name => Self::$variant + ),*, + _ => Self::Other(ident) + } + } + } + impl crate::DataRegistryKey for $enum_name { + type Borrow<'a> = $enum_name<&'a Identifier>; -data_registry! {Enchantment, "enchantment"} -data_registry! {DimensionType, "dimension_type"} -data_registry! {DamageKind, "damage_kind"} -data_registry! {Dialog, "dialog"} + fn into_ident(self) -> Identifier { + match self { + $( + Self::$variant => Identifier::new($variant_name) + ),*, + Self::Other(ident) => ident.clone() + } + } + } + impl<'a> crate::DataRegistryKeyRef<'a> for $enum_name<&'a Identifier> { + type Owned = $enum_name; -// entity variants -data_registry! {WolfSoundVariant, "wolf_sound_variant"} -data_registry! {CowVariant, "cow_variant"} -data_registry! {ChickenVariant, "chicken_variant"} -data_registry! {FrogVariant, "frog_variant"} -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"} + fn to_owned(self) -> Self::Owned { + match self { + $( Self::$variant => $enum_name::$variant ),*, + Self::Other(ident) => $enum_name::Other(ident.clone()), + } + } + fn from_ident(ident: &'a Identifier) -> Self { + Self::from(ident) + } + fn into_ident(self) -> Identifier { + crate::DataRegistryKey::into_ident(self.to_owned()) + } + } + impl From<Identifier> for $enum_name { + fn from(ident: Identifier) -> Self { + crate::DataRegistryKeyRef::to_owned(<$enum_name<&Identifier>>::from(&ident)) + } + } + impl From<$enum_name> for Identifier { + fn from(registry: $enum_name) -> Self { + crate::DataRegistryKey::into_ident(registry) + } + } + impl From<$enum_name<&'_ Identifier>> for Identifier { + fn from(registry: $enum_name<&'_ Identifier>) -> Self { + crate::DataRegistryKeyRef::into_ident(registry) + } + } + impl simdnbt::FromNbtTag for $enum_name { + fn from_nbt_tag(tag: simdnbt::borrow::NbtTag) -> Option<Self> { + simdnbt::FromNbtTag::from_nbt_tag(tag).map(Identifier::into) + } + } + }; +} data_registry! { - /// An opaque biome identifier. - /// - /// You'll probably want to resolve this into its name before using it, by - /// using `Client::with_resolved_registry` or a similar function. - Biome, - "worldgen/biome" +Enchantment => "enchantment", +enum EnchantmentKey { + AquaAffinity => "aqua_affinity", + BaneOfArthropods => "bane_of_arthropods", + BindingCurse => "binding_curse", + BlastProtection => "blast_protection", + Breach => "breach", + Channeling => "channeling", + Density => "density", + DepthStrider => "depth_strider", + Efficiency => "efficiency", + FeatherFalling => "feather_falling", + FireAspect => "fire_aspect", + FireProtection => "fire_protection", + Flame => "flame", + Fortune => "fortune", + FrostWalker => "frost_walker", + Impaling => "impaling", + Infinity => "infinity", + Knockback => "knockback", + Looting => "looting", + Loyalty => "loyalty", + LuckOfTheSea => "luck_of_the_sea", + Lunge => "lunge", + Lure => "lure", + Mending => "mending", + Multishot => "multishot", + Piercing => "piercing", + Power => "power", + ProjectileProtection => "projectile_protection", + Protection => "protection", + Punch => "punch", + QuickCharge => "quick_charge", + Respiration => "respiration", + Riptide => "riptide", + Sharpness => "sharpness", + SilkTouch => "silk_touch", + Smite => "smite", + SoulSpeed => "soul_speed", + SweepingEdge => "sweeping_edge", + SwiftSneak => "swift_sneak", + Thorns => "thorns", + Unbreaking => "unbreaking", + VanishingCurse => "vanishing_curse", + WindBurst => "wind_burst", +} } // these extra traits are required for Biome to be allowed to be palletable @@ -99,3 +185,1975 @@ impl From<Biome> for u32 { biome.protocol_id() } } + +data_registry! { +DimensionKind => "dimension_type", +enum DimensionKindKey { + Overworld => "overworld", + OverworldCaves => "overworld_caves", + TheEnd => "the_end", + TheNether => "the_nether", +} +} + +data_registry! { +ChatKind => "chat_type", +enum ChatKindKey { + Chat => "chat", + EmoteCommand => "emote_command", + MsgCommandIncoming => "msg_command_incoming", + MsgCommandOutgoing => "msg_command_outgoing", + SayCommand => "say_command", + TeamMsgCommandIncoming => "team_msg_command_incoming", + TeamMsgCommandOutgoing => "team_msg_command_outgoing", +} +} +impl<O> ChatKindKey<O> { + #[must_use] + pub fn chat_translation_key(self) -> &'static str { + match self { + Self::Chat => "chat.type.text", + Self::SayCommand => "chat.type.announcement", + Self::MsgCommandIncoming => "commands.message.display.incoming", + Self::MsgCommandOutgoing => "commands.message.display.outgoing", + Self::TeamMsgCommandIncoming => "chat.type.team.text", + Self::TeamMsgCommandOutgoing => "chat.type.team.sent", + Self::EmoteCommand => "chat.type.emote", + Self::Other(_) => "", + } + } + + #[must_use] + pub fn narrator_translation_key(self) -> &'static str { + match self { + Self::EmoteCommand => "chat.type.emote", + _ => "chat.type.text.narrate", + } + } +} + +data_registry! { +TrimPattern => "trim_pattern", +enum TrimPatternKey { + Bolt => "bolt", + Coast => "coast", + Dune => "dune", + Eye => "eye", + Flow => "flow", + Host => "host", + Raiser => "raiser", + Rib => "rib", + Sentry => "sentry", + Shaper => "shaper", + Silence => "silence", + Snout => "snout", + Spire => "spire", + Tide => "tide", + Vex => "vex", + Ward => "ward", + Wayfinder => "wayfinder", + Wild => "wild", +} +} + +data_registry! { +TrimMaterial => "trim_material", +enum TrimMaterialKey { + Amethyst => "amethyst", + Copper => "copper", + Diamond => "diamond", + Emerald => "emerald", + Gold => "gold", + Iron => "iron", + Lapis => "lapis", + Netherite => "netherite", + Quartz => "quartz", + Redstone => "redstone", + Resin => "resin", +} +} + +data_registry! { +WolfVariant => "wolf_variant", +enum WolfVariantKey { + Ashen => "ashen", + Black => "black", + Chestnut => "chestnut", + Pale => "pale", + Rusty => "rusty", + Snowy => "snowy", + Spotted => "spotted", + Striped => "striped", + Woods => "woods", +} +} + +data_registry! { +WolfSoundVariant => "wolf_sound_variant", +enum WolfSoundVariantKey { + Angry => "angry", + Big => "big", + Classic => "classic", + Cute => "cute", + Grumpy => "grumpy", + Puglin => "puglin", + Sad => "sad", +} +} + +data_registry! { +PigVariant => "pig_variant", +enum PigVariantKey { + Cold => "cold", + Temperate => "temperate", + Warm => "warm", +} +} + +data_registry! { +FrogVariant => "frog_variant", +enum FrogVariantKey { + Cold => "cold", + Temperate => "temperate", + Warm => "warm", +} +} + +data_registry! { +CatVariant => "cat_variant", +enum CatVariantKey { + AllBlack => "all_black", + Black => "black", + BritishShorthair => "british_shorthair", + Calico => "calico", + Jellie => "jellie", + Persian => "persian", + Ragdoll => "ragdoll", + Red => "red", + Siamese => "siamese", + Tabby => "tabby", + White => "white", +} +} + +data_registry! { +CowVariant => "cow_variant", +enum CowVariantKey { + Cold => "cold", + Temperate => "temperate", + Warm => "warm", +} +} + +data_registry! { +ChickenVariant => "chicken_variant", +enum ChickenVariantKey { + Cold => "cold", + Temperate => "temperate", + Warm => "warm", +} +} + +data_registry! { +ZombieNautilusVariant => "zombie_nautilus_variant", +enum ZombieNautilusVariantKey { + Temperate => "temperate", + Warm => "warm", +} +} + +data_registry! { +PaintingVariant => "painting_variant", +enum PaintingVariantKey { + Alban => "alban", + Aztec => "aztec", + Aztec2 => "aztec2", + Backyard => "backyard", + Baroque => "baroque", + Bomb => "bomb", + Bouquet => "bouquet", + BurningSkull => "burning_skull", + Bust => "bust", + Cavebird => "cavebird", + Changing => "changing", + Cotan => "cotan", + Courbet => "courbet", + Creebet => "creebet", + Dennis => "dennis", + DonkeyKong => "donkey_kong", + Earth => "earth", + Endboss => "endboss", + Fern => "fern", + Fighters => "fighters", + Finding => "finding", + Fire => "fire", + Graham => "graham", + Humble => "humble", + Kebab => "kebab", + Lowmist => "lowmist", + Match => "match", + Meditative => "meditative", + Orb => "orb", + Owlemons => "owlemons", + Passage => "passage", + Pigscene => "pigscene", + Plant => "plant", + Pointer => "pointer", + Pond => "pond", + Pool => "pool", + PrairieRide => "prairie_ride", + Sea => "sea", + Skeleton => "skeleton", + SkullAndRoses => "skull_and_roses", + Stage => "stage", + Sunflowers => "sunflowers", + Sunset => "sunset", + Tides => "tides", + Unpacked => "unpacked", + Void => "void", + Wanderer => "wanderer", + Wasteland => "wasteland", + Water => "water", + Wind => "wind", + Wither => "wither", +} +} + +data_registry! { +DamageKind => "damage_type", +enum DamageKindKey { + Arrow => "arrow", + BadRespawnPoint => "bad_respawn_point", + Cactus => "cactus", + Campfire => "campfire", + Cramming => "cramming", + DragonBreath => "dragon_breath", + Drown => "drown", + DryOut => "dry_out", + EnderPearl => "ender_pearl", + Explosion => "explosion", + Fall => "fall", + FallingAnvil => "falling_anvil", + FallingBlock => "falling_block", + FallingStalactite => "falling_stalactite", + Fireball => "fireball", + Fireworks => "fireworks", + FlyIntoWall => "fly_into_wall", + Freeze => "freeze", + Generic => "generic", + GenericKill => "generic_kill", + HotFloor => "hot_floor", + InFire => "in_fire", + InWall => "in_wall", + IndirectMagic => "indirect_magic", + Lava => "lava", + LightningBolt => "lightning_bolt", + MaceSmash => "mace_smash", + Magic => "magic", + MobAttack => "mob_attack", + MobAttackNoAggro => "mob_attack_no_aggro", + MobProjectile => "mob_projectile", + OnFire => "on_fire", + OutOfWorld => "out_of_world", + OutsideBorder => "outside_border", + PlayerAttack => "player_attack", + PlayerExplosion => "player_explosion", + SonicBoom => "sonic_boom", + Spear => "spear", + Spit => "spit", + Stalagmite => "stalagmite", + Starve => "starve", + Sting => "sting", + SweetBerryBush => "sweet_berry_bush", + Thorns => "thorns", + Thrown => "thrown", + Trident => "trident", + UnattributedFireball => "unattributed_fireball", + WindCharge => "wind_charge", + Wither => "wither", + WitherSkull => "wither_skull", +} +} + +data_registry! { +BannerPattern => "banner_pattern", +enum BannerPatternKey { + Base => "base", + Border => "border", + Bricks => "bricks", + Circle => "circle", + Creeper => "creeper", + Cross => "cross", + CurlyBorder => "curly_border", + DiagonalLeft => "diagonal_left", + DiagonalRight => "diagonal_right", + DiagonalUpLeft => "diagonal_up_left", + DiagonalUpRight => "diagonal_up_right", + Flow => "flow", + Flower => "flower", + Globe => "globe", + Gradient => "gradient", + GradientUp => "gradient_up", + Guster => "guster", + HalfHorizontal => "half_horizontal", + HalfHorizontalBottom => "half_horizontal_bottom", + HalfVertical => "half_vertical", + HalfVerticalRight => "half_vertical_right", + Mojang => "mojang", + Piglin => "piglin", + Rhombus => "rhombus", + Skull => "skull", + SmallStripes => "small_stripes", + SquareBottomLeft => "square_bottom_left", + SquareBottomRight => "square_bottom_right", + SquareTopLeft => "square_top_left", + SquareTopRight => "square_top_right", + StraightCross => "straight_cross", + StripeBottom => "stripe_bottom", + StripeCenter => "stripe_center", + StripeDownleft => "stripe_downleft", + StripeDownright => "stripe_downright", + StripeLeft => "stripe_left", + StripeMiddle => "stripe_middle", + StripeRight => "stripe_right", + StripeTop => "stripe_top", + TriangleBottom => "triangle_bottom", + TriangleTop => "triangle_top", + TrianglesBottom => "triangles_bottom", + TrianglesTop => "triangles_top", +} +} + +data_registry! { +EnchantmentProvider => "enchantment_provider", +enum EnchantmentProviderKey { + EndermanLootDrop => "enderman_loot_drop", + MobSpawnEquipment => "mob_spawn_equipment", + PillagerSpawnCrossbow => "pillager_spawn_crossbow", +} +} + +data_registry! { +JukeboxSong => "jukebox_song", +enum JukeboxSongKey { + _11 => "11", + _13 => "13", + _5 => "5", + Blocks => "blocks", + Cat => "cat", + Chirp => "chirp", + Creator => "creator", + CreatorMusicBox => "creator_music_box", + Far => "far", + LavaChicken => "lava_chicken", + Mall => "mall", + Mellohi => "mellohi", + Otherside => "otherside", + Pigstep => "pigstep", + Precipice => "precipice", + Relic => "relic", + Stal => "stal", + Strad => "strad", + Tears => "tears", + Wait => "wait", + Ward => "ward", +} +} + +data_registry! { +Instrument => "instrument", +enum InstrumentKey { + AdmireGoatHorn => "admire_goat_horn", + CallGoatHorn => "call_goat_horn", + DreamGoatHorn => "dream_goat_horn", + FeelGoatHorn => "feel_goat_horn", + PonderGoatHorn => "ponder_goat_horn", + SeekGoatHorn => "seek_goat_horn", + SingGoatHorn => "sing_goat_horn", + YearnGoatHorn => "yearn_goat_horn", +} +} + +data_registry! { +TestEnvironment => "test_environment", +enum TestEnvironmentKey { + Default => "default", +} +} + +data_registry! { +TestInstance => "test_instance", +enum TestInstanceKey { + AlwaysPass => "always_pass", +} +} + +data_registry! { +Dialog => "dialog", +enum DialogKey { + CustomOptions => "custom_options", + QuickActions => "quick_actions", + ServerLinks => "server_links", +} +} + +data_registry! { +Timeline => "timeline", +enum TimelineKey { + Day => "day", + EarlyGame => "early_game", + Moon => "moon", + VillagerSchedule => "villager_schedule", +} +} + +data_registry! { +Recipe => "recipe", +enum RecipeKey { + AcaciaBoat => "acacia_boat", + AcaciaButton => "acacia_button", + AcaciaChestBoat => "acacia_chest_boat", + AcaciaDoor => "acacia_door", + AcaciaFence => "acacia_fence", + AcaciaFenceGate => "acacia_fence_gate", + AcaciaHangingSign => "acacia_hanging_sign", + AcaciaPlanks => "acacia_planks", + AcaciaPressurePlate => "acacia_pressure_plate", + AcaciaShelf => "acacia_shelf", + AcaciaSign => "acacia_sign", + AcaciaSlab => "acacia_slab", + AcaciaStairs => "acacia_stairs", + AcaciaTrapdoor => "acacia_trapdoor", + AcaciaWood => "acacia_wood", + ActivatorRail => "activator_rail", + AmethystBlock => "amethyst_block", + Andesite => "andesite", + AndesiteSlab => "andesite_slab", + AndesiteSlabFromAndesiteStonecutting => "andesite_slab_from_andesite_stonecutting", + AndesiteStairs => "andesite_stairs", + AndesiteStairsFromAndesiteStonecutting => "andesite_stairs_from_andesite_stonecutting", + AndesiteWall => "andesite_wall", + AndesiteWallFromAndesiteStonecutting => "andesite_wall_from_andesite_stonecutting", + Anvil => "anvil", + ArmorDye => "armor_dye", + ArmorStand => "armor_stand", + Arrow => "arrow", + BakedPotato => "baked_potato", + BakedPotatoFromCampfireCooking => "baked_potato_from_campfire_cooking", + BakedPotatoFromSmoking => "baked_potato_from_smoking", + BambooBlock => "bamboo_block", + BambooButton => "bamboo_button", + BambooChestRaft => "bamboo_chest_raft", + BambooDoor => "bamboo_door", + BambooFence => "bamboo_fence", + BambooFenceGate => "bamboo_fence_gate", + BambooHangingSign => "bamboo_hanging_sign", + BambooMosaic => "bamboo_mosaic", + BambooMosaicSlab => "bamboo_mosaic_slab", + BambooMosaicStairs => "bamboo_mosaic_stairs", + BambooPlanks => "bamboo_planks", + BambooPressurePlate => "bamboo_pressure_plate", + BambooRaft => "bamboo_raft", + BambooShelf => "bamboo_shelf", + BambooSign => "bamboo_sign", + BambooSlab => "bamboo_slab", + BambooStairs => "bamboo_stairs", + BambooTrapdoor => "bamboo_trapdoor", + BannerDuplicate => "banner_duplicate", + Barrel => "barrel", + Beacon => "beacon", + Beehive => "beehive", + BeetrootSoup => "beetroot_soup", + BirchBoat => "birch_boat", + BirchButton => "birch_button", + BirchChestBoat => "birch_chest_boat", + BirchDoor => "birch_door", + BirchFence => "birch_fence", + BirchFenceGate => "birch_fence_gate", + BirchHangingSign => "birch_hanging_sign", + BirchPlanks => "birch_planks", + BirchPressurePlate => "birch_pressure_plate", + BirchShelf => "birch_shelf", + BirchSign => "birch_sign", + BirchSlab => "birch_slab", + BirchStairs => "birch_stairs", + BirchTrapdoor => "birch_trapdoor", + BirchWood => "birch_wood", + BlackBanner => "black_banner", + BlackBed => "black_bed", + BlackBundle => "black_bundle", + BlackCandle => "black_candle", + BlackCarpet => "black_carpet", + BlackConcretePowder => "black_concrete_powder", + BlackDye => "black_dye", + BlackDyeFromWitherRose => "black_dye_from_wither_rose", + BlackGlazedTerracotta => "black_glazed_terracotta", + BlackHarness => "black_harness", + BlackShulkerBox => "black_shulker_box", + BlackStainedGlass => "black_stained_glass", + BlackStainedGlassPane => "black_stained_glass_pane", + BlackStainedGlassPaneFromGlassPane => "black_stained_glass_pane_from_glass_pane", + BlackTerracotta => "black_terracotta", + BlackstoneSlab => "blackstone_slab", + BlackstoneSlabFromBlackstoneStonecutting => "blackstone_slab_from_blackstone_stonecutting", + BlackstoneStairs => "blackstone_stairs", + BlackstoneStairsFromBlackstoneStonecutting => "blackstone_stairs_from_blackstone_stonecutting", + BlackstoneWall => "blackstone_wall", + BlackstoneWallFromBlackstoneStonecutting => "blackstone_wall_from_blackstone_stonecutting", + BlastFurnace => "blast_furnace", + BlazePowder => "blaze_powder", + BlueBanner => "blue_banner", + BlueBed => "blue_bed", + BlueBundle => "blue_bundle", + BlueCandle => "blue_candle", + BlueCarpet => "blue_carpet", + BlueConcretePowder => "blue_concrete_powder", + BlueDye => "blue_dye", + BlueDyeFromCornflower => "blue_dye_from_cornflower", + BlueGlazedTerracotta => "blue_glazed_terracotta", + BlueHarness => "blue_harness", + BlueIce => "blue_ice", + BlueShulkerBox => "blue_shulker_box", + BlueStainedGlass => "blue_stained_glass", + BlueStainedGlassPane => "blue_stained_glass_pane", + BlueStainedGlassPaneFromGlassPane => "blue_stained_glass_pane_from_glass_pane", + BlueTerracotta => "blue_terracotta", + BoltArmorTrimSmithingTemplate => "bolt_armor_trim_smithing_template", + BoltArmorTrimSmithingTemplateSmithingTrim => "bolt_armor_trim_smithing_template_smithing_trim", + BoneBlock => "bone_block", + BoneMeal => "bone_meal", + BoneMealFromBoneBlock => "bone_meal_from_bone_block", + Book => "book", + BookCloning => "book_cloning", + Bookshelf => "bookshelf", + BordureIndentedBannerPattern => "bordure_indented_banner_pattern", + Bow => "bow", + Bowl => "bowl", + Bread => "bread", + BrewingStand => "brewing_stand", + Brick => "brick", + BrickSlab => "brick_slab", + BrickSlabFromBricksStonecutting => "brick_slab_from_bricks_stonecutting", + BrickStairs => "brick_stairs", + BrickStairsFromBricksStonecutting => "brick_stairs_from_bricks_stonecutting", + BrickWall => "brick_wall", + BrickWallFromBricksStonecutting => "brick_wall_from_bricks_stonecutting", + Bricks => "bricks", + BrownBanner => "brown_banner", + BrownBed => "brown_bed", + BrownBundle => "brown_bundle", + BrownCandle => "brown_candle", + BrownCarpet => "brown_carpet", + BrownConcretePowder => "brown_concrete_powder", + BrownDye => "brown_dye", + BrownGlazedTerracotta => "brown_glazed_terracotta", + BrownHarness => "brown_harness", + BrownShulkerBox => "brown_shulker_box", + BrownStainedGlass => "brown_stained_glass", + BrownStainedGlassPane => "brown_stained_glass_pane", + BrownStainedGlassPaneFromGlassPane => "brown_stained_glass_pane_from_glass_pane", + BrownTerracotta => "brown_terracotta", + Brush => "brush", + Bucket => "bucket", + Bundle => "bundle", + Cake => "cake", + CalibratedSculkSensor => "calibrated_sculk_sensor", + Campfire => "campfire", + Candle => "candle", + CarrotOnAStick => "carrot_on_a_stick", + CartographyTable => "cartography_table", + Cauldron => "cauldron", + Charcoal => "charcoal", + CherryBoat => "cherry_boat", + CherryButton => "cherry_button", + CherryChestBoat => "cherry_chest_boat", + CherryDoor => "cherry_door", + CherryFence => "cherry_fence", + CherryFenceGate => "cherry_fence_gate", + CherryHangingSign => "cherry_hanging_sign", + CherryPlanks => "cherry_planks", + CherryPressurePlate => "cherry_pressure_plate", + CherryShelf => "cherry_shelf", + CherrySign => "cherry_sign", + CherrySlab => "cherry_slab", + CherryStairs => "cherry_stairs", + CherryTrapdoor => "cherry_trapdoor", + CherryWood => "cherry_wood", + Chest => "chest", + ChestMinecart => "chest_minecart", + ChiseledBookshelf => "chiseled_bookshelf", + ChiseledCopper => "chiseled_copper", + ChiseledCopperFromCopperBlockStonecutting => "chiseled_copper_from_copper_block_stonecutting", + ChiseledCopperFromCutCopperStonecutting => "chiseled_copper_from_cut_copper_stonecutting", + ChiseledDeepslate => "chiseled_deepslate", + ChiseledDeepslateFromCobbledDeepslateStonecutting => "chiseled_deepslate_from_cobbled_deepslate_stonecutting", + ChiseledNetherBricks => "chiseled_nether_bricks", + ChiseledNetherBricksFromNetherBricksStonecutting => "chiseled_nether_bricks_from_nether_bricks_stonecutting", + ChiseledPolishedBlackstone => "chiseled_polished_blackstone", + ChiseledPolishedBlackstoneFromBlackstoneStonecutting => "chiseled_polished_blackstone_from_blackstone_stonecutting", + ChiseledPolishedBlackstoneFromPolishedBlackstoneStonecutting => "chiseled_polished_blackstone_from_polished_blackstone_stonecutting", + ChiseledQuartzBlock => "chiseled_quartz_block", + ChiseledQuartzBlockFromQuartzBlockStonecutting => "chiseled_quartz_block_from_quartz_block_stonecutting", + ChiseledRedSandstone => "chiseled_red_sandstone", + ChiseledRedSandstoneFromRedSandstoneStonecutting => "chiseled_red_sandstone_from_red_sandstone_stonecutting", + ChiseledResinBricks => "chiseled_resin_bricks", + ChiseledResinBricksFromResinBricksStonecutting => "chiseled_resin_bricks_from_resin_bricks_stonecutting", + ChiseledSandstone => "chiseled_sandstone", + ChiseledSandstoneFromSandstoneStonecutting => "chiseled_sandstone_from_sandstone_stonecutting", + ChiseledStoneBricks => "chiseled_stone_bricks", + ChiseledStoneBricksFromStoneBricksStonecutting => "chiseled_stone_bricks_from_stone_bricks_stonecutting", + ChiseledStoneBricksStoneFromStonecutting => "chiseled_stone_bricks_stone_from_stonecutting", + ChiseledTuff => "chiseled_tuff", + ChiseledTuffBricks => "chiseled_tuff_bricks", + ChiseledTuffBricksFromPolishedTuffStonecutting => "chiseled_tuff_bricks_from_polished_tuff_stonecutting", + ChiseledTuffBricksFromTuffBricksStonecutting => "chiseled_tuff_bricks_from_tuff_bricks_stonecutting", + ChiseledTuffBricksFromTuffStonecutting => "chiseled_tuff_bricks_from_tuff_stonecutting", + ChiseledTuffFromTuffStonecutting => "chiseled_tuff_from_tuff_stonecutting", + Clay => "clay", + Clock => "clock", + Coal => "coal", + CoalBlock => "coal_block", + CoalFromBlastingCoalOre => "coal_from_blasting_coal_ore", + CoalFromBlastingDeepslateCoalOre => "coal_from_blasting_deepslate_coal_ore", + CoalFromSmeltingCoalOre => "coal_from_smelting_coal_ore", + CoalFromSmeltingDeepslateCoalOre => "coal_from_smelting_deepslate_coal_ore", + CoarseDirt => "coarse_dirt", + CoastArmorTrimSmithingTemplate => "coast_armor_trim_smithing_template", + CoastArmorTrimSmithingTemplateSmithingTrim => "coast_armor_trim_smithing_template_smithing_trim", + CobbledDeepslateSlab => "cobbled_deepslate_slab", + CobbledDeepslateSlabFromCobbledDeepslateStonecutting => "cobbled_deepslate_slab_from_cobbled_deepslate_stonecutting", + CobbledDeepslateStairs => "cobbled_deepslate_stairs", + CobbledDeepslateStairsFromCobbledDeepslateStonecutting => "cobbled_deepslate_stairs_from_cobbled_deepslate_stonecutting", + CobbledDeepslateWall => "cobbled_deepslate_wall", + CobbledDeepslateWallFromCobbledDeepslateStonecutting => "cobbled_deepslate_wall_from_cobbled_deepslate_stonecutting", + CobblestoneSlab => "cobblestone_slab", + CobblestoneSlabFromCobblestoneStonecutting => "cobblestone_slab_from_cobblestone_stonecutting", + CobblestoneStairs => "cobblestone_stairs", + CobblestoneStairsFromCobblestoneStonecutting => "cobblestone_stairs_from_cobblestone_stonecutting", + CobblestoneWall => "cobblestone_wall", + CobblestoneWallFromCobblestoneStonecutting => "cobblestone_wall_from_cobblestone_stonecutting", + Comparator => "comparator", + Compass => "compass", + Composter => "composter", + Conduit => "conduit", + CookedBeef => "cooked_beef", + CookedBeefFromCampfireCooking => "cooked_beef_from_campfire_cooking", + CookedBeefFromSmoking => "cooked_beef_from_smoking", + CookedChicken => "cooked_chicken", + CookedChickenFromCampfireCooking => "cooked_chicken_from_campfire_cooking", + CookedChickenFromSmoking => "cooked_chicken_from_smoking", + CookedCod => "cooked_cod", + CookedCodFromCampfireCooking => "cooked_cod_from_campfire_cooking", + CookedCodFromSmoking => "cooked_cod_from_smoking", + CookedMutton => "cooked_mutton", + CookedMuttonFromCampfireCooking => "cooked_mutton_from_campfire_cooking", + CookedMuttonFromSmoking => "cooked_mutton_from_smoking", + CookedPorkchop => "cooked_porkchop", + CookedPorkchopFromCampfireCooking => "cooked_porkchop_from_campfire_cooking", + CookedPorkchopFromSmoking => "cooked_porkchop_from_smoking", + CookedRabbit => "cooked_rabbit", + CookedRabbitFromCampfireCooking => "cooked_rabbit_from_campfire_cooking", + CookedRabbitFromSmoking => "cooked_rabbit_from_smoking", + CookedSalmon => "cooked_salmon", + CookedSalmonFromCampfireCooking => "cooked_salmon_from_campfire_cooking", + CookedSalmonFromSmoking => "cooked_salmon_from_smoking", + Cookie => "cookie", + CopperAxe => "copper_axe", + CopperBars => "copper_bars", + CopperBlock => "copper_block", + CopperBoots => "copper_boots", + CopperBulb => "copper_bulb", + CopperChain => "copper_chain", + CopperChest => "copper_chest", + CopperChestplate => "copper_chestplate", + CopperDoor => "copper_door", + CopperGrate => "copper_grate", + CopperGrateFromCopperBlockStonecutting => "copper_grate_from_copper_block_stonecutting", + CopperHelmet => "copper_helmet", + CopperHoe => "copper_hoe", + CopperIngot => "copper_ingot", + CopperIngotFromBlastingCopperOre => "copper_ingot_from_blasting_copper_ore", + CopperIngotFromBlastingDeepslateCopperOre => "copper_ingot_from_blasting_deepslate_copper_ore", + CopperIngotFromBlastingRawCopper => "copper_ingot_from_blasting_raw_copper", + CopperIngotFromNuggets => "copper_ingot_from_nuggets", + CopperIngotFromSmeltingCopperOre => "copper_ingot_from_smelting_copper_ore", + CopperIngotFromSmeltingDeepslateCopperOre => "copper_ingot_from_smelting_deepslate_copper_ore", + CopperIngotFromSmeltingRawCopper => "copper_ingot_from_smelting_raw_copper", + CopperIngotFromWaxedCopperBlock => "copper_ingot_from_waxed_copper_block", + CopperLantern => "copper_lantern", + CopperLeggings => "copper_leggings", + CopperNugget => "copper_nugget", + CopperNuggetFromBlasting => "copper_nugget_from_blasting", + CopperNuggetFromSmelting => "copper_nugget_from_smelting", + CopperPickaxe => "copper_pickaxe", + CopperShovel => "copper_shovel", + CopperSpear => "copper_spear", + CopperSword => "copper_sword", + CopperTorch => "copper_torch", + CopperTrapdoor => "copper_trapdoor", + CrackedDeepslateBricks => "cracked_deepslate_bricks", + CrackedDeepslateTiles => "cracked_deepslate_tiles", + CrackedNetherBricks => "cracked_nether_bricks", + CrackedPolishedBlackstoneBricks => "cracked_polished_blackstone_bricks", + CrackedStoneBricks => "cracked_stone_bricks", + Crafter => "crafter", + CraftingTable => "crafting_table", + CreakingHeart => "creaking_heart", + CreeperBannerPattern => "creeper_banner_pattern", + CrimsonButton => "crimson_button", + CrimsonDoor => "crimson_door", + CrimsonFence => "crimson_fence", + CrimsonFenceGate => "crimson_fence_gate", + CrimsonHangingSign => "crimson_hanging_sign", + CrimsonHyphae => "crimson_hyphae", + CrimsonPlanks => "crimson_planks", + CrimsonPressurePlate => "crimson_pressure_plate", + CrimsonShelf => "crimson_shelf", + CrimsonSign => "crimson_sign", + CrimsonSlab => "crimson_slab", + CrimsonStairs => "crimson_stairs", + CrimsonTrapdoor => "crimson_trapdoor", + Crossbow => "crossbow", + CutCopper => "cut_copper", + CutCopperFromCopperBlockStonecutting => "cut_copper_from_copper_block_stonecutting", + CutCopperSlab => "cut_copper_slab", + CutCopperSlabFromCopperBlockStonecutting => "cut_copper_slab_from_copper_block_stonecutting", + CutCopperSlabFromCutCopperStonecutting => "cut_copper_slab_from_cut_copper_stonecutting", + CutCopperStairs => "cut_copper_stairs", + CutCopperStairsFromCopperBlockStonecutting => "cut_copper_stairs_from_copper_block_stonecutting", + CutCopperStairsFromCutCopperStonecutting => "cut_copper_stairs_from_cut_copper_stonecutting", + CutRedSandstone => "cut_red_sandstone", + CutRedSandstoneFromRedSandstoneStonecutting => "cut_red_sandstone_from_red_sandstone_stonecutting", + CutRedSandstoneSlab => "cut_red_sandstone_slab", + CutRedSandstoneSlabFromCutRedSandstoneStonecutting => "cut_red_sandstone_slab_from_cut_red_sandstone_stonecutting", + CutRedSandstoneSlabFromRedSandstoneStonecutting => "cut_red_sandstone_slab_from_red_sandstone_stonecutting", + CutSandstone => "cut_sandstone", + CutSandstoneFromSandstoneStonecutting => "cut_sandstone_from_sandstone_stonecutting", + CutSandstoneSlab => "cut_sandstone_slab", + CutSandstoneSlabFromCutSandstoneStonecutting => "cut_sandstone_slab_from_cut_sandstone_stonecutting", + CutSandstoneSlabFromSandstoneStonecutting => "cut_sandstone_slab_from_sandstone_stonecutting", + CyanBanner => "cyan_banner", + CyanBed => "cyan_bed", + CyanBundle => "cyan_bundle", + CyanCandle => "cyan_candle", + CyanCarpet => "cyan_carpet", + CyanConcretePowder => "cyan_concrete_powder", + CyanDye => "cyan_dye", + CyanDyeFromPitcherPlant => "cyan_dye_from_pitcher_plant", + CyanGlazedTerracotta => "cyan_glazed_terracotta", + CyanHarness => "cyan_harness", + CyanShulkerBox => "cyan_shulker_box", + CyanStainedGlass => "cyan_stained_glass", + CyanStainedGlassPane => "cyan_stained_glass_pane", + CyanStainedGlassPaneFromGlassPane => "cyan_stained_glass_pane_from_glass_pane", + CyanTerracotta => "cyan_terracotta", + DarkOakBoat => "dark_oak_boat", + DarkOakButton => "dark_oak_button", + DarkOakChestBoat => "dark_oak_chest_boat", + DarkOakDoor => "dark_oak_door", + DarkOakFence => "dark_oak_fence", + DarkOakFenceGate => "dark_oak_fence_gate", + DarkOakHangingSign => "dark_oak_hanging_sign", + DarkOakPlanks => "dark_oak_planks", + DarkOakPressurePlate => "dark_oak_pressure_plate", + DarkOakShelf => "dark_oak_shelf", + DarkOakSign => "dark_oak_sign", + DarkOakSlab => "dark_oak_slab", + DarkOakStairs => "dark_oak_stairs", + DarkOakTrapdoor => "dark_oak_trapdoor", + DarkOakWood => "dark_oak_wood", + DarkPrismarine => "dark_prismarine", + DarkPrismarineSlab => "dark_prismarine_slab", + DarkPrismarineSlabFromDarkPrismarineStonecutting => "dark_prismarine_slab_from_dark_prismarine_stonecutting", + DarkPrismarineStairs => "dark_prismarine_stairs", + DarkPrismarineStairsFromDarkPrismarineStonecutting => "dark_prismarine_stairs_from_dark_prismarine_stonecutting", + DaylightDetector => "daylight_detector", + DecoratedPot => "decorated_pot", + DecoratedPotSimple => "decorated_pot_simple", + Deepslate => "deepslate", + DeepslateBrickSlab => "deepslate_brick_slab", + DeepslateBrickSlabFromCobbledDeepslateStonecutting => "deepslate_brick_slab_from_cobbled_deepslate_stonecutting", + DeepslateBrickSlabFromDeepslateBricksStonecutting => "deepslate_brick_slab_from_deepslate_bricks_stonecutting", + DeepslateBrickSlabFromPolishedDeepslateStonecutting => "deepslate_brick_slab_from_polished_deepslate_stonecutting", + DeepslateBrickStairs => "deepslate_brick_stairs", + DeepslateBrickStairsFromCobbledDeepslateStonecutting => "deepslate_brick_stairs_from_cobbled_deepslate_stonecutting", + DeepslateBrickStairsFromDeepslateBricksStonecutting => "deepslate_brick_stairs_from_deepslate_bricks_stonecutting", + DeepslateBrickStairsFromPolishedDeepslateStonecutting => "deepslate_brick_stairs_from_polished_deepslate_stonecutting", + DeepslateBrickWall => "deepslate_brick_wall", + DeepslateBrickWallFromCobbledDeepslateStonecutting => "deepslate_brick_wall_from_cobbled_deepslate_stonecutting", + DeepslateBrickWallFromDeepslateBricksStonecutting => "deepslate_brick_wall_from_deepslate_bricks_stonecutting", + DeepslateBrickWallFromPolishedDeepslateStonecutting => "deepslate_brick_wall_from_polished_deepslate_stonecutting", + DeepslateBricks => "deepslate_bricks", + DeepslateBricksFromCobbledDeepslateStonecutting => "deepslate_bricks_from_cobbled_deepslate_stonecutting", + DeepslateBricksFromPolishedDeepslateStonecutting => "deepslate_bricks_from_polished_deepslate_stonecutting", + DeepslateTileSlab => "deepslate_tile_slab", + DeepslateTileSlabFromCobbledDeepslateStonecutting => "deepslate_tile_slab_from_cobbled_deepslate_stonecutting", + DeepslateTileSlabFromDeepslateBricksStonecutting => "deepslate_tile_slab_from_deepslate_bricks_stonecutting", + DeepslateTileSlabFromDeepslateTilesStonecutting => "deepslate_tile_slab_from_deepslate_tiles_stonecutting", + DeepslateTileSlabFromPolishedDeepslateStonecutting => "deepslate_tile_slab_from_polished_deepslate_stonecutting", + DeepslateTileStairs => "deepslate_tile_stairs", + DeepslateTileStairsFromCobbledDeepslateStonecutting => "deepslate_tile_stairs_from_cobbled_deepslate_stonecutting", + DeepslateTileStairsFromDeepslateBricksStonecutting => "deepslate_tile_stairs_from_deepslate_bricks_stonecutting", + DeepslateTileStairsFromDeepslateTilesStonecutting => "deepslate_tile_stairs_from_deepslate_tiles_stonecutting", + DeepslateTileStairsFromPolishedDeepslateStonecutting => "deepslate_tile_stairs_from_polished_deepslate_stonecutting", + DeepslateTileWall => "deepslate_tile_wall", + DeepslateTileWallFromCobbledDeepslateStonecutting => "deepslate_tile_wall_from_cobbled_deepslate_stonecutting", + DeepslateTileWallFromDeepslateBricksStonecutting => "deepslate_tile_wall_from_deepslate_bricks_stonecutting", + DeepslateTileWallFromDeepslateTilesStonecutting => "deepslate_tile_wall_from_deepslate_tiles_stonecutting", + DeepslateTileWallFromPolishedDeepslateStonecutting => "deepslate_tile_wall_from_polished_deepslate_stonecutting", + DeepslateTiles => "deepslate_tiles", + DeepslateTilesFromCobbledDeepslateStonecutting => "deepslate_tiles_from_cobbled_deepslate_stonecutting", + DeepslateTilesFromDeepslateBricksStonecutting => "deepslate_tiles_from_deepslate_bricks_stonecutting", + DeepslateTilesFromPolishedDeepslateStonecutting => "deepslate_tiles_from_polished_deepslate_stonecutting", + DetectorRail => "detector_rail", + Diamond => "diamond", + DiamondAxe => "diamond_axe", + DiamondBlock => "diamond_block", + DiamondBoots => "diamond_boots", + DiamondChestplate => "diamond_chestplate", + DiamondFromBlastingDeepslateDiamondOre => "diamond_from_blasting_deepslate_diamond_ore", + DiamondFromBlastingDiamondOre => "diamond_from_blasting_diamond_ore", + DiamondFromSmeltingDeepslateDiamondOre => "diamond_from_smelting_deepslate_diamond_ore", + DiamondFromSmeltingDiamondOre => "diamond_from_smelting_diamond_ore", + DiamondHelmet => "diamond_helmet", + DiamondHoe => "diamond_hoe", + DiamondLeggings => "diamond_leggings", + DiamondPickaxe => "diamond_pickaxe", + DiamondShovel => "diamond_shovel", + DiamondSpear => "diamond_spear", + DiamondSword => "diamond_sword", + Diorite => "diorite", + DioriteSlab => "diorite_slab", + DioriteSlabFromDioriteStonecutting => "diorite_slab_from_diorite_stonecutting", + DioriteStairs => "diorite_stairs", + DioriteStairsFromDioriteStonecutting => "diorite_stairs_from_diorite_stonecutting", + DioriteWall => "diorite_wall", + DioriteWallFromDioriteStonecutting => "diorite_wall_from_diorite_stonecutting", + Dispenser => "dispenser", + DriedGhast => "dried_ghast", + DriedKelp => "dried_kelp", + DriedKelpBlock => "dried_kelp_block", + DriedKelpFromCampfireCooking => "dried_kelp_from_campfire_cooking", + DriedKelpFromSmelting => "dried_kelp_from_smelting", + DriedKelpFromSmoking => "dried_kelp_from_smoking", + DripstoneBlock => "dripstone_block", + Dropper => "dropper", + DuneArmorTrimSmithingTemplate => "dune_armor_trim_smithing_template", + DuneArmorTrimSmithingTemplateSmithingTrim => "dune_armor_trim_smithing_template_smithing_trim", + DyeBlackBed => "dye_black_bed", + DyeBlackCarpet => "dye_black_carpet", + DyeBlackHarness => "dye_black_harness", + DyeBlackWool => "dye_black_wool", + DyeBlueBed => "dye_blue_bed", + DyeBlueCarpet => "dye_blue_carpet", + DyeBlueHarness => "dye_blue_harness", + DyeBlueWool => "dye_blue_wool", + DyeBrownBed => "dye_brown_bed", + DyeBrownCarpet => "dye_brown_carpet", + DyeBrownHarness => "dye_brown_harness", + DyeBrownWool => "dye_brown_wool", + DyeCyanBed => "dye_cyan_bed", + DyeCyanCarpet => "dye_cyan_carpet", + DyeCyanHarness => "dye_cyan_harness", + DyeCyanWool => "dye_cyan_wool", + DyeGrayBed => "dye_gray_bed", + DyeGrayCarpet => "dye_gray_carpet", + DyeGrayHarness => "dye_gray_harness", + DyeGrayWool => "dye_gray_wool", + DyeGreenBed => "dye_green_bed", + DyeGreenCarpet => "dye_green_carpet", + DyeGreenHarness => "dye_green_harness", + DyeGreenWool => "dye_green_wool", + DyeLightBlueBed => "dye_light_blue_bed", + DyeLightBlueCarpet => "dye_light_blue_carpet", + DyeLightBlueHarness => "dye_light_blue_harness", + DyeLightBlueWool => "dye_light_blue_wool", + DyeLightGrayBed => "dye_light_gray_bed", + DyeLightGrayCarpet => "dye_light_gray_carpet", + DyeLightGrayHarness => "dye_light_gray_harness", + DyeLightGrayWool => "dye_light_gray_wool", + DyeLimeBed => "dye_lime_bed", + DyeLimeCarpet => "dye_lime_carpet", + DyeLimeHarness => "dye_lime_harness", + DyeLimeWool => "dye_lime_wool", + DyeMagentaBed => "dye_magenta_bed", + DyeMagentaCarpet => "dye_magenta_carpet", + DyeMagentaHarness => "dye_magenta_harness", + DyeMagentaWool => "dye_magenta_wool", + DyeOrangeBed => "dye_orange_bed", + DyeOrangeCarpet => "dye_orange_carpet", + DyeOrangeHarness => "dye_orange_harness", + DyeOrangeWool => "dye_orange_wool", + DyePinkBed => "dye_pink_bed", + DyePinkCarpet => "dye_pink_carpet", + DyePinkHarness => "dye_pink_harness", + DyePinkWool => "dye_pink_wool", + DyePurpleBed => "dye_purple_bed", + DyePurpleCarpet => "dye_purple_carpet", + DyePurpleHarness => "dye_purple_harness", + DyePurpleWool => "dye_purple_wool", + DyeRedBed => "dye_red_bed", + DyeRedCarpet => "dye_red_carpet", + DyeRedHarness => "dye_red_harness", + DyeRedWool => "dye_red_wool", + DyeWhiteBed => "dye_white_bed", + DyeWhiteCarpet => "dye_white_carpet", + DyeWhiteHarness => "dye_white_harness", + DyeWhiteWool => "dye_white_wool", + DyeYellowBed => "dye_yellow_bed", + DyeYellowCarpet => "dye_yellow_carpet", + DyeYellowHarness => "dye_yellow_harness", + DyeYellowWool => "dye_yellow_wool", + Emerald => "emerald", + EmeraldBlock => "emerald_block", + EmeraldFromBlastingDeepslateEmeraldOre => "emerald_from_blasting_deepslate_emerald_ore", + EmeraldFromBlastingEmeraldOre => "emerald_from_blasting_emerald_ore", + EmeraldFromSmeltingDeepslateEmeraldOre => "emerald_from_smelting_deepslate_emerald_ore", + EmeraldFromSmeltingEmeraldOre => "emerald_from_smelting_emerald_ore", + EnchantingTable => "enchanting_table", + EndCrystal => "end_crystal", + EndRod => "end_rod", + EndStoneBrickSlab => "end_stone_brick_slab", + EndStoneBrickSlabFromEndStoneBrickStonecutting => "end_stone_brick_slab_from_end_stone_brick_stonecutting", + EndStoneBrickSlabFromEndStoneStonecutting => "end_stone_brick_slab_from_end_stone_stonecutting", + EndStoneBrickStairs => "end_stone_brick_stairs", + EndStoneBrickStairsFromEndStoneBrickStonecutting => "end_stone_brick_stairs_from_end_stone_brick_stonecutting", + EndStoneBrickStairsFromEndStoneStonecutting => "end_stone_brick_stairs_from_end_stone_stonecutting", + EndStoneBrickWall => "end_stone_brick_wall", + EndStoneBrickWallFromEndStoneBrickStonecutting => "end_stone_brick_wall_from_end_stone_brick_stonecutting", + EndStoneBrickWallFromEndStoneStonecutting => "end_stone_brick_wall_from_end_stone_stonecutting", + EndStoneBricks => "end_stone_bricks", + EndStoneBricksFromEndStoneStonecutting => "end_stone_bricks_from_end_stone_stonecutting", + EnderChest => "ender_chest", + EnderEye => "ender_eye", + ExposedChiseledCopper => "exposed_chiseled_copper", + ExposedChiseledCopperFromExposedCopperStonecutting => "exposed_chiseled_copper_from_exposed_copper_stonecutting", + ExposedChiseledCopperFromExposedCutCopperStonecutting => "exposed_chiseled_copper_from_exposed_cut_copper_stonecutting", + ExposedCopperBulb => "exposed_copper_bulb", + ExposedCopperGrate => "exposed_copper_grate", + ExposedCopperGrateFromExposedCopperStonecutting => "exposed_copper_grate_from_exposed_copper_stonecutting", + ExposedCutCopper => "exposed_cut_copper", + ExposedCutCopperFromExposedCopperStonecutting => "exposed_cut_copper_from_exposed_copper_stonecutting", + ExposedCutCopperSlab => "exposed_cut_copper_slab", + ExposedCutCopperSlabFromExposedCopperStonecutting => "exposed_cut_copper_slab_from_exposed_copper_stonecutting", + ExposedCutCopperSlabFromExposedCutCopperStonecutting => "exposed_cut_copper_slab_from_exposed_cut_copper_stonecutting", + ExposedCutCopperStairs => "exposed_cut_copper_stairs", + ExposedCutCopperStairsFromExposedCopperStonecutting => "exposed_cut_copper_stairs_from_exposed_copper_stonecutting", + ExposedCutCopperStairsFromExposedCutCopperStonecutting => "exposed_cut_copper_stairs_from_exposed_cut_copper_stonecutting", + EyeArmorTrimSmithingTemplate => "eye_armor_trim_smithing_template", + EyeArmorTrimSmithingTemplateSmithingTrim => "eye_armor_trim_smithing_template_smithing_trim", + FermentedSpiderEye => "fermented_spider_eye", + FieldMasonedBannerPattern => "field_masoned_banner_pattern", + FireCharge => "fire_charge", + FireworkRocket => "firework_rocket", + FireworkRocketSimple => "firework_rocket_simple", + FireworkStar => "firework_star", + FireworkStarFade => "firework_star_fade", + FishingRod => "fishing_rod", + FletchingTable => "fletching_table", + FlintAndSteel => "flint_and_steel", + FlowArmorTrimSmithingTemplate => "flow_armor_trim_smithing_template", + FlowArmorTrimSmithingTemplateSmithingTrim => "flow_armor_trim_smithing_template_smithing_trim", + FlowerBannerPattern => "flower_banner_pattern", + FlowerPot => "flower_pot", + Furnace => "furnace", + FurnaceMinecart => "furnace_minecart", + Glass => "glass", + GlassBottle => "glass_bottle", + GlassPane => "glass_pane", + GlisteringMelonSlice => "glistering_melon_slice", + GlowItemFrame => "glow_item_frame", + Glowstone => "glowstone", + GoldBlock => "gold_block", + GoldIngotFromBlastingDeepslateGoldOre => "gold_ingot_from_blasting_deepslate_gold_ore", + GoldIngotFromBlastingGoldOre => "gold_ingot_from_blasting_gold_ore", + GoldIngotFromBlastingNetherGoldOre => "gold_ingot_from_blasting_nether_gold_ore", + GoldIngotFromBlastingRawGold => "gold_ingot_from_blasting_raw_gold", + GoldIngotFromGoldBlock => "gold_ingot_from_gold_block", + GoldIngotFromNuggets => "gold_ingot_from_nuggets", + GoldIngotFromSmeltingDeepslateGoldOre => "gold_ingot_from_smelting_deepslate_gold_ore", + GoldIngotFromSmeltingGoldOre => "gold_ingot_from_smelting_gold_ore", + GoldIngotFromSmeltingNetherGoldOre => "gold_ingot_from_smelting_nether_gold_ore", + GoldIngotFromSmeltingRawGold => "gold_ingot_from_smelting_raw_gold", + GoldNugget => "gold_nugget", + GoldNuggetFromBlasting => "gold_nugget_from_blasting", + GoldNuggetFromSmelting => "gold_nugget_from_smelting", + GoldenApple => "golden_apple", + GoldenAxe => "golden_axe", + GoldenBoots => "golden_boots", + GoldenCarrot => "golden_carrot", + GoldenChestplate => "golden_chestplate", + GoldenHelmet => "golden_helmet", + GoldenHoe => "golden_hoe", + GoldenLeggings => "golden_leggings", + GoldenPickaxe => "golden_pickaxe", + GoldenShovel => "golden_shovel", + GoldenSpear => "golden_spear", + GoldenSword => "golden_sword", + Granite => "granite", + GraniteSlab => "granite_slab", + GraniteSlabFromGraniteStonecutting => "granite_slab_from_granite_stonecutting", + GraniteStairs => "granite_stairs", + GraniteStairsFromGraniteStonecutting => "granite_stairs_from_granite_stonecutting", + GraniteWall => "granite_wall", + GraniteWallFromGraniteStonecutting => "granite_wall_from_granite_stonecutting", + GrayBanner => "gray_banner", + GrayBed => "gray_bed", + GrayBundle => "gray_bundle", + GrayCandle => "gray_candle", + GrayCarpet => "gray_carpet", + GrayConcretePowder => "gray_concrete_powder", + GrayDye => "gray_dye", + GrayDyeFromClosedEyeblossom => "gray_dye_from_closed_eyeblossom", + GrayGlazedTerracotta => "gray_glazed_terracotta", + GrayHarness => "gray_harness", + GrayShulkerBox => "gray_shulker_box", + GrayStainedGlass => "gray_stained_glass", + GrayStainedGlassPane => "gray_stained_glass_pane", + GrayStainedGlassPaneFromGlassPane => "gray_stained_glass_pane_from_glass_pane", + GrayTerracotta => "gray_terracotta", + GreenBanner => "green_banner", + GreenBed => "green_bed", + GreenBundle => "green_bundle", + GreenCandle => "green_candle", + GreenCarpet => "green_carpet", + GreenConcretePowder => "green_concrete_powder", + GreenDye => "green_dye", + GreenGlazedTerracotta => "green_glazed_terracotta", + GreenHarness => "green_harness", + GreenShulkerBox => "green_shulker_box", + GreenStainedGlass => "green_stained_glass", + GreenStainedGlassPane => "green_stained_glass_pane", + GreenStainedGlassPaneFromGlassPane => "green_stained_glass_pane_from_glass_pane", + GreenTerracotta => "green_terracotta", + Grindstone => "grindstone", + HayBlock => "hay_block", + HeavyWeightedPressurePlate => "heavy_weighted_pressure_plate", + HoneyBlock => "honey_block", + HoneyBottle => "honey_bottle", + HoneycombBlock => "honeycomb_block", + Hopper => "hopper", + HopperMinecart => "hopper_minecart", + HostArmorTrimSmithingTemplate => "host_armor_trim_smithing_template", + HostArmorTrimSmithingTemplateSmithingTrim => "host_armor_trim_smithing_template_smithing_trim", + IronAxe => "iron_axe", + IronBars => "iron_bars", + IronBlock => "iron_block", + IronBoots => "iron_boots", + IronChain => "iron_chain", + IronChestplate => "iron_chestplate", + IronDoor => "iron_door", + IronHelmet => "iron_helmet", + IronHoe => "iron_hoe", + IronIngotFromBlastingDeepslateIronOre => "iron_ingot_from_blasting_deepslate_iron_ore", + IronIngotFromBlastingIronOre => "iron_ingot_from_blasting_iron_ore", + IronIngotFromBlastingRawIron => "iron_ingot_from_blasting_raw_iron", + IronIngotFromIronBlock => "iron_ingot_from_iron_block", + IronIngotFromNuggets => "iron_ingot_from_nuggets", + IronIngotFromSmeltingDeepslateIronOre => "iron_ingot_from_smelting_deepslate_iron_ore", + IronIngotFromSmeltingIronOre => "iron_ingot_from_smelting_iron_ore", + IronIngotFromSmeltingRawIron => "iron_ingot_from_smelting_raw_iron", + IronLeggings => "iron_leggings", + IronNugget => "iron_nugget", + IronNuggetFromBlasting => "iron_nugget_from_blasting", + IronNuggetFromSmelting => "iron_nugget_from_smelting", + IronPickaxe => "iron_pickaxe", + IronShovel => "iron_shovel", + IronSpear => "iron_spear", + IronSword => "iron_sword", + IronTrapdoor => "iron_trapdoor", + ItemFrame => "item_frame", + JackOLantern => "jack_o_lantern", + Jukebox => "jukebox", + JungleBoat => "jungle_boat", + JungleButton => "jungle_button", + JungleChestBoat => "jungle_chest_boat", + JungleDoor => "jungle_door", + JungleFence => "jungle_fence", + JungleFenceGate => "jungle_fence_gate", + JungleHangingSign => "jungle_hanging_sign", + JunglePlanks => "jungle_planks", + JunglePressurePlate => "jungle_pressure_plate", + JungleShelf => "jungle_shelf", + JungleSign => "jungle_sign", + JungleSlab => "jungle_slab", + JungleStairs => "jungle_stairs", + JungleTrapdoor => "jungle_trapdoor", + JungleWood => "jungle_wood", + Ladder => "ladder", + Lantern => "lantern", + LapisBlock => "lapis_block", + LapisLazuli => "lapis_lazuli", + LapisLazuliFromBlastingDeepslateLapisOre => "lapis_lazuli_from_blasting_deepslate_lapis_ore", + LapisLazuliFromBlastingLapisOre => "lapis_lazuli_from_blasting_lapis_ore", + LapisLazuliFromSmeltingDeepslateLapisOre => "lapis_lazuli_from_smelting_deepslate_lapis_ore", + LapisLazuliFromSmeltingLapisOre => "lapis_lazuli_from_smelting_lapis_ore", + Lead => "lead", + LeafLitter => "leaf_litter", + Leather => "leather", + LeatherBoots => "leather_boots", + LeatherChestplate => "leather_chestplate", + LeatherHelmet => "leather_helmet", + LeatherHorseArmor => "leather_horse_armor", + LeatherLeggings => "leather_leggings", + Lectern => "lectern", + Lever => "lever", + LightBlueBanner => "light_blue_banner", + LightBlueBed => "light_blue_bed", + LightBlueBundle => "light_blue_bundle", + LightBlueCandle => "light_blue_candle", + LightBlueCarpet => "light_blue_carpet", + LightBlueConcretePowder => "light_blue_concrete_powder", + LightBlueDyeFromBlueOrchid => "light_blue_dye_from_blue_orchid", + LightBlueDyeFromBlueWhiteDye => "light_blue_dye_from_blue_white_dye", + LightBlueGlazedTerracotta => "light_blue_glazed_terracotta", + LightBlueHarness => "light_blue_harness", + LightBlueShulkerBox => "light_blue_shulker_box", + LightBlueStainedGlass => "light_blue_stained_glass", + LightBlueStainedGlassPane => "light_blue_stained_glass_pane", + LightBlueStainedGlassPaneFromGlassPane => "light_blue_stained_glass_pane_from_glass_pane", + LightBlueTerracotta => "light_blue_terracotta", + LightGrayBanner => "light_gray_banner", + LightGrayBed => "light_gray_bed", + LightGrayBundle => "light_gray_bundle", + LightGrayCandle => "light_gray_candle", + LightGrayCarpet => "light_gray_carpet", + LightGrayConcretePowder => "light_gray_concrete_powder", + LightGrayDyeFromAzureBluet => "light_gray_dye_from_azure_bluet", + LightGrayDyeFromBlackWhiteDye => "light_gray_dye_from_black_white_dye", + LightGrayDyeFromGrayWhiteDye => "light_gray_dye_from_gray_white_dye", + LightGrayDyeFromOxeyeDaisy => "light_gray_dye_from_oxeye_daisy", + LightGrayDyeFromWhiteTulip => "light_gray_dye_from_white_tulip", + LightGrayGlazedTerracotta => "light_gray_glazed_terracotta", + LightGrayHarness => "light_gray_harness", + LightGrayShulkerBox => "light_gray_shulker_box", + LightGrayStainedGlass => "light_gray_stained_glass", + LightGrayStainedGlassPane => "light_gray_stained_glass_pane", + LightGrayStainedGlassPaneFromGlassPane => "light_gray_stained_glass_pane_from_glass_pane", + LightGrayTerracotta => "light_gray_terracotta", + LightWeightedPressurePlate => "light_weighted_pressure_plate", + LightningRod => "lightning_rod", + LimeBanner => "lime_banner", + LimeBed => "lime_bed", + LimeBundle => "lime_bundle", + LimeCandle => "lime_candle", + LimeCarpet => "lime_carpet", + LimeConcretePowder => "lime_concrete_powder", + LimeDye => "lime_dye", + LimeDyeFromSmelting => "lime_dye_from_smelting", + LimeGlazedTerracotta => "lime_glazed_terracotta", + LimeHarness => "lime_harness", + LimeShulkerBox => "lime_shulker_box", + LimeStainedGlass => "lime_stained_glass", + LimeStainedGlassPane => "lime_stained_glass_pane", + LimeStainedGlassPaneFromGlassPane => "lime_stained_glass_pane_from_glass_pane", + LimeTerracotta => "lime_terracotta", + Lodestone => "lodestone", + Loom => "loom", + Mace => "mace", + MagentaBanner => "magenta_banner", + MagentaBed => "magenta_bed", + MagentaBundle => "magenta_bundle", + MagentaCandle => "magenta_candle", + MagentaCarpet => "magenta_carpet", + MagentaConcretePowder => "magenta_concrete_powder", + MagentaDyeFromAllium => "magenta_dye_from_allium", + MagentaDyeFromBlueRedPink => "magenta_dye_from_blue_red_pink", + MagentaDyeFromBlueRedWhiteDye => "magenta_dye_from_blue_red_white_dye", + MagentaDyeFromLilac => "magenta_dye_from_lilac", + MagentaDyeFromPurpleAndPink => "magenta_dye_from_purple_and_pink", + MagentaGlazedTerracotta => "magenta_glazed_terracotta", + MagentaHarness => "magenta_harness", + MagentaShulkerBox => "magenta_shulker_box", + MagentaStainedGlass => "magenta_stained_glass", + MagentaStainedGlassPane => "magenta_stained_glass_pane", + MagentaStainedGlassPaneFromGlassPane => "magenta_stained_glass_pane_from_glass_pane", + MagentaTerracotta => "magenta_terracotta", + MagmaBlock => "magma_block", + MagmaCream => "magma_cream", + MangroveBoat => "mangrove_boat", + MangroveButton => "mangrove_button", + MangroveChestBoat => "mangrove_chest_boat", + MangroveDoor => "mangrove_door", + MangroveFence => "mangrove_fence", + MangroveFenceGate => "mangrove_fence_gate", + MangroveHangingSign => "mangrove_hanging_sign", + MangrovePlanks => "mangrove_planks", + MangrovePressurePlate => "mangrove_pressure_plate", + MangroveShelf => "mangrove_shelf", + MangroveSign => "mangrove_sign", + MangroveSlab => "mangrove_slab", + MangroveStairs => "mangrove_stairs", + MangroveTrapdoor => "mangrove_trapdoor", + MangroveWood => "mangrove_wood", + Map => "map", + MapCloning => "map_cloning", + MapExtending => "map_extending", + Melon => "melon", + MelonSeeds => "melon_seeds", + Minecart => "minecart", + MojangBannerPattern => "mojang_banner_pattern", + MossCarpet => "moss_carpet", + MossyCobblestoneFromMossBlock => "mossy_cobblestone_from_moss_block", + MossyCobblestoneFromVine => "mossy_cobblestone_from_vine", + MossyCobblestoneSlab => "mossy_cobblestone_slab", + MossyCobblestoneSlabFromMossyCobblestoneStonecutting => "mossy_cobblestone_slab_from_mossy_cobblestone_stonecutting", + MossyCobblestoneStairs => "mossy_cobblestone_stairs", + MossyCobblestoneStairsFromMossyCobblestoneStonecutting => "mossy_cobblestone_stairs_from_mossy_cobblestone_stonecutting", + MossyCobblestoneWall => "mossy_cobblestone_wall", + MossyCobblestoneWallFromMossyCobblestoneStonecutting => "mossy_cobblestone_wall_from_mossy_cobblestone_stonecutting", + MossyStoneBrickSlab => "mossy_stone_brick_slab", + MossyStoneBrickSlabFromMossyStoneBrickStonecutting => "mossy_stone_brick_slab_from_mossy_stone_brick_stonecutting", + MossyStoneBrickStairs => "mossy_stone_brick_stairs", + MossyStoneBrickStairsFromMossyStoneBrickStonecutting => "mossy_stone_brick_stairs_from_mossy_stone_brick_stonecutting", + MossyStoneBrickWall => "mossy_stone_brick_wall", + MossyStoneBrickWallFromMossyStoneBrickStonecutting => "mossy_stone_brick_wall_from_mossy_stone_brick_stonecutting", + MossyStoneBricksFromMossBlock => "mossy_stone_bricks_from_moss_block", + MossyStoneBricksFromVine => "mossy_stone_bricks_from_vine", + MudBrickSlab => "mud_brick_slab", + MudBrickSlabFromMudBricksStonecutting => "mud_brick_slab_from_mud_bricks_stonecutting", + MudBrickStairs => "mud_brick_stairs", + MudBrickStairsFromMudBricksStonecutting => "mud_brick_stairs_from_mud_bricks_stonecutting", + MudBrickWall => "mud_brick_wall", + MudBrickWallFromMudBricksStonecutting => "mud_brick_wall_from_mud_bricks_stonecutting", + MudBricks => "mud_bricks", + MuddyMangroveRoots => "muddy_mangrove_roots", + MushroomStew => "mushroom_stew", + MusicDisc5 => "music_disc_5", + NetherBrick => "nether_brick", + NetherBrickFence => "nether_brick_fence", + NetherBrickSlab => "nether_brick_slab", + NetherBrickSlabFromNetherBricksStonecutting => "nether_brick_slab_from_nether_bricks_stonecutting", + NetherBrickStairs => "nether_brick_stairs", + NetherBrickStairsFromNetherBricksStonecutting => "nether_brick_stairs_from_nether_bricks_stonecutting", + NetherBrickWall => "nether_brick_wall", + NetherBrickWallFromNetherBricksStonecutting => "nether_brick_wall_from_nether_bricks_stonecutting", + NetherBricks => "nether_bricks", + NetherWartBlock => "nether_wart_block", + NetheriteAxeSmithing => "netherite_axe_smithing", + NetheriteBlock => "netherite_block", + NetheriteBootsSmithing => "netherite_boots_smithing", + NetheriteChestplateSmithing => "netherite_chestplate_smithing", + NetheriteHelmetSmithing => "netherite_helmet_smithing", + NetheriteHoeSmithing => "netherite_hoe_smithing", + NetheriteHorseArmorSmithing => "netherite_horse_armor_smithing", + NetheriteIngot => "netherite_ingot", + NetheriteIngotFromNetheriteBlock => "netherite_ingot_from_netherite_block", + NetheriteLeggingsSmithing => "netherite_leggings_smithing", + NetheriteNautilusArmorSmithing => "netherite_nautilus_armor_smithing", + NetheritePickaxeSmithing => "netherite_pickaxe_smithing", + NetheriteScrap => "netherite_scrap", + NetheriteScrapFromBlasting => "netherite_scrap_from_blasting", + NetheriteShovelSmithing => "netherite_shovel_smithing", + NetheriteSpearSmithing => "netherite_spear_smithing", + NetheriteSwordSmithing => "netherite_sword_smithing", + NetheriteUpgradeSmithingTemplate => "netherite_upgrade_smithing_template", + NoteBlock => "note_block", + OakBoat => "oak_boat", + OakButton => "oak_button", + OakChestBoat => "oak_chest_boat", + OakDoor => "oak_door", + OakFence => "oak_fence", + OakFenceGate => "oak_fence_gate", + OakHangingSign => "oak_hanging_sign", + OakPlanks => "oak_planks", + OakPressurePlate => "oak_pressure_plate", + OakShelf => "oak_shelf", + OakSign => "oak_sign", + OakSlab => "oak_slab", + OakStairs => "oak_stairs", + OakTrapdoor => "oak_trapdoor", + OakWood => "oak_wood", + Observer => "observer", + OrangeBanner => "orange_banner", + OrangeBed => "orange_bed", + OrangeBundle => "orange_bundle", + OrangeCandle => "orange_candle", + OrangeCarpet => "orange_carpet", + OrangeConcretePowder => "orange_concrete_powder", + OrangeDyeFromOpenEyeblossom => "orange_dye_from_open_eyeblossom", + OrangeDyeFromOrangeTulip => "orange_dye_from_orange_tulip", + OrangeDyeFromRedYellow => "orange_dye_from_red_yellow", + OrangeDyeFromTorchflower => "orange_dye_from_torchflower", + OrangeGlazedTerracotta => "orange_glazed_terracotta", + OrangeHarness => "orange_harness", + OrangeShulkerBox => "orange_shulker_box", + OrangeStainedGlass => "orange_stained_glass", + OrangeStainedGlassPane => "orange_stained_glass_pane", + OrangeStainedGlassPaneFromGlassPane => "orange_stained_glass_pane_from_glass_pane", + OrangeTerracotta => "orange_terracotta", + OxidizedChiseledCopper => "oxidized_chiseled_copper", + OxidizedChiseledCopperFromOxidizedCopperStonecutting => "oxidized_chiseled_copper_from_oxidized_copper_stonecutting", + OxidizedChiseledCopperFromOxidizedCutCopperStonecutting => "oxidized_chiseled_copper_from_oxidized_cut_copper_stonecutting", + OxidizedCopperBulb => "oxidized_copper_bulb", + OxidizedCopperGrate => "oxidized_copper_grate", + OxidizedCopperGrateFromOxidizedCopperStonecutting => "oxidized_copper_grate_from_oxidized_copper_stonecutting", + OxidizedCutCopper => "oxidized_cut_copper", + OxidizedCutCopperFromOxidizedCopperStonecutting => "oxidized_cut_copper_from_oxidized_copper_stonecutting", + OxidizedCutCopperSlab => "oxidized_cut_copper_slab", + OxidizedCutCopperSlabFromOxidizedCopperStonecutting => "oxidized_cut_copper_slab_from_oxidized_copper_stonecutting", + OxidizedCutCopperSlabFromOxidizedCutCopperStonecutting => "oxidized_cut_copper_slab_from_oxidized_cut_copper_stonecutting", + OxidizedCutCopperStairs => "oxidized_cut_copper_stairs", + OxidizedCutCopperStairsFromOxidizedCopperStonecutting => "oxidized_cut_copper_stairs_from_oxidized_copper_stonecutting", + OxidizedCutCopperStairsFromOxidizedCutCopperStonecutting => "oxidized_cut_copper_stairs_from_oxidized_cut_copper_stonecutting", + PackedIce => "packed_ice", + PackedMud => "packed_mud", + Painting => "painting", + PaleMossCarpet => "pale_moss_carpet", + PaleOakBoat => "pale_oak_boat", + PaleOakButton => "pale_oak_button", + PaleOakChestBoat => "pale_oak_chest_boat", + PaleOakDoor => "pale_oak_door", + PaleOakFence => "pale_oak_fence", + PaleOakFenceGate => "pale_oak_fence_gate", + PaleOakHangingSign => "pale_oak_hanging_sign", + PaleOakPlanks => "pale_oak_planks", + PaleOakPressurePlate => "pale_oak_pressure_plate", + PaleOakShelf => "pale_oak_shelf", + PaleOakSign => "pale_oak_sign", + PaleOakSlab => "pale_oak_slab", + PaleOakStairs => "pale_oak_stairs", + PaleOakTrapdoor => "pale_oak_trapdoor", + PaleOakWood => "pale_oak_wood", + Paper => "paper", + PinkBanner => "pink_banner", + PinkBed => "pink_bed", + PinkBundle => "pink_bundle", + PinkCandle => "pink_candle", + PinkCarpet => "pink_carpet", + PinkConcretePowder => "pink_concrete_powder", + PinkDyeFromCactusFlower => "pink_dye_from_cactus_flower", + PinkDyeFromPeony => "pink_dye_from_peony", + PinkDyeFromPinkPetals => "pink_dye_from_pink_petals", + PinkDyeFromPinkTulip => "pink_dye_from_pink_tulip", + PinkDyeFromRedWhiteDye => "pink_dye_from_red_white_dye", + PinkGlazedTerracotta => "pink_glazed_terracotta", + PinkHarness => "pink_harness", + PinkShulkerBox => "pink_shulker_box", + PinkStainedGlass => "pink_stained_glass", + PinkStainedGlassPane => "pink_stained_glass_pane", + PinkStainedGlassPaneFromGlassPane => "pink_stained_glass_pane_from_glass_pane", + PinkTerracotta => "pink_terracotta", + Piston => "piston", + PolishedAndesite => "polished_andesite", + PolishedAndesiteFromAndesiteStonecutting => "polished_andesite_from_andesite_stonecutting", + PolishedAndesiteSlab => "polished_andesite_slab", + PolishedAndesiteSlabFromAndesiteStonecutting => "polished_andesite_slab_from_andesite_stonecutting", + PolishedAndesiteSlabFromPolishedAndesiteStonecutting => "polished_andesite_slab_from_polished_andesite_stonecutting", + PolishedAndesiteStairs => "polished_andesite_stairs", + PolishedAndesiteStairsFromAndesiteStonecutting => "polished_andesite_stairs_from_andesite_stonecutting", + PolishedAndesiteStairsFromPolishedAndesiteStonecutting => "polished_andesite_stairs_from_polished_andesite_stonecutting", + PolishedBasalt => "polished_basalt", + PolishedBasaltFromBasaltStonecutting => "polished_basalt_from_basalt_stonecutting", + PolishedBlackstone => "polished_blackstone", + PolishedBlackstoneBrickSlab => "polished_blackstone_brick_slab", + PolishedBlackstoneBrickSlabFromBlackstoneStonecutting => "polished_blackstone_brick_slab_from_blackstone_stonecutting", + PolishedBlackstoneBrickSlabFromPolishedBlackstoneBricksStonecutting => "polished_blackstone_brick_slab_from_polished_blackstone_bricks_stonecutting", + PolishedBlackstoneBrickSlabFromPolishedBlackstoneStonecutting => "polished_blackstone_brick_slab_from_polished_blackstone_stonecutting", + PolishedBlackstoneBrickStairs => "polished_blackstone_brick_stairs", + PolishedBlackstoneBrickStairsFromBlackstoneStonecutting => "polished_blackstone_brick_stairs_from_blackstone_stonecutting", + PolishedBlackstoneBrickStairsFromPolishedBlackstoneBricksStonecutting => "polished_blackstone_brick_stairs_from_polished_blackstone_bricks_stonecutting", + PolishedBlackstoneBrickStairsFromPolishedBlackstoneStonecutting => "polished_blackstone_brick_stairs_from_polished_blackstone_stonecutting", + PolishedBlackstoneBrickWall => "polished_blackstone_brick_wall", + PolishedBlackstoneBrickWallFromBlackstoneStonecutting => "polished_blackstone_brick_wall_from_blackstone_stonecutting", + PolishedBlackstoneBrickWallFromPolishedBlackstoneBricksStonecutting => "polished_blackstone_brick_wall_from_polished_blackstone_bricks_stonecutting", + PolishedBlackstoneBrickWallFromPolishedBlackstoneStonecutting => "polished_blackstone_brick_wall_from_polished_blackstone_stonecutting", + PolishedBlackstoneBricks => "polished_blackstone_bricks", + PolishedBlackstoneBricksFromBlackstoneStonecutting => "polished_blackstone_bricks_from_blackstone_stonecutting", + PolishedBlackstoneBricksFromPolishedBlackstoneStonecutting => "polished_blackstone_bricks_from_polished_blackstone_stonecutting", + PolishedBlackstoneButton => "polished_blackstone_button", + PolishedBlackstoneFromBlackstoneStonecutting => "polished_blackstone_from_blackstone_stonecutting", + PolishedBlackstonePressurePlate => "polished_blackstone_pressure_plate", + PolishedBlackstoneSlab => "polished_blackstone_slab", + PolishedBlackstoneSlabFromBlackstoneStonecutting => "polished_blackstone_slab_from_blackstone_stonecutting", + PolishedBlackstoneSlabFromPolishedBlackstoneStonecutting => "polished_blackstone_slab_from_polished_blackstone_stonecutting", + PolishedBlackstoneStairs => "polished_blackstone_stairs", + PolishedBlackstoneStairsFromBlackstoneStonecutting => "polished_blackstone_stairs_from_blackstone_stonecutting", + PolishedBlackstoneStairsFromPolishedBlackstoneStonecutting => "polished_blackstone_stairs_from_polished_blackstone_stonecutting", + PolishedBlackstoneWall => "polished_blackstone_wall", + PolishedBlackstoneWallFromBlackstoneStonecutting => "polished_blackstone_wall_from_blackstone_stonecutting", + PolishedBlackstoneWallFromPolishedBlackstoneStonecutting => "polished_blackstone_wall_from_polished_blackstone_stonecutting", + PolishedDeepslate => "polished_deepslate", + PolishedDeepslateFromCobbledDeepslateStonecutting => "polished_deepslate_from_cobbled_deepslate_stonecutting", + PolishedDeepslateSlab => "polished_deepslate_slab", + PolishedDeepslateSlabFromCobbledDeepslateStonecutting => "polished_deepslate_slab_from_cobbled_deepslate_stonecutting", + PolishedDeepslateSlabFromPolishedDeepslateStonecutting => "polished_deepslate_slab_from_polished_deepslate_stonecutting", + PolishedDeepslateStairs => "polished_deepslate_stairs", + PolishedDeepslateStairsFromCobbledDeepslateStonecutting => "polished_deepslate_stairs_from_cobbled_deepslate_stonecutting", + PolishedDeepslateStairsFromPolishedDeepslateStonecutting => "polished_deepslate_stairs_from_polished_deepslate_stonecutting", + PolishedDeepslateWall => "polished_deepslate_wall", + PolishedDeepslateWallFromCobbledDeepslateStonecutting => "polished_deepslate_wall_from_cobbled_deepslate_stonecutting", + PolishedDeepslateWallFromPolishedDeepslateStonecutting => "polished_deepslate_wall_from_polished_deepslate_stonecutting", + PolishedDiorite => "polished_diorite", + PolishedDioriteFromDioriteStonecutting => "polished_diorite_from_diorite_stonecutting", + PolishedDioriteSlab => "polished_diorite_slab", + PolishedDioriteSlabFromDioriteStonecutting => "polished_diorite_slab_from_diorite_stonecutting", + PolishedDioriteSlabFromPolishedDioriteStonecutting => "polished_diorite_slab_from_polished_diorite_stonecutting", + PolishedDioriteStairs => "polished_diorite_stairs", + PolishedDioriteStairsFromDioriteStonecutting => "polished_diorite_stairs_from_diorite_stonecutting", + PolishedDioriteStairsFromPolishedDioriteStonecutting => "polished_diorite_stairs_from_polished_diorite_stonecutting", + PolishedGranite => "polished_granite", + PolishedGraniteFromGraniteStonecutting => "polished_granite_from_granite_stonecutting", + PolishedGraniteSlab => "polished_granite_slab", + PolishedGraniteSlabFromGraniteStonecutting => "polished_granite_slab_from_granite_stonecutting", + PolishedGraniteSlabFromPolishedGraniteStonecutting => "polished_granite_slab_from_polished_granite_stonecutting", + PolishedGraniteStairs => "polished_granite_stairs", + PolishedGraniteStairsFromGraniteStonecutting => "polished_granite_stairs_from_granite_stonecutting", + PolishedGraniteStairsFromPolishedGraniteStonecutting => "polished_granite_stairs_from_polished_granite_stonecutting", + PolishedTuff => "polished_tuff", + PolishedTuffFromTuffStonecutting => "polished_tuff_from_tuff_stonecutting", + PolishedTuffSlab => "polished_tuff_slab", + PolishedTuffSlabFromPolishedTuffStonecutting => "polished_tuff_slab_from_polished_tuff_stonecutting", + PolishedTuffSlabFromTuffStonecutting => "polished_tuff_slab_from_tuff_stonecutting", + PolishedTuffStairs => "polished_tuff_stairs", + PolishedTuffStairsFromPolishedTuffStonecutting => "polished_tuff_stairs_from_polished_tuff_stonecutting", + PolishedTuffStairsFromTuffStonecutting => "polished_tuff_stairs_from_tuff_stonecutting", + PolishedTuffWall => "polished_tuff_wall", + PolishedTuffWallFromPolishedTuffStonecutting => "polished_tuff_wall_from_polished_tuff_stonecutting", + PolishedTuffWallFromTuffStonecutting => "polished_tuff_wall_from_tuff_stonecutting", + PoppedChorusFruit => "popped_chorus_fruit", + PoweredRail => "powered_rail", + Prismarine => "prismarine", + PrismarineBrickSlab => "prismarine_brick_slab", + PrismarineBrickSlabFromPrismarineStonecutting => "prismarine_brick_slab_from_prismarine_stonecutting", + PrismarineBrickStairs => "prismarine_brick_stairs", + PrismarineBrickStairsFromPrismarineStonecutting => "prismarine_brick_stairs_from_prismarine_stonecutting", + PrismarineBricks => "prismarine_bricks", + PrismarineSlab => "prismarine_slab", + PrismarineSlabFromPrismarineStonecutting => "prismarine_slab_from_prismarine_stonecutting", + PrismarineStairs => "prismarine_stairs", + PrismarineStairsFromPrismarineStonecutting => "prismarine_stairs_from_prismarine_stonecutting", + PrismarineWall => "prismarine_wall", + PrismarineWallFromPrismarineStonecutting => "prismarine_wall_from_prismarine_stonecutting", + PumpkinPie => "pumpkin_pie", + PumpkinSeeds => "pumpkin_seeds", + PurpleBanner => "purple_banner", + PurpleBed => "purple_bed", + PurpleBundle => "purple_bundle", + PurpleCandle => "purple_candle", + PurpleCarpet => "purple_carpet", + PurpleConcretePowder => "purple_concrete_powder", + PurpleDye => "purple_dye", + PurpleGlazedTerracotta => "purple_glazed_terracotta", + PurpleHarness => "purple_harness", + PurpleShulkerBox => "purple_shulker_box", + PurpleStainedGlass => "purple_stained_glass", + PurpleStainedGlassPane => "purple_stained_glass_pane", + PurpleStainedGlassPaneFromGlassPane => "purple_stained_glass_pane_from_glass_pane", + PurpleTerracotta => "purple_terracotta", + PurpurBlock => "purpur_block", + PurpurPillar => "purpur_pillar", + PurpurPillarFromPurpurBlockStonecutting => "purpur_pillar_from_purpur_block_stonecutting", + PurpurSlab => "purpur_slab", + PurpurSlabFromPurpurBlockStonecutting => "purpur_slab_from_purpur_block_stonecutting", + PurpurStairs => "purpur_stairs", + PurpurStairsFromPurpurBlockStonecutting => "purpur_stairs_from_purpur_block_stonecutting", + Quartz => "quartz", + QuartzBlock => "quartz_block", + QuartzBricks => "quartz_bricks", + QuartzBricksFromQuartzBlockStonecutting => "quartz_bricks_from_quartz_block_stonecutting", + QuartzFromBlasting => "quartz_from_blasting", + QuartzPillar => "quartz_pillar", + QuartzPillarFromQuartzBlockStonecutting => "quartz_pillar_from_quartz_block_stonecutting", + QuartzSlab => "quartz_slab", + QuartzSlabFromStonecutting => "quartz_slab_from_stonecutting", + QuartzStairs => "quartz_stairs", + QuartzStairsFromQuartzBlockStonecutting => "quartz_stairs_from_quartz_block_stonecutting", + RabbitStewFromBrownMushroom => "rabbit_stew_from_brown_mushroom", + RabbitStewFromRedMushroom => "rabbit_stew_from_red_mushroom", + Rail => "rail", + RaiserArmorTrimSmithingTemplate => "raiser_armor_trim_smithing_template", + RaiserArmorTrimSmithingTemplateSmithingTrim => "raiser_armor_trim_smithing_template_smithing_trim", + RawCopper => "raw_copper", + RawCopperBlock => "raw_copper_block", + RawGold => "raw_gold", + RawGoldBlock => "raw_gold_block", + RawIron => "raw_iron", + RawIronBlock => "raw_iron_block", + RecoveryCompass => "recovery_compass", + RedBanner => "red_banner", + RedBed => "red_bed", + RedBundle => "red_bundle", + RedCandle => "red_candle", + RedCarpet => "red_carpet", + RedConcretePowder => "red_concrete_powder", + RedDyeFromBeetroot => "red_dye_from_beetroot", + RedDyeFromPoppy => "red_dye_from_poppy", + RedDyeFromRoseBush => "red_dye_from_rose_bush", + RedDyeFromTulip => "red_dye_from_tulip", + RedGlazedTerracotta => "red_glazed_terracotta", + RedHarness => "red_harness", + RedNetherBrickSlab => "red_nether_brick_slab", + RedNetherBrickSlabFromRedNetherBricksStonecutting => "red_nether_brick_slab_from_red_nether_bricks_stonecutting", + RedNetherBrickStairs => "red_nether_brick_stairs", + RedNetherBrickStairsFromRedNetherBricksStonecutting => "red_nether_brick_stairs_from_red_nether_bricks_stonecutting", + RedNetherBrickWall => "red_nether_brick_wall", + RedNetherBrickWallFromRedNetherBricksStonecutting => "red_nether_brick_wall_from_red_nether_bricks_stonecutting", + RedNetherBricks => "red_nether_bricks", + RedSandstone => "red_sandstone", + RedSandstoneSlab => "red_sandstone_slab", + RedSandstoneSlabFromRedSandstoneStonecutting => "red_sandstone_slab_from_red_sandstone_stonecutting", + RedSandstoneStairs => "red_sandstone_stairs", + RedSandstoneStairsFromRedSandstoneStonecutting => "red_sandstone_stairs_from_red_sandstone_stonecutting", + RedSandstoneWall => "red_sandstone_wall", + RedSandstoneWallFromRedSandstoneStonecutting => "red_sandstone_wall_from_red_sandstone_stonecutting", + RedShulkerBox => "red_shulker_box", + RedStainedGlass => "red_stained_glass", + RedStainedGlassPane => "red_stained_glass_pane", + RedStainedGlassPaneFromGlassPane => "red_stained_glass_pane_from_glass_pane", + RedTerracotta => "red_terracotta", + Redstone => "redstone", + RedstoneBlock => "redstone_block", + RedstoneFromBlastingDeepslateRedstoneOre => "redstone_from_blasting_deepslate_redstone_ore", + RedstoneFromBlastingRedstoneOre => "redstone_from_blasting_redstone_ore", + RedstoneFromSmeltingDeepslateRedstoneOre => "redstone_from_smelting_deepslate_redstone_ore", + RedstoneFromSmeltingRedstoneOre => "redstone_from_smelting_redstone_ore", + RedstoneLamp => "redstone_lamp", + RedstoneTorch => "redstone_torch", + RepairItem => "repair_item", + Repeater => "repeater", + ResinBlock => "resin_block", + ResinBrick => "resin_brick", + ResinBrickSlab => "resin_brick_slab", + ResinBrickSlabFromResinBricksStonecutting => "resin_brick_slab_from_resin_bricks_stonecutting", + ResinBrickStairs => "resin_brick_stairs", + ResinBrickStairsFromResinBricksStonecutting => "resin_brick_stairs_from_resin_bricks_stonecutting", + ResinBrickWall => "resin_brick_wall", + ResinBrickWallFromResinBricksStonecutting => "resin_brick_wall_from_resin_bricks_stonecutting", + ResinBricks => "resin_bricks", + ResinClump => "resin_clump", + RespawnAnchor => "respawn_anchor", + RibArmorTrimSmithingTemplate => "rib_armor_trim_smithing_template", + RibArmorTrimSmithingTemplateSmithingTrim => "rib_armor_trim_smithing_template_smithing_trim", + Saddle => "saddle", + Sandstone => "sandstone", + SandstoneSlab => "sandstone_slab", + SandstoneSlabFromSandstoneStonecutting => "sandstone_slab_from_sandstone_stonecutting", + SandstoneStairs => "sandstone_stairs", + SandstoneStairsFromSandstoneStonecutting => "sandstone_stairs_from_sandstone_stonecutting", + SandstoneWall => "sandstone_wall", + SandstoneWallFromSandstoneStonecutting => "sandstone_wall_from_sandstone_stonecutting", + Scaffolding => "scaffolding", + SeaLantern => "sea_lantern", + SentryArmorTrimSmithingTemplate => "sentry_armor_trim_smithing_template", + SentryArmorTrimSmithingTemplateSmithingTrim => "sentry_armor_trim_smithing_template_smithing_trim", + ShaperArmorTrimSmithingTemplate => "shaper_armor_trim_smithing_template", + ShaperArmorTrimSmithingTemplateSmithingTrim => "shaper_armor_trim_smithing_template_smithing_trim", + Shears => "shears", + Shield => "shield", + ShieldDecoration => "shield_decoration", + ShulkerBox => "shulker_box", + SilenceArmorTrimSmithingTemplate => "silence_armor_trim_smithing_template", + SilenceArmorTrimSmithingTemplateSmithingTrim => "silence_armor_trim_smithing_template_smithing_trim", + SkullBannerPattern => "skull_banner_pattern", + SlimeBall => "slime_ball", + SlimeBlock => "slime_block", + SmithingTable => "smithing_table", + Smoker => "smoker", + SmoothBasalt => "smooth_basalt", + SmoothQuartz => "smooth_quartz", + SmoothQuartzSlab => "smooth_quartz_slab", + SmoothQuartzSlabFromSmoothQuartzStonecutting => "smooth_quartz_slab_from_smooth_quartz_stonecutting", + SmoothQuartzStairs => "smooth_quartz_stairs", + SmoothQuartzStairsFromSmoothQuartzStonecutting => "smooth_quartz_stairs_from_smooth_quartz_stonecutting", + SmoothRedSandstone => "smooth_red_sandstone", + SmoothRedSandstoneSlab => "smooth_red_sandstone_slab", + SmoothRedSandstoneSlabFromSmoothRedSandstoneStonecutting => "smooth_red_sandstone_slab_from_smooth_red_sandstone_stonecutting", + SmoothRedSandstoneStairs => "smooth_red_sandstone_stairs", + SmoothRedSandstoneStairsFromSmoothRedSandstoneStonecutting => "smooth_red_sandstone_stairs_from_smooth_red_sandstone_stonecutting", + SmoothSandstone => "smooth_sandstone", + SmoothSandstoneSlab => "smooth_sandstone_slab", + SmoothSandstoneSlabFromSmoothSandstoneStonecutting => "smooth_sandstone_slab_from_smooth_sandstone_stonecutting", + SmoothSandstoneStairs => "smooth_sandstone_stairs", + SmoothSandstoneStairsFromSmoothSandstoneStonecutting => "smooth_sandstone_stairs_from_smooth_sandstone_stonecutting", + SmoothStone => "smooth_stone", + SmoothStoneSlab => "smooth_stone_slab", + SmoothStoneSlabFromSmoothStoneStonecutting => "smooth_stone_slab_from_smooth_stone_stonecutting", + SnoutArmorTrimSmithingTemplate => "snout_armor_trim_smithing_template", + SnoutArmorTrimSmithingTemplateSmithingTrim => "snout_armor_trim_smithing_template_smithing_trim", + Snow => "snow", + SnowBlock => "snow_block", + SoulCampfire => "soul_campfire", + SoulLantern => "soul_lantern", + SoulTorch => "soul_torch", + SpectralArrow => "spectral_arrow", + SpireArmorTrimSmithingTemplate => "spire_armor_trim_smithing_template", + SpireArmorTrimSmithingTemplateSmithingTrim => "spire_armor_trim_smithing_template_smithing_trim", + Sponge => "sponge", + SpruceBoat => "spruce_boat", + SpruceButton => "spruce_button", + SpruceChestBoat => "spruce_chest_boat", + SpruceDoor => "spruce_door", + SpruceFence => "spruce_fence", + SpruceFenceGate => "spruce_fence_gate", + SpruceHangingSign => "spruce_hanging_sign", + SprucePlanks => "spruce_planks", + SprucePressurePlate => "spruce_pressure_plate", + SpruceShelf => "spruce_shelf", + SpruceSign => "spruce_sign", + SpruceSlab => "spruce_slab", + SpruceStairs => "spruce_stairs", + SpruceTrapdoor => "spruce_trapdoor", + SpruceWood => "spruce_wood", + Spyglass => "spyglass", + Stick => "stick", + StickFromBambooItem => "stick_from_bamboo_item", + StickyPiston => "sticky_piston", + Stone => "stone", + StoneAxe => "stone_axe", + StoneBrickSlab => "stone_brick_slab", + StoneBrickSlabFromStoneBricksStonecutting => "stone_brick_slab_from_stone_bricks_stonecutting", + StoneBrickSlabFromStoneStonecutting => "stone_brick_slab_from_stone_stonecutting", + StoneBrickStairs => "stone_brick_stairs", + StoneBrickStairsFromStoneBricksStonecutting => "stone_brick_stairs_from_stone_bricks_stonecutting", + StoneBrickStairsFromStoneStonecutting => "stone_brick_stairs_from_stone_stonecutting", + StoneBrickWall => "stone_brick_wall", + StoneBrickWallFromStoneBricksStonecutting => "stone_brick_wall_from_stone_bricks_stonecutting", + StoneBrickWallsFromStoneStonecutting => "stone_brick_walls_from_stone_stonecutting", + StoneBricks => "stone_bricks", + StoneBricksFromStoneStonecutting => "stone_bricks_from_stone_stonecutting", + StoneButton => "stone_button", + StoneHoe => "stone_hoe", + StonePickaxe => "stone_pickaxe", + StonePressurePlate => "stone_pressure_plate", + StoneShovel => "stone_shovel", + StoneSlab => "stone_slab", + StoneSlabFromStoneStonecutting => "stone_slab_from_stone_stonecutting", + StoneSpear => "stone_spear", + StoneStairs => "stone_stairs", + StoneStairsFromStoneStonecutting => "stone_stairs_from_stone_stonecutting", + StoneSword => "stone_sword", + Stonecutter => "stonecutter", + StrippedAcaciaWood => "stripped_acacia_wood", + StrippedBirchWood => "stripped_birch_wood", + StrippedCherryWood => "stripped_cherry_wood", + StrippedCrimsonHyphae => "stripped_crimson_hyphae", + StrippedDarkOakWood => "stripped_dark_oak_wood", + StrippedJungleWood => "stripped_jungle_wood", + StrippedMangroveWood => "stripped_mangrove_wood", + StrippedOakWood => "stripped_oak_wood", + StrippedPaleOakWood => "stripped_pale_oak_wood", + StrippedSpruceWood => "stripped_spruce_wood", + StrippedWarpedHyphae => "stripped_warped_hyphae", + SugarFromHoneyBottle => "sugar_from_honey_bottle", + SugarFromSugarCane => "sugar_from_sugar_cane", + SuspiciousStewFromAllium => "suspicious_stew_from_allium", + SuspiciousStewFromAzureBluet => "suspicious_stew_from_azure_bluet", + SuspiciousStewFromBlueOrchid => "suspicious_stew_from_blue_orchid", + SuspiciousStewFromClosedEyeblossom => "suspicious_stew_from_closed_eyeblossom", + SuspiciousStewFromCornflower => "suspicious_stew_from_cornflower", + SuspiciousStewFromDandelion => "suspicious_stew_from_dandelion", + SuspiciousStewFromLilyOfTheValley => "suspicious_stew_from_lily_of_the_valley", + SuspiciousStewFromOpenEyeblossom => "suspicious_stew_from_open_eyeblossom", + SuspiciousStewFromOrangeTulip => "suspicious_stew_from_orange_tulip", + SuspiciousStewFromOxeyeDaisy => "suspicious_stew_from_oxeye_daisy", + SuspiciousStewFromPinkTulip => "suspicious_stew_from_pink_tulip", + SuspiciousStewFromPoppy => "suspicious_stew_from_poppy", + SuspiciousStewFromRedTulip => "suspicious_stew_from_red_tulip", + SuspiciousStewFromTorchflower => "suspicious_stew_from_torchflower", + SuspiciousStewFromWhiteTulip => "suspicious_stew_from_white_tulip", + SuspiciousStewFromWitherRose => "suspicious_stew_from_wither_rose", + Target => "target", + Terracotta => "terracotta", + TideArmorTrimSmithingTemplate => "tide_armor_trim_smithing_template", + TideArmorTrimSmithingTemplateSmithingTrim => "tide_armor_trim_smithing_template_smithing_trim", + TintedGlass => "tinted_glass", + TippedArrow => "tipped_arrow", + Tnt => "tnt", + TntMinecart => "tnt_minecart", + Torch => "torch", + TrappedChest => "trapped_chest", + TripwireHook => "tripwire_hook", + TuffBrickSlab => "tuff_brick_slab", + TuffBrickSlabFromPolishedTuffStonecutting => "tuff_brick_slab_from_polished_tuff_stonecutting", + TuffBrickSlabFromTuffBricksStonecutting => "tuff_brick_slab_from_tuff_bricks_stonecutting", + TuffBrickSlabFromTuffStonecutting => "tuff_brick_slab_from_tuff_stonecutting", + TuffBrickStairs => "tuff_brick_stairs", + TuffBrickStairsFromPolishedTuffStonecutting => "tuff_brick_stairs_from_polished_tuff_stonecutting", + TuffBrickStairsFromTuffBricksStonecutting => "tuff_brick_stairs_from_tuff_bricks_stonecutting", + TuffBrickStairsFromTuffStonecutting => "tuff_brick_stairs_from_tuff_stonecutting", + TuffBrickWall => "tuff_brick_wall", + TuffBrickWallFromPolishedTuffStonecutting => "tuff_brick_wall_from_polished_tuff_stonecutting", + TuffBrickWallFromTuffBricksStonecutting => "tuff_brick_wall_from_tuff_bricks_stonecutting", + TuffBrickWallFromTuffStonecutting => "tuff_brick_wall_from_tuff_stonecutting", + TuffBricks => "tuff_bricks", + TuffBricksFromPolishedTuffStonecutting => "tuff_bricks_from_polished_tuff_stonecutting", + TuffBricksFromTuffStonecutting => "tuff_bricks_from_tuff_stonecutting", + TuffSlab => "tuff_slab", + TuffSlabFromTuffStonecutting => "tuff_slab_from_tuff_stonecutting", + TuffStairs => "tuff_stairs", + TuffStairsFromTuffStonecutting => "tuff_stairs_from_tuff_stonecutting", + TuffWall => "tuff_wall", + TuffWallFromTuffStonecutting => "tuff_wall_from_tuff_stonecutting", + TurtleHelmet => "turtle_helmet", + VexArmorTrimSmithingTemplate => "vex_armor_trim_smithing_template", + VexArmorTrimSmithingTemplateSmithingTrim => "vex_armor_trim_smithing_template_smithing_trim", + WardArmorTrimSmithingTemplate => "ward_armor_trim_smithing_template", + WardArmorTrimSmithingTemplateSmithingTrim => "ward_armor_trim_smithing_template_smithing_trim", + WarpedButton => "warped_button", + WarpedDoor => "warped_door", + WarpedFence => "warped_fence", + WarpedFenceGate => "warped_fence_gate", + WarpedFungusOnAStick => "warped_fungus_on_a_stick", + WarpedHangingSign => "warped_hanging_sign", + WarpedHyphae => "warped_hyphae", + WarpedPlanks => "warped_planks", + WarpedPressurePlate => "warped_pressure_plate", + WarpedShelf => "warped_shelf", + WarpedSign => "warped_sign", + WarpedSlab => "warped_slab", + WarpedStairs => "warped_stairs", + WarpedTrapdoor => "warped_trapdoor", + WaxedChiseledCopper => "waxed_chiseled_copper", + WaxedChiseledCopperFromHoneycomb => "waxed_chiseled_copper_from_honeycomb", + WaxedChiseledCopperFromWaxedCopperBlockStonecutting => "waxed_chiseled_copper_from_waxed_copper_block_stonecutting", + WaxedChiseledCopperFromWaxedCutCopperStonecutting => "waxed_chiseled_copper_from_waxed_cut_copper_stonecutting", + WaxedCopperBarsFromHoneycomb => "waxed_copper_bars_from_honeycomb", + WaxedCopperBlockFromHoneycomb => "waxed_copper_block_from_honeycomb", + WaxedCopperBulb => "waxed_copper_bulb", + WaxedCopperBulbFromHoneycomb => "waxed_copper_bulb_from_honeycomb", + WaxedCopperChainFromHoneycomb => "waxed_copper_chain_from_honeycomb", + WaxedCopperChestFromHoneycomb => "waxed_copper_chest_from_honeycomb", + WaxedCopperDoorFromHoneycomb => "waxed_copper_door_from_honeycomb", + WaxedCopperGolemStatueFromHoneycomb => "waxed_copper_golem_statue_from_honeycomb", + WaxedCopperGrate => "waxed_copper_grate", + WaxedCopperGrateFromHoneycomb => "waxed_copper_grate_from_honeycomb", + WaxedCopperGrateFromWaxedCopperBlockStonecutting => "waxed_copper_grate_from_waxed_copper_block_stonecutting", + WaxedCopperLanternFromHoneycomb => "waxed_copper_lantern_from_honeycomb", + WaxedCopperTrapdoorFromHoneycomb => "waxed_copper_trapdoor_from_honeycomb", + WaxedCutCopper => "waxed_cut_copper", + WaxedCutCopperFromHoneycomb => "waxed_cut_copper_from_honeycomb", + WaxedCutCopperFromWaxedCopperBlockStonecutting => "waxed_cut_copper_from_waxed_copper_block_stonecutting", + WaxedCutCopperSlab => "waxed_cut_copper_slab", + WaxedCutCopperSlabFromHoneycomb => "waxed_cut_copper_slab_from_honeycomb", + WaxedCutCopperSlabFromWaxedCopperBlockStonecutting => "waxed_cut_copper_slab_from_waxed_copper_block_stonecutting", + WaxedCutCopperSlabFromWaxedCutCopperStonecutting => "waxed_cut_copper_slab_from_waxed_cut_copper_stonecutting", + WaxedCutCopperStairs => "waxed_cut_copper_stairs", + WaxedCutCopperStairsFromHoneycomb => "waxed_cut_copper_stairs_from_honeycomb", + WaxedCutCopperStairsFromWaxedCopperBlockStonecutting => "waxed_cut_copper_stairs_from_waxed_copper_block_stonecutting", + WaxedCutCopperStairsFromWaxedCutCopperStonecutting => "waxed_cut_copper_stairs_from_waxed_cut_copper_stonecutting", + WaxedExposedChiseledCopper => "waxed_exposed_chiseled_copper", + WaxedExposedChiseledCopperFromHoneycomb => "waxed_exposed_chiseled_copper_from_honeycomb", + WaxedExposedChiseledCopperFromWaxedExposedCopperStonecutting => "waxed_exposed_chiseled_copper_from_waxed_exposed_copper_stonecutting", + WaxedExposedChiseledCopperFromWaxedExposedCutCopperStonecutting => "waxed_exposed_chiseled_copper_from_waxed_exposed_cut_copper_stonecutting", + WaxedExposedCopperBarsFromHoneycomb => "waxed_exposed_copper_bars_from_honeycomb", + WaxedExposedCopperBulb => "waxed_exposed_copper_bulb", + WaxedExposedCopperBulbFromHoneycomb => "waxed_exposed_copper_bulb_from_honeycomb", + WaxedExposedCopperChainFromHoneycomb => "waxed_exposed_copper_chain_from_honeycomb", + WaxedExposedCopperChestFromHoneycomb => "waxed_exposed_copper_chest_from_honeycomb", + WaxedExposedCopperDoorFromHoneycomb => "waxed_exposed_copper_door_from_honeycomb", + WaxedExposedCopperFromHoneycomb => "waxed_exposed_copper_from_honeycomb", + WaxedExposedCopperGolemStatueFromHoneycomb => "waxed_exposed_copper_golem_statue_from_honeycomb", + WaxedExposedCopperGrate => "waxed_exposed_copper_grate", + WaxedExposedCopperGrateFromHoneycomb => "waxed_exposed_copper_grate_from_honeycomb", + WaxedExposedCopperGrateFromWaxedExposedCopperStonecutting => "waxed_exposed_copper_grate_from_waxed_exposed_copper_stonecutting", + WaxedExposedCopperLanternFromHoneycomb => "waxed_exposed_copper_lantern_from_honeycomb", + WaxedExposedCopperTrapdoorFromHoneycomb => "waxed_exposed_copper_trapdoor_from_honeycomb", + WaxedExposedCutCopper => "waxed_exposed_cut_copper", + WaxedExposedCutCopperFromHoneycomb => "waxed_exposed_cut_copper_from_honeycomb", + WaxedExposedCutCopperFromWaxedExposedCopperStonecutting => "waxed_exposed_cut_copper_from_waxed_exposed_copper_stonecutting", + WaxedExposedCutCopperSlab => "waxed_exposed_cut_copper_slab", + WaxedExposedCutCopperSlabFromHoneycomb => "waxed_exposed_cut_copper_slab_from_honeycomb", + WaxedExposedCutCopperSlabFromWaxedExposedCopperStonecutting => "waxed_exposed_cut_copper_slab_from_waxed_exposed_copper_stonecutting", + WaxedExposedCutCopperSlabFromWaxedExposedCutCopperStonecutting => "waxed_exposed_cut_copper_slab_from_waxed_exposed_cut_copper_stonecutting", + WaxedExposedCutCopperStairs => "waxed_exposed_cut_copper_stairs", + WaxedExposedCutCopperStairsFromHoneycomb => "waxed_exposed_cut_copper_stairs_from_honeycomb", + WaxedExposedCutCopperStairsFromWaxedExposedCopperStonecutting => "waxed_exposed_cut_copper_stairs_from_waxed_exposed_copper_stonecutting", + WaxedExposedCutCopperStairsFromWaxedExposedCutCopperStonecutting => "waxed_exposed_cut_copper_stairs_from_waxed_exposed_cut_copper_stonecutting", + WaxedExposedLightningRodFromHoneycomb => "waxed_exposed_lightning_rod_from_honeycomb", + WaxedLightningRodFromHoneycomb => "waxed_lightning_rod_from_honeycomb", + WaxedOxidizedChiseledCopper => "waxed_oxidized_chiseled_copper", + WaxedOxidizedChiseledCopperFromHoneycomb => "waxed_oxidized_chiseled_copper_from_honeycomb", + WaxedOxidizedChiseledCopperFromWaxedOxidizedCopperStonecutting => "waxed_oxidized_chiseled_copper_from_waxed_oxidized_copper_stonecutting", + WaxedOxidizedChiseledCopperFromWaxedOxidizedCutCopperStonecutting => "waxed_oxidized_chiseled_copper_from_waxed_oxidized_cut_copper_stonecutting", + WaxedOxidizedCopperBarsFromHoneycomb => "waxed_oxidized_copper_bars_from_honeycomb", + WaxedOxidizedCopperBulb => "waxed_oxidized_copper_bulb", + WaxedOxidizedCopperBulbFromHoneycomb => "waxed_oxidized_copper_bulb_from_honeycomb", + WaxedOxidizedCopperChainFromHoneycomb => "waxed_oxidized_copper_chain_from_honeycomb", + WaxedOxidizedCopperChestFromHoneycomb => "waxed_oxidized_copper_chest_from_honeycomb", + WaxedOxidizedCopperDoorFromHoneycomb => "waxed_oxidized_copper_door_from_honeycomb", + WaxedOxidizedCopperFromHoneycomb => "waxed_oxidized_copper_from_honeycomb", + WaxedOxidizedCopperGolemStatueFromHoneycomb => "waxed_oxidized_copper_golem_statue_from_honeycomb", + WaxedOxidizedCopperGrate => "waxed_oxidized_copper_grate", + WaxedOxidizedCopperGrateFromHoneycomb => "waxed_oxidized_copper_grate_from_honeycomb", + WaxedOxidizedCopperGrateFromWaxedOxidizedCopperStonecutting => "waxed_oxidized_copper_grate_from_waxed_oxidized_copper_stonecutting", + WaxedOxidizedCopperLanternFromHoneycomb => "waxed_oxidized_copper_lantern_from_honeycomb", + WaxedOxidizedCopperTrapdoorFromHoneycomb => "waxed_oxidized_copper_trapdoor_from_honeycomb", + WaxedOxidizedCutCopper => "waxed_oxidized_cut_copper", + WaxedOxidizedCutCopperFromHoneycomb => "waxed_oxidized_cut_copper_from_honeycomb", + WaxedOxidizedCutCopperFromWaxedOxidizedCopperStonecutting => "waxed_oxidized_cut_copper_from_waxed_oxidized_copper_stonecutting", + WaxedOxidizedCutCopperSlab => "waxed_oxidized_cut_copper_slab", + WaxedOxidizedCutCopperSlabFromHoneycomb => "waxed_oxidized_cut_copper_slab_from_honeycomb", + WaxedOxidizedCutCopperSlabFromWaxedOxidizedCopperStonecutting => "waxed_oxidized_cut_copper_slab_from_waxed_oxidized_copper_stonecutting", + WaxedOxidizedCutCopperSlabFromWaxedOxidizedCutCopperStonecutting => "waxed_oxidized_cut_copper_slab_from_waxed_oxidized_cut_copper_stonecutting", + WaxedOxidizedCutCopperStairs => "waxed_oxidized_cut_copper_stairs", + WaxedOxidizedCutCopperStairsFromHoneycomb => "waxed_oxidized_cut_copper_stairs_from_honeycomb", + WaxedOxidizedCutCopperStairsFromWaxedOxidizedCopperStonecutting => "waxed_oxidized_cut_copper_stairs_from_waxed_oxidized_copper_stonecutting", + WaxedOxidizedCutCopperStairsFromWaxedOxidizedCutCopperStonecutting => "waxed_oxidized_cut_copper_stairs_from_waxed_oxidized_cut_copper_stonecutting", + WaxedOxidizedLightningRodFromHoneycomb => "waxed_oxidized_lightning_rod_from_honeycomb", + WaxedWeatheredChiseledCopper => "waxed_weathered_chiseled_copper", + WaxedWeatheredChiseledCopperFromHoneycomb => "waxed_weathered_chiseled_copper_from_honeycomb", + WaxedWeatheredChiseledCopperFromWaxedWeatheredCopperStonecutting => "waxed_weathered_chiseled_copper_from_waxed_weathered_copper_stonecutting", + WaxedWeatheredChiseledCopperFromWaxedWeatheredCutCopperStonecutting => "waxed_weathered_chiseled_copper_from_waxed_weathered_cut_copper_stonecutting", + WaxedWeatheredCopperBarsFromHoneycomb => "waxed_weathered_copper_bars_from_honeycomb", + WaxedWeatheredCopperBulb => "waxed_weathered_copper_bulb", + WaxedWeatheredCopperBulbFromHoneycomb => "waxed_weathered_copper_bulb_from_honeycomb", + WaxedWeatheredCopperChainFromHoneycomb => "waxed_weathered_copper_chain_from_honeycomb", + WaxedWeatheredCopperChestFromHoneycomb => "waxed_weathered_copper_chest_from_honeycomb", + WaxedWeatheredCopperDoorFromHoneycomb => "waxed_weathered_copper_door_from_honeycomb", + WaxedWeatheredCopperFromHoneycomb => "waxed_weathered_copper_from_honeycomb", + WaxedWeatheredCopperGolemStatueFromHoneycomb => "waxed_weathered_copper_golem_statue_from_honeycomb", + WaxedWeatheredCopperGrate => "waxed_weathered_copper_grate", + WaxedWeatheredCopperGrateFromHoneycomb => "waxed_weathered_copper_grate_from_honeycomb", + WaxedWeatheredCopperGrateFromWaxedWeatheredCopperStonecutting => "waxed_weathered_copper_grate_from_waxed_weathered_copper_stonecutting", + WaxedWeatheredCopperLanternFromHoneycomb => "waxed_weathered_copper_lantern_from_honeycomb", + WaxedWeatheredCopperTrapdoorFromHoneycomb => "waxed_weathered_copper_trapdoor_from_honeycomb", + WaxedWeatheredCutCopper => "waxed_weathered_cut_copper", + WaxedWeatheredCutCopperFromHoneycomb => "waxed_weathered_cut_copper_from_honeycomb", + WaxedWeatheredCutCopperFromWaxedWeatheredCopperStonecutting => "waxed_weathered_cut_copper_from_waxed_weathered_copper_stonecutting", + WaxedWeatheredCutCopperSlab => "waxed_weathered_cut_copper_slab", + WaxedWeatheredCutCopperSlabFromHoneycomb => "waxed_weathered_cut_copper_slab_from_honeycomb", + WaxedWeatheredCutCopperSlabFromWaxedWeatheredCopperStonecutting => "waxed_weathered_cut_copper_slab_from_waxed_weathered_copper_stonecutting", + WaxedWeatheredCutCopperSlabFromWaxedWeatheredCutCopperStonecutting => "waxed_weathered_cut_copper_slab_from_waxed_weathered_cut_copper_stonecutting", + WaxedWeatheredCutCopperStairs => "waxed_weathered_cut_copper_stairs", + WaxedWeatheredCutCopperStairsFromHoneycomb => "waxed_weathered_cut_copper_stairs_from_honeycomb", + WaxedWeatheredCutCopperStairsFromWaxedWeatheredCopperStonecutting => "waxed_weathered_cut_copper_stairs_from_waxed_weathered_copper_stonecutting", + WaxedWeatheredCutCopperStairsFromWaxedWeatheredCutCopperStonecutting => "waxed_weathered_cut_copper_stairs_from_waxed_weathered_cut_copper_stonecutting", + WaxedWeatheredLightningRodFromHoneycomb => "waxed_weathered_lightning_rod_from_honeycomb", + WayfinderArmorTrimSmithingTemplate => "wayfinder_armor_trim_smithing_template", + WayfinderArmorTrimSmithingTemplateSmithingTrim => "wayfinder_armor_trim_smithing_template_smithing_trim", + WeatheredChiseledCopper => "weathered_chiseled_copper", + WeatheredChiseledCopperFromWeatheredCopperStonecutting => "weathered_chiseled_copper_from_weathered_copper_stonecutting", + WeatheredChiseledCopperFromWeatheredCutCopperStonecutting => "weathered_chiseled_copper_from_weathered_cut_copper_stonecutting", + WeatheredCopperBulb => "weathered_copper_bulb", + WeatheredCopperGrate => "weathered_copper_grate", + WeatheredCopperGrateFromWeatheredCopperStonecutting => "weathered_copper_grate_from_weathered_copper_stonecutting", + WeatheredCutCopper => "weathered_cut_copper", + WeatheredCutCopperFromWeatheredCopperStonecutting => "weathered_cut_copper_from_weathered_copper_stonecutting", + WeatheredCutCopperSlab => "weathered_cut_copper_slab", + WeatheredCutCopperSlabFromWeatheredCopperStonecutting => "weathered_cut_copper_slab_from_weathered_copper_stonecutting", + WeatheredCutCopperSlabFromWeatheredCutCopperStonecutting => "weathered_cut_copper_slab_from_weathered_cut_copper_stonecutting", + WeatheredCutCopperStairs => "weathered_cut_copper_stairs", + WeatheredCutCopperStairsFromWeatheredCopperStonecutting => "weathered_cut_copper_stairs_from_weathered_copper_stonecutting", + WeatheredCutCopperStairsFromWeatheredCutCopperStonecutting => "weathered_cut_copper_stairs_from_weathered_cut_copper_stonecutting", + Wheat => "wheat", + WhiteBanner => "white_banner", + WhiteBed => "white_bed", + WhiteBundle => "white_bundle", + WhiteCandle => "white_candle", + WhiteCarpet => "white_carpet", + WhiteConcretePowder => "white_concrete_powder", + WhiteDye => "white_dye", + WhiteDyeFromLilyOfTheValley => "white_dye_from_lily_of_the_valley", + WhiteGlazedTerracotta => "white_glazed_terracotta", + WhiteHarness => "white_harness", + WhiteShulkerBox => "white_shulker_box", + WhiteStainedGlass => "white_stained_glass", + WhiteStainedGlassPane => "white_stained_glass_pane", + WhiteStainedGlassPaneFromGlassPane => "white_stained_glass_pane_from_glass_pane", + WhiteTerracotta => "white_terracotta", + WhiteWoolFromString => "white_wool_from_string", + WildArmorTrimSmithingTemplate => "wild_armor_trim_smithing_template", + WildArmorTrimSmithingTemplateSmithingTrim => "wild_armor_trim_smithing_template_smithing_trim", + WindCharge => "wind_charge", + WolfArmor => "wolf_armor", + WoodenAxe => "wooden_axe", + WoodenHoe => "wooden_hoe", + WoodenPickaxe => "wooden_pickaxe", + WoodenShovel => "wooden_shovel", + WoodenSpear => "wooden_spear", + WoodenSword => "wooden_sword", + WritableBook => "writable_book", + YellowBanner => "yellow_banner", + YellowBed => "yellow_bed", + YellowBundle => "yellow_bundle", + YellowCandle => "yellow_candle", + YellowCarpet => "yellow_carpet", + YellowConcretePowder => "yellow_concrete_powder", + YellowDyeFromDandelion => "yellow_dye_from_dandelion", + YellowDyeFromSunflower => "yellow_dye_from_sunflower", + YellowDyeFromWildflowers => "yellow_dye_from_wildflowers", + YellowGlazedTerracotta => "yellow_glazed_terracotta", + YellowHarness => "yellow_harness", + YellowShulkerBox => "yellow_shulker_box", + YellowStainedGlass => "yellow_stained_glass", + YellowStainedGlassPane => "yellow_stained_glass_pane", + YellowStainedGlassPaneFromGlassPane => "yellow_stained_glass_pane_from_glass_pane", + YellowTerracotta => "yellow_terracotta", +} +} + +data_registry! { +Biome => "worldgen/biome", +/// An opaque biome identifier. +/// +/// You'll probably want to resolve this into its name before using it, by +/// using `Client::with_resolved_registry` or a similar function. +enum BiomeKey { + Badlands => "badlands", + BambooJungle => "bamboo_jungle", + BasaltDeltas => "basalt_deltas", + Beach => "beach", + BirchForest => "birch_forest", + CherryGrove => "cherry_grove", + ColdOcean => "cold_ocean", + CrimsonForest => "crimson_forest", + DarkForest => "dark_forest", + DeepColdOcean => "deep_cold_ocean", + DeepDark => "deep_dark", + DeepFrozenOcean => "deep_frozen_ocean", + DeepLukewarmOcean => "deep_lukewarm_ocean", + DeepOcean => "deep_ocean", + Desert => "desert", + DripstoneCaves => "dripstone_caves", + EndBarrens => "end_barrens", + EndHighlands => "end_highlands", + EndMidlands => "end_midlands", + ErodedBadlands => "eroded_badlands", + FlowerForest => "flower_forest", + Forest => "forest", + FrozenOcean => "frozen_ocean", + FrozenPeaks => "frozen_peaks", + FrozenRiver => "frozen_river", + Grove => "grove", + IceSpikes => "ice_spikes", + JaggedPeaks => "jagged_peaks", + Jungle => "jungle", + LukewarmOcean => "lukewarm_ocean", + LushCaves => "lush_caves", + MangroveSwamp => "mangrove_swamp", + Meadow => "meadow", + MushroomFields => "mushroom_fields", + NetherWastes => "nether_wastes", + Ocean => "ocean", + OldGrowthBirchForest => "old_growth_birch_forest", + OldGrowthPineTaiga => "old_growth_pine_taiga", + OldGrowthSpruceTaiga => "old_growth_spruce_taiga", + PaleGarden => "pale_garden", + Plains => "plains", + River => "river", + Savanna => "savanna", + SavannaPlateau => "savanna_plateau", + SmallEndIslands => "small_end_islands", + SnowyBeach => "snowy_beach", + SnowyPlains => "snowy_plains", + SnowySlopes => "snowy_slopes", + SnowyTaiga => "snowy_taiga", + SoulSandValley => "soul_sand_valley", + SparseJungle => "sparse_jungle", + StonyPeaks => "stony_peaks", + StonyShore => "stony_shore", + SunflowerPlains => "sunflower_plains", + Swamp => "swamp", + Taiga => "taiga", + TheEnd => "the_end", + TheVoid => "the_void", + WarmOcean => "warm_ocean", + WarpedForest => "warped_forest", + WindsweptForest => "windswept_forest", + WindsweptGravellyHills => "windswept_gravelly_hills", + WindsweptHills => "windswept_hills", + WindsweptSavanna => "windswept_savanna", + WoodedBadlands => "wooded_badlands", +} +} diff --git a/azalea-registry/src/extra.rs b/azalea-registry/src/extra.rs deleted file mode 100644 index 694b9820..00000000 --- a/azalea-registry/src/extra.rs +++ /dev/null @@ -1,195 +0,0 @@ -//! These registries are sent by the server during the configuration state so -//! you should be relying on those if possible, but these are provided for your -//! convenience anyways. - -use azalea_registry_macros::registry; - -use crate::Registry; - -registry! { -#[derive(Default)] -enum FoxVariant { - #[default] - Red => "minecraft:red", - Snow => "minecraft:snow", -} -} - -registry! { -enum ParrotVariant { - RedBlue => "minecraft:red_blue", - Blue => "minecraft:blue", - Green => "minecraft:green", - YellowBlue => "minecraft:yellow_blue", - Gray => "minecraft:gray", -} -} - -registry! { -#[derive(Default)] -enum MooshroomVariant { - #[default] - Red => "minecraft:red", - Brown => "minecraft:brown", -} -} - -registry! { -#[derive(Default)] -enum RabbitVariant { - #[default] - Brown => "minecraft:brown", - White => "minecraft:white", - Black => "minecraft:black", - WhiteSplotched => "minecraft:white_splotched", - Gold => "minecraft:gold", - Salt => "minecraft:salt", - Evil => "minecraft:evil", -} -} - -registry! { -#[derive(Default)] -enum HorseVariant { - #[default] - White => "minecraft:white", - Creamy => "minecraft:creamy", - Chestnut => "minecraft:chestnut", - Brown => "minecraft:brown", - Black => "minecraft:black", - Gray => "minecraft:gray", - DarkBrown => "minecraft:dark_brown", -} -} - -registry! { -#[derive(Default)] -enum LlamaVariant { - #[default] - Creamy => "minecraft:creamy", - White => "minecraft:white", - Brown => "minecraft:brown", - Gray => "minecraft:gray", -} -} - -registry! { -#[derive(Default)] -enum AxolotlVariant { - #[default] - Lucy => "minecraft:lucy", - Wild => "minecraft:wild", - Gold => "minecraft:gold", - Cyan => "minecraft:cyan", - Blue => "minecraft:blue", -} -} - -registry! { -enum TrimMaterial { - Quartz => "minecraft:quartz", - Iron => "minecraft:iron", - Netherite => "minecraft:netherite", - Redstone => "minecraft:redstone", - Copper => "minecraft:copper", - Gold => "minecraft:gold", - Emerald => "minecraft:emerald", - Diamond => "minecraft:diamond", - Lapis => "minecraft:lapis", - Amethyst => "minecraft:amethyst", -} -} - -registry! { -enum TrimPattern { - Sentry => "sentry", - Dune => "dune", - Coast => "coast", - Wild => "wild", - Ward => "ward", - Eye => "eye", - Vex => "vex", - Tide => "tide", - Snout => "snout", - Rib => "rib", - Spire => "spire", - Wayfinder => "wayfinder", - Shaper => "shaper", - Silence => "silence", - Raiser => "raiser", - Host => "host", - Flow => "flow", - Bolt => "bolt", -} -} - -registry! { -enum JukeboxSong { - Thirteen => "13", - Cat => "cat", - Blocks => "blocks", - Chirp => "chirp", - Far => "far", - Mall => "mall", - Mellohi => "mellohi", - Stal => "stal", - Strad => "strad", - Ward => "ward", - Eleven => "11", - Wait => "wait", - Pigstep => "pigstep", - Otherside => "otherside", - Five => "5", - Relic => "relic", - Precipice => "precipice", - Creator => "creator", - CreatorMusicBox => "creator_music_box", -} -} - -registry! { -enum ChatType { - Chat => "chat", - SayCommand => "say_command", - MsgCommandIncoming => "msg_command_incoming", - MsgCommandOutgoing => "msg_command_outgoing", - TeamMsgCommandIncoming => "team_msg_command_incoming", - TeamMsgCommandOutgoing => "team_msg_command_outgoing", - EmoteCommand => "emote_command", -} -} -impl ChatType { - #[must_use] - pub fn chat_translation_key(self) -> &'static str { - match self { - ChatType::Chat => "chat.type.text", - ChatType::SayCommand => "chat.type.announcement", - ChatType::MsgCommandIncoming => "commands.message.display.incoming", - ChatType::MsgCommandOutgoing => "commands.message.display.outgoing", - ChatType::TeamMsgCommandIncoming => "chat.type.team.text", - ChatType::TeamMsgCommandOutgoing => "chat.type.team.sent", - ChatType::EmoteCommand => "chat.type.emote", - } - } - - #[must_use] - pub fn narrator_translation_key(self) -> &'static str { - match self { - ChatType::EmoteCommand => "chat.type.emote", - _ => "chat.type.text.narrate", - } - } -} - -registry! { -enum Instrument { - PonderGoatHorn => "minecraft:ponder_goat_horn", - SingGoatHorn => "minecraft:sing_goat_horn", - SeekGoatHorn => "minecraft:seek_goat_horn", - FeelGoatHorn => "minecraft:feel_goat_horn", - AdmireGoatHorn => "minecraft:admire_goat_horn", - CallGoatHorn => "minecraft:call_goat_horn", - YearnGoatHorn => "minecraft:yearn_goat_horn", - DreamGoatHorn => "minecraft:dream_goat_horn", -} -} diff --git a/azalea-core/src/identifier.rs b/azalea-registry/src/identifier.rs index a3c886c3..b3456dab 100644 --- a/azalea-core/src/identifier.rs +++ b/azalea-registry/src/identifier.rs @@ -13,6 +13,8 @@ use simdnbt::{FromNbtTag, ToNbtTag, owned::NbtTag}; /// An identifier, like `minecraft:stone` or `brigadier:number`. /// +/// All registry variants can be converted to an identifier. +/// /// This was formerly called a `ResourceLocation`. #[doc(alias = "ResourceLocation")] #[derive(Hash, Clone, PartialEq, Eq, Default)] diff --git a/azalea-registry/src/lib.rs b/azalea-registry/src/lib.rs index fd3fc3b5..12f8323a 100644 --- a/azalea-registry/src/lib.rs +++ b/azalea-registry/src/lib.rs @@ -5,24 +5,57 @@ // auto-generated (so you can add doc comments to the registry enums if you // want). -mod data; -mod extra; +pub mod builtin; +pub mod data; +pub mod identifier; pub mod tags; use std::{ fmt::{self, Debug}, + hash::Hash, io::{self, Cursor, Write}, }; use azalea_buf::{AzaleaRead, AzaleaReadVar, AzaleaWrite, AzaleaWriteVar, BufReadError}; -use azalea_registry_macros::registry; -pub use data::*; -pub use extra::*; #[cfg(feature = "serde")] use serde::Serialize; use simdnbt::{FromNbtTag, borrow::NbtTag}; -pub trait Registry: AzaleaRead + AzaleaWrite +use crate::identifier::Identifier; + +// TODO: remove this next update +macro_rules! define_deprecated_builtin { + ($($r:ident) *) => { + $( + #[doc(hidden)] + #[deprecated = concat!("moved to `azalea_registry::builtin::", stringify!($r), "`")] + pub type $r = builtin::$r; + )* + }; +} +define_deprecated_builtin!(Activity Attribute BlockEntityKind BlockPredicateKind ChunkStatus CommandArgumentKind CustomStat EntityKind FloatProviderKind Fluid GameEvent HeightProviderKind IntProviderKind LootConditionKind LootFunctionKind LootNbtProviderKind LootNumberProviderKind LootPoolEntryKind LootScoreProviderKind MemoryModuleKind MobEffect ParticleKind PointOfInterestKind PosRuleTest PositionSourceKind Potion RecipeSerializer RecipeKind RuleTest SensorKind SoundEvent StatKind VillagerProfession VillagerKind WorldgenBiomeSource WorldgenBlockStateProviderKind WorldgenCarver WorldgenChunkGenerator WorldgenDensityFunctionKind WorldgenFeature WorldgenFeatureSizeKind WorldgenFoliagePlacerKind WorldgenMaterialCondition WorldgenMaterialRule WorldgenPlacementModifierKind WorldgenRootPlacerKind WorldgenStructurePiece WorldgenStructurePlacement WorldgenStructurePoolElement WorldgenStructureProcessor WorldgenStructureKind WorldgenTreeDecoratorKind WorldgenTrunkPlacerKind RuleBlockEntityModifier CreativeModeTab MenuKind WorldgenPoolAliasBinding TriggerKind NumberFormatKind DataComponentKind EntitySubPredicateKind MapDecorationKind EnchantmentEffectComponentKind EnchantmentEntityEffectKind EnchantmentLevelBasedValueKind EnchantmentLocationBasedEffectKind EnchantmentProviderKind EnchantmentValueEffectKind DecoratedPotPattern ConsumeEffectKind RecipeBookCategory RecipeDisplay SlotDisplay TicketKind TestEnvironmentDefinitionKind TestFunction TestInstanceKind DataComponentPredicateKind SpawnConditionKind DialogBodyKind DialogKind InputControlKind DialogActionKind DebugSubscription IncomingRpcMethods OutgoingRpcMethods AttributeKind EnvironmentAttribute GameRule PermissionCheckKind PermissionKind SlotSourceKind); +macro_rules! define_deprecated_data { + ($($r:ident) *) => { + $( + #[doc(hidden)] + #[deprecated = concat!("moved to `azalea_registry::data::", stringify!($r), "`")] + pub type $r = data::$r; + )* + }; +} +define_deprecated_data!(Enchantment DamageKind Dialog WolfSoundVariant CowVariant ChickenVariant FrogVariant CatVariant PigVariant PaintingVariant WolfVariant ZombieNautilusVariant Biome); + +#[doc(hidden)] +#[deprecated = "renamed to `azalea_registry::builtin::ItemKind`"] +pub type Item = builtin::ItemKind; +#[doc(hidden)] +#[deprecated = "renamed to `azalea_registry::builtin::BlockKind`"] +pub type Block = builtin::BlockKind; +#[doc(hidden)] +#[deprecated = "renamed to `azalea_registry::data::DimensionKind`"] +pub type DimensionType = data::DimensionKind; + +pub trait Registry: AzaleaRead + AzaleaWrite + PartialEq + PartialOrd + Ord + Copy + Hash where Self: Sized, { @@ -222,7 +255,7 @@ impl<R: Registry + Debug, Direct: AzaleaRead + AzaleaWrite + Debug> Debug for Ho impl<R: Registry + Clone, Direct: AzaleaRead + AzaleaWrite + Clone> Clone for Holder<R, Direct> { fn clone(&self) -> Self { match self { - Self::Reference(value) => Self::Reference(value.clone()), + Self::Reference(value) => Self::Reference(*value), Self::Direct(value) => Self::Direct(value.clone()), } } @@ -271,7230 +304,38 @@ impl< } } -registry! { -/// The AI code that's currently being executed for the entity. -enum Activity { - Core => "minecraft:core", - Idle => "minecraft:idle", - Work => "minecraft:work", - Play => "minecraft:play", - Rest => "minecraft:rest", - Meet => "minecraft:meet", - Panic => "minecraft:panic", - Raid => "minecraft:raid", - PreRaid => "minecraft:pre_raid", - Hide => "minecraft:hide", - Fight => "minecraft:fight", - Celebrate => "minecraft:celebrate", - AdmireItem => "minecraft:admire_item", - Avoid => "minecraft:avoid", - Ride => "minecraft:ride", - PlayDead => "minecraft:play_dead", - LongJump => "minecraft:long_jump", - Ram => "minecraft:ram", - Tongue => "minecraft:tongue", - Swim => "minecraft:swim", - LaySpawn => "minecraft:lay_spawn", - Sniff => "minecraft:sniff", - Investigate => "minecraft:investigate", - Roar => "minecraft:roar", - Emerge => "minecraft:emerge", - Dig => "minecraft:dig", -} -} - -registry! { -enum Attribute { - Armor => "minecraft:armor", - ArmorToughness => "minecraft:armor_toughness", - AttackDamage => "minecraft:attack_damage", - AttackKnockback => "minecraft:attack_knockback", - AttackSpeed => "minecraft:attack_speed", - BlockBreakSpeed => "minecraft:block_break_speed", - BlockInteractionRange => "minecraft:block_interaction_range", - BurningTime => "minecraft:burning_time", - CameraDistance => "minecraft:camera_distance", - ExplosionKnockbackResistance => "minecraft:explosion_knockback_resistance", - EntityInteractionRange => "minecraft:entity_interaction_range", - FallDamageMultiplier => "minecraft:fall_damage_multiplier", - FlyingSpeed => "minecraft:flying_speed", - FollowRange => "minecraft:follow_range", - Gravity => "minecraft:gravity", - JumpStrength => "minecraft:jump_strength", - KnockbackResistance => "minecraft:knockback_resistance", - Luck => "minecraft:luck", - MaxAbsorption => "minecraft:max_absorption", - MaxHealth => "minecraft:max_health", - MiningEfficiency => "minecraft:mining_efficiency", - MovementEfficiency => "minecraft:movement_efficiency", - MovementSpeed => "minecraft:movement_speed", - OxygenBonus => "minecraft:oxygen_bonus", - SafeFallDistance => "minecraft:safe_fall_distance", - Scale => "minecraft:scale", - SneakingSpeed => "minecraft:sneaking_speed", - SpawnReinforcements => "minecraft:spawn_reinforcements", - StepHeight => "minecraft:step_height", - SubmergedMiningSpeed => "minecraft:submerged_mining_speed", - SweepingDamageRatio => "minecraft:sweeping_damage_ratio", - TemptRange => "minecraft:tempt_range", - WaterMovementEfficiency => "minecraft:water_movement_efficiency", - WaypointTransmitRange => "minecraft:waypoint_transmit_range", - WaypointReceiveRange => "minecraft:waypoint_receive_range", -} -} - -registry! { -/// An enum of every type of block in the game. -/// -/// To represent a block *state*, use [`azalea_block::BlockState`] or -/// [`azalea_block::BlockTrait`]. -/// -/// [`azalea_block::BlockState`]: https://docs.rs/azalea-block/latest/azalea_block/struct.BlockState.html -/// [`azalea_block::BlockTrait`]: https://docs.rs/azalea-block/latest/azalea_block/trait.BlockTrait.html -enum Block { - Air => "minecraft:air", - Stone => "minecraft:stone", - Granite => "minecraft:granite", - PolishedGranite => "minecraft:polished_granite", - Diorite => "minecraft:diorite", - PolishedDiorite => "minecraft:polished_diorite", - Andesite => "minecraft:andesite", - PolishedAndesite => "minecraft:polished_andesite", - GrassBlock => "minecraft:grass_block", - Dirt => "minecraft:dirt", - CoarseDirt => "minecraft:coarse_dirt", - Podzol => "minecraft:podzol", - Cobblestone => "minecraft:cobblestone", - OakPlanks => "minecraft:oak_planks", - SprucePlanks => "minecraft:spruce_planks", - BirchPlanks => "minecraft:birch_planks", - JunglePlanks => "minecraft:jungle_planks", - AcaciaPlanks => "minecraft:acacia_planks", - CherryPlanks => "minecraft:cherry_planks", - DarkOakPlanks => "minecraft:dark_oak_planks", - PaleOakWood => "minecraft:pale_oak_wood", - PaleOakPlanks => "minecraft:pale_oak_planks", - MangrovePlanks => "minecraft:mangrove_planks", - BambooPlanks => "minecraft:bamboo_planks", - BambooMosaic => "minecraft:bamboo_mosaic", - OakSapling => "minecraft:oak_sapling", - SpruceSapling => "minecraft:spruce_sapling", - BirchSapling => "minecraft:birch_sapling", - JungleSapling => "minecraft:jungle_sapling", - AcaciaSapling => "minecraft:acacia_sapling", - CherrySapling => "minecraft:cherry_sapling", - DarkOakSapling => "minecraft:dark_oak_sapling", - PaleOakSapling => "minecraft:pale_oak_sapling", - MangrovePropagule => "minecraft:mangrove_propagule", - Bedrock => "minecraft:bedrock", - Water => "minecraft:water", - Lava => "minecraft:lava", - Sand => "minecraft:sand", - SuspiciousSand => "minecraft:suspicious_sand", - RedSand => "minecraft:red_sand", - Gravel => "minecraft:gravel", - SuspiciousGravel => "minecraft:suspicious_gravel", - GoldOre => "minecraft:gold_ore", - DeepslateGoldOre => "minecraft:deepslate_gold_ore", - IronOre => "minecraft:iron_ore", - DeepslateIronOre => "minecraft:deepslate_iron_ore", - CoalOre => "minecraft:coal_ore", - DeepslateCoalOre => "minecraft:deepslate_coal_ore", - NetherGoldOre => "minecraft:nether_gold_ore", - OakLog => "minecraft:oak_log", - SpruceLog => "minecraft:spruce_log", - BirchLog => "minecraft:birch_log", - JungleLog => "minecraft:jungle_log", - AcaciaLog => "minecraft:acacia_log", - CherryLog => "minecraft:cherry_log", - DarkOakLog => "minecraft:dark_oak_log", - PaleOakLog => "minecraft:pale_oak_log", - MangroveLog => "minecraft:mangrove_log", - MangroveRoots => "minecraft:mangrove_roots", - MuddyMangroveRoots => "minecraft:muddy_mangrove_roots", - BambooBlock => "minecraft:bamboo_block", - StrippedSpruceLog => "minecraft:stripped_spruce_log", - StrippedBirchLog => "minecraft:stripped_birch_log", - StrippedJungleLog => "minecraft:stripped_jungle_log", - StrippedAcaciaLog => "minecraft:stripped_acacia_log", - StrippedCherryLog => "minecraft:stripped_cherry_log", - StrippedDarkOakLog => "minecraft:stripped_dark_oak_log", - StrippedPaleOakLog => "minecraft:stripped_pale_oak_log", - StrippedOakLog => "minecraft:stripped_oak_log", - StrippedMangroveLog => "minecraft:stripped_mangrove_log", - StrippedBambooBlock => "minecraft:stripped_bamboo_block", - OakWood => "minecraft:oak_wood", - SpruceWood => "minecraft:spruce_wood", - BirchWood => "minecraft:birch_wood", - JungleWood => "minecraft:jungle_wood", - AcaciaWood => "minecraft:acacia_wood", - CherryWood => "minecraft:cherry_wood", - DarkOakWood => "minecraft:dark_oak_wood", - MangroveWood => "minecraft:mangrove_wood", - StrippedOakWood => "minecraft:stripped_oak_wood", - StrippedSpruceWood => "minecraft:stripped_spruce_wood", - StrippedBirchWood => "minecraft:stripped_birch_wood", - StrippedJungleWood => "minecraft:stripped_jungle_wood", - StrippedAcaciaWood => "minecraft:stripped_acacia_wood", - StrippedCherryWood => "minecraft:stripped_cherry_wood", - StrippedDarkOakWood => "minecraft:stripped_dark_oak_wood", - StrippedPaleOakWood => "minecraft:stripped_pale_oak_wood", - StrippedMangroveWood => "minecraft:stripped_mangrove_wood", - OakLeaves => "minecraft:oak_leaves", - SpruceLeaves => "minecraft:spruce_leaves", - BirchLeaves => "minecraft:birch_leaves", - JungleLeaves => "minecraft:jungle_leaves", - AcaciaLeaves => "minecraft:acacia_leaves", - CherryLeaves => "minecraft:cherry_leaves", - DarkOakLeaves => "minecraft:dark_oak_leaves", - PaleOakLeaves => "minecraft:pale_oak_leaves", - MangroveLeaves => "minecraft:mangrove_leaves", - AzaleaLeaves => "minecraft:azalea_leaves", - FloweringAzaleaLeaves => "minecraft:flowering_azalea_leaves", - Sponge => "minecraft:sponge", - WetSponge => "minecraft:wet_sponge", - Glass => "minecraft:glass", - LapisOre => "minecraft:lapis_ore", - DeepslateLapisOre => "minecraft:deepslate_lapis_ore", - LapisBlock => "minecraft:lapis_block", - Dispenser => "minecraft:dispenser", - Sandstone => "minecraft:sandstone", - ChiseledSandstone => "minecraft:chiseled_sandstone", - CutSandstone => "minecraft:cut_sandstone", - NoteBlock => "minecraft:note_block", - WhiteBed => "minecraft:white_bed", - OrangeBed => "minecraft:orange_bed", - MagentaBed => "minecraft:magenta_bed", - LightBlueBed => "minecraft:light_blue_bed", - YellowBed => "minecraft:yellow_bed", - LimeBed => "minecraft:lime_bed", - PinkBed => "minecraft:pink_bed", - GrayBed => "minecraft:gray_bed", - LightGrayBed => "minecraft:light_gray_bed", - CyanBed => "minecraft:cyan_bed", - PurpleBed => "minecraft:purple_bed", - BlueBed => "minecraft:blue_bed", - BrownBed => "minecraft:brown_bed", - GreenBed => "minecraft:green_bed", - RedBed => "minecraft:red_bed", - BlackBed => "minecraft:black_bed", - PoweredRail => "minecraft:powered_rail", - DetectorRail => "minecraft:detector_rail", - StickyPiston => "minecraft:sticky_piston", - Cobweb => "minecraft:cobweb", - ShortGrass => "minecraft:short_grass", - Fern => "minecraft:fern", - DeadBush => "minecraft:dead_bush", - Bush => "minecraft:bush", - ShortDryGrass => "minecraft:short_dry_grass", - TallDryGrass => "minecraft:tall_dry_grass", - Seagrass => "minecraft:seagrass", - TallSeagrass => "minecraft:tall_seagrass", - Piston => "minecraft:piston", - PistonHead => "minecraft:piston_head", - WhiteWool => "minecraft:white_wool", - OrangeWool => "minecraft:orange_wool", - MagentaWool => "minecraft:magenta_wool", - LightBlueWool => "minecraft:light_blue_wool", - YellowWool => "minecraft:yellow_wool", - LimeWool => "minecraft:lime_wool", - PinkWool => "minecraft:pink_wool", - GrayWool => "minecraft:gray_wool", - LightGrayWool => "minecraft:light_gray_wool", - CyanWool => "minecraft:cyan_wool", - PurpleWool => "minecraft:purple_wool", - BlueWool => "minecraft:blue_wool", - BrownWool => "minecraft:brown_wool", - GreenWool => "minecraft:green_wool", - RedWool => "minecraft:red_wool", - BlackWool => "minecraft:black_wool", - MovingPiston => "minecraft:moving_piston", - Dandelion => "minecraft:dandelion", - Torchflower => "minecraft:torchflower", - Poppy => "minecraft:poppy", - BlueOrchid => "minecraft:blue_orchid", - Allium => "minecraft:allium", - AzureBluet => "minecraft:azure_bluet", - RedTulip => "minecraft:red_tulip", - OrangeTulip => "minecraft:orange_tulip", - WhiteTulip => "minecraft:white_tulip", - PinkTulip => "minecraft:pink_tulip", - OxeyeDaisy => "minecraft:oxeye_daisy", - Cornflower => "minecraft:cornflower", - WitherRose => "minecraft:wither_rose", - LilyOfTheValley => "minecraft:lily_of_the_valley", - BrownMushroom => "minecraft:brown_mushroom", - RedMushroom => "minecraft:red_mushroom", - GoldBlock => "minecraft:gold_block", - IronBlock => "minecraft:iron_block", - Bricks => "minecraft:bricks", - Tnt => "minecraft:tnt", - Bookshelf => "minecraft:bookshelf", - ChiseledBookshelf => "minecraft:chiseled_bookshelf", - AcaciaShelf => "minecraft:acacia_shelf", - BambooShelf => "minecraft:bamboo_shelf", - BirchShelf => "minecraft:birch_shelf", - CherryShelf => "minecraft:cherry_shelf", - CrimsonShelf => "minecraft:crimson_shelf", - DarkOakShelf => "minecraft:dark_oak_shelf", - JungleShelf => "minecraft:jungle_shelf", - MangroveShelf => "minecraft:mangrove_shelf", - OakShelf => "minecraft:oak_shelf", - PaleOakShelf => "minecraft:pale_oak_shelf", - SpruceShelf => "minecraft:spruce_shelf", - WarpedShelf => "minecraft:warped_shelf", - MossyCobblestone => "minecraft:mossy_cobblestone", - Obsidian => "minecraft:obsidian", - Torch => "minecraft:torch", - WallTorch => "minecraft:wall_torch", - Fire => "minecraft:fire", - SoulFire => "minecraft:soul_fire", - Spawner => "minecraft:spawner", - CreakingHeart => "minecraft:creaking_heart", - OakStairs => "minecraft:oak_stairs", - Chest => "minecraft:chest", - RedstoneWire => "minecraft:redstone_wire", - DiamondOre => "minecraft:diamond_ore", - DeepslateDiamondOre => "minecraft:deepslate_diamond_ore", - DiamondBlock => "minecraft:diamond_block", - CraftingTable => "minecraft:crafting_table", - Wheat => "minecraft:wheat", - Farmland => "minecraft:farmland", - Furnace => "minecraft:furnace", - OakSign => "minecraft:oak_sign", - SpruceSign => "minecraft:spruce_sign", - BirchSign => "minecraft:birch_sign", - AcaciaSign => "minecraft:acacia_sign", - CherrySign => "minecraft:cherry_sign", - JungleSign => "minecraft:jungle_sign", - DarkOakSign => "minecraft:dark_oak_sign", - PaleOakSign => "minecraft:pale_oak_sign", - MangroveSign => "minecraft:mangrove_sign", - BambooSign => "minecraft:bamboo_sign", - OakDoor => "minecraft:oak_door", - Ladder => "minecraft:ladder", - Rail => "minecraft:rail", - CobblestoneStairs => "minecraft:cobblestone_stairs", - OakWallSign => "minecraft:oak_wall_sign", - SpruceWallSign => "minecraft:spruce_wall_sign", - BirchWallSign => "minecraft:birch_wall_sign", - AcaciaWallSign => "minecraft:acacia_wall_sign", - CherryWallSign => "minecraft:cherry_wall_sign", - JungleWallSign => "minecraft:jungle_wall_sign", - DarkOakWallSign => "minecraft:dark_oak_wall_sign", - PaleOakWallSign => "minecraft:pale_oak_wall_sign", - MangroveWallSign => "minecraft:mangrove_wall_sign", - BambooWallSign => "minecraft:bamboo_wall_sign", - OakHangingSign => "minecraft:oak_hanging_sign", - SpruceHangingSign => "minecraft:spruce_hanging_sign", - BirchHangingSign => "minecraft:birch_hanging_sign", - AcaciaHangingSign => "minecraft:acacia_hanging_sign", - CherryHangingSign => "minecraft:cherry_hanging_sign", - JungleHangingSign => "minecraft:jungle_hanging_sign", - DarkOakHangingSign => "minecraft:dark_oak_hanging_sign", - PaleOakHangingSign => "minecraft:pale_oak_hanging_sign", - CrimsonHangingSign => "minecraft:crimson_hanging_sign", - WarpedHangingSign => "minecraft:warped_hanging_sign", - MangroveHangingSign => "minecraft:mangrove_hanging_sign", - BambooHangingSign => "minecraft:bamboo_hanging_sign", - OakWallHangingSign => "minecraft:oak_wall_hanging_sign", - SpruceWallHangingSign => "minecraft:spruce_wall_hanging_sign", - BirchWallHangingSign => "minecraft:birch_wall_hanging_sign", - AcaciaWallHangingSign => "minecraft:acacia_wall_hanging_sign", - CherryWallHangingSign => "minecraft:cherry_wall_hanging_sign", - JungleWallHangingSign => "minecraft:jungle_wall_hanging_sign", - DarkOakWallHangingSign => "minecraft:dark_oak_wall_hanging_sign", - PaleOakWallHangingSign => "minecraft:pale_oak_wall_hanging_sign", - MangroveWallHangingSign => "minecraft:mangrove_wall_hanging_sign", - CrimsonWallHangingSign => "minecraft:crimson_wall_hanging_sign", - WarpedWallHangingSign => "minecraft:warped_wall_hanging_sign", - BambooWallHangingSign => "minecraft:bamboo_wall_hanging_sign", - Lever => "minecraft:lever", - StonePressurePlate => "minecraft:stone_pressure_plate", - IronDoor => "minecraft:iron_door", - OakPressurePlate => "minecraft:oak_pressure_plate", - SprucePressurePlate => "minecraft:spruce_pressure_plate", - BirchPressurePlate => "minecraft:birch_pressure_plate", - JunglePressurePlate => "minecraft:jungle_pressure_plate", - AcaciaPressurePlate => "minecraft:acacia_pressure_plate", - CherryPressurePlate => "minecraft:cherry_pressure_plate", - DarkOakPressurePlate => "minecraft:dark_oak_pressure_plate", - PaleOakPressurePlate => "minecraft:pale_oak_pressure_plate", - MangrovePressurePlate => "minecraft:mangrove_pressure_plate", - BambooPressurePlate => "minecraft:bamboo_pressure_plate", - RedstoneOre => "minecraft:redstone_ore", - DeepslateRedstoneOre => "minecraft:deepslate_redstone_ore", - RedstoneTorch => "minecraft:redstone_torch", - RedstoneWallTorch => "minecraft:redstone_wall_torch", - StoneButton => "minecraft:stone_button", - Snow => "minecraft:snow", - Ice => "minecraft:ice", - SnowBlock => "minecraft:snow_block", - Cactus => "minecraft:cactus", - CactusFlower => "minecraft:cactus_flower", - Clay => "minecraft:clay", - SugarCane => "minecraft:sugar_cane", - Jukebox => "minecraft:jukebox", - OakFence => "minecraft:oak_fence", - Netherrack => "minecraft:netherrack", - SoulSand => "minecraft:soul_sand", - SoulSoil => "minecraft:soul_soil", - Basalt => "minecraft:basalt", - PolishedBasalt => "minecraft:polished_basalt", - SoulTorch => "minecraft:soul_torch", - SoulWallTorch => "minecraft:soul_wall_torch", - CopperTorch => "minecraft:copper_torch", - CopperWallTorch => "minecraft:copper_wall_torch", - Glowstone => "minecraft:glowstone", - NetherPortal => "minecraft:nether_portal", - CarvedPumpkin => "minecraft:carved_pumpkin", - JackOLantern => "minecraft:jack_o_lantern", - Cake => "minecraft:cake", - Repeater => "minecraft:repeater", - WhiteStainedGlass => "minecraft:white_stained_glass", - OrangeStainedGlass => "minecraft:orange_stained_glass", - MagentaStainedGlass => "minecraft:magenta_stained_glass", - LightBlueStainedGlass => "minecraft:light_blue_stained_glass", - YellowStainedGlass => "minecraft:yellow_stained_glass", - LimeStainedGlass => "minecraft:lime_stained_glass", - PinkStainedGlass => "minecraft:pink_stained_glass", - GrayStainedGlass => "minecraft:gray_stained_glass", - LightGrayStainedGlass => "minecraft:light_gray_stained_glass", - CyanStainedGlass => "minecraft:cyan_stained_glass", - PurpleStainedGlass => "minecraft:purple_stained_glass", - BlueStainedGlass => "minecraft:blue_stained_glass", - BrownStainedGlass => "minecraft:brown_stained_glass", - GreenStainedGlass => "minecraft:green_stained_glass", - RedStainedGlass => "minecraft:red_stained_glass", - BlackStainedGlass => "minecraft:black_stained_glass", - OakTrapdoor => "minecraft:oak_trapdoor", - SpruceTrapdoor => "minecraft:spruce_trapdoor", - BirchTrapdoor => "minecraft:birch_trapdoor", - JungleTrapdoor => "minecraft:jungle_trapdoor", - AcaciaTrapdoor => "minecraft:acacia_trapdoor", - CherryTrapdoor => "minecraft:cherry_trapdoor", - DarkOakTrapdoor => "minecraft:dark_oak_trapdoor", - PaleOakTrapdoor => "minecraft:pale_oak_trapdoor", - MangroveTrapdoor => "minecraft:mangrove_trapdoor", - BambooTrapdoor => "minecraft:bamboo_trapdoor", - StoneBricks => "minecraft:stone_bricks", - MossyStoneBricks => "minecraft:mossy_stone_bricks", - CrackedStoneBricks => "minecraft:cracked_stone_bricks", - ChiseledStoneBricks => "minecraft:chiseled_stone_bricks", - PackedMud => "minecraft:packed_mud", - MudBricks => "minecraft:mud_bricks", - InfestedStone => "minecraft:infested_stone", - InfestedCobblestone => "minecraft:infested_cobblestone", - InfestedStoneBricks => "minecraft:infested_stone_bricks", - InfestedMossyStoneBricks => "minecraft:infested_mossy_stone_bricks", - InfestedCrackedStoneBricks => "minecraft:infested_cracked_stone_bricks", - InfestedChiseledStoneBricks => "minecraft:infested_chiseled_stone_bricks", - BrownMushroomBlock => "minecraft:brown_mushroom_block", - RedMushroomBlock => "minecraft:red_mushroom_block", - MushroomStem => "minecraft:mushroom_stem", - IronBars => "minecraft:iron_bars", - CopperBars => "minecraft:copper_bars", - ExposedCopperBars => "minecraft:exposed_copper_bars", - WeatheredCopperBars => "minecraft:weathered_copper_bars", - OxidizedCopperBars => "minecraft:oxidized_copper_bars", - WaxedCopperBars => "minecraft:waxed_copper_bars", - WaxedExposedCopperBars => "minecraft:waxed_exposed_copper_bars", - WaxedWeatheredCopperBars => "minecraft:waxed_weathered_copper_bars", - WaxedOxidizedCopperBars => "minecraft:waxed_oxidized_copper_bars", - IronChain => "minecraft:iron_chain", - CopperChain => "minecraft:copper_chain", - ExposedCopperChain => "minecraft:exposed_copper_chain", - WeatheredCopperChain => "minecraft:weathered_copper_chain", - OxidizedCopperChain => "minecraft:oxidized_copper_chain", - WaxedCopperChain => "minecraft:waxed_copper_chain", - WaxedExposedCopperChain => "minecraft:waxed_exposed_copper_chain", - WaxedWeatheredCopperChain => "minecraft:waxed_weathered_copper_chain", - WaxedOxidizedCopperChain => "minecraft:waxed_oxidized_copper_chain", - GlassPane => "minecraft:glass_pane", - Pumpkin => "minecraft:pumpkin", - Melon => "minecraft:melon", - AttachedPumpkinStem => "minecraft:attached_pumpkin_stem", - AttachedMelonStem => "minecraft:attached_melon_stem", - PumpkinStem => "minecraft:pumpkin_stem", - MelonStem => "minecraft:melon_stem", - Vine => "minecraft:vine", - GlowLichen => "minecraft:glow_lichen", - ResinClump => "minecraft:resin_clump", - OakFenceGate => "minecraft:oak_fence_gate", - BrickStairs => "minecraft:brick_stairs", - StoneBrickStairs => "minecraft:stone_brick_stairs", - MudBrickStairs => "minecraft:mud_brick_stairs", - Mycelium => "minecraft:mycelium", - LilyPad => "minecraft:lily_pad", - ResinBlock => "minecraft:resin_block", - ResinBricks => "minecraft:resin_bricks", - ResinBrickStairs => "minecraft:resin_brick_stairs", - ResinBrickSlab => "minecraft:resin_brick_slab", - ResinBrickWall => "minecraft:resin_brick_wall", - ChiseledResinBricks => "minecraft:chiseled_resin_bricks", - NetherBricks => "minecraft:nether_bricks", - NetherBrickFence => "minecraft:nether_brick_fence", - NetherBrickStairs => "minecraft:nether_brick_stairs", - NetherWart => "minecraft:nether_wart", - EnchantingTable => "minecraft:enchanting_table", - BrewingStand => "minecraft:brewing_stand", - Cauldron => "minecraft:cauldron", - WaterCauldron => "minecraft:water_cauldron", - LavaCauldron => "minecraft:lava_cauldron", - PowderSnowCauldron => "minecraft:powder_snow_cauldron", - EndPortal => "minecraft:end_portal", - EndPortalFrame => "minecraft:end_portal_frame", - EndStone => "minecraft:end_stone", - DragonEgg => "minecraft:dragon_egg", - RedstoneLamp => "minecraft:redstone_lamp", - Cocoa => "minecraft:cocoa", - SandstoneStairs => "minecraft:sandstone_stairs", - EmeraldOre => "minecraft:emerald_ore", - DeepslateEmeraldOre => "minecraft:deepslate_emerald_ore", - EnderChest => "minecraft:ender_chest", - TripwireHook => "minecraft:tripwire_hook", - Tripwire => "minecraft:tripwire", - EmeraldBlock => "minecraft:emerald_block", - SpruceStairs => "minecraft:spruce_stairs", - BirchStairs => "minecraft:birch_stairs", - JungleStairs => "minecraft:jungle_stairs", - CommandBlock => "minecraft:command_block", - Beacon => "minecraft:beacon", - CobblestoneWall => "minecraft:cobblestone_wall", - MossyCobblestoneWall => "minecraft:mossy_cobblestone_wall", - FlowerPot => "minecraft:flower_pot", - PottedTorchflower => "minecraft:potted_torchflower", - PottedOakSapling => "minecraft:potted_oak_sapling", - PottedSpruceSapling => "minecraft:potted_spruce_sapling", - PottedBirchSapling => "minecraft:potted_birch_sapling", - PottedJungleSapling => "minecraft:potted_jungle_sapling", - PottedAcaciaSapling => "minecraft:potted_acacia_sapling", - PottedCherrySapling => "minecraft:potted_cherry_sapling", - PottedDarkOakSapling => "minecraft:potted_dark_oak_sapling", - PottedPaleOakSapling => "minecraft:potted_pale_oak_sapling", - PottedMangrovePropagule => "minecraft:potted_mangrove_propagule", - PottedFern => "minecraft:potted_fern", - PottedDandelion => "minecraft:potted_dandelion", - PottedPoppy => "minecraft:potted_poppy", - PottedBlueOrchid => "minecraft:potted_blue_orchid", - PottedAllium => "minecraft:potted_allium", - PottedAzureBluet => "minecraft:potted_azure_bluet", - PottedRedTulip => "minecraft:potted_red_tulip", - PottedOrangeTulip => "minecraft:potted_orange_tulip", - PottedWhiteTulip => "minecraft:potted_white_tulip", - PottedPinkTulip => "minecraft:potted_pink_tulip", - PottedOxeyeDaisy => "minecraft:potted_oxeye_daisy", - PottedCornflower => "minecraft:potted_cornflower", - PottedLilyOfTheValley => "minecraft:potted_lily_of_the_valley", - PottedWitherRose => "minecraft:potted_wither_rose", - PottedRedMushroom => "minecraft:potted_red_mushroom", - PottedBrownMushroom => "minecraft:potted_brown_mushroom", - PottedDeadBush => "minecraft:potted_dead_bush", - PottedCactus => "minecraft:potted_cactus", - Carrots => "minecraft:carrots", - Potatoes => "minecraft:potatoes", - OakButton => "minecraft:oak_button", - SpruceButton => "minecraft:spruce_button", - BirchButton => "minecraft:birch_button", - JungleButton => "minecraft:jungle_button", - AcaciaButton => "minecraft:acacia_button", - CherryButton => "minecraft:cherry_button", - DarkOakButton => "minecraft:dark_oak_button", - PaleOakButton => "minecraft:pale_oak_button", - MangroveButton => "minecraft:mangrove_button", - BambooButton => "minecraft:bamboo_button", - SkeletonSkull => "minecraft:skeleton_skull", - SkeletonWallSkull => "minecraft:skeleton_wall_skull", - WitherSkeletonSkull => "minecraft:wither_skeleton_skull", - WitherSkeletonWallSkull => "minecraft:wither_skeleton_wall_skull", - ZombieHead => "minecraft:zombie_head", - ZombieWallHead => "minecraft:zombie_wall_head", - PlayerHead => "minecraft:player_head", - PlayerWallHead => "minecraft:player_wall_head", - CreeperHead => "minecraft:creeper_head", - CreeperWallHead => "minecraft:creeper_wall_head", - DragonHead => "minecraft:dragon_head", - DragonWallHead => "minecraft:dragon_wall_head", - PiglinHead => "minecraft:piglin_head", - PiglinWallHead => "minecraft:piglin_wall_head", - Anvil => "minecraft:anvil", - ChippedAnvil => "minecraft:chipped_anvil", - DamagedAnvil => "minecraft:damaged_anvil", - TrappedChest => "minecraft:trapped_chest", - LightWeightedPressurePlate => "minecraft:light_weighted_pressure_plate", - HeavyWeightedPressurePlate => "minecraft:heavy_weighted_pressure_plate", - Comparator => "minecraft:comparator", - DaylightDetector => "minecraft:daylight_detector", - RedstoneBlock => "minecraft:redstone_block", - NetherQuartzOre => "minecraft:nether_quartz_ore", - Hopper => "minecraft:hopper", - QuartzBlock => "minecraft:quartz_block", - ChiseledQuartzBlock => "minecraft:chiseled_quartz_block", - QuartzPillar => "minecraft:quartz_pillar", - QuartzStairs => "minecraft:quartz_stairs", - ActivatorRail => "minecraft:activator_rail", - Dropper => "minecraft:dropper", - WhiteTerracotta => "minecraft:white_terracotta", - OrangeTerracotta => "minecraft:orange_terracotta", - MagentaTerracotta => "minecraft:magenta_terracotta", - LightBlueTerracotta => "minecraft:light_blue_terracotta", - YellowTerracotta => "minecraft:yellow_terracotta", - LimeTerracotta => "minecraft:lime_terracotta", - PinkTerracotta => "minecraft:pink_terracotta", - GrayTerracotta => "minecraft:gray_terracotta", - LightGrayTerracotta => "minecraft:light_gray_terracotta", - CyanTerracotta => "minecraft:cyan_terracotta", - PurpleTerracotta => "minecraft:purple_terracotta", - BlueTerracotta => "minecraft:blue_terracotta", - BrownTerracotta => "minecraft:brown_terracotta", - GreenTerracotta => "minecraft:green_terracotta", - RedTerracotta => "minecraft:red_terracotta", - BlackTerracotta => "minecraft:black_terracotta", - WhiteStainedGlassPane => "minecraft:white_stained_glass_pane", - OrangeStainedGlassPane => "minecraft:orange_stained_glass_pane", - MagentaStainedGlassPane => "minecraft:magenta_stained_glass_pane", - LightBlueStainedGlassPane => "minecraft:light_blue_stained_glass_pane", - YellowStainedGlassPane => "minecraft:yellow_stained_glass_pane", - LimeStainedGlassPane => "minecraft:lime_stained_glass_pane", - PinkStainedGlassPane => "minecraft:pink_stained_glass_pane", - GrayStainedGlassPane => "minecraft:gray_stained_glass_pane", - LightGrayStainedGlassPane => "minecraft:light_gray_stained_glass_pane", - CyanStainedGlassPane => "minecraft:cyan_stained_glass_pane", - PurpleStainedGlassPane => "minecraft:purple_stained_glass_pane", - BlueStainedGlassPane => "minecraft:blue_stained_glass_pane", - BrownStainedGlassPane => "minecraft:brown_stained_glass_pane", - GreenStainedGlassPane => "minecraft:green_stained_glass_pane", - RedStainedGlassPane => "minecraft:red_stained_glass_pane", - BlackStainedGlassPane => "minecraft:black_stained_glass_pane", - AcaciaStairs => "minecraft:acacia_stairs", - CherryStairs => "minecraft:cherry_stairs", - DarkOakStairs => "minecraft:dark_oak_stairs", - PaleOakStairs => "minecraft:pale_oak_stairs", - MangroveStairs => "minecraft:mangrove_stairs", - BambooStairs => "minecraft:bamboo_stairs", - BambooMosaicStairs => "minecraft:bamboo_mosaic_stairs", - SlimeBlock => "minecraft:slime_block", - Barrier => "minecraft:barrier", - Light => "minecraft:light", - IronTrapdoor => "minecraft:iron_trapdoor", - Prismarine => "minecraft:prismarine", - PrismarineBricks => "minecraft:prismarine_bricks", - DarkPrismarine => "minecraft:dark_prismarine", - PrismarineStairs => "minecraft:prismarine_stairs", - PrismarineBrickStairs => "minecraft:prismarine_brick_stairs", - DarkPrismarineStairs => "minecraft:dark_prismarine_stairs", - PrismarineSlab => "minecraft:prismarine_slab", - PrismarineBrickSlab => "minecraft:prismarine_brick_slab", - DarkPrismarineSlab => "minecraft:dark_prismarine_slab", - SeaLantern => "minecraft:sea_lantern", - HayBlock => "minecraft:hay_block", - WhiteCarpet => "minecraft:white_carpet", - OrangeCarpet => "minecraft:orange_carpet", - MagentaCarpet => "minecraft:magenta_carpet", - LightBlueCarpet => "minecraft:light_blue_carpet", - YellowCarpet => "minecraft:yellow_carpet", - LimeCarpet => "minecraft:lime_carpet", - PinkCarpet => "minecraft:pink_carpet", - GrayCarpet => "minecraft:gray_carpet", - LightGrayCarpet => "minecraft:light_gray_carpet", - CyanCarpet => "minecraft:cyan_carpet", - PurpleCarpet => "minecraft:purple_carpet", - BlueCarpet => "minecraft:blue_carpet", - BrownCarpet => "minecraft:brown_carpet", - GreenCarpet => "minecraft:green_carpet", - RedCarpet => "minecraft:red_carpet", - BlackCarpet => "minecraft:black_carpet", - Terracotta => "minecraft:terracotta", - CoalBlock => "minecraft:coal_block", - PackedIce => "minecraft:packed_ice", - Sunflower => "minecraft:sunflower", - Lilac => "minecraft:lilac", - RoseBush => "minecraft:rose_bush", - Peony => "minecraft:peony", - TallGrass => "minecraft:tall_grass", - LargeFern => "minecraft:large_fern", - WhiteBanner => "minecraft:white_banner", - OrangeBanner => "minecraft:orange_banner", - MagentaBanner => "minecraft:magenta_banner", - LightBlueBanner => "minecraft:light_blue_banner", - YellowBanner => "minecraft:yellow_banner", - LimeBanner => "minecraft:lime_banner", - PinkBanner => "minecraft:pink_banner", - GrayBanner => "minecraft:gray_banner", - LightGrayBanner => "minecraft:light_gray_banner", - CyanBanner => "minecraft:cyan_banner", - PurpleBanner => "minecraft:purple_banner", - BlueBanner => "minecraft:blue_banner", - BrownBanner => "minecraft:brown_banner", - GreenBanner => "minecraft:green_banner", - RedBanner => "minecraft:red_banner", - BlackBanner => "minecraft:black_banner", - WhiteWallBanner => "minecraft:white_wall_banner", - OrangeWallBanner => "minecraft:orange_wall_banner", - MagentaWallBanner => "minecraft:magenta_wall_banner", - LightBlueWallBanner => "minecraft:light_blue_wall_banner", - YellowWallBanner => "minecraft:yellow_wall_banner", - LimeWallBanner => "minecraft:lime_wall_banner", - PinkWallBanner => "minecraft:pink_wall_banner", - GrayWallBanner => "minecraft:gray_wall_banner", - LightGrayWallBanner => "minecraft:light_gray_wall_banner", - CyanWallBanner => "minecraft:cyan_wall_banner", - PurpleWallBanner => "minecraft:purple_wall_banner", - BlueWallBanner => "minecraft:blue_wall_banner", - BrownWallBanner => "minecraft:brown_wall_banner", - GreenWallBanner => "minecraft:green_wall_banner", - RedWallBanner => "minecraft:red_wall_banner", - BlackWallBanner => "minecraft:black_wall_banner", - RedSandstone => "minecraft:red_sandstone", - ChiseledRedSandstone => "minecraft:chiseled_red_sandstone", - CutRedSandstone => "minecraft:cut_red_sandstone", - RedSandstoneStairs => "minecraft:red_sandstone_stairs", - OakSlab => "minecraft:oak_slab", - SpruceSlab => "minecraft:spruce_slab", - BirchSlab => "minecraft:birch_slab", - JungleSlab => "minecraft:jungle_slab", - AcaciaSlab => "minecraft:acacia_slab", - CherrySlab => "minecraft:cherry_slab", - DarkOakSlab => "minecraft:dark_oak_slab", - PaleOakSlab => "minecraft:pale_oak_slab", - MangroveSlab => "minecraft:mangrove_slab", - BambooSlab => "minecraft:bamboo_slab", - BambooMosaicSlab => "minecraft:bamboo_mosaic_slab", - StoneSlab => "minecraft:stone_slab", - SmoothStoneSlab => "minecraft:smooth_stone_slab", - SandstoneSlab => "minecraft:sandstone_slab", - CutSandstoneSlab => "minecraft:cut_sandstone_slab", - PetrifiedOakSlab => "minecraft:petrified_oak_slab", - CobblestoneSlab => "minecraft:cobblestone_slab", - BrickSlab => "minecraft:brick_slab", - StoneBrickSlab => "minecraft:stone_brick_slab", - MudBrickSlab => "minecraft:mud_brick_slab", - NetherBrickSlab => "minecraft:nether_brick_slab", - QuartzSlab => "minecraft:quartz_slab", - RedSandstoneSlab => "minecraft:red_sandstone_slab", - CutRedSandstoneSlab => "minecraft:cut_red_sandstone_slab", - PurpurSlab => "minecraft:purpur_slab", - SmoothStone => "minecraft:smooth_stone", - SmoothSandstone => "minecraft:smooth_sandstone", - SmoothQuartz => "minecraft:smooth_quartz", - SmoothRedSandstone => "minecraft:smooth_red_sandstone", - SpruceFenceGate => "minecraft:spruce_fence_gate", - BirchFenceGate => "minecraft:birch_fence_gate", - JungleFenceGate => "minecraft:jungle_fence_gate", - AcaciaFenceGate => "minecraft:acacia_fence_gate", - CherryFenceGate => "minecraft:cherry_fence_gate", - DarkOakFenceGate => "minecraft:dark_oak_fence_gate", - PaleOakFenceGate => "minecraft:pale_oak_fence_gate", - MangroveFenceGate => "minecraft:mangrove_fence_gate", - BambooFenceGate => "minecraft:bamboo_fence_gate", - SpruceFence => "minecraft:spruce_fence", - BirchFence => "minecraft:birch_fence", - JungleFence => "minecraft:jungle_fence", - AcaciaFence => "minecraft:acacia_fence", - CherryFence => "minecraft:cherry_fence", - DarkOakFence => "minecraft:dark_oak_fence", - PaleOakFence => "minecraft:pale_oak_fence", - MangroveFence => "minecraft:mangrove_fence", - BambooFence => "minecraft:bamboo_fence", - SpruceDoor => "minecraft:spruce_door", - BirchDoor => "minecraft:birch_door", - JungleDoor => "minecraft:jungle_door", - AcaciaDoor => "minecraft:acacia_door", - CherryDoor => "minecraft:cherry_door", - DarkOakDoor => "minecraft:dark_oak_door", - PaleOakDoor => "minecraft:pale_oak_door", - MangroveDoor => "minecraft:mangrove_door", - BambooDoor => "minecraft:bamboo_door", - EndRod => "minecraft:end_rod", - ChorusPlant => "minecraft:chorus_plant", - ChorusFlower => "minecraft:chorus_flower", - PurpurBlock => "minecraft:purpur_block", - PurpurPillar => "minecraft:purpur_pillar", - PurpurStairs => "minecraft:purpur_stairs", - EndStoneBricks => "minecraft:end_stone_bricks", - TorchflowerCrop => "minecraft:torchflower_crop", - PitcherCrop => "minecraft:pitcher_crop", - PitcherPlant => "minecraft:pitcher_plant", - Beetroots => "minecraft:beetroots", - DirtPath => "minecraft:dirt_path", - EndGateway => "minecraft:end_gateway", - RepeatingCommandBlock => "minecraft:repeating_command_block", - ChainCommandBlock => "minecraft:chain_command_block", - FrostedIce => "minecraft:frosted_ice", - MagmaBlock => "minecraft:magma_block", - NetherWartBlock => "minecraft:nether_wart_block", - RedNetherBricks => "minecraft:red_nether_bricks", - BoneBlock => "minecraft:bone_block", - StructureVoid => "minecraft:structure_void", - Observer => "minecraft:observer", - ShulkerBox => "minecraft:shulker_box", - WhiteShulkerBox => "minecraft:white_shulker_box", - OrangeShulkerBox => "minecraft:orange_shulker_box", - MagentaShulkerBox => "minecraft:magenta_shulker_box", - LightBlueShulkerBox => "minecraft:light_blue_shulker_box", - YellowShulkerBox => "minecraft:yellow_shulker_box", - LimeShulkerBox => "minecraft:lime_shulker_box", - PinkShulkerBox => "minecraft:pink_shulker_box", - GrayShulkerBox => "minecraft:gray_shulker_box", - LightGrayShulkerBox => "minecraft:light_gray_shulker_box", - CyanShulkerBox => "minecraft:cyan_shulker_box", - PurpleShulkerBox => "minecraft:purple_shulker_box", - BlueShulkerBox => "minecraft:blue_shulker_box", - BrownShulkerBox => "minecraft:brown_shulker_box", - GreenShulkerBox => "minecraft:green_shulker_box", - RedShulkerBox => "minecraft:red_shulker_box", - BlackShulkerBox => "minecraft:black_shulker_box", - WhiteGlazedTerracotta => "minecraft:white_glazed_terracotta", - OrangeGlazedTerracotta => "minecraft:orange_glazed_terracotta", - MagentaGlazedTerracotta => "minecraft:magenta_glazed_terracotta", - LightBlueGlazedTerracotta => "minecraft:light_blue_glazed_terracotta", - YellowGlazedTerracotta => "minecraft:yellow_glazed_terracotta", - LimeGlazedTerracotta => "minecraft:lime_glazed_terracotta", - PinkGlazedTerracotta => "minecraft:pink_glazed_terracotta", - GrayGlazedTerracotta => "minecraft:gray_glazed_terracotta", - LightGrayGlazedTerracotta => "minecraft:light_gray_glazed_terracotta", - CyanGlazedTerracotta => "minecraft:cyan_glazed_terracotta", - PurpleGlazedTerracotta => "minecraft:purple_glazed_terracotta", - BlueGlazedTerracotta => "minecraft:blue_glazed_terracotta", - BrownGlazedTerracotta => "minecraft:brown_glazed_terracotta", - GreenGlazedTerracotta => "minecraft:green_glazed_terracotta", - RedGlazedTerracotta => "minecraft:red_glazed_terracotta", - BlackGlazedTerracotta => "minecraft:black_glazed_terracotta", - WhiteConcrete => "minecraft:white_concrete", - OrangeConcrete => "minecraft:orange_concrete", - MagentaConcrete => "minecraft:magenta_concrete", - LightBlueConcrete => "minecraft:light_blue_concrete", - YellowConcrete => "minecraft:yellow_concrete", - LimeConcrete => "minecraft:lime_concrete", - PinkConcrete => "minecraft:pink_concrete", - GrayConcrete => "minecraft:gray_concrete", - LightGrayConcrete => "minecraft:light_gray_concrete", - CyanConcrete => "minecraft:cyan_concrete", - PurpleConcrete => "minecraft:purple_concrete", - BlueConcrete => "minecraft:blue_concrete", - BrownConcrete => "minecraft:brown_concrete", - GreenConcrete => "minecraft:green_concrete", - RedConcrete => "minecraft:red_concrete", - BlackConcrete => "minecraft:black_concrete", - WhiteConcretePowder => "minecraft:white_concrete_powder", - OrangeConcretePowder => "minecraft:orange_concrete_powder", - MagentaConcretePowder => "minecraft:magenta_concrete_powder", - LightBlueConcretePowder => "minecraft:light_blue_concrete_powder", - YellowConcretePowder => "minecraft:yellow_concrete_powder", - LimeConcretePowder => "minecraft:lime_concrete_powder", - PinkConcretePowder => "minecraft:pink_concrete_powder", - GrayConcretePowder => "minecraft:gray_concrete_powder", - LightGrayConcretePowder => "minecraft:light_gray_concrete_powder", - CyanConcretePowder => "minecraft:cyan_concrete_powder", - PurpleConcretePowder => "minecraft:purple_concrete_powder", - BlueConcretePowder => "minecraft:blue_concrete_powder", - BrownConcretePowder => "minecraft:brown_concrete_powder", - GreenConcretePowder => "minecraft:green_concrete_powder", - RedConcretePowder => "minecraft:red_concrete_powder", - BlackConcretePowder => "minecraft:black_concrete_powder", - Kelp => "minecraft:kelp", - KelpPlant => "minecraft:kelp_plant", - DriedKelpBlock => "minecraft:dried_kelp_block", - TurtleEgg => "minecraft:turtle_egg", - SnifferEgg => "minecraft:sniffer_egg", - DriedGhast => "minecraft:dried_ghast", - DeadTubeCoralBlock => "minecraft:dead_tube_coral_block", - DeadBrainCoralBlock => "minecraft:dead_brain_coral_block", - DeadBubbleCoralBlock => "minecraft:dead_bubble_coral_block", - DeadFireCoralBlock => "minecraft:dead_fire_coral_block", - DeadHornCoralBlock => "minecraft:dead_horn_coral_block", - TubeCoralBlock => "minecraft:tube_coral_block", - BrainCoralBlock => "minecraft:brain_coral_block", - BubbleCoralBlock => "minecraft:bubble_coral_block", - FireCoralBlock => "minecraft:fire_coral_block", - HornCoralBlock => "minecraft:horn_coral_block", - DeadTubeCoral => "minecraft:dead_tube_coral", - DeadBrainCoral => "minecraft:dead_brain_coral", - DeadBubbleCoral => "minecraft:dead_bubble_coral", - DeadFireCoral => "minecraft:dead_fire_coral", - DeadHornCoral => "minecraft:dead_horn_coral", - TubeCoral => "minecraft:tube_coral", - BrainCoral => "minecraft:brain_coral", - BubbleCoral => "minecraft:bubble_coral", - FireCoral => "minecraft:fire_coral", - HornCoral => "minecraft:horn_coral", - DeadTubeCoralFan => "minecraft:dead_tube_coral_fan", - DeadBrainCoralFan => "minecraft:dead_brain_coral_fan", - DeadBubbleCoralFan => "minecraft:dead_bubble_coral_fan", - DeadFireCoralFan => "minecraft:dead_fire_coral_fan", - DeadHornCoralFan => "minecraft:dead_horn_coral_fan", - TubeCoralFan => "minecraft:tube_coral_fan", - BrainCoralFan => "minecraft:brain_coral_fan", - BubbleCoralFan => "minecraft:bubble_coral_fan", - FireCoralFan => "minecraft:fire_coral_fan", - HornCoralFan => "minecraft:horn_coral_fan", - DeadTubeCoralWallFan => "minecraft:dead_tube_coral_wall_fan", - DeadBrainCoralWallFan => "minecraft:dead_brain_coral_wall_fan", - DeadBubbleCoralWallFan => "minecraft:dead_bubble_coral_wall_fan", - DeadFireCoralWallFan => "minecraft:dead_fire_coral_wall_fan", - DeadHornCoralWallFan => "minecraft:dead_horn_coral_wall_fan", - TubeCoralWallFan => "minecraft:tube_coral_wall_fan", - BrainCoralWallFan => "minecraft:brain_coral_wall_fan", - BubbleCoralWallFan => "minecraft:bubble_coral_wall_fan", - FireCoralWallFan => "minecraft:fire_coral_wall_fan", - HornCoralWallFan => "minecraft:horn_coral_wall_fan", - SeaPickle => "minecraft:sea_pickle", - BlueIce => "minecraft:blue_ice", - Conduit => "minecraft:conduit", - BambooSapling => "minecraft:bamboo_sapling", - Bamboo => "minecraft:bamboo", - PottedBamboo => "minecraft:potted_bamboo", - VoidAir => "minecraft:void_air", - CaveAir => "minecraft:cave_air", - BubbleColumn => "minecraft:bubble_column", - PolishedGraniteStairs => "minecraft:polished_granite_stairs", - SmoothRedSandstoneStairs => "minecraft:smooth_red_sandstone_stairs", - MossyStoneBrickStairs => "minecraft:mossy_stone_brick_stairs", - PolishedDioriteStairs => "minecraft:polished_diorite_stairs", - MossyCobblestoneStairs => "minecraft:mossy_cobblestone_stairs", - EndStoneBrickStairs => "minecraft:end_stone_brick_stairs", - StoneStairs => "minecraft:stone_stairs", - SmoothSandstoneStairs => "minecraft:smooth_sandstone_stairs", - SmoothQuartzStairs => "minecraft:smooth_quartz_stairs", - GraniteStairs => "minecraft:granite_stairs", - AndesiteStairs => "minecraft:andesite_stairs", - RedNetherBrickStairs => "minecraft:red_nether_brick_stairs", - PolishedAndesiteStairs => "minecraft:polished_andesite_stairs", - DioriteStairs => "minecraft:diorite_stairs", - PolishedGraniteSlab => "minecraft:polished_granite_slab", - SmoothRedSandstoneSlab => "minecraft:smooth_red_sandstone_slab", - MossyStoneBrickSlab => "minecraft:mossy_stone_brick_slab", - PolishedDioriteSlab => "minecraft:polished_diorite_slab", - MossyCobblestoneSlab => "minecraft:mossy_cobblestone_slab", - EndStoneBrickSlab => "minecraft:end_stone_brick_slab", - SmoothSandstoneSlab => "minecraft:smooth_sandstone_slab", - SmoothQuartzSlab => "minecraft:smooth_quartz_slab", - GraniteSlab => "minecraft:granite_slab", - AndesiteSlab => "minecraft:andesite_slab", - RedNetherBrickSlab => "minecraft:red_nether_brick_slab", - PolishedAndesiteSlab => "minecraft:polished_andesite_slab", - DioriteSlab => "minecraft:diorite_slab", - BrickWall => "minecraft:brick_wall", - PrismarineWall => "minecraft:prismarine_wall", - RedSandstoneWall => "minecraft:red_sandstone_wall", - MossyStoneBrickWall => "minecraft:mossy_stone_brick_wall", - GraniteWall => "minecraft:granite_wall", - StoneBrickWall => "minecraft:stone_brick_wall", - MudBrickWall => "minecraft:mud_brick_wall", - NetherBrickWall => "minecraft:nether_brick_wall", - AndesiteWall => "minecraft:andesite_wall", - RedNetherBrickWall => "minecraft:red_nether_brick_wall", - SandstoneWall => "minecraft:sandstone_wall", - EndStoneBrickWall => "minecraft:end_stone_brick_wall", - DioriteWall => "minecraft:diorite_wall", - Scaffolding => "minecraft:scaffolding", - Loom => "minecraft:loom", - Barrel => "minecraft:barrel", - Smoker => "minecraft:smoker", - BlastFurnace => "minecraft:blast_furnace", - CartographyTable => "minecraft:cartography_table", - FletchingTable => "minecraft:fletching_table", - Grindstone => "minecraft:grindstone", - Lectern => "minecraft:lectern", - SmithingTable => "minecraft:smithing_table", - Stonecutter => "minecraft:stonecutter", - Bell => "minecraft:bell", - Lantern => "minecraft:lantern", - SoulLantern => "minecraft:soul_lantern", - CopperLantern => "minecraft:copper_lantern", - ExposedCopperLantern => "minecraft:exposed_copper_lantern", - WeatheredCopperLantern => "minecraft:weathered_copper_lantern", - OxidizedCopperLantern => "minecraft:oxidized_copper_lantern", - WaxedCopperLantern => "minecraft:waxed_copper_lantern", - WaxedExposedCopperLantern => "minecraft:waxed_exposed_copper_lantern", - WaxedWeatheredCopperLantern => "minecraft:waxed_weathered_copper_lantern", - WaxedOxidizedCopperLantern => "minecraft:waxed_oxidized_copper_lantern", - Campfire => "minecraft:campfire", - SoulCampfire => "minecraft:soul_campfire", - SweetBerryBush => "minecraft:sweet_berry_bush", - WarpedStem => "minecraft:warped_stem", - StrippedWarpedStem => "minecraft:stripped_warped_stem", - WarpedHyphae => "minecraft:warped_hyphae", - StrippedWarpedHyphae => "minecraft:stripped_warped_hyphae", - WarpedNylium => "minecraft:warped_nylium", - WarpedFungus => "minecraft:warped_fungus", - WarpedWartBlock => "minecraft:warped_wart_block", - WarpedRoots => "minecraft:warped_roots", - NetherSprouts => "minecraft:nether_sprouts", - CrimsonStem => "minecraft:crimson_stem", - StrippedCrimsonStem => "minecraft:stripped_crimson_stem", - CrimsonHyphae => "minecraft:crimson_hyphae", - StrippedCrimsonHyphae => "minecraft:stripped_crimson_hyphae", - CrimsonNylium => "minecraft:crimson_nylium", - CrimsonFungus => "minecraft:crimson_fungus", - Shroomlight => "minecraft:shroomlight", - WeepingVines => "minecraft:weeping_vines", - WeepingVinesPlant => "minecraft:weeping_vines_plant", - TwistingVines => "minecraft:twisting_vines", - TwistingVinesPlant => "minecraft:twisting_vines_plant", - CrimsonRoots => "minecraft:crimson_roots", - CrimsonPlanks => "minecraft:crimson_planks", - WarpedPlanks => "minecraft:warped_planks", - CrimsonSlab => "minecraft:crimson_slab", - WarpedSlab => "minecraft:warped_slab", - CrimsonPressurePlate => "minecraft:crimson_pressure_plate", - WarpedPressurePlate => "minecraft:warped_pressure_plate", - CrimsonFence => "minecraft:crimson_fence", - WarpedFence => "minecraft:warped_fence", - CrimsonTrapdoor => "minecraft:crimson_trapdoor", - WarpedTrapdoor => "minecraft:warped_trapdoor", - CrimsonFenceGate => "minecraft:crimson_fence_gate", - WarpedFenceGate => "minecraft:warped_fence_gate", - CrimsonStairs => "minecraft:crimson_stairs", - WarpedStairs => "minecraft:warped_stairs", - CrimsonButton => "minecraft:crimson_button", - WarpedButton => "minecraft:warped_button", - CrimsonDoor => "minecraft:crimson_door", - WarpedDoor => "minecraft:warped_door", - CrimsonSign => "minecraft:crimson_sign", - WarpedSign => "minecraft:warped_sign", - CrimsonWallSign => "minecraft:crimson_wall_sign", - WarpedWallSign => "minecraft:warped_wall_sign", - StructureBlock => "minecraft:structure_block", - Jigsaw => "minecraft:jigsaw", - TestBlock => "minecraft:test_block", - TestInstanceBlock => "minecraft:test_instance_block", - Composter => "minecraft:composter", - Target => "minecraft:target", - BeeNest => "minecraft:bee_nest", - Beehive => "minecraft:beehive", - HoneyBlock => "minecraft:honey_block", - HoneycombBlock => "minecraft:honeycomb_block", - NetheriteBlock => "minecraft:netherite_block", - AncientDebris => "minecraft:ancient_debris", - CryingObsidian => "minecraft:crying_obsidian", - RespawnAnchor => "minecraft:respawn_anchor", - PottedCrimsonFungus => "minecraft:potted_crimson_fungus", - PottedWarpedFungus => "minecraft:potted_warped_fungus", - PottedCrimsonRoots => "minecraft:potted_crimson_roots", - PottedWarpedRoots => "minecraft:potted_warped_roots", - Lodestone => "minecraft:lodestone", - Blackstone => "minecraft:blackstone", - BlackstoneStairs => "minecraft:blackstone_stairs", - BlackstoneWall => "minecraft:blackstone_wall", - BlackstoneSlab => "minecraft:blackstone_slab", - PolishedBlackstone => "minecraft:polished_blackstone", - PolishedBlackstoneBricks => "minecraft:polished_blackstone_bricks", - CrackedPolishedBlackstoneBricks => "minecraft:cracked_polished_blackstone_bricks", - ChiseledPolishedBlackstone => "minecraft:chiseled_polished_blackstone", - PolishedBlackstoneBrickSlab => "minecraft:polished_blackstone_brick_slab", - PolishedBlackstoneBrickStairs => "minecraft:polished_blackstone_brick_stairs", - PolishedBlackstoneBrickWall => "minecraft:polished_blackstone_brick_wall", - GildedBlackstone => "minecraft:gilded_blackstone", - PolishedBlackstoneStairs => "minecraft:polished_blackstone_stairs", - PolishedBlackstoneSlab => "minecraft:polished_blackstone_slab", - PolishedBlackstonePressurePlate => "minecraft:polished_blackstone_pressure_plate", - PolishedBlackstoneButton => "minecraft:polished_blackstone_button", - PolishedBlackstoneWall => "minecraft:polished_blackstone_wall", - ChiseledNetherBricks => "minecraft:chiseled_nether_bricks", - CrackedNetherBricks => "minecraft:cracked_nether_bricks", - QuartzBricks => "minecraft:quartz_bricks", - Candle => "minecraft:candle", - WhiteCandle => "minecraft:white_candle", - OrangeCandle => "minecraft:orange_candle", - MagentaCandle => "minecraft:magenta_candle", - LightBlueCandle => "minecraft:light_blue_candle", - YellowCandle => "minecraft:yellow_candle", - LimeCandle => "minecraft:lime_candle", - PinkCandle => "minecraft:pink_candle", - GrayCandle => "minecraft:gray_candle", - LightGrayCandle => "minecraft:light_gray_candle", - CyanCandle => "minecraft:cyan_candle", - PurpleCandle => "minecraft:purple_candle", - BlueCandle => "minecraft:blue_candle", - BrownCandle => "minecraft:brown_candle", - GreenCandle => "minecraft:green_candle", - RedCandle => "minecraft:red_candle", - BlackCandle => "minecraft:black_candle", - CandleCake => "minecraft:candle_cake", - WhiteCandleCake => "minecraft:white_candle_cake", - OrangeCandleCake => "minecraft:orange_candle_cake", - MagentaCandleCake => "minecraft:magenta_candle_cake", - LightBlueCandleCake => "minecraft:light_blue_candle_cake", - YellowCandleCake => "minecraft:yellow_candle_cake", - LimeCandleCake => "minecraft:lime_candle_cake", - PinkCandleCake => "minecraft:pink_candle_cake", - GrayCandleCake => "minecraft:gray_candle_cake", - LightGrayCandleCake => "minecraft:light_gray_candle_cake", - CyanCandleCake => "minecraft:cyan_candle_cake", - PurpleCandleCake => "minecraft:purple_candle_cake", - BlueCandleCake => "minecraft:blue_candle_cake", - BrownCandleCake => "minecraft:brown_candle_cake", - GreenCandleCake => "minecraft:green_candle_cake", - RedCandleCake => "minecraft:red_candle_cake", - BlackCandleCake => "minecraft:black_candle_cake", - AmethystBlock => "minecraft:amethyst_block", - BuddingAmethyst => "minecraft:budding_amethyst", - AmethystCluster => "minecraft:amethyst_cluster", - LargeAmethystBud => "minecraft:large_amethyst_bud", - MediumAmethystBud => "minecraft:medium_amethyst_bud", - SmallAmethystBud => "minecraft:small_amethyst_bud", - Tuff => "minecraft:tuff", - TuffSlab => "minecraft:tuff_slab", - TuffStairs => "minecraft:tuff_stairs", - TuffWall => "minecraft:tuff_wall", - PolishedTuff => "minecraft:polished_tuff", - PolishedTuffSlab => "minecraft:polished_tuff_slab", - PolishedTuffStairs => "minecraft:polished_tuff_stairs", - PolishedTuffWall => "minecraft:polished_tuff_wall", - ChiseledTuff => "minecraft:chiseled_tuff", - TuffBricks => "minecraft:tuff_bricks", - TuffBrickSlab => "minecraft:tuff_brick_slab", - TuffBrickStairs => "minecraft:tuff_brick_stairs", - TuffBrickWall => "minecraft:tuff_brick_wall", - ChiseledTuffBricks => "minecraft:chiseled_tuff_bricks", - Calcite => "minecraft:calcite", - TintedGlass => "minecraft:tinted_glass", - PowderSnow => "minecraft:powder_snow", - SculkSensor => "minecraft:sculk_sensor", - CalibratedSculkSensor => "minecraft:calibrated_sculk_sensor", - Sculk => "minecraft:sculk", - SculkVein => "minecraft:sculk_vein", - SculkCatalyst => "minecraft:sculk_catalyst", - SculkShrieker => "minecraft:sculk_shrieker", - CopperBlock => "minecraft:copper_block", - ExposedCopper => "minecraft:exposed_copper", - WeatheredCopper => "minecraft:weathered_copper", - OxidizedCopper => "minecraft:oxidized_copper", - CopperOre => "minecraft:copper_ore", - DeepslateCopperOre => "minecraft:deepslate_copper_ore", - OxidizedCutCopper => "minecraft:oxidized_cut_copper", - WeatheredCutCopper => "minecraft:weathered_cut_copper", - ExposedCutCopper => "minecraft:exposed_cut_copper", - CutCopper => "minecraft:cut_copper", - OxidizedChiseledCopper => "minecraft:oxidized_chiseled_copper", - WeatheredChiseledCopper => "minecraft:weathered_chiseled_copper", - ExposedChiseledCopper => "minecraft:exposed_chiseled_copper", - ChiseledCopper => "minecraft:chiseled_copper", - WaxedOxidizedChiseledCopper => "minecraft:waxed_oxidized_chiseled_copper", - WaxedWeatheredChiseledCopper => "minecraft:waxed_weathered_chiseled_copper", - WaxedExposedChiseledCopper => "minecraft:waxed_exposed_chiseled_copper", - WaxedChiseledCopper => "minecraft:waxed_chiseled_copper", - OxidizedCutCopperStairs => "minecraft:oxidized_cut_copper_stairs", - WeatheredCutCopperStairs => "minecraft:weathered_cut_copper_stairs", - ExposedCutCopperStairs => "minecraft:exposed_cut_copper_stairs", - CutCopperStairs => "minecraft:cut_copper_stairs", - OxidizedCutCopperSlab => "minecraft:oxidized_cut_copper_slab", - WeatheredCutCopperSlab => "minecraft:weathered_cut_copper_slab", - ExposedCutCopperSlab => "minecraft:exposed_cut_copper_slab", - CutCopperSlab => "minecraft:cut_copper_slab", - WaxedCopperBlock => "minecraft:waxed_copper_block", - WaxedWeatheredCopper => "minecraft:waxed_weathered_copper", - WaxedExposedCopper => "minecraft:waxed_exposed_copper", - WaxedOxidizedCopper => "minecraft:waxed_oxidized_copper", - WaxedOxidizedCutCopper => "minecraft:waxed_oxidized_cut_copper", - WaxedWeatheredCutCopper => "minecraft:waxed_weathered_cut_copper", - WaxedExposedCutCopper => "minecraft:waxed_exposed_cut_copper", - WaxedCutCopper => "minecraft:waxed_cut_copper", - WaxedOxidizedCutCopperStairs => "minecraft:waxed_oxidized_cut_copper_stairs", - WaxedWeatheredCutCopperStairs => "minecraft:waxed_weathered_cut_copper_stairs", - WaxedExposedCutCopperStairs => "minecraft:waxed_exposed_cut_copper_stairs", - WaxedCutCopperStairs => "minecraft:waxed_cut_copper_stairs", - WaxedOxidizedCutCopperSlab => "minecraft:waxed_oxidized_cut_copper_slab", - WaxedWeatheredCutCopperSlab => "minecraft:waxed_weathered_cut_copper_slab", - WaxedExposedCutCopperSlab => "minecraft:waxed_exposed_cut_copper_slab", - WaxedCutCopperSlab => "minecraft:waxed_cut_copper_slab", - CopperDoor => "minecraft:copper_door", - ExposedCopperDoor => "minecraft:exposed_copper_door", - OxidizedCopperDoor => "minecraft:oxidized_copper_door", - WeatheredCopperDoor => "minecraft:weathered_copper_door", - WaxedCopperDoor => "minecraft:waxed_copper_door", - WaxedExposedCopperDoor => "minecraft:waxed_exposed_copper_door", - WaxedOxidizedCopperDoor => "minecraft:waxed_oxidized_copper_door", - WaxedWeatheredCopperDoor => "minecraft:waxed_weathered_copper_door", - CopperTrapdoor => "minecraft:copper_trapdoor", - ExposedCopperTrapdoor => "minecraft:exposed_copper_trapdoor", - OxidizedCopperTrapdoor => "minecraft:oxidized_copper_trapdoor", - WeatheredCopperTrapdoor => "minecraft:weathered_copper_trapdoor", - WaxedCopperTrapdoor => "minecraft:waxed_copper_trapdoor", - WaxedExposedCopperTrapdoor => "minecraft:waxed_exposed_copper_trapdoor", - WaxedOxidizedCopperTrapdoor => "minecraft:waxed_oxidized_copper_trapdoor", - WaxedWeatheredCopperTrapdoor => "minecraft:waxed_weathered_copper_trapdoor", - CopperGrate => "minecraft:copper_grate", - ExposedCopperGrate => "minecraft:exposed_copper_grate", - WeatheredCopperGrate => "minecraft:weathered_copper_grate", - OxidizedCopperGrate => "minecraft:oxidized_copper_grate", - WaxedCopperGrate => "minecraft:waxed_copper_grate", - WaxedExposedCopperGrate => "minecraft:waxed_exposed_copper_grate", - WaxedWeatheredCopperGrate => "minecraft:waxed_weathered_copper_grate", - WaxedOxidizedCopperGrate => "minecraft:waxed_oxidized_copper_grate", - CopperBulb => "minecraft:copper_bulb", - ExposedCopperBulb => "minecraft:exposed_copper_bulb", - WeatheredCopperBulb => "minecraft:weathered_copper_bulb", - OxidizedCopperBulb => "minecraft:oxidized_copper_bulb", - WaxedCopperBulb => "minecraft:waxed_copper_bulb", - WaxedExposedCopperBulb => "minecraft:waxed_exposed_copper_bulb", - WaxedWeatheredCopperBulb => "minecraft:waxed_weathered_copper_bulb", - WaxedOxidizedCopperBulb => "minecraft:waxed_oxidized_copper_bulb", - CopperChest => "minecraft:copper_chest", - ExposedCopperChest => "minecraft:exposed_copper_chest", - WeatheredCopperChest => "minecraft:weathered_copper_chest", - OxidizedCopperChest => "minecraft:oxidized_copper_chest", - WaxedCopperChest => "minecraft:waxed_copper_chest", - WaxedExposedCopperChest => "minecraft:waxed_exposed_copper_chest", - WaxedWeatheredCopperChest => "minecraft:waxed_weathered_copper_chest", - WaxedOxidizedCopperChest => "minecraft:waxed_oxidized_copper_chest", - CopperGolemStatue => "minecraft:copper_golem_statue", - ExposedCopperGolemStatue => "minecraft:exposed_copper_golem_statue", - WeatheredCopperGolemStatue => "minecraft:weathered_copper_golem_statue", - OxidizedCopperGolemStatue => "minecraft:oxidized_copper_golem_statue", - WaxedCopperGolemStatue => "minecraft:waxed_copper_golem_statue", - WaxedExposedCopperGolemStatue => "minecraft:waxed_exposed_copper_golem_statue", - WaxedWeatheredCopperGolemStatue => "minecraft:waxed_weathered_copper_golem_statue", - WaxedOxidizedCopperGolemStatue => "minecraft:waxed_oxidized_copper_golem_statue", - LightningRod => "minecraft:lightning_rod", - ExposedLightningRod => "minecraft:exposed_lightning_rod", - WeatheredLightningRod => "minecraft:weathered_lightning_rod", - OxidizedLightningRod => "minecraft:oxidized_lightning_rod", - WaxedLightningRod => "minecraft:waxed_lightning_rod", - WaxedExposedLightningRod => "minecraft:waxed_exposed_lightning_rod", - WaxedWeatheredLightningRod => "minecraft:waxed_weathered_lightning_rod", - WaxedOxidizedLightningRod => "minecraft:waxed_oxidized_lightning_rod", - PointedDripstone => "minecraft:pointed_dripstone", - DripstoneBlock => "minecraft:dripstone_block", - CaveVines => "minecraft:cave_vines", - CaveVinesPlant => "minecraft:cave_vines_plant", - SporeBlossom => "minecraft:spore_blossom", - Azalea => "minecraft:azalea", - FloweringAzalea => "minecraft:flowering_azalea", - MossCarpet => "minecraft:moss_carpet", - PinkPetals => "minecraft:pink_petals", - Wildflowers => "minecraft:wildflowers", - LeafLitter => "minecraft:leaf_litter", - MossBlock => "minecraft:moss_block", - BigDripleaf => "minecraft:big_dripleaf", - BigDripleafStem => "minecraft:big_dripleaf_stem", - SmallDripleaf => "minecraft:small_dripleaf", - HangingRoots => "minecraft:hanging_roots", - RootedDirt => "minecraft:rooted_dirt", - Mud => "minecraft:mud", - Deepslate => "minecraft:deepslate", - CobbledDeepslate => "minecraft:cobbled_deepslate", - CobbledDeepslateStairs => "minecraft:cobbled_deepslate_stairs", - CobbledDeepslateSlab => "minecraft:cobbled_deepslate_slab", - CobbledDeepslateWall => "minecraft:cobbled_deepslate_wall", - PolishedDeepslate => "minecraft:polished_deepslate", - PolishedDeepslateStairs => "minecraft:polished_deepslate_stairs", - PolishedDeepslateSlab => "minecraft:polished_deepslate_slab", - PolishedDeepslateWall => "minecraft:polished_deepslate_wall", - DeepslateTiles => "minecraft:deepslate_tiles", - DeepslateTileStairs => "minecraft:deepslate_tile_stairs", - DeepslateTileSlab => "minecraft:deepslate_tile_slab", - DeepslateTileWall => "minecraft:deepslate_tile_wall", - DeepslateBricks => "minecraft:deepslate_bricks", - DeepslateBrickStairs => "minecraft:deepslate_brick_stairs", - DeepslateBrickSlab => "minecraft:deepslate_brick_slab", - DeepslateBrickWall => "minecraft:deepslate_brick_wall", - ChiseledDeepslate => "minecraft:chiseled_deepslate", - CrackedDeepslateBricks => "minecraft:cracked_deepslate_bricks", - CrackedDeepslateTiles => "minecraft:cracked_deepslate_tiles", - InfestedDeepslate => "minecraft:infested_deepslate", - SmoothBasalt => "minecraft:smooth_basalt", - RawIronBlock => "minecraft:raw_iron_block", - RawCopperBlock => "minecraft:raw_copper_block", - RawGoldBlock => "minecraft:raw_gold_block", - PottedAzaleaBush => "minecraft:potted_azalea_bush", - PottedFloweringAzaleaBush => "minecraft:potted_flowering_azalea_bush", - OchreFroglight => "minecraft:ochre_froglight", - VerdantFroglight => "minecraft:verdant_froglight", - PearlescentFroglight => "minecraft:pearlescent_froglight", - Frogspawn => "minecraft:frogspawn", - ReinforcedDeepslate => "minecraft:reinforced_deepslate", - DecoratedPot => "minecraft:decorated_pot", - Crafter => "minecraft:crafter", - TrialSpawner => "minecraft:trial_spawner", - Vault => "minecraft:vault", - HeavyCore => "minecraft:heavy_core", - PaleMossBlock => "minecraft:pale_moss_block", - PaleMossCarpet => "minecraft:pale_moss_carpet", - PaleHangingMoss => "minecraft:pale_hanging_moss", - OpenEyeblossom => "minecraft:open_eyeblossom", - ClosedEyeblossom => "minecraft:closed_eyeblossom", - PottedOpenEyeblossom => "minecraft:potted_open_eyeblossom", - PottedClosedEyeblossom => "minecraft:potted_closed_eyeblossom", - FireflyBush => "minecraft:firefly_bush", -} -} - -registry! { -/// An enum that contains every type of block entity. -/// -/// A block entity is a block that contains data that can't be represented as -/// just a block state, like how chests store items. -enum BlockEntityKind { - Furnace => "minecraft:furnace", - Chest => "minecraft:chest", - TrappedChest => "minecraft:trapped_chest", - EnderChest => "minecraft:ender_chest", - Jukebox => "minecraft:jukebox", - Dispenser => "minecraft:dispenser", - Dropper => "minecraft:dropper", - Sign => "minecraft:sign", - HangingSign => "minecraft:hanging_sign", - MobSpawner => "minecraft:mob_spawner", - CreakingHeart => "minecraft:creaking_heart", - Piston => "minecraft:piston", - BrewingStand => "minecraft:brewing_stand", - EnchantingTable => "minecraft:enchanting_table", - EndPortal => "minecraft:end_portal", - Beacon => "minecraft:beacon", - Skull => "minecraft:skull", - DaylightDetector => "minecraft:daylight_detector", - Hopper => "minecraft:hopper", - Comparator => "minecraft:comparator", - Banner => "minecraft:banner", - StructureBlock => "minecraft:structure_block", - EndGateway => "minecraft:end_gateway", - CommandBlock => "minecraft:command_block", - ShulkerBox => "minecraft:shulker_box", - Bed => "minecraft:bed", - Conduit => "minecraft:conduit", - Barrel => "minecraft:barrel", - Smoker => "minecraft:smoker", - BlastFurnace => "minecraft:blast_furnace", - Lectern => "minecraft:lectern", - Bell => "minecraft:bell", - Jigsaw => "minecraft:jigsaw", - Campfire => "minecraft:campfire", - Beehive => "minecraft:beehive", - SculkSensor => "minecraft:sculk_sensor", - CalibratedSculkSensor => "minecraft:calibrated_sculk_sensor", - SculkCatalyst => "minecraft:sculk_catalyst", - SculkShrieker => "minecraft:sculk_shrieker", - ChiseledBookshelf => "minecraft:chiseled_bookshelf", - Shelf => "minecraft:shelf", - BrushableBlock => "minecraft:brushable_block", - DecoratedPot => "minecraft:decorated_pot", - Crafter => "minecraft:crafter", - TrialSpawner => "minecraft:trial_spawner", - Vault => "minecraft:vault", - TestBlock => "minecraft:test_block", - TestInstanceBlock => "minecraft:test_instance_block", - CopperGolemStatue => "minecraft:copper_golem_statue", -} -} - -registry! { -enum BlockPredicateKind { - MatchingBlocks => "minecraft:matching_blocks", - MatchingBlockTag => "minecraft:matching_block_tag", - MatchingFluids => "minecraft:matching_fluids", - HasSturdyFace => "minecraft:has_sturdy_face", - Solid => "minecraft:solid", - Replaceable => "minecraft:replaceable", - WouldSurvive => "minecraft:would_survive", - InsideWorldBounds => "minecraft:inside_world_bounds", - AnyOf => "minecraft:any_of", - AllOf => "minecraft:all_of", - Not => "minecraft:not", - True => "minecraft:true", - Unobstructed => "minecraft:unobstructed", -} -} - -registry! { -enum ChunkStatus { - Empty => "minecraft:empty", - StructureStarts => "minecraft:structure_starts", - StructureReferences => "minecraft:structure_references", - Biomes => "minecraft:biomes", - Noise => "minecraft:noise", - Surface => "minecraft:surface", - Carvers => "minecraft:carvers", - Features => "minecraft:features", - InitializeLight => "minecraft:initialize_light", - Light => "minecraft:light", - Spawn => "minecraft:spawn", - Full => "minecraft:full", -} -} - -registry! { -enum CommandArgumentKind { - Bool => "brigadier:bool", - Float => "brigadier:float", - Double => "brigadier:double", - Integer => "brigadier:integer", - Long => "brigadier:long", - String => "brigadier:string", - Entity => "minecraft:entity", - GameProfile => "minecraft:game_profile", - BlockPos => "minecraft:block_pos", - ColumnPos => "minecraft:column_pos", - Vec3 => "minecraft:vec3", - Vec2 => "minecraft:vec2", - BlockState => "minecraft:block_state", - BlockPredicate => "minecraft:block_predicate", - ItemStack => "minecraft:item_stack", - ItemPredicate => "minecraft:item_predicate", - Color => "minecraft:color", - HexColor => "minecraft:hex_color", - Component => "minecraft:component", - Style => "minecraft:style", - Message => "minecraft:message", - NbtCompoundTag => "minecraft:nbt_compound_tag", - NbtTag => "minecraft:nbt_tag", - NbtPath => "minecraft:nbt_path", - Objective => "minecraft:objective", - ObjectiveCriteria => "minecraft:objective_criteria", - Operation => "minecraft:operation", - Particle => "minecraft:particle", - Angle => "minecraft:angle", - Rotation => "minecraft:rotation", - ScoreboardSlot => "minecraft:scoreboard_slot", - ScoreHolder => "minecraft:score_holder", - Swizzle => "minecraft:swizzle", - Team => "minecraft:team", - ItemSlot => "minecraft:item_slot", - ItemSlots => "minecraft:item_slots", - ResourceLocation => "minecraft:resource_location", - Function => "minecraft:function", - EntityAnchor => "minecraft:entity_anchor", - IntRange => "minecraft:int_range", - FloatRange => "minecraft:float_range", - Dimension => "minecraft:dimension", - Gamemode => "minecraft:gamemode", - Time => "minecraft:time", - ResourceOrTag => "minecraft:resource_or_tag", - ResourceOrTagKey => "minecraft:resource_or_tag_key", - Resource => "minecraft:resource", - ResourceKey => "minecraft:resource_key", - ResourceSelector => "minecraft:resource_selector", - TemplateMirror => "minecraft:template_mirror", - TemplateRotation => "minecraft:template_rotation", - Heightmap => "minecraft:heightmap", - LootTable => "minecraft:loot_table", - LootPredicate => "minecraft:loot_predicate", - LootModifier => "minecraft:loot_modifier", - Dialog => "minecraft:dialog", - Uuid => "minecraft:uuid", -} -} - -registry! { -enum CustomStat { - LeaveGame => "minecraft:leave_game", - PlayTime => "minecraft:play_time", - TotalWorldTime => "minecraft:total_world_time", - TimeSinceDeath => "minecraft:time_since_death", - TimeSinceRest => "minecraft:time_since_rest", - SneakTime => "minecraft:sneak_time", - WalkOneCm => "minecraft:walk_one_cm", - CrouchOneCm => "minecraft:crouch_one_cm", - SprintOneCm => "minecraft:sprint_one_cm", - WalkOnWaterOneCm => "minecraft:walk_on_water_one_cm", - FallOneCm => "minecraft:fall_one_cm", - ClimbOneCm => "minecraft:climb_one_cm", - FlyOneCm => "minecraft:fly_one_cm", - WalkUnderWaterOneCm => "minecraft:walk_under_water_one_cm", - MinecartOneCm => "minecraft:minecart_one_cm", - BoatOneCm => "minecraft:boat_one_cm", - PigOneCm => "minecraft:pig_one_cm", - HappyGhastOneCm => "minecraft:happy_ghast_one_cm", - HorseOneCm => "minecraft:horse_one_cm", - 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", - DamageDealtAbsorbed => "minecraft:damage_dealt_absorbed", - DamageDealtResisted => "minecraft:damage_dealt_resisted", - DamageTaken => "minecraft:damage_taken", - DamageBlockedByShield => "minecraft:damage_blocked_by_shield", - DamageAbsorbed => "minecraft:damage_absorbed", - DamageResisted => "minecraft:damage_resisted", - Deaths => "minecraft:deaths", - MobKills => "minecraft:mob_kills", - AnimalsBred => "minecraft:animals_bred", - PlayerKills => "minecraft:player_kills", - FishCaught => "minecraft:fish_caught", - TalkedToVillager => "minecraft:talked_to_villager", - TradedWithVillager => "minecraft:traded_with_villager", - EatCakeSlice => "minecraft:eat_cake_slice", - FillCauldron => "minecraft:fill_cauldron", - UseCauldron => "minecraft:use_cauldron", - CleanArmor => "minecraft:clean_armor", - CleanBanner => "minecraft:clean_banner", - CleanShulkerBox => "minecraft:clean_shulker_box", - InteractWithBrewingstand => "minecraft:interact_with_brewingstand", - InteractWithBeacon => "minecraft:interact_with_beacon", - InspectDropper => "minecraft:inspect_dropper", - InspectHopper => "minecraft:inspect_hopper", - InspectDispenser => "minecraft:inspect_dispenser", - PlayNoteblock => "minecraft:play_noteblock", - TuneNoteblock => "minecraft:tune_noteblock", - PotFlower => "minecraft:pot_flower", - TriggerTrappedChest => "minecraft:trigger_trapped_chest", - OpenEnderchest => "minecraft:open_enderchest", - EnchantItem => "minecraft:enchant_item", - PlayRecord => "minecraft:play_record", - InteractWithFurnace => "minecraft:interact_with_furnace", - InteractWithCraftingTable => "minecraft:interact_with_crafting_table", - OpenChest => "minecraft:open_chest", - SleepInBed => "minecraft:sleep_in_bed", - OpenShulkerBox => "minecraft:open_shulker_box", - OpenBarrel => "minecraft:open_barrel", - InteractWithBlastFurnace => "minecraft:interact_with_blast_furnace", - InteractWithSmoker => "minecraft:interact_with_smoker", - InteractWithLectern => "minecraft:interact_with_lectern", - InteractWithCampfire => "minecraft:interact_with_campfire", - InteractWithCartographyTable => "minecraft:interact_with_cartography_table", - InteractWithLoom => "minecraft:interact_with_loom", - InteractWithStonecutter => "minecraft:interact_with_stonecutter", - BellRing => "minecraft:bell_ring", - RaidTrigger => "minecraft:raid_trigger", - RaidWin => "minecraft:raid_win", - InteractWithAnvil => "minecraft:interact_with_anvil", - InteractWithGrindstone => "minecraft:interact_with_grindstone", - TargetHit => "minecraft:target_hit", - InteractWithSmithingTable => "minecraft:interact_with_smithing_table", -} -} - -registry! { -/// An enum that contains every type of entity. -enum EntityKind { - AcaciaBoat => "minecraft:acacia_boat", - AcaciaChestBoat => "minecraft:acacia_chest_boat", - Allay => "minecraft:allay", - AreaEffectCloud => "minecraft:area_effect_cloud", - Armadillo => "minecraft:armadillo", - ArmorStand => "minecraft:armor_stand", - Arrow => "minecraft:arrow", - Axolotl => "minecraft:axolotl", - BambooChestRaft => "minecraft:bamboo_chest_raft", - BambooRaft => "minecraft:bamboo_raft", - Bat => "minecraft:bat", - Bee => "minecraft:bee", - BirchBoat => "minecraft:birch_boat", - BirchChestBoat => "minecraft:birch_chest_boat", - Blaze => "minecraft:blaze", - BlockDisplay => "minecraft:block_display", - Bogged => "minecraft:bogged", - 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", - CherryChestBoat => "minecraft:cherry_chest_boat", - ChestMinecart => "minecraft:chest_minecart", - Chicken => "minecraft:chicken", - Cod => "minecraft:cod", - CopperGolem => "minecraft:copper_golem", - CommandBlockMinecart => "minecraft:command_block_minecart", - Cow => "minecraft:cow", - Creaking => "minecraft:creaking", - Creeper => "minecraft:creeper", - DarkOakBoat => "minecraft:dark_oak_boat", - DarkOakChestBoat => "minecraft:dark_oak_chest_boat", - Dolphin => "minecraft:dolphin", - Donkey => "minecraft:donkey", - DragonFireball => "minecraft:dragon_fireball", - Drowned => "minecraft:drowned", - Egg => "minecraft:egg", - ElderGuardian => "minecraft:elder_guardian", - Enderman => "minecraft:enderman", - Endermite => "minecraft:endermite", - EnderDragon => "minecraft:ender_dragon", - EnderPearl => "minecraft:ender_pearl", - EndCrystal => "minecraft:end_crystal", - Evoker => "minecraft:evoker", - EvokerFangs => "minecraft:evoker_fangs", - ExperienceBottle => "minecraft:experience_bottle", - ExperienceOrb => "minecraft:experience_orb", - EyeOfEnder => "minecraft:eye_of_ender", - FallingBlock => "minecraft:falling_block", - Fireball => "minecraft:fireball", - FireworkRocket => "minecraft:firework_rocket", - Fox => "minecraft:fox", - Frog => "minecraft:frog", - FurnaceMinecart => "minecraft:furnace_minecart", - Ghast => "minecraft:ghast", - HappyGhast => "minecraft:happy_ghast", - Giant => "minecraft:giant", - GlowItemFrame => "minecraft:glow_item_frame", - GlowSquid => "minecraft:glow_squid", - Goat => "minecraft:goat", - Guardian => "minecraft:guardian", - Hoglin => "minecraft:hoglin", - HopperMinecart => "minecraft:hopper_minecart", - Horse => "minecraft:horse", - Husk => "minecraft:husk", - Illusioner => "minecraft:illusioner", - Interaction => "minecraft:interaction", - IronGolem => "minecraft:iron_golem", - Item => "minecraft:item", - ItemDisplay => "minecraft:item_display", - ItemFrame => "minecraft:item_frame", - JungleBoat => "minecraft:jungle_boat", - JungleChestBoat => "minecraft:jungle_chest_boat", - LeashKnot => "minecraft:leash_knot", - LightningBolt => "minecraft:lightning_bolt", - Llama => "minecraft:llama", - LlamaSpit => "minecraft:llama_spit", - MagmaCube => "minecraft:magma_cube", - MangroveBoat => "minecraft:mangrove_boat", - MangroveChestBoat => "minecraft:mangrove_chest_boat", - Mannequin => "minecraft:mannequin", - Marker => "minecraft:marker", - Minecart => "minecraft:minecart", - Mooshroom => "minecraft:mooshroom", - Mule => "minecraft:mule", - Nautilus => "minecraft:nautilus", - OakBoat => "minecraft:oak_boat", - OakChestBoat => "minecraft:oak_chest_boat", - Ocelot => "minecraft:ocelot", - OminousItemSpawner => "minecraft:ominous_item_spawner", - Painting => "minecraft:painting", - 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", - Piglin => "minecraft:piglin", - PiglinBrute => "minecraft:piglin_brute", - Pillager => "minecraft:pillager", - PolarBear => "minecraft:polar_bear", - SplashPotion => "minecraft:splash_potion", - LingeringPotion => "minecraft:lingering_potion", - Pufferfish => "minecraft:pufferfish", - Rabbit => "minecraft:rabbit", - Ravager => "minecraft:ravager", - Salmon => "minecraft:salmon", - Sheep => "minecraft:sheep", - Shulker => "minecraft:shulker", - ShulkerBullet => "minecraft:shulker_bullet", - Silverfish => "minecraft:silverfish", - Skeleton => "minecraft:skeleton", - SkeletonHorse => "minecraft:skeleton_horse", - Slime => "minecraft:slime", - SmallFireball => "minecraft:small_fireball", - Sniffer => "minecraft:sniffer", - Snowball => "minecraft:snowball", - SnowGolem => "minecraft:snow_golem", - SpawnerMinecart => "minecraft:spawner_minecart", - SpectralArrow => "minecraft:spectral_arrow", - Spider => "minecraft:spider", - SpruceBoat => "minecraft:spruce_boat", - SpruceChestBoat => "minecraft:spruce_chest_boat", - Squid => "minecraft:squid", - Stray => "minecraft:stray", - Strider => "minecraft:strider", - Tadpole => "minecraft:tadpole", - TextDisplay => "minecraft:text_display", - Tnt => "minecraft:tnt", - TntMinecart => "minecraft:tnt_minecart", - TraderLlama => "minecraft:trader_llama", - Trident => "minecraft:trident", - TropicalFish => "minecraft:tropical_fish", - Turtle => "minecraft:turtle", - Vex => "minecraft:vex", - Villager => "minecraft:villager", - Vindicator => "minecraft:vindicator", - WanderingTrader => "minecraft:wandering_trader", - Warden => "minecraft:warden", - WindCharge => "minecraft:wind_charge", - Witch => "minecraft:witch", - Wither => "minecraft:wither", - WitherSkeleton => "minecraft:wither_skeleton", - WitherSkull => "minecraft:wither_skull", - Wolf => "minecraft:wolf", - 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", - FishingBobber => "minecraft:fishing_bobber", -} -} - -registry! { -enum FloatProviderKind { - Constant => "minecraft:constant", - Uniform => "minecraft:uniform", - ClampedNormal => "minecraft:clamped_normal", - Trapezoid => "minecraft:trapezoid", -} -} - -registry! { -enum Fluid { - Empty => "minecraft:empty", - FlowingWater => "minecraft:flowing_water", - Water => "minecraft:water", - FlowingLava => "minecraft:flowing_lava", - Lava => "minecraft:lava", -} -} - -registry! { -enum GameEvent { - BlockActivate => "minecraft:block_activate", - BlockAttach => "minecraft:block_attach", - BlockChange => "minecraft:block_change", - BlockClose => "minecraft:block_close", - BlockDeactivate => "minecraft:block_deactivate", - BlockDestroy => "minecraft:block_destroy", - BlockDetach => "minecraft:block_detach", - BlockOpen => "minecraft:block_open", - BlockPlace => "minecraft:block_place", - ContainerClose => "minecraft:container_close", - ContainerOpen => "minecraft:container_open", - Drink => "minecraft:drink", - Eat => "minecraft:eat", - ElytraGlide => "minecraft:elytra_glide", - EntityDamage => "minecraft:entity_damage", - EntityDie => "minecraft:entity_die", - EntityDismount => "minecraft:entity_dismount", - EntityInteract => "minecraft:entity_interact", - EntityMount => "minecraft:entity_mount", - EntityPlace => "minecraft:entity_place", - EntityAction => "minecraft:entity_action", - Equip => "minecraft:equip", - Explode => "minecraft:explode", - Flap => "minecraft:flap", - FluidPickup => "minecraft:fluid_pickup", - FluidPlace => "minecraft:fluid_place", - HitGround => "minecraft:hit_ground", - InstrumentPlay => "minecraft:instrument_play", - ItemInteractFinish => "minecraft:item_interact_finish", - ItemInteractStart => "minecraft:item_interact_start", - JukeboxPlay => "minecraft:jukebox_play", - JukeboxStopPlay => "minecraft:jukebox_stop_play", - LightningStrike => "minecraft:lightning_strike", - NoteBlockPlay => "minecraft:note_block_play", - PrimeFuse => "minecraft:prime_fuse", - ProjectileLand => "minecraft:projectile_land", - ProjectileShoot => "minecraft:projectile_shoot", - SculkSensorTendrilsClicking => "minecraft:sculk_sensor_tendrils_clicking", - Shear => "minecraft:shear", - Shriek => "minecraft:shriek", - Splash => "minecraft:splash", - Step => "minecraft:step", - Swim => "minecraft:swim", - Teleport => "minecraft:teleport", - Unequip => "minecraft:unequip", - Resonate1 => "minecraft:resonate_1", - Resonate2 => "minecraft:resonate_2", - Resonate3 => "minecraft:resonate_3", - Resonate4 => "minecraft:resonate_4", - Resonate5 => "minecraft:resonate_5", - Resonate6 => "minecraft:resonate_6", - Resonate7 => "minecraft:resonate_7", - Resonate8 => "minecraft:resonate_8", - Resonate9 => "minecraft:resonate_9", - Resonate10 => "minecraft:resonate_10", - Resonate11 => "minecraft:resonate_11", - Resonate12 => "minecraft:resonate_12", - Resonate13 => "minecraft:resonate_13", - Resonate14 => "minecraft:resonate_14", - Resonate15 => "minecraft:resonate_15", -} -} - -registry! { -enum HeightProviderKind { - Constant => "minecraft:constant", - Uniform => "minecraft:uniform", - BiasedToBottom => "minecraft:biased_to_bottom", - VeryBiasedToBottom => "minecraft:very_biased_to_bottom", - Trapezoid => "minecraft:trapezoid", - WeightedList => "minecraft:weighted_list", -} -} - -registry! { -enum IntProviderKind { - Constant => "minecraft:constant", - Uniform => "minecraft:uniform", - BiasedToBottom => "minecraft:biased_to_bottom", - Clamped => "minecraft:clamped", - WeightedList => "minecraft:weighted_list", - ClampedNormal => "minecraft:clamped_normal", -} -} - -registry! { -/// Every type of item in the game. -/// -/// You might find it useful in some cases to check for categories of items -/// with [`azalea_registry::tags::items`](crate::tags::items), like this -/// -/// ``` -/// let item = azalea_registry::Item::OakLog; -/// let is_log = azalea_registry::tags::items::LOGS.contains(&item); -/// assert!(is_log); -/// ``` -enum Item { - Air => "minecraft:air", - Stone => "minecraft:stone", - Granite => "minecraft:granite", - PolishedGranite => "minecraft:polished_granite", - Diorite => "minecraft:diorite", - PolishedDiorite => "minecraft:polished_diorite", - Andesite => "minecraft:andesite", - PolishedAndesite => "minecraft:polished_andesite", - Deepslate => "minecraft:deepslate", - CobbledDeepslate => "minecraft:cobbled_deepslate", - PolishedDeepslate => "minecraft:polished_deepslate", - Calcite => "minecraft:calcite", - Tuff => "minecraft:tuff", - TuffSlab => "minecraft:tuff_slab", - TuffStairs => "minecraft:tuff_stairs", - TuffWall => "minecraft:tuff_wall", - ChiseledTuff => "minecraft:chiseled_tuff", - PolishedTuff => "minecraft:polished_tuff", - PolishedTuffSlab => "minecraft:polished_tuff_slab", - PolishedTuffStairs => "minecraft:polished_tuff_stairs", - PolishedTuffWall => "minecraft:polished_tuff_wall", - TuffBricks => "minecraft:tuff_bricks", - TuffBrickSlab => "minecraft:tuff_brick_slab", - TuffBrickStairs => "minecraft:tuff_brick_stairs", - TuffBrickWall => "minecraft:tuff_brick_wall", - ChiseledTuffBricks => "minecraft:chiseled_tuff_bricks", - DripstoneBlock => "minecraft:dripstone_block", - GrassBlock => "minecraft:grass_block", - Dirt => "minecraft:dirt", - CoarseDirt => "minecraft:coarse_dirt", - Podzol => "minecraft:podzol", - RootedDirt => "minecraft:rooted_dirt", - Mud => "minecraft:mud", - CrimsonNylium => "minecraft:crimson_nylium", - WarpedNylium => "minecraft:warped_nylium", - Cobblestone => "minecraft:cobblestone", - OakPlanks => "minecraft:oak_planks", - SprucePlanks => "minecraft:spruce_planks", - BirchPlanks => "minecraft:birch_planks", - JunglePlanks => "minecraft:jungle_planks", - AcaciaPlanks => "minecraft:acacia_planks", - CherryPlanks => "minecraft:cherry_planks", - DarkOakPlanks => "minecraft:dark_oak_planks", - PaleOakPlanks => "minecraft:pale_oak_planks", - MangrovePlanks => "minecraft:mangrove_planks", - BambooPlanks => "minecraft:bamboo_planks", - CrimsonPlanks => "minecraft:crimson_planks", - WarpedPlanks => "minecraft:warped_planks", - BambooMosaic => "minecraft:bamboo_mosaic", - OakSapling => "minecraft:oak_sapling", - SpruceSapling => "minecraft:spruce_sapling", - BirchSapling => "minecraft:birch_sapling", - JungleSapling => "minecraft:jungle_sapling", - AcaciaSapling => "minecraft:acacia_sapling", - CherrySapling => "minecraft:cherry_sapling", - DarkOakSapling => "minecraft:dark_oak_sapling", - PaleOakSapling => "minecraft:pale_oak_sapling", - MangrovePropagule => "minecraft:mangrove_propagule", - Bedrock => "minecraft:bedrock", - Sand => "minecraft:sand", - SuspiciousSand => "minecraft:suspicious_sand", - SuspiciousGravel => "minecraft:suspicious_gravel", - RedSand => "minecraft:red_sand", - Gravel => "minecraft:gravel", - CoalOre => "minecraft:coal_ore", - DeepslateCoalOre => "minecraft:deepslate_coal_ore", - IronOre => "minecraft:iron_ore", - DeepslateIronOre => "minecraft:deepslate_iron_ore", - CopperOre => "minecraft:copper_ore", - DeepslateCopperOre => "minecraft:deepslate_copper_ore", - GoldOre => "minecraft:gold_ore", - DeepslateGoldOre => "minecraft:deepslate_gold_ore", - RedstoneOre => "minecraft:redstone_ore", - DeepslateRedstoneOre => "minecraft:deepslate_redstone_ore", - EmeraldOre => "minecraft:emerald_ore", - DeepslateEmeraldOre => "minecraft:deepslate_emerald_ore", - LapisOre => "minecraft:lapis_ore", - DeepslateLapisOre => "minecraft:deepslate_lapis_ore", - DiamondOre => "minecraft:diamond_ore", - DeepslateDiamondOre => "minecraft:deepslate_diamond_ore", - NetherGoldOre => "minecraft:nether_gold_ore", - NetherQuartzOre => "minecraft:nether_quartz_ore", - AncientDebris => "minecraft:ancient_debris", - CoalBlock => "minecraft:coal_block", - RawIronBlock => "minecraft:raw_iron_block", - RawCopperBlock => "minecraft:raw_copper_block", - RawGoldBlock => "minecraft:raw_gold_block", - HeavyCore => "minecraft:heavy_core", - AmethystBlock => "minecraft:amethyst_block", - BuddingAmethyst => "minecraft:budding_amethyst", - IronBlock => "minecraft:iron_block", - CopperBlock => "minecraft:copper_block", - GoldBlock => "minecraft:gold_block", - DiamondBlock => "minecraft:diamond_block", - NetheriteBlock => "minecraft:netherite_block", - ExposedCopper => "minecraft:exposed_copper", - WeatheredCopper => "minecraft:weathered_copper", - OxidizedCopper => "minecraft:oxidized_copper", - ChiseledCopper => "minecraft:chiseled_copper", - ExposedChiseledCopper => "minecraft:exposed_chiseled_copper", - WeatheredChiseledCopper => "minecraft:weathered_chiseled_copper", - OxidizedChiseledCopper => "minecraft:oxidized_chiseled_copper", - CutCopper => "minecraft:cut_copper", - ExposedCutCopper => "minecraft:exposed_cut_copper", - WeatheredCutCopper => "minecraft:weathered_cut_copper", - OxidizedCutCopper => "minecraft:oxidized_cut_copper", - CutCopperStairs => "minecraft:cut_copper_stairs", - ExposedCutCopperStairs => "minecraft:exposed_cut_copper_stairs", - WeatheredCutCopperStairs => "minecraft:weathered_cut_copper_stairs", - OxidizedCutCopperStairs => "minecraft:oxidized_cut_copper_stairs", - CutCopperSlab => "minecraft:cut_copper_slab", - ExposedCutCopperSlab => "minecraft:exposed_cut_copper_slab", - WeatheredCutCopperSlab => "minecraft:weathered_cut_copper_slab", - OxidizedCutCopperSlab => "minecraft:oxidized_cut_copper_slab", - WaxedCopperBlock => "minecraft:waxed_copper_block", - WaxedExposedCopper => "minecraft:waxed_exposed_copper", - WaxedWeatheredCopper => "minecraft:waxed_weathered_copper", - WaxedOxidizedCopper => "minecraft:waxed_oxidized_copper", - WaxedChiseledCopper => "minecraft:waxed_chiseled_copper", - WaxedExposedChiseledCopper => "minecraft:waxed_exposed_chiseled_copper", - WaxedWeatheredChiseledCopper => "minecraft:waxed_weathered_chiseled_copper", - WaxedOxidizedChiseledCopper => "minecraft:waxed_oxidized_chiseled_copper", - WaxedCutCopper => "minecraft:waxed_cut_copper", - WaxedExposedCutCopper => "minecraft:waxed_exposed_cut_copper", - WaxedWeatheredCutCopper => "minecraft:waxed_weathered_cut_copper", - WaxedOxidizedCutCopper => "minecraft:waxed_oxidized_cut_copper", - WaxedCutCopperStairs => "minecraft:waxed_cut_copper_stairs", - WaxedExposedCutCopperStairs => "minecraft:waxed_exposed_cut_copper_stairs", - WaxedWeatheredCutCopperStairs => "minecraft:waxed_weathered_cut_copper_stairs", - WaxedOxidizedCutCopperStairs => "minecraft:waxed_oxidized_cut_copper_stairs", - WaxedCutCopperSlab => "minecraft:waxed_cut_copper_slab", - WaxedExposedCutCopperSlab => "minecraft:waxed_exposed_cut_copper_slab", - WaxedWeatheredCutCopperSlab => "minecraft:waxed_weathered_cut_copper_slab", - WaxedOxidizedCutCopperSlab => "minecraft:waxed_oxidized_cut_copper_slab", - OakLog => "minecraft:oak_log", - SpruceLog => "minecraft:spruce_log", - BirchLog => "minecraft:birch_log", - JungleLog => "minecraft:jungle_log", - AcaciaLog => "minecraft:acacia_log", - CherryLog => "minecraft:cherry_log", - PaleOakLog => "minecraft:pale_oak_log", - DarkOakLog => "minecraft:dark_oak_log", - MangroveLog => "minecraft:mangrove_log", - MangroveRoots => "minecraft:mangrove_roots", - MuddyMangroveRoots => "minecraft:muddy_mangrove_roots", - CrimsonStem => "minecraft:crimson_stem", - WarpedStem => "minecraft:warped_stem", - BambooBlock => "minecraft:bamboo_block", - StrippedOakLog => "minecraft:stripped_oak_log", - StrippedSpruceLog => "minecraft:stripped_spruce_log", - StrippedBirchLog => "minecraft:stripped_birch_log", - StrippedJungleLog => "minecraft:stripped_jungle_log", - StrippedAcaciaLog => "minecraft:stripped_acacia_log", - StrippedCherryLog => "minecraft:stripped_cherry_log", - StrippedDarkOakLog => "minecraft:stripped_dark_oak_log", - StrippedPaleOakLog => "minecraft:stripped_pale_oak_log", - StrippedMangroveLog => "minecraft:stripped_mangrove_log", - StrippedCrimsonStem => "minecraft:stripped_crimson_stem", - StrippedWarpedStem => "minecraft:stripped_warped_stem", - StrippedOakWood => "minecraft:stripped_oak_wood", - StrippedSpruceWood => "minecraft:stripped_spruce_wood", - StrippedBirchWood => "minecraft:stripped_birch_wood", - StrippedJungleWood => "minecraft:stripped_jungle_wood", - StrippedAcaciaWood => "minecraft:stripped_acacia_wood", - StrippedCherryWood => "minecraft:stripped_cherry_wood", - StrippedDarkOakWood => "minecraft:stripped_dark_oak_wood", - StrippedPaleOakWood => "minecraft:stripped_pale_oak_wood", - StrippedMangroveWood => "minecraft:stripped_mangrove_wood", - StrippedCrimsonHyphae => "minecraft:stripped_crimson_hyphae", - StrippedWarpedHyphae => "minecraft:stripped_warped_hyphae", - StrippedBambooBlock => "minecraft:stripped_bamboo_block", - OakWood => "minecraft:oak_wood", - SpruceWood => "minecraft:spruce_wood", - BirchWood => "minecraft:birch_wood", - JungleWood => "minecraft:jungle_wood", - AcaciaWood => "minecraft:acacia_wood", - CherryWood => "minecraft:cherry_wood", - PaleOakWood => "minecraft:pale_oak_wood", - DarkOakWood => "minecraft:dark_oak_wood", - MangroveWood => "minecraft:mangrove_wood", - CrimsonHyphae => "minecraft:crimson_hyphae", - WarpedHyphae => "minecraft:warped_hyphae", - OakLeaves => "minecraft:oak_leaves", - SpruceLeaves => "minecraft:spruce_leaves", - BirchLeaves => "minecraft:birch_leaves", - JungleLeaves => "minecraft:jungle_leaves", - AcaciaLeaves => "minecraft:acacia_leaves", - CherryLeaves => "minecraft:cherry_leaves", - DarkOakLeaves => "minecraft:dark_oak_leaves", - PaleOakLeaves => "minecraft:pale_oak_leaves", - MangroveLeaves => "minecraft:mangrove_leaves", - AzaleaLeaves => "minecraft:azalea_leaves", - FloweringAzaleaLeaves => "minecraft:flowering_azalea_leaves", - Sponge => "minecraft:sponge", - WetSponge => "minecraft:wet_sponge", - Glass => "minecraft:glass", - TintedGlass => "minecraft:tinted_glass", - LapisBlock => "minecraft:lapis_block", - Sandstone => "minecraft:sandstone", - ChiseledSandstone => "minecraft:chiseled_sandstone", - CutSandstone => "minecraft:cut_sandstone", - Cobweb => "minecraft:cobweb", - ShortGrass => "minecraft:short_grass", - Fern => "minecraft:fern", - Bush => "minecraft:bush", - Azalea => "minecraft:azalea", - FloweringAzalea => "minecraft:flowering_azalea", - DeadBush => "minecraft:dead_bush", - FireflyBush => "minecraft:firefly_bush", - ShortDryGrass => "minecraft:short_dry_grass", - TallDryGrass => "minecraft:tall_dry_grass", - Seagrass => "minecraft:seagrass", - SeaPickle => "minecraft:sea_pickle", - WhiteWool => "minecraft:white_wool", - OrangeWool => "minecraft:orange_wool", - MagentaWool => "minecraft:magenta_wool", - LightBlueWool => "minecraft:light_blue_wool", - YellowWool => "minecraft:yellow_wool", - LimeWool => "minecraft:lime_wool", - PinkWool => "minecraft:pink_wool", - GrayWool => "minecraft:gray_wool", - LightGrayWool => "minecraft:light_gray_wool", - CyanWool => "minecraft:cyan_wool", - PurpleWool => "minecraft:purple_wool", - BlueWool => "minecraft:blue_wool", - BrownWool => "minecraft:brown_wool", - GreenWool => "minecraft:green_wool", - RedWool => "minecraft:red_wool", - BlackWool => "minecraft:black_wool", - Dandelion => "minecraft:dandelion", - OpenEyeblossom => "minecraft:open_eyeblossom", - ClosedEyeblossom => "minecraft:closed_eyeblossom", - Poppy => "minecraft:poppy", - BlueOrchid => "minecraft:blue_orchid", - Allium => "minecraft:allium", - AzureBluet => "minecraft:azure_bluet", - RedTulip => "minecraft:red_tulip", - OrangeTulip => "minecraft:orange_tulip", - WhiteTulip => "minecraft:white_tulip", - PinkTulip => "minecraft:pink_tulip", - OxeyeDaisy => "minecraft:oxeye_daisy", - Cornflower => "minecraft:cornflower", - LilyOfTheValley => "minecraft:lily_of_the_valley", - WitherRose => "minecraft:wither_rose", - Torchflower => "minecraft:torchflower", - PitcherPlant => "minecraft:pitcher_plant", - SporeBlossom => "minecraft:spore_blossom", - BrownMushroom => "minecraft:brown_mushroom", - RedMushroom => "minecraft:red_mushroom", - CrimsonFungus => "minecraft:crimson_fungus", - WarpedFungus => "minecraft:warped_fungus", - CrimsonRoots => "minecraft:crimson_roots", - WarpedRoots => "minecraft:warped_roots", - NetherSprouts => "minecraft:nether_sprouts", - WeepingVines => "minecraft:weeping_vines", - TwistingVines => "minecraft:twisting_vines", - SugarCane => "minecraft:sugar_cane", - Kelp => "minecraft:kelp", - PinkPetals => "minecraft:pink_petals", - Wildflowers => "minecraft:wildflowers", - LeafLitter => "minecraft:leaf_litter", - MossCarpet => "minecraft:moss_carpet", - MossBlock => "minecraft:moss_block", - PaleMossCarpet => "minecraft:pale_moss_carpet", - PaleHangingMoss => "minecraft:pale_hanging_moss", - PaleMossBlock => "minecraft:pale_moss_block", - HangingRoots => "minecraft:hanging_roots", - BigDripleaf => "minecraft:big_dripleaf", - SmallDripleaf => "minecraft:small_dripleaf", - Bamboo => "minecraft:bamboo", - OakSlab => "minecraft:oak_slab", - SpruceSlab => "minecraft:spruce_slab", - BirchSlab => "minecraft:birch_slab", - JungleSlab => "minecraft:jungle_slab", - AcaciaSlab => "minecraft:acacia_slab", - CherrySlab => "minecraft:cherry_slab", - DarkOakSlab => "minecraft:dark_oak_slab", - PaleOakSlab => "minecraft:pale_oak_slab", - MangroveSlab => "minecraft:mangrove_slab", - BambooSlab => "minecraft:bamboo_slab", - BambooMosaicSlab => "minecraft:bamboo_mosaic_slab", - CrimsonSlab => "minecraft:crimson_slab", - WarpedSlab => "minecraft:warped_slab", - StoneSlab => "minecraft:stone_slab", - SmoothStoneSlab => "minecraft:smooth_stone_slab", - SandstoneSlab => "minecraft:sandstone_slab", - CutSandstoneSlab => "minecraft:cut_sandstone_slab", - PetrifiedOakSlab => "minecraft:petrified_oak_slab", - CobblestoneSlab => "minecraft:cobblestone_slab", - BrickSlab => "minecraft:brick_slab", - StoneBrickSlab => "minecraft:stone_brick_slab", - MudBrickSlab => "minecraft:mud_brick_slab", - NetherBrickSlab => "minecraft:nether_brick_slab", - QuartzSlab => "minecraft:quartz_slab", - RedSandstoneSlab => "minecraft:red_sandstone_slab", - CutRedSandstoneSlab => "minecraft:cut_red_sandstone_slab", - PurpurSlab => "minecraft:purpur_slab", - PrismarineSlab => "minecraft:prismarine_slab", - PrismarineBrickSlab => "minecraft:prismarine_brick_slab", - DarkPrismarineSlab => "minecraft:dark_prismarine_slab", - SmoothQuartz => "minecraft:smooth_quartz", - SmoothRedSandstone => "minecraft:smooth_red_sandstone", - SmoothSandstone => "minecraft:smooth_sandstone", - SmoothStone => "minecraft:smooth_stone", - Bricks => "minecraft:bricks", - AcaciaShelf => "minecraft:acacia_shelf", - BambooShelf => "minecraft:bamboo_shelf", - BirchShelf => "minecraft:birch_shelf", - CherryShelf => "minecraft:cherry_shelf", - CrimsonShelf => "minecraft:crimson_shelf", - DarkOakShelf => "minecraft:dark_oak_shelf", - JungleShelf => "minecraft:jungle_shelf", - MangroveShelf => "minecraft:mangrove_shelf", - OakShelf => "minecraft:oak_shelf", - PaleOakShelf => "minecraft:pale_oak_shelf", - SpruceShelf => "minecraft:spruce_shelf", - WarpedShelf => "minecraft:warped_shelf", - Bookshelf => "minecraft:bookshelf", - ChiseledBookshelf => "minecraft:chiseled_bookshelf", - DecoratedPot => "minecraft:decorated_pot", - MossyCobblestone => "minecraft:mossy_cobblestone", - Obsidian => "minecraft:obsidian", - Torch => "minecraft:torch", - EndRod => "minecraft:end_rod", - ChorusPlant => "minecraft:chorus_plant", - ChorusFlower => "minecraft:chorus_flower", - PurpurBlock => "minecraft:purpur_block", - PurpurPillar => "minecraft:purpur_pillar", - PurpurStairs => "minecraft:purpur_stairs", - Spawner => "minecraft:spawner", - CreakingHeart => "minecraft:creaking_heart", - Chest => "minecraft:chest", - CraftingTable => "minecraft:crafting_table", - Farmland => "minecraft:farmland", - Furnace => "minecraft:furnace", - Ladder => "minecraft:ladder", - CobblestoneStairs => "minecraft:cobblestone_stairs", - Snow => "minecraft:snow", - Ice => "minecraft:ice", - SnowBlock => "minecraft:snow_block", - Cactus => "minecraft:cactus", - CactusFlower => "minecraft:cactus_flower", - Clay => "minecraft:clay", - Jukebox => "minecraft:jukebox", - OakFence => "minecraft:oak_fence", - SpruceFence => "minecraft:spruce_fence", - BirchFence => "minecraft:birch_fence", - JungleFence => "minecraft:jungle_fence", - AcaciaFence => "minecraft:acacia_fence", - CherryFence => "minecraft:cherry_fence", - DarkOakFence => "minecraft:dark_oak_fence", - PaleOakFence => "minecraft:pale_oak_fence", - MangroveFence => "minecraft:mangrove_fence", - BambooFence => "minecraft:bamboo_fence", - CrimsonFence => "minecraft:crimson_fence", - WarpedFence => "minecraft:warped_fence", - Pumpkin => "minecraft:pumpkin", - CarvedPumpkin => "minecraft:carved_pumpkin", - JackOLantern => "minecraft:jack_o_lantern", - Netherrack => "minecraft:netherrack", - SoulSand => "minecraft:soul_sand", - SoulSoil => "minecraft:soul_soil", - Basalt => "minecraft:basalt", - PolishedBasalt => "minecraft:polished_basalt", - SmoothBasalt => "minecraft:smooth_basalt", - SoulTorch => "minecraft:soul_torch", - CopperTorch => "minecraft:copper_torch", - Glowstone => "minecraft:glowstone", - InfestedStone => "minecraft:infested_stone", - InfestedCobblestone => "minecraft:infested_cobblestone", - InfestedStoneBricks => "minecraft:infested_stone_bricks", - InfestedMossyStoneBricks => "minecraft:infested_mossy_stone_bricks", - InfestedCrackedStoneBricks => "minecraft:infested_cracked_stone_bricks", - InfestedChiseledStoneBricks => "minecraft:infested_chiseled_stone_bricks", - InfestedDeepslate => "minecraft:infested_deepslate", - StoneBricks => "minecraft:stone_bricks", - MossyStoneBricks => "minecraft:mossy_stone_bricks", - CrackedStoneBricks => "minecraft:cracked_stone_bricks", - ChiseledStoneBricks => "minecraft:chiseled_stone_bricks", - PackedMud => "minecraft:packed_mud", - MudBricks => "minecraft:mud_bricks", - DeepslateBricks => "minecraft:deepslate_bricks", - CrackedDeepslateBricks => "minecraft:cracked_deepslate_bricks", - DeepslateTiles => "minecraft:deepslate_tiles", - CrackedDeepslateTiles => "minecraft:cracked_deepslate_tiles", - ChiseledDeepslate => "minecraft:chiseled_deepslate", - ReinforcedDeepslate => "minecraft:reinforced_deepslate", - BrownMushroomBlock => "minecraft:brown_mushroom_block", - RedMushroomBlock => "minecraft:red_mushroom_block", - MushroomStem => "minecraft:mushroom_stem", - IronBars => "minecraft:iron_bars", - CopperBars => "minecraft:copper_bars", - ExposedCopperBars => "minecraft:exposed_copper_bars", - WeatheredCopperBars => "minecraft:weathered_copper_bars", - OxidizedCopperBars => "minecraft:oxidized_copper_bars", - WaxedCopperBars => "minecraft:waxed_copper_bars", - WaxedExposedCopperBars => "minecraft:waxed_exposed_copper_bars", - WaxedWeatheredCopperBars => "minecraft:waxed_weathered_copper_bars", - WaxedOxidizedCopperBars => "minecraft:waxed_oxidized_copper_bars", - IronChain => "minecraft:iron_chain", - CopperChain => "minecraft:copper_chain", - ExposedCopperChain => "minecraft:exposed_copper_chain", - WeatheredCopperChain => "minecraft:weathered_copper_chain", - OxidizedCopperChain => "minecraft:oxidized_copper_chain", - WaxedCopperChain => "minecraft:waxed_copper_chain", - WaxedExposedCopperChain => "minecraft:waxed_exposed_copper_chain", - WaxedWeatheredCopperChain => "minecraft:waxed_weathered_copper_chain", - WaxedOxidizedCopperChain => "minecraft:waxed_oxidized_copper_chain", - GlassPane => "minecraft:glass_pane", - Melon => "minecraft:melon", - Vine => "minecraft:vine", - GlowLichen => "minecraft:glow_lichen", - ResinClump => "minecraft:resin_clump", - ResinBlock => "minecraft:resin_block", - ResinBricks => "minecraft:resin_bricks", - ResinBrickStairs => "minecraft:resin_brick_stairs", - ResinBrickSlab => "minecraft:resin_brick_slab", - ResinBrickWall => "minecraft:resin_brick_wall", - ChiseledResinBricks => "minecraft:chiseled_resin_bricks", - BrickStairs => "minecraft:brick_stairs", - StoneBrickStairs => "minecraft:stone_brick_stairs", - MudBrickStairs => "minecraft:mud_brick_stairs", - Mycelium => "minecraft:mycelium", - LilyPad => "minecraft:lily_pad", - NetherBricks => "minecraft:nether_bricks", - CrackedNetherBricks => "minecraft:cracked_nether_bricks", - ChiseledNetherBricks => "minecraft:chiseled_nether_bricks", - NetherBrickFence => "minecraft:nether_brick_fence", - NetherBrickStairs => "minecraft:nether_brick_stairs", - Sculk => "minecraft:sculk", - SculkVein => "minecraft:sculk_vein", - SculkCatalyst => "minecraft:sculk_catalyst", - SculkShrieker => "minecraft:sculk_shrieker", - EnchantingTable => "minecraft:enchanting_table", - EndPortalFrame => "minecraft:end_portal_frame", - EndStone => "minecraft:end_stone", - EndStoneBricks => "minecraft:end_stone_bricks", - DragonEgg => "minecraft:dragon_egg", - SandstoneStairs => "minecraft:sandstone_stairs", - EnderChest => "minecraft:ender_chest", - EmeraldBlock => "minecraft:emerald_block", - OakStairs => "minecraft:oak_stairs", - SpruceStairs => "minecraft:spruce_stairs", - BirchStairs => "minecraft:birch_stairs", - JungleStairs => "minecraft:jungle_stairs", - AcaciaStairs => "minecraft:acacia_stairs", - CherryStairs => "minecraft:cherry_stairs", - DarkOakStairs => "minecraft:dark_oak_stairs", - PaleOakStairs => "minecraft:pale_oak_stairs", - MangroveStairs => "minecraft:mangrove_stairs", - BambooStairs => "minecraft:bamboo_stairs", - BambooMosaicStairs => "minecraft:bamboo_mosaic_stairs", - CrimsonStairs => "minecraft:crimson_stairs", - WarpedStairs => "minecraft:warped_stairs", - CommandBlock => "minecraft:command_block", - Beacon => "minecraft:beacon", - CobblestoneWall => "minecraft:cobblestone_wall", - MossyCobblestoneWall => "minecraft:mossy_cobblestone_wall", - BrickWall => "minecraft:brick_wall", - PrismarineWall => "minecraft:prismarine_wall", - RedSandstoneWall => "minecraft:red_sandstone_wall", - MossyStoneBrickWall => "minecraft:mossy_stone_brick_wall", - GraniteWall => "minecraft:granite_wall", - StoneBrickWall => "minecraft:stone_brick_wall", - MudBrickWall => "minecraft:mud_brick_wall", - NetherBrickWall => "minecraft:nether_brick_wall", - AndesiteWall => "minecraft:andesite_wall", - RedNetherBrickWall => "minecraft:red_nether_brick_wall", - SandstoneWall => "minecraft:sandstone_wall", - EndStoneBrickWall => "minecraft:end_stone_brick_wall", - DioriteWall => "minecraft:diorite_wall", - BlackstoneWall => "minecraft:blackstone_wall", - PolishedBlackstoneWall => "minecraft:polished_blackstone_wall", - PolishedBlackstoneBrickWall => "minecraft:polished_blackstone_brick_wall", - CobbledDeepslateWall => "minecraft:cobbled_deepslate_wall", - PolishedDeepslateWall => "minecraft:polished_deepslate_wall", - DeepslateBrickWall => "minecraft:deepslate_brick_wall", - DeepslateTileWall => "minecraft:deepslate_tile_wall", - Anvil => "minecraft:anvil", - ChippedAnvil => "minecraft:chipped_anvil", - DamagedAnvil => "minecraft:damaged_anvil", - ChiseledQuartzBlock => "minecraft:chiseled_quartz_block", - QuartzBlock => "minecraft:quartz_block", - QuartzBricks => "minecraft:quartz_bricks", - QuartzPillar => "minecraft:quartz_pillar", - QuartzStairs => "minecraft:quartz_stairs", - WhiteTerracotta => "minecraft:white_terracotta", - OrangeTerracotta => "minecraft:orange_terracotta", - MagentaTerracotta => "minecraft:magenta_terracotta", - LightBlueTerracotta => "minecraft:light_blue_terracotta", - YellowTerracotta => "minecraft:yellow_terracotta", - LimeTerracotta => "minecraft:lime_terracotta", - PinkTerracotta => "minecraft:pink_terracotta", - GrayTerracotta => "minecraft:gray_terracotta", - LightGrayTerracotta => "minecraft:light_gray_terracotta", - CyanTerracotta => "minecraft:cyan_terracotta", - PurpleTerracotta => "minecraft:purple_terracotta", - BlueTerracotta => "minecraft:blue_terracotta", - BrownTerracotta => "minecraft:brown_terracotta", - GreenTerracotta => "minecraft:green_terracotta", - RedTerracotta => "minecraft:red_terracotta", - BlackTerracotta => "minecraft:black_terracotta", - Barrier => "minecraft:barrier", - Light => "minecraft:light", - HayBlock => "minecraft:hay_block", - WhiteCarpet => "minecraft:white_carpet", - OrangeCarpet => "minecraft:orange_carpet", - MagentaCarpet => "minecraft:magenta_carpet", - LightBlueCarpet => "minecraft:light_blue_carpet", - YellowCarpet => "minecraft:yellow_carpet", - LimeCarpet => "minecraft:lime_carpet", - PinkCarpet => "minecraft:pink_carpet", - GrayCarpet => "minecraft:gray_carpet", - LightGrayCarpet => "minecraft:light_gray_carpet", - CyanCarpet => "minecraft:cyan_carpet", - PurpleCarpet => "minecraft:purple_carpet", - BlueCarpet => "minecraft:blue_carpet", - BrownCarpet => "minecraft:brown_carpet", - GreenCarpet => "minecraft:green_carpet", - RedCarpet => "minecraft:red_carpet", - BlackCarpet => "minecraft:black_carpet", - Terracotta => "minecraft:terracotta", - PackedIce => "minecraft:packed_ice", - DirtPath => "minecraft:dirt_path", - Sunflower => "minecraft:sunflower", - Lilac => "minecraft:lilac", - RoseBush => "minecraft:rose_bush", - Peony => "minecraft:peony", - TallGrass => "minecraft:tall_grass", - LargeFern => "minecraft:large_fern", - WhiteStainedGlass => "minecraft:white_stained_glass", - OrangeStainedGlass => "minecraft:orange_stained_glass", - MagentaStainedGlass => "minecraft:magenta_stained_glass", - LightBlueStainedGlass => "minecraft:light_blue_stained_glass", - YellowStainedGlass => "minecraft:yellow_stained_glass", - LimeStainedGlass => "minecraft:lime_stained_glass", - PinkStainedGlass => "minecraft:pink_stained_glass", - GrayStainedGlass => "minecraft:gray_stained_glass", - LightGrayStainedGlass => "minecraft:light_gray_stained_glass", - CyanStainedGlass => "minecraft:cyan_stained_glass", - PurpleStainedGlass => "minecraft:purple_stained_glass", - BlueStainedGlass => "minecraft:blue_stained_glass", - BrownStainedGlass => "minecraft:brown_stained_glass", - GreenStainedGlass => "minecraft:green_stained_glass", - RedStainedGlass => "minecraft:red_stained_glass", - BlackStainedGlass => "minecraft:black_stained_glass", - WhiteStainedGlassPane => "minecraft:white_stained_glass_pane", - OrangeStainedGlassPane => "minecraft:orange_stained_glass_pane", - MagentaStainedGlassPane => "minecraft:magenta_stained_glass_pane", - LightBlueStainedGlassPane => "minecraft:light_blue_stained_glass_pane", - YellowStainedGlassPane => "minecraft:yellow_stained_glass_pane", - LimeStainedGlassPane => "minecraft:lime_stained_glass_pane", - PinkStainedGlassPane => "minecraft:pink_stained_glass_pane", - GrayStainedGlassPane => "minecraft:gray_stained_glass_pane", - LightGrayStainedGlassPane => "minecraft:light_gray_stained_glass_pane", - CyanStainedGlassPane => "minecraft:cyan_stained_glass_pane", - PurpleStainedGlassPane => "minecraft:purple_stained_glass_pane", - BlueStainedGlassPane => "minecraft:blue_stained_glass_pane", - BrownStainedGlassPane => "minecraft:brown_stained_glass_pane", - GreenStainedGlassPane => "minecraft:green_stained_glass_pane", - RedStainedGlassPane => "minecraft:red_stained_glass_pane", - BlackStainedGlassPane => "minecraft:black_stained_glass_pane", - Prismarine => "minecraft:prismarine", - PrismarineBricks => "minecraft:prismarine_bricks", - DarkPrismarine => "minecraft:dark_prismarine", - PrismarineStairs => "minecraft:prismarine_stairs", - PrismarineBrickStairs => "minecraft:prismarine_brick_stairs", - DarkPrismarineStairs => "minecraft:dark_prismarine_stairs", - SeaLantern => "minecraft:sea_lantern", - RedSandstone => "minecraft:red_sandstone", - ChiseledRedSandstone => "minecraft:chiseled_red_sandstone", - CutRedSandstone => "minecraft:cut_red_sandstone", - RedSandstoneStairs => "minecraft:red_sandstone_stairs", - RepeatingCommandBlock => "minecraft:repeating_command_block", - ChainCommandBlock => "minecraft:chain_command_block", - MagmaBlock => "minecraft:magma_block", - NetherWartBlock => "minecraft:nether_wart_block", - WarpedWartBlock => "minecraft:warped_wart_block", - RedNetherBricks => "minecraft:red_nether_bricks", - BoneBlock => "minecraft:bone_block", - StructureVoid => "minecraft:structure_void", - ShulkerBox => "minecraft:shulker_box", - WhiteShulkerBox => "minecraft:white_shulker_box", - OrangeShulkerBox => "minecraft:orange_shulker_box", - MagentaShulkerBox => "minecraft:magenta_shulker_box", - LightBlueShulkerBox => "minecraft:light_blue_shulker_box", - YellowShulkerBox => "minecraft:yellow_shulker_box", - LimeShulkerBox => "minecraft:lime_shulker_box", - PinkShulkerBox => "minecraft:pink_shulker_box", - GrayShulkerBox => "minecraft:gray_shulker_box", - LightGrayShulkerBox => "minecraft:light_gray_shulker_box", - CyanShulkerBox => "minecraft:cyan_shulker_box", - PurpleShulkerBox => "minecraft:purple_shulker_box", - BlueShulkerBox => "minecraft:blue_shulker_box", - BrownShulkerBox => "minecraft:brown_shulker_box", - GreenShulkerBox => "minecraft:green_shulker_box", - RedShulkerBox => "minecraft:red_shulker_box", - BlackShulkerBox => "minecraft:black_shulker_box", - WhiteGlazedTerracotta => "minecraft:white_glazed_terracotta", - OrangeGlazedTerracotta => "minecraft:orange_glazed_terracotta", - MagentaGlazedTerracotta => "minecraft:magenta_glazed_terracotta", - LightBlueGlazedTerracotta => "minecraft:light_blue_glazed_terracotta", - YellowGlazedTerracotta => "minecraft:yellow_glazed_terracotta", - LimeGlazedTerracotta => "minecraft:lime_glazed_terracotta", - PinkGlazedTerracotta => "minecraft:pink_glazed_terracotta", - GrayGlazedTerracotta => "minecraft:gray_glazed_terracotta", - LightGrayGlazedTerracotta => "minecraft:light_gray_glazed_terracotta", - CyanGlazedTerracotta => "minecraft:cyan_glazed_terracotta", - PurpleGlazedTerracotta => "minecraft:purple_glazed_terracotta", - BlueGlazedTerracotta => "minecraft:blue_glazed_terracotta", - BrownGlazedTerracotta => "minecraft:brown_glazed_terracotta", - GreenGlazedTerracotta => "minecraft:green_glazed_terracotta", - RedGlazedTerracotta => "minecraft:red_glazed_terracotta", - BlackGlazedTerracotta => "minecraft:black_glazed_terracotta", - WhiteConcrete => "minecraft:white_concrete", - OrangeConcrete => "minecraft:orange_concrete", - MagentaConcrete => "minecraft:magenta_concrete", - LightBlueConcrete => "minecraft:light_blue_concrete", - YellowConcrete => "minecraft:yellow_concrete", - LimeConcrete => "minecraft:lime_concrete", - PinkConcrete => "minecraft:pink_concrete", - GrayConcrete => "minecraft:gray_concrete", - LightGrayConcrete => "minecraft:light_gray_concrete", - CyanConcrete => "minecraft:cyan_concrete", - PurpleConcrete => "minecraft:purple_concrete", - BlueConcrete => "minecraft:blue_concrete", - BrownConcrete => "minecraft:brown_concrete", - GreenConcrete => "minecraft:green_concrete", - RedConcrete => "minecraft:red_concrete", - BlackConcrete => "minecraft:black_concrete", - WhiteConcretePowder => "minecraft:white_concrete_powder", - OrangeConcretePowder => "minecraft:orange_concrete_powder", - MagentaConcretePowder => "minecraft:magenta_concrete_powder", - LightBlueConcretePowder => "minecraft:light_blue_concrete_powder", - YellowConcretePowder => "minecraft:yellow_concrete_powder", - LimeConcretePowder => "minecraft:lime_concrete_powder", - PinkConcretePowder => "minecraft:pink_concrete_powder", - GrayConcretePowder => "minecraft:gray_concrete_powder", - LightGrayConcretePowder => "minecraft:light_gray_concrete_powder", - CyanConcretePowder => "minecraft:cyan_concrete_powder", - PurpleConcretePowder => "minecraft:purple_concrete_powder", - BlueConcretePowder => "minecraft:blue_concrete_powder", - BrownConcretePowder => "minecraft:brown_concrete_powder", - GreenConcretePowder => "minecraft:green_concrete_powder", - RedConcretePowder => "minecraft:red_concrete_powder", - BlackConcretePowder => "minecraft:black_concrete_powder", - TurtleEgg => "minecraft:turtle_egg", - SnifferEgg => "minecraft:sniffer_egg", - DriedGhast => "minecraft:dried_ghast", - DeadTubeCoralBlock => "minecraft:dead_tube_coral_block", - DeadBrainCoralBlock => "minecraft:dead_brain_coral_block", - DeadBubbleCoralBlock => "minecraft:dead_bubble_coral_block", - DeadFireCoralBlock => "minecraft:dead_fire_coral_block", - DeadHornCoralBlock => "minecraft:dead_horn_coral_block", - TubeCoralBlock => "minecraft:tube_coral_block", - BrainCoralBlock => "minecraft:brain_coral_block", - BubbleCoralBlock => "minecraft:bubble_coral_block", - FireCoralBlock => "minecraft:fire_coral_block", - HornCoralBlock => "minecraft:horn_coral_block", - TubeCoral => "minecraft:tube_coral", - BrainCoral => "minecraft:brain_coral", - BubbleCoral => "minecraft:bubble_coral", - FireCoral => "minecraft:fire_coral", - HornCoral => "minecraft:horn_coral", - DeadBrainCoral => "minecraft:dead_brain_coral", - DeadBubbleCoral => "minecraft:dead_bubble_coral", - DeadFireCoral => "minecraft:dead_fire_coral", - DeadHornCoral => "minecraft:dead_horn_coral", - DeadTubeCoral => "minecraft:dead_tube_coral", - TubeCoralFan => "minecraft:tube_coral_fan", - BrainCoralFan => "minecraft:brain_coral_fan", - BubbleCoralFan => "minecraft:bubble_coral_fan", - FireCoralFan => "minecraft:fire_coral_fan", - HornCoralFan => "minecraft:horn_coral_fan", - DeadTubeCoralFan => "minecraft:dead_tube_coral_fan", - DeadBrainCoralFan => "minecraft:dead_brain_coral_fan", - DeadBubbleCoralFan => "minecraft:dead_bubble_coral_fan", - DeadFireCoralFan => "minecraft:dead_fire_coral_fan", - DeadHornCoralFan => "minecraft:dead_horn_coral_fan", - BlueIce => "minecraft:blue_ice", - Conduit => "minecraft:conduit", - PolishedGraniteStairs => "minecraft:polished_granite_stairs", - SmoothRedSandstoneStairs => "minecraft:smooth_red_sandstone_stairs", - MossyStoneBrickStairs => "minecraft:mossy_stone_brick_stairs", - PolishedDioriteStairs => "minecraft:polished_diorite_stairs", - MossyCobblestoneStairs => "minecraft:mossy_cobblestone_stairs", - EndStoneBrickStairs => "minecraft:end_stone_brick_stairs", - StoneStairs => "minecraft:stone_stairs", - SmoothSandstoneStairs => "minecraft:smooth_sandstone_stairs", - SmoothQuartzStairs => "minecraft:smooth_quartz_stairs", - GraniteStairs => "minecraft:granite_stairs", - AndesiteStairs => "minecraft:andesite_stairs", - RedNetherBrickStairs => "minecraft:red_nether_brick_stairs", - PolishedAndesiteStairs => "minecraft:polished_andesite_stairs", - DioriteStairs => "minecraft:diorite_stairs", - CobbledDeepslateStairs => "minecraft:cobbled_deepslate_stairs", - PolishedDeepslateStairs => "minecraft:polished_deepslate_stairs", - DeepslateBrickStairs => "minecraft:deepslate_brick_stairs", - DeepslateTileStairs => "minecraft:deepslate_tile_stairs", - PolishedGraniteSlab => "minecraft:polished_granite_slab", - SmoothRedSandstoneSlab => "minecraft:smooth_red_sandstone_slab", - MossyStoneBrickSlab => "minecraft:mossy_stone_brick_slab", - PolishedDioriteSlab => "minecraft:polished_diorite_slab", - MossyCobblestoneSlab => "minecraft:mossy_cobblestone_slab", - EndStoneBrickSlab => "minecraft:end_stone_brick_slab", - SmoothSandstoneSlab => "minecraft:smooth_sandstone_slab", - SmoothQuartzSlab => "minecraft:smooth_quartz_slab", - GraniteSlab => "minecraft:granite_slab", - AndesiteSlab => "minecraft:andesite_slab", - RedNetherBrickSlab => "minecraft:red_nether_brick_slab", - PolishedAndesiteSlab => "minecraft:polished_andesite_slab", - DioriteSlab => "minecraft:diorite_slab", - CobbledDeepslateSlab => "minecraft:cobbled_deepslate_slab", - PolishedDeepslateSlab => "minecraft:polished_deepslate_slab", - DeepslateBrickSlab => "minecraft:deepslate_brick_slab", - DeepslateTileSlab => "minecraft:deepslate_tile_slab", - Scaffolding => "minecraft:scaffolding", - Redstone => "minecraft:redstone", - RedstoneTorch => "minecraft:redstone_torch", - RedstoneBlock => "minecraft:redstone_block", - Repeater => "minecraft:repeater", - Comparator => "minecraft:comparator", - Piston => "minecraft:piston", - StickyPiston => "minecraft:sticky_piston", - SlimeBlock => "minecraft:slime_block", - HoneyBlock => "minecraft:honey_block", - Observer => "minecraft:observer", - Hopper => "minecraft:hopper", - Dispenser => "minecraft:dispenser", - Dropper => "minecraft:dropper", - Lectern => "minecraft:lectern", - Target => "minecraft:target", - Lever => "minecraft:lever", - LightningRod => "minecraft:lightning_rod", - ExposedLightningRod => "minecraft:exposed_lightning_rod", - WeatheredLightningRod => "minecraft:weathered_lightning_rod", - OxidizedLightningRod => "minecraft:oxidized_lightning_rod", - WaxedLightningRod => "minecraft:waxed_lightning_rod", - WaxedExposedLightningRod => "minecraft:waxed_exposed_lightning_rod", - WaxedWeatheredLightningRod => "minecraft:waxed_weathered_lightning_rod", - WaxedOxidizedLightningRod => "minecraft:waxed_oxidized_lightning_rod", - DaylightDetector => "minecraft:daylight_detector", - SculkSensor => "minecraft:sculk_sensor", - CalibratedSculkSensor => "minecraft:calibrated_sculk_sensor", - TripwireHook => "minecraft:tripwire_hook", - TrappedChest => "minecraft:trapped_chest", - Tnt => "minecraft:tnt", - RedstoneLamp => "minecraft:redstone_lamp", - NoteBlock => "minecraft:note_block", - StoneButton => "minecraft:stone_button", - PolishedBlackstoneButton => "minecraft:polished_blackstone_button", - OakButton => "minecraft:oak_button", - SpruceButton => "minecraft:spruce_button", - BirchButton => "minecraft:birch_button", - JungleButton => "minecraft:jungle_button", - AcaciaButton => "minecraft:acacia_button", - CherryButton => "minecraft:cherry_button", - DarkOakButton => "minecraft:dark_oak_button", - PaleOakButton => "minecraft:pale_oak_button", - MangroveButton => "minecraft:mangrove_button", - BambooButton => "minecraft:bamboo_button", - CrimsonButton => "minecraft:crimson_button", - WarpedButton => "minecraft:warped_button", - StonePressurePlate => "minecraft:stone_pressure_plate", - PolishedBlackstonePressurePlate => "minecraft:polished_blackstone_pressure_plate", - LightWeightedPressurePlate => "minecraft:light_weighted_pressure_plate", - HeavyWeightedPressurePlate => "minecraft:heavy_weighted_pressure_plate", - OakPressurePlate => "minecraft:oak_pressure_plate", - SprucePressurePlate => "minecraft:spruce_pressure_plate", - BirchPressurePlate => "minecraft:birch_pressure_plate", - JunglePressurePlate => "minecraft:jungle_pressure_plate", - AcaciaPressurePlate => "minecraft:acacia_pressure_plate", - CherryPressurePlate => "minecraft:cherry_pressure_plate", - DarkOakPressurePlate => "minecraft:dark_oak_pressure_plate", - PaleOakPressurePlate => "minecraft:pale_oak_pressure_plate", - MangrovePressurePlate => "minecraft:mangrove_pressure_plate", - BambooPressurePlate => "minecraft:bamboo_pressure_plate", - CrimsonPressurePlate => "minecraft:crimson_pressure_plate", - WarpedPressurePlate => "minecraft:warped_pressure_plate", - IronDoor => "minecraft:iron_door", - OakDoor => "minecraft:oak_door", - SpruceDoor => "minecraft:spruce_door", - BirchDoor => "minecraft:birch_door", - JungleDoor => "minecraft:jungle_door", - AcaciaDoor => "minecraft:acacia_door", - CherryDoor => "minecraft:cherry_door", - DarkOakDoor => "minecraft:dark_oak_door", - PaleOakDoor => "minecraft:pale_oak_door", - MangroveDoor => "minecraft:mangrove_door", - BambooDoor => "minecraft:bamboo_door", - CrimsonDoor => "minecraft:crimson_door", - WarpedDoor => "minecraft:warped_door", - CopperDoor => "minecraft:copper_door", - ExposedCopperDoor => "minecraft:exposed_copper_door", - WeatheredCopperDoor => "minecraft:weathered_copper_door", - OxidizedCopperDoor => "minecraft:oxidized_copper_door", - WaxedCopperDoor => "minecraft:waxed_copper_door", - WaxedExposedCopperDoor => "minecraft:waxed_exposed_copper_door", - WaxedWeatheredCopperDoor => "minecraft:waxed_weathered_copper_door", - WaxedOxidizedCopperDoor => "minecraft:waxed_oxidized_copper_door", - IronTrapdoor => "minecraft:iron_trapdoor", - OakTrapdoor => "minecraft:oak_trapdoor", - SpruceTrapdoor => "minecraft:spruce_trapdoor", - BirchTrapdoor => "minecraft:birch_trapdoor", - JungleTrapdoor => "minecraft:jungle_trapdoor", - AcaciaTrapdoor => "minecraft:acacia_trapdoor", - CherryTrapdoor => "minecraft:cherry_trapdoor", - DarkOakTrapdoor => "minecraft:dark_oak_trapdoor", - PaleOakTrapdoor => "minecraft:pale_oak_trapdoor", - MangroveTrapdoor => "minecraft:mangrove_trapdoor", - BambooTrapdoor => "minecraft:bamboo_trapdoor", - CrimsonTrapdoor => "minecraft:crimson_trapdoor", - WarpedTrapdoor => "minecraft:warped_trapdoor", - CopperTrapdoor => "minecraft:copper_trapdoor", - ExposedCopperTrapdoor => "minecraft:exposed_copper_trapdoor", - WeatheredCopperTrapdoor => "minecraft:weathered_copper_trapdoor", - OxidizedCopperTrapdoor => "minecraft:oxidized_copper_trapdoor", - WaxedCopperTrapdoor => "minecraft:waxed_copper_trapdoor", - WaxedExposedCopperTrapdoor => "minecraft:waxed_exposed_copper_trapdoor", - WaxedWeatheredCopperTrapdoor => "minecraft:waxed_weathered_copper_trapdoor", - WaxedOxidizedCopperTrapdoor => "minecraft:waxed_oxidized_copper_trapdoor", - OakFenceGate => "minecraft:oak_fence_gate", - SpruceFenceGate => "minecraft:spruce_fence_gate", - BirchFenceGate => "minecraft:birch_fence_gate", - JungleFenceGate => "minecraft:jungle_fence_gate", - AcaciaFenceGate => "minecraft:acacia_fence_gate", - CherryFenceGate => "minecraft:cherry_fence_gate", - DarkOakFenceGate => "minecraft:dark_oak_fence_gate", - PaleOakFenceGate => "minecraft:pale_oak_fence_gate", - MangroveFenceGate => "minecraft:mangrove_fence_gate", - BambooFenceGate => "minecraft:bamboo_fence_gate", - CrimsonFenceGate => "minecraft:crimson_fence_gate", - WarpedFenceGate => "minecraft:warped_fence_gate", - PoweredRail => "minecraft:powered_rail", - DetectorRail => "minecraft:detector_rail", - Rail => "minecraft:rail", - ActivatorRail => "minecraft:activator_rail", - Saddle => "minecraft:saddle", - WhiteHarness => "minecraft:white_harness", - OrangeHarness => "minecraft:orange_harness", - MagentaHarness => "minecraft:magenta_harness", - LightBlueHarness => "minecraft:light_blue_harness", - YellowHarness => "minecraft:yellow_harness", - LimeHarness => "minecraft:lime_harness", - PinkHarness => "minecraft:pink_harness", - GrayHarness => "minecraft:gray_harness", - LightGrayHarness => "minecraft:light_gray_harness", - CyanHarness => "minecraft:cyan_harness", - PurpleHarness => "minecraft:purple_harness", - BlueHarness => "minecraft:blue_harness", - BrownHarness => "minecraft:brown_harness", - GreenHarness => "minecraft:green_harness", - RedHarness => "minecraft:red_harness", - BlackHarness => "minecraft:black_harness", - Minecart => "minecraft:minecart", - ChestMinecart => "minecraft:chest_minecart", - FurnaceMinecart => "minecraft:furnace_minecart", - TntMinecart => "minecraft:tnt_minecart", - HopperMinecart => "minecraft:hopper_minecart", - CarrotOnAStick => "minecraft:carrot_on_a_stick", - WarpedFungusOnAStick => "minecraft:warped_fungus_on_a_stick", - PhantomMembrane => "minecraft:phantom_membrane", - Elytra => "minecraft:elytra", - OakBoat => "minecraft:oak_boat", - OakChestBoat => "minecraft:oak_chest_boat", - SpruceBoat => "minecraft:spruce_boat", - SpruceChestBoat => "minecraft:spruce_chest_boat", - BirchBoat => "minecraft:birch_boat", - BirchChestBoat => "minecraft:birch_chest_boat", - JungleBoat => "minecraft:jungle_boat", - JungleChestBoat => "minecraft:jungle_chest_boat", - AcaciaBoat => "minecraft:acacia_boat", - AcaciaChestBoat => "minecraft:acacia_chest_boat", - CherryBoat => "minecraft:cherry_boat", - CherryChestBoat => "minecraft:cherry_chest_boat", - DarkOakBoat => "minecraft:dark_oak_boat", - DarkOakChestBoat => "minecraft:dark_oak_chest_boat", - PaleOakBoat => "minecraft:pale_oak_boat", - PaleOakChestBoat => "minecraft:pale_oak_chest_boat", - MangroveBoat => "minecraft:mangrove_boat", - MangroveChestBoat => "minecraft:mangrove_chest_boat", - BambooRaft => "minecraft:bamboo_raft", - BambooChestRaft => "minecraft:bamboo_chest_raft", - StructureBlock => "minecraft:structure_block", - Jigsaw => "minecraft:jigsaw", - TestBlock => "minecraft:test_block", - TestInstanceBlock => "minecraft:test_instance_block", - TurtleHelmet => "minecraft:turtle_helmet", - TurtleScute => "minecraft:turtle_scute", - ArmadilloScute => "minecraft:armadillo_scute", - WolfArmor => "minecraft:wolf_armor", - FlintAndSteel => "minecraft:flint_and_steel", - Bowl => "minecraft:bowl", - Apple => "minecraft:apple", - Bow => "minecraft:bow", - Arrow => "minecraft:arrow", - Coal => "minecraft:coal", - Charcoal => "minecraft:charcoal", - Diamond => "minecraft:diamond", - Emerald => "minecraft:emerald", - LapisLazuli => "minecraft:lapis_lazuli", - Quartz => "minecraft:quartz", - AmethystShard => "minecraft:amethyst_shard", - RawIron => "minecraft:raw_iron", - IronIngot => "minecraft:iron_ingot", - RawCopper => "minecraft:raw_copper", - CopperIngot => "minecraft:copper_ingot", - RawGold => "minecraft:raw_gold", - GoldIngot => "minecraft:gold_ingot", - NetheriteIngot => "minecraft:netherite_ingot", - NetheriteScrap => "minecraft:netherite_scrap", - WoodenSword => "minecraft:wooden_sword", - WoodenShovel => "minecraft:wooden_shovel", - WoodenPickaxe => "minecraft:wooden_pickaxe", - WoodenAxe => "minecraft:wooden_axe", - WoodenHoe => "minecraft:wooden_hoe", - CopperSword => "minecraft:copper_sword", - CopperShovel => "minecraft:copper_shovel", - CopperPickaxe => "minecraft:copper_pickaxe", - CopperAxe => "minecraft:copper_axe", - CopperHoe => "minecraft:copper_hoe", - StoneSword => "minecraft:stone_sword", - StoneShovel => "minecraft:stone_shovel", - StonePickaxe => "minecraft:stone_pickaxe", - StoneAxe => "minecraft:stone_axe", - StoneHoe => "minecraft:stone_hoe", - GoldenSword => "minecraft:golden_sword", - GoldenShovel => "minecraft:golden_shovel", - GoldenPickaxe => "minecraft:golden_pickaxe", - GoldenAxe => "minecraft:golden_axe", - GoldenHoe => "minecraft:golden_hoe", - IronSword => "minecraft:iron_sword", - IronShovel => "minecraft:iron_shovel", - IronPickaxe => "minecraft:iron_pickaxe", - IronAxe => "minecraft:iron_axe", - IronHoe => "minecraft:iron_hoe", - DiamondSword => "minecraft:diamond_sword", - DiamondShovel => "minecraft:diamond_shovel", - DiamondPickaxe => "minecraft:diamond_pickaxe", - DiamondAxe => "minecraft:diamond_axe", - DiamondHoe => "minecraft:diamond_hoe", - NetheriteSword => "minecraft:netherite_sword", - NetheriteShovel => "minecraft:netherite_shovel", - NetheritePickaxe => "minecraft:netherite_pickaxe", - NetheriteAxe => "minecraft:netherite_axe", - NetheriteHoe => "minecraft:netherite_hoe", - Stick => "minecraft:stick", - MushroomStew => "minecraft:mushroom_stew", - String => "minecraft:string", - Feather => "minecraft:feather", - Gunpowder => "minecraft:gunpowder", - WheatSeeds => "minecraft:wheat_seeds", - Wheat => "minecraft:wheat", - Bread => "minecraft:bread", - LeatherHelmet => "minecraft:leather_helmet", - LeatherChestplate => "minecraft:leather_chestplate", - LeatherLeggings => "minecraft:leather_leggings", - LeatherBoots => "minecraft:leather_boots", - CopperHelmet => "minecraft:copper_helmet", - CopperChestplate => "minecraft:copper_chestplate", - CopperLeggings => "minecraft:copper_leggings", - CopperBoots => "minecraft:copper_boots", - ChainmailHelmet => "minecraft:chainmail_helmet", - ChainmailChestplate => "minecraft:chainmail_chestplate", - ChainmailLeggings => "minecraft:chainmail_leggings", - ChainmailBoots => "minecraft:chainmail_boots", - IronHelmet => "minecraft:iron_helmet", - IronChestplate => "minecraft:iron_chestplate", - IronLeggings => "minecraft:iron_leggings", - IronBoots => "minecraft:iron_boots", - DiamondHelmet => "minecraft:diamond_helmet", - DiamondChestplate => "minecraft:diamond_chestplate", - DiamondLeggings => "minecraft:diamond_leggings", - DiamondBoots => "minecraft:diamond_boots", - GoldenHelmet => "minecraft:golden_helmet", - GoldenChestplate => "minecraft:golden_chestplate", - GoldenLeggings => "minecraft:golden_leggings", - GoldenBoots => "minecraft:golden_boots", - NetheriteHelmet => "minecraft:netherite_helmet", - NetheriteChestplate => "minecraft:netherite_chestplate", - NetheriteLeggings => "minecraft:netherite_leggings", - NetheriteBoots => "minecraft:netherite_boots", - Flint => "minecraft:flint", - Porkchop => "minecraft:porkchop", - CookedPorkchop => "minecraft:cooked_porkchop", - Painting => "minecraft:painting", - GoldenApple => "minecraft:golden_apple", - EnchantedGoldenApple => "minecraft:enchanted_golden_apple", - OakSign => "minecraft:oak_sign", - SpruceSign => "minecraft:spruce_sign", - BirchSign => "minecraft:birch_sign", - JungleSign => "minecraft:jungle_sign", - AcaciaSign => "minecraft:acacia_sign", - CherrySign => "minecraft:cherry_sign", - DarkOakSign => "minecraft:dark_oak_sign", - PaleOakSign => "minecraft:pale_oak_sign", - MangroveSign => "minecraft:mangrove_sign", - BambooSign => "minecraft:bamboo_sign", - CrimsonSign => "minecraft:crimson_sign", - WarpedSign => "minecraft:warped_sign", - OakHangingSign => "minecraft:oak_hanging_sign", - SpruceHangingSign => "minecraft:spruce_hanging_sign", - BirchHangingSign => "minecraft:birch_hanging_sign", - JungleHangingSign => "minecraft:jungle_hanging_sign", - AcaciaHangingSign => "minecraft:acacia_hanging_sign", - CherryHangingSign => "minecraft:cherry_hanging_sign", - DarkOakHangingSign => "minecraft:dark_oak_hanging_sign", - PaleOakHangingSign => "minecraft:pale_oak_hanging_sign", - MangroveHangingSign => "minecraft:mangrove_hanging_sign", - BambooHangingSign => "minecraft:bamboo_hanging_sign", - CrimsonHangingSign => "minecraft:crimson_hanging_sign", - WarpedHangingSign => "minecraft:warped_hanging_sign", - Bucket => "minecraft:bucket", - WaterBucket => "minecraft:water_bucket", - LavaBucket => "minecraft:lava_bucket", - PowderSnowBucket => "minecraft:powder_snow_bucket", - Snowball => "minecraft:snowball", - Leather => "minecraft:leather", - MilkBucket => "minecraft:milk_bucket", - PufferfishBucket => "minecraft:pufferfish_bucket", - SalmonBucket => "minecraft:salmon_bucket", - CodBucket => "minecraft:cod_bucket", - TropicalFishBucket => "minecraft:tropical_fish_bucket", - AxolotlBucket => "minecraft:axolotl_bucket", - TadpoleBucket => "minecraft:tadpole_bucket", - Brick => "minecraft:brick", - ClayBall => "minecraft:clay_ball", - DriedKelpBlock => "minecraft:dried_kelp_block", - Paper => "minecraft:paper", - Book => "minecraft:book", - SlimeBall => "minecraft:slime_ball", - Egg => "minecraft:egg", - BlueEgg => "minecraft:blue_egg", - BrownEgg => "minecraft:brown_egg", - Compass => "minecraft:compass", - RecoveryCompass => "minecraft:recovery_compass", - Bundle => "minecraft:bundle", - WhiteBundle => "minecraft:white_bundle", - OrangeBundle => "minecraft:orange_bundle", - MagentaBundle => "minecraft:magenta_bundle", - LightBlueBundle => "minecraft:light_blue_bundle", - YellowBundle => "minecraft:yellow_bundle", - LimeBundle => "minecraft:lime_bundle", - PinkBundle => "minecraft:pink_bundle", - GrayBundle => "minecraft:gray_bundle", - LightGrayBundle => "minecraft:light_gray_bundle", - CyanBundle => "minecraft:cyan_bundle", - PurpleBundle => "minecraft:purple_bundle", - BlueBundle => "minecraft:blue_bundle", - BrownBundle => "minecraft:brown_bundle", - GreenBundle => "minecraft:green_bundle", - RedBundle => "minecraft:red_bundle", - BlackBundle => "minecraft:black_bundle", - FishingRod => "minecraft:fishing_rod", - Clock => "minecraft:clock", - Spyglass => "minecraft:spyglass", - GlowstoneDust => "minecraft:glowstone_dust", - Cod => "minecraft:cod", - Salmon => "minecraft:salmon", - TropicalFish => "minecraft:tropical_fish", - Pufferfish => "minecraft:pufferfish", - CookedCod => "minecraft:cooked_cod", - CookedSalmon => "minecraft:cooked_salmon", - InkSac => "minecraft:ink_sac", - GlowInkSac => "minecraft:glow_ink_sac", - CocoaBeans => "minecraft:cocoa_beans", - WhiteDye => "minecraft:white_dye", - OrangeDye => "minecraft:orange_dye", - MagentaDye => "minecraft:magenta_dye", - LightBlueDye => "minecraft:light_blue_dye", - YellowDye => "minecraft:yellow_dye", - LimeDye => "minecraft:lime_dye", - PinkDye => "minecraft:pink_dye", - GrayDye => "minecraft:gray_dye", - LightGrayDye => "minecraft:light_gray_dye", - CyanDye => "minecraft:cyan_dye", - PurpleDye => "minecraft:purple_dye", - BlueDye => "minecraft:blue_dye", - BrownDye => "minecraft:brown_dye", - GreenDye => "minecraft:green_dye", - RedDye => "minecraft:red_dye", - BlackDye => "minecraft:black_dye", - BoneMeal => "minecraft:bone_meal", - Bone => "minecraft:bone", - Sugar => "minecraft:sugar", - Cake => "minecraft:cake", - WhiteBed => "minecraft:white_bed", - OrangeBed => "minecraft:orange_bed", - MagentaBed => "minecraft:magenta_bed", - LightBlueBed => "minecraft:light_blue_bed", - YellowBed => "minecraft:yellow_bed", - LimeBed => "minecraft:lime_bed", - PinkBed => "minecraft:pink_bed", - GrayBed => "minecraft:gray_bed", - LightGrayBed => "minecraft:light_gray_bed", - CyanBed => "minecraft:cyan_bed", - PurpleBed => "minecraft:purple_bed", - BlueBed => "minecraft:blue_bed", - BrownBed => "minecraft:brown_bed", - GreenBed => "minecraft:green_bed", - RedBed => "minecraft:red_bed", - BlackBed => "minecraft:black_bed", - Cookie => "minecraft:cookie", - Crafter => "minecraft:crafter", - FilledMap => "minecraft:filled_map", - Shears => "minecraft:shears", - MelonSlice => "minecraft:melon_slice", - DriedKelp => "minecraft:dried_kelp", - PumpkinSeeds => "minecraft:pumpkin_seeds", - MelonSeeds => "minecraft:melon_seeds", - Beef => "minecraft:beef", - CookedBeef => "minecraft:cooked_beef", - Chicken => "minecraft:chicken", - CookedChicken => "minecraft:cooked_chicken", - RottenFlesh => "minecraft:rotten_flesh", - EnderPearl => "minecraft:ender_pearl", - BlazeRod => "minecraft:blaze_rod", - GhastTear => "minecraft:ghast_tear", - GoldNugget => "minecraft:gold_nugget", - NetherWart => "minecraft:nether_wart", - GlassBottle => "minecraft:glass_bottle", - Potion => "minecraft:potion", - SpiderEye => "minecraft:spider_eye", - FermentedSpiderEye => "minecraft:fermented_spider_eye", - BlazePowder => "minecraft:blaze_powder", - MagmaCream => "minecraft:magma_cream", - BrewingStand => "minecraft:brewing_stand", - Cauldron => "minecraft:cauldron", - EnderEye => "minecraft:ender_eye", - GlisteringMelonSlice => "minecraft:glistering_melon_slice", - ChickenSpawnEgg => "minecraft:chicken_spawn_egg", - CowSpawnEgg => "minecraft:cow_spawn_egg", - PigSpawnEgg => "minecraft:pig_spawn_egg", - SheepSpawnEgg => "minecraft:sheep_spawn_egg", - CamelSpawnEgg => "minecraft:camel_spawn_egg", - DonkeySpawnEgg => "minecraft:donkey_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", - GoatSpawnEgg => "minecraft:goat_spawn_egg", - LlamaSpawnEgg => "minecraft:llama_spawn_egg", - OcelotSpawnEgg => "minecraft:ocelot_spawn_egg", - PandaSpawnEgg => "minecraft:panda_spawn_egg", - PolarBearSpawnEgg => "minecraft:polar_bear_spawn_egg", - RabbitSpawnEgg => "minecraft:rabbit_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", - SquidSpawnEgg => "minecraft:squid_spawn_egg", - TadpoleSpawnEgg => "minecraft:tadpole_spawn_egg", - TropicalFishSpawnEgg => "minecraft:tropical_fish_spawn_egg", - TurtleSpawnEgg => "minecraft:turtle_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", - WanderingTraderSpawnEgg => "minecraft:wandering_trader_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", - 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", - 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", - WritableBook => "minecraft:writable_book", - WrittenBook => "minecraft:written_book", - BreezeRod => "minecraft:breeze_rod", - Mace => "minecraft:mace", - ItemFrame => "minecraft:item_frame", - GlowItemFrame => "minecraft:glow_item_frame", - FlowerPot => "minecraft:flower_pot", - Carrot => "minecraft:carrot", - Potato => "minecraft:potato", - BakedPotato => "minecraft:baked_potato", - PoisonousPotato => "minecraft:poisonous_potato", - Map => "minecraft:map", - GoldenCarrot => "minecraft:golden_carrot", - SkeletonSkull => "minecraft:skeleton_skull", - WitherSkeletonSkull => "minecraft:wither_skeleton_skull", - PlayerHead => "minecraft:player_head", - ZombieHead => "minecraft:zombie_head", - CreeperHead => "minecraft:creeper_head", - DragonHead => "minecraft:dragon_head", - PiglinHead => "minecraft:piglin_head", - NetherStar => "minecraft:nether_star", - PumpkinPie => "minecraft:pumpkin_pie", - FireworkRocket => "minecraft:firework_rocket", - FireworkStar => "minecraft:firework_star", - EnchantedBook => "minecraft:enchanted_book", - NetherBrick => "minecraft:nether_brick", - ResinBrick => "minecraft:resin_brick", - PrismarineShard => "minecraft:prismarine_shard", - PrismarineCrystals => "minecraft:prismarine_crystals", - Rabbit => "minecraft:rabbit", - CookedRabbit => "minecraft:cooked_rabbit", - RabbitStew => "minecraft:rabbit_stew", - RabbitFoot => "minecraft:rabbit_foot", - RabbitHide => "minecraft:rabbit_hide", - ArmorStand => "minecraft:armor_stand", - CopperHorseArmor => "minecraft:copper_horse_armor", - 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", - CommandBlockMinecart => "minecraft:command_block_minecart", - Mutton => "minecraft:mutton", - CookedMutton => "minecraft:cooked_mutton", - WhiteBanner => "minecraft:white_banner", - OrangeBanner => "minecraft:orange_banner", - MagentaBanner => "minecraft:magenta_banner", - LightBlueBanner => "minecraft:light_blue_banner", - YellowBanner => "minecraft:yellow_banner", - LimeBanner => "minecraft:lime_banner", - PinkBanner => "minecraft:pink_banner", - GrayBanner => "minecraft:gray_banner", - LightGrayBanner => "minecraft:light_gray_banner", - CyanBanner => "minecraft:cyan_banner", - PurpleBanner => "minecraft:purple_banner", - BlueBanner => "minecraft:blue_banner", - BrownBanner => "minecraft:brown_banner", - GreenBanner => "minecraft:green_banner", - RedBanner => "minecraft:red_banner", - BlackBanner => "minecraft:black_banner", - EndCrystal => "minecraft:end_crystal", - ChorusFruit => "minecraft:chorus_fruit", - PoppedChorusFruit => "minecraft:popped_chorus_fruit", - TorchflowerSeeds => "minecraft:torchflower_seeds", - PitcherPod => "minecraft:pitcher_pod", - Beetroot => "minecraft:beetroot", - BeetrootSeeds => "minecraft:beetroot_seeds", - BeetrootSoup => "minecraft:beetroot_soup", - DragonBreath => "minecraft:dragon_breath", - SplashPotion => "minecraft:splash_potion", - SpectralArrow => "minecraft:spectral_arrow", - 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", - CopperNugget => "minecraft:copper_nugget", - KnowledgeBook => "minecraft:knowledge_book", - DebugStick => "minecraft:debug_stick", - MusicDisc13 => "minecraft:music_disc_13", - MusicDiscCat => "minecraft:music_disc_cat", - MusicDiscBlocks => "minecraft:music_disc_blocks", - MusicDiscChirp => "minecraft:music_disc_chirp", - MusicDiscCreator => "minecraft:music_disc_creator", - MusicDiscCreatorMusicBox => "minecraft:music_disc_creator_music_box", - MusicDiscFar => "minecraft:music_disc_far", - MusicDiscLavaChicken => "minecraft:music_disc_lava_chicken", - MusicDiscMall => "minecraft:music_disc_mall", - MusicDiscMellohi => "minecraft:music_disc_mellohi", - MusicDiscStal => "minecraft:music_disc_stal", - MusicDiscStrad => "minecraft:music_disc_strad", - MusicDiscWard => "minecraft:music_disc_ward", - MusicDisc11 => "minecraft:music_disc_11", - MusicDiscWait => "minecraft:music_disc_wait", - MusicDiscOtherside => "minecraft:music_disc_otherside", - MusicDiscRelic => "minecraft:music_disc_relic", - MusicDisc5 => "minecraft:music_disc_5", - MusicDiscPigstep => "minecraft:music_disc_pigstep", - MusicDiscPrecipice => "minecraft:music_disc_precipice", - MusicDiscTears => "minecraft:music_disc_tears", - 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", - Loom => "minecraft:loom", - FlowerBannerPattern => "minecraft:flower_banner_pattern", - CreeperBannerPattern => "minecraft:creeper_banner_pattern", - SkullBannerPattern => "minecraft:skull_banner_pattern", - MojangBannerPattern => "minecraft:mojang_banner_pattern", - GlobeBannerPattern => "minecraft:globe_banner_pattern", - PiglinBannerPattern => "minecraft:piglin_banner_pattern", - FlowBannerPattern => "minecraft:flow_banner_pattern", - GusterBannerPattern => "minecraft:guster_banner_pattern", - FieldMasonedBannerPattern => "minecraft:field_masoned_banner_pattern", - BordureIndentedBannerPattern => "minecraft:bordure_indented_banner_pattern", - GoatHorn => "minecraft:goat_horn", - Composter => "minecraft:composter", - Barrel => "minecraft:barrel", - Smoker => "minecraft:smoker", - BlastFurnace => "minecraft:blast_furnace", - CartographyTable => "minecraft:cartography_table", - FletchingTable => "minecraft:fletching_table", - Grindstone => "minecraft:grindstone", - SmithingTable => "minecraft:smithing_table", - Stonecutter => "minecraft:stonecutter", - Bell => "minecraft:bell", - Lantern => "minecraft:lantern", - SoulLantern => "minecraft:soul_lantern", - CopperLantern => "minecraft:copper_lantern", - ExposedCopperLantern => "minecraft:exposed_copper_lantern", - WeatheredCopperLantern => "minecraft:weathered_copper_lantern", - OxidizedCopperLantern => "minecraft:oxidized_copper_lantern", - WaxedCopperLantern => "minecraft:waxed_copper_lantern", - WaxedExposedCopperLantern => "minecraft:waxed_exposed_copper_lantern", - WaxedWeatheredCopperLantern => "minecraft:waxed_weathered_copper_lantern", - WaxedOxidizedCopperLantern => "minecraft:waxed_oxidized_copper_lantern", - SweetBerries => "minecraft:sweet_berries", - GlowBerries => "minecraft:glow_berries", - Campfire => "minecraft:campfire", - SoulCampfire => "minecraft:soul_campfire", - Shroomlight => "minecraft:shroomlight", - Honeycomb => "minecraft:honeycomb", - BeeNest => "minecraft:bee_nest", - Beehive => "minecraft:beehive", - HoneyBottle => "minecraft:honey_bottle", - HoneycombBlock => "minecraft:honeycomb_block", - Lodestone => "minecraft:lodestone", - CryingObsidian => "minecraft:crying_obsidian", - Blackstone => "minecraft:blackstone", - BlackstoneSlab => "minecraft:blackstone_slab", - BlackstoneStairs => "minecraft:blackstone_stairs", - GildedBlackstone => "minecraft:gilded_blackstone", - PolishedBlackstone => "minecraft:polished_blackstone", - PolishedBlackstoneSlab => "minecraft:polished_blackstone_slab", - PolishedBlackstoneStairs => "minecraft:polished_blackstone_stairs", - ChiseledPolishedBlackstone => "minecraft:chiseled_polished_blackstone", - PolishedBlackstoneBricks => "minecraft:polished_blackstone_bricks", - PolishedBlackstoneBrickSlab => "minecraft:polished_blackstone_brick_slab", - PolishedBlackstoneBrickStairs => "minecraft:polished_blackstone_brick_stairs", - CrackedPolishedBlackstoneBricks => "minecraft:cracked_polished_blackstone_bricks", - RespawnAnchor => "minecraft:respawn_anchor", - Candle => "minecraft:candle", - WhiteCandle => "minecraft:white_candle", - OrangeCandle => "minecraft:orange_candle", - MagentaCandle => "minecraft:magenta_candle", - LightBlueCandle => "minecraft:light_blue_candle", - YellowCandle => "minecraft:yellow_candle", - LimeCandle => "minecraft:lime_candle", - PinkCandle => "minecraft:pink_candle", - GrayCandle => "minecraft:gray_candle", - LightGrayCandle => "minecraft:light_gray_candle", - CyanCandle => "minecraft:cyan_candle", - PurpleCandle => "minecraft:purple_candle", - BlueCandle => "minecraft:blue_candle", - BrownCandle => "minecraft:brown_candle", - GreenCandle => "minecraft:green_candle", - RedCandle => "minecraft:red_candle", - BlackCandle => "minecraft:black_candle", - SmallAmethystBud => "minecraft:small_amethyst_bud", - MediumAmethystBud => "minecraft:medium_amethyst_bud", - LargeAmethystBud => "minecraft:large_amethyst_bud", - AmethystCluster => "minecraft:amethyst_cluster", - PointedDripstone => "minecraft:pointed_dripstone", - OchreFroglight => "minecraft:ochre_froglight", - VerdantFroglight => "minecraft:verdant_froglight", - PearlescentFroglight => "minecraft:pearlescent_froglight", - Frogspawn => "minecraft:frogspawn", - EchoShard => "minecraft:echo_shard", - Brush => "minecraft:brush", - NetheriteUpgradeSmithingTemplate => "minecraft:netherite_upgrade_smithing_template", - SentryArmorTrimSmithingTemplate => "minecraft:sentry_armor_trim_smithing_template", - DuneArmorTrimSmithingTemplate => "minecraft:dune_armor_trim_smithing_template", - CoastArmorTrimSmithingTemplate => "minecraft:coast_armor_trim_smithing_template", - WildArmorTrimSmithingTemplate => "minecraft:wild_armor_trim_smithing_template", - WardArmorTrimSmithingTemplate => "minecraft:ward_armor_trim_smithing_template", - EyeArmorTrimSmithingTemplate => "minecraft:eye_armor_trim_smithing_template", - VexArmorTrimSmithingTemplate => "minecraft:vex_armor_trim_smithing_template", - TideArmorTrimSmithingTemplate => "minecraft:tide_armor_trim_smithing_template", - SnoutArmorTrimSmithingTemplate => "minecraft:snout_armor_trim_smithing_template", - RibArmorTrimSmithingTemplate => "minecraft:rib_armor_trim_smithing_template", - SpireArmorTrimSmithingTemplate => "minecraft:spire_armor_trim_smithing_template", - WayfinderArmorTrimSmithingTemplate => "minecraft:wayfinder_armor_trim_smithing_template", - ShaperArmorTrimSmithingTemplate => "minecraft:shaper_armor_trim_smithing_template", - SilenceArmorTrimSmithingTemplate => "minecraft:silence_armor_trim_smithing_template", - RaiserArmorTrimSmithingTemplate => "minecraft:raiser_armor_trim_smithing_template", - HostArmorTrimSmithingTemplate => "minecraft:host_armor_trim_smithing_template", - FlowArmorTrimSmithingTemplate => "minecraft:flow_armor_trim_smithing_template", - BoltArmorTrimSmithingTemplate => "minecraft:bolt_armor_trim_smithing_template", - AnglerPotterySherd => "minecraft:angler_pottery_sherd", - ArcherPotterySherd => "minecraft:archer_pottery_sherd", - ArmsUpPotterySherd => "minecraft:arms_up_pottery_sherd", - BladePotterySherd => "minecraft:blade_pottery_sherd", - BrewerPotterySherd => "minecraft:brewer_pottery_sherd", - BurnPotterySherd => "minecraft:burn_pottery_sherd", - DangerPotterySherd => "minecraft:danger_pottery_sherd", - ExplorerPotterySherd => "minecraft:explorer_pottery_sherd", - FlowPotterySherd => "minecraft:flow_pottery_sherd", - FriendPotterySherd => "minecraft:friend_pottery_sherd", - GusterPotterySherd => "minecraft:guster_pottery_sherd", - HeartPotterySherd => "minecraft:heart_pottery_sherd", - HeartbreakPotterySherd => "minecraft:heartbreak_pottery_sherd", - HowlPotterySherd => "minecraft:howl_pottery_sherd", - MinerPotterySherd => "minecraft:miner_pottery_sherd", - MournerPotterySherd => "minecraft:mourner_pottery_sherd", - PlentyPotterySherd => "minecraft:plenty_pottery_sherd", - PrizePotterySherd => "minecraft:prize_pottery_sherd", - ScrapePotterySherd => "minecraft:scrape_pottery_sherd", - SheafPotterySherd => "minecraft:sheaf_pottery_sherd", - ShelterPotterySherd => "minecraft:shelter_pottery_sherd", - SkullPotterySherd => "minecraft:skull_pottery_sherd", - SnortPotterySherd => "minecraft:snort_pottery_sherd", - CopperGrate => "minecraft:copper_grate", - ExposedCopperGrate => "minecraft:exposed_copper_grate", - WeatheredCopperGrate => "minecraft:weathered_copper_grate", - OxidizedCopperGrate => "minecraft:oxidized_copper_grate", - WaxedCopperGrate => "minecraft:waxed_copper_grate", - WaxedExposedCopperGrate => "minecraft:waxed_exposed_copper_grate", - WaxedWeatheredCopperGrate => "minecraft:waxed_weathered_copper_grate", - WaxedOxidizedCopperGrate => "minecraft:waxed_oxidized_copper_grate", - CopperBulb => "minecraft:copper_bulb", - ExposedCopperBulb => "minecraft:exposed_copper_bulb", - WeatheredCopperBulb => "minecraft:weathered_copper_bulb", - OxidizedCopperBulb => "minecraft:oxidized_copper_bulb", - WaxedCopperBulb => "minecraft:waxed_copper_bulb", - WaxedExposedCopperBulb => "minecraft:waxed_exposed_copper_bulb", - WaxedWeatheredCopperBulb => "minecraft:waxed_weathered_copper_bulb", - WaxedOxidizedCopperBulb => "minecraft:waxed_oxidized_copper_bulb", - CopperChest => "minecraft:copper_chest", - ExposedCopperChest => "minecraft:exposed_copper_chest", - WeatheredCopperChest => "minecraft:weathered_copper_chest", - OxidizedCopperChest => "minecraft:oxidized_copper_chest", - WaxedCopperChest => "minecraft:waxed_copper_chest", - WaxedExposedCopperChest => "minecraft:waxed_exposed_copper_chest", - WaxedWeatheredCopperChest => "minecraft:waxed_weathered_copper_chest", - WaxedOxidizedCopperChest => "minecraft:waxed_oxidized_copper_chest", - CopperGolemStatue => "minecraft:copper_golem_statue", - ExposedCopperGolemStatue => "minecraft:exposed_copper_golem_statue", - WeatheredCopperGolemStatue => "minecraft:weathered_copper_golem_statue", - OxidizedCopperGolemStatue => "minecraft:oxidized_copper_golem_statue", - WaxedCopperGolemStatue => "minecraft:waxed_copper_golem_statue", - WaxedExposedCopperGolemStatue => "minecraft:waxed_exposed_copper_golem_statue", - WaxedWeatheredCopperGolemStatue => "minecraft:waxed_weathered_copper_golem_statue", - WaxedOxidizedCopperGolemStatue => "minecraft:waxed_oxidized_copper_golem_statue", - TrialSpawner => "minecraft:trial_spawner", - TrialKey => "minecraft:trial_key", - OminousTrialKey => "minecraft:ominous_trial_key", - Vault => "minecraft:vault", - OminousBottle => "minecraft:ominous_bottle", -} -} - -registry! { -enum LootConditionKind { - Inverted => "minecraft:inverted", - AnyOf => "minecraft:any_of", - AllOf => "minecraft:all_of", - RandomChance => "minecraft:random_chance", - RandomChanceWithEnchantedBonus => "minecraft:random_chance_with_enchanted_bonus", - EntityProperties => "minecraft:entity_properties", - KilledByPlayer => "minecraft:killed_by_player", - EntityScores => "minecraft:entity_scores", - BlockStateProperty => "minecraft:block_state_property", - MatchTool => "minecraft:match_tool", - TableBonus => "minecraft:table_bonus", - SurvivesExplosion => "minecraft:survives_explosion", - DamageSourceProperties => "minecraft:damage_source_properties", - LocationCheck => "minecraft:location_check", - WeatherCheck => "minecraft:weather_check", - Reference => "minecraft:reference", - TimeCheck => "minecraft:time_check", - ValueCheck => "minecraft:value_check", - EnchantmentActiveCheck => "minecraft:enchantment_active_check", -} -} - -registry! { -enum LootFunctionKind { - SetCount => "minecraft:set_count", - SetItem => "minecraft:set_item", - EnchantWithLevels => "minecraft:enchant_with_levels", - EnchantRandomly => "minecraft:enchant_randomly", - SetEnchantments => "minecraft:set_enchantments", - SetCustomData => "minecraft:set_custom_data", - SetComponents => "minecraft:set_components", - FurnaceSmelt => "minecraft:furnace_smelt", - EnchantedCountIncrease => "minecraft:enchanted_count_increase", - SetDamage => "minecraft:set_damage", - SetAttributes => "minecraft:set_attributes", - SetName => "minecraft:set_name", - ExplorationMap => "minecraft:exploration_map", - SetStewEffect => "minecraft:set_stew_effect", - CopyName => "minecraft:copy_name", - SetContents => "minecraft:set_contents", - ModifyContents => "minecraft:modify_contents", - Filtered => "minecraft:filtered", - LimitCount => "minecraft:limit_count", - ApplyBonus => "minecraft:apply_bonus", - SetLootTable => "minecraft:set_loot_table", - ExplosionDecay => "minecraft:explosion_decay", - SetLore => "minecraft:set_lore", - FillPlayerHead => "minecraft:fill_player_head", - CopyCustomData => "minecraft:copy_custom_data", - CopyState => "minecraft:copy_state", - SetBannerPattern => "minecraft:set_banner_pattern", - SetPotion => "minecraft:set_potion", - SetInstrument => "minecraft:set_instrument", - Reference => "minecraft:reference", - Sequence => "minecraft:sequence", - CopyComponents => "minecraft:copy_components", - SetFireworks => "minecraft:set_fireworks", - SetFireworkExplosion => "minecraft:set_firework_explosion", - SetBookCover => "minecraft:set_book_cover", - SetWrittenBookPages => "minecraft:set_written_book_pages", - SetWritableBookPages => "minecraft:set_writable_book_pages", - ToggleTooltips => "minecraft:toggle_tooltips", - SetOminousBottleAmplifier => "minecraft:set_ominous_bottle_amplifier", - SetCustomModelData => "minecraft:set_custom_model_data", - Discard => "minecraft:discard", -} -} - -registry! { -enum LootNbtProviderKind { - Storage => "minecraft:storage", - Context => "minecraft:context", -} -} - -registry! { -enum LootNumberProviderKind { - Constant => "minecraft:constant", - Uniform => "minecraft:uniform", - Binomial => "minecraft:binomial", - Score => "minecraft:score", - Storage => "minecraft:storage", - EnchantmentLevel => "minecraft:enchantment_level", -} -} - -registry! { -enum LootPoolEntryKind { - Empty => "minecraft:empty", - Item => "minecraft:item", - LootTable => "minecraft:loot_table", - Dynamic => "minecraft:dynamic", - Tag => "minecraft:tag", - Slots => "minecraft:slots", - Alternatives => "minecraft:alternatives", - Sequence => "minecraft:sequence", - Group => "minecraft:group", -} -} - -registry! { -enum LootScoreProviderKind { - Fixed => "minecraft:fixed", - Context => "minecraft:context", -} -} - -registry! { -enum MemoryModuleKind { - Dummy => "minecraft:dummy", - Home => "minecraft:home", - JobSite => "minecraft:job_site", - PotentialJobSite => "minecraft:potential_job_site", - MeetingPoint => "minecraft:meeting_point", - SecondaryJobSite => "minecraft:secondary_job_site", - Mobs => "minecraft:mobs", - VisibleMobs => "minecraft:visible_mobs", - VisibleVillagerBabies => "minecraft:visible_villager_babies", - NearestPlayers => "minecraft:nearest_players", - NearestVisiblePlayer => "minecraft:nearest_visible_player", - NearestVisibleTargetablePlayer => "minecraft:nearest_visible_targetable_player", - NearestVisibleTargetablePlayers => "minecraft:nearest_visible_targetable_players", - WalkTarget => "minecraft:walk_target", - LookTarget => "minecraft:look_target", - AttackTarget => "minecraft:attack_target", - AttackCoolingDown => "minecraft:attack_cooling_down", - InteractionTarget => "minecraft:interaction_target", - BreedTarget => "minecraft:breed_target", - RideTarget => "minecraft:ride_target", - Path => "minecraft:path", - InteractableDoors => "minecraft:interactable_doors", - DoorsToClose => "minecraft:doors_to_close", - NearestBed => "minecraft:nearest_bed", - HurtBy => "minecraft:hurt_by", - HurtByEntity => "minecraft:hurt_by_entity", - AvoidTarget => "minecraft:avoid_target", - NearestHostile => "minecraft:nearest_hostile", - NearestAttackable => "minecraft:nearest_attackable", - HidingPlace => "minecraft:hiding_place", - HeardBellTime => "minecraft:heard_bell_time", - CantReachWalkTargetSince => "minecraft:cant_reach_walk_target_since", - GolemDetectedRecently => "minecraft:golem_detected_recently", - DangerDetectedRecently => "minecraft:danger_detected_recently", - LastSlept => "minecraft:last_slept", - LastWoken => "minecraft:last_woken", - LastWorkedAtPoi => "minecraft:last_worked_at_poi", - NearestVisibleAdult => "minecraft:nearest_visible_adult", - NearestVisibleWantedItem => "minecraft:nearest_visible_wanted_item", - NearestVisibleNemesis => "minecraft:nearest_visible_nemesis", - PlayDeadTicks => "minecraft:play_dead_ticks", - TemptingPlayer => "minecraft:tempting_player", - TemptationCooldownTicks => "minecraft:temptation_cooldown_ticks", - GazeCooldownTicks => "minecraft:gaze_cooldown_ticks", - IsTempted => "minecraft:is_tempted", - LongJumpCoolingDown => "minecraft:long_jump_cooling_down", - LongJumpMidJump => "minecraft:long_jump_mid_jump", - HasHuntingCooldown => "minecraft:has_hunting_cooldown", - RamCooldownTicks => "minecraft:ram_cooldown_ticks", - RamTarget => "minecraft:ram_target", - IsInWater => "minecraft:is_in_water", - IsPregnant => "minecraft:is_pregnant", - IsPanicking => "minecraft:is_panicking", - UnreachableTongueTargets => "minecraft:unreachable_tongue_targets", - 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", - 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", - TimeTryingToReachAdmireItem => "minecraft:time_trying_to_reach_admire_item", - DisableWalkToAdmireItem => "minecraft:disable_walk_to_admire_item", - AdmiringDisabled => "minecraft:admiring_disabled", - HuntedRecently => "minecraft:hunted_recently", - CelebrateLocation => "minecraft:celebrate_location", - Dancing => "minecraft:dancing", - NearestVisibleHuntableHoglin => "minecraft:nearest_visible_huntable_hoglin", - NearestVisibleBabyHoglin => "minecraft:nearest_visible_baby_hoglin", - NearestTargetablePlayerNotWearingGold => "minecraft:nearest_targetable_player_not_wearing_gold", - NearbyAdultPiglins => "minecraft:nearby_adult_piglins", - NearestVisibleAdultPiglins => "minecraft:nearest_visible_adult_piglins", - NearestVisibleAdultHoglins => "minecraft:nearest_visible_adult_hoglins", - NearestVisibleAdultPiglin => "minecraft:nearest_visible_adult_piglin", - NearestVisibleZombified => "minecraft:nearest_visible_zombified", - VisibleAdultPiglinCount => "minecraft:visible_adult_piglin_count", - VisibleAdultHoglinCount => "minecraft:visible_adult_hoglin_count", - NearestPlayerHoldingWantedItem => "minecraft:nearest_player_holding_wanted_item", - AteRecently => "minecraft:ate_recently", - NearestRepellent => "minecraft:nearest_repellent", - Pacified => "minecraft:pacified", - RoarTarget => "minecraft:roar_target", - DisturbanceLocation => "minecraft:disturbance_location", - RecentProjectile => "minecraft:recent_projectile", - IsSniffing => "minecraft:is_sniffing", - IsEmerging => "minecraft:is_emerging", - RoarSoundDelay => "minecraft:roar_sound_delay", - DigCooldown => "minecraft:dig_cooldown", - RoarSoundCooldown => "minecraft:roar_sound_cooldown", - SniffCooldown => "minecraft:sniff_cooldown", - TouchCooldown => "minecraft:touch_cooldown", - VibrationCooldown => "minecraft:vibration_cooldown", - SonicBoomCooldown => "minecraft:sonic_boom_cooldown", - SonicBoomSoundCooldown => "minecraft:sonic_boom_sound_cooldown", - SonicBoomSoundDelay => "minecraft:sonic_boom_sound_delay", - LikedPlayer => "minecraft:liked_player", - LikedNoteblock => "minecraft:liked_noteblock", - LikedNoteblockCooldownTicks => "minecraft:liked_noteblock_cooldown_ticks", - ItemPickupCooldownTicks => "minecraft:item_pickup_cooldown_ticks", - SnifferExploredPositions => "minecraft:sniffer_explored_positions", - SnifferSniffingTarget => "minecraft:sniffer_sniffing_target", - SnifferDigging => "minecraft:sniffer_digging", - SnifferHappy => "minecraft:sniffer_happy", - BreezeJumpCooldown => "minecraft:breeze_jump_cooldown", - BreezeShoot => "minecraft:breeze_shoot", - BreezeShootCharging => "minecraft:breeze_shoot_charging", - BreezeShootRecover => "minecraft:breeze_shoot_recover", - BreezeShootCooldown => "minecraft:breeze_shoot_cooldown", - BreezeJumpInhaling => "minecraft:breeze_jump_inhaling", - BreezeJumpTarget => "minecraft:breeze_jump_target", - BreezeLeavingWater => "minecraft:breeze_leaving_water", -} -} - -registry! { -enum MobEffect { - Speed => "minecraft:speed", - Slowness => "minecraft:slowness", - Haste => "minecraft:haste", - MiningFatigue => "minecraft:mining_fatigue", - Strength => "minecraft:strength", - InstantHealth => "minecraft:instant_health", - InstantDamage => "minecraft:instant_damage", - JumpBoost => "minecraft:jump_boost", - Nausea => "minecraft:nausea", - Regeneration => "minecraft:regeneration", - Resistance => "minecraft:resistance", - FireResistance => "minecraft:fire_resistance", - WaterBreathing => "minecraft:water_breathing", - Invisibility => "minecraft:invisibility", - Blindness => "minecraft:blindness", - NightVision => "minecraft:night_vision", - Hunger => "minecraft:hunger", - Weakness => "minecraft:weakness", - Poison => "minecraft:poison", - Wither => "minecraft:wither", - HealthBoost => "minecraft:health_boost", - Absorption => "minecraft:absorption", - Saturation => "minecraft:saturation", - Glowing => "minecraft:glowing", - Levitation => "minecraft:levitation", - Luck => "minecraft:luck", - Unluck => "minecraft:unluck", - SlowFalling => "minecraft:slow_falling", - ConduitPower => "minecraft:conduit_power", - DolphinsGrace => "minecraft:dolphins_grace", - BadOmen => "minecraft:bad_omen", - HeroOfTheVillage => "minecraft:hero_of_the_village", - Darkness => "minecraft:darkness", - TrialOmen => "minecraft:trial_omen", - RaidOmen => "minecraft:raid_omen", - WindCharged => "minecraft:wind_charged", - Weaving => "minecraft:weaving", - Oozing => "minecraft:oozing", - Infested => "minecraft:infested", - BreathOfTheNautilus => "minecraft:breath_of_the_nautilus", -} -} - -registry! { -enum ParticleKind { - AngryVillager => "minecraft:angry_villager", - Block => "minecraft:block", - BlockMarker => "minecraft:block_marker", - Bubble => "minecraft:bubble", - Cloud => "minecraft:cloud", - CopperFireFlame => "minecraft:copper_fire_flame", - Crit => "minecraft:crit", - DamageIndicator => "minecraft:damage_indicator", - DragonBreath => "minecraft:dragon_breath", - DrippingLava => "minecraft:dripping_lava", - FallingLava => "minecraft:falling_lava", - LandingLava => "minecraft:landing_lava", - DrippingWater => "minecraft:dripping_water", - FallingWater => "minecraft:falling_water", - Dust => "minecraft:dust", - DustColorTransition => "minecraft:dust_color_transition", - Effect => "minecraft:effect", - ElderGuardian => "minecraft:elder_guardian", - EnchantedHit => "minecraft:enchanted_hit", - Enchant => "minecraft:enchant", - EndRod => "minecraft:end_rod", - EntityEffect => "minecraft:entity_effect", - ExplosionEmitter => "minecraft:explosion_emitter", - Explosion => "minecraft:explosion", - Gust => "minecraft:gust", - SmallGust => "minecraft:small_gust", - GustEmitterLarge => "minecraft:gust_emitter_large", - GustEmitterSmall => "minecraft:gust_emitter_small", - SonicBoom => "minecraft:sonic_boom", - FallingDust => "minecraft:falling_dust", - Firework => "minecraft:firework", - Fishing => "minecraft:fishing", - Flame => "minecraft:flame", - Infested => "minecraft:infested", - CherryLeaves => "minecraft:cherry_leaves", - PaleOakLeaves => "minecraft:pale_oak_leaves", - TintedLeaves => "minecraft:tinted_leaves", - SculkSoul => "minecraft:sculk_soul", - SculkCharge => "minecraft:sculk_charge", - SculkChargePop => "minecraft:sculk_charge_pop", - SoulFireFlame => "minecraft:soul_fire_flame", - Soul => "minecraft:soul", - Flash => "minecraft:flash", - HappyVillager => "minecraft:happy_villager", - Composter => "minecraft:composter", - Heart => "minecraft:heart", - InstantEffect => "minecraft:instant_effect", - Item => "minecraft:item", - Vibration => "minecraft:vibration", - Trail => "minecraft:trail", - ItemSlime => "minecraft:item_slime", - ItemCobweb => "minecraft:item_cobweb", - ItemSnowball => "minecraft:item_snowball", - LargeSmoke => "minecraft:large_smoke", - Lava => "minecraft:lava", - Mycelium => "minecraft:mycelium", - Note => "minecraft:note", - Poof => "minecraft:poof", - Portal => "minecraft:portal", - Rain => "minecraft:rain", - Smoke => "minecraft:smoke", - WhiteSmoke => "minecraft:white_smoke", - Sneeze => "minecraft:sneeze", - Spit => "minecraft:spit", - SquidInk => "minecraft:squid_ink", - SweepAttack => "minecraft:sweep_attack", - TotemOfUndying => "minecraft:totem_of_undying", - Underwater => "minecraft:underwater", - Splash => "minecraft:splash", - Witch => "minecraft:witch", - BubblePop => "minecraft:bubble_pop", - CurrentDown => "minecraft:current_down", - BubbleColumnUp => "minecraft:bubble_column_up", - Nautilus => "minecraft:nautilus", - Dolphin => "minecraft:dolphin", - CampfireCosySmoke => "minecraft:campfire_cosy_smoke", - CampfireSignalSmoke => "minecraft:campfire_signal_smoke", - DrippingHoney => "minecraft:dripping_honey", - FallingHoney => "minecraft:falling_honey", - LandingHoney => "minecraft:landing_honey", - FallingNectar => "minecraft:falling_nectar", - FallingSporeBlossom => "minecraft:falling_spore_blossom", - Ash => "minecraft:ash", - CrimsonSpore => "minecraft:crimson_spore", - WarpedSpore => "minecraft:warped_spore", - SporeBlossomAir => "minecraft:spore_blossom_air", - DrippingObsidianTear => "minecraft:dripping_obsidian_tear", - FallingObsidianTear => "minecraft:falling_obsidian_tear", - LandingObsidianTear => "minecraft:landing_obsidian_tear", - ReversePortal => "minecraft:reverse_portal", - WhiteAsh => "minecraft:white_ash", - SmallFlame => "minecraft:small_flame", - Snowflake => "minecraft:snowflake", - DrippingDripstoneLava => "minecraft:dripping_dripstone_lava", - FallingDripstoneLava => "minecraft:falling_dripstone_lava", - DrippingDripstoneWater => "minecraft:dripping_dripstone_water", - FallingDripstoneWater => "minecraft:falling_dripstone_water", - GlowSquidInk => "minecraft:glow_squid_ink", - Glow => "minecraft:glow", - WaxOn => "minecraft:wax_on", - WaxOff => "minecraft:wax_off", - ElectricSpark => "minecraft:electric_spark", - Scrape => "minecraft:scrape", - Shriek => "minecraft:shriek", - EggCrack => "minecraft:egg_crack", - DustPlume => "minecraft:dust_plume", - TrialSpawnerDetection => "minecraft:trial_spawner_detection", - TrialSpawnerDetectionOminous => "minecraft:trial_spawner_detection_ominous", - VaultConnection => "minecraft:vault_connection", - DustPillar => "minecraft:dust_pillar", - OminousSpawning => "minecraft:ominous_spawning", - RaidOmen => "minecraft:raid_omen", - TrialOmen => "minecraft:trial_omen", - BlockCrumble => "minecraft:block_crumble", - Firefly => "minecraft:firefly", -} -} - -registry! { -enum PointOfInterestKind { - Armorer => "minecraft:armorer", - Butcher => "minecraft:butcher", - Cartographer => "minecraft:cartographer", - Cleric => "minecraft:cleric", - Farmer => "minecraft:farmer", - Fisherman => "minecraft:fisherman", - Fletcher => "minecraft:fletcher", - Leatherworker => "minecraft:leatherworker", - Librarian => "minecraft:librarian", - Mason => "minecraft:mason", - Shepherd => "minecraft:shepherd", - Toolsmith => "minecraft:toolsmith", - Weaponsmith => "minecraft:weaponsmith", - Home => "minecraft:home", - Meeting => "minecraft:meeting", - Beehive => "minecraft:beehive", - BeeNest => "minecraft:bee_nest", - NetherPortal => "minecraft:nether_portal", - Lodestone => "minecraft:lodestone", - TestInstance => "minecraft:test_instance", - LightningRod => "minecraft:lightning_rod", -} -} - -registry! { -enum PosRuleTest { - AlwaysTrue => "minecraft:always_true", - LinearPos => "minecraft:linear_pos", - AxisAlignedLinearPos => "minecraft:axis_aligned_linear_pos", -} -} - -registry! { -enum PositionSourceKind { - Block => "minecraft:block", - Entity => "minecraft:entity", -} -} - -registry! { -enum Potion { - Water => "minecraft:water", - Mundane => "minecraft:mundane", - Thick => "minecraft:thick", - Awkward => "minecraft:awkward", - NightVision => "minecraft:night_vision", - LongNightVision => "minecraft:long_night_vision", - Invisibility => "minecraft:invisibility", - LongInvisibility => "minecraft:long_invisibility", - Leaping => "minecraft:leaping", - LongLeaping => "minecraft:long_leaping", - StrongLeaping => "minecraft:strong_leaping", - FireResistance => "minecraft:fire_resistance", - LongFireResistance => "minecraft:long_fire_resistance", - Swiftness => "minecraft:swiftness", - LongSwiftness => "minecraft:long_swiftness", - StrongSwiftness => "minecraft:strong_swiftness", - Slowness => "minecraft:slowness", - LongSlowness => "minecraft:long_slowness", - StrongSlowness => "minecraft:strong_slowness", - TurtleMaster => "minecraft:turtle_master", - LongTurtleMaster => "minecraft:long_turtle_master", - StrongTurtleMaster => "minecraft:strong_turtle_master", - WaterBreathing => "minecraft:water_breathing", - LongWaterBreathing => "minecraft:long_water_breathing", - Healing => "minecraft:healing", - StrongHealing => "minecraft:strong_healing", - Harming => "minecraft:harming", - StrongHarming => "minecraft:strong_harming", - Poison => "minecraft:poison", - LongPoison => "minecraft:long_poison", - StrongPoison => "minecraft:strong_poison", - Regeneration => "minecraft:regeneration", - LongRegeneration => "minecraft:long_regeneration", - StrongRegeneration => "minecraft:strong_regeneration", - Strength => "minecraft:strength", - LongStrength => "minecraft:long_strength", - StrongStrength => "minecraft:strong_strength", - Weakness => "minecraft:weakness", - LongWeakness => "minecraft:long_weakness", - Luck => "minecraft:luck", - SlowFalling => "minecraft:slow_falling", - LongSlowFalling => "minecraft:long_slow_falling", - WindCharged => "minecraft:wind_charged", - Weaving => "minecraft:weaving", - Oozing => "minecraft:oozing", - Infested => "minecraft:infested", -} -} - -registry! { -enum RecipeSerializer { - CraftingShaped => "minecraft:crafting_shaped", - CraftingShapeless => "minecraft:crafting_shapeless", - CraftingSpecialArmordye => "minecraft:crafting_special_armordye", - CraftingSpecialBookcloning => "minecraft:crafting_special_bookcloning", - CraftingSpecialMapcloning => "minecraft:crafting_special_mapcloning", - CraftingSpecialMapextending => "minecraft:crafting_special_mapextending", - CraftingSpecialFireworkRocket => "minecraft:crafting_special_firework_rocket", - CraftingSpecialFireworkStar => "minecraft:crafting_special_firework_star", - CraftingSpecialFireworkStarFade => "minecraft:crafting_special_firework_star_fade", - CraftingSpecialTippedarrow => "minecraft:crafting_special_tippedarrow", - CraftingSpecialBannerduplicate => "minecraft:crafting_special_bannerduplicate", - CraftingSpecialShielddecoration => "minecraft:crafting_special_shielddecoration", - CraftingTransmute => "minecraft:crafting_transmute", - CraftingSpecialRepairitem => "minecraft:crafting_special_repairitem", - Smelting => "minecraft:smelting", - Blasting => "minecraft:blasting", - Smoking => "minecraft:smoking", - CampfireCooking => "minecraft:campfire_cooking", - Stonecutting => "minecraft:stonecutting", - SmithingTransform => "minecraft:smithing_transform", - SmithingTrim => "minecraft:smithing_trim", - CraftingDecoratedPot => "minecraft:crafting_decorated_pot", -} -} - -registry! { -enum RecipeKind { - Crafting => "minecraft:crafting", - Smelting => "minecraft:smelting", - Blasting => "minecraft:blasting", - Smoking => "minecraft:smoking", - CampfireCooking => "minecraft:campfire_cooking", - Stonecutting => "minecraft:stonecutting", - Smithing => "minecraft:smithing", -} -} - -registry! { -enum RuleTest { - AlwaysTrue => "minecraft:always_true", - BlockMatch => "minecraft:block_match", - BlockstateMatch => "minecraft:blockstate_match", - TagMatch => "minecraft:tag_match", - RandomBlockMatch => "minecraft:random_block_match", - RandomBlockstateMatch => "minecraft:random_blockstate_match", -} -} - -registry! { -enum SensorKind { - Dummy => "minecraft:dummy", - NearestItems => "minecraft:nearest_items", - NearestLivingEntities => "minecraft:nearest_living_entities", - NearestPlayers => "minecraft:nearest_players", - NearestBed => "minecraft:nearest_bed", - HurtBy => "minecraft:hurt_by", - VillagerHostiles => "minecraft:villager_hostiles", - VillagerBabies => "minecraft:villager_babies", - SecondaryPois => "minecraft:secondary_pois", - GolemDetected => "minecraft:golem_detected", - ArmadilloScareDetected => "minecraft:armadillo_scare_detected", - PiglinSpecificSensor => "minecraft:piglin_specific_sensor", - PiglinBruteSpecificSensor => "minecraft:piglin_brute_specific_sensor", - HoglinSpecificSensor => "minecraft:hoglin_specific_sensor", - NearestAdult => "minecraft:nearest_adult", - NearestAdultAnyType => "minecraft:nearest_adult_any_type", - AxolotlAttackables => "minecraft:axolotl_attackables", - FoodTemptations => "minecraft:food_temptations", - FrogTemptations => "minecraft:frog_temptations", - NautilusTemptations => "minecraft:nautilus_temptations", - FrogAttackables => "minecraft:frog_attackables", - IsInWater => "minecraft:is_in_water", - WardenEntitySensor => "minecraft:warden_entity_sensor", - BreezeAttackEntitySensor => "minecraft:breeze_attack_entity_sensor", -} -} - -registry! { -/// A known type of sound in Minecraft. +/// A registry which has its values decided by the server in the +/// `ClientboundRegistryData` packet. /// -/// If you need to support custom sounds from resource packs, you should use -/// `azalea_registry::Holder<SoundEvent, azalea_core::sound::CustomSound>` instead. -enum SoundEvent { - EntityAllayAmbientWithItem => "minecraft:entity.allay.ambient_with_item", - EntityAllayAmbientWithoutItem => "minecraft:entity.allay.ambient_without_item", - EntityAllayDeath => "minecraft:entity.allay.death", - EntityAllayHurt => "minecraft:entity.allay.hurt", - EntityAllayItemGiven => "minecraft:entity.allay.item_given", - EntityAllayItemTaken => "minecraft:entity.allay.item_taken", - EntityAllayItemThrown => "minecraft:entity.allay.item_thrown", - AmbientCave => "minecraft:ambient.cave", - AmbientBasaltDeltasAdditions => "minecraft:ambient.basalt_deltas.additions", - AmbientBasaltDeltasLoop => "minecraft:ambient.basalt_deltas.loop", - AmbientBasaltDeltasMood => "minecraft:ambient.basalt_deltas.mood", - AmbientCrimsonForestAdditions => "minecraft:ambient.crimson_forest.additions", - AmbientCrimsonForestLoop => "minecraft:ambient.crimson_forest.loop", - AmbientCrimsonForestMood => "minecraft:ambient.crimson_forest.mood", - AmbientNetherWastesAdditions => "minecraft:ambient.nether_wastes.additions", - AmbientNetherWastesLoop => "minecraft:ambient.nether_wastes.loop", - AmbientNetherWastesMood => "minecraft:ambient.nether_wastes.mood", - AmbientSoulSandValleyAdditions => "minecraft:ambient.soul_sand_valley.additions", - AmbientSoulSandValleyLoop => "minecraft:ambient.soul_sand_valley.loop", - AmbientSoulSandValleyMood => "minecraft:ambient.soul_sand_valley.mood", - AmbientWarpedForestAdditions => "minecraft:ambient.warped_forest.additions", - AmbientWarpedForestLoop => "minecraft:ambient.warped_forest.loop", - AmbientWarpedForestMood => "minecraft:ambient.warped_forest.mood", - AmbientUnderwaterEnter => "minecraft:ambient.underwater.enter", - AmbientUnderwaterExit => "minecraft:ambient.underwater.exit", - AmbientUnderwaterLoop => "minecraft:ambient.underwater.loop", - AmbientUnderwaterLoopAdditions => "minecraft:ambient.underwater.loop.additions", - AmbientUnderwaterLoopAdditionsRare => "minecraft:ambient.underwater.loop.additions.rare", - AmbientUnderwaterLoopAdditionsUltraRare => "minecraft:ambient.underwater.loop.additions.ultra_rare", - BlockAmethystBlockBreak => "minecraft:block.amethyst_block.break", - BlockAmethystBlockChime => "minecraft:block.amethyst_block.chime", - BlockAmethystBlockFall => "minecraft:block.amethyst_block.fall", - BlockAmethystBlockHit => "minecraft:block.amethyst_block.hit", - BlockAmethystBlockPlace => "minecraft:block.amethyst_block.place", - BlockAmethystBlockResonate => "minecraft:block.amethyst_block.resonate", - BlockAmethystBlockStep => "minecraft:block.amethyst_block.step", - BlockAmethystClusterBreak => "minecraft:block.amethyst_cluster.break", - BlockAmethystClusterFall => "minecraft:block.amethyst_cluster.fall", - BlockAmethystClusterHit => "minecraft:block.amethyst_cluster.hit", - BlockAmethystClusterPlace => "minecraft:block.amethyst_cluster.place", - BlockAmethystClusterStep => "minecraft:block.amethyst_cluster.step", - BlockAncientDebrisBreak => "minecraft:block.ancient_debris.break", - BlockAncientDebrisStep => "minecraft:block.ancient_debris.step", - BlockAncientDebrisPlace => "minecraft:block.ancient_debris.place", - BlockAncientDebrisHit => "minecraft:block.ancient_debris.hit", - BlockAncientDebrisFall => "minecraft:block.ancient_debris.fall", - BlockAnvilBreak => "minecraft:block.anvil.break", - BlockAnvilDestroy => "minecraft:block.anvil.destroy", - BlockAnvilFall => "minecraft:block.anvil.fall", - BlockAnvilHit => "minecraft:block.anvil.hit", - BlockAnvilLand => "minecraft:block.anvil.land", - BlockAnvilPlace => "minecraft:block.anvil.place", - BlockAnvilStep => "minecraft:block.anvil.step", - BlockAnvilUse => "minecraft:block.anvil.use", - EntityArmadilloEat => "minecraft:entity.armadillo.eat", - EntityArmadilloHurt => "minecraft:entity.armadillo.hurt", - EntityArmadilloHurtReduced => "minecraft:entity.armadillo.hurt_reduced", - EntityArmadilloAmbient => "minecraft:entity.armadillo.ambient", - EntityArmadilloStep => "minecraft:entity.armadillo.step", - EntityArmadilloDeath => "minecraft:entity.armadillo.death", - EntityArmadilloRoll => "minecraft:entity.armadillo.roll", - EntityArmadilloLand => "minecraft:entity.armadillo.land", - EntityArmadilloScuteDrop => "minecraft:entity.armadillo.scute_drop", - EntityArmadilloUnrollFinish => "minecraft:entity.armadillo.unroll_finish", - EntityArmadilloPeek => "minecraft:entity.armadillo.peek", - EntityArmadilloUnrollStart => "minecraft:entity.armadillo.unroll_start", - EntityArmadilloBrush => "minecraft:entity.armadillo.brush", - ItemArmorEquipChain => "minecraft:item.armor.equip_chain", - ItemArmorEquipDiamond => "minecraft:item.armor.equip_diamond", - ItemArmorEquipElytra => "minecraft:item.armor.equip_elytra", - ItemArmorEquipGeneric => "minecraft:item.armor.equip_generic", - ItemArmorEquipGold => "minecraft:item.armor.equip_gold", - ItemArmorEquipIron => "minecraft:item.armor.equip_iron", - ItemArmorEquipLeather => "minecraft:item.armor.equip_leather", - ItemArmorEquipCopper => "minecraft:item.armor.equip_copper", - ItemArmorEquipNetherite => "minecraft:item.armor.equip_netherite", - 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", - EntityArmorStandPlace => "minecraft:entity.armor_stand.place", - EntityArrowHit => "minecraft:entity.arrow.hit", - EntityArrowHitPlayer => "minecraft:entity.arrow.hit_player", - EntityArrowShoot => "minecraft:entity.arrow.shoot", - ItemAxeStrip => "minecraft:item.axe.strip", - ItemAxeScrape => "minecraft:item.axe.scrape", - ItemAxeWaxOff => "minecraft:item.axe.wax_off", - EntityAxolotlAttack => "minecraft:entity.axolotl.attack", - EntityAxolotlDeath => "minecraft:entity.axolotl.death", - EntityAxolotlHurt => "minecraft:entity.axolotl.hurt", - EntityAxolotlIdleAir => "minecraft:entity.axolotl.idle_air", - EntityAxolotlIdleWater => "minecraft:entity.axolotl.idle_water", - EntityAxolotlSplash => "minecraft:entity.axolotl.splash", - EntityAxolotlSwim => "minecraft:entity.axolotl.swim", - BlockAzaleaBreak => "minecraft:block.azalea.break", - BlockAzaleaFall => "minecraft:block.azalea.fall", - BlockAzaleaHit => "minecraft:block.azalea.hit", - BlockAzaleaPlace => "minecraft:block.azalea.place", - BlockAzaleaStep => "minecraft:block.azalea.step", - BlockAzaleaLeavesBreak => "minecraft:block.azalea_leaves.break", - BlockAzaleaLeavesFall => "minecraft:block.azalea_leaves.fall", - BlockAzaleaLeavesHit => "minecraft:block.azalea_leaves.hit", - 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", - BlockBambooFall => "minecraft:block.bamboo.fall", - BlockBambooHit => "minecraft:block.bamboo.hit", - BlockBambooPlace => "minecraft:block.bamboo.place", - BlockBambooStep => "minecraft:block.bamboo.step", - BlockBambooSaplingBreak => "minecraft:block.bamboo_sapling.break", - BlockBambooSaplingHit => "minecraft:block.bamboo_sapling.hit", - BlockBambooSaplingPlace => "minecraft:block.bamboo_sapling.place", - BlockBambooWoodBreak => "minecraft:block.bamboo_wood.break", - BlockBambooWoodFall => "minecraft:block.bamboo_wood.fall", - BlockBambooWoodHit => "minecraft:block.bamboo_wood.hit", - BlockBambooWoodPlace => "minecraft:block.bamboo_wood.place", - BlockBambooWoodStep => "minecraft:block.bamboo_wood.step", - BlockBambooWoodDoorClose => "minecraft:block.bamboo_wood_door.close", - BlockBambooWoodDoorOpen => "minecraft:block.bamboo_wood_door.open", - BlockBambooWoodTrapdoorClose => "minecraft:block.bamboo_wood_trapdoor.close", - BlockBambooWoodTrapdoorOpen => "minecraft:block.bamboo_wood_trapdoor.open", - BlockBambooWoodButtonClickOff => "minecraft:block.bamboo_wood_button.click_off", - BlockBambooWoodButtonClickOn => "minecraft:block.bamboo_wood_button.click_on", - BlockBambooWoodPressurePlateClickOff => "minecraft:block.bamboo_wood_pressure_plate.click_off", - BlockBambooWoodPressurePlateClickOn => "minecraft:block.bamboo_wood_pressure_plate.click_on", - BlockBambooWoodFenceGateClose => "minecraft:block.bamboo_wood_fence_gate.close", - BlockBambooWoodFenceGateOpen => "minecraft:block.bamboo_wood_fence_gate.open", - BlockBarrelClose => "minecraft:block.barrel.close", - BlockBarrelOpen => "minecraft:block.barrel.open", - BlockBasaltBreak => "minecraft:block.basalt.break", - BlockBasaltStep => "minecraft:block.basalt.step", - BlockBasaltPlace => "minecraft:block.basalt.place", - BlockBasaltHit => "minecraft:block.basalt.hit", - BlockBasaltFall => "minecraft:block.basalt.fall", - EntityBatAmbient => "minecraft:entity.bat.ambient", - EntityBatDeath => "minecraft:entity.bat.death", - EntityBatHurt => "minecraft:entity.bat.hurt", - EntityBatLoop => "minecraft:entity.bat.loop", - EntityBatTakeoff => "minecraft:entity.bat.takeoff", - BlockBeaconActivate => "minecraft:block.beacon.activate", - BlockBeaconAmbient => "minecraft:block.beacon.ambient", - BlockBeaconDeactivate => "minecraft:block.beacon.deactivate", - BlockBeaconPowerSelect => "minecraft:block.beacon.power_select", - EntityBeeDeath => "minecraft:entity.bee.death", - EntityBeeHurt => "minecraft:entity.bee.hurt", - EntityBeeLoopAggressive => "minecraft:entity.bee.loop_aggressive", - EntityBeeLoop => "minecraft:entity.bee.loop", - EntityBeeSting => "minecraft:entity.bee.sting", - EntityBeePollinate => "minecraft:entity.bee.pollinate", - BlockBeehiveDrip => "minecraft:block.beehive.drip", - BlockBeehiveEnter => "minecraft:block.beehive.enter", - BlockBeehiveExit => "minecraft:block.beehive.exit", - BlockBeehiveShear => "minecraft:block.beehive.shear", - BlockBeehiveWork => "minecraft:block.beehive.work", - BlockBellUse => "minecraft:block.bell.use", - BlockBellResonate => "minecraft:block.bell.resonate", - BlockBigDripleafBreak => "minecraft:block.big_dripleaf.break", - BlockBigDripleafFall => "minecraft:block.big_dripleaf.fall", - BlockBigDripleafHit => "minecraft:block.big_dripleaf.hit", - BlockBigDripleafPlace => "minecraft:block.big_dripleaf.place", - BlockBigDripleafStep => "minecraft:block.big_dripleaf.step", - EntityBlazeAmbient => "minecraft:entity.blaze.ambient", - EntityBlazeBurn => "minecraft:entity.blaze.burn", - EntityBlazeDeath => "minecraft:entity.blaze.death", - EntityBlazeHurt => "minecraft:entity.blaze.hurt", - EntityBlazeShoot => "minecraft:entity.blaze.shoot", - EntityBoatPaddleLand => "minecraft:entity.boat.paddle_land", - EntityBoatPaddleWater => "minecraft:entity.boat.paddle_water", - EntityBoggedAmbient => "minecraft:entity.bogged.ambient", - EntityBoggedDeath => "minecraft:entity.bogged.death", - EntityBoggedHurt => "minecraft:entity.bogged.hurt", - EntityBoggedShear => "minecraft:entity.bogged.shear", - EntityBoggedStep => "minecraft:entity.bogged.step", - BlockBoneBlockBreak => "minecraft:block.bone_block.break", - BlockBoneBlockFall => "minecraft:block.bone_block.fall", - BlockBoneBlockHit => "minecraft:block.bone_block.hit", - BlockBoneBlockPlace => "minecraft:block.bone_block.place", - BlockBoneBlockStep => "minecraft:block.bone_block.step", - ItemBoneMealUse => "minecraft:item.bone_meal.use", - ItemBookPageTurn => "minecraft:item.book.page_turn", - ItemBookPut => "minecraft:item.book.put", - BlockBlastfurnaceFireCrackle => "minecraft:block.blastfurnace.fire_crackle", - ItemBottleEmpty => "minecraft:item.bottle.empty", - ItemBottleFill => "minecraft:item.bottle.fill", - ItemBottleFillDragonbreath => "minecraft:item.bottle.fill_dragonbreath", - EntityBreezeCharge => "minecraft:entity.breeze.charge", - EntityBreezeDeflect => "minecraft:entity.breeze.deflect", - EntityBreezeInhale => "minecraft:entity.breeze.inhale", - EntityBreezeIdleGround => "minecraft:entity.breeze.idle_ground", - EntityBreezeIdleAir => "minecraft:entity.breeze.idle_air", - EntityBreezeShoot => "minecraft:entity.breeze.shoot", - EntityBreezeJump => "minecraft:entity.breeze.jump", - EntityBreezeLand => "minecraft:entity.breeze.land", - EntityBreezeSlide => "minecraft:entity.breeze.slide", - EntityBreezeDeath => "minecraft:entity.breeze.death", - EntityBreezeHurt => "minecraft:entity.breeze.hurt", - EntityBreezeWhirl => "minecraft:entity.breeze.whirl", - EntityBreezeWindBurst => "minecraft:entity.breeze.wind_burst", - BlockBrewingStandBrew => "minecraft:block.brewing_stand.brew", - ItemBrushBrushingGeneric => "minecraft:item.brush.brushing.generic", - ItemBrushBrushingSand => "minecraft:item.brush.brushing.sand", - ItemBrushBrushingGravel => "minecraft:item.brush.brushing.gravel", - ItemBrushBrushingSandComplete => "minecraft:item.brush.brushing.sand.complete", - ItemBrushBrushingGravelComplete => "minecraft:item.brush.brushing.gravel.complete", - BlockBubbleColumnBubblePop => "minecraft:block.bubble_column.bubble_pop", - BlockBubbleColumnUpwardsAmbient => "minecraft:block.bubble_column.upwards_ambient", - BlockBubbleColumnUpwardsInside => "minecraft:block.bubble_column.upwards_inside", - BlockBubbleColumnWhirlpoolAmbient => "minecraft:block.bubble_column.whirlpool_ambient", - BlockBubbleColumnWhirlpoolInside => "minecraft:block.bubble_column.whirlpool_inside", - UiHudBubblePop => "minecraft:ui.hud.bubble_pop", - ItemBucketEmpty => "minecraft:item.bucket.empty", - ItemBucketEmptyAxolotl => "minecraft:item.bucket.empty_axolotl", - ItemBucketEmptyFish => "minecraft:item.bucket.empty_fish", - ItemBucketEmptyLava => "minecraft:item.bucket.empty_lava", - ItemBucketEmptyPowderSnow => "minecraft:item.bucket.empty_powder_snow", - ItemBucketEmptyTadpole => "minecraft:item.bucket.empty_tadpole", - ItemBucketFill => "minecraft:item.bucket.fill", - ItemBucketFillAxolotl => "minecraft:item.bucket.fill_axolotl", - ItemBucketFillFish => "minecraft:item.bucket.fill_fish", - ItemBucketFillLava => "minecraft:item.bucket.fill_lava", - ItemBucketFillPowderSnow => "minecraft:item.bucket.fill_powder_snow", - ItemBucketFillTadpole => "minecraft:item.bucket.fill_tadpole", - ItemBundleDropContents => "minecraft:item.bundle.drop_contents", - ItemBundleInsert => "minecraft:item.bundle.insert", - ItemBundleInsertFail => "minecraft:item.bundle.insert_fail", - ItemBundleRemoveOne => "minecraft:item.bundle.remove_one", - BlockCactusFlowerBreak => "minecraft:block.cactus_flower.break", - BlockCactusFlowerPlace => "minecraft:block.cactus_flower.place", - BlockCakeAddCandle => "minecraft:block.cake.add_candle", - BlockCalciteBreak => "minecraft:block.calcite.break", - BlockCalciteStep => "minecraft:block.calcite.step", - 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", - EntityCamelDeath => "minecraft:entity.camel.death", - EntityCamelEat => "minecraft:entity.camel.eat", - EntityCamelHurt => "minecraft:entity.camel.hurt", - EntityCamelSaddle => "minecraft:entity.camel.saddle", - EntityCamelSit => "minecraft:entity.camel.sit", - EntityCamelStand => "minecraft:entity.camel.stand", - EntityCamelStep => "minecraft:entity.camel.step", - EntityCamelStepSand => "minecraft:entity.camel.step_sand", - BlockCampfireCrackle => "minecraft:block.campfire.crackle", - BlockCandleAmbient => "minecraft:block.candle.ambient", - BlockCandleBreak => "minecraft:block.candle.break", - BlockCandleExtinguish => "minecraft:block.candle.extinguish", - BlockCandleFall => "minecraft:block.candle.fall", - BlockCandleHit => "minecraft:block.candle.hit", - BlockCandlePlace => "minecraft:block.candle.place", - BlockCandleStep => "minecraft:block.candle.step", - EntityCatAmbient => "minecraft:entity.cat.ambient", - EntityCatStrayAmbient => "minecraft:entity.cat.stray_ambient", - EntityCatDeath => "minecraft:entity.cat.death", - EntityCatEat => "minecraft:entity.cat.eat", - EntityCatHiss => "minecraft:entity.cat.hiss", - EntityCatBegForFood => "minecraft:entity.cat.beg_for_food", - EntityCatHurt => "minecraft:entity.cat.hurt", - EntityCatPurr => "minecraft:entity.cat.purr", - EntityCatPurreow => "minecraft:entity.cat.purreow", - BlockCaveVinesBreak => "minecraft:block.cave_vines.break", - BlockCaveVinesFall => "minecraft:block.cave_vines.fall", - BlockCaveVinesHit => "minecraft:block.cave_vines.hit", - BlockCaveVinesPlace => "minecraft:block.cave_vines.place", - BlockCaveVinesStep => "minecraft:block.cave_vines.step", - BlockCaveVinesPickBerries => "minecraft:block.cave_vines.pick_berries", - BlockChainBreak => "minecraft:block.chain.break", - BlockChainFall => "minecraft:block.chain.fall", - BlockChainHit => "minecraft:block.chain.hit", - BlockChainPlace => "minecraft:block.chain.place", - BlockChainStep => "minecraft:block.chain.step", - BlockCherryWoodBreak => "minecraft:block.cherry_wood.break", - BlockCherryWoodFall => "minecraft:block.cherry_wood.fall", - BlockCherryWoodHit => "minecraft:block.cherry_wood.hit", - BlockCherryWoodPlace => "minecraft:block.cherry_wood.place", - BlockCherryWoodStep => "minecraft:block.cherry_wood.step", - BlockCherrySaplingBreak => "minecraft:block.cherry_sapling.break", - BlockCherrySaplingFall => "minecraft:block.cherry_sapling.fall", - BlockCherrySaplingHit => "minecraft:block.cherry_sapling.hit", - BlockCherrySaplingPlace => "minecraft:block.cherry_sapling.place", - BlockCherrySaplingStep => "minecraft:block.cherry_sapling.step", - BlockCherryLeavesBreak => "minecraft:block.cherry_leaves.break", - BlockCherryLeavesFall => "minecraft:block.cherry_leaves.fall", - BlockCherryLeavesHit => "minecraft:block.cherry_leaves.hit", - BlockCherryLeavesPlace => "minecraft:block.cherry_leaves.place", - BlockCherryLeavesStep => "minecraft:block.cherry_leaves.step", - BlockCherryWoodHangingSignStep => "minecraft:block.cherry_wood_hanging_sign.step", - BlockCherryWoodHangingSignBreak => "minecraft:block.cherry_wood_hanging_sign.break", - BlockCherryWoodHangingSignFall => "minecraft:block.cherry_wood_hanging_sign.fall", - BlockCherryWoodHangingSignHit => "minecraft:block.cherry_wood_hanging_sign.hit", - BlockCherryWoodHangingSignPlace => "minecraft:block.cherry_wood_hanging_sign.place", - BlockCherryWoodDoorClose => "minecraft:block.cherry_wood_door.close", - BlockCherryWoodDoorOpen => "minecraft:block.cherry_wood_door.open", - BlockCherryWoodTrapdoorClose => "minecraft:block.cherry_wood_trapdoor.close", - BlockCherryWoodTrapdoorOpen => "minecraft:block.cherry_wood_trapdoor.open", - BlockCherryWoodButtonClickOff => "minecraft:block.cherry_wood_button.click_off", - BlockCherryWoodButtonClickOn => "minecraft:block.cherry_wood_button.click_on", - BlockCherryWoodPressurePlateClickOff => "minecraft:block.cherry_wood_pressure_plate.click_off", - BlockCherryWoodPressurePlateClickOn => "minecraft:block.cherry_wood_pressure_plate.click_on", - BlockCherryWoodFenceGateClose => "minecraft:block.cherry_wood_fence_gate.close", - BlockCherryWoodFenceGateOpen => "minecraft:block.cherry_wood_fence_gate.open", - BlockChestClose => "minecraft:block.chest.close", - BlockChestLocked => "minecraft:block.chest.locked", - BlockChestOpen => "minecraft:block.chest.open", - EntityChickenAmbient => "minecraft:entity.chicken.ambient", - EntityChickenDeath => "minecraft:entity.chicken.death", - EntityChickenEgg => "minecraft:entity.chicken.egg", - EntityChickenHurt => "minecraft:entity.chicken.hurt", - EntityChickenStep => "minecraft:entity.chicken.step", - BlockChiseledBookshelfBreak => "minecraft:block.chiseled_bookshelf.break", - BlockChiseledBookshelfFall => "minecraft:block.chiseled_bookshelf.fall", - BlockChiseledBookshelfHit => "minecraft:block.chiseled_bookshelf.hit", - BlockChiseledBookshelfInsert => "minecraft:block.chiseled_bookshelf.insert", - BlockChiseledBookshelfInsertEnchanted => "minecraft:block.chiseled_bookshelf.insert.enchanted", - BlockChiseledBookshelfStep => "minecraft:block.chiseled_bookshelf.step", - BlockChiseledBookshelfPickup => "minecraft:block.chiseled_bookshelf.pickup", - BlockChiseledBookshelfPickupEnchanted => "minecraft:block.chiseled_bookshelf.pickup.enchanted", - BlockChiseledBookshelfPlace => "minecraft:block.chiseled_bookshelf.place", - BlockChorusFlowerDeath => "minecraft:block.chorus_flower.death", - BlockChorusFlowerGrow => "minecraft:block.chorus_flower.grow", - ItemChorusFruitTeleport => "minecraft:item.chorus_fruit.teleport", - BlockCobwebBreak => "minecraft:block.cobweb.break", - BlockCobwebStep => "minecraft:block.cobweb.step", - BlockCobwebPlace => "minecraft:block.cobweb.place", - BlockCobwebHit => "minecraft:block.cobweb.hit", - BlockCobwebFall => "minecraft:block.cobweb.fall", - EntityCodAmbient => "minecraft:entity.cod.ambient", - EntityCodDeath => "minecraft:entity.cod.death", - EntityCodFlop => "minecraft:entity.cod.flop", - EntityCodHurt => "minecraft:entity.cod.hurt", - BlockComparatorClick => "minecraft:block.comparator.click", - BlockComposterEmpty => "minecraft:block.composter.empty", - BlockComposterFill => "minecraft:block.composter.fill", - BlockComposterFillSuccess => "minecraft:block.composter.fill_success", - BlockComposterReady => "minecraft:block.composter.ready", - BlockConduitActivate => "minecraft:block.conduit.activate", - BlockConduitAmbient => "minecraft:block.conduit.ambient", - BlockConduitAmbientShort => "minecraft:block.conduit.ambient.short", - BlockConduitAttackTarget => "minecraft:block.conduit.attack.target", - BlockConduitDeactivate => "minecraft:block.conduit.deactivate", - BlockCopperBulbBreak => "minecraft:block.copper_bulb.break", - BlockCopperBulbStep => "minecraft:block.copper_bulb.step", - BlockCopperBulbPlace => "minecraft:block.copper_bulb.place", - BlockCopperBulbHit => "minecraft:block.copper_bulb.hit", - BlockCopperBulbFall => "minecraft:block.copper_bulb.fall", - BlockCopperBulbTurnOn => "minecraft:block.copper_bulb.turn_on", - BlockCopperBulbTurnOff => "minecraft:block.copper_bulb.turn_off", - BlockCopperBreak => "minecraft:block.copper.break", - BlockCopperStep => "minecraft:block.copper.step", - BlockCopperPlace => "minecraft:block.copper.place", - BlockCopperHit => "minecraft:block.copper.hit", - BlockCopperFall => "minecraft:block.copper.fall", - BlockCopperChestClose => "minecraft:block.copper_chest.close", - BlockCopperChestOpen => "minecraft:block.copper_chest.open", - BlockCopperChestWeatheredClose => "minecraft:block.copper_chest_weathered.close", - BlockCopperChestWeatheredOpen => "minecraft:block.copper_chest_weathered.open", - BlockCopperChestOxidizedClose => "minecraft:block.copper_chest_oxidized.close", - BlockCopperChestOxidizedOpen => "minecraft:block.copper_chest_oxidized.open", - BlockCopperDoorClose => "minecraft:block.copper_door.close", - BlockCopperDoorOpen => "minecraft:block.copper_door.open", - EntityCopperGolemStep => "minecraft:entity.copper_golem.step", - EntityCopperGolemHurt => "minecraft:entity.copper_golem.hurt", - EntityCopperGolemDeath => "minecraft:entity.copper_golem.death", - EntityCopperGolemWeatheredStep => "minecraft:entity.copper_golem_weathered.step", - EntityCopperGolemWeatheredHurt => "minecraft:entity.copper_golem_weathered.hurt", - EntityCopperGolemWeatheredDeath => "minecraft:entity.copper_golem_weathered.death", - EntityCopperGolemOxidizedStep => "minecraft:entity.copper_golem_oxidized.step", - EntityCopperGolemOxidizedHurt => "minecraft:entity.copper_golem_oxidized.hurt", - EntityCopperGolemOxidizedDeath => "minecraft:entity.copper_golem_oxidized.death", - EntityCopperGolemSpin => "minecraft:entity.copper_golem.spin", - EntityCopperGolemWeatheredSpin => "minecraft:entity.copper_golem_weathered.spin", - EntityCopperGolemOxidizedSpin => "minecraft:entity.copper_golem_oxidized.spin", - EntityCopperGolemNoItemGet => "minecraft:entity.copper_golem.no_item_get", - EntityCopperGolemNoItemNoGet => "minecraft:entity.copper_golem.no_item_no_get", - EntityCopperGolemItemDrop => "minecraft:entity.copper_golem.item_drop", - EntityCopperGolemItemNoDrop => "minecraft:entity.copper_golem.item_no_drop", - EntityCopperGolemBecomeStatue => "minecraft:entity.copper_golem_become_statue", - BlockCopperGolemStatueBreak => "minecraft:block.copper_golem_statue.break", - BlockCopperGolemStatuePlace => "minecraft:block.copper_golem_statue.place", - BlockCopperGolemStatueHit => "minecraft:block.copper_golem_statue.hit", - BlockCopperGolemStatueStep => "minecraft:block.copper_golem_statue.step", - BlockCopperGolemStatueFall => "minecraft:block.copper_golem_statue.fall", - EntityCopperGolemSpawn => "minecraft:entity.copper_golem.spawn", - EntityCopperGolemShear => "minecraft:entity.copper_golem.shear", - BlockCopperGrateBreak => "minecraft:block.copper_grate.break", - BlockCopperGrateStep => "minecraft:block.copper_grate.step", - BlockCopperGratePlace => "minecraft:block.copper_grate.place", - BlockCopperGrateHit => "minecraft:block.copper_grate.hit", - BlockCopperGrateFall => "minecraft:block.copper_grate.fall", - BlockCopperTrapdoorClose => "minecraft:block.copper_trapdoor.close", - BlockCopperTrapdoorOpen => "minecraft:block.copper_trapdoor.open", - BlockCoralBlockBreak => "minecraft:block.coral_block.break", - BlockCoralBlockFall => "minecraft:block.coral_block.fall", - BlockCoralBlockHit => "minecraft:block.coral_block.hit", - BlockCoralBlockPlace => "minecraft:block.coral_block.place", - BlockCoralBlockStep => "minecraft:block.coral_block.step", - EntityCowAmbient => "minecraft:entity.cow.ambient", - EntityCowDeath => "minecraft:entity.cow.death", - EntityCowHurt => "minecraft:entity.cow.hurt", - EntityCowMilk => "minecraft:entity.cow.milk", - EntityCowStep => "minecraft:entity.cow.step", - BlockCrafterCraft => "minecraft:block.crafter.craft", - BlockCrafterFail => "minecraft:block.crafter.fail", - EntityCreakingAmbient => "minecraft:entity.creaking.ambient", - EntityCreakingActivate => "minecraft:entity.creaking.activate", - EntityCreakingDeactivate => "minecraft:entity.creaking.deactivate", - EntityCreakingAttack => "minecraft:entity.creaking.attack", - EntityCreakingDeath => "minecraft:entity.creaking.death", - EntityCreakingStep => "minecraft:entity.creaking.step", - EntityCreakingFreeze => "minecraft:entity.creaking.freeze", - EntityCreakingUnfreeze => "minecraft:entity.creaking.unfreeze", - EntityCreakingSpawn => "minecraft:entity.creaking.spawn", - EntityCreakingSway => "minecraft:entity.creaking.sway", - EntityCreakingTwitch => "minecraft:entity.creaking.twitch", - BlockCreakingHeartBreak => "minecraft:block.creaking_heart.break", - BlockCreakingHeartFall => "minecraft:block.creaking_heart.fall", - BlockCreakingHeartHit => "minecraft:block.creaking_heart.hit", - BlockCreakingHeartHurt => "minecraft:block.creaking_heart.hurt", - BlockCreakingHeartPlace => "minecraft:block.creaking_heart.place", - BlockCreakingHeartStep => "minecraft:block.creaking_heart.step", - BlockCreakingHeartIdle => "minecraft:block.creaking_heart.idle", - BlockCreakingHeartSpawn => "minecraft:block.creaking_heart.spawn", - EntityCreeperDeath => "minecraft:entity.creeper.death", - EntityCreeperHurt => "minecraft:entity.creeper.hurt", - EntityCreeperPrimed => "minecraft:entity.creeper.primed", - BlockCropBreak => "minecraft:block.crop.break", - ItemCropPlant => "minecraft:item.crop.plant", - ItemCrossbowHit => "minecraft:item.crossbow.hit", - ItemCrossbowLoadingEnd => "minecraft:item.crossbow.loading_end", - ItemCrossbowLoadingMiddle => "minecraft:item.crossbow.loading_middle", - ItemCrossbowLoadingStart => "minecraft:item.crossbow.loading_start", - ItemCrossbowQuickCharge1 => "minecraft:item.crossbow.quick_charge_1", - ItemCrossbowQuickCharge2 => "minecraft:item.crossbow.quick_charge_2", - ItemCrossbowQuickCharge3 => "minecraft:item.crossbow.quick_charge_3", - ItemCrossbowShoot => "minecraft:item.crossbow.shoot", - BlockDeadbushIdle => "minecraft:block.deadbush.idle", - BlockDecoratedPotBreak => "minecraft:block.decorated_pot.break", - BlockDecoratedPotFall => "minecraft:block.decorated_pot.fall", - BlockDecoratedPotHit => "minecraft:block.decorated_pot.hit", - BlockDecoratedPotInsert => "minecraft:block.decorated_pot.insert", - BlockDecoratedPotInsertFail => "minecraft:block.decorated_pot.insert_fail", - BlockDecoratedPotStep => "minecraft:block.decorated_pot.step", - BlockDecoratedPotPlace => "minecraft:block.decorated_pot.place", - BlockDecoratedPotShatter => "minecraft:block.decorated_pot.shatter", - BlockDeepslateBricksBreak => "minecraft:block.deepslate_bricks.break", - BlockDeepslateBricksFall => "minecraft:block.deepslate_bricks.fall", - BlockDeepslateBricksHit => "minecraft:block.deepslate_bricks.hit", - BlockDeepslateBricksPlace => "minecraft:block.deepslate_bricks.place", - BlockDeepslateBricksStep => "minecraft:block.deepslate_bricks.step", - BlockDeepslateBreak => "minecraft:block.deepslate.break", - BlockDeepslateFall => "minecraft:block.deepslate.fall", - BlockDeepslateHit => "minecraft:block.deepslate.hit", - BlockDeepslatePlace => "minecraft:block.deepslate.place", - BlockDeepslateStep => "minecraft:block.deepslate.step", - BlockDeepslateTilesBreak => "minecraft:block.deepslate_tiles.break", - BlockDeepslateTilesFall => "minecraft:block.deepslate_tiles.fall", - BlockDeepslateTilesHit => "minecraft:block.deepslate_tiles.hit", - BlockDeepslateTilesPlace => "minecraft:block.deepslate_tiles.place", - BlockDeepslateTilesStep => "minecraft:block.deepslate_tiles.step", - BlockDispenserDispense => "minecraft:block.dispenser.dispense", - BlockDispenserFail => "minecraft:block.dispenser.fail", - BlockDispenserLaunch => "minecraft:block.dispenser.launch", - EntityDolphinAmbient => "minecraft:entity.dolphin.ambient", - EntityDolphinAmbientWater => "minecraft:entity.dolphin.ambient_water", - EntityDolphinAttack => "minecraft:entity.dolphin.attack", - EntityDolphinDeath => "minecraft:entity.dolphin.death", - EntityDolphinEat => "minecraft:entity.dolphin.eat", - EntityDolphinHurt => "minecraft:entity.dolphin.hurt", - EntityDolphinJump => "minecraft:entity.dolphin.jump", - EntityDolphinPlay => "minecraft:entity.dolphin.play", - EntityDolphinSplash => "minecraft:entity.dolphin.splash", - EntityDolphinSwim => "minecraft:entity.dolphin.swim", - EntityDonkeyAmbient => "minecraft:entity.donkey.ambient", - EntityDonkeyAngry => "minecraft:entity.donkey.angry", - EntityDonkeyChest => "minecraft:entity.donkey.chest", - EntityDonkeyDeath => "minecraft:entity.donkey.death", - EntityDonkeyEat => "minecraft:entity.donkey.eat", - EntityDonkeyHurt => "minecraft:entity.donkey.hurt", - EntityDonkeyJump => "minecraft:entity.donkey.jump", - BlockDriedGhastBreak => "minecraft:block.dried_ghast.break", - BlockDriedGhastStep => "minecraft:block.dried_ghast.step", - BlockDriedGhastFall => "minecraft:block.dried_ghast.fall", - BlockDriedGhastAmbient => "minecraft:block.dried_ghast.ambient", - BlockDriedGhastAmbientWater => "minecraft:block.dried_ghast.ambient_water", - BlockDriedGhastPlace => "minecraft:block.dried_ghast.place", - BlockDriedGhastPlaceInWater => "minecraft:block.dried_ghast.place_in_water", - BlockDriedGhastTransition => "minecraft:block.dried_ghast.transition", - BlockDripstoneBlockBreak => "minecraft:block.dripstone_block.break", - BlockDripstoneBlockStep => "minecraft:block.dripstone_block.step", - BlockDripstoneBlockPlace => "minecraft:block.dripstone_block.place", - BlockDripstoneBlockHit => "minecraft:block.dripstone_block.hit", - BlockDripstoneBlockFall => "minecraft:block.dripstone_block.fall", - BlockDryGrassAmbient => "minecraft:block.dry_grass.ambient", - BlockPointedDripstoneBreak => "minecraft:block.pointed_dripstone.break", - BlockPointedDripstoneStep => "minecraft:block.pointed_dripstone.step", - BlockPointedDripstonePlace => "minecraft:block.pointed_dripstone.place", - BlockPointedDripstoneHit => "minecraft:block.pointed_dripstone.hit", - BlockPointedDripstoneFall => "minecraft:block.pointed_dripstone.fall", - BlockPointedDripstoneLand => "minecraft:block.pointed_dripstone.land", - BlockPointedDripstoneDripLava => "minecraft:block.pointed_dripstone.drip_lava", - BlockPointedDripstoneDripWater => "minecraft:block.pointed_dripstone.drip_water", - BlockPointedDripstoneDripLavaIntoCauldron => "minecraft:block.pointed_dripstone.drip_lava_into_cauldron", - BlockPointedDripstoneDripWaterIntoCauldron => "minecraft:block.pointed_dripstone.drip_water_into_cauldron", - BlockBigDripleafTiltDown => "minecraft:block.big_dripleaf.tilt_down", - BlockBigDripleafTiltUp => "minecraft:block.big_dripleaf.tilt_up", - EntityDrownedAmbient => "minecraft:entity.drowned.ambient", - EntityDrownedAmbientWater => "minecraft:entity.drowned.ambient_water", - EntityDrownedDeath => "minecraft:entity.drowned.death", - EntityDrownedDeathWater => "minecraft:entity.drowned.death_water", - EntityDrownedHurt => "minecraft:entity.drowned.hurt", - EntityDrownedHurtWater => "minecraft:entity.drowned.hurt_water", - EntityDrownedShoot => "minecraft:entity.drowned.shoot", - EntityDrownedStep => "minecraft:entity.drowned.step", - EntityDrownedSwim => "minecraft:entity.drowned.swim", - ItemDyeUse => "minecraft:item.dye.use", - EntityEggThrow => "minecraft:entity.egg.throw", - EntityElderGuardianAmbient => "minecraft:entity.elder_guardian.ambient", - EntityElderGuardianAmbientLand => "minecraft:entity.elder_guardian.ambient_land", - EntityElderGuardianCurse => "minecraft:entity.elder_guardian.curse", - EntityElderGuardianDeath => "minecraft:entity.elder_guardian.death", - EntityElderGuardianDeathLand => "minecraft:entity.elder_guardian.death_land", - EntityElderGuardianFlop => "minecraft:entity.elder_guardian.flop", - EntityElderGuardianHurt => "minecraft:entity.elder_guardian.hurt", - EntityElderGuardianHurtLand => "minecraft:entity.elder_guardian.hurt_land", - ItemElytraFlying => "minecraft:item.elytra.flying", - BlockEnchantmentTableUse => "minecraft:block.enchantment_table.use", - BlockEnderChestClose => "minecraft:block.ender_chest.close", - BlockEnderChestOpen => "minecraft:block.ender_chest.open", - EntityEnderDragonAmbient => "minecraft:entity.ender_dragon.ambient", - EntityEnderDragonDeath => "minecraft:entity.ender_dragon.death", - EntityDragonFireballExplode => "minecraft:entity.dragon_fireball.explode", - EntityEnderDragonFlap => "minecraft:entity.ender_dragon.flap", - EntityEnderDragonGrowl => "minecraft:entity.ender_dragon.growl", - EntityEnderDragonHurt => "minecraft:entity.ender_dragon.hurt", - EntityEnderDragonShoot => "minecraft:entity.ender_dragon.shoot", - EntityEnderEyeDeath => "minecraft:entity.ender_eye.death", - EntityEnderEyeLaunch => "minecraft:entity.ender_eye.launch", - EntityEndermanAmbient => "minecraft:entity.enderman.ambient", - EntityEndermanDeath => "minecraft:entity.enderman.death", - EntityEndermanHurt => "minecraft:entity.enderman.hurt", - EntityEndermanScream => "minecraft:entity.enderman.scream", - EntityEndermanStare => "minecraft:entity.enderman.stare", - EntityEndermanTeleport => "minecraft:entity.enderman.teleport", - EntityEndermiteAmbient => "minecraft:entity.endermite.ambient", - EntityEndermiteDeath => "minecraft:entity.endermite.death", - EntityEndermiteHurt => "minecraft:entity.endermite.hurt", - EntityEndermiteStep => "minecraft:entity.endermite.step", - EntityEnderPearlThrow => "minecraft:entity.ender_pearl.throw", - BlockEndGatewaySpawn => "minecraft:block.end_gateway.spawn", - BlockEndPortalFrameFill => "minecraft:block.end_portal_frame.fill", - BlockEndPortalSpawn => "minecraft:block.end_portal.spawn", - EntityEvokerAmbient => "minecraft:entity.evoker.ambient", - EntityEvokerCastSpell => "minecraft:entity.evoker.cast_spell", - EntityEvokerCelebrate => "minecraft:entity.evoker.celebrate", - EntityEvokerDeath => "minecraft:entity.evoker.death", - EntityEvokerFangsAttack => "minecraft:entity.evoker_fangs.attack", - EntityEvokerHurt => "minecraft:entity.evoker.hurt", - EntityEvokerPrepareAttack => "minecraft:entity.evoker.prepare_attack", - EntityEvokerPrepareSummon => "minecraft:entity.evoker.prepare_summon", - EntityEvokerPrepareWololo => "minecraft:entity.evoker.prepare_wololo", - EntityExperienceBottleThrow => "minecraft:entity.experience_bottle.throw", - EntityExperienceOrbPickup => "minecraft:entity.experience_orb.pickup", - BlockEyeblossomOpenLong => "minecraft:block.eyeblossom.open_long", - BlockEyeblossomOpen => "minecraft:block.eyeblossom.open", - BlockEyeblossomCloseLong => "minecraft:block.eyeblossom.close_long", - BlockEyeblossomClose => "minecraft:block.eyeblossom.close", - BlockEyeblossomIdle => "minecraft:block.eyeblossom.idle", - BlockFenceGateClose => "minecraft:block.fence_gate.close", - BlockFenceGateOpen => "minecraft:block.fence_gate.open", - ItemFirechargeUse => "minecraft:item.firecharge.use", - BlockFireflyBushIdle => "minecraft:block.firefly_bush.idle", - EntityFireworkRocketBlast => "minecraft:entity.firework_rocket.blast", - EntityFireworkRocketBlastFar => "minecraft:entity.firework_rocket.blast_far", - EntityFireworkRocketLargeBlast => "minecraft:entity.firework_rocket.large_blast", - EntityFireworkRocketLargeBlastFar => "minecraft:entity.firework_rocket.large_blast_far", - EntityFireworkRocketLaunch => "minecraft:entity.firework_rocket.launch", - EntityFireworkRocketShoot => "minecraft:entity.firework_rocket.shoot", - EntityFireworkRocketTwinkle => "minecraft:entity.firework_rocket.twinkle", - EntityFireworkRocketTwinkleFar => "minecraft:entity.firework_rocket.twinkle_far", - BlockFireAmbient => "minecraft:block.fire.ambient", - BlockFireExtinguish => "minecraft:block.fire.extinguish", - EntityFishSwim => "minecraft:entity.fish.swim", - EntityFishingBobberRetrieve => "minecraft:entity.fishing_bobber.retrieve", - EntityFishingBobberSplash => "minecraft:entity.fishing_bobber.splash", - EntityFishingBobberThrow => "minecraft:entity.fishing_bobber.throw", - ItemFlintandsteelUse => "minecraft:item.flintandsteel.use", - BlockFloweringAzaleaBreak => "minecraft:block.flowering_azalea.break", - BlockFloweringAzaleaFall => "minecraft:block.flowering_azalea.fall", - BlockFloweringAzaleaHit => "minecraft:block.flowering_azalea.hit", - BlockFloweringAzaleaPlace => "minecraft:block.flowering_azalea.place", - BlockFloweringAzaleaStep => "minecraft:block.flowering_azalea.step", - EntityFoxAggro => "minecraft:entity.fox.aggro", - EntityFoxAmbient => "minecraft:entity.fox.ambient", - EntityFoxBite => "minecraft:entity.fox.bite", - EntityFoxDeath => "minecraft:entity.fox.death", - EntityFoxEat => "minecraft:entity.fox.eat", - EntityFoxHurt => "minecraft:entity.fox.hurt", - EntityFoxScreech => "minecraft:entity.fox.screech", - EntityFoxSleep => "minecraft:entity.fox.sleep", - EntityFoxSniff => "minecraft:entity.fox.sniff", - EntityFoxSpit => "minecraft:entity.fox.spit", - EntityFoxTeleport => "minecraft:entity.fox.teleport", - BlockSuspiciousSandBreak => "minecraft:block.suspicious_sand.break", - BlockSuspiciousSandStep => "minecraft:block.suspicious_sand.step", - BlockSuspiciousSandPlace => "minecraft:block.suspicious_sand.place", - BlockSuspiciousSandHit => "minecraft:block.suspicious_sand.hit", - BlockSuspiciousSandFall => "minecraft:block.suspicious_sand.fall", - BlockSuspiciousGravelBreak => "minecraft:block.suspicious_gravel.break", - BlockSuspiciousGravelStep => "minecraft:block.suspicious_gravel.step", - BlockSuspiciousGravelPlace => "minecraft:block.suspicious_gravel.place", - BlockSuspiciousGravelHit => "minecraft:block.suspicious_gravel.hit", - BlockSuspiciousGravelFall => "minecraft:block.suspicious_gravel.fall", - BlockFroglightBreak => "minecraft:block.froglight.break", - BlockFroglightFall => "minecraft:block.froglight.fall", - BlockFroglightHit => "minecraft:block.froglight.hit", - BlockFroglightPlace => "minecraft:block.froglight.place", - BlockFroglightStep => "minecraft:block.froglight.step", - BlockFrogspawnStep => "minecraft:block.frogspawn.step", - BlockFrogspawnBreak => "minecraft:block.frogspawn.break", - BlockFrogspawnFall => "minecraft:block.frogspawn.fall", - BlockFrogspawnHatch => "minecraft:block.frogspawn.hatch", - BlockFrogspawnHit => "minecraft:block.frogspawn.hit", - BlockFrogspawnPlace => "minecraft:block.frogspawn.place", - EntityFrogAmbient => "minecraft:entity.frog.ambient", - EntityFrogDeath => "minecraft:entity.frog.death", - EntityFrogEat => "minecraft:entity.frog.eat", - EntityFrogHurt => "minecraft:entity.frog.hurt", - EntityFrogLaySpawn => "minecraft:entity.frog.lay_spawn", - EntityFrogLongJump => "minecraft:entity.frog.long_jump", - EntityFrogStep => "minecraft:entity.frog.step", - EntityFrogTongue => "minecraft:entity.frog.tongue", - BlockRootsBreak => "minecraft:block.roots.break", - BlockRootsStep => "minecraft:block.roots.step", - BlockRootsPlace => "minecraft:block.roots.place", - BlockRootsHit => "minecraft:block.roots.hit", - BlockRootsFall => "minecraft:block.roots.fall", - BlockFurnaceFireCrackle => "minecraft:block.furnace.fire_crackle", - EntityGenericBigFall => "minecraft:entity.generic.big_fall", - EntityGenericBurn => "minecraft:entity.generic.burn", - EntityGenericDeath => "minecraft:entity.generic.death", - EntityGenericDrink => "minecraft:entity.generic.drink", - EntityGenericEat => "minecraft:entity.generic.eat", - EntityGenericExplode => "minecraft:entity.generic.explode", - EntityGenericExtinguishFire => "minecraft:entity.generic.extinguish_fire", - EntityGenericHurt => "minecraft:entity.generic.hurt", - EntityGenericSmallFall => "minecraft:entity.generic.small_fall", - EntityGenericSplash => "minecraft:entity.generic.splash", - EntityGenericSwim => "minecraft:entity.generic.swim", - EntityGhastAmbient => "minecraft:entity.ghast.ambient", - EntityGhastDeath => "minecraft:entity.ghast.death", - EntityGhastHurt => "minecraft:entity.ghast.hurt", - EntityGhastScream => "minecraft:entity.ghast.scream", - EntityGhastShoot => "minecraft:entity.ghast.shoot", - EntityGhastWarn => "minecraft:entity.ghast.warn", - EntityGhastlingAmbient => "minecraft:entity.ghastling.ambient", - EntityGhastlingDeath => "minecraft:entity.ghastling.death", - EntityGhastlingHurt => "minecraft:entity.ghastling.hurt", - EntityGhastlingSpawn => "minecraft:entity.ghastling.spawn", - BlockGildedBlackstoneBreak => "minecraft:block.gilded_blackstone.break", - BlockGildedBlackstoneFall => "minecraft:block.gilded_blackstone.fall", - BlockGildedBlackstoneHit => "minecraft:block.gilded_blackstone.hit", - BlockGildedBlackstonePlace => "minecraft:block.gilded_blackstone.place", - BlockGildedBlackstoneStep => "minecraft:block.gilded_blackstone.step", - BlockGlassBreak => "minecraft:block.glass.break", - BlockGlassFall => "minecraft:block.glass.fall", - BlockGlassHit => "minecraft:block.glass.hit", - BlockGlassPlace => "minecraft:block.glass.place", - BlockGlassStep => "minecraft:block.glass.step", - ItemGlowInkSacUse => "minecraft:item.glow_ink_sac.use", - EntityGlowItemFrameAddItem => "minecraft:entity.glow_item_frame.add_item", - EntityGlowItemFrameBreak => "minecraft:entity.glow_item_frame.break", - EntityGlowItemFramePlace => "minecraft:entity.glow_item_frame.place", - EntityGlowItemFrameRemoveItem => "minecraft:entity.glow_item_frame.remove_item", - EntityGlowItemFrameRotateItem => "minecraft:entity.glow_item_frame.rotate_item", - EntityGlowSquidAmbient => "minecraft:entity.glow_squid.ambient", - EntityGlowSquidDeath => "minecraft:entity.glow_squid.death", - EntityGlowSquidHurt => "minecraft:entity.glow_squid.hurt", - EntityGlowSquidSquirt => "minecraft:entity.glow_squid.squirt", - EntityGoatAmbient => "minecraft:entity.goat.ambient", - EntityGoatDeath => "minecraft:entity.goat.death", - EntityGoatEat => "minecraft:entity.goat.eat", - EntityGoatHurt => "minecraft:entity.goat.hurt", - EntityGoatLongJump => "minecraft:entity.goat.long_jump", - EntityGoatMilk => "minecraft:entity.goat.milk", - EntityGoatPrepareRam => "minecraft:entity.goat.prepare_ram", - EntityGoatRamImpact => "minecraft:entity.goat.ram_impact", - EntityGoatHornBreak => "minecraft:entity.goat.horn_break", - EntityGoatScreamingAmbient => "minecraft:entity.goat.screaming.ambient", - EntityGoatScreamingDeath => "minecraft:entity.goat.screaming.death", - EntityGoatScreamingEat => "minecraft:entity.goat.screaming.eat", - EntityGoatScreamingHurt => "minecraft:entity.goat.screaming.hurt", - EntityGoatScreamingLongJump => "minecraft:entity.goat.screaming.long_jump", - EntityGoatScreamingMilk => "minecraft:entity.goat.screaming.milk", - EntityGoatScreamingPrepareRam => "minecraft:entity.goat.screaming.prepare_ram", - EntityGoatScreamingRamImpact => "minecraft:entity.goat.screaming.ram_impact", - EntityGoatStep => "minecraft:entity.goat.step", - BlockGrassBreak => "minecraft:block.grass.break", - BlockGrassFall => "minecraft:block.grass.fall", - BlockGrassHit => "minecraft:block.grass.hit", - BlockGrassPlace => "minecraft:block.grass.place", - BlockGrassStep => "minecraft:block.grass.step", - BlockGravelBreak => "minecraft:block.gravel.break", - BlockGravelFall => "minecraft:block.gravel.fall", - BlockGravelHit => "minecraft:block.gravel.hit", - BlockGravelPlace => "minecraft:block.gravel.place", - BlockGravelStep => "minecraft:block.gravel.step", - BlockGrindstoneUse => "minecraft:block.grindstone.use", - BlockGrowingPlantCrop => "minecraft:block.growing_plant.crop", - EntityGuardianAmbient => "minecraft:entity.guardian.ambient", - EntityGuardianAmbientLand => "minecraft:entity.guardian.ambient_land", - EntityGuardianAttack => "minecraft:entity.guardian.attack", - EntityGuardianDeath => "minecraft:entity.guardian.death", - EntityGuardianDeathLand => "minecraft:entity.guardian.death_land", - EntityGuardianFlop => "minecraft:entity.guardian.flop", - EntityGuardianHurt => "minecraft:entity.guardian.hurt", - EntityGuardianHurtLand => "minecraft:entity.guardian.hurt_land", - BlockHangingRootsBreak => "minecraft:block.hanging_roots.break", - BlockHangingRootsFall => "minecraft:block.hanging_roots.fall", - BlockHangingRootsHit => "minecraft:block.hanging_roots.hit", - BlockHangingRootsPlace => "minecraft:block.hanging_roots.place", - BlockHangingRootsStep => "minecraft:block.hanging_roots.step", - BlockHangingSignStep => "minecraft:block.hanging_sign.step", - BlockHangingSignBreak => "minecraft:block.hanging_sign.break", - BlockHangingSignFall => "minecraft:block.hanging_sign.fall", - BlockHangingSignHit => "minecraft:block.hanging_sign.hit", - BlockHangingSignPlace => "minecraft:block.hanging_sign.place", - EntityHappyGhastAmbient => "minecraft:entity.happy_ghast.ambient", - EntityHappyGhastDeath => "minecraft:entity.happy_ghast.death", - EntityHappyGhastHurt => "minecraft:entity.happy_ghast.hurt", - EntityHappyGhastRiding => "minecraft:entity.happy_ghast.riding", - BlockHeavyCoreBreak => "minecraft:block.heavy_core.break", - BlockHeavyCoreFall => "minecraft:block.heavy_core.fall", - BlockHeavyCoreHit => "minecraft:block.heavy_core.hit", - BlockHeavyCorePlace => "minecraft:block.heavy_core.place", - BlockHeavyCoreStep => "minecraft:block.heavy_core.step", - BlockNetherWoodHangingSignStep => "minecraft:block.nether_wood_hanging_sign.step", - BlockNetherWoodHangingSignBreak => "minecraft:block.nether_wood_hanging_sign.break", - BlockNetherWoodHangingSignFall => "minecraft:block.nether_wood_hanging_sign.fall", - BlockNetherWoodHangingSignHit => "minecraft:block.nether_wood_hanging_sign.hit", - BlockNetherWoodHangingSignPlace => "minecraft:block.nether_wood_hanging_sign.place", - BlockBambooWoodHangingSignStep => "minecraft:block.bamboo_wood_hanging_sign.step", - BlockBambooWoodHangingSignBreak => "minecraft:block.bamboo_wood_hanging_sign.break", - BlockBambooWoodHangingSignFall => "minecraft:block.bamboo_wood_hanging_sign.fall", - BlockBambooWoodHangingSignHit => "minecraft:block.bamboo_wood_hanging_sign.hit", - BlockBambooWoodHangingSignPlace => "minecraft:block.bamboo_wood_hanging_sign.place", - BlockTrialSpawnerBreak => "minecraft:block.trial_spawner.break", - BlockTrialSpawnerStep => "minecraft:block.trial_spawner.step", - BlockTrialSpawnerPlace => "minecraft:block.trial_spawner.place", - BlockTrialSpawnerHit => "minecraft:block.trial_spawner.hit", - BlockTrialSpawnerFall => "minecraft:block.trial_spawner.fall", - BlockTrialSpawnerSpawnMob => "minecraft:block.trial_spawner.spawn_mob", - BlockTrialSpawnerAboutToSpawnItem => "minecraft:block.trial_spawner.about_to_spawn_item", - BlockTrialSpawnerSpawnItem => "minecraft:block.trial_spawner.spawn_item", - BlockTrialSpawnerSpawnItemBegin => "minecraft:block.trial_spawner.spawn_item_begin", - BlockTrialSpawnerDetectPlayer => "minecraft:block.trial_spawner.detect_player", - BlockTrialSpawnerOminousActivate => "minecraft:block.trial_spawner.ominous_activate", - BlockTrialSpawnerAmbient => "minecraft:block.trial_spawner.ambient", - BlockTrialSpawnerAmbientOminous => "minecraft:block.trial_spawner.ambient_ominous", - BlockTrialSpawnerOpenShutter => "minecraft:block.trial_spawner.open_shutter", - BlockTrialSpawnerCloseShutter => "minecraft:block.trial_spawner.close_shutter", - BlockTrialSpawnerEjectItem => "minecraft:block.trial_spawner.eject_item", - EntityHappyGhastEquip => "minecraft:entity.happy_ghast.equip", - EntityHappyGhastUnequip => "minecraft:entity.happy_ghast.unequip", - EntityHappyGhastHarnessGogglesUp => "minecraft:entity.happy_ghast.harness_goggles_up", - EntityHappyGhastHarnessGogglesDown => "minecraft:entity.happy_ghast.harness_goggles_down", - ItemHoeTill => "minecraft:item.hoe.till", - EntityHoglinAmbient => "minecraft:entity.hoglin.ambient", - EntityHoglinAngry => "minecraft:entity.hoglin.angry", - EntityHoglinAttack => "minecraft:entity.hoglin.attack", - EntityHoglinConvertedToZombified => "minecraft:entity.hoglin.converted_to_zombified", - EntityHoglinDeath => "minecraft:entity.hoglin.death", - EntityHoglinHurt => "minecraft:entity.hoglin.hurt", - EntityHoglinRetreat => "minecraft:entity.hoglin.retreat", - EntityHoglinStep => "minecraft:entity.hoglin.step", - BlockHoneyBlockBreak => "minecraft:block.honey_block.break", - BlockHoneyBlockFall => "minecraft:block.honey_block.fall", - BlockHoneyBlockHit => "minecraft:block.honey_block.hit", - BlockHoneyBlockPlace => "minecraft:block.honey_block.place", - BlockHoneyBlockSlide => "minecraft:block.honey_block.slide", - BlockHoneyBlockStep => "minecraft:block.honey_block.step", - ItemHoneycombWaxOn => "minecraft:item.honeycomb.wax_on", - ItemHoneyBottleDrink => "minecraft:item.honey_bottle.drink", - ItemGoatHornSound0 => "minecraft:item.goat_horn.sound.0", - ItemGoatHornSound1 => "minecraft:item.goat_horn.sound.1", - ItemGoatHornSound2 => "minecraft:item.goat_horn.sound.2", - ItemGoatHornSound3 => "minecraft:item.goat_horn.sound.3", - ItemGoatHornSound4 => "minecraft:item.goat_horn.sound.4", - ItemGoatHornSound5 => "minecraft:item.goat_horn.sound.5", - ItemGoatHornSound6 => "minecraft:item.goat_horn.sound.6", - ItemGoatHornSound7 => "minecraft:item.goat_horn.sound.7", - EntityHorseAmbient => "minecraft:entity.horse.ambient", - EntityHorseAngry => "minecraft:entity.horse.angry", - EntityHorseArmor => "minecraft:entity.horse.armor", - ItemHorseArmorUnequip => "minecraft:item.horse_armor.unequip", - EntityHorseBreathe => "minecraft:entity.horse.breathe", - EntityHorseDeath => "minecraft:entity.horse.death", - EntityHorseEat => "minecraft:entity.horse.eat", - EntityHorseGallop => "minecraft:entity.horse.gallop", - EntityHorseHurt => "minecraft:entity.horse.hurt", - EntityHorseJump => "minecraft:entity.horse.jump", - EntityHorseLand => "minecraft:entity.horse.land", - EntityHorseSaddle => "minecraft:entity.horse.saddle", - EntityHorseStep => "minecraft:entity.horse.step", - EntityHorseStepWood => "minecraft:entity.horse.step_wood", - EntityHostileBigFall => "minecraft:entity.hostile.big_fall", - EntityHostileDeath => "minecraft:entity.hostile.death", - EntityHostileHurt => "minecraft:entity.hostile.hurt", - EntityHostileSmallFall => "minecraft:entity.hostile.small_fall", - EntityHostileSplash => "minecraft:entity.hostile.splash", - EntityHostileSwim => "minecraft:entity.hostile.swim", - EntityHuskAmbient => "minecraft:entity.husk.ambient", - EntityHuskConvertedToZombie => "minecraft:entity.husk.converted_to_zombie", - EntityHuskDeath => "minecraft:entity.husk.death", - EntityHuskHurt => "minecraft:entity.husk.hurt", - EntityHuskStep => "minecraft:entity.husk.step", - EntityIllusionerAmbient => "minecraft:entity.illusioner.ambient", - EntityIllusionerCastSpell => "minecraft:entity.illusioner.cast_spell", - EntityIllusionerDeath => "minecraft:entity.illusioner.death", - EntityIllusionerHurt => "minecraft:entity.illusioner.hurt", - EntityIllusionerMirrorMove => "minecraft:entity.illusioner.mirror_move", - EntityIllusionerPrepareBlindness => "minecraft:entity.illusioner.prepare_blindness", - EntityIllusionerPrepareMirror => "minecraft:entity.illusioner.prepare_mirror", - ItemInkSacUse => "minecraft:item.ink_sac.use", - BlockIronBreak => "minecraft:block.iron.break", - BlockIronStep => "minecraft:block.iron.step", - BlockIronPlace => "minecraft:block.iron.place", - BlockIronHit => "minecraft:block.iron.hit", - BlockIronFall => "minecraft:block.iron.fall", - BlockIronDoorClose => "minecraft:block.iron_door.close", - BlockIronDoorOpen => "minecraft:block.iron_door.open", - EntityIronGolemAttack => "minecraft:entity.iron_golem.attack", - EntityIronGolemDamage => "minecraft:entity.iron_golem.damage", - EntityIronGolemDeath => "minecraft:entity.iron_golem.death", - EntityIronGolemHurt => "minecraft:entity.iron_golem.hurt", - EntityIronGolemRepair => "minecraft:entity.iron_golem.repair", - EntityIronGolemStep => "minecraft:entity.iron_golem.step", - BlockIronTrapdoorClose => "minecraft:block.iron_trapdoor.close", - BlockIronTrapdoorOpen => "minecraft:block.iron_trapdoor.open", - EntityItemFrameAddItem => "minecraft:entity.item_frame.add_item", - EntityItemFrameBreak => "minecraft:entity.item_frame.break", - EntityItemFramePlace => "minecraft:entity.item_frame.place", - EntityItemFrameRemoveItem => "minecraft:entity.item_frame.remove_item", - EntityItemFrameRotateItem => "minecraft:entity.item_frame.rotate_item", - EntityItemBreak => "minecraft:entity.item.break", - EntityItemPickup => "minecraft:entity.item.pickup", - BlockLadderBreak => "minecraft:block.ladder.break", - BlockLadderFall => "minecraft:block.ladder.fall", - BlockLadderHit => "minecraft:block.ladder.hit", - BlockLadderPlace => "minecraft:block.ladder.place", - BlockLadderStep => "minecraft:block.ladder.step", - BlockLanternBreak => "minecraft:block.lantern.break", - BlockLanternFall => "minecraft:block.lantern.fall", - BlockLanternHit => "minecraft:block.lantern.hit", - BlockLanternPlace => "minecraft:block.lantern.place", - BlockLanternStep => "minecraft:block.lantern.step", - BlockLargeAmethystBudBreak => "minecraft:block.large_amethyst_bud.break", - BlockLargeAmethystBudPlace => "minecraft:block.large_amethyst_bud.place", - BlockLavaAmbient => "minecraft:block.lava.ambient", - BlockLavaExtinguish => "minecraft:block.lava.extinguish", - BlockLavaPop => "minecraft:block.lava.pop", - BlockLeafLitterBreak => "minecraft:block.leaf_litter.break", - BlockLeafLitterStep => "minecraft:block.leaf_litter.step", - BlockLeafLitterPlace => "minecraft:block.leaf_litter.place", - BlockLeafLitterHit => "minecraft:block.leaf_litter.hit", - BlockLeafLitterFall => "minecraft:block.leaf_litter.fall", - ItemLeadUntied => "minecraft:item.lead.untied", - ItemLeadTied => "minecraft:item.lead.tied", - ItemLeadBreak => "minecraft:item.lead.break", - BlockLeverClick => "minecraft:block.lever.click", - EntityLightningBoltImpact => "minecraft:entity.lightning_bolt.impact", - EntityLightningBoltThunder => "minecraft:entity.lightning_bolt.thunder", - EntityLingeringPotionThrow => "minecraft:entity.lingering_potion.throw", - EntityLlamaAmbient => "minecraft:entity.llama.ambient", - EntityLlamaAngry => "minecraft:entity.llama.angry", - EntityLlamaChest => "minecraft:entity.llama.chest", - EntityLlamaDeath => "minecraft:entity.llama.death", - EntityLlamaEat => "minecraft:entity.llama.eat", - EntityLlamaHurt => "minecraft:entity.llama.hurt", - EntityLlamaSpit => "minecraft:entity.llama.spit", - EntityLlamaStep => "minecraft:entity.llama.step", - EntityLlamaSwag => "minecraft:entity.llama.swag", - ItemLlamaCarpetUnequip => "minecraft:item.llama_carpet.unequip", - EntityMagmaCubeDeathSmall => "minecraft:entity.magma_cube.death_small", - BlockLodestoneBreak => "minecraft:block.lodestone.break", - BlockLodestoneStep => "minecraft:block.lodestone.step", - BlockLodestonePlace => "minecraft:block.lodestone.place", - 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", - EntityMagmaCubeDeath => "minecraft:entity.magma_cube.death", - EntityMagmaCubeHurt => "minecraft:entity.magma_cube.hurt", - EntityMagmaCubeHurtSmall => "minecraft:entity.magma_cube.hurt_small", - EntityMagmaCubeJump => "minecraft:entity.magma_cube.jump", - EntityMagmaCubeSquish => "minecraft:entity.magma_cube.squish", - EntityMagmaCubeSquishSmall => "minecraft:entity.magma_cube.squish_small", - BlockMangroveRootsBreak => "minecraft:block.mangrove_roots.break", - BlockMangroveRootsFall => "minecraft:block.mangrove_roots.fall", - BlockMangroveRootsHit => "minecraft:block.mangrove_roots.hit", - BlockMangroveRootsPlace => "minecraft:block.mangrove_roots.place", - BlockMangroveRootsStep => "minecraft:block.mangrove_roots.step", - BlockMediumAmethystBudBreak => "minecraft:block.medium_amethyst_bud.break", - BlockMediumAmethystBudPlace => "minecraft:block.medium_amethyst_bud.place", - BlockMetalBreak => "minecraft:block.metal.break", - BlockMetalFall => "minecraft:block.metal.fall", - BlockMetalHit => "minecraft:block.metal.hit", - BlockMetalPlace => "minecraft:block.metal.place", - BlockMetalPressurePlateClickOff => "minecraft:block.metal_pressure_plate.click_off", - BlockMetalPressurePlateClickOn => "minecraft:block.metal_pressure_plate.click_on", - BlockMetalStep => "minecraft:block.metal.step", - EntityMinecartInsideUnderwater => "minecraft:entity.minecart.inside.underwater", - EntityMinecartInside => "minecraft:entity.minecart.inside", - EntityMinecartRiding => "minecraft:entity.minecart.riding", - EntityMooshroomConvert => "minecraft:entity.mooshroom.convert", - EntityMooshroomEat => "minecraft:entity.mooshroom.eat", - EntityMooshroomMilk => "minecraft:entity.mooshroom.milk", - EntityMooshroomSuspiciousMilk => "minecraft:entity.mooshroom.suspicious_milk", - EntityMooshroomShear => "minecraft:entity.mooshroom.shear", - BlockMossCarpetBreak => "minecraft:block.moss_carpet.break", - BlockMossCarpetFall => "minecraft:block.moss_carpet.fall", - BlockMossCarpetHit => "minecraft:block.moss_carpet.hit", - BlockMossCarpetPlace => "minecraft:block.moss_carpet.place", - BlockMossCarpetStep => "minecraft:block.moss_carpet.step", - BlockPinkPetalsBreak => "minecraft:block.pink_petals.break", - BlockPinkPetalsFall => "minecraft:block.pink_petals.fall", - BlockPinkPetalsHit => "minecraft:block.pink_petals.hit", - BlockPinkPetalsPlace => "minecraft:block.pink_petals.place", - BlockPinkPetalsStep => "minecraft:block.pink_petals.step", - BlockMossBreak => "minecraft:block.moss.break", - BlockMossFall => "minecraft:block.moss.fall", - BlockMossHit => "minecraft:block.moss.hit", - BlockMossPlace => "minecraft:block.moss.place", - BlockMossStep => "minecraft:block.moss.step", - BlockMudBreak => "minecraft:block.mud.break", - BlockMudFall => "minecraft:block.mud.fall", - BlockMudHit => "minecraft:block.mud.hit", - BlockMudPlace => "minecraft:block.mud.place", - BlockMudStep => "minecraft:block.mud.step", - BlockMudBricksBreak => "minecraft:block.mud_bricks.break", - BlockMudBricksFall => "minecraft:block.mud_bricks.fall", - BlockMudBricksHit => "minecraft:block.mud_bricks.hit", - BlockMudBricksPlace => "minecraft:block.mud_bricks.place", - BlockMudBricksStep => "minecraft:block.mud_bricks.step", - BlockMuddyMangroveRootsBreak => "minecraft:block.muddy_mangrove_roots.break", - BlockMuddyMangroveRootsFall => "minecraft:block.muddy_mangrove_roots.fall", - BlockMuddyMangroveRootsHit => "minecraft:block.muddy_mangrove_roots.hit", - BlockMuddyMangroveRootsPlace => "minecraft:block.muddy_mangrove_roots.place", - BlockMuddyMangroveRootsStep => "minecraft:block.muddy_mangrove_roots.step", - EntityMuleAmbient => "minecraft:entity.mule.ambient", - EntityMuleAngry => "minecraft:entity.mule.angry", - EntityMuleChest => "minecraft:entity.mule.chest", - EntityMuleDeath => "minecraft:entity.mule.death", - EntityMuleEat => "minecraft:entity.mule.eat", - EntityMuleHurt => "minecraft:entity.mule.hurt", - EntityMuleJump => "minecraft:entity.mule.jump", - MusicCreative => "minecraft:music.creative", - MusicCredits => "minecraft:music.credits", - MusicDisc5 => "minecraft:music_disc.5", - MusicDisc11 => "minecraft:music_disc.11", - MusicDisc13 => "minecraft:music_disc.13", - MusicDiscBlocks => "minecraft:music_disc.blocks", - MusicDiscCat => "minecraft:music_disc.cat", - MusicDiscChirp => "minecraft:music_disc.chirp", - MusicDiscFar => "minecraft:music_disc.far", - MusicDiscLavaChicken => "minecraft:music_disc.lava_chicken", - MusicDiscMall => "minecraft:music_disc.mall", - MusicDiscMellohi => "minecraft:music_disc.mellohi", - MusicDiscPigstep => "minecraft:music_disc.pigstep", - MusicDiscStal => "minecraft:music_disc.stal", - MusicDiscStrad => "minecraft:music_disc.strad", - MusicDiscWait => "minecraft:music_disc.wait", - MusicDiscWard => "minecraft:music_disc.ward", - MusicDiscOtherside => "minecraft:music_disc.otherside", - MusicDiscRelic => "minecraft:music_disc.relic", - MusicDiscCreator => "minecraft:music_disc.creator", - MusicDiscCreatorMusicBox => "minecraft:music_disc.creator_music_box", - MusicDiscPrecipice => "minecraft:music_disc.precipice", - MusicDiscTears => "minecraft:music_disc.tears", - MusicDragon => "minecraft:music.dragon", - MusicEnd => "minecraft:music.end", - MusicGame => "minecraft:music.game", - MusicMenu => "minecraft:music.menu", - MusicNetherBasaltDeltas => "minecraft:music.nether.basalt_deltas", - MusicNetherCrimsonForest => "minecraft:music.nether.crimson_forest", - MusicOverworldDeepDark => "minecraft:music.overworld.deep_dark", - MusicOverworldDripstoneCaves => "minecraft:music.overworld.dripstone_caves", - MusicOverworldGrove => "minecraft:music.overworld.grove", - MusicOverworldJaggedPeaks => "minecraft:music.overworld.jagged_peaks", - MusicOverworldLushCaves => "minecraft:music.overworld.lush_caves", - MusicOverworldSwamp => "minecraft:music.overworld.swamp", - MusicOverworldForest => "minecraft:music.overworld.forest", - MusicOverworldOldGrowthTaiga => "minecraft:music.overworld.old_growth_taiga", - MusicOverworldMeadow => "minecraft:music.overworld.meadow", - MusicOverworldCherryGrove => "minecraft:music.overworld.cherry_grove", - MusicNetherNetherWastes => "minecraft:music.nether.nether_wastes", - MusicOverworldFrozenPeaks => "minecraft:music.overworld.frozen_peaks", - MusicOverworldSnowySlopes => "minecraft:music.overworld.snowy_slopes", - MusicNetherSoulSandValley => "minecraft:music.nether.soul_sand_valley", - MusicOverworldStonyPeaks => "minecraft:music.overworld.stony_peaks", - MusicNetherWarpedForest => "minecraft:music.nether.warped_forest", - MusicOverworldFlowerForest => "minecraft:music.overworld.flower_forest", - MusicOverworldDesert => "minecraft:music.overworld.desert", - MusicOverworldBadlands => "minecraft:music.overworld.badlands", - MusicOverworldJungle => "minecraft:music.overworld.jungle", - MusicOverworldSparseJungle => "minecraft:music.overworld.sparse_jungle", - 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", - BlockNetherBricksPlace => "minecraft:block.nether_bricks.place", - BlockNetherBricksHit => "minecraft:block.nether_bricks.hit", - BlockNetherBricksFall => "minecraft:block.nether_bricks.fall", - BlockNetherWartBreak => "minecraft:block.nether_wart.break", - ItemNetherWartPlant => "minecraft:item.nether_wart.plant", - BlockNetherWoodBreak => "minecraft:block.nether_wood.break", - BlockNetherWoodFall => "minecraft:block.nether_wood.fall", - BlockNetherWoodHit => "minecraft:block.nether_wood.hit", - BlockNetherWoodPlace => "minecraft:block.nether_wood.place", - BlockNetherWoodStep => "minecraft:block.nether_wood.step", - BlockNetherWoodDoorClose => "minecraft:block.nether_wood_door.close", - BlockNetherWoodDoorOpen => "minecraft:block.nether_wood_door.open", - BlockNetherWoodTrapdoorClose => "minecraft:block.nether_wood_trapdoor.close", - BlockNetherWoodTrapdoorOpen => "minecraft:block.nether_wood_trapdoor.open", - BlockNetherWoodButtonClickOff => "minecraft:block.nether_wood_button.click_off", - BlockNetherWoodButtonClickOn => "minecraft:block.nether_wood_button.click_on", - BlockNetherWoodPressurePlateClickOff => "minecraft:block.nether_wood_pressure_plate.click_off", - BlockNetherWoodPressurePlateClickOn => "minecraft:block.nether_wood_pressure_plate.click_on", - BlockNetherWoodFenceGateClose => "minecraft:block.nether_wood_fence_gate.close", - BlockNetherWoodFenceGateOpen => "minecraft:block.nether_wood_fence_gate.open", - IntentionallyEmpty => "minecraft:intentionally_empty", - BlockPackedMudBreak => "minecraft:block.packed_mud.break", - BlockPackedMudFall => "minecraft:block.packed_mud.fall", - BlockPackedMudHit => "minecraft:block.packed_mud.hit", - BlockPackedMudPlace => "minecraft:block.packed_mud.place", - BlockPackedMudStep => "minecraft:block.packed_mud.step", - BlockStemBreak => "minecraft:block.stem.break", - BlockStemStep => "minecraft:block.stem.step", - BlockStemPlace => "minecraft:block.stem.place", - BlockStemHit => "minecraft:block.stem.hit", - BlockStemFall => "minecraft:block.stem.fall", - BlockNyliumBreak => "minecraft:block.nylium.break", - BlockNyliumStep => "minecraft:block.nylium.step", - BlockNyliumPlace => "minecraft:block.nylium.place", - BlockNyliumHit => "minecraft:block.nylium.hit", - BlockNyliumFall => "minecraft:block.nylium.fall", - BlockNetherSproutsBreak => "minecraft:block.nether_sprouts.break", - BlockNetherSproutsStep => "minecraft:block.nether_sprouts.step", - BlockNetherSproutsPlace => "minecraft:block.nether_sprouts.place", - BlockNetherSproutsHit => "minecraft:block.nether_sprouts.hit", - BlockNetherSproutsFall => "minecraft:block.nether_sprouts.fall", - BlockFungusBreak => "minecraft:block.fungus.break", - BlockFungusStep => "minecraft:block.fungus.step", - BlockFungusPlace => "minecraft:block.fungus.place", - BlockFungusHit => "minecraft:block.fungus.hit", - BlockFungusFall => "minecraft:block.fungus.fall", - BlockWeepingVinesBreak => "minecraft:block.weeping_vines.break", - BlockWeepingVinesStep => "minecraft:block.weeping_vines.step", - BlockWeepingVinesPlace => "minecraft:block.weeping_vines.place", - BlockWeepingVinesHit => "minecraft:block.weeping_vines.hit", - BlockWeepingVinesFall => "minecraft:block.weeping_vines.fall", - BlockWartBlockBreak => "minecraft:block.wart_block.break", - BlockWartBlockStep => "minecraft:block.wart_block.step", - BlockWartBlockPlace => "minecraft:block.wart_block.place", - BlockWartBlockHit => "minecraft:block.wart_block.hit", - BlockWartBlockFall => "minecraft:block.wart_block.fall", - BlockNetheriteBlockBreak => "minecraft:block.netherite_block.break", - BlockNetheriteBlockStep => "minecraft:block.netherite_block.step", - BlockNetheriteBlockPlace => "minecraft:block.netherite_block.place", - BlockNetheriteBlockHit => "minecraft:block.netherite_block.hit", - BlockNetheriteBlockFall => "minecraft:block.netherite_block.fall", - BlockNetherrackBreak => "minecraft:block.netherrack.break", - BlockNetherrackStep => "minecraft:block.netherrack.step", - BlockNetherrackPlace => "minecraft:block.netherrack.place", - BlockNetherrackHit => "minecraft:block.netherrack.hit", - BlockNetherrackFall => "minecraft:block.netherrack.fall", - BlockNoteBlockBasedrum => "minecraft:block.note_block.basedrum", - BlockNoteBlockBass => "minecraft:block.note_block.bass", - BlockNoteBlockBell => "minecraft:block.note_block.bell", - BlockNoteBlockChime => "minecraft:block.note_block.chime", - BlockNoteBlockFlute => "minecraft:block.note_block.flute", - BlockNoteBlockGuitar => "minecraft:block.note_block.guitar", - BlockNoteBlockHarp => "minecraft:block.note_block.harp", - BlockNoteBlockHat => "minecraft:block.note_block.hat", - BlockNoteBlockPling => "minecraft:block.note_block.pling", - BlockNoteBlockSnare => "minecraft:block.note_block.snare", - BlockNoteBlockXylophone => "minecraft:block.note_block.xylophone", - BlockNoteBlockIronXylophone => "minecraft:block.note_block.iron_xylophone", - BlockNoteBlockCowBell => "minecraft:block.note_block.cow_bell", - BlockNoteBlockDidgeridoo => "minecraft:block.note_block.didgeridoo", - BlockNoteBlockBit => "minecraft:block.note_block.bit", - BlockNoteBlockBanjo => "minecraft:block.note_block.banjo", - BlockNoteBlockImitateZombie => "minecraft:block.note_block.imitate.zombie", - BlockNoteBlockImitateSkeleton => "minecraft:block.note_block.imitate.skeleton", - BlockNoteBlockImitateCreeper => "minecraft:block.note_block.imitate.creeper", - BlockNoteBlockImitateEnderDragon => "minecraft:block.note_block.imitate.ender_dragon", - BlockNoteBlockImitateWitherSkeleton => "minecraft:block.note_block.imitate.wither_skeleton", - BlockNoteBlockImitatePiglin => "minecraft:block.note_block.imitate.piglin", - EntityOcelotHurt => "minecraft:entity.ocelot.hurt", - EntityOcelotAmbient => "minecraft:entity.ocelot.ambient", - EntityOcelotDeath => "minecraft:entity.ocelot.death", - ItemOminousBottleDispose => "minecraft:item.ominous_bottle.dispose", - EntityPaintingBreak => "minecraft:entity.painting.break", - EntityPaintingPlace => "minecraft:entity.painting.place", - BlockPaleHangingMossIdle => "minecraft:block.pale_hanging_moss.idle", - EntityPandaPreSneeze => "minecraft:entity.panda.pre_sneeze", - EntityPandaSneeze => "minecraft:entity.panda.sneeze", - EntityPandaAmbient => "minecraft:entity.panda.ambient", - EntityPandaDeath => "minecraft:entity.panda.death", - EntityPandaEat => "minecraft:entity.panda.eat", - EntityPandaStep => "minecraft:entity.panda.step", - EntityPandaCantBreed => "minecraft:entity.panda.cant_breed", - EntityPandaAggressiveAmbient => "minecraft:entity.panda.aggressive_ambient", - 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", - EntityParrotFly => "minecraft:entity.parrot.fly", - EntityParrotHurt => "minecraft:entity.parrot.hurt", - 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", - EntityParrotImitateElderGuardian => "minecraft:entity.parrot.imitate.elder_guardian", - EntityParrotImitateEnderDragon => "minecraft:entity.parrot.imitate.ender_dragon", - EntityParrotImitateEndermite => "minecraft:entity.parrot.imitate.endermite", - EntityParrotImitateEvoker => "minecraft:entity.parrot.imitate.evoker", - EntityParrotImitateGhast => "minecraft:entity.parrot.imitate.ghast", - EntityParrotImitateGuardian => "minecraft:entity.parrot.imitate.guardian", - EntityParrotImitateHoglin => "minecraft:entity.parrot.imitate.hoglin", - EntityParrotImitateHusk => "minecraft:entity.parrot.imitate.husk", - 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", - EntityParrotImitateRavager => "minecraft:entity.parrot.imitate.ravager", - EntityParrotImitateShulker => "minecraft:entity.parrot.imitate.shulker", - EntityParrotImitateSilverfish => "minecraft:entity.parrot.imitate.silverfish", - EntityParrotImitateSkeleton => "minecraft:entity.parrot.imitate.skeleton", - EntityParrotImitateSlime => "minecraft:entity.parrot.imitate.slime", - EntityParrotImitateSpider => "minecraft:entity.parrot.imitate.spider", - EntityParrotImitateStray => "minecraft:entity.parrot.imitate.stray", - EntityParrotImitateVex => "minecraft:entity.parrot.imitate.vex", - EntityParrotImitateVindicator => "minecraft:entity.parrot.imitate.vindicator", - EntityParrotImitateWarden => "minecraft:entity.parrot.imitate.warden", - EntityParrotImitateWitch => "minecraft:entity.parrot.imitate.witch", - EntityParrotImitateWither => "minecraft:entity.parrot.imitate.wither", - 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", - EntityPhantomBite => "minecraft:entity.phantom.bite", - EntityPhantomDeath => "minecraft:entity.phantom.death", - EntityPhantomFlap => "minecraft:entity.phantom.flap", - EntityPhantomHurt => "minecraft:entity.phantom.hurt", - EntityPhantomSwoop => "minecraft:entity.phantom.swoop", - EntityPigAmbient => "minecraft:entity.pig.ambient", - EntityPigDeath => "minecraft:entity.pig.death", - EntityPigHurt => "minecraft:entity.pig.hurt", - EntityPigSaddle => "minecraft:entity.pig.saddle", - EntityPigStep => "minecraft:entity.pig.step", - EntityPiglinAdmiringItem => "minecraft:entity.piglin.admiring_item", - EntityPiglinAmbient => "minecraft:entity.piglin.ambient", - EntityPiglinAngry => "minecraft:entity.piglin.angry", - EntityPiglinCelebrate => "minecraft:entity.piglin.celebrate", - EntityPiglinDeath => "minecraft:entity.piglin.death", - EntityPiglinJealous => "minecraft:entity.piglin.jealous", - EntityPiglinHurt => "minecraft:entity.piglin.hurt", - EntityPiglinRetreat => "minecraft:entity.piglin.retreat", - EntityPiglinStep => "minecraft:entity.piglin.step", - EntityPiglinConvertedToZombified => "minecraft:entity.piglin.converted_to_zombified", - EntityPiglinBruteAmbient => "minecraft:entity.piglin_brute.ambient", - EntityPiglinBruteAngry => "minecraft:entity.piglin_brute.angry", - EntityPiglinBruteDeath => "minecraft:entity.piglin_brute.death", - EntityPiglinBruteHurt => "minecraft:entity.piglin_brute.hurt", - EntityPiglinBruteStep => "minecraft:entity.piglin_brute.step", - EntityPiglinBruteConvertedToZombified => "minecraft:entity.piglin_brute.converted_to_zombified", - EntityPillagerAmbient => "minecraft:entity.pillager.ambient", - EntityPillagerCelebrate => "minecraft:entity.pillager.celebrate", - EntityPillagerDeath => "minecraft:entity.pillager.death", - EntityPillagerHurt => "minecraft:entity.pillager.hurt", - BlockPistonContract => "minecraft:block.piston.contract", - BlockPistonExtend => "minecraft:block.piston.extend", - EntityPlayerAttackCrit => "minecraft:entity.player.attack.crit", - EntityPlayerAttackKnockback => "minecraft:entity.player.attack.knockback", - EntityPlayerAttackNodamage => "minecraft:entity.player.attack.nodamage", - EntityPlayerAttackStrong => "minecraft:entity.player.attack.strong", - EntityPlayerAttackSweep => "minecraft:entity.player.attack.sweep", - EntityPlayerAttackWeak => "minecraft:entity.player.attack.weak", - EntityPlayerBigFall => "minecraft:entity.player.big_fall", - EntityPlayerBreath => "minecraft:entity.player.breath", - EntityPlayerBurp => "minecraft:entity.player.burp", - EntityPlayerDeath => "minecraft:entity.player.death", - EntityPlayerHurt => "minecraft:entity.player.hurt", - EntityPlayerHurtDrown => "minecraft:entity.player.hurt_drown", - EntityPlayerHurtFreeze => "minecraft:entity.player.hurt_freeze", - EntityPlayerHurtOnFire => "minecraft:entity.player.hurt_on_fire", - EntityPlayerHurtSweetBerryBush => "minecraft:entity.player.hurt_sweet_berry_bush", - EntityPlayerLevelup => "minecraft:entity.player.levelup", - EntityPlayerSmallFall => "minecraft:entity.player.small_fall", - EntityPlayerSplash => "minecraft:entity.player.splash", - EntityPlayerSplashHighSpeed => "minecraft:entity.player.splash.high_speed", - EntityPlayerSwim => "minecraft:entity.player.swim", - EntityPlayerTeleport => "minecraft:entity.player.teleport", - EntityPolarBearAmbient => "minecraft:entity.polar_bear.ambient", - EntityPolarBearAmbientBaby => "minecraft:entity.polar_bear.ambient_baby", - EntityPolarBearDeath => "minecraft:entity.polar_bear.death", - EntityPolarBearHurt => "minecraft:entity.polar_bear.hurt", - EntityPolarBearStep => "minecraft:entity.polar_bear.step", - EntityPolarBearWarning => "minecraft:entity.polar_bear.warning", - BlockPolishedDeepslateBreak => "minecraft:block.polished_deepslate.break", - BlockPolishedDeepslateFall => "minecraft:block.polished_deepslate.fall", - BlockPolishedDeepslateHit => "minecraft:block.polished_deepslate.hit", - BlockPolishedDeepslatePlace => "minecraft:block.polished_deepslate.place", - BlockPolishedDeepslateStep => "minecraft:block.polished_deepslate.step", - BlockPortalAmbient => "minecraft:block.portal.ambient", - BlockPortalTravel => "minecraft:block.portal.travel", - BlockPortalTrigger => "minecraft:block.portal.trigger", - BlockPowderSnowBreak => "minecraft:block.powder_snow.break", - BlockPowderSnowFall => "minecraft:block.powder_snow.fall", - BlockPowderSnowHit => "minecraft:block.powder_snow.hit", - BlockPowderSnowPlace => "minecraft:block.powder_snow.place", - BlockPowderSnowStep => "minecraft:block.powder_snow.step", - EntityPufferFishBlowOut => "minecraft:entity.puffer_fish.blow_out", - EntityPufferFishBlowUp => "minecraft:entity.puffer_fish.blow_up", - EntityPufferFishDeath => "minecraft:entity.puffer_fish.death", - EntityPufferFishFlop => "minecraft:entity.puffer_fish.flop", - EntityPufferFishHurt => "minecraft:entity.puffer_fish.hurt", - EntityPufferFishSting => "minecraft:entity.puffer_fish.sting", - BlockPumpkinCarve => "minecraft:block.pumpkin.carve", - EntityRabbitAmbient => "minecraft:entity.rabbit.ambient", - EntityRabbitAttack => "minecraft:entity.rabbit.attack", - EntityRabbitDeath => "minecraft:entity.rabbit.death", - EntityRabbitHurt => "minecraft:entity.rabbit.hurt", - EntityRabbitJump => "minecraft:entity.rabbit.jump", - EventRaidHorn => "minecraft:event.raid.horn", - EntityRavagerAmbient => "minecraft:entity.ravager.ambient", - EntityRavagerAttack => "minecraft:entity.ravager.attack", - EntityRavagerCelebrate => "minecraft:entity.ravager.celebrate", - EntityRavagerDeath => "minecraft:entity.ravager.death", - EntityRavagerHurt => "minecraft:entity.ravager.hurt", - EntityRavagerStep => "minecraft:entity.ravager.step", - EntityRavagerStunned => "minecraft:entity.ravager.stunned", - EntityRavagerRoar => "minecraft:entity.ravager.roar", - BlockNetherGoldOreBreak => "minecraft:block.nether_gold_ore.break", - BlockNetherGoldOreFall => "minecraft:block.nether_gold_ore.fall", - BlockNetherGoldOreHit => "minecraft:block.nether_gold_ore.hit", - BlockNetherGoldOrePlace => "minecraft:block.nether_gold_ore.place", - BlockNetherGoldOreStep => "minecraft:block.nether_gold_ore.step", - BlockNetherOreBreak => "minecraft:block.nether_ore.break", - BlockNetherOreFall => "minecraft:block.nether_ore.fall", - BlockNetherOreHit => "minecraft:block.nether_ore.hit", - 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", - BlockRespawnAnchorSetSpawn => "minecraft:block.respawn_anchor.set_spawn", - BlockRootedDirtBreak => "minecraft:block.rooted_dirt.break", - BlockRootedDirtFall => "minecraft:block.rooted_dirt.fall", - BlockRootedDirtHit => "minecraft:block.rooted_dirt.hit", - BlockRootedDirtPlace => "minecraft:block.rooted_dirt.place", - BlockRootedDirtStep => "minecraft:block.rooted_dirt.step", - EntitySalmonAmbient => "minecraft:entity.salmon.ambient", - EntitySalmonDeath => "minecraft:entity.salmon.death", - EntitySalmonFlop => "minecraft:entity.salmon.flop", - EntitySalmonHurt => "minecraft:entity.salmon.hurt", - BlockSandBreak => "minecraft:block.sand.break", - BlockSandFall => "minecraft:block.sand.fall", - BlockSandHit => "minecraft:block.sand.hit", - BlockSandPlace => "minecraft:block.sand.place", - BlockSandStep => "minecraft:block.sand.step", - BlockSandIdle => "minecraft:block.sand.idle", - BlockScaffoldingBreak => "minecraft:block.scaffolding.break", - BlockScaffoldingFall => "minecraft:block.scaffolding.fall", - BlockScaffoldingHit => "minecraft:block.scaffolding.hit", - BlockScaffoldingPlace => "minecraft:block.scaffolding.place", - BlockScaffoldingStep => "minecraft:block.scaffolding.step", - BlockSculkSpread => "minecraft:block.sculk.spread", - BlockSculkCharge => "minecraft:block.sculk.charge", - BlockSculkBreak => "minecraft:block.sculk.break", - BlockSculkFall => "minecraft:block.sculk.fall", - BlockSculkHit => "minecraft:block.sculk.hit", - BlockSculkPlace => "minecraft:block.sculk.place", - BlockSculkStep => "minecraft:block.sculk.step", - BlockSculkCatalystBloom => "minecraft:block.sculk_catalyst.bloom", - BlockSculkCatalystBreak => "minecraft:block.sculk_catalyst.break", - BlockSculkCatalystFall => "minecraft:block.sculk_catalyst.fall", - BlockSculkCatalystHit => "minecraft:block.sculk_catalyst.hit", - BlockSculkCatalystPlace => "minecraft:block.sculk_catalyst.place", - BlockSculkCatalystStep => "minecraft:block.sculk_catalyst.step", - BlockSculkSensorClicking => "minecraft:block.sculk_sensor.clicking", - BlockSculkSensorClickingStop => "minecraft:block.sculk_sensor.clicking_stop", - BlockSculkSensorBreak => "minecraft:block.sculk_sensor.break", - BlockSculkSensorFall => "minecraft:block.sculk_sensor.fall", - BlockSculkSensorHit => "minecraft:block.sculk_sensor.hit", - BlockSculkSensorPlace => "minecraft:block.sculk_sensor.place", - BlockSculkSensorStep => "minecraft:block.sculk_sensor.step", - BlockSculkShriekerBreak => "minecraft:block.sculk_shrieker.break", - BlockSculkShriekerFall => "minecraft:block.sculk_shrieker.fall", - BlockSculkShriekerHit => "minecraft:block.sculk_shrieker.hit", - BlockSculkShriekerPlace => "minecraft:block.sculk_shrieker.place", - BlockSculkShriekerShriek => "minecraft:block.sculk_shrieker.shriek", - BlockSculkShriekerStep => "minecraft:block.sculk_shrieker.step", - BlockSculkVeinBreak => "minecraft:block.sculk_vein.break", - BlockSculkVeinFall => "minecraft:block.sculk_vein.fall", - BlockSculkVeinHit => "minecraft:block.sculk_vein.hit", - BlockSculkVeinPlace => "minecraft:block.sculk_vein.place", - BlockSculkVeinStep => "minecraft:block.sculk_vein.step", - EntitySheepAmbient => "minecraft:entity.sheep.ambient", - EntitySheepDeath => "minecraft:entity.sheep.death", - EntitySheepHurt => "minecraft:entity.sheep.hurt", - EntitySheepShear => "minecraft:entity.sheep.shear", - EntitySheepStep => "minecraft:entity.sheep.step", - ItemShearsSnip => "minecraft:item.shears.snip", - BlockShelfActivate => "minecraft:block.shelf.activate", - BlockShelfBreak => "minecraft:block.shelf.break", - BlockShelfDeactivate => "minecraft:block.shelf.deactivate", - BlockShelfFall => "minecraft:block.shelf.fall", - BlockShelfHit => "minecraft:block.shelf.hit", - BlockShelfMultiSwap => "minecraft:block.shelf.multi_swap", - BlockShelfPlace => "minecraft:block.shelf.place", - BlockShelfPlaceItem => "minecraft:block.shelf.place_item", - BlockShelfSingleSwap => "minecraft:block.shelf.single_swap", - BlockShelfStep => "minecraft:block.shelf.step", - BlockShelfTakeItem => "minecraft:block.shelf.take_item", - ItemShieldBlock => "minecraft:item.shield.block", - ItemShieldBreak => "minecraft:item.shield.break", - BlockShroomlightBreak => "minecraft:block.shroomlight.break", - BlockShroomlightStep => "minecraft:block.shroomlight.step", - BlockShroomlightPlace => "minecraft:block.shroomlight.place", - BlockShroomlightHit => "minecraft:block.shroomlight.hit", - BlockShroomlightFall => "minecraft:block.shroomlight.fall", - ItemShovelFlatten => "minecraft:item.shovel.flatten", - EntityShulkerAmbient => "minecraft:entity.shulker.ambient", - BlockShulkerBoxClose => "minecraft:block.shulker_box.close", - BlockShulkerBoxOpen => "minecraft:block.shulker_box.open", - EntityShulkerBulletHit => "minecraft:entity.shulker_bullet.hit", - EntityShulkerBulletHurt => "minecraft:entity.shulker_bullet.hurt", - EntityShulkerClose => "minecraft:entity.shulker.close", - EntityShulkerDeath => "minecraft:entity.shulker.death", - EntityShulkerHurt => "minecraft:entity.shulker.hurt", - EntityShulkerHurtClosed => "minecraft:entity.shulker.hurt_closed", - EntityShulkerOpen => "minecraft:entity.shulker.open", - EntityShulkerShoot => "minecraft:entity.shulker.shoot", - EntityShulkerTeleport => "minecraft:entity.shulker.teleport", - EntitySilverfishAmbient => "minecraft:entity.silverfish.ambient", - EntitySilverfishDeath => "minecraft:entity.silverfish.death", - EntitySilverfishHurt => "minecraft:entity.silverfish.hurt", - EntitySilverfishStep => "minecraft:entity.silverfish.step", - EntitySkeletonAmbient => "minecraft:entity.skeleton.ambient", - EntitySkeletonConvertedToStray => "minecraft:entity.skeleton.converted_to_stray", - EntitySkeletonDeath => "minecraft:entity.skeleton.death", - EntitySkeletonHorseAmbient => "minecraft:entity.skeleton_horse.ambient", - EntitySkeletonHorseDeath => "minecraft:entity.skeleton_horse.death", - EntitySkeletonHorseHurt => "minecraft:entity.skeleton_horse.hurt", - EntitySkeletonHorseSwim => "minecraft:entity.skeleton_horse.swim", - EntitySkeletonHorseAmbientWater => "minecraft:entity.skeleton_horse.ambient_water", - EntitySkeletonHorseGallopWater => "minecraft:entity.skeleton_horse.gallop_water", - EntitySkeletonHorseJumpWater => "minecraft:entity.skeleton_horse.jump_water", - EntitySkeletonHorseStepWater => "minecraft:entity.skeleton_horse.step_water", - EntitySkeletonHurt => "minecraft:entity.skeleton.hurt", - EntitySkeletonShoot => "minecraft:entity.skeleton.shoot", - EntitySkeletonStep => "minecraft:entity.skeleton.step", - EntitySlimeAttack => "minecraft:entity.slime.attack", - EntitySlimeDeath => "minecraft:entity.slime.death", - EntitySlimeHurt => "minecraft:entity.slime.hurt", - EntitySlimeJump => "minecraft:entity.slime.jump", - EntitySlimeSquish => "minecraft:entity.slime.squish", - BlockSlimeBlockBreak => "minecraft:block.slime_block.break", - BlockSlimeBlockFall => "minecraft:block.slime_block.fall", - BlockSlimeBlockHit => "minecraft:block.slime_block.hit", - BlockSlimeBlockPlace => "minecraft:block.slime_block.place", - BlockSlimeBlockStep => "minecraft:block.slime_block.step", - BlockSmallAmethystBudBreak => "minecraft:block.small_amethyst_bud.break", - BlockSmallAmethystBudPlace => "minecraft:block.small_amethyst_bud.place", - BlockSmallDripleafBreak => "minecraft:block.small_dripleaf.break", - BlockSmallDripleafFall => "minecraft:block.small_dripleaf.fall", - BlockSmallDripleafHit => "minecraft:block.small_dripleaf.hit", - BlockSmallDripleafPlace => "minecraft:block.small_dripleaf.place", - BlockSmallDripleafStep => "minecraft:block.small_dripleaf.step", - BlockSoulSandBreak => "minecraft:block.soul_sand.break", - BlockSoulSandStep => "minecraft:block.soul_sand.step", - BlockSoulSandPlace => "minecraft:block.soul_sand.place", - BlockSoulSandHit => "minecraft:block.soul_sand.hit", - BlockSoulSandFall => "minecraft:block.soul_sand.fall", - BlockSoulSoilBreak => "minecraft:block.soul_soil.break", - BlockSoulSoilStep => "minecraft:block.soul_soil.step", - BlockSoulSoilPlace => "minecraft:block.soul_soil.place", - BlockSoulSoilHit => "minecraft:block.soul_soil.hit", - BlockSoulSoilFall => "minecraft:block.soul_soil.fall", - ParticleSoulEscape => "minecraft:particle.soul_escape", - BlockSpawnerBreak => "minecraft:block.spawner.break", - BlockSpawnerFall => "minecraft:block.spawner.fall", - BlockSpawnerHit => "minecraft:block.spawner.hit", - BlockSpawnerPlace => "minecraft:block.spawner.place", - BlockSpawnerStep => "minecraft:block.spawner.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", - BlockSporeBlossomPlace => "minecraft:block.spore_blossom.place", - BlockSporeBlossomStep => "minecraft:block.spore_blossom.step", - EntityStriderAmbient => "minecraft:entity.strider.ambient", - EntityStriderHappy => "minecraft:entity.strider.happy", - EntityStriderRetreat => "minecraft:entity.strider.retreat", - EntityStriderDeath => "minecraft:entity.strider.death", - EntityStriderHurt => "minecraft:entity.strider.hurt", - EntityStriderStep => "minecraft:entity.strider.step", - EntityStriderStepLava => "minecraft:entity.strider.step_lava", - EntityStriderEat => "minecraft:entity.strider.eat", - EntityStriderSaddle => "minecraft:entity.strider.saddle", - EntitySlimeDeathSmall => "minecraft:entity.slime.death_small", - EntitySlimeHurtSmall => "minecraft:entity.slime.hurt_small", - EntitySlimeJumpSmall => "minecraft:entity.slime.jump_small", - EntitySlimeSquishSmall => "minecraft:entity.slime.squish_small", - BlockSmithingTableUse => "minecraft:block.smithing_table.use", - BlockSmokerSmoke => "minecraft:block.smoker.smoke", - EntitySnifferStep => "minecraft:entity.sniffer.step", - EntitySnifferEat => "minecraft:entity.sniffer.eat", - EntitySnifferIdle => "minecraft:entity.sniffer.idle", - EntitySnifferHurt => "minecraft:entity.sniffer.hurt", - EntitySnifferDeath => "minecraft:entity.sniffer.death", - EntitySnifferDropSeed => "minecraft:entity.sniffer.drop_seed", - EntitySnifferScenting => "minecraft:entity.sniffer.scenting", - EntitySnifferSniffing => "minecraft:entity.sniffer.sniffing", - EntitySnifferSearching => "minecraft:entity.sniffer.searching", - EntitySnifferDigging => "minecraft:entity.sniffer.digging", - EntitySnifferDiggingStop => "minecraft:entity.sniffer.digging_stop", - EntitySnifferHappy => "minecraft:entity.sniffer.happy", - BlockSnifferEggPlop => "minecraft:block.sniffer_egg.plop", - BlockSnifferEggCrack => "minecraft:block.sniffer_egg.crack", - BlockSnifferEggHatch => "minecraft:block.sniffer_egg.hatch", - EntitySnowballThrow => "minecraft:entity.snowball.throw", - BlockSnowBreak => "minecraft:block.snow.break", - BlockSnowFall => "minecraft:block.snow.fall", - EntitySnowGolemAmbient => "minecraft:entity.snow_golem.ambient", - EntitySnowGolemDeath => "minecraft:entity.snow_golem.death", - EntitySnowGolemHurt => "minecraft:entity.snow_golem.hurt", - EntitySnowGolemShoot => "minecraft:entity.snow_golem.shoot", - EntitySnowGolemShear => "minecraft:entity.snow_golem.shear", - BlockSnowHit => "minecraft:block.snow.hit", - BlockSnowPlace => "minecraft:block.snow.place", - BlockSnowStep => "minecraft:block.snow.step", - EntitySpiderAmbient => "minecraft:entity.spider.ambient", - EntitySpiderDeath => "minecraft:entity.spider.death", - EntitySpiderHurt => "minecraft:entity.spider.hurt", - EntitySpiderStep => "minecraft:entity.spider.step", - EntitySplashPotionBreak => "minecraft:entity.splash_potion.break", - EntitySplashPotionThrow => "minecraft:entity.splash_potion.throw", - BlockSpongeBreak => "minecraft:block.sponge.break", - BlockSpongeFall => "minecraft:block.sponge.fall", - BlockSpongeHit => "minecraft:block.sponge.hit", - BlockSpongePlace => "minecraft:block.sponge.place", - BlockSpongeStep => "minecraft:block.sponge.step", - BlockSpongeAbsorb => "minecraft:block.sponge.absorb", - ItemSpyglassUse => "minecraft:item.spyglass.use", - ItemSpyglassStopUsing => "minecraft:item.spyglass.stop_using", - EntitySquidAmbient => "minecraft:entity.squid.ambient", - EntitySquidDeath => "minecraft:entity.squid.death", - EntitySquidHurt => "minecraft:entity.squid.hurt", - EntitySquidSquirt => "minecraft:entity.squid.squirt", - BlockStoneBreak => "minecraft:block.stone.break", - BlockStoneButtonClickOff => "minecraft:block.stone_button.click_off", - BlockStoneButtonClickOn => "minecraft:block.stone_button.click_on", - BlockStoneFall => "minecraft:block.stone.fall", - BlockStoneHit => "minecraft:block.stone.hit", - BlockStonePlace => "minecraft:block.stone.place", - BlockStonePressurePlateClickOff => "minecraft:block.stone_pressure_plate.click_off", - BlockStonePressurePlateClickOn => "minecraft:block.stone_pressure_plate.click_on", - BlockStoneStep => "minecraft:block.stone.step", - EntityStrayAmbient => "minecraft:entity.stray.ambient", - EntityStrayDeath => "minecraft:entity.stray.death", - EntityStrayHurt => "minecraft:entity.stray.hurt", - EntityStrayStep => "minecraft:entity.stray.step", - BlockSweetBerryBushBreak => "minecraft:block.sweet_berry_bush.break", - BlockSweetBerryBushPlace => "minecraft:block.sweet_berry_bush.place", - BlockSweetBerryBushPickBerries => "minecraft:block.sweet_berry_bush.pick_berries", - EntityTadpoleDeath => "minecraft:entity.tadpole.death", - EntityTadpoleFlop => "minecraft:entity.tadpole.flop", - EntityTadpoleGrowUp => "minecraft:entity.tadpole.grow_up", - EntityTadpoleHurt => "minecraft:entity.tadpole.hurt", - EnchantThornsHit => "minecraft:enchant.thorns.hit", - EntityTntPrimed => "minecraft:entity.tnt.primed", - ItemTotemUse => "minecraft:item.totem.use", - ItemTridentHit => "minecraft:item.trident.hit", - ItemTridentHitGround => "minecraft:item.trident.hit_ground", - ItemTridentReturn => "minecraft:item.trident.return", - ItemTridentRiptide1 => "minecraft:item.trident.riptide_1", - ItemTridentRiptide2 => "minecraft:item.trident.riptide_2", - ItemTridentRiptide3 => "minecraft:item.trident.riptide_3", - ItemTridentThrow => "minecraft:item.trident.throw", - ItemTridentThunder => "minecraft:item.trident.thunder", - BlockTripwireAttach => "minecraft:block.tripwire.attach", - BlockTripwireClickOff => "minecraft:block.tripwire.click_off", - BlockTripwireClickOn => "minecraft:block.tripwire.click_on", - BlockTripwireDetach => "minecraft:block.tripwire.detach", - EntityTropicalFishAmbient => "minecraft:entity.tropical_fish.ambient", - EntityTropicalFishDeath => "minecraft:entity.tropical_fish.death", - EntityTropicalFishFlop => "minecraft:entity.tropical_fish.flop", - EntityTropicalFishHurt => "minecraft:entity.tropical_fish.hurt", - BlockTuffBreak => "minecraft:block.tuff.break", - BlockTuffStep => "minecraft:block.tuff.step", - BlockTuffPlace => "minecraft:block.tuff.place", - BlockTuffHit => "minecraft:block.tuff.hit", - BlockTuffFall => "minecraft:block.tuff.fall", - BlockTuffBricksBreak => "minecraft:block.tuff_bricks.break", - BlockTuffBricksFall => "minecraft:block.tuff_bricks.fall", - BlockTuffBricksHit => "minecraft:block.tuff_bricks.hit", - BlockTuffBricksPlace => "minecraft:block.tuff_bricks.place", - BlockTuffBricksStep => "minecraft:block.tuff_bricks.step", - BlockPolishedTuffBreak => "minecraft:block.polished_tuff.break", - BlockPolishedTuffFall => "minecraft:block.polished_tuff.fall", - BlockPolishedTuffHit => "minecraft:block.polished_tuff.hit", - BlockPolishedTuffPlace => "minecraft:block.polished_tuff.place", - BlockPolishedTuffStep => "minecraft:block.polished_tuff.step", - EntityTurtleAmbientLand => "minecraft:entity.turtle.ambient_land", - EntityTurtleDeath => "minecraft:entity.turtle.death", - EntityTurtleDeathBaby => "minecraft:entity.turtle.death_baby", - EntityTurtleEggBreak => "minecraft:entity.turtle.egg_break", - EntityTurtleEggCrack => "minecraft:entity.turtle.egg_crack", - EntityTurtleEggHatch => "minecraft:entity.turtle.egg_hatch", - EntityTurtleHurt => "minecraft:entity.turtle.hurt", - EntityTurtleHurtBaby => "minecraft:entity.turtle.hurt_baby", - EntityTurtleLayEgg => "minecraft:entity.turtle.lay_egg", - EntityTurtleShamble => "minecraft:entity.turtle.shamble", - EntityTurtleShambleBaby => "minecraft:entity.turtle.shamble_baby", - EntityTurtleSwim => "minecraft:entity.turtle.swim", - UiButtonClick => "minecraft:ui.button.click", - UiLoomSelectPattern => "minecraft:ui.loom.select_pattern", - UiLoomTakeResult => "minecraft:ui.loom.take_result", - UiCartographyTableTakeResult => "minecraft:ui.cartography_table.take_result", - UiStonecutterTakeResult => "minecraft:ui.stonecutter.take_result", - UiStonecutterSelectRecipe => "minecraft:ui.stonecutter.select_recipe", - UiToastChallengeComplete => "minecraft:ui.toast.challenge_complete", - UiToastIn => "minecraft:ui.toast.in", - UiToastOut => "minecraft:ui.toast.out", - BlockVaultActivate => "minecraft:block.vault.activate", - BlockVaultAmbient => "minecraft:block.vault.ambient", - BlockVaultBreak => "minecraft:block.vault.break", - BlockVaultCloseShutter => "minecraft:block.vault.close_shutter", - BlockVaultDeactivate => "minecraft:block.vault.deactivate", - BlockVaultEjectItem => "minecraft:block.vault.eject_item", - BlockVaultRejectRewardedPlayer => "minecraft:block.vault.reject_rewarded_player", - BlockVaultFall => "minecraft:block.vault.fall", - BlockVaultHit => "minecraft:block.vault.hit", - BlockVaultInsertItem => "minecraft:block.vault.insert_item", - BlockVaultInsertItemFail => "minecraft:block.vault.insert_item_fail", - BlockVaultOpenShutter => "minecraft:block.vault.open_shutter", - BlockVaultPlace => "minecraft:block.vault.place", - BlockVaultStep => "minecraft:block.vault.step", - EntityVexAmbient => "minecraft:entity.vex.ambient", - EntityVexCharge => "minecraft:entity.vex.charge", - EntityVexDeath => "minecraft:entity.vex.death", - EntityVexHurt => "minecraft:entity.vex.hurt", - EntityVillagerAmbient => "minecraft:entity.villager.ambient", - EntityVillagerCelebrate => "minecraft:entity.villager.celebrate", - EntityVillagerDeath => "minecraft:entity.villager.death", - EntityVillagerHurt => "minecraft:entity.villager.hurt", - EntityVillagerNo => "minecraft:entity.villager.no", - EntityVillagerTrade => "minecraft:entity.villager.trade", - EntityVillagerYes => "minecraft:entity.villager.yes", - EntityVillagerWorkArmorer => "minecraft:entity.villager.work_armorer", - EntityVillagerWorkButcher => "minecraft:entity.villager.work_butcher", - EntityVillagerWorkCartographer => "minecraft:entity.villager.work_cartographer", - EntityVillagerWorkCleric => "minecraft:entity.villager.work_cleric", - EntityVillagerWorkFarmer => "minecraft:entity.villager.work_farmer", - EntityVillagerWorkFisherman => "minecraft:entity.villager.work_fisherman", - EntityVillagerWorkFletcher => "minecraft:entity.villager.work_fletcher", - EntityVillagerWorkLeatherworker => "minecraft:entity.villager.work_leatherworker", - EntityVillagerWorkLibrarian => "minecraft:entity.villager.work_librarian", - EntityVillagerWorkMason => "minecraft:entity.villager.work_mason", - EntityVillagerWorkShepherd => "minecraft:entity.villager.work_shepherd", - EntityVillagerWorkToolsmith => "minecraft:entity.villager.work_toolsmith", - EntityVillagerWorkWeaponsmith => "minecraft:entity.villager.work_weaponsmith", - EntityVindicatorAmbient => "minecraft:entity.vindicator.ambient", - EntityVindicatorCelebrate => "minecraft:entity.vindicator.celebrate", - EntityVindicatorDeath => "minecraft:entity.vindicator.death", - EntityVindicatorHurt => "minecraft:entity.vindicator.hurt", - BlockVineBreak => "minecraft:block.vine.break", - BlockVineFall => "minecraft:block.vine.fall", - BlockVineHit => "minecraft:block.vine.hit", - BlockVinePlace => "minecraft:block.vine.place", - BlockVineStep => "minecraft:block.vine.step", - BlockLilyPadPlace => "minecraft:block.lily_pad.place", - EntityWanderingTraderAmbient => "minecraft:entity.wandering_trader.ambient", - EntityWanderingTraderDeath => "minecraft:entity.wandering_trader.death", - EntityWanderingTraderDisappeared => "minecraft:entity.wandering_trader.disappeared", - EntityWanderingTraderDrinkMilk => "minecraft:entity.wandering_trader.drink_milk", - EntityWanderingTraderDrinkPotion => "minecraft:entity.wandering_trader.drink_potion", - EntityWanderingTraderHurt => "minecraft:entity.wandering_trader.hurt", - EntityWanderingTraderNo => "minecraft:entity.wandering_trader.no", - EntityWanderingTraderReappeared => "minecraft:entity.wandering_trader.reappeared", - EntityWanderingTraderTrade => "minecraft:entity.wandering_trader.trade", - EntityWanderingTraderYes => "minecraft:entity.wandering_trader.yes", - EntityWardenAgitated => "minecraft:entity.warden.agitated", - EntityWardenAmbient => "minecraft:entity.warden.ambient", - EntityWardenAngry => "minecraft:entity.warden.angry", - EntityWardenAttackImpact => "minecraft:entity.warden.attack_impact", - EntityWardenDeath => "minecraft:entity.warden.death", - EntityWardenDig => "minecraft:entity.warden.dig", - EntityWardenEmerge => "minecraft:entity.warden.emerge", - EntityWardenHeartbeat => "minecraft:entity.warden.heartbeat", - EntityWardenHurt => "minecraft:entity.warden.hurt", - EntityWardenListening => "minecraft:entity.warden.listening", - EntityWardenListeningAngry => "minecraft:entity.warden.listening_angry", - EntityWardenNearbyClose => "minecraft:entity.warden.nearby_close", - EntityWardenNearbyCloser => "minecraft:entity.warden.nearby_closer", - EntityWardenNearbyClosest => "minecraft:entity.warden.nearby_closest", - EntityWardenRoar => "minecraft:entity.warden.roar", - EntityWardenSniff => "minecraft:entity.warden.sniff", - EntityWardenSonicBoom => "minecraft:entity.warden.sonic_boom", - EntityWardenSonicCharge => "minecraft:entity.warden.sonic_charge", - EntityWardenStep => "minecraft:entity.warden.step", - EntityWardenTendrilClicks => "minecraft:entity.warden.tendril_clicks", - BlockHangingSignWaxedInteractFail => "minecraft:block.hanging_sign.waxed_interact_fail", - BlockSignWaxedInteractFail => "minecraft:block.sign.waxed_interact_fail", - BlockWaterAmbient => "minecraft:block.water.ambient", - WeatherEndFlash => "minecraft:weather.end_flash", - WeatherRain => "minecraft:weather.rain", - WeatherRainAbove => "minecraft:weather.rain.above", - BlockWetGrassBreak => "minecraft:block.wet_grass.break", - BlockWetGrassFall => "minecraft:block.wet_grass.fall", - BlockWetGrassHit => "minecraft:block.wet_grass.hit", - BlockWetGrassPlace => "minecraft:block.wet_grass.place", - BlockWetGrassStep => "minecraft:block.wet_grass.step", - BlockWetSpongeBreak => "minecraft:block.wet_sponge.break", - BlockWetSpongeDries => "minecraft:block.wet_sponge.dries", - BlockWetSpongeFall => "minecraft:block.wet_sponge.fall", - BlockWetSpongeHit => "minecraft:block.wet_sponge.hit", - BlockWetSpongePlace => "minecraft:block.wet_sponge.place", - BlockWetSpongeStep => "minecraft:block.wet_sponge.step", - EntityWindChargeWindBurst => "minecraft:entity.wind_charge.wind_burst", - EntityWindChargeThrow => "minecraft:entity.wind_charge.throw", - EntityWitchAmbient => "minecraft:entity.witch.ambient", - EntityWitchCelebrate => "minecraft:entity.witch.celebrate", - EntityWitchDeath => "minecraft:entity.witch.death", - EntityWitchDrink => "minecraft:entity.witch.drink", - EntityWitchHurt => "minecraft:entity.witch.hurt", - EntityWitchThrow => "minecraft:entity.witch.throw", - EntityWitherAmbient => "minecraft:entity.wither.ambient", - EntityWitherBreakBlock => "minecraft:entity.wither.break_block", - EntityWitherDeath => "minecraft:entity.wither.death", - EntityWitherHurt => "minecraft:entity.wither.hurt", - EntityWitherShoot => "minecraft:entity.wither.shoot", - EntityWitherSkeletonAmbient => "minecraft:entity.wither_skeleton.ambient", - EntityWitherSkeletonDeath => "minecraft:entity.wither_skeleton.death", - EntityWitherSkeletonHurt => "minecraft:entity.wither_skeleton.hurt", - EntityWitherSkeletonStep => "minecraft:entity.wither_skeleton.step", - EntityWitherSpawn => "minecraft:entity.wither.spawn", - ItemWolfArmorBreak => "minecraft:item.wolf_armor.break", - ItemWolfArmorCrack => "minecraft:item.wolf_armor.crack", - ItemWolfArmorDamage => "minecraft:item.wolf_armor.damage", - ItemWolfArmorRepair => "minecraft:item.wolf_armor.repair", - EntityWolfShake => "minecraft:entity.wolf.shake", - EntityWolfStep => "minecraft:entity.wolf.step", - EntityWolfAmbient => "minecraft:entity.wolf.ambient", - EntityWolfDeath => "minecraft:entity.wolf.death", - EntityWolfGrowl => "minecraft:entity.wolf.growl", - EntityWolfHurt => "minecraft:entity.wolf.hurt", - EntityWolfPant => "minecraft:entity.wolf.pant", - EntityWolfWhine => "minecraft:entity.wolf.whine", - EntityWolfPuglinAmbient => "minecraft:entity.wolf_puglin.ambient", - EntityWolfPuglinDeath => "minecraft:entity.wolf_puglin.death", - EntityWolfPuglinGrowl => "minecraft:entity.wolf_puglin.growl", - EntityWolfPuglinHurt => "minecraft:entity.wolf_puglin.hurt", - EntityWolfPuglinPant => "minecraft:entity.wolf_puglin.pant", - EntityWolfPuglinWhine => "minecraft:entity.wolf_puglin.whine", - EntityWolfSadAmbient => "minecraft:entity.wolf_sad.ambient", - EntityWolfSadDeath => "minecraft:entity.wolf_sad.death", - EntityWolfSadGrowl => "minecraft:entity.wolf_sad.growl", - EntityWolfSadHurt => "minecraft:entity.wolf_sad.hurt", - EntityWolfSadPant => "minecraft:entity.wolf_sad.pant", - EntityWolfSadWhine => "minecraft:entity.wolf_sad.whine", - EntityWolfAngryAmbient => "minecraft:entity.wolf_angry.ambient", - EntityWolfAngryDeath => "minecraft:entity.wolf_angry.death", - EntityWolfAngryGrowl => "minecraft:entity.wolf_angry.growl", - EntityWolfAngryHurt => "minecraft:entity.wolf_angry.hurt", - EntityWolfAngryPant => "minecraft:entity.wolf_angry.pant", - EntityWolfAngryWhine => "minecraft:entity.wolf_angry.whine", - EntityWolfGrumpyAmbient => "minecraft:entity.wolf_grumpy.ambient", - EntityWolfGrumpyDeath => "minecraft:entity.wolf_grumpy.death", - EntityWolfGrumpyGrowl => "minecraft:entity.wolf_grumpy.growl", - EntityWolfGrumpyHurt => "minecraft:entity.wolf_grumpy.hurt", - EntityWolfGrumpyPant => "minecraft:entity.wolf_grumpy.pant", - EntityWolfGrumpyWhine => "minecraft:entity.wolf_grumpy.whine", - EntityWolfBigAmbient => "minecraft:entity.wolf_big.ambient", - EntityWolfBigDeath => "minecraft:entity.wolf_big.death", - EntityWolfBigGrowl => "minecraft:entity.wolf_big.growl", - EntityWolfBigHurt => "minecraft:entity.wolf_big.hurt", - EntityWolfBigPant => "minecraft:entity.wolf_big.pant", - EntityWolfBigWhine => "minecraft:entity.wolf_big.whine", - EntityWolfCuteAmbient => "minecraft:entity.wolf_cute.ambient", - EntityWolfCuteDeath => "minecraft:entity.wolf_cute.death", - EntityWolfCuteGrowl => "minecraft:entity.wolf_cute.growl", - EntityWolfCuteHurt => "minecraft:entity.wolf_cute.hurt", - EntityWolfCutePant => "minecraft:entity.wolf_cute.pant", - EntityWolfCuteWhine => "minecraft:entity.wolf_cute.whine", - BlockWoodenDoorClose => "minecraft:block.wooden_door.close", - BlockWoodenDoorOpen => "minecraft:block.wooden_door.open", - BlockWoodenTrapdoorClose => "minecraft:block.wooden_trapdoor.close", - BlockWoodenTrapdoorOpen => "minecraft:block.wooden_trapdoor.open", - BlockWoodenButtonClickOff => "minecraft:block.wooden_button.click_off", - BlockWoodenButtonClickOn => "minecraft:block.wooden_button.click_on", - BlockWoodenPressurePlateClickOff => "minecraft:block.wooden_pressure_plate.click_off", - BlockWoodenPressurePlateClickOn => "minecraft:block.wooden_pressure_plate.click_on", - BlockWoodBreak => "minecraft:block.wood.break", - BlockWoodFall => "minecraft:block.wood.fall", - BlockWoodHit => "minecraft:block.wood.hit", - BlockWoodPlace => "minecraft:block.wood.place", - BlockWoodStep => "minecraft:block.wood.step", - BlockWoolBreak => "minecraft:block.wool.break", - BlockWoolFall => "minecraft:block.wool.fall", - BlockWoolHit => "minecraft:block.wool.hit", - BlockWoolPlace => "minecraft:block.wool.place", - BlockWoolStep => "minecraft:block.wool.step", - EntityZoglinAmbient => "minecraft:entity.zoglin.ambient", - EntityZoglinAngry => "minecraft:entity.zoglin.angry", - EntityZoglinAttack => "minecraft:entity.zoglin.attack", - EntityZoglinDeath => "minecraft:entity.zoglin.death", - EntityZoglinHurt => "minecraft:entity.zoglin.hurt", - EntityZoglinStep => "minecraft:entity.zoglin.step", - EntityZombieAmbient => "minecraft:entity.zombie.ambient", - EntityZombieAttackWoodenDoor => "minecraft:entity.zombie.attack_wooden_door", - EntityZombieAttackIronDoor => "minecraft:entity.zombie.attack_iron_door", - EntityZombieBreakWoodenDoor => "minecraft:entity.zombie.break_wooden_door", - EntityZombieConvertedToDrowned => "minecraft:entity.zombie.converted_to_drowned", - 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", - EntityZombieHorseEat => "minecraft:entity.zombie_horse.eat", - EntityZombieHorseHurt => "minecraft:entity.zombie_horse.hurt", - 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", - EntityZombifiedPiglinDeath => "minecraft:entity.zombified_piglin.death", - EntityZombifiedPiglinHurt => "minecraft:entity.zombified_piglin.hurt", - EntityZombieStep => "minecraft:entity.zombie.step", - EntityZombieVillagerAmbient => "minecraft:entity.zombie_villager.ambient", - EntityZombieVillagerConverted => "minecraft:entity.zombie_villager.converted", - EntityZombieVillagerCure => "minecraft:entity.zombie_villager.cure", - EntityZombieVillagerDeath => "minecraft:entity.zombie_villager.death", - EntityZombieVillagerHurt => "minecraft:entity.zombie_villager.hurt", - EntityZombieVillagerStep => "minecraft:entity.zombie_villager.step", - EventMobEffectBadOmen => "minecraft:event.mob_effect.bad_omen", - 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", -} -} - -registry! { -enum StatKind { - Mined => "minecraft:mined", - Crafted => "minecraft:crafted", - Used => "minecraft:used", - Broken => "minecraft:broken", - PickedUp => "minecraft:picked_up", - Dropped => "minecraft:dropped", - Killed => "minecraft:killed", - KilledBy => "minecraft:killed_by", - Custom => "minecraft:custom", -} -} - -registry! { -enum VillagerProfession { - None => "minecraft:none", - Armorer => "minecraft:armorer", - Butcher => "minecraft:butcher", - Cartographer => "minecraft:cartographer", - Cleric => "minecraft:cleric", - Farmer => "minecraft:farmer", - Fisherman => "minecraft:fisherman", - Fletcher => "minecraft:fletcher", - Leatherworker => "minecraft:leatherworker", - Librarian => "minecraft:librarian", - Mason => "minecraft:mason", - Nitwit => "minecraft:nitwit", - Shepherd => "minecraft:shepherd", - Toolsmith => "minecraft:toolsmith", - Weaponsmith => "minecraft:weaponsmith", -} -} - -registry! { -enum VillagerKind { - Desert => "minecraft:desert", - Jungle => "minecraft:jungle", - Plains => "minecraft:plains", - Savanna => "minecraft:savanna", - Snow => "minecraft:snow", - Swamp => "minecraft:swamp", - Taiga => "minecraft:taiga", -} -} - -registry! { -enum WorldgenBiomeSource { - Fixed => "minecraft:fixed", - MultiNoise => "minecraft:multi_noise", - Checkerboard => "minecraft:checkerboard", - TheEnd => "minecraft:the_end", -} -} - -registry! { -enum WorldgenBlockStateProviderKind { - SimpleStateProvider => "minecraft:simple_state_provider", - WeightedStateProvider => "minecraft:weighted_state_provider", - NoiseThresholdProvider => "minecraft:noise_threshold_provider", - NoiseProvider => "minecraft:noise_provider", - DualNoiseProvider => "minecraft:dual_noise_provider", - RotatedBlockProvider => "minecraft:rotated_block_provider", - RandomizedIntStateProvider => "minecraft:randomized_int_state_provider", -} -} - -registry! { -enum WorldgenCarver { - Cave => "minecraft:cave", - NetherCave => "minecraft:nether_cave", - Canyon => "minecraft:canyon", -} -} - -registry! { -enum WorldgenChunkGenerator { - Noise => "minecraft:noise", - Flat => "minecraft:flat", - Debug => "minecraft:debug", -} -} - -registry! { -enum WorldgenDensityFunctionKind { - BlendAlpha => "minecraft:blend_alpha", - BlendOffset => "minecraft:blend_offset", - Beardifier => "minecraft:beardifier", - OldBlendedNoise => "minecraft:old_blended_noise", - Interpolated => "minecraft:interpolated", - FlatCache => "minecraft:flat_cache", - Cache2d => "minecraft:cache_2d", - CacheOnce => "minecraft:cache_once", - CacheAllInCell => "minecraft:cache_all_in_cell", - Noise => "minecraft:noise", - EndIslands => "minecraft:end_islands", - WeirdScaledSampler => "minecraft:weird_scaled_sampler", - ShiftedNoise => "minecraft:shifted_noise", - RangeChoice => "minecraft:range_choice", - ShiftA => "minecraft:shift_a", - ShiftB => "minecraft:shift_b", - Shift => "minecraft:shift", - BlendDensity => "minecraft:blend_density", - Clamp => "minecraft:clamp", - Abs => "minecraft:abs", - Square => "minecraft:square", - Cube => "minecraft:cube", - HalfNegative => "minecraft:half_negative", - QuarterNegative => "minecraft:quarter_negative", - Invert => "minecraft:invert", - Squeeze => "minecraft:squeeze", - Add => "minecraft:add", - Mul => "minecraft:mul", - Min => "minecraft:min", - Max => "minecraft:max", - Spline => "minecraft:spline", - Constant => "minecraft:constant", - YClampedGradient => "minecraft:y_clamped_gradient", - FindTopSurface => "minecraft:find_top_surface", -} -} - -registry! { -enum WorldgenFeature { - NoOp => "minecraft:no_op", - Tree => "minecraft:tree", - FallenTree => "minecraft:fallen_tree", - Flower => "minecraft:flower", - NoBonemealFlower => "minecraft:no_bonemeal_flower", - RandomPatch => "minecraft:random_patch", - BlockPile => "minecraft:block_pile", - SpringFeature => "minecraft:spring_feature", - ChorusPlant => "minecraft:chorus_plant", - ReplaceSingleBlock => "minecraft:replace_single_block", - VoidStartPlatform => "minecraft:void_start_platform", - DesertWell => "minecraft:desert_well", - Fossil => "minecraft:fossil", - HugeRedMushroom => "minecraft:huge_red_mushroom", - HugeBrownMushroom => "minecraft:huge_brown_mushroom", - IceSpike => "minecraft:ice_spike", - GlowstoneBlob => "minecraft:glowstone_blob", - FreezeTopLayer => "minecraft:freeze_top_layer", - Vines => "minecraft:vines", - BlockColumn => "minecraft:block_column", - VegetationPatch => "minecraft:vegetation_patch", - WaterloggedVegetationPatch => "minecraft:waterlogged_vegetation_patch", - RootSystem => "minecraft:root_system", - MultifaceGrowth => "minecraft:multiface_growth", - UnderwaterMagma => "minecraft:underwater_magma", - MonsterRoom => "minecraft:monster_room", - BlueIce => "minecraft:blue_ice", - Iceberg => "minecraft:iceberg", - ForestRock => "minecraft:forest_rock", - Disk => "minecraft:disk", - Lake => "minecraft:lake", - Ore => "minecraft:ore", - EndPlatform => "minecraft:end_platform", - EndSpike => "minecraft:end_spike", - EndIsland => "minecraft:end_island", - EndGateway => "minecraft:end_gateway", - Seagrass => "minecraft:seagrass", - Kelp => "minecraft:kelp", - CoralTree => "minecraft:coral_tree", - CoralMushroom => "minecraft:coral_mushroom", - CoralClaw => "minecraft:coral_claw", - SeaPickle => "minecraft:sea_pickle", - SimpleBlock => "minecraft:simple_block", - Bamboo => "minecraft:bamboo", - HugeFungus => "minecraft:huge_fungus", - NetherForestVegetation => "minecraft:nether_forest_vegetation", - WeepingVines => "minecraft:weeping_vines", - TwistingVines => "minecraft:twisting_vines", - BasaltColumns => "minecraft:basalt_columns", - DeltaFeature => "minecraft:delta_feature", - NetherrackReplaceBlobs => "minecraft:netherrack_replace_blobs", - FillLayer => "minecraft:fill_layer", - BonusChest => "minecraft:bonus_chest", - BasaltPillar => "minecraft:basalt_pillar", - ScatteredOre => "minecraft:scattered_ore", - RandomSelector => "minecraft:random_selector", - SimpleRandomSelector => "minecraft:simple_random_selector", - RandomBooleanSelector => "minecraft:random_boolean_selector", - Geode => "minecraft:geode", - DripstoneCluster => "minecraft:dripstone_cluster", - LargeDripstone => "minecraft:large_dripstone", - PointedDripstone => "minecraft:pointed_dripstone", - SculkPatch => "minecraft:sculk_patch", -} -} - -registry! { -enum WorldgenFeatureSizeKind { - TwoLayersFeatureSize => "minecraft:two_layers_feature_size", - ThreeLayersFeatureSize => "minecraft:three_layers_feature_size", -} -} - -registry! { -enum WorldgenFoliagePlacerKind { - BlobFoliagePlacer => "minecraft:blob_foliage_placer", - SpruceFoliagePlacer => "minecraft:spruce_foliage_placer", - PineFoliagePlacer => "minecraft:pine_foliage_placer", - AcaciaFoliagePlacer => "minecraft:acacia_foliage_placer", - BushFoliagePlacer => "minecraft:bush_foliage_placer", - FancyFoliagePlacer => "minecraft:fancy_foliage_placer", - JungleFoliagePlacer => "minecraft:jungle_foliage_placer", - MegaPineFoliagePlacer => "minecraft:mega_pine_foliage_placer", - DarkOakFoliagePlacer => "minecraft:dark_oak_foliage_placer", - RandomSpreadFoliagePlacer => "minecraft:random_spread_foliage_placer", - CherryFoliagePlacer => "minecraft:cherry_foliage_placer", -} -} - -registry! { -enum WorldgenMaterialCondition { - Biome => "minecraft:biome", - NoiseThreshold => "minecraft:noise_threshold", - VerticalGradient => "minecraft:vertical_gradient", - YAbove => "minecraft:y_above", - Water => "minecraft:water", - Temperature => "minecraft:temperature", - Steep => "minecraft:steep", - Not => "minecraft:not", - Hole => "minecraft:hole", - AbovePreliminarySurface => "minecraft:above_preliminary_surface", - StoneDepth => "minecraft:stone_depth", -} -} - -registry! { -enum WorldgenMaterialRule { - Bandlands => "minecraft:bandlands", - Block => "minecraft:block", - Sequence => "minecraft:sequence", - Condition => "minecraft:condition", -} -} - -registry! { -enum WorldgenPlacementModifierKind { - BlockPredicateFilter => "minecraft:block_predicate_filter", - RarityFilter => "minecraft:rarity_filter", - SurfaceRelativeThresholdFilter => "minecraft:surface_relative_threshold_filter", - SurfaceWaterDepthFilter => "minecraft:surface_water_depth_filter", - Biome => "minecraft:biome", - Count => "minecraft:count", - NoiseBasedCount => "minecraft:noise_based_count", - NoiseThresholdCount => "minecraft:noise_threshold_count", - CountOnEveryLayer => "minecraft:count_on_every_layer", - EnvironmentScan => "minecraft:environment_scan", - Heightmap => "minecraft:heightmap", - HeightRange => "minecraft:height_range", - InSquare => "minecraft:in_square", - RandomOffset => "minecraft:random_offset", - FixedPlacement => "minecraft:fixed_placement", -} -} - -registry! { -enum WorldgenRootPlacerKind { - MangroveRootPlacer => "minecraft:mangrove_root_placer", -} -} - -registry! { -enum WorldgenStructurePiece { - Mscorridor => "minecraft:mscorridor", - Mscrossing => "minecraft:mscrossing", - Msroom => "minecraft:msroom", - Msstairs => "minecraft:msstairs", - Nebcr => "minecraft:nebcr", - Nebef => "minecraft:nebef", - Nebs => "minecraft:nebs", - Neccs => "minecraft:neccs", - Nectb => "minecraft:nectb", - Nece => "minecraft:nece", - Nescsc => "minecraft:nescsc", - Nesclt => "minecraft:nesclt", - Nesc => "minecraft:nesc", - Nescrt => "minecraft:nescrt", - Necsr => "minecraft:necsr", - Nemt => "minecraft:nemt", - Nerc => "minecraft:nerc", - Nesr => "minecraft:nesr", - Nestart => "minecraft:nestart", - Shcc => "minecraft:shcc", - Shfc => "minecraft:shfc", - Sh5c => "minecraft:sh5c", - Shlt => "minecraft:shlt", - Shli => "minecraft:shli", - Shpr => "minecraft:shpr", - Shph => "minecraft:shph", - Shrt => "minecraft:shrt", - Shrc => "minecraft:shrc", - Shsd => "minecraft:shsd", - Shstart => "minecraft:shstart", - Shs => "minecraft:shs", - Shssd => "minecraft:shssd", - Tejp => "minecraft:tejp", - Orp => "minecraft:orp", - Iglu => "minecraft:iglu", - Rupo => "minecraft:rupo", - Tesh => "minecraft:tesh", - Tedp => "minecraft:tedp", - Omb => "minecraft:omb", - Omcr => "minecraft:omcr", - Omdxr => "minecraft:omdxr", - Omdxyr => "minecraft:omdxyr", - Omdyr => "minecraft:omdyr", - Omdyzr => "minecraft:omdyzr", - Omdzr => "minecraft:omdzr", - Omentry => "minecraft:omentry", - Ompenthouse => "minecraft:ompenthouse", - Omsimple => "minecraft:omsimple", - Omsimplet => "minecraft:omsimplet", - Omwr => "minecraft:omwr", - Ecp => "minecraft:ecp", - Wmp => "minecraft:wmp", - Btp => "minecraft:btp", - Shipwreck => "minecraft:shipwreck", - Nefos => "minecraft:nefos", - Jigsaw => "minecraft:jigsaw", -} -} - -registry! { -enum WorldgenStructurePlacement { - RandomSpread => "minecraft:random_spread", - ConcentricRings => "minecraft:concentric_rings", -} -} - -registry! { -enum WorldgenStructurePoolElement { - SinglePoolElement => "minecraft:single_pool_element", - ListPoolElement => "minecraft:list_pool_element", - FeaturePoolElement => "minecraft:feature_pool_element", - EmptyPoolElement => "minecraft:empty_pool_element", - LegacySinglePoolElement => "minecraft:legacy_single_pool_element", -} -} - -registry! { -enum WorldgenStructureProcessor { - BlockIgnore => "minecraft:block_ignore", - BlockRot => "minecraft:block_rot", - Gravity => "minecraft:gravity", - JigsawReplacement => "minecraft:jigsaw_replacement", - Rule => "minecraft:rule", - Nop => "minecraft:nop", - BlockAge => "minecraft:block_age", - BlackstoneReplace => "minecraft:blackstone_replace", - LavaSubmergedBlock => "minecraft:lava_submerged_block", - ProtectedBlocks => "minecraft:protected_blocks", - Capped => "minecraft:capped", -} -} - -registry! { -enum WorldgenStructureKind { - BuriedTreasure => "minecraft:buried_treasure", - DesertPyramid => "minecraft:desert_pyramid", - EndCity => "minecraft:end_city", - Fortress => "minecraft:fortress", - Igloo => "minecraft:igloo", - Jigsaw => "minecraft:jigsaw", - JungleTemple => "minecraft:jungle_temple", - Mineshaft => "minecraft:mineshaft", - NetherFossil => "minecraft:nether_fossil", - OceanMonument => "minecraft:ocean_monument", - OceanRuin => "minecraft:ocean_ruin", - RuinedPortal => "minecraft:ruined_portal", - Shipwreck => "minecraft:shipwreck", - Stronghold => "minecraft:stronghold", - SwampHut => "minecraft:swamp_hut", - WoodlandMansion => "minecraft:woodland_mansion", -} -} - -registry! { -enum WorldgenTreeDecoratorKind { - TrunkVine => "minecraft:trunk_vine", - LeaveVine => "minecraft:leave_vine", - PaleMoss => "minecraft:pale_moss", - CreakingHeart => "minecraft:creaking_heart", - Cocoa => "minecraft:cocoa", - Beehive => "minecraft:beehive", - AlterGround => "minecraft:alter_ground", - AttachedToLeaves => "minecraft:attached_to_leaves", - PlaceOnGround => "minecraft:place_on_ground", - AttachedToLogs => "minecraft:attached_to_logs", -} -} - -registry! { -enum WorldgenTrunkPlacerKind { - StraightTrunkPlacer => "minecraft:straight_trunk_placer", - ForkingTrunkPlacer => "minecraft:forking_trunk_placer", - GiantTrunkPlacer => "minecraft:giant_trunk_placer", - MegaJungleTrunkPlacer => "minecraft:mega_jungle_trunk_placer", - DarkOakTrunkPlacer => "minecraft:dark_oak_trunk_placer", - FancyTrunkPlacer => "minecraft:fancy_trunk_placer", - BendingTrunkPlacer => "minecraft:bending_trunk_placer", - UpwardsBranchingTrunkPlacer => "minecraft:upwards_branching_trunk_placer", - CherryTrunkPlacer => "minecraft:cherry_trunk_placer", -} -} - -registry! { -enum RuleBlockEntityModifier { - Clear => "minecraft:clear", - Passthrough => "minecraft:passthrough", - AppendStatic => "minecraft:append_static", - AppendLoot => "minecraft:append_loot", -} -} - -registry! { -enum CreativeModeTab { - BuildingBlocks => "minecraft:building_blocks", - ColoredBlocks => "minecraft:colored_blocks", - NaturalBlocks => "minecraft:natural_blocks", - FunctionalBlocks => "minecraft:functional_blocks", - RedstoneBlocks => "minecraft:redstone_blocks", - Hotbar => "minecraft:hotbar", - Search => "minecraft:search", - ToolsAndUtilities => "minecraft:tools_and_utilities", - Combat => "minecraft:combat", - FoodAndDrinks => "minecraft:food_and_drinks", - Ingredients => "minecraft:ingredients", - SpawnEggs => "minecraft:spawn_eggs", - OpBlocks => "minecraft:op_blocks", - Inventory => "minecraft:inventory", -} -} - -registry! { -enum MenuKind { - Generic9x1 => "minecraft:generic_9x1", - Generic9x2 => "minecraft:generic_9x2", - Generic9x3 => "minecraft:generic_9x3", - Generic9x4 => "minecraft:generic_9x4", - Generic9x5 => "minecraft:generic_9x5", - Generic9x6 => "minecraft:generic_9x6", - Generic3x3 => "minecraft:generic_3x3", - Crafter3x3 => "minecraft:crafter_3x3", - Anvil => "minecraft:anvil", - Beacon => "minecraft:beacon", - BlastFurnace => "minecraft:blast_furnace", - BrewingStand => "minecraft:brewing_stand", - Crafting => "minecraft:crafting", - Enchantment => "minecraft:enchantment", - Furnace => "minecraft:furnace", - Grindstone => "minecraft:grindstone", - Hopper => "minecraft:hopper", - Lectern => "minecraft:lectern", - Loom => "minecraft:loom", - Merchant => "minecraft:merchant", - ShulkerBox => "minecraft:shulker_box", - Smithing => "minecraft:smithing", - Smoker => "minecraft:smoker", - CartographyTable => "minecraft:cartography_table", - Stonecutter => "minecraft:stonecutter", -} -} - -registry! { -enum BlockKind { - Block => "minecraft:block", - Air => "minecraft:air", - Amethyst => "minecraft:amethyst", - AmethystCluster => "minecraft:amethyst_cluster", - Anvil => "minecraft:anvil", - AttachedStem => "minecraft:attached_stem", - Azalea => "minecraft:azalea", - BambooSapling => "minecraft:bamboo_sapling", - BambooStalk => "minecraft:bamboo_stalk", - Banner => "minecraft:banner", - Barrel => "minecraft:barrel", - Barrier => "minecraft:barrier", - BaseCoralFan => "minecraft:base_coral_fan", - BaseCoralPlant => "minecraft:base_coral_plant", - BaseCoralWallFan => "minecraft:base_coral_wall_fan", - Beacon => "minecraft:beacon", - Bed => "minecraft:bed", - Beehive => "minecraft:beehive", - Beetroot => "minecraft:beetroot", - Bell => "minecraft:bell", - BigDripleaf => "minecraft:big_dripleaf", - BigDripleafStem => "minecraft:big_dripleaf_stem", - BlastFurnace => "minecraft:blast_furnace", - BrewingStand => "minecraft:brewing_stand", - Brushable => "minecraft:brushable", - BubbleColumn => "minecraft:bubble_column", - BuddingAmethyst => "minecraft:budding_amethyst", - Bush => "minecraft:bush", - Button => "minecraft:button", - Cactus => "minecraft:cactus", - CactusFlower => "minecraft:cactus_flower", - Cake => "minecraft:cake", - CalibratedSculkSensor => "minecraft:calibrated_sculk_sensor", - Campfire => "minecraft:campfire", - CandleCake => "minecraft:candle_cake", - Candle => "minecraft:candle", - Carpet => "minecraft:carpet", - Carrot => "minecraft:carrot", - CartographyTable => "minecraft:cartography_table", - Cauldron => "minecraft:cauldron", - CaveVines => "minecraft:cave_vines", - CaveVinesPlant => "minecraft:cave_vines_plant", - CeilingHangingSign => "minecraft:ceiling_hanging_sign", - Chain => "minecraft:chain", - Chest => "minecraft:chest", - ChiseledBookShelf => "minecraft:chiseled_book_shelf", - ChorusFlower => "minecraft:chorus_flower", - ChorusPlant => "minecraft:chorus_plant", - Cocoa => "minecraft:cocoa", - ColoredFalling => "minecraft:colored_falling", - Command => "minecraft:command", - Comparator => "minecraft:comparator", - Composter => "minecraft:composter", - ConcretePowder => "minecraft:concrete_powder", - Conduit => "minecraft:conduit", - CopperBulbBlock => "minecraft:copper_bulb_block", - CopperChest => "minecraft:copper_chest", - CopperGolemStatue => "minecraft:copper_golem_statue", - Coral => "minecraft:coral", - CoralFan => "minecraft:coral_fan", - CoralPlant => "minecraft:coral_plant", - CoralWallFan => "minecraft:coral_wall_fan", - Crafter => "minecraft:crafter", - CraftingTable => "minecraft:crafting_table", - Crop => "minecraft:crop", - CryingObsidian => "minecraft:crying_obsidian", - DaylightDetector => "minecraft:daylight_detector", - DryVegetation => "minecraft:dry_vegetation", - DecoratedPot => "minecraft:decorated_pot", - DetectorRail => "minecraft:detector_rail", - DirtPath => "minecraft:dirt_path", - Dispenser => "minecraft:dispenser", - Door => "minecraft:door", - DoublePlant => "minecraft:double_plant", - DragonEgg => "minecraft:dragon_egg", - DriedGhast => "minecraft:dried_ghast", - DropExperience => "minecraft:drop_experience", - Dropper => "minecraft:dropper", - EnchantmentTable => "minecraft:enchantment_table", - EnderChest => "minecraft:ender_chest", - EndGateway => "minecraft:end_gateway", - EndPortal => "minecraft:end_portal", - EndPortalFrame => "minecraft:end_portal_frame", - EndRod => "minecraft:end_rod", - Eyeblossom => "minecraft:eyeblossom", - Farm => "minecraft:farm", - BonemealableFeaturePlacer => "minecraft:bonemealable_feature_placer", - Fence => "minecraft:fence", - FenceGate => "minecraft:fence_gate", - Fire => "minecraft:fire", - FireflyBush => "minecraft:firefly_bush", - Flower => "minecraft:flower", - FlowerPot => "minecraft:flower_pot", - Frogspawn => "minecraft:frogspawn", - FrostedIce => "minecraft:frosted_ice", - Fungus => "minecraft:fungus", - Furnace => "minecraft:furnace", - GlazedTerracotta => "minecraft:glazed_terracotta", - GlowLichen => "minecraft:glow_lichen", - Grass => "minecraft:grass", - Grindstone => "minecraft:grindstone", - HalfTransparent => "minecraft:half_transparent", - HangingMoss => "minecraft:hanging_moss", - HangingRoots => "minecraft:hanging_roots", - Hay => "minecraft:hay", - HeavyCore => "minecraft:heavy_core", - Honey => "minecraft:honey", - Hopper => "minecraft:hopper", - HugeMushroom => "minecraft:huge_mushroom", - Ice => "minecraft:ice", - Infested => "minecraft:infested", - InfestedRotatedPillar => "minecraft:infested_rotated_pillar", - IronBars => "minecraft:iron_bars", - JackOLantern => "minecraft:jack_o_lantern", - Jigsaw => "minecraft:jigsaw", - Jukebox => "minecraft:jukebox", - Kelp => "minecraft:kelp", - KelpPlant => "minecraft:kelp_plant", - Ladder => "minecraft:ladder", - Lantern => "minecraft:lantern", - LavaCauldron => "minecraft:lava_cauldron", - LayeredCauldron => "minecraft:layered_cauldron", - LeafLitter => "minecraft:leaf_litter", - Lectern => "minecraft:lectern", - Lever => "minecraft:lever", - Light => "minecraft:light", - LightningRod => "minecraft:lightning_rod", - Liquid => "minecraft:liquid", - Loom => "minecraft:loom", - Magma => "minecraft:magma", - MangroveLeaves => "minecraft:mangrove_leaves", - MangrovePropagule => "minecraft:mangrove_propagule", - MangroveRoots => "minecraft:mangrove_roots", - MossyCarpet => "minecraft:mossy_carpet", - MovingPiston => "minecraft:moving_piston", - Mud => "minecraft:mud", - Multiface => "minecraft:multiface", - Mushroom => "minecraft:mushroom", - Mycelium => "minecraft:mycelium", - NetherPortal => "minecraft:nether_portal", - Netherrack => "minecraft:netherrack", - NetherSprouts => "minecraft:nether_sprouts", - NetherWart => "minecraft:nether_wart", - Note => "minecraft:note", - Nylium => "minecraft:nylium", - Observer => "minecraft:observer", - Piglinwallskull => "minecraft:piglinwallskull", - FlowerBed => "minecraft:flower_bed", - PistonBase => "minecraft:piston_base", - PistonHead => "minecraft:piston_head", - PitcherCrop => "minecraft:pitcher_crop", - PlayerHead => "minecraft:player_head", - PlayerWallHead => "minecraft:player_wall_head", - PointedDripstone => "minecraft:pointed_dripstone", - Potato => "minecraft:potato", - PowderSnow => "minecraft:powder_snow", - Powered => "minecraft:powered", - PoweredRail => "minecraft:powered_rail", - PressurePlate => "minecraft:pressure_plate", - Pumpkin => "minecraft:pumpkin", - Rail => "minecraft:rail", - RedstoneLamp => "minecraft:redstone_lamp", - RedstoneOre => "minecraft:redstone_ore", - RedstoneTorch => "minecraft:redstone_torch", - RedstoneWallTorch => "minecraft:redstone_wall_torch", - RedstoneWire => "minecraft:redstone_wire", - Repeater => "minecraft:repeater", - RespawnAnchor => "minecraft:respawn_anchor", - RootedDirt => "minecraft:rooted_dirt", - Roots => "minecraft:roots", - RotatedPillar => "minecraft:rotated_pillar", - Sapling => "minecraft:sapling", - Sand => "minecraft:sand", - Scaffolding => "minecraft:scaffolding", - SculkCatalyst => "minecraft:sculk_catalyst", - Sculk => "minecraft:sculk", - SculkSensor => "minecraft:sculk_sensor", - SculkShrieker => "minecraft:sculk_shrieker", - SculkVein => "minecraft:sculk_vein", - Seagrass => "minecraft:seagrass", - SeaPickle => "minecraft:sea_pickle", - Shelf => "minecraft:shelf", - ShortDryGrass => "minecraft:short_dry_grass", - ShulkerBox => "minecraft:shulker_box", - Skull => "minecraft:skull", - Slab => "minecraft:slab", - Slime => "minecraft:slime", - SmallDripleaf => "minecraft:small_dripleaf", - SmithingTable => "minecraft:smithing_table", - Smoker => "minecraft:smoker", - SnifferEgg => "minecraft:sniffer_egg", - SnowLayer => "minecraft:snow_layer", - SnowyDirt => "minecraft:snowy_dirt", - SoulFire => "minecraft:soul_fire", - SoulSand => "minecraft:soul_sand", - Spawner => "minecraft:spawner", - CreakingHeart => "minecraft:creaking_heart", - Sponge => "minecraft:sponge", - SporeBlossom => "minecraft:spore_blossom", - StainedGlassPane => "minecraft:stained_glass_pane", - StainedGlass => "minecraft:stained_glass", - Stair => "minecraft:stair", - StandingSign => "minecraft:standing_sign", - Stem => "minecraft:stem", - Stonecutter => "minecraft:stonecutter", - Structure => "minecraft:structure", - StructureVoid => "minecraft:structure_void", - SugarCane => "minecraft:sugar_cane", - SweetBerryBush => "minecraft:sweet_berry_bush", - TallDryGrass => "minecraft:tall_dry_grass", - TallFlower => "minecraft:tall_flower", - TallGrass => "minecraft:tall_grass", - TallSeagrass => "minecraft:tall_seagrass", - Target => "minecraft:target", - Test => "minecraft:test", - TestInstance => "minecraft:test_instance", - TintedGlass => "minecraft:tinted_glass", - TintedParticleLeaves => "minecraft:tinted_particle_leaves", - Tnt => "minecraft:tnt", - TorchflowerCrop => "minecraft:torchflower_crop", - Torch => "minecraft:torch", - Transparent => "minecraft:transparent", - Trapdoor => "minecraft:trapdoor", - TrappedChest => "minecraft:trapped_chest", - TrialSpawner => "minecraft:trial_spawner", - TripWireHook => "minecraft:trip_wire_hook", - Tripwire => "minecraft:tripwire", - TurtleEgg => "minecraft:turtle_egg", - TwistingVinesPlant => "minecraft:twisting_vines_plant", - TwistingVines => "minecraft:twisting_vines", - UntintedParticleLeaves => "minecraft:untinted_particle_leaves", - Vault => "minecraft:vault", - Vine => "minecraft:vine", - WallBanner => "minecraft:wall_banner", - WallHangingSign => "minecraft:wall_hanging_sign", - WallSign => "minecraft:wall_sign", - WallSkull => "minecraft:wall_skull", - WallTorch => "minecraft:wall_torch", - Wall => "minecraft:wall", - Waterlily => "minecraft:waterlily", - WaterloggedTransparent => "minecraft:waterlogged_transparent", - WeatheringCopperBar => "minecraft:weathering_copper_bar", - WeatheringCopperBulb => "minecraft:weathering_copper_bulb", - WeatheringCopperChain => "minecraft:weathering_copper_chain", - WeatheringCopperChest => "minecraft:weathering_copper_chest", - WeatheringCopperDoor => "minecraft:weathering_copper_door", - WeatheringCopperFull => "minecraft:weathering_copper_full", - WeatheringCopperGolemStatue => "minecraft:weathering_copper_golem_statue", - WeatheringCopperGrate => "minecraft:weathering_copper_grate", - WeatheringCopperSlab => "minecraft:weathering_copper_slab", - WeatheringCopperStair => "minecraft:weathering_copper_stair", - WeatheringCopperTrapDoor => "minecraft:weathering_copper_trap_door", - WeatheringLantern => "minecraft:weathering_lantern", - WeatheringLightningRod => "minecraft:weathering_lightning_rod", - Web => "minecraft:web", - WeepingVinesPlant => "minecraft:weeping_vines_plant", - WeepingVines => "minecraft:weeping_vines", - WeightedPressurePlate => "minecraft:weighted_pressure_plate", - WetSponge => "minecraft:wet_sponge", - WitherRose => "minecraft:wither_rose", - WitherSkull => "minecraft:wither_skull", - WitherWallSkull => "minecraft:wither_wall_skull", - WoolCarpet => "minecraft:wool_carpet", -} -} - -registry! { -enum WorldgenPoolAliasBinding { - Random => "minecraft:random", - RandomGroup => "minecraft:random_group", - Direct => "minecraft:direct", -} -} - -registry! { -enum TriggerKind { - Impossible => "minecraft:impossible", - PlayerKilledEntity => "minecraft:player_killed_entity", - EntityKilledPlayer => "minecraft:entity_killed_player", - EnterBlock => "minecraft:enter_block", - InventoryChanged => "minecraft:inventory_changed", - RecipeUnlocked => "minecraft:recipe_unlocked", - PlayerHurtEntity => "minecraft:player_hurt_entity", - EntityHurtPlayer => "minecraft:entity_hurt_player", - EnchantedItem => "minecraft:enchanted_item", - FilledBucket => "minecraft:filled_bucket", - BrewedPotion => "minecraft:brewed_potion", - ConstructBeacon => "minecraft:construct_beacon", - UsedEnderEye => "minecraft:used_ender_eye", - SummonedEntity => "minecraft:summoned_entity", - BredAnimals => "minecraft:bred_animals", - Location => "minecraft:location", - SleptInBed => "minecraft:slept_in_bed", - CuredZombieVillager => "minecraft:cured_zombie_villager", - VillagerTrade => "minecraft:villager_trade", - ItemDurabilityChanged => "minecraft:item_durability_changed", - Levitation => "minecraft:levitation", - ChangedDimension => "minecraft:changed_dimension", - Tick => "minecraft:tick", - TameAnimal => "minecraft:tame_animal", - PlacedBlock => "minecraft:placed_block", - ConsumeItem => "minecraft:consume_item", - EffectsChanged => "minecraft:effects_changed", - UsedTotem => "minecraft:used_totem", - NetherTravel => "minecraft:nether_travel", - 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", - SlideDownBlock => "minecraft:slide_down_block", - BeeNestDestroyed => "minecraft:bee_nest_destroyed", - TargetHit => "minecraft:target_hit", - ItemUsedOnBlock => "minecraft:item_used_on_block", - DefaultBlockUse => "minecraft:default_block_use", - AnyBlockUse => "minecraft:any_block_use", - PlayerGeneratesContainerLoot => "minecraft:player_generates_container_loot", - ThrownItemPickedUpByEntity => "minecraft:thrown_item_picked_up_by_entity", - ThrownItemPickedUpByPlayer => "minecraft:thrown_item_picked_up_by_player", - PlayerInteractedWithEntity => "minecraft:player_interacted_with_entity", - PlayerShearedEquipment => "minecraft:player_sheared_equipment", - StartedRiding => "minecraft:started_riding", - LightningStrike => "minecraft:lightning_strike", - UsingItem => "minecraft:using_item", - FallFromHeight => "minecraft:fall_from_height", - RideEntityInLava => "minecraft:ride_entity_in_lava", - KillMobNearSculkCatalyst => "minecraft:kill_mob_near_sculk_catalyst", - AllayDropItemOnBlock => "minecraft:allay_drop_item_on_block", - AvoidVibration => "minecraft:avoid_vibration", - RecipeCrafted => "minecraft:recipe_crafted", - CrafterRecipeCrafted => "minecraft:crafter_recipe_crafted", - FallAfterExplosion => "minecraft:fall_after_explosion", -} -} - -registry! { -enum NumberFormatKind { - Blank => "minecraft:blank", - Styled => "minecraft:styled", - Fixed => "minecraft:fixed", -} -} - -registry! { -enum DataComponentKind { - CustomData => "minecraft:custom_data", - MaxStackSize => "minecraft:max_stack_size", - 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", - Rarity => "minecraft:rarity", - Enchantments => "minecraft:enchantments", - CanPlaceOn => "minecraft:can_place_on", - CanBreak => "minecraft:can_break", - AttributeModifiers => "minecraft:attribute_modifiers", - CustomModelData => "minecraft:custom_model_data", - TooltipDisplay => "minecraft:tooltip_display", - RepairCost => "minecraft:repair_cost", - CreativeSlotLock => "minecraft:creative_slot_lock", - EnchantmentGlintOverride => "minecraft:enchantment_glint_override", - IntangibleProjectile => "minecraft:intangible_projectile", - Food => "minecraft:food", - Consumable => "minecraft:consumable", - UseRemainder => "minecraft:use_remainder", - UseCooldown => "minecraft:use_cooldown", - DamageResistant => "minecraft:damage_resistant", - Tool => "minecraft:tool", - Weapon => "minecraft:weapon", - AttackRange => "minecraft:attack_range", - Enchantable => "minecraft:enchantable", - Equippable => "minecraft:equippable", - Repairable => "minecraft:repairable", - Glider => "minecraft:glider", - 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", - MapId => "minecraft:map_id", - MapDecorations => "minecraft:map_decorations", - MapPostProcessing => "minecraft:map_post_processing", - ChargedProjectiles => "minecraft:charged_projectiles", - BundleContents => "minecraft:bundle_contents", - PotionContents => "minecraft:potion_contents", - PotionDurationScale => "minecraft:potion_duration_scale", - SuspiciousStewEffects => "minecraft:suspicious_stew_effects", - WritableBookContent => "minecraft:writable_book_content", - WrittenBookContent => "minecraft:written_book_content", - Trim => "minecraft:trim", - DebugStickState => "minecraft:debug_stick_state", - EntityData => "minecraft:entity_data", - BucketEntityData => "minecraft:bucket_entity_data", - BlockEntityData => "minecraft:block_entity_data", - Instrument => "minecraft:instrument", - ProvidesTrimMaterial => "minecraft:provides_trim_material", - OminousBottleAmplifier => "minecraft:ominous_bottle_amplifier", - JukeboxPlayable => "minecraft:jukebox_playable", - ProvidesBannerPatterns => "minecraft:provides_banner_patterns", - Recipes => "minecraft:recipes", - LodestoneTracker => "minecraft:lodestone_tracker", - FireworkExplosion => "minecraft:firework_explosion", - Fireworks => "minecraft:fireworks", - Profile => "minecraft:profile", - NoteBlockSound => "minecraft:note_block_sound", - BannerPatterns => "minecraft:banner_patterns", - BaseColor => "minecraft:base_color", - PotDecorations => "minecraft:pot_decorations", - Container => "minecraft:container", - BlockState => "minecraft:block_state", - Bees => "minecraft:bees", - Lock => "minecraft:lock", - ContainerLoot => "minecraft:container_loot", - BreakSound => "minecraft:break_sound", - VillagerVariant => "minecraft:villager/variant", - WolfVariant => "minecraft:wolf/variant", - WolfSoundVariant => "minecraft:wolf/sound_variant", - WolfCollar => "minecraft:wolf/collar", - FoxVariant => "minecraft:fox/variant", - SalmonSize => "minecraft:salmon/size", - ParrotVariant => "minecraft:parrot/variant", - TropicalFishPattern => "minecraft:tropical_fish/pattern", - TropicalFishBaseColor => "minecraft:tropical_fish/base_color", - TropicalFishPatternColor => "minecraft:tropical_fish/pattern_color", - MooshroomVariant => "minecraft:mooshroom/variant", - RabbitVariant => "minecraft:rabbit/variant", - 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", - LlamaVariant => "minecraft:llama/variant", - AxolotlVariant => "minecraft:axolotl/variant", - CatVariant => "minecraft:cat/variant", - CatCollar => "minecraft:cat/collar", - SheepColor => "minecraft:sheep/color", - ShulkerColor => "minecraft:shulker/color", -} -} - -registry! { -enum EntitySubPredicateKind { - Lightning => "minecraft:lightning", - FishingHook => "minecraft:fishing_hook", - Player => "minecraft:player", - Slime => "minecraft:slime", - Raider => "minecraft:raider", - Sheep => "minecraft:sheep", -} -} - -registry! { -enum MapDecorationKind { - Player => "minecraft:player", - Frame => "minecraft:frame", - RedMarker => "minecraft:red_marker", - BlueMarker => "minecraft:blue_marker", - TargetX => "minecraft:target_x", - TargetPoint => "minecraft:target_point", - PlayerOffMap => "minecraft:player_off_map", - PlayerOffLimits => "minecraft:player_off_limits", - Mansion => "minecraft:mansion", - Monument => "minecraft:monument", - BannerWhite => "minecraft:banner_white", - BannerOrange => "minecraft:banner_orange", - BannerMagenta => "minecraft:banner_magenta", - BannerLightBlue => "minecraft:banner_light_blue", - BannerYellow => "minecraft:banner_yellow", - BannerLime => "minecraft:banner_lime", - BannerPink => "minecraft:banner_pink", - BannerGray => "minecraft:banner_gray", - BannerLightGray => "minecraft:banner_light_gray", - BannerCyan => "minecraft:banner_cyan", - BannerPurple => "minecraft:banner_purple", - BannerBlue => "minecraft:banner_blue", - BannerBrown => "minecraft:banner_brown", - BannerGreen => "minecraft:banner_green", - BannerRed => "minecraft:banner_red", - BannerBlack => "minecraft:banner_black", - RedX => "minecraft:red_x", - VillageDesert => "minecraft:village_desert", - VillagePlains => "minecraft:village_plains", - VillageSavanna => "minecraft:village_savanna", - VillageSnowy => "minecraft:village_snowy", - VillageTaiga => "minecraft:village_taiga", - JungleTemple => "minecraft:jungle_temple", - SwampHut => "minecraft:swamp_hut", - TrialChambers => "minecraft:trial_chambers", -} -} - -registry! { -enum EnchantmentEffectComponentKind { - DamageProtection => "minecraft:damage_protection", - DamageImmunity => "minecraft:damage_immunity", - Damage => "minecraft:damage", - SmashDamagePerFallenBlock => "minecraft:smash_damage_per_fallen_block", - 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", - EquipmentDrops => "minecraft:equipment_drops", - LocationChanged => "minecraft:location_changed", - Tick => "minecraft:tick", - AmmoUse => "minecraft:ammo_use", - ProjectilePiercing => "minecraft:projectile_piercing", - ProjectileSpawned => "minecraft:projectile_spawned", - ProjectileSpread => "minecraft:projectile_spread", - ProjectileCount => "minecraft:projectile_count", - TridentReturnAcceleration => "minecraft:trident_return_acceleration", - FishingTimeReduction => "minecraft:fishing_time_reduction", - FishingLuckBonus => "minecraft:fishing_luck_bonus", - BlockExperience => "minecraft:block_experience", - MobExperience => "minecraft:mob_experience", - RepairWithXp => "minecraft:repair_with_xp", - CrossbowChargeTime => "minecraft:crossbow_charge_time", - CrossbowChargingSounds => "minecraft:crossbow_charging_sounds", - TridentSound => "minecraft:trident_sound", - PreventEquipmentDrop => "minecraft:prevent_equipment_drop", - PreventArmorChange => "minecraft:prevent_armor_change", - TridentSpinAttackStrength => "minecraft:trident_spin_attack_strength", -} -} - -registry! { -enum EnchantmentEntityEffectKind { - AllOf => "minecraft:all_of", - ApplyMobEffect => "minecraft:apply_mob_effect", - ChangeItemDamage => "minecraft:change_item_damage", - 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", - RunFunction => "minecraft:run_function", - SetBlockProperties => "minecraft:set_block_properties", - SpawnParticles => "minecraft:spawn_particles", - SummonEntity => "minecraft:summon_entity", -} -} - -registry! { -enum EnchantmentLevelBasedValueKind { - Clamped => "minecraft:clamped", - Fraction => "minecraft:fraction", - LevelsSquared => "minecraft:levels_squared", - Linear => "minecraft:linear", - Exponent => "minecraft:exponent", - Lookup => "minecraft:lookup", -} -} - -registry! { -enum EnchantmentLocationBasedEffectKind { - AllOf => "minecraft:all_of", - ApplyMobEffect => "minecraft:apply_mob_effect", - Attribute => "minecraft:attribute", - ChangeItemDamage => "minecraft:change_item_damage", - 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", - RunFunction => "minecraft:run_function", - SetBlockProperties => "minecraft:set_block_properties", - SpawnParticles => "minecraft:spawn_particles", - SummonEntity => "minecraft:summon_entity", -} -} - -registry! { -enum EnchantmentProviderKind { - ByCost => "minecraft:by_cost", - ByCostWithDifficulty => "minecraft:by_cost_with_difficulty", - Single => "minecraft:single", -} -} - -registry! { -enum EnchantmentValueEffectKind { - Add => "minecraft:add", - AllOf => "minecraft:all_of", - Multiply => "minecraft:multiply", - RemoveBinomial => "minecraft:remove_binomial", - Exponential => "minecraft:exponential", - Set => "minecraft:set", -} -} - -registry! { -enum DecoratedPotPattern { - Angler => "minecraft:angler", - Archer => "minecraft:archer", - ArmsUp => "minecraft:arms_up", - Blade => "minecraft:blade", - Brewer => "minecraft:brewer", - Burn => "minecraft:burn", - Danger => "minecraft:danger", - Explorer => "minecraft:explorer", - Flow => "minecraft:flow", - Friend => "minecraft:friend", - Guster => "minecraft:guster", - Heart => "minecraft:heart", - Heartbreak => "minecraft:heartbreak", - Howl => "minecraft:howl", - Miner => "minecraft:miner", - Mourner => "minecraft:mourner", - Plenty => "minecraft:plenty", - Prize => "minecraft:prize", - Scrape => "minecraft:scrape", - Sheaf => "minecraft:sheaf", - Shelter => "minecraft:shelter", - Skull => "minecraft:skull", - Snort => "minecraft:snort", - Blank => "minecraft:blank", -} -} - -registry! { -enum ConsumeEffectKind { - ApplyEffects => "minecraft:apply_effects", - RemoveEffects => "minecraft:remove_effects", - ClearAllEffects => "minecraft:clear_all_effects", - TeleportRandomly => "minecraft:teleport_randomly", - PlaySound => "minecraft:play_sound", -} -} - -registry! { -enum RecipeBookCategory { - CraftingBuildingBlocks => "minecraft:crafting_building_blocks", - CraftingRedstone => "minecraft:crafting_redstone", - CraftingEquipment => "minecraft:crafting_equipment", - CraftingMisc => "minecraft:crafting_misc", - FurnaceFood => "minecraft:furnace_food", - FurnaceBlocks => "minecraft:furnace_blocks", - FurnaceMisc => "minecraft:furnace_misc", - BlastFurnaceBlocks => "minecraft:blast_furnace_blocks", - BlastFurnaceMisc => "minecraft:blast_furnace_misc", - SmokerFood => "minecraft:smoker_food", - Stonecutter => "minecraft:stonecutter", - Smithing => "minecraft:smithing", - Campfire => "minecraft:campfire", -} -} - -registry! { -enum RecipeDisplay { - CraftingShapeless => "minecraft:crafting_shapeless", - CraftingShaped => "minecraft:crafting_shaped", - Furnace => "minecraft:furnace", - Stonecutter => "minecraft:stonecutter", - Smithing => "minecraft:smithing", -} -} - -registry! { -enum SlotDisplay { - Empty => "minecraft:empty", - AnyFuel => "minecraft:any_fuel", - Item => "minecraft:item", - ItemStack => "minecraft:item_stack", - Tag => "minecraft:tag", - SmithingTrim => "minecraft:smithing_trim", - WithRemainder => "minecraft:with_remainder", - Composite => "minecraft:composite", -} -} - -registry! { -enum TicketKind { - PlayerSpawn => "minecraft:player_spawn", - SpawnSearch => "minecraft:spawn_search", - Dragon => "minecraft:dragon", - PlayerLoading => "minecraft:player_loading", - PlayerSimulation => "minecraft:player_simulation", - Forced => "minecraft:forced", - Portal => "minecraft:portal", - EnderPearl => "minecraft:ender_pearl", - Unknown => "minecraft:unknown", -} -} - -registry! { -enum TestEnvironmentDefinitionKind { - AllOf => "minecraft:all_of", - GameRules => "minecraft:game_rules", - TimeOfDay => "minecraft:time_of_day", - Weather => "minecraft:weather", - Function => "minecraft:function", -} -} - -registry! { -enum TestFunction { - AlwaysPass => "minecraft:always_pass", -} -} - -registry! { -enum TestInstanceKind { - BlockBased => "minecraft:block_based", - Function => "minecraft:function", -} -} - -registry! { -enum DataComponentPredicateKind { - Damage => "minecraft:damage", - Enchantments => "minecraft:enchantments", - StoredEnchantments => "minecraft:stored_enchantments", - PotionContents => "minecraft:potion_contents", - CustomData => "minecraft:custom_data", - Container => "minecraft:container", - BundleContents => "minecraft:bundle_contents", - FireworkExplosion => "minecraft:firework_explosion", - Fireworks => "minecraft:fireworks", - WritableBookContent => "minecraft:writable_book_content", - WrittenBookContent => "minecraft:written_book_content", - AttributeModifiers => "minecraft:attribute_modifiers", - Trim => "minecraft:trim", - JukeboxPlayable => "minecraft:jukebox_playable", -} -} - -registry! { -enum SpawnConditionKind { - Structure => "minecraft:structure", - MoonBrightness => "minecraft:moon_brightness", - Biome => "minecraft:biome", -} -} - -registry! { -enum DialogBodyKind { - Item => "minecraft:item", - PlainMessage => "minecraft:plain_message", -} -} - -registry! { -enum DialogKind { - Notice => "minecraft:notice", - ServerLinks => "minecraft:server_links", - DialogList => "minecraft:dialog_list", - MultiAction => "minecraft:multi_action", - Confirmation => "minecraft:confirmation", -} -} - -registry! { -enum InputControlKind { - Boolean => "minecraft:boolean", - NumberRange => "minecraft:number_range", - SingleOption => "minecraft:single_option", - Text => "minecraft:text", -} -} - -registry! { -enum DialogActionKind { - OpenUrl => "minecraft:open_url", - RunCommand => "minecraft:run_command", - SuggestCommand => "minecraft:suggest_command", - ShowDialog => "minecraft:show_dialog", - ChangePage => "minecraft:change_page", - CopyToClipboard => "minecraft:copy_to_clipboard", - Custom => "minecraft:custom", - DynamicRunCommand => "minecraft:dynamic/run_command", - DynamicCustom => "minecraft:dynamic/custom", -} -} - -registry! { -enum DebugSubscription { - DedicatedServerTickTime => "minecraft:dedicated_server_tick_time", - Bees => "minecraft:bees", - Brains => "minecraft:brains", - Breezes => "minecraft:breezes", - GoalSelectors => "minecraft:goal_selectors", - EntityPaths => "minecraft:entity_paths", - EntityBlockIntersections => "minecraft:entity_block_intersections", - BeeHives => "minecraft:bee_hives", - Pois => "minecraft:pois", - RedstoneWireOrientations => "minecraft:redstone_wire_orientations", - VillageSections => "minecraft:village_sections", - Raids => "minecraft:raids", - Structures => "minecraft:structures", - GameEventListeners => "minecraft:game_event_listeners", - NeighborUpdates => "minecraft:neighbor_updates", - GameEvents => "minecraft:game_events", -} -} - -registry! { -enum IncomingRpcMethods { - Allowlist => "minecraft:allowlist", - AllowlistSet => "minecraft:allowlist/set", - AllowlistAdd => "minecraft:allowlist/add", - AllowlistRemove => "minecraft:allowlist/remove", - AllowlistClear => "minecraft:allowlist/clear", - Bans => "minecraft:bans", - BansSet => "minecraft:bans/set", - BansAdd => "minecraft:bans/add", - BansRemove => "minecraft:bans/remove", - BansClear => "minecraft:bans/clear", - IpBans => "minecraft:ip_bans", - IpBansSet => "minecraft:ip_bans/set", - IpBansAdd => "minecraft:ip_bans/add", - IpBansRemove => "minecraft:ip_bans/remove", - IpBansClear => "minecraft:ip_bans/clear", - Players => "minecraft:players", - PlayersKick => "minecraft:players/kick", - Operators => "minecraft:operators", - OperatorsSet => "minecraft:operators/set", - OperatorsAdd => "minecraft:operators/add", - OperatorsRemove => "minecraft:operators/remove", - OperatorsClear => "minecraft:operators/clear", - ServerStatus => "minecraft:server/status", - ServerSave => "minecraft:server/save", - ServerStop => "minecraft:server/stop", - ServerSystemMessage => "minecraft:server/system_message", - ServersettingsAutosave => "minecraft:serversettings/autosave", - ServersettingsAutosaveSet => "minecraft:serversettings/autosave/set", - ServersettingsDifficulty => "minecraft:serversettings/difficulty", - ServersettingsDifficultySet => "minecraft:serversettings/difficulty/set", - ServersettingsEnforceAllowlist => "minecraft:serversettings/enforce_allowlist", - ServersettingsEnforceAllowlistSet => "minecraft:serversettings/enforce_allowlist/set", - ServersettingsUseAllowlist => "minecraft:serversettings/use_allowlist", - ServersettingsUseAllowlistSet => "minecraft:serversettings/use_allowlist/set", - ServersettingsMaxPlayers => "minecraft:serversettings/max_players", - ServersettingsMaxPlayersSet => "minecraft:serversettings/max_players/set", - ServersettingsPauseWhenEmptySeconds => "minecraft:serversettings/pause_when_empty_seconds", - ServersettingsPauseWhenEmptySecondsSet => "minecraft:serversettings/pause_when_empty_seconds/set", - ServersettingsPlayerIdleTimeout => "minecraft:serversettings/player_idle_timeout", - ServersettingsPlayerIdleTimeoutSet => "minecraft:serversettings/player_idle_timeout/set", - ServersettingsAllowFlight => "minecraft:serversettings/allow_flight", - ServersettingsAllowFlightSet => "minecraft:serversettings/allow_flight/set", - ServersettingsMotd => "minecraft:serversettings/motd", - ServersettingsMotdSet => "minecraft:serversettings/motd/set", - ServersettingsSpawnProtectionRadius => "minecraft:serversettings/spawn_protection_radius", - ServersettingsSpawnProtectionRadiusSet => "minecraft:serversettings/spawn_protection_radius/set", - ServersettingsForceGameMode => "minecraft:serversettings/force_game_mode", - ServersettingsForceGameModeSet => "minecraft:serversettings/force_game_mode/set", - ServersettingsGameMode => "minecraft:serversettings/game_mode", - ServersettingsGameModeSet => "minecraft:serversettings/game_mode/set", - ServersettingsViewDistance => "minecraft:serversettings/view_distance", - ServersettingsViewDistanceSet => "minecraft:serversettings/view_distance/set", - ServersettingsSimulationDistance => "minecraft:serversettings/simulation_distance", - ServersettingsSimulationDistanceSet => "minecraft:serversettings/simulation_distance/set", - ServersettingsAcceptTransfers => "minecraft:serversettings/accept_transfers", - ServersettingsAcceptTransfersSet => "minecraft:serversettings/accept_transfers/set", - ServersettingsStatusHeartbeatInterval => "minecraft:serversettings/status_heartbeat_interval", - ServersettingsStatusHeartbeatIntervalSet => "minecraft:serversettings/status_heartbeat_interval/set", - ServersettingsOperatorUserPermissionLevel => "minecraft:serversettings/operator_user_permission_level", - ServersettingsOperatorUserPermissionLevelSet => "minecraft:serversettings/operator_user_permission_level/set", - ServersettingsHideOnlinePlayers => "minecraft:serversettings/hide_online_players", - ServersettingsHideOnlinePlayersSet => "minecraft:serversettings/hide_online_players/set", - ServersettingsStatusReplies => "minecraft:serversettings/status_replies", - ServersettingsStatusRepliesSet => "minecraft:serversettings/status_replies/set", - ServersettingsEntityBroadcastRange => "minecraft:serversettings/entity_broadcast_range", - ServersettingsEntityBroadcastRangeSet => "minecraft:serversettings/entity_broadcast_range/set", - Gamerules => "minecraft:gamerules", - GamerulesUpdate => "minecraft:gamerules/update", - RpcDiscover => "minecraft:rpc.discover", -} -} - -registry! { -enum OutgoingRpcMethods { - NotificationServerStarted => "minecraft:notification/server/started", - 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", - NotificationOperatorsRemoved => "minecraft:notification/operators/removed", - NotificationAllowlistAdded => "minecraft:notification/allowlist/added", - NotificationAllowlistRemoved => "minecraft:notification/allowlist/removed", - NotificationIpBansAdded => "minecraft:notification/ip_bans/added", - NotificationIpBansRemoved => "minecraft:notification/ip_bans/removed", - NotificationBansAdded => "minecraft:notification/bans/added", - NotificationBansRemoved => "minecraft:notification/bans/removed", - NotificationGamerulesUpdated => "minecraft:notification/gamerules/updated", - NotificationServerStatus => "minecraft:notification/server/status", -} -} - -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", - 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", - 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", - GameplayRespawnAnchorWorks => "minecraft:gameplay/respawn_anchor_works", - 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", -} -} +/// These can be resolved into their actual values with +/// `ResolvableDataRegistry` from azalea-core. +pub trait DataRegistry: + AzaleaRead + AzaleaWrite + PartialEq + PartialOrd + Ord + Copy + Hash +{ + const NAME: &'static str; + type Key: DataRegistryKey; -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", -} + fn protocol_id(&self) -> u32; + fn new_raw(id: u32) -> Self; } +pub trait DataRegistryKey { + type Borrow<'a>: DataRegistryKeyRef<'a>; -registry! { -enum PermissionCheckKind { - AlwaysPass => "minecraft:always_pass", - Require => "minecraft:require", -} + fn into_ident(self) -> Identifier; } +pub trait DataRegistryKeyRef<'a> { + type Owned: DataRegistryKey; -registry! { -enum PermissionKind { - Atom => "minecraft:atom", - CommandLevel => "minecraft:command_level", -} + fn to_owned(self) -> Self::Owned; + fn from_ident(ident: &'a Identifier) -> Self; + fn into_ident(self) -> Identifier; } +impl<T: DataRegistry> Registry for T { + fn from_u32(value: u32) -> Option<Self> { + Some(Self::new_raw(value)) + } -registry! { -enum SlotSourceKind { - Group => "minecraft:group", - Filtered => "minecraft:filtered", - LimitSlots => "minecraft:limit_slots", - SlotRange => "minecraft:slot_range", - Contents => "minecraft:contents", - Empty => "minecraft:empty", -} + fn to_u32(&self) -> u32 { + self.protocol_id() + } } diff --git a/azalea-registry/src/tags/blocks.rs b/azalea-registry/src/tags/blocks.rs index 0bd17b93..2f0e9d1a 100644 --- a/azalea-registry/src/tags/blocks.rs +++ b/azalea-registry/src/tags/blocks.rs @@ -1,4265 +1,4327 @@ // This file was @generated by codegen/lib/code/tags.py, don't edit it manually! -use std::{collections::HashSet, sync::LazyLock}; +use std::sync::LazyLock; -use crate::Block; +use crate::{builtin::BlockKind, tags::RegistryTag}; -pub static ACACIA_LOGS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::AcaciaLog, - Block::AcaciaWood, - Block::StrippedAcaciaLog, - Block::StrippedAcaciaWood, - ]) -}); -pub static AIR: LazyLock<HashSet<Block>> = - LazyLock::new(|| HashSet::from_iter([Block::Air, Block::VoidAir, Block::CaveAir])); -pub static ALL_HANGING_SIGNS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::OakHangingSign, - Block::SpruceHangingSign, - Block::BirchHangingSign, - Block::AcaciaHangingSign, - Block::CherryHangingSign, - Block::JungleHangingSign, - Block::DarkOakHangingSign, - Block::PaleOakHangingSign, - Block::CrimsonHangingSign, - Block::WarpedHangingSign, - Block::MangroveHangingSign, - Block::BambooHangingSign, - Block::OakWallHangingSign, - Block::SpruceWallHangingSign, - Block::BirchWallHangingSign, - Block::AcaciaWallHangingSign, - Block::CherryWallHangingSign, - Block::JungleWallHangingSign, - Block::DarkOakWallHangingSign, - Block::PaleOakWallHangingSign, - Block::CrimsonWallHangingSign, - Block::WarpedWallHangingSign, - Block::MangroveWallHangingSign, - Block::BambooWallHangingSign, - ]) -}); -pub static ALL_SIGNS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::OakSign, - Block::SpruceSign, - Block::BirchSign, - Block::AcaciaSign, - Block::JungleSign, - Block::DarkOakSign, - Block::PaleOakSign, - Block::CrimsonSign, - Block::WarpedSign, - Block::MangroveSign, - Block::BambooSign, - Block::CherrySign, - Block::OakWallSign, - Block::SpruceWallSign, - Block::BirchWallSign, - Block::AcaciaWallSign, - Block::JungleWallSign, - Block::DarkOakWallSign, - Block::PaleOakWallSign, - Block::CrimsonWallSign, - Block::WarpedWallSign, - Block::MangroveWallSign, - Block::BambooWallSign, - Block::CherryWallSign, - Block::OakHangingSign, - Block::SpruceHangingSign, - Block::BirchHangingSign, - Block::AcaciaHangingSign, - Block::CherryHangingSign, - Block::JungleHangingSign, - Block::DarkOakHangingSign, - Block::PaleOakHangingSign, - Block::CrimsonHangingSign, - Block::WarpedHangingSign, - Block::MangroveHangingSign, - Block::BambooHangingSign, - Block::OakWallHangingSign, - Block::SpruceWallHangingSign, - Block::BirchWallHangingSign, - Block::AcaciaWallHangingSign, - Block::CherryWallHangingSign, - Block::JungleWallHangingSign, - Block::DarkOakWallHangingSign, - Block::PaleOakWallHangingSign, - Block::CrimsonWallHangingSign, - Block::WarpedWallHangingSign, - Block::MangroveWallHangingSign, - Block::BambooWallHangingSign, - ]) -}); -pub static ANCIENT_CITY_REPLACEABLE: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::Deepslate, - Block::DeepslateBricks, - Block::DeepslateTiles, - Block::DeepslateBrickSlab, - Block::DeepslateTileSlab, - Block::DeepslateBrickStairs, - Block::DeepslateTileWall, - Block::DeepslateBrickWall, - Block::CobbledDeepslate, - Block::CrackedDeepslateBricks, - Block::CrackedDeepslateTiles, - Block::GrayWool, - ]) -}); -pub static ANIMALS_SPAWNABLE_ON: LazyLock<HashSet<Block>> = - LazyLock::new(|| HashSet::from_iter([Block::GrassBlock])); -pub static ANVIL: LazyLock<HashSet<Block>> = - LazyLock::new(|| HashSet::from_iter([Block::Anvil, Block::ChippedAnvil, Block::DamagedAnvil])); -pub static ARMADILLO_SPAWNABLE_ON: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::RedSand, - Block::CoarseDirt, - Block::GrassBlock, - Block::Terracotta, - Block::WhiteTerracotta, - Block::YellowTerracotta, - Block::OrangeTerracotta, - Block::RedTerracotta, - Block::BrownTerracotta, - Block::LightGrayTerracotta, - ]) -}); -pub static AXOLOTLS_SPAWNABLE_ON: LazyLock<HashSet<Block>> = - LazyLock::new(|| HashSet::from_iter([Block::Clay])); -pub static AZALEA_GROWS_ON: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::SnowBlock, - Block::PowderSnow, - Block::Dirt, - Block::GrassBlock, - Block::Podzol, - Block::CoarseDirt, - Block::Mycelium, - Block::RootedDirt, - Block::MossBlock, - Block::PaleMossBlock, - Block::Mud, - Block::MuddyMangroveRoots, - Block::Sand, - Block::RedSand, - Block::SuspiciousSand, - Block::Terracotta, - Block::WhiteTerracotta, - Block::OrangeTerracotta, - Block::MagentaTerracotta, - Block::LightBlueTerracotta, - Block::YellowTerracotta, - Block::LimeTerracotta, - Block::PinkTerracotta, - Block::GrayTerracotta, - Block::LightGrayTerracotta, - Block::CyanTerracotta, - Block::PurpleTerracotta, - Block::BlueTerracotta, - Block::BrownTerracotta, - Block::GreenTerracotta, - Block::RedTerracotta, - Block::BlackTerracotta, - ]) -}); -pub static AZALEA_ROOT_REPLACEABLE: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::RedSand, - Block::Clay, - Block::Gravel, - Block::Sand, - Block::SnowBlock, - Block::PowderSnow, - Block::Stone, - Block::Granite, - Block::Diorite, - Block::Andesite, - Block::Tuff, - Block::Deepslate, - Block::Dirt, - Block::GrassBlock, - Block::Podzol, - Block::CoarseDirt, - Block::Mycelium, - Block::RootedDirt, - Block::MossBlock, - Block::PaleMossBlock, - Block::Mud, - Block::MuddyMangroveRoots, - Block::Terracotta, - Block::WhiteTerracotta, - Block::OrangeTerracotta, - Block::MagentaTerracotta, - Block::LightBlueTerracotta, - Block::YellowTerracotta, - Block::LimeTerracotta, - Block::PinkTerracotta, - Block::GrayTerracotta, - Block::LightGrayTerracotta, - Block::CyanTerracotta, - Block::PurpleTerracotta, - Block::BlueTerracotta, - Block::BrownTerracotta, - Block::GreenTerracotta, - Block::RedTerracotta, - Block::BlackTerracotta, - ]) -}); -pub static BADLANDS_TERRACOTTA: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::Terracotta, - Block::WhiteTerracotta, - Block::YellowTerracotta, - Block::OrangeTerracotta, - Block::RedTerracotta, - Block::BrownTerracotta, - Block::LightGrayTerracotta, - ]) -}); -pub static BAMBOO_BLOCKS: LazyLock<HashSet<Block>> = - LazyLock::new(|| HashSet::from_iter([Block::BambooBlock, Block::StrippedBambooBlock])); -pub static BAMBOO_PLANTABLE_ON: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::Bamboo, - Block::BambooSapling, - Block::Gravel, - Block::SuspiciousGravel, - Block::Sand, - Block::RedSand, - Block::SuspiciousSand, - Block::Dirt, - Block::GrassBlock, - Block::Podzol, - Block::CoarseDirt, - Block::Mycelium, - Block::RootedDirt, - Block::MossBlock, - Block::PaleMossBlock, - Block::Mud, - Block::MuddyMangroveRoots, - ]) -}); -pub static BANNERS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::WhiteBanner, - Block::OrangeBanner, - Block::MagentaBanner, - Block::LightBlueBanner, - Block::YellowBanner, - Block::LimeBanner, - Block::PinkBanner, - Block::GrayBanner, - Block::LightGrayBanner, - Block::CyanBanner, - Block::PurpleBanner, - Block::BlueBanner, - Block::BrownBanner, - Block::GreenBanner, - Block::RedBanner, - Block::BlackBanner, - Block::WhiteWallBanner, - Block::OrangeWallBanner, - Block::MagentaWallBanner, - Block::LightBlueWallBanner, - Block::YellowWallBanner, - Block::LimeWallBanner, - Block::PinkWallBanner, - Block::GrayWallBanner, - Block::LightGrayWallBanner, - Block::CyanWallBanner, - Block::PurpleWallBanner, - Block::BlueWallBanner, - Block::BrownWallBanner, - Block::GreenWallBanner, - Block::RedWallBanner, - Block::BlackWallBanner, - ]) -}); -pub static BARS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::IronBars, - Block::CopperBars, - Block::WaxedCopperBars, - Block::ExposedCopperBars, - Block::WaxedExposedCopperBars, - Block::WeatheredCopperBars, - Block::WaxedWeatheredCopperBars, - Block::OxidizedCopperBars, - Block::WaxedOxidizedCopperBars, - ]) -}); -pub static BASE_STONE_NETHER: LazyLock<HashSet<Block>> = - LazyLock::new(|| HashSet::from_iter([Block::Netherrack, Block::Basalt, Block::Blackstone])); -pub static BASE_STONE_OVERWORLD: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::Stone, - Block::Granite, - Block::Diorite, - Block::Andesite, - Block::Tuff, - Block::Deepslate, - ]) -}); -pub static BATS_SPAWNABLE_ON: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::Stone, - Block::Granite, - Block::Diorite, - Block::Andesite, - Block::Tuff, - Block::Deepslate, - ]) -}); -pub static BEACON_BASE_BLOCKS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::NetheriteBlock, - Block::EmeraldBlock, - Block::DiamondBlock, - Block::GoldBlock, - Block::IronBlock, - ]) -}); -pub static BEDS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::RedBed, - Block::BlackBed, - Block::BlueBed, - Block::BrownBed, - Block::CyanBed, - Block::GrayBed, - Block::GreenBed, - Block::LightBlueBed, - Block::LightGrayBed, - Block::LimeBed, - Block::MagentaBed, - Block::OrangeBed, - Block::PinkBed, - Block::PurpleBed, - Block::WhiteBed, - Block::YellowBed, - ]) -}); -pub static BEE_ATTRACTIVE: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::Dandelion, - Block::OpenEyeblossom, - Block::Poppy, - Block::BlueOrchid, - Block::Allium, - Block::AzureBluet, - Block::RedTulip, - Block::OrangeTulip, - Block::WhiteTulip, - Block::PinkTulip, - Block::OxeyeDaisy, - Block::Cornflower, - Block::LilyOfTheValley, - Block::WitherRose, - Block::Torchflower, - Block::Sunflower, - Block::Lilac, - Block::Peony, - Block::RoseBush, - Block::PitcherPlant, - Block::FloweringAzaleaLeaves, - Block::FloweringAzalea, - Block::MangrovePropagule, - Block::CherryLeaves, - Block::PinkPetals, - Block::Wildflowers, - Block::ChorusFlower, - Block::SporeBlossom, - Block::CactusFlower, - ]) -}); -pub static BEE_GROWABLES: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::SweetBerryBush, - Block::CaveVines, - Block::CaveVinesPlant, - Block::Beetroots, - Block::Carrots, - Block::Potatoes, - Block::Wheat, - Block::MelonStem, - Block::PumpkinStem, - Block::TorchflowerCrop, - Block::PitcherCrop, - ]) -}); -pub static BEEHIVES: LazyLock<HashSet<Block>> = - LazyLock::new(|| HashSet::from_iter([Block::BeeNest, Block::Beehive])); -pub static BIG_DRIPLEAF_PLACEABLE: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::Dirt, - Block::GrassBlock, - Block::Podzol, - Block::CoarseDirt, - Block::Mycelium, - Block::RootedDirt, - Block::MossBlock, - Block::Mud, - Block::MuddyMangroveRoots, - Block::Farmland, - Block::Clay, - Block::MossBlock, - ]) -}); -pub static BIRCH_LOGS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::BirchLog, - Block::BirchWood, - Block::StrippedBirchLog, - Block::StrippedBirchWood, - ]) -}); -pub static BLOCKS_WIND_CHARGE_EXPLOSIONS: LazyLock<HashSet<Block>> = - LazyLock::new(|| HashSet::from_iter([Block::Barrier, Block::Bedrock])); -pub static BUTTONS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::OakButton, - Block::SpruceButton, - Block::BirchButton, - Block::JungleButton, - Block::AcaciaButton, - Block::DarkOakButton, - Block::PaleOakButton, - Block::CrimsonButton, - Block::WarpedButton, - Block::MangroveButton, - Block::BambooButton, - Block::CherryButton, - Block::StoneButton, - Block::PolishedBlackstoneButton, - ]) -}); -pub static CAMEL_SAND_STEP_SOUND_BLOCKS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::Sand, - Block::RedSand, - Block::SuspiciousSand, - Block::WhiteConcretePowder, - Block::OrangeConcretePowder, - Block::MagentaConcretePowder, - Block::LightBlueConcretePowder, - Block::YellowConcretePowder, - Block::LimeConcretePowder, - Block::PinkConcretePowder, - Block::GrayConcretePowder, - Block::LightGrayConcretePowder, - Block::CyanConcretePowder, - Block::PurpleConcretePowder, - Block::BlueConcretePowder, - Block::BrownConcretePowder, - Block::GreenConcretePowder, - Block::RedConcretePowder, - Block::BlackConcretePowder, - ]) -}); -pub static CAMELS_SPAWNABLE_ON: LazyLock<HashSet<Block>> = - LazyLock::new(|| HashSet::from_iter([Block::Sand, Block::RedSand, Block::SuspiciousSand])); -pub static CAMPFIRES: LazyLock<HashSet<Block>> = - LazyLock::new(|| HashSet::from_iter([Block::Campfire, Block::SoulCampfire])); -pub static CAN_GLIDE_THROUGH: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::Vine, - Block::TwistingVines, - Block::TwistingVinesPlant, - Block::WeepingVines, - Block::WeepingVinesPlant, - Block::CaveVinesPlant, - Block::CaveVines, - ]) -}); -pub static CANDLE_CAKES: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::CandleCake, - Block::WhiteCandleCake, - Block::OrangeCandleCake, - Block::MagentaCandleCake, - Block::LightBlueCandleCake, - Block::YellowCandleCake, - Block::LimeCandleCake, - Block::PinkCandleCake, - Block::GrayCandleCake, - Block::LightGrayCandleCake, - Block::CyanCandleCake, - Block::PurpleCandleCake, - Block::BlueCandleCake, - Block::BrownCandleCake, - Block::GreenCandleCake, - Block::RedCandleCake, - Block::BlackCandleCake, - ]) -}); -pub static CANDLES: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::Candle, - Block::WhiteCandle, - Block::OrangeCandle, - Block::MagentaCandle, - Block::LightBlueCandle, - Block::YellowCandle, - Block::LimeCandle, - Block::PinkCandle, - Block::GrayCandle, - Block::LightGrayCandle, - Block::CyanCandle, - Block::PurpleCandle, - Block::BlueCandle, - Block::BrownCandle, - Block::GreenCandle, - Block::RedCandle, - Block::BlackCandle, - ]) -}); -pub static CAULDRONS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::Cauldron, - Block::WaterCauldron, - Block::LavaCauldron, - Block::PowderSnowCauldron, - ]) -}); -pub static CAVE_VINES: LazyLock<HashSet<Block>> = - LazyLock::new(|| HashSet::from_iter([Block::CaveVinesPlant, Block::CaveVines])); -pub static CEILING_HANGING_SIGNS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::OakHangingSign, - Block::SpruceHangingSign, - Block::BirchHangingSign, - Block::AcaciaHangingSign, - Block::CherryHangingSign, - Block::JungleHangingSign, - Block::DarkOakHangingSign, - Block::PaleOakHangingSign, - Block::CrimsonHangingSign, - Block::WarpedHangingSign, - Block::MangroveHangingSign, - Block::BambooHangingSign, - ]) -}); -pub static CHAINS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::IronChain, - Block::CopperChain, - Block::WaxedCopperChain, - Block::ExposedCopperChain, - Block::WaxedExposedCopperChain, - Block::WeatheredCopperChain, - Block::WaxedWeatheredCopperChain, - Block::OxidizedCopperChain, - Block::WaxedOxidizedCopperChain, - ]) -}); -pub static CHERRY_LOGS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::CherryLog, - Block::CherryWood, - Block::StrippedCherryLog, - Block::StrippedCherryWood, - ]) -}); -pub static CLIMBABLE: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::Ladder, - Block::Vine, - Block::Scaffolding, - Block::WeepingVines, - Block::WeepingVinesPlant, - Block::TwistingVines, - Block::TwistingVinesPlant, - Block::CaveVines, - Block::CaveVinesPlant, - ]) -}); -pub static COAL_ORES: LazyLock<HashSet<Block>> = - LazyLock::new(|| HashSet::from_iter([Block::CoalOre, Block::DeepslateCoalOre])); -pub static COMBINATION_STEP_SOUND_BLOCKS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::MossCarpet, - Block::PaleMossCarpet, - Block::Snow, - Block::NetherSprouts, - Block::WarpedRoots, - Block::CrimsonRoots, - Block::ResinClump, - Block::WhiteCarpet, - Block::OrangeCarpet, - Block::MagentaCarpet, - Block::LightBlueCarpet, - Block::YellowCarpet, - Block::LimeCarpet, - Block::PinkCarpet, - Block::GrayCarpet, - Block::LightGrayCarpet, - Block::CyanCarpet, - Block::PurpleCarpet, - Block::BlueCarpet, - Block::BrownCarpet, - Block::GreenCarpet, - Block::RedCarpet, - Block::BlackCarpet, - ]) -}); -pub static COMPLETES_FIND_TREE_TUTORIAL: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::JungleLeaves, - Block::OakLeaves, - Block::SpruceLeaves, - Block::PaleOakLeaves, - Block::DarkOakLeaves, - Block::AcaciaLeaves, - Block::BirchLeaves, - Block::AzaleaLeaves, - Block::FloweringAzaleaLeaves, - Block::MangroveLeaves, - Block::CherryLeaves, - Block::NetherWartBlock, - Block::WarpedWartBlock, - Block::CrimsonStem, - Block::StrippedCrimsonStem, - Block::CrimsonHyphae, - Block::StrippedCrimsonHyphae, - Block::WarpedStem, - Block::StrippedWarpedStem, - Block::WarpedHyphae, - Block::StrippedWarpedHyphae, - Block::DarkOakLog, - Block::DarkOakWood, - Block::StrippedDarkOakLog, - Block::StrippedDarkOakWood, - Block::PaleOakLog, - Block::PaleOakWood, - Block::StrippedPaleOakLog, - Block::StrippedPaleOakWood, - Block::OakLog, - Block::OakWood, - Block::StrippedOakLog, - Block::StrippedOakWood, - Block::AcaciaLog, - Block::AcaciaWood, - Block::StrippedAcaciaLog, - Block::StrippedAcaciaWood, - Block::BirchLog, - Block::BirchWood, - Block::StrippedBirchLog, - Block::StrippedBirchWood, - Block::JungleLog, - Block::JungleWood, - Block::StrippedJungleLog, - Block::StrippedJungleWood, - Block::SpruceLog, - Block::SpruceWood, - Block::StrippedSpruceLog, - Block::StrippedSpruceWood, - Block::MangroveLog, - Block::MangroveWood, - Block::StrippedMangroveLog, - Block::StrippedMangroveWood, - Block::CherryLog, - Block::CherryWood, - Block::StrippedCherryLog, - Block::StrippedCherryWood, - ]) -}); -pub static CONCRETE_POWDER: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::WhiteConcretePowder, - Block::OrangeConcretePowder, - Block::MagentaConcretePowder, - Block::LightBlueConcretePowder, - Block::YellowConcretePowder, - Block::LimeConcretePowder, - Block::PinkConcretePowder, - Block::GrayConcretePowder, - Block::LightGrayConcretePowder, - Block::CyanConcretePowder, - Block::PurpleConcretePowder, - Block::BlueConcretePowder, - Block::BrownConcretePowder, - Block::GreenConcretePowder, - Block::RedConcretePowder, - Block::BlackConcretePowder, - ]) -}); -pub static CONVERTABLE_TO_MUD: LazyLock<HashSet<Block>> = - LazyLock::new(|| HashSet::from_iter([Block::Dirt, Block::CoarseDirt, Block::RootedDirt])); -pub static COPPER: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::CopperBlock, - Block::ExposedCopper, - Block::WeatheredCopper, - Block::OxidizedCopper, - Block::WaxedCopperBlock, - Block::WaxedExposedCopper, - Block::WaxedWeatheredCopper, - Block::WaxedOxidizedCopper, - ]) -}); -pub static COPPER_CHESTS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::CopperChest, - Block::ExposedCopperChest, - Block::WeatheredCopperChest, - Block::OxidizedCopperChest, - Block::WaxedCopperChest, - Block::WaxedExposedCopperChest, - Block::WaxedWeatheredCopperChest, - Block::WaxedOxidizedCopperChest, - ]) -}); -pub static COPPER_GOLEM_STATUES: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::CopperGolemStatue, - Block::ExposedCopperGolemStatue, - Block::WeatheredCopperGolemStatue, - Block::OxidizedCopperGolemStatue, - Block::WaxedCopperGolemStatue, - Block::WaxedExposedCopperGolemStatue, - Block::WaxedWeatheredCopperGolemStatue, - Block::WaxedOxidizedCopperGolemStatue, - ]) -}); -pub static COPPER_ORES: LazyLock<HashSet<Block>> = - LazyLock::new(|| HashSet::from_iter([Block::CopperOre, Block::DeepslateCopperOre])); -pub static CORAL_BLOCKS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::TubeCoralBlock, - Block::BrainCoralBlock, - Block::BubbleCoralBlock, - Block::FireCoralBlock, - Block::HornCoralBlock, - ]) -}); -pub static CORAL_PLANTS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::TubeCoral, - Block::BrainCoral, - Block::BubbleCoral, - Block::FireCoral, - Block::HornCoral, - ]) -}); -pub static CORALS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::TubeCoralFan, - Block::BrainCoralFan, - Block::BubbleCoralFan, - Block::FireCoralFan, - Block::HornCoralFan, - Block::TubeCoral, - Block::BrainCoral, - Block::BubbleCoral, - Block::FireCoral, - Block::HornCoral, - ]) -}); -pub static CRIMSON_STEMS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::CrimsonStem, - Block::StrippedCrimsonStem, - Block::CrimsonHyphae, - Block::StrippedCrimsonHyphae, - ]) -}); -pub static CROPS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::Beetroots, - Block::Carrots, - Block::Potatoes, - Block::Wheat, - Block::MelonStem, - Block::PumpkinStem, - Block::TorchflowerCrop, - Block::PitcherCrop, - ]) -}); -pub static CRYSTAL_SOUND_BLOCKS: LazyLock<HashSet<Block>> = - LazyLock::new(|| HashSet::from_iter([Block::AmethystBlock, Block::BuddingAmethyst])); -pub static DAMPENS_VIBRATIONS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::WhiteWool, - Block::OrangeWool, - Block::MagentaWool, - Block::LightBlueWool, - Block::YellowWool, - Block::LimeWool, - Block::PinkWool, - Block::GrayWool, - Block::LightGrayWool, - Block::CyanWool, - Block::PurpleWool, - Block::BlueWool, - Block::BrownWool, - Block::GreenWool, - Block::RedWool, - Block::BlackWool, - Block::WhiteCarpet, - Block::OrangeCarpet, - Block::MagentaCarpet, - Block::LightBlueCarpet, - Block::YellowCarpet, - Block::LimeCarpet, - Block::PinkCarpet, - Block::GrayCarpet, - Block::LightGrayCarpet, - Block::CyanCarpet, - Block::PurpleCarpet, - Block::BlueCarpet, - Block::BrownCarpet, - Block::GreenCarpet, - Block::RedCarpet, - Block::BlackCarpet, - ]) -}); -pub static DARK_OAK_LOGS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::DarkOakLog, - Block::DarkOakWood, - Block::StrippedDarkOakLog, - Block::StrippedDarkOakWood, - ]) -}); -pub static DEEPSLATE_ORE_REPLACEABLES: LazyLock<HashSet<Block>> = - LazyLock::new(|| HashSet::from_iter([Block::Deepslate, Block::Tuff])); -pub static DIAMOND_ORES: LazyLock<HashSet<Block>> = - LazyLock::new(|| HashSet::from_iter([Block::DiamondOre, Block::DeepslateDiamondOre])); -pub static DIRT: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::Dirt, - Block::GrassBlock, - Block::Podzol, - Block::CoarseDirt, - Block::Mycelium, - Block::RootedDirt, - Block::MossBlock, - Block::PaleMossBlock, - Block::Mud, - Block::MuddyMangroveRoots, - ]) -}); -pub static DOES_NOT_BLOCK_HOPPERS: LazyLock<HashSet<Block>> = - LazyLock::new(|| HashSet::from_iter([Block::BeeNest, Block::Beehive])); -pub static DOORS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::CopperDoor, - Block::ExposedCopperDoor, - Block::WeatheredCopperDoor, - Block::OxidizedCopperDoor, - Block::WaxedCopperDoor, - Block::WaxedExposedCopperDoor, - Block::WaxedWeatheredCopperDoor, - Block::WaxedOxidizedCopperDoor, - Block::IronDoor, - Block::OakDoor, - Block::SpruceDoor, - Block::BirchDoor, - Block::JungleDoor, - Block::AcaciaDoor, - Block::DarkOakDoor, - Block::PaleOakDoor, - Block::CrimsonDoor, - Block::WarpedDoor, - Block::MangroveDoor, - Block::BambooDoor, - Block::CherryDoor, - ]) -}); -pub static DRAGON_IMMUNE: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::Barrier, - Block::Bedrock, - Block::EndPortal, - Block::EndPortalFrame, - Block::EndGateway, - Block::CommandBlock, - Block::RepeatingCommandBlock, - Block::ChainCommandBlock, - Block::StructureBlock, - Block::Jigsaw, - Block::MovingPiston, - Block::Obsidian, - Block::CryingObsidian, - Block::EndStone, - Block::IronBars, - Block::RespawnAnchor, - Block::ReinforcedDeepslate, - Block::TestBlock, - Block::TestInstanceBlock, - ]) -}); -pub static DRAGON_TRANSPARENT: LazyLock<HashSet<Block>> = - LazyLock::new(|| HashSet::from_iter([Block::Light, Block::Fire, Block::SoulFire])); -pub static DRIPSTONE_REPLACEABLE_BLOCKS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::Stone, - Block::Granite, - Block::Diorite, - Block::Andesite, - Block::Tuff, - Block::Deepslate, - ]) -}); -pub static DRY_VEGETATION_MAY_PLACE_ON: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::Farmland, - Block::Sand, - Block::RedSand, - Block::SuspiciousSand, - Block::Terracotta, - Block::WhiteTerracotta, - Block::OrangeTerracotta, - Block::MagentaTerracotta, - Block::LightBlueTerracotta, - Block::YellowTerracotta, - Block::LimeTerracotta, - Block::PinkTerracotta, - Block::GrayTerracotta, - Block::LightGrayTerracotta, - Block::CyanTerracotta, - Block::PurpleTerracotta, - Block::BlueTerracotta, - Block::BrownTerracotta, - Block::GreenTerracotta, - Block::RedTerracotta, - Block::BlackTerracotta, - Block::Dirt, - Block::GrassBlock, - Block::Podzol, - Block::CoarseDirt, - Block::Mycelium, - Block::RootedDirt, - Block::MossBlock, - Block::PaleMossBlock, - Block::Mud, - Block::MuddyMangroveRoots, - ]) -}); -pub static EDIBLE_FOR_SHEEP: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::ShortGrass, - Block::ShortDryGrass, - Block::TallDryGrass, - Block::Fern, - ]) -}); -pub static EMERALD_ORES: LazyLock<HashSet<Block>> = - LazyLock::new(|| HashSet::from_iter([Block::EmeraldOre, Block::DeepslateEmeraldOre])); -pub static ENCHANTMENT_POWER_PROVIDER: LazyLock<HashSet<Block>> = - LazyLock::new(|| HashSet::from_iter([Block::Bookshelf])); -pub static ENCHANTMENT_POWER_TRANSMITTER: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::Air, - Block::Water, - Block::Lava, - Block::ShortGrass, - Block::Fern, - Block::DeadBush, - Block::Bush, - Block::ShortDryGrass, - Block::TallDryGrass, - Block::Seagrass, - Block::TallSeagrass, - Block::Fire, - Block::SoulFire, - Block::Snow, - Block::Vine, - Block::GlowLichen, - Block::ResinClump, - Block::Light, - Block::TallGrass, - Block::LargeFern, - Block::StructureVoid, - Block::VoidAir, - Block::CaveAir, - Block::BubbleColumn, - Block::WarpedRoots, - Block::NetherSprouts, - Block::CrimsonRoots, - Block::LeafLitter, - Block::HangingRoots, - ]) -}); -pub static ENDERMAN_HOLDABLE: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::Sand, - Block::RedSand, - Block::Gravel, - Block::BrownMushroom, - Block::RedMushroom, - Block::Tnt, - Block::Cactus, - Block::Clay, - Block::Pumpkin, - Block::CarvedPumpkin, - Block::Melon, - Block::CrimsonFungus, - Block::CrimsonNylium, - Block::CrimsonRoots, - Block::WarpedFungus, - Block::WarpedNylium, - Block::WarpedRoots, - Block::CactusFlower, - Block::Dandelion, - Block::OpenEyeblossom, - Block::Poppy, - Block::BlueOrchid, - Block::Allium, - Block::AzureBluet, - Block::RedTulip, - Block::OrangeTulip, - Block::WhiteTulip, - Block::PinkTulip, - Block::OxeyeDaisy, - Block::Cornflower, - Block::LilyOfTheValley, - Block::WitherRose, - Block::Torchflower, - Block::ClosedEyeblossom, - Block::Dirt, - Block::GrassBlock, - Block::Podzol, - Block::CoarseDirt, - Block::Mycelium, - Block::RootedDirt, - Block::MossBlock, - Block::PaleMossBlock, - Block::Mud, - Block::MuddyMangroveRoots, - ]) -}); -pub static FALL_DAMAGE_RESETTING: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::SweetBerryBush, - Block::Cobweb, - Block::Ladder, - Block::Vine, - Block::Scaffolding, - Block::WeepingVines, - Block::WeepingVinesPlant, - Block::TwistingVines, - Block::TwistingVinesPlant, - Block::CaveVines, - Block::CaveVinesPlant, - ]) -}); -pub static FEATURES_CANNOT_REPLACE: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::Bedrock, - Block::Spawner, - Block::Chest, - Block::EndPortalFrame, - Block::ReinforcedDeepslate, - Block::TrialSpawner, - Block::Vault, - ]) -}); -pub static FENCE_GATES: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::AcaciaFenceGate, - Block::BirchFenceGate, - Block::DarkOakFenceGate, - Block::PaleOakFenceGate, - Block::JungleFenceGate, - Block::OakFenceGate, - Block::SpruceFenceGate, - Block::CrimsonFenceGate, - Block::WarpedFenceGate, - Block::MangroveFenceGate, - Block::BambooFenceGate, - Block::CherryFenceGate, - ]) -}); -pub static FENCES: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::NetherBrickFence, - Block::OakFence, - Block::AcaciaFence, - Block::DarkOakFence, - Block::PaleOakFence, - Block::SpruceFence, - Block::BirchFence, - Block::JungleFence, - Block::CrimsonFence, - Block::WarpedFence, - Block::MangroveFence, - Block::BambooFence, - Block::CherryFence, - ]) -}); -pub static FIRE: LazyLock<HashSet<Block>> = - LazyLock::new(|| HashSet::from_iter([Block::Fire, Block::SoulFire])); -pub static FLOWER_POTS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::FlowerPot, - Block::PottedOpenEyeblossom, - Block::PottedClosedEyeblossom, - Block::PottedPoppy, - Block::PottedBlueOrchid, - Block::PottedAllium, - Block::PottedAzureBluet, - Block::PottedRedTulip, - Block::PottedOrangeTulip, - Block::PottedWhiteTulip, - Block::PottedPinkTulip, - Block::PottedOxeyeDaisy, - Block::PottedDandelion, - Block::PottedOakSapling, - Block::PottedSpruceSapling, - Block::PottedBirchSapling, - Block::PottedJungleSapling, - Block::PottedAcaciaSapling, - Block::PottedDarkOakSapling, - Block::PottedPaleOakSapling, - Block::PottedRedMushroom, - Block::PottedBrownMushroom, - Block::PottedDeadBush, - Block::PottedFern, - Block::PottedCactus, - Block::PottedCornflower, - Block::PottedLilyOfTheValley, - Block::PottedWitherRose, - Block::PottedBamboo, - Block::PottedCrimsonFungus, - Block::PottedWarpedFungus, - Block::PottedCrimsonRoots, - Block::PottedWarpedRoots, - Block::PottedAzaleaBush, - Block::PottedFloweringAzaleaBush, - Block::PottedMangrovePropagule, - Block::PottedCherrySapling, - Block::PottedTorchflower, - ]) -}); -pub static FLOWERS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::Sunflower, - Block::Lilac, - Block::Peony, - Block::RoseBush, - Block::PitcherPlant, - Block::FloweringAzaleaLeaves, - Block::FloweringAzalea, - Block::MangrovePropagule, - Block::CherryLeaves, - Block::PinkPetals, - Block::Wildflowers, - Block::ChorusFlower, - Block::SporeBlossom, - Block::CactusFlower, - Block::Dandelion, - Block::OpenEyeblossom, - Block::Poppy, - Block::BlueOrchid, - Block::Allium, - Block::AzureBluet, - Block::RedTulip, - Block::OrangeTulip, - Block::WhiteTulip, - Block::PinkTulip, - Block::OxeyeDaisy, - Block::Cornflower, - Block::LilyOfTheValley, - Block::WitherRose, - Block::Torchflower, - Block::ClosedEyeblossom, - ]) -}); -pub static FOXES_SPAWNABLE_ON: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::GrassBlock, - Block::Snow, - Block::SnowBlock, - Block::Podzol, - Block::CoarseDirt, - ]) -}); -pub static FROG_PREFER_JUMP_TO: LazyLock<HashSet<Block>> = - LazyLock::new(|| HashSet::from_iter([Block::LilyPad, Block::BigDripleaf])); -pub static FROGS_SPAWNABLE_ON: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::GrassBlock, - Block::Mud, - Block::MangroveRoots, - Block::MuddyMangroveRoots, - ]) -}); -pub static GEODE_INVALID_BLOCKS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::Bedrock, - Block::Water, - Block::Lava, - Block::Ice, - Block::PackedIce, - Block::BlueIce, - ]) -}); -pub static GOATS_SPAWNABLE_ON: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::Stone, - Block::Snow, - Block::SnowBlock, - Block::PackedIce, - Block::Gravel, - Block::GrassBlock, - ]) -}); -pub static GOLD_ORES: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::GoldOre, - Block::NetherGoldOre, - Block::DeepslateGoldOre, - ]) -}); -pub static GUARDED_BY_PIGLINS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::GoldBlock, - Block::Barrel, - Block::Chest, - Block::EnderChest, - Block::GildedBlackstone, - Block::TrappedChest, - Block::RawGoldBlock, - Block::CopperChest, - Block::ExposedCopperChest, - Block::WeatheredCopperChest, - Block::OxidizedCopperChest, - Block::WaxedCopperChest, - Block::WaxedExposedCopperChest, - Block::WaxedWeatheredCopperChest, - Block::WaxedOxidizedCopperChest, - Block::ShulkerBox, - Block::BlackShulkerBox, - Block::BlueShulkerBox, - Block::BrownShulkerBox, - Block::CyanShulkerBox, - Block::GrayShulkerBox, - Block::GreenShulkerBox, - Block::LightBlueShulkerBox, - Block::LightGrayShulkerBox, - Block::LimeShulkerBox, - Block::MagentaShulkerBox, - Block::OrangeShulkerBox, - Block::PinkShulkerBox, - Block::PurpleShulkerBox, - Block::RedShulkerBox, - Block::WhiteShulkerBox, - Block::YellowShulkerBox, - Block::GoldOre, - Block::NetherGoldOre, - Block::DeepslateGoldOre, - ]) -}); -pub static HAPPY_GHAST_AVOIDS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::SweetBerryBush, - Block::Cactus, - Block::WitherRose, - Block::MagmaBlock, - Block::Fire, - Block::PointedDripstone, - ]) -}); -pub static HOGLIN_REPELLENTS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::WarpedFungus, - Block::PottedWarpedFungus, - Block::NetherPortal, - Block::RespawnAnchor, - ]) -}); -pub static ICE: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::Ice, - Block::PackedIce, - Block::BlueIce, - Block::FrostedIce, - ]) -}); -pub static IMPERMEABLE: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::Glass, - Block::WhiteStainedGlass, - Block::OrangeStainedGlass, - Block::MagentaStainedGlass, - Block::LightBlueStainedGlass, - Block::YellowStainedGlass, - Block::LimeStainedGlass, - Block::PinkStainedGlass, - Block::GrayStainedGlass, - Block::LightGrayStainedGlass, - Block::CyanStainedGlass, - Block::PurpleStainedGlass, - Block::BlueStainedGlass, - Block::BrownStainedGlass, - Block::GreenStainedGlass, - Block::RedStainedGlass, - Block::BlackStainedGlass, - Block::TintedGlass, - Block::Barrier, - ]) -}); -pub static INCORRECT_FOR_COPPER_TOOL: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::Obsidian, - Block::CryingObsidian, - Block::NetheriteBlock, - Block::RespawnAnchor, - Block::AncientDebris, - Block::DiamondBlock, - Block::DiamondOre, - Block::DeepslateDiamondOre, - Block::EmeraldOre, - Block::DeepslateEmeraldOre, - Block::EmeraldBlock, - Block::GoldBlock, - Block::RawGoldBlock, - Block::GoldOre, - Block::DeepslateGoldOre, - Block::RedstoneOre, - Block::DeepslateRedstoneOre, - ]) -}); -pub static INCORRECT_FOR_DIAMOND_TOOL: LazyLock<HashSet<Block>> = - LazyLock::new(|| HashSet::from_iter([])); -pub static INCORRECT_FOR_GOLD_TOOL: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::Obsidian, - Block::CryingObsidian, - Block::NetheriteBlock, - Block::RespawnAnchor, - Block::AncientDebris, - Block::DiamondBlock, - Block::DiamondOre, - Block::DeepslateDiamondOre, - Block::EmeraldOre, - Block::DeepslateEmeraldOre, - Block::EmeraldBlock, - Block::GoldBlock, - Block::RawGoldBlock, - Block::GoldOre, - Block::DeepslateGoldOre, - Block::RedstoneOre, - Block::DeepslateRedstoneOre, - Block::IronBlock, - Block::RawIronBlock, - Block::IronOre, - Block::DeepslateIronOre, - Block::LapisBlock, - Block::LapisOre, - Block::DeepslateLapisOre, - Block::CopperBlock, - Block::RawCopperBlock, - Block::CopperOre, - Block::DeepslateCopperOre, - Block::CutCopperSlab, - Block::CutCopperStairs, - Block::CutCopper, - Block::WeatheredCopper, - Block::WeatheredCutCopperSlab, - Block::WeatheredCutCopperStairs, - Block::WeatheredCutCopper, - Block::OxidizedCopper, - Block::OxidizedCutCopperSlab, - Block::OxidizedCutCopperStairs, - Block::OxidizedCutCopper, - Block::ExposedCopper, - Block::ExposedCutCopperSlab, - Block::ExposedCutCopperStairs, - Block::ExposedCutCopper, - Block::WaxedCopperBlock, - Block::WaxedCutCopperSlab, - Block::WaxedCutCopperStairs, - Block::WaxedCutCopper, - Block::WaxedWeatheredCopper, - Block::WaxedWeatheredCutCopperSlab, - Block::WaxedWeatheredCutCopperStairs, - Block::WaxedWeatheredCutCopper, - Block::WaxedExposedCopper, - Block::WaxedExposedCutCopperSlab, - Block::WaxedExposedCutCopperStairs, - Block::WaxedExposedCutCopper, - Block::WaxedOxidizedCopper, - Block::WaxedOxidizedCutCopperSlab, - Block::WaxedOxidizedCutCopperStairs, - Block::WaxedOxidizedCutCopper, - Block::Crafter, - Block::ChiseledCopper, - Block::ExposedChiseledCopper, - Block::WeatheredChiseledCopper, - Block::OxidizedChiseledCopper, - Block::WaxedChiseledCopper, - Block::WaxedExposedChiseledCopper, - Block::WaxedWeatheredChiseledCopper, - Block::WaxedOxidizedChiseledCopper, - Block::CopperGrate, - Block::ExposedCopperGrate, - Block::WeatheredCopperGrate, - Block::OxidizedCopperGrate, - Block::WaxedCopperGrate, - Block::WaxedExposedCopperGrate, - Block::WaxedWeatheredCopperGrate, - Block::WaxedOxidizedCopperGrate, - Block::CopperBulb, - Block::ExposedCopperBulb, - Block::WeatheredCopperBulb, - Block::OxidizedCopperBulb, - Block::WaxedCopperBulb, - Block::WaxedExposedCopperBulb, - Block::WaxedWeatheredCopperBulb, - Block::WaxedOxidizedCopperBulb, - Block::CopperTrapdoor, - Block::ExposedCopperTrapdoor, - Block::WeatheredCopperTrapdoor, - Block::OxidizedCopperTrapdoor, - Block::WaxedCopperTrapdoor, - Block::WaxedExposedCopperTrapdoor, - Block::WaxedWeatheredCopperTrapdoor, - Block::WaxedOxidizedCopperTrapdoor, - Block::CopperChest, - Block::ExposedCopperChest, - Block::WeatheredCopperChest, - Block::OxidizedCopperChest, - Block::WaxedCopperChest, - Block::WaxedExposedCopperChest, - Block::WaxedWeatheredCopperChest, - Block::WaxedOxidizedCopperChest, - Block::LightningRod, - Block::ExposedLightningRod, - Block::WeatheredLightningRod, - Block::OxidizedLightningRod, - Block::WaxedLightningRod, - Block::WaxedExposedLightningRod, - Block::WaxedWeatheredLightningRod, - Block::WaxedOxidizedLightningRod, - ]) -}); -pub static INCORRECT_FOR_IRON_TOOL: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::Obsidian, - Block::CryingObsidian, - Block::NetheriteBlock, - Block::RespawnAnchor, - Block::AncientDebris, - ]) -}); -pub static INCORRECT_FOR_NETHERITE_TOOL: LazyLock<HashSet<Block>> = - LazyLock::new(|| HashSet::from_iter([])); -pub static INCORRECT_FOR_STONE_TOOL: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::Obsidian, - Block::CryingObsidian, - Block::NetheriteBlock, - Block::RespawnAnchor, - Block::AncientDebris, - Block::DiamondBlock, - Block::DiamondOre, - Block::DeepslateDiamondOre, - Block::EmeraldOre, - Block::DeepslateEmeraldOre, - Block::EmeraldBlock, - Block::GoldBlock, - Block::RawGoldBlock, - Block::GoldOre, - Block::DeepslateGoldOre, - Block::RedstoneOre, - Block::DeepslateRedstoneOre, - ]) -}); -pub static INCORRECT_FOR_WOODEN_TOOL: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::Obsidian, - Block::CryingObsidian, - Block::NetheriteBlock, - Block::RespawnAnchor, - Block::AncientDebris, - Block::DiamondBlock, - Block::DiamondOre, - Block::DeepslateDiamondOre, - Block::EmeraldOre, - Block::DeepslateEmeraldOre, - Block::EmeraldBlock, - Block::GoldBlock, - Block::RawGoldBlock, - Block::GoldOre, - Block::DeepslateGoldOre, - Block::RedstoneOre, - Block::DeepslateRedstoneOre, - Block::IronBlock, - Block::RawIronBlock, - Block::IronOre, - Block::DeepslateIronOre, - Block::LapisBlock, - Block::LapisOre, - Block::DeepslateLapisOre, - Block::CopperBlock, - Block::RawCopperBlock, - Block::CopperOre, - Block::DeepslateCopperOre, - Block::CutCopperSlab, - Block::CutCopperStairs, - Block::CutCopper, - Block::WeatheredCopper, - Block::WeatheredCutCopperSlab, - Block::WeatheredCutCopperStairs, - Block::WeatheredCutCopper, - Block::OxidizedCopper, - Block::OxidizedCutCopperSlab, - Block::OxidizedCutCopperStairs, - Block::OxidizedCutCopper, - Block::ExposedCopper, - Block::ExposedCutCopperSlab, - Block::ExposedCutCopperStairs, - Block::ExposedCutCopper, - Block::WaxedCopperBlock, - Block::WaxedCutCopperSlab, - Block::WaxedCutCopperStairs, - Block::WaxedCutCopper, - Block::WaxedWeatheredCopper, - Block::WaxedWeatheredCutCopperSlab, - Block::WaxedWeatheredCutCopperStairs, - Block::WaxedWeatheredCutCopper, - Block::WaxedExposedCopper, - Block::WaxedExposedCutCopperSlab, - Block::WaxedExposedCutCopperStairs, - Block::WaxedExposedCutCopper, - Block::WaxedOxidizedCopper, - Block::WaxedOxidizedCutCopperSlab, - Block::WaxedOxidizedCutCopperStairs, - Block::WaxedOxidizedCutCopper, - Block::Crafter, - Block::ChiseledCopper, - Block::ExposedChiseledCopper, - Block::WeatheredChiseledCopper, - Block::OxidizedChiseledCopper, - Block::WaxedChiseledCopper, - Block::WaxedExposedChiseledCopper, - Block::WaxedWeatheredChiseledCopper, - Block::WaxedOxidizedChiseledCopper, - Block::CopperGrate, - Block::ExposedCopperGrate, - Block::WeatheredCopperGrate, - Block::OxidizedCopperGrate, - Block::WaxedCopperGrate, - Block::WaxedExposedCopperGrate, - Block::WaxedWeatheredCopperGrate, - Block::WaxedOxidizedCopperGrate, - Block::CopperBulb, - Block::ExposedCopperBulb, - Block::WeatheredCopperBulb, - Block::OxidizedCopperBulb, - Block::WaxedCopperBulb, - Block::WaxedExposedCopperBulb, - Block::WaxedWeatheredCopperBulb, - Block::WaxedOxidizedCopperBulb, - Block::CopperTrapdoor, - Block::ExposedCopperTrapdoor, - Block::WeatheredCopperTrapdoor, - Block::OxidizedCopperTrapdoor, - Block::WaxedCopperTrapdoor, - Block::WaxedExposedCopperTrapdoor, - Block::WaxedWeatheredCopperTrapdoor, - Block::WaxedOxidizedCopperTrapdoor, - Block::CopperChest, - Block::ExposedCopperChest, - Block::WeatheredCopperChest, - Block::OxidizedCopperChest, - Block::WaxedCopperChest, - Block::WaxedExposedCopperChest, - Block::WaxedWeatheredCopperChest, - Block::WaxedOxidizedCopperChest, - Block::LightningRod, - Block::ExposedLightningRod, - Block::WeatheredLightningRod, - Block::OxidizedLightningRod, - Block::WaxedLightningRod, - Block::WaxedExposedLightningRod, - Block::WaxedWeatheredLightningRod, - Block::WaxedOxidizedLightningRod, - ]) -}); -pub static INFINIBURN_END: LazyLock<HashSet<Block>> = - LazyLock::new(|| HashSet::from_iter([Block::Bedrock, Block::Netherrack, Block::MagmaBlock])); -pub static INFINIBURN_NETHER: LazyLock<HashSet<Block>> = - LazyLock::new(|| HashSet::from_iter([Block::Netherrack, Block::MagmaBlock])); -pub static INFINIBURN_OVERWORLD: LazyLock<HashSet<Block>> = - LazyLock::new(|| HashSet::from_iter([Block::Netherrack, Block::MagmaBlock])); -pub static INSIDE_STEP_SOUND_BLOCKS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::PowderSnow, - Block::SculkVein, - Block::GlowLichen, - Block::LilyPad, - Block::SmallAmethystBud, - Block::PinkPetals, - Block::Wildflowers, - Block::LeafLitter, - ]) -}); -pub static INVALID_SPAWN_INSIDE: LazyLock<HashSet<Block>> = - LazyLock::new(|| HashSet::from_iter([Block::EndPortal, Block::EndGateway])); -pub static IRON_ORES: LazyLock<HashSet<Block>> = - LazyLock::new(|| HashSet::from_iter([Block::IronOre, Block::DeepslateIronOre])); -pub static JUNGLE_LOGS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::JungleLog, - Block::JungleWood, - Block::StrippedJungleLog, - Block::StrippedJungleWood, - ]) -}); -pub static LANTERNS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::Lantern, - Block::SoulLantern, - Block::CopperLantern, - Block::WaxedCopperLantern, - Block::ExposedCopperLantern, - Block::WaxedExposedCopperLantern, - Block::WeatheredCopperLantern, - Block::WaxedWeatheredCopperLantern, - Block::OxidizedCopperLantern, - Block::WaxedOxidizedCopperLantern, - ]) -}); -pub static LAPIS_ORES: LazyLock<HashSet<Block>> = - LazyLock::new(|| HashSet::from_iter([Block::LapisOre, Block::DeepslateLapisOre])); -pub static LAVA_POOL_STONE_CANNOT_REPLACE: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::Bedrock, - Block::Spawner, - Block::Chest, - Block::EndPortalFrame, - Block::ReinforcedDeepslate, - Block::TrialSpawner, - Block::Vault, - Block::JungleLeaves, - Block::OakLeaves, - Block::SpruceLeaves, - Block::PaleOakLeaves, - Block::DarkOakLeaves, - Block::AcaciaLeaves, - Block::BirchLeaves, - Block::AzaleaLeaves, - Block::FloweringAzaleaLeaves, - Block::MangroveLeaves, - Block::CherryLeaves, - Block::CrimsonStem, - Block::StrippedCrimsonStem, - Block::CrimsonHyphae, - Block::StrippedCrimsonHyphae, - Block::WarpedStem, - Block::StrippedWarpedStem, - Block::WarpedHyphae, - Block::StrippedWarpedHyphae, - Block::DarkOakLog, - Block::DarkOakWood, - Block::StrippedDarkOakLog, - Block::StrippedDarkOakWood, - Block::PaleOakLog, - Block::PaleOakWood, - Block::StrippedPaleOakLog, - Block::StrippedPaleOakWood, - Block::OakLog, - Block::OakWood, - Block::StrippedOakLog, - Block::StrippedOakWood, - Block::AcaciaLog, - Block::AcaciaWood, - Block::StrippedAcaciaLog, - Block::StrippedAcaciaWood, - Block::BirchLog, - Block::BirchWood, - Block::StrippedBirchLog, - Block::StrippedBirchWood, - Block::JungleLog, - Block::JungleWood, - Block::StrippedJungleLog, - Block::StrippedJungleWood, - Block::SpruceLog, - Block::SpruceWood, - Block::StrippedSpruceLog, - Block::StrippedSpruceWood, - Block::MangroveLog, - Block::MangroveWood, - Block::StrippedMangroveLog, - Block::StrippedMangroveWood, - Block::CherryLog, - Block::CherryWood, - Block::StrippedCherryLog, - Block::StrippedCherryWood, - ]) -}); -pub static LEAVES: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::JungleLeaves, - Block::OakLeaves, - Block::SpruceLeaves, - Block::PaleOakLeaves, - Block::DarkOakLeaves, - Block::AcaciaLeaves, - Block::BirchLeaves, - Block::AzaleaLeaves, - Block::FloweringAzaleaLeaves, - Block::MangroveLeaves, - Block::CherryLeaves, - ]) -}); -pub static LIGHTNING_RODS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::LightningRod, - Block::ExposedLightningRod, - Block::WeatheredLightningRod, - Block::OxidizedLightningRod, - Block::WaxedLightningRod, - Block::WaxedExposedLightningRod, - Block::WaxedWeatheredLightningRod, - Block::WaxedOxidizedLightningRod, - ]) -}); -pub static LOGS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::CrimsonStem, - Block::StrippedCrimsonStem, - Block::CrimsonHyphae, - Block::StrippedCrimsonHyphae, - Block::WarpedStem, - Block::StrippedWarpedStem, - Block::WarpedHyphae, - Block::StrippedWarpedHyphae, - Block::DarkOakLog, - Block::DarkOakWood, - Block::StrippedDarkOakLog, - Block::StrippedDarkOakWood, - Block::PaleOakLog, - Block::PaleOakWood, - Block::StrippedPaleOakLog, - Block::StrippedPaleOakWood, - Block::OakLog, - Block::OakWood, - Block::StrippedOakLog, - Block::StrippedOakWood, - Block::AcaciaLog, - Block::AcaciaWood, - Block::StrippedAcaciaLog, - Block::StrippedAcaciaWood, - Block::BirchLog, - Block::BirchWood, - Block::StrippedBirchLog, - Block::StrippedBirchWood, - Block::JungleLog, - Block::JungleWood, - Block::StrippedJungleLog, - Block::StrippedJungleWood, - Block::SpruceLog, - Block::SpruceWood, - Block::StrippedSpruceLog, - Block::StrippedSpruceWood, - Block::MangroveLog, - Block::MangroveWood, - Block::StrippedMangroveLog, - Block::StrippedMangroveWood, - Block::CherryLog, - Block::CherryWood, - Block::StrippedCherryLog, - Block::StrippedCherryWood, - ]) -}); -pub static LOGS_THAT_BURN: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::DarkOakLog, - Block::DarkOakWood, - Block::StrippedDarkOakLog, - Block::StrippedDarkOakWood, - Block::PaleOakLog, - Block::PaleOakWood, - Block::StrippedPaleOakLog, - Block::StrippedPaleOakWood, - Block::OakLog, - Block::OakWood, - Block::StrippedOakLog, - Block::StrippedOakWood, - Block::AcaciaLog, - Block::AcaciaWood, - Block::StrippedAcaciaLog, - Block::StrippedAcaciaWood, - Block::BirchLog, - Block::BirchWood, - Block::StrippedBirchLog, - Block::StrippedBirchWood, - Block::JungleLog, - Block::JungleWood, - Block::StrippedJungleLog, - Block::StrippedJungleWood, - Block::SpruceLog, - Block::SpruceWood, - Block::StrippedSpruceLog, - Block::StrippedSpruceWood, - Block::MangroveLog, - Block::MangroveWood, - Block::StrippedMangroveLog, - Block::StrippedMangroveWood, - Block::CherryLog, - Block::CherryWood, - Block::StrippedCherryLog, - Block::StrippedCherryWood, - ]) -}); -pub static LUSH_GROUND_REPLACEABLE: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::Clay, - Block::Gravel, - Block::Sand, - Block::Stone, - Block::Granite, - Block::Diorite, - Block::Andesite, - Block::Tuff, - Block::Deepslate, - Block::CaveVinesPlant, - Block::CaveVines, - Block::Dirt, - Block::GrassBlock, - Block::Podzol, - Block::CoarseDirt, - Block::Mycelium, - Block::RootedDirt, - Block::MossBlock, - Block::PaleMossBlock, - Block::Mud, - Block::MuddyMangroveRoots, - ]) -}); -pub static MAINTAINS_FARMLAND: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::PumpkinStem, - Block::AttachedPumpkinStem, - Block::MelonStem, - Block::AttachedMelonStem, - Block::Beetroots, - Block::Carrots, - Block::Potatoes, - Block::TorchflowerCrop, - Block::Torchflower, - Block::PitcherCrop, - Block::Wheat, - ]) -}); -pub static MANGROVE_LOGS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::MangroveLog, - Block::MangroveWood, - Block::StrippedMangroveLog, - Block::StrippedMangroveWood, - ]) -}); -pub static MANGROVE_LOGS_CAN_GROW_THROUGH: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::Mud, - Block::MuddyMangroveRoots, - Block::MangroveRoots, - Block::MangroveLeaves, - Block::MangroveLog, - Block::MangrovePropagule, - Block::MossCarpet, - Block::Vine, - ]) -}); -pub static MANGROVE_ROOTS_CAN_GROW_THROUGH: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::Mud, - Block::MuddyMangroveRoots, - Block::MangroveRoots, - Block::MossCarpet, - Block::Vine, - Block::MangrovePropagule, - Block::Snow, - ]) -}); -pub static MINEABLE_AXE: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::NoteBlock, - Block::Bamboo, - Block::Barrel, - Block::BeeNest, - Block::Beehive, - Block::BigDripleafStem, - Block::BigDripleaf, - Block::Bookshelf, - Block::BrownMushroomBlock, - Block::Campfire, - Block::CartographyTable, - Block::CarvedPumpkin, - Block::Chest, - Block::ChorusFlower, - Block::ChorusPlant, - Block::Cocoa, - Block::Composter, - Block::CraftingTable, - Block::DaylightDetector, - Block::FletchingTable, - Block::GlowLichen, - Block::JackOLantern, - Block::Jukebox, - Block::Ladder, - Block::Lectern, - Block::Loom, - Block::Melon, - Block::MushroomStem, - Block::Pumpkin, - Block::RedMushroomBlock, - Block::SmithingTable, - Block::SoulCampfire, - Block::TrappedChest, - Block::Vine, - Block::MangroveRoots, - Block::BambooMosaic, - Block::BambooMosaicSlab, - Block::BambooMosaicStairs, - Block::ChiseledBookshelf, - Block::CreakingHeart, - Block::WhiteBanner, - Block::OrangeBanner, - Block::MagentaBanner, - Block::LightBlueBanner, - Block::YellowBanner, - Block::LimeBanner, - Block::PinkBanner, - Block::GrayBanner, - Block::LightGrayBanner, - Block::CyanBanner, - Block::PurpleBanner, - Block::BlueBanner, - Block::BrownBanner, - Block::GreenBanner, - Block::RedBanner, - Block::BlackBanner, - Block::WhiteWallBanner, - Block::OrangeWallBanner, - Block::MagentaWallBanner, - Block::LightBlueWallBanner, - Block::YellowWallBanner, - Block::LimeWallBanner, - Block::PinkWallBanner, - Block::GrayWallBanner, - Block::LightGrayWallBanner, - Block::CyanWallBanner, - Block::PurpleWallBanner, - Block::BlueWallBanner, - Block::BrownWallBanner, - Block::GreenWallBanner, - Block::RedWallBanner, - Block::BlackWallBanner, - Block::AcaciaFenceGate, - Block::BirchFenceGate, - Block::DarkOakFenceGate, - Block::PaleOakFenceGate, - Block::JungleFenceGate, - Block::OakFenceGate, - Block::SpruceFenceGate, - Block::CrimsonFenceGate, - Block::WarpedFenceGate, - Block::MangroveFenceGate, - Block::BambooFenceGate, - Block::CherryFenceGate, - Block::OakPlanks, - Block::SprucePlanks, - Block::BirchPlanks, - Block::JunglePlanks, - Block::AcaciaPlanks, - Block::DarkOakPlanks, - Block::PaleOakPlanks, - Block::CrimsonPlanks, - Block::WarpedPlanks, - Block::MangrovePlanks, - Block::BambooPlanks, - Block::CherryPlanks, - Block::OakButton, - Block::SpruceButton, - Block::BirchButton, - Block::JungleButton, - Block::AcaciaButton, - Block::DarkOakButton, - Block::PaleOakButton, - Block::CrimsonButton, - Block::WarpedButton, - Block::MangroveButton, - Block::BambooButton, - Block::CherryButton, - Block::OakDoor, - Block::SpruceDoor, - Block::BirchDoor, - Block::JungleDoor, - Block::AcaciaDoor, - Block::DarkOakDoor, - Block::PaleOakDoor, - Block::CrimsonDoor, - Block::WarpedDoor, - Block::MangroveDoor, - Block::BambooDoor, - Block::CherryDoor, - Block::OakFence, - Block::AcaciaFence, - Block::DarkOakFence, - Block::PaleOakFence, - Block::SpruceFence, - Block::BirchFence, - Block::JungleFence, - Block::CrimsonFence, - Block::WarpedFence, - Block::MangroveFence, - Block::BambooFence, - Block::CherryFence, - Block::OakPressurePlate, - Block::SprucePressurePlate, - Block::BirchPressurePlate, - Block::JunglePressurePlate, - Block::AcaciaPressurePlate, - Block::DarkOakPressurePlate, - Block::PaleOakPressurePlate, - Block::CrimsonPressurePlate, - Block::WarpedPressurePlate, - Block::MangrovePressurePlate, - Block::BambooPressurePlate, - Block::CherryPressurePlate, - Block::OakSlab, - Block::SpruceSlab, - Block::BirchSlab, - Block::JungleSlab, - Block::AcaciaSlab, - Block::DarkOakSlab, - Block::PaleOakSlab, - Block::CrimsonSlab, - Block::WarpedSlab, - Block::MangroveSlab, - Block::BambooSlab, - Block::CherrySlab, - Block::OakStairs, - Block::SpruceStairs, - Block::BirchStairs, - Block::JungleStairs, - Block::AcaciaStairs, - Block::DarkOakStairs, - Block::PaleOakStairs, - Block::CrimsonStairs, - Block::WarpedStairs, - Block::MangroveStairs, - Block::BambooStairs, - Block::CherryStairs, - Block::AcaciaTrapdoor, - Block::BirchTrapdoor, - Block::DarkOakTrapdoor, - Block::PaleOakTrapdoor, - Block::JungleTrapdoor, - Block::OakTrapdoor, - Block::SpruceTrapdoor, - Block::CrimsonTrapdoor, - Block::WarpedTrapdoor, - Block::MangroveTrapdoor, - Block::BambooTrapdoor, - Block::CherryTrapdoor, - Block::BambooBlock, - Block::StrippedBambooBlock, - Block::AcaciaShelf, - Block::BambooShelf, - Block::BirchShelf, - Block::CherryShelf, - Block::CrimsonShelf, - Block::DarkOakShelf, - Block::JungleShelf, - Block::MangroveShelf, - Block::OakShelf, - Block::PaleOakShelf, - Block::SpruceShelf, - Block::WarpedShelf, - Block::CrimsonStem, - Block::StrippedCrimsonStem, - Block::CrimsonHyphae, - Block::StrippedCrimsonHyphae, - Block::WarpedStem, - Block::StrippedWarpedStem, - Block::WarpedHyphae, - Block::StrippedWarpedHyphae, - Block::OakSign, - Block::SpruceSign, - Block::BirchSign, - Block::AcaciaSign, - Block::JungleSign, - Block::DarkOakSign, - Block::PaleOakSign, - Block::CrimsonSign, - Block::WarpedSign, - Block::MangroveSign, - Block::BambooSign, - Block::CherrySign, - Block::OakWallSign, - Block::SpruceWallSign, - Block::BirchWallSign, - Block::AcaciaWallSign, - Block::JungleWallSign, - Block::DarkOakWallSign, - Block::PaleOakWallSign, - Block::CrimsonWallSign, - Block::WarpedWallSign, - Block::MangroveWallSign, - Block::BambooWallSign, - Block::CherryWallSign, - Block::OakHangingSign, - Block::SpruceHangingSign, - Block::BirchHangingSign, - Block::AcaciaHangingSign, - Block::CherryHangingSign, - Block::JungleHangingSign, - Block::DarkOakHangingSign, - Block::PaleOakHangingSign, - Block::CrimsonHangingSign, - Block::WarpedHangingSign, - Block::MangroveHangingSign, - Block::BambooHangingSign, - Block::OakWallHangingSign, - Block::SpruceWallHangingSign, - Block::BirchWallHangingSign, - Block::AcaciaWallHangingSign, - Block::CherryWallHangingSign, - Block::JungleWallHangingSign, - Block::DarkOakWallHangingSign, - Block::PaleOakWallHangingSign, - Block::CrimsonWallHangingSign, - Block::WarpedWallHangingSign, - Block::MangroveWallHangingSign, - Block::BambooWallHangingSign, - Block::DarkOakLog, - Block::DarkOakWood, - Block::StrippedDarkOakLog, - Block::StrippedDarkOakWood, - Block::PaleOakLog, - Block::PaleOakWood, - Block::StrippedPaleOakLog, - Block::StrippedPaleOakWood, - Block::OakLog, - Block::OakWood, - Block::StrippedOakLog, - Block::StrippedOakWood, - Block::AcaciaLog, - Block::AcaciaWood, - Block::StrippedAcaciaLog, - Block::StrippedAcaciaWood, - Block::BirchLog, - Block::BirchWood, - Block::StrippedBirchLog, - Block::StrippedBirchWood, - Block::JungleLog, - Block::JungleWood, - Block::StrippedJungleLog, - Block::StrippedJungleWood, - Block::SpruceLog, - Block::SpruceWood, - Block::StrippedSpruceLog, - Block::StrippedSpruceWood, - Block::MangroveLog, - Block::MangroveWood, - Block::StrippedMangroveLog, - Block::StrippedMangroveWood, - Block::CherryLog, - Block::CherryWood, - Block::StrippedCherryLog, - Block::StrippedCherryWood, - ]) -}); -pub static MINEABLE_HOE: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::NetherWartBlock, - Block::WarpedWartBlock, - Block::HayBlock, - Block::DriedKelpBlock, - Block::Target, - Block::Shroomlight, - Block::Sponge, - Block::WetSponge, - Block::SculkSensor, - Block::CalibratedSculkSensor, - Block::MossBlock, - Block::MossCarpet, - Block::PaleMossBlock, - Block::PaleMossCarpet, - Block::Sculk, - Block::SculkCatalyst, - Block::SculkVein, - Block::SculkShrieker, - Block::JungleLeaves, - Block::OakLeaves, - Block::SpruceLeaves, - Block::PaleOakLeaves, - Block::DarkOakLeaves, - Block::AcaciaLeaves, - Block::BirchLeaves, - Block::AzaleaLeaves, - Block::FloweringAzaleaLeaves, - Block::MangroveLeaves, - Block::CherryLeaves, - ]) -}); -pub static MINEABLE_PICKAXE: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::Stone, - Block::Granite, - Block::PolishedGranite, - Block::Diorite, - Block::PolishedDiorite, - Block::Andesite, - Block::PolishedAndesite, - Block::Cobblestone, - Block::GoldOre, - Block::DeepslateGoldOre, - Block::IronOre, - Block::DeepslateIronOre, - Block::CoalOre, - Block::DeepslateCoalOre, - Block::NetherGoldOre, - Block::LapisOre, - Block::DeepslateLapisOre, - Block::LapisBlock, - Block::Dispenser, - Block::Sandstone, - Block::ChiseledSandstone, - Block::CutSandstone, - Block::GoldBlock, - Block::IronBlock, - Block::Bricks, - Block::MossyCobblestone, - Block::Obsidian, - Block::Spawner, - Block::DiamondOre, - Block::DeepslateDiamondOre, - Block::DiamondBlock, - Block::Furnace, - Block::CobblestoneStairs, - Block::StonePressurePlate, - Block::IronDoor, - Block::RedstoneOre, - Block::DeepslateRedstoneOre, - Block::Netherrack, - Block::Basalt, - Block::PolishedBasalt, - Block::StoneBricks, - Block::MossyStoneBricks, - Block::CrackedStoneBricks, - Block::ChiseledStoneBricks, - Block::BrickStairs, - Block::StoneBrickStairs, - Block::NetherBricks, - Block::NetherBrickFence, - Block::NetherBrickStairs, - Block::EnchantingTable, - Block::BrewingStand, - Block::EndStone, - Block::SandstoneStairs, - Block::EmeraldOre, - Block::DeepslateEmeraldOre, - Block::EnderChest, - Block::EmeraldBlock, - Block::LightWeightedPressurePlate, - Block::HeavyWeightedPressurePlate, - Block::RedstoneBlock, - Block::NetherQuartzOre, - Block::Hopper, - Block::QuartzBlock, - Block::ChiseledQuartzBlock, - Block::QuartzPillar, - Block::QuartzStairs, - Block::Dropper, - Block::WhiteTerracotta, - Block::OrangeTerracotta, - Block::MagentaTerracotta, - Block::LightBlueTerracotta, - Block::YellowTerracotta, - Block::LimeTerracotta, - Block::PinkTerracotta, - Block::GrayTerracotta, - Block::LightGrayTerracotta, - Block::CyanTerracotta, - Block::PurpleTerracotta, - Block::BlueTerracotta, - Block::BrownTerracotta, - Block::GreenTerracotta, - Block::RedTerracotta, - Block::BlackTerracotta, - Block::IronTrapdoor, - Block::Prismarine, - Block::PrismarineBricks, - Block::DarkPrismarine, - Block::PrismarineStairs, - Block::PrismarineBrickStairs, - Block::DarkPrismarineStairs, - Block::PrismarineSlab, - Block::PrismarineBrickSlab, - Block::DarkPrismarineSlab, - Block::Terracotta, - Block::CoalBlock, - Block::RedSandstone, - Block::ChiseledRedSandstone, - Block::CutRedSandstone, - Block::RedSandstoneStairs, - Block::StoneSlab, - Block::SmoothStoneSlab, - Block::SandstoneSlab, - Block::CutSandstoneSlab, - Block::PetrifiedOakSlab, - Block::CobblestoneSlab, - Block::BrickSlab, - Block::StoneBrickSlab, - Block::NetherBrickSlab, - Block::QuartzSlab, - Block::RedSandstoneSlab, - Block::CutRedSandstoneSlab, - Block::PurpurSlab, - Block::SmoothStone, - Block::SmoothSandstone, - Block::SmoothQuartz, - Block::SmoothRedSandstone, - Block::PurpurBlock, - Block::PurpurPillar, - Block::PurpurStairs, - Block::EndStoneBricks, - Block::MagmaBlock, - Block::RedNetherBricks, - Block::BoneBlock, - Block::Observer, - Block::WhiteGlazedTerracotta, - Block::OrangeGlazedTerracotta, - Block::MagentaGlazedTerracotta, - Block::LightBlueGlazedTerracotta, - Block::YellowGlazedTerracotta, - Block::LimeGlazedTerracotta, - Block::PinkGlazedTerracotta, - Block::GrayGlazedTerracotta, - Block::LightGrayGlazedTerracotta, - Block::CyanGlazedTerracotta, - Block::PurpleGlazedTerracotta, - Block::BlueGlazedTerracotta, - Block::BrownGlazedTerracotta, - Block::GreenGlazedTerracotta, - Block::RedGlazedTerracotta, - Block::BlackGlazedTerracotta, - Block::WhiteConcrete, - Block::OrangeConcrete, - Block::MagentaConcrete, - Block::LightBlueConcrete, - Block::YellowConcrete, - Block::LimeConcrete, - Block::PinkConcrete, - Block::GrayConcrete, - Block::LightGrayConcrete, - Block::CyanConcrete, - Block::PurpleConcrete, - Block::BlueConcrete, - Block::BrownConcrete, - Block::GreenConcrete, - Block::RedConcrete, - Block::BlackConcrete, - Block::DeadTubeCoralBlock, - Block::DeadBrainCoralBlock, - Block::DeadBubbleCoralBlock, - Block::DeadFireCoralBlock, - Block::DeadHornCoralBlock, - Block::TubeCoralBlock, - Block::BrainCoralBlock, - Block::BubbleCoralBlock, - Block::FireCoralBlock, - Block::HornCoralBlock, - Block::DeadTubeCoral, - Block::DeadBrainCoral, - Block::DeadBubbleCoral, - Block::DeadFireCoral, - Block::DeadHornCoral, - Block::DeadTubeCoralFan, - Block::DeadBrainCoralFan, - Block::DeadBubbleCoralFan, - Block::DeadFireCoralFan, - Block::DeadHornCoralFan, - Block::DeadTubeCoralWallFan, - Block::DeadBrainCoralWallFan, - Block::DeadBubbleCoralWallFan, - Block::DeadFireCoralWallFan, - Block::DeadHornCoralWallFan, - Block::PolishedGraniteStairs, - Block::SmoothRedSandstoneStairs, - Block::MossyStoneBrickStairs, - Block::PolishedDioriteStairs, - Block::MossyCobblestoneStairs, - Block::EndStoneBrickStairs, - Block::StoneStairs, - Block::SmoothSandstoneStairs, - Block::SmoothQuartzStairs, - Block::GraniteStairs, - Block::AndesiteStairs, - Block::RedNetherBrickStairs, - Block::PolishedAndesiteStairs, - Block::DioriteStairs, - Block::PolishedGraniteSlab, - Block::SmoothRedSandstoneSlab, - Block::MossyStoneBrickSlab, - Block::PolishedDioriteSlab, - Block::MossyCobblestoneSlab, - Block::EndStoneBrickSlab, - Block::SmoothSandstoneSlab, - Block::SmoothQuartzSlab, - Block::GraniteSlab, - Block::AndesiteSlab, - Block::RedNetherBrickSlab, - Block::PolishedAndesiteSlab, - Block::DioriteSlab, - Block::Smoker, - Block::BlastFurnace, - Block::Grindstone, - Block::Stonecutter, - Block::Bell, - Block::WarpedNylium, - Block::CrimsonNylium, - Block::NetheriteBlock, - Block::AncientDebris, - Block::CryingObsidian, - Block::RespawnAnchor, - Block::Lodestone, - Block::Blackstone, - Block::BlackstoneStairs, - Block::BlackstoneSlab, - Block::PolishedBlackstone, - Block::PolishedBlackstoneBricks, - Block::CrackedPolishedBlackstoneBricks, - Block::ChiseledPolishedBlackstone, - Block::PolishedBlackstoneBrickSlab, - Block::PolishedBlackstoneBrickStairs, - Block::GildedBlackstone, - Block::PolishedBlackstoneStairs, - Block::PolishedBlackstoneSlab, - Block::PolishedBlackstonePressurePlate, - Block::ChiseledNetherBricks, - Block::CrackedNetherBricks, - Block::QuartzBricks, - Block::Tuff, - Block::Calcite, - Block::OxidizedCopper, - Block::WeatheredCopper, - Block::ExposedCopper, - Block::CopperBlock, - Block::CopperOre, - Block::DeepslateCopperOre, - Block::OxidizedCutCopper, - Block::WeatheredCutCopper, - Block::ExposedCutCopper, - Block::CutCopper, - Block::OxidizedCutCopperStairs, - Block::WeatheredCutCopperStairs, - Block::ExposedCutCopperStairs, - Block::CutCopperStairs, - Block::OxidizedCutCopperSlab, - Block::WeatheredCutCopperSlab, - Block::ExposedCutCopperSlab, - Block::CutCopperSlab, - Block::WaxedCopperBlock, - Block::WaxedWeatheredCopper, - Block::WaxedExposedCopper, - Block::WaxedOxidizedCopper, - Block::WaxedOxidizedCutCopper, - Block::WaxedWeatheredCutCopper, - Block::WaxedExposedCutCopper, - Block::WaxedCutCopper, - Block::WaxedOxidizedCutCopperStairs, - Block::WaxedWeatheredCutCopperStairs, - Block::WaxedExposedCutCopperStairs, - Block::WaxedCutCopperStairs, - Block::WaxedOxidizedCutCopperSlab, - Block::WaxedWeatheredCutCopperSlab, - Block::WaxedExposedCutCopperSlab, - Block::WaxedCutCopperSlab, - Block::PointedDripstone, - Block::DripstoneBlock, - Block::Deepslate, - Block::CobbledDeepslate, - Block::CobbledDeepslateStairs, - Block::CobbledDeepslateSlab, - Block::PolishedDeepslate, - Block::PolishedDeepslateStairs, - Block::PolishedDeepslateSlab, - Block::DeepslateTiles, - Block::DeepslateTileStairs, - Block::DeepslateTileSlab, - Block::DeepslateBricks, - Block::DeepslateBrickStairs, - Block::DeepslateBrickSlab, - Block::ChiseledDeepslate, - Block::CrackedDeepslateBricks, - Block::CrackedDeepslateTiles, - Block::SmoothBasalt, - Block::RawIronBlock, - Block::RawCopperBlock, - Block::RawGoldBlock, - Block::Ice, - Block::PackedIce, - Block::BlueIce, - Block::Piston, - Block::StickyPiston, - Block::PistonHead, - Block::AmethystCluster, - Block::SmallAmethystBud, - Block::MediumAmethystBud, - Block::LargeAmethystBud, - Block::AmethystBlock, - Block::BuddingAmethyst, - Block::InfestedCobblestone, - Block::InfestedChiseledStoneBricks, - Block::InfestedCrackedStoneBricks, - Block::InfestedDeepslate, - Block::InfestedStone, - Block::InfestedMossyStoneBricks, - Block::InfestedStoneBricks, - Block::Conduit, - Block::MudBricks, - Block::MudBrickStairs, - Block::MudBrickSlab, - Block::PackedMud, - Block::Crafter, - Block::TuffSlab, - Block::TuffStairs, - Block::TuffWall, - Block::ChiseledTuff, - Block::PolishedTuff, - Block::PolishedTuffSlab, - Block::PolishedTuffStairs, - Block::PolishedTuffWall, - Block::TuffBricks, - Block::TuffBrickSlab, - Block::TuffBrickStairs, - Block::TuffBrickWall, - Block::ChiseledTuffBricks, - Block::ChiseledCopper, - Block::ExposedChiseledCopper, - Block::WeatheredChiseledCopper, - Block::OxidizedChiseledCopper, - Block::WaxedChiseledCopper, - Block::WaxedExposedChiseledCopper, - Block::WaxedWeatheredChiseledCopper, - Block::WaxedOxidizedChiseledCopper, - Block::CopperGrate, - Block::ExposedCopperGrate, - Block::WeatheredCopperGrate, - Block::OxidizedCopperGrate, - Block::WaxedCopperGrate, - Block::WaxedExposedCopperGrate, - Block::WaxedWeatheredCopperGrate, - Block::WaxedOxidizedCopperGrate, - Block::CopperBulb, - Block::ExposedCopperBulb, - Block::WeatheredCopperBulb, - Block::OxidizedCopperBulb, - Block::WaxedCopperBulb, - Block::WaxedExposedCopperBulb, - Block::WaxedWeatheredCopperBulb, - Block::WaxedOxidizedCopperBulb, - Block::CopperDoor, - Block::ExposedCopperDoor, - Block::WeatheredCopperDoor, - Block::OxidizedCopperDoor, - Block::WaxedCopperDoor, - Block::WaxedExposedCopperDoor, - Block::WaxedWeatheredCopperDoor, - Block::WaxedOxidizedCopperDoor, - Block::CopperTrapdoor, - Block::ExposedCopperTrapdoor, - Block::WeatheredCopperTrapdoor, - Block::OxidizedCopperTrapdoor, - Block::WaxedCopperTrapdoor, - Block::WaxedExposedCopperTrapdoor, - Block::WaxedWeatheredCopperTrapdoor, - Block::WaxedOxidizedCopperTrapdoor, - Block::HeavyCore, - Block::ResinBricks, - Block::ResinBrickSlab, - Block::ResinBrickWall, - Block::ResinBrickStairs, - Block::ChiseledResinBricks, - Block::StoneButton, - Block::PolishedBlackstoneButton, - Block::CobblestoneWall, - Block::MossyCobblestoneWall, - Block::BrickWall, - Block::PrismarineWall, - Block::RedSandstoneWall, - Block::MossyStoneBrickWall, - Block::GraniteWall, - Block::StoneBrickWall, - Block::NetherBrickWall, - Block::AndesiteWall, - Block::RedNetherBrickWall, - Block::SandstoneWall, - Block::EndStoneBrickWall, - Block::DioriteWall, - Block::BlackstoneWall, - Block::PolishedBlackstoneBrickWall, - Block::PolishedBlackstoneWall, - Block::CobbledDeepslateWall, - Block::PolishedDeepslateWall, - Block::DeepslateTileWall, - Block::DeepslateBrickWall, - Block::MudBrickWall, - Block::TuffWall, - Block::PolishedTuffWall, - Block::TuffBrickWall, - Block::ResinBrickWall, - Block::ShulkerBox, - Block::BlackShulkerBox, - Block::BlueShulkerBox, - Block::BrownShulkerBox, - Block::CyanShulkerBox, - Block::GrayShulkerBox, - Block::GreenShulkerBox, - Block::LightBlueShulkerBox, - Block::LightGrayShulkerBox, - Block::LimeShulkerBox, - Block::MagentaShulkerBox, - Block::OrangeShulkerBox, - Block::PinkShulkerBox, - Block::PurpleShulkerBox, - Block::RedShulkerBox, - Block::WhiteShulkerBox, - Block::YellowShulkerBox, - Block::Anvil, - Block::ChippedAnvil, - Block::DamagedAnvil, - Block::Cauldron, - Block::WaterCauldron, - Block::LavaCauldron, - Block::PowderSnowCauldron, - Block::Rail, - Block::PoweredRail, - Block::DetectorRail, - Block::ActivatorRail, - Block::CopperChest, - Block::ExposedCopperChest, - Block::WeatheredCopperChest, - Block::OxidizedCopperChest, - Block::WaxedCopperChest, - Block::WaxedExposedCopperChest, - Block::WaxedWeatheredCopperChest, - Block::WaxedOxidizedCopperChest, - Block::CopperGolemStatue, - Block::ExposedCopperGolemStatue, - Block::WeatheredCopperGolemStatue, - Block::OxidizedCopperGolemStatue, - Block::WaxedCopperGolemStatue, - Block::WaxedExposedCopperGolemStatue, - Block::WaxedWeatheredCopperGolemStatue, - Block::WaxedOxidizedCopperGolemStatue, - Block::LightningRod, - Block::ExposedLightningRod, - Block::WeatheredLightningRod, - Block::OxidizedLightningRod, - Block::WaxedLightningRod, - Block::WaxedExposedLightningRod, - Block::WaxedWeatheredLightningRod, - Block::WaxedOxidizedLightningRod, - Block::Lantern, - Block::SoulLantern, - Block::CopperLantern, - Block::WaxedCopperLantern, - Block::ExposedCopperLantern, - Block::WaxedExposedCopperLantern, - Block::WeatheredCopperLantern, - Block::WaxedWeatheredCopperLantern, - Block::OxidizedCopperLantern, - Block::WaxedOxidizedCopperLantern, - Block::IronChain, - Block::CopperChain, - Block::WaxedCopperChain, - Block::ExposedCopperChain, - Block::WaxedExposedCopperChain, - Block::WeatheredCopperChain, - Block::WaxedWeatheredCopperChain, - Block::OxidizedCopperChain, - Block::WaxedOxidizedCopperChain, - Block::IronBars, - Block::CopperBars, - Block::WaxedCopperBars, - Block::ExposedCopperBars, - Block::WaxedExposedCopperBars, - Block::WeatheredCopperBars, - Block::WaxedWeatheredCopperBars, - Block::OxidizedCopperBars, - Block::WaxedOxidizedCopperBars, - ]) -}); -pub static MINEABLE_SHOVEL: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::Clay, - Block::Dirt, - Block::CoarseDirt, - Block::Podzol, - Block::Farmland, - Block::GrassBlock, - Block::Gravel, - Block::Mycelium, - Block::Sand, - Block::RedSand, - Block::SnowBlock, - Block::Snow, - Block::SoulSand, - Block::DirtPath, - Block::SoulSoil, - Block::RootedDirt, - Block::MuddyMangroveRoots, - Block::Mud, - Block::SuspiciousSand, - Block::SuspiciousGravel, - Block::WhiteConcretePowder, - Block::OrangeConcretePowder, - Block::MagentaConcretePowder, - Block::LightBlueConcretePowder, - Block::YellowConcretePowder, - Block::LimeConcretePowder, - Block::PinkConcretePowder, - Block::GrayConcretePowder, - Block::LightGrayConcretePowder, - Block::CyanConcretePowder, - Block::PurpleConcretePowder, - Block::BlueConcretePowder, - Block::BrownConcretePowder, - Block::GreenConcretePowder, - Block::RedConcretePowder, - Block::BlackConcretePowder, - ]) -}); -pub static MOB_INTERACTABLE_DOORS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::CopperDoor, - Block::ExposedCopperDoor, - Block::WeatheredCopperDoor, - Block::OxidizedCopperDoor, - Block::WaxedCopperDoor, - Block::WaxedExposedCopperDoor, - Block::WaxedWeatheredCopperDoor, - Block::WaxedOxidizedCopperDoor, - Block::OakDoor, - Block::SpruceDoor, - Block::BirchDoor, - Block::JungleDoor, - Block::AcaciaDoor, - Block::DarkOakDoor, - Block::PaleOakDoor, - Block::CrimsonDoor, - Block::WarpedDoor, - Block::MangroveDoor, - Block::BambooDoor, - Block::CherryDoor, - ]) -}); -pub static MOOSHROOMS_SPAWNABLE_ON: LazyLock<HashSet<Block>> = - LazyLock::new(|| HashSet::from_iter([Block::Mycelium])); -pub static MOSS_REPLACEABLE: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::Stone, - Block::Granite, - Block::Diorite, - Block::Andesite, - Block::Tuff, - Block::Deepslate, - Block::CaveVinesPlant, - Block::CaveVines, - Block::Dirt, - Block::GrassBlock, - Block::Podzol, - Block::CoarseDirt, - Block::Mycelium, - Block::RootedDirt, - Block::MossBlock, - Block::PaleMossBlock, - Block::Mud, - Block::MuddyMangroveRoots, - ]) -}); -pub static MUSHROOM_GROW_BLOCK: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::Mycelium, - Block::Podzol, - Block::CrimsonNylium, - Block::WarpedNylium, - ]) -}); -pub static NEEDS_DIAMOND_TOOL: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::Obsidian, - Block::CryingObsidian, - Block::NetheriteBlock, - Block::RespawnAnchor, - Block::AncientDebris, - ]) -}); -pub static NEEDS_IRON_TOOL: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::DiamondBlock, - Block::DiamondOre, - Block::DeepslateDiamondOre, - Block::EmeraldOre, - Block::DeepslateEmeraldOre, - Block::EmeraldBlock, - Block::GoldBlock, - Block::RawGoldBlock, - Block::GoldOre, - Block::DeepslateGoldOre, - Block::RedstoneOre, - Block::DeepslateRedstoneOre, - ]) -}); -pub static NEEDS_STONE_TOOL: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::IronBlock, - Block::RawIronBlock, - Block::IronOre, - Block::DeepslateIronOre, - Block::LapisBlock, - Block::LapisOre, - Block::DeepslateLapisOre, - Block::CopperBlock, - Block::RawCopperBlock, - Block::CopperOre, - Block::DeepslateCopperOre, - Block::CutCopperSlab, - Block::CutCopperStairs, - Block::CutCopper, - Block::WeatheredCopper, - Block::WeatheredCutCopperSlab, - Block::WeatheredCutCopperStairs, - Block::WeatheredCutCopper, - Block::OxidizedCopper, - Block::OxidizedCutCopperSlab, - Block::OxidizedCutCopperStairs, - Block::OxidizedCutCopper, - Block::ExposedCopper, - Block::ExposedCutCopperSlab, - Block::ExposedCutCopperStairs, - Block::ExposedCutCopper, - Block::WaxedCopperBlock, - Block::WaxedCutCopperSlab, - Block::WaxedCutCopperStairs, - Block::WaxedCutCopper, - Block::WaxedWeatheredCopper, - Block::WaxedWeatheredCutCopperSlab, - Block::WaxedWeatheredCutCopperStairs, - Block::WaxedWeatheredCutCopper, - Block::WaxedExposedCopper, - Block::WaxedExposedCutCopperSlab, - Block::WaxedExposedCutCopperStairs, - Block::WaxedExposedCutCopper, - Block::WaxedOxidizedCopper, - Block::WaxedOxidizedCutCopperSlab, - Block::WaxedOxidizedCutCopperStairs, - Block::WaxedOxidizedCutCopper, - Block::Crafter, - Block::ChiseledCopper, - Block::ExposedChiseledCopper, - Block::WeatheredChiseledCopper, - Block::OxidizedChiseledCopper, - Block::WaxedChiseledCopper, - Block::WaxedExposedChiseledCopper, - Block::WaxedWeatheredChiseledCopper, - Block::WaxedOxidizedChiseledCopper, - Block::CopperGrate, - Block::ExposedCopperGrate, - Block::WeatheredCopperGrate, - Block::OxidizedCopperGrate, - Block::WaxedCopperGrate, - Block::WaxedExposedCopperGrate, - Block::WaxedWeatheredCopperGrate, - Block::WaxedOxidizedCopperGrate, - Block::CopperBulb, - Block::ExposedCopperBulb, - Block::WeatheredCopperBulb, - Block::OxidizedCopperBulb, - Block::WaxedCopperBulb, - Block::WaxedExposedCopperBulb, - Block::WaxedWeatheredCopperBulb, - Block::WaxedOxidizedCopperBulb, - Block::CopperTrapdoor, - Block::ExposedCopperTrapdoor, - Block::WeatheredCopperTrapdoor, - Block::OxidizedCopperTrapdoor, - Block::WaxedCopperTrapdoor, - Block::WaxedExposedCopperTrapdoor, - Block::WaxedWeatheredCopperTrapdoor, - Block::WaxedOxidizedCopperTrapdoor, - Block::CopperChest, - Block::ExposedCopperChest, - Block::WeatheredCopperChest, - Block::OxidizedCopperChest, - Block::WaxedCopperChest, - Block::WaxedExposedCopperChest, - Block::WaxedWeatheredCopperChest, - Block::WaxedOxidizedCopperChest, - Block::LightningRod, - Block::ExposedLightningRod, - Block::WeatheredLightningRod, - Block::OxidizedLightningRod, - Block::WaxedLightningRod, - Block::WaxedExposedLightningRod, - Block::WaxedWeatheredLightningRod, - Block::WaxedOxidizedLightningRod, - ]) -}); -pub static NETHER_CARVER_REPLACEABLES: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::SoulSand, - Block::SoulSoil, - Block::Stone, - Block::Granite, - Block::Diorite, - Block::Andesite, - Block::Tuff, - Block::Deepslate, - Block::Netherrack, - Block::Basalt, - Block::Blackstone, - Block::Dirt, - Block::GrassBlock, - Block::Podzol, - Block::CoarseDirt, - Block::Mycelium, - Block::RootedDirt, - Block::MossBlock, - Block::PaleMossBlock, - Block::Mud, - Block::MuddyMangroveRoots, - Block::CrimsonNylium, - Block::WarpedNylium, - Block::NetherWartBlock, - Block::WarpedWartBlock, - ]) -}); -pub static NYLIUM: LazyLock<HashSet<Block>> = - LazyLock::new(|| HashSet::from_iter([Block::CrimsonNylium, Block::WarpedNylium])); -pub static OAK_LOGS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::OakLog, - Block::OakWood, - Block::StrippedOakLog, - Block::StrippedOakWood, - ]) -}); -pub static OCCLUDES_VIBRATION_SIGNALS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::WhiteWool, - Block::OrangeWool, - Block::MagentaWool, - Block::LightBlueWool, - Block::YellowWool, - Block::LimeWool, - Block::PinkWool, - Block::GrayWool, - Block::LightGrayWool, - Block::CyanWool, - Block::PurpleWool, - Block::BlueWool, - Block::BrownWool, - Block::GreenWool, - Block::RedWool, - Block::BlackWool, - ]) -}); -pub static OVERWORLD_CARVER_REPLACEABLES: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::Water, - Block::Gravel, - Block::SuspiciousGravel, - Block::Sandstone, - Block::RedSandstone, - Block::Calcite, - Block::PackedIce, - Block::RawIronBlock, - Block::RawCopperBlock, - Block::Stone, - Block::Granite, - Block::Diorite, - Block::Andesite, - Block::Tuff, - Block::Deepslate, - Block::Dirt, - Block::GrassBlock, - Block::Podzol, - Block::CoarseDirt, - Block::Mycelium, - Block::RootedDirt, - Block::MossBlock, - Block::PaleMossBlock, - Block::Mud, - Block::MuddyMangroveRoots, - Block::Sand, - Block::RedSand, - Block::SuspiciousSand, - Block::Terracotta, - Block::WhiteTerracotta, - Block::OrangeTerracotta, - Block::MagentaTerracotta, - Block::LightBlueTerracotta, - Block::YellowTerracotta, - Block::LimeTerracotta, - Block::PinkTerracotta, - Block::GrayTerracotta, - Block::LightGrayTerracotta, - Block::CyanTerracotta, - Block::PurpleTerracotta, - Block::BlueTerracotta, - Block::BrownTerracotta, - Block::GreenTerracotta, - Block::RedTerracotta, - Block::BlackTerracotta, - Block::IronOre, - Block::DeepslateIronOre, - Block::CopperOre, - Block::DeepslateCopperOre, - Block::Snow, - Block::SnowBlock, - Block::PowderSnow, - ]) -}); -pub static OVERWORLD_NATURAL_LOGS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::AcaciaLog, - Block::BirchLog, - Block::OakLog, - Block::JungleLog, - Block::SpruceLog, - Block::DarkOakLog, - Block::PaleOakLog, - Block::MangroveLog, - Block::CherryLog, - ]) -}); -pub static PALE_OAK_LOGS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::PaleOakLog, - Block::PaleOakWood, - Block::StrippedPaleOakLog, - Block::StrippedPaleOakWood, - ]) -}); -pub static PARROTS_SPAWNABLE_ON: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::GrassBlock, - Block::Air, - Block::JungleLeaves, - Block::OakLeaves, - Block::SpruceLeaves, - Block::PaleOakLeaves, - Block::DarkOakLeaves, - Block::AcaciaLeaves, - Block::BirchLeaves, - Block::AzaleaLeaves, - Block::FloweringAzaleaLeaves, - Block::MangroveLeaves, - Block::CherryLeaves, - Block::CrimsonStem, - Block::StrippedCrimsonStem, - Block::CrimsonHyphae, - Block::StrippedCrimsonHyphae, - Block::WarpedStem, - Block::StrippedWarpedStem, - Block::WarpedHyphae, - Block::StrippedWarpedHyphae, - Block::DarkOakLog, - Block::DarkOakWood, - Block::StrippedDarkOakLog, - Block::StrippedDarkOakWood, - Block::PaleOakLog, - Block::PaleOakWood, - Block::StrippedPaleOakLog, - Block::StrippedPaleOakWood, - Block::OakLog, - Block::OakWood, - Block::StrippedOakLog, - Block::StrippedOakWood, - Block::AcaciaLog, - Block::AcaciaWood, - Block::StrippedAcaciaLog, - Block::StrippedAcaciaWood, - Block::BirchLog, - Block::BirchWood, - Block::StrippedBirchLog, - Block::StrippedBirchWood, - Block::JungleLog, - Block::JungleWood, - Block::StrippedJungleLog, - Block::StrippedJungleWood, - Block::SpruceLog, - Block::SpruceWood, - Block::StrippedSpruceLog, - Block::StrippedSpruceWood, - Block::MangroveLog, - Block::MangroveWood, - Block::StrippedMangroveLog, - Block::StrippedMangroveWood, - Block::CherryLog, - Block::CherryWood, - Block::StrippedCherryLog, - Block::StrippedCherryWood, - ]) -}); -pub static PIGLIN_REPELLENTS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::SoulFire, - Block::SoulTorch, - Block::SoulLantern, - Block::SoulWallTorch, - Block::SoulCampfire, - ]) -}); -pub static PLANKS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::OakPlanks, - Block::SprucePlanks, - Block::BirchPlanks, - Block::JunglePlanks, - Block::AcaciaPlanks, - Block::DarkOakPlanks, - Block::PaleOakPlanks, - Block::CrimsonPlanks, - Block::WarpedPlanks, - Block::MangrovePlanks, - Block::BambooPlanks, - Block::CherryPlanks, - ]) -}); -pub static POLAR_BEARS_SPAWNABLE_ON_ALTERNATE: LazyLock<HashSet<Block>> = - LazyLock::new(|| HashSet::from_iter([Block::Ice])); -pub static PORTALS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([Block::NetherPortal, Block::EndPortal, Block::EndGateway]) -}); -pub static PRESSURE_PLATES: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::LightWeightedPressurePlate, - Block::HeavyWeightedPressurePlate, - Block::OakPressurePlate, - Block::SprucePressurePlate, - Block::BirchPressurePlate, - Block::JunglePressurePlate, - Block::AcaciaPressurePlate, - Block::DarkOakPressurePlate, - Block::PaleOakPressurePlate, - Block::CrimsonPressurePlate, - Block::WarpedPressurePlate, - Block::MangrovePressurePlate, - Block::BambooPressurePlate, - Block::CherryPressurePlate, - Block::StonePressurePlate, - Block::PolishedBlackstonePressurePlate, - ]) -}); -pub static PREVENT_MOB_SPAWNING_INSIDE: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::Rail, - Block::PoweredRail, - Block::DetectorRail, - Block::ActivatorRail, - ]) -}); -pub static RABBITS_SPAWNABLE_ON: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::GrassBlock, - Block::Snow, - Block::SnowBlock, - Block::Sand, - ]) -}); -pub static RAILS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::Rail, - Block::PoweredRail, - Block::DetectorRail, - Block::ActivatorRail, - ]) -}); -pub static REDSTONE_ORES: LazyLock<HashSet<Block>> = - LazyLock::new(|| HashSet::from_iter([Block::RedstoneOre, Block::DeepslateRedstoneOre])); -pub static REPLACEABLE: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::Air, - Block::Water, - Block::Lava, - Block::ShortGrass, - Block::Fern, - Block::DeadBush, - Block::Bush, - Block::ShortDryGrass, - Block::TallDryGrass, - Block::Seagrass, - Block::TallSeagrass, - Block::Fire, - Block::SoulFire, - Block::Snow, - Block::Vine, - Block::GlowLichen, - Block::ResinClump, - Block::Light, - Block::TallGrass, - Block::LargeFern, - Block::StructureVoid, - Block::VoidAir, - Block::CaveAir, - Block::BubbleColumn, - Block::WarpedRoots, - Block::NetherSprouts, - Block::CrimsonRoots, - Block::LeafLitter, - Block::HangingRoots, - ]) -}); -pub static REPLACEABLE_BY_MUSHROOMS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::PaleMossCarpet, - Block::ShortGrass, - Block::Fern, - Block::DeadBush, - Block::Vine, - Block::GlowLichen, - Block::Sunflower, - Block::Lilac, - Block::RoseBush, - Block::Peony, - Block::TallGrass, - Block::LargeFern, - Block::HangingRoots, - Block::PitcherPlant, - Block::Water, - Block::Seagrass, - Block::TallSeagrass, - Block::BrownMushroom, - Block::RedMushroom, - Block::BrownMushroomBlock, - Block::RedMushroomBlock, - Block::WarpedRoots, - Block::NetherSprouts, - Block::CrimsonRoots, - Block::LeafLitter, - Block::ShortDryGrass, - Block::TallDryGrass, - Block::Bush, - Block::FireflyBush, - Block::JungleLeaves, - Block::OakLeaves, - Block::SpruceLeaves, - Block::PaleOakLeaves, - Block::DarkOakLeaves, - Block::AcaciaLeaves, - Block::BirchLeaves, - Block::AzaleaLeaves, - Block::FloweringAzaleaLeaves, - Block::MangroveLeaves, - Block::CherryLeaves, - Block::Dandelion, - Block::OpenEyeblossom, - Block::Poppy, - Block::BlueOrchid, - Block::Allium, - Block::AzureBluet, - Block::RedTulip, - Block::OrangeTulip, - Block::WhiteTulip, - Block::PinkTulip, - Block::OxeyeDaisy, - Block::Cornflower, - Block::LilyOfTheValley, - Block::WitherRose, - Block::Torchflower, - Block::ClosedEyeblossom, - ]) -}); -pub static REPLACEABLE_BY_TREES: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::PaleMossCarpet, - Block::ShortGrass, - Block::Fern, - Block::DeadBush, - Block::Vine, - Block::GlowLichen, - Block::Sunflower, - Block::Lilac, - Block::RoseBush, - Block::Peony, - Block::TallGrass, - Block::LargeFern, - Block::HangingRoots, - Block::PitcherPlant, - Block::Water, - Block::Seagrass, - Block::TallSeagrass, - Block::Bush, - Block::FireflyBush, - Block::WarpedRoots, - Block::NetherSprouts, - Block::CrimsonRoots, - Block::LeafLitter, - Block::ShortDryGrass, - Block::TallDryGrass, - Block::JungleLeaves, - Block::OakLeaves, - Block::SpruceLeaves, - Block::PaleOakLeaves, - Block::DarkOakLeaves, - Block::AcaciaLeaves, - Block::BirchLeaves, - Block::AzaleaLeaves, - Block::FloweringAzaleaLeaves, - Block::MangroveLeaves, - Block::CherryLeaves, - Block::Dandelion, - Block::OpenEyeblossom, - Block::Poppy, - Block::BlueOrchid, - Block::Allium, - Block::AzureBluet, - Block::RedTulip, - Block::OrangeTulip, - Block::WhiteTulip, - Block::PinkTulip, - Block::OxeyeDaisy, - Block::Cornflower, - Block::LilyOfTheValley, - Block::WitherRose, - Block::Torchflower, - Block::ClosedEyeblossom, - ]) -}); -pub static SAND: LazyLock<HashSet<Block>> = - LazyLock::new(|| HashSet::from_iter([Block::Sand, Block::RedSand, Block::SuspiciousSand])); -pub static SAPLINGS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::OakSapling, - Block::SpruceSapling, - Block::BirchSapling, - Block::JungleSapling, - Block::AcaciaSapling, - Block::DarkOakSapling, - Block::PaleOakSapling, - Block::Azalea, - Block::FloweringAzalea, - Block::MangrovePropagule, - Block::CherrySapling, - ]) -}); -pub static SCULK_REPLACEABLE: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::Sand, - Block::RedSand, - Block::Gravel, - Block::SoulSand, - Block::SoulSoil, - Block::Calcite, - Block::SmoothBasalt, - Block::Clay, - Block::DripstoneBlock, - Block::EndStone, - Block::RedSandstone, - Block::Sandstone, - Block::Stone, - Block::Granite, - Block::Diorite, - Block::Andesite, - Block::Tuff, - Block::Deepslate, - Block::Dirt, - Block::GrassBlock, - Block::Podzol, - Block::CoarseDirt, - Block::Mycelium, - Block::RootedDirt, - Block::MossBlock, - Block::PaleMossBlock, - Block::Mud, - Block::MuddyMangroveRoots, - Block::Terracotta, - Block::WhiteTerracotta, - Block::OrangeTerracotta, - Block::MagentaTerracotta, - Block::LightBlueTerracotta, - Block::YellowTerracotta, - Block::LimeTerracotta, - Block::PinkTerracotta, - Block::GrayTerracotta, - Block::LightGrayTerracotta, - Block::CyanTerracotta, - Block::PurpleTerracotta, - Block::BlueTerracotta, - Block::BrownTerracotta, - Block::GreenTerracotta, - Block::RedTerracotta, - Block::BlackTerracotta, - Block::CrimsonNylium, - Block::WarpedNylium, - Block::Netherrack, - Block::Basalt, - Block::Blackstone, - ]) -}); -pub static SCULK_REPLACEABLE_WORLD_GEN: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::DeepslateBricks, - Block::DeepslateTiles, - Block::CobbledDeepslate, - Block::CrackedDeepslateBricks, - Block::CrackedDeepslateTiles, - Block::PolishedDeepslate, - Block::Sand, - Block::RedSand, - Block::Gravel, - Block::SoulSand, - Block::SoulSoil, - Block::Calcite, - Block::SmoothBasalt, - Block::Clay, - Block::DripstoneBlock, - Block::EndStone, - Block::RedSandstone, - Block::Sandstone, - Block::Stone, - Block::Granite, - Block::Diorite, - Block::Andesite, - Block::Tuff, - Block::Deepslate, - Block::Dirt, - Block::GrassBlock, - Block::Podzol, - Block::CoarseDirt, - Block::Mycelium, - Block::RootedDirt, - Block::MossBlock, - Block::PaleMossBlock, - Block::Mud, - Block::MuddyMangroveRoots, - Block::Terracotta, - Block::WhiteTerracotta, - Block::OrangeTerracotta, - Block::MagentaTerracotta, - Block::LightBlueTerracotta, - Block::YellowTerracotta, - Block::LimeTerracotta, - Block::PinkTerracotta, - Block::GrayTerracotta, - Block::LightGrayTerracotta, - Block::CyanTerracotta, - Block::PurpleTerracotta, - Block::BlueTerracotta, - Block::BrownTerracotta, - Block::GreenTerracotta, - Block::RedTerracotta, - Block::BlackTerracotta, - Block::CrimsonNylium, - Block::WarpedNylium, - Block::Netherrack, - Block::Basalt, - Block::Blackstone, - ]) -}); -pub static SHULKER_BOXES: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::ShulkerBox, - Block::BlackShulkerBox, - Block::BlueShulkerBox, - Block::BrownShulkerBox, - Block::CyanShulkerBox, - Block::GrayShulkerBox, - Block::GreenShulkerBox, - Block::LightBlueShulkerBox, - Block::LightGrayShulkerBox, - Block::LimeShulkerBox, - Block::MagentaShulkerBox, - Block::OrangeShulkerBox, - Block::PinkShulkerBox, - Block::PurpleShulkerBox, - Block::RedShulkerBox, - Block::WhiteShulkerBox, - Block::YellowShulkerBox, - ]) -}); -pub static SIGNS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::OakSign, - Block::SpruceSign, - Block::BirchSign, - Block::AcaciaSign, - Block::JungleSign, - Block::DarkOakSign, - Block::PaleOakSign, - Block::CrimsonSign, - Block::WarpedSign, - Block::MangroveSign, - Block::BambooSign, - Block::CherrySign, - Block::OakWallSign, - Block::SpruceWallSign, - Block::BirchWallSign, - Block::AcaciaWallSign, - Block::JungleWallSign, - Block::DarkOakWallSign, - Block::PaleOakWallSign, - Block::CrimsonWallSign, - Block::WarpedWallSign, - Block::MangroveWallSign, - Block::BambooWallSign, - Block::CherryWallSign, - ]) -}); -pub static SLABS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::BambooMosaicSlab, - Block::StoneSlab, - Block::SmoothStoneSlab, - Block::StoneBrickSlab, - Block::SandstoneSlab, - Block::PurpurSlab, - Block::QuartzSlab, - Block::RedSandstoneSlab, - Block::BrickSlab, - Block::CobblestoneSlab, - Block::NetherBrickSlab, - Block::PetrifiedOakSlab, - Block::PrismarineSlab, - Block::PrismarineBrickSlab, - Block::DarkPrismarineSlab, - Block::PolishedGraniteSlab, - Block::SmoothRedSandstoneSlab, - Block::MossyStoneBrickSlab, - Block::PolishedDioriteSlab, - Block::MossyCobblestoneSlab, - Block::EndStoneBrickSlab, - Block::SmoothSandstoneSlab, - Block::SmoothQuartzSlab, - Block::GraniteSlab, - Block::AndesiteSlab, - Block::RedNetherBrickSlab, - Block::PolishedAndesiteSlab, - Block::DioriteSlab, - Block::CutSandstoneSlab, - Block::CutRedSandstoneSlab, - Block::BlackstoneSlab, - Block::PolishedBlackstoneBrickSlab, - Block::PolishedBlackstoneSlab, - Block::CobbledDeepslateSlab, - Block::PolishedDeepslateSlab, - Block::DeepslateTileSlab, - Block::DeepslateBrickSlab, - Block::WaxedWeatheredCutCopperSlab, - Block::WaxedExposedCutCopperSlab, - Block::WaxedCutCopperSlab, - Block::OxidizedCutCopperSlab, - Block::WeatheredCutCopperSlab, - Block::ExposedCutCopperSlab, - Block::CutCopperSlab, - Block::WaxedOxidizedCutCopperSlab, - Block::MudBrickSlab, - Block::TuffSlab, - Block::PolishedTuffSlab, - Block::TuffBrickSlab, - Block::ResinBrickSlab, - Block::OakSlab, - Block::SpruceSlab, - Block::BirchSlab, - Block::JungleSlab, - Block::AcaciaSlab, - Block::DarkOakSlab, - Block::PaleOakSlab, - Block::CrimsonSlab, - Block::WarpedSlab, - Block::MangroveSlab, - Block::BambooSlab, - Block::CherrySlab, - ]) -}); -pub static SMALL_DRIPLEAF_PLACEABLE: LazyLock<HashSet<Block>> = - LazyLock::new(|| HashSet::from_iter([Block::Clay, Block::MossBlock])); -pub static SMALL_FLOWERS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::Dandelion, - Block::OpenEyeblossom, - Block::Poppy, - Block::BlueOrchid, - Block::Allium, - Block::AzureBluet, - Block::RedTulip, - Block::OrangeTulip, - Block::WhiteTulip, - Block::PinkTulip, - Block::OxeyeDaisy, - Block::Cornflower, - Block::LilyOfTheValley, - Block::WitherRose, - Block::Torchflower, - Block::ClosedEyeblossom, - ]) -}); -pub static SMELTS_TO_GLASS: LazyLock<HashSet<Block>> = - LazyLock::new(|| HashSet::from_iter([Block::Sand, Block::RedSand])); -pub static SNAPS_GOAT_HORN: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::Stone, - Block::PackedIce, - Block::IronOre, - Block::CoalOre, - Block::CopperOre, - Block::EmeraldOre, - Block::AcaciaLog, - Block::BirchLog, - Block::OakLog, - Block::JungleLog, - Block::SpruceLog, - Block::DarkOakLog, - Block::PaleOakLog, - Block::MangroveLog, - Block::CherryLog, - ]) -}); -pub static SNIFFER_DIGGABLE_BLOCK: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::Dirt, - Block::GrassBlock, - Block::Podzol, - Block::CoarseDirt, - Block::RootedDirt, - Block::MossBlock, - Block::PaleMossBlock, - Block::Mud, - Block::MuddyMangroveRoots, - ]) -}); -pub static SNIFFER_EGG_HATCH_BOOST: LazyLock<HashSet<Block>> = - LazyLock::new(|| HashSet::from_iter([Block::MossBlock])); -pub static SNOW: LazyLock<HashSet<Block>> = - LazyLock::new(|| HashSet::from_iter([Block::Snow, Block::SnowBlock, Block::PowderSnow])); -pub static SNOW_LAYER_CAN_SURVIVE_ON: LazyLock<HashSet<Block>> = - LazyLock::new(|| HashSet::from_iter([Block::HoneyBlock, Block::SoulSand, Block::Mud])); -pub static SNOW_LAYER_CANNOT_SURVIVE_ON: LazyLock<HashSet<Block>> = - LazyLock::new(|| HashSet::from_iter([Block::Ice, Block::PackedIce, Block::Barrier])); -pub static SOUL_FIRE_BASE_BLOCKS: LazyLock<HashSet<Block>> = - LazyLock::new(|| HashSet::from_iter([Block::SoulSand, Block::SoulSoil])); -pub static SOUL_SPEED_BLOCKS: LazyLock<HashSet<Block>> = - LazyLock::new(|| HashSet::from_iter([Block::SoulSand, Block::SoulSoil])); -pub static SPRUCE_LOGS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::SpruceLog, - Block::SpruceWood, - Block::StrippedSpruceLog, - Block::StrippedSpruceWood, - ]) -}); -pub static STAIRS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::BambooMosaicStairs, - Block::CobblestoneStairs, - Block::SandstoneStairs, - Block::NetherBrickStairs, - Block::StoneBrickStairs, - Block::BrickStairs, - Block::PurpurStairs, - Block::QuartzStairs, - Block::RedSandstoneStairs, - Block::PrismarineBrickStairs, - Block::PrismarineStairs, - Block::DarkPrismarineStairs, - Block::PolishedGraniteStairs, - Block::SmoothRedSandstoneStairs, - Block::MossyStoneBrickStairs, - Block::PolishedDioriteStairs, - Block::MossyCobblestoneStairs, - Block::EndStoneBrickStairs, - Block::StoneStairs, - Block::SmoothSandstoneStairs, - Block::SmoothQuartzStairs, - Block::GraniteStairs, - Block::AndesiteStairs, - Block::RedNetherBrickStairs, - Block::PolishedAndesiteStairs, - Block::DioriteStairs, - Block::BlackstoneStairs, - Block::PolishedBlackstoneBrickStairs, - Block::PolishedBlackstoneStairs, - Block::CobbledDeepslateStairs, - Block::PolishedDeepslateStairs, - Block::DeepslateTileStairs, - Block::DeepslateBrickStairs, - Block::OxidizedCutCopperStairs, - Block::WeatheredCutCopperStairs, - Block::ExposedCutCopperStairs, - Block::CutCopperStairs, - Block::WaxedWeatheredCutCopperStairs, - Block::WaxedExposedCutCopperStairs, - Block::WaxedCutCopperStairs, - Block::WaxedOxidizedCutCopperStairs, - Block::MudBrickStairs, - Block::TuffStairs, - Block::PolishedTuffStairs, - Block::TuffBrickStairs, - Block::ResinBrickStairs, - Block::OakStairs, - Block::SpruceStairs, - Block::BirchStairs, - Block::JungleStairs, - Block::AcaciaStairs, - Block::DarkOakStairs, - Block::PaleOakStairs, - Block::CrimsonStairs, - Block::WarpedStairs, - Block::MangroveStairs, - Block::BambooStairs, - Block::CherryStairs, - ]) -}); -pub static STANDING_SIGNS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::OakSign, - Block::SpruceSign, - Block::BirchSign, - Block::AcaciaSign, - Block::JungleSign, - Block::DarkOakSign, - Block::PaleOakSign, - Block::CrimsonSign, - Block::WarpedSign, - Block::MangroveSign, - Block::BambooSign, - Block::CherrySign, - ]) -}); -pub static STONE_BRICKS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::StoneBricks, - Block::MossyStoneBricks, - Block::CrackedStoneBricks, - Block::ChiseledStoneBricks, - ]) -}); -pub static STONE_BUTTONS: LazyLock<HashSet<Block>> = - LazyLock::new(|| HashSet::from_iter([Block::StoneButton, Block::PolishedBlackstoneButton])); -pub static STONE_ORE_REPLACEABLES: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::Stone, - Block::Granite, - Block::Diorite, - Block::Andesite, - ]) -}); -pub static STONE_PRESSURE_PLATES: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::StonePressurePlate, - Block::PolishedBlackstonePressurePlate, - ]) -}); -pub static STRIDER_WARM_BLOCKS: LazyLock<HashSet<Block>> = - LazyLock::new(|| HashSet::from_iter([Block::Lava])); -pub static SWORD_EFFICIENT: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::Vine, - Block::GlowLichen, - Block::Pumpkin, - Block::CarvedPumpkin, - Block::JackOLantern, - Block::Melon, - Block::Cocoa, - Block::BigDripleaf, - Block::BigDripleafStem, - Block::ChorusPlant, - Block::ChorusFlower, - Block::JungleLeaves, - Block::OakLeaves, - Block::SpruceLeaves, - Block::PaleOakLeaves, - Block::DarkOakLeaves, - Block::AcaciaLeaves, - Block::BirchLeaves, - Block::AzaleaLeaves, - Block::FloweringAzaleaLeaves, - Block::MangroveLeaves, - Block::CherryLeaves, - ]) -}); -pub static SWORD_INSTANTLY_MINES: LazyLock<HashSet<Block>> = - LazyLock::new(|| HashSet::from_iter([Block::Bamboo, Block::BambooSapling])); -pub static TERRACOTTA: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::Terracotta, - Block::WhiteTerracotta, - Block::OrangeTerracotta, - Block::MagentaTerracotta, - Block::LightBlueTerracotta, - Block::YellowTerracotta, - Block::LimeTerracotta, - Block::PinkTerracotta, - Block::GrayTerracotta, - Block::LightGrayTerracotta, - Block::CyanTerracotta, - Block::PurpleTerracotta, - Block::BlueTerracotta, - Block::BrownTerracotta, - Block::GreenTerracotta, - Block::RedTerracotta, - Block::BlackTerracotta, - ]) -}); -pub static TRAIL_RUINS_REPLACEABLE: LazyLock<HashSet<Block>> = - LazyLock::new(|| HashSet::from_iter([Block::Gravel])); -pub static TRAPDOORS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::IronTrapdoor, - Block::CopperTrapdoor, - Block::ExposedCopperTrapdoor, - Block::WeatheredCopperTrapdoor, - Block::OxidizedCopperTrapdoor, - Block::WaxedCopperTrapdoor, - Block::WaxedExposedCopperTrapdoor, - Block::WaxedWeatheredCopperTrapdoor, - Block::WaxedOxidizedCopperTrapdoor, - Block::AcaciaTrapdoor, - Block::BirchTrapdoor, - Block::DarkOakTrapdoor, - Block::PaleOakTrapdoor, - Block::JungleTrapdoor, - Block::OakTrapdoor, - Block::SpruceTrapdoor, - Block::CrimsonTrapdoor, - Block::WarpedTrapdoor, - Block::MangroveTrapdoor, - Block::BambooTrapdoor, - Block::CherryTrapdoor, - ]) -}); -pub static TRIGGERS_AMBIENT_DESERT_DRY_VEGETATION_BLOCK_SOUNDS: LazyLock<HashSet<Block>> = +pub static ACACIA_LOGS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::AcaciaLog, + BlockKind::StrippedAcaciaLog, + BlockKind::AcaciaWood, + BlockKind::StrippedAcaciaWood, + ]) +}); +pub static AIR: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![BlockKind::Air, BlockKind::VoidAir, BlockKind::CaveAir]) +}); +pub static ALL_HANGING_SIGNS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::OakHangingSign, + BlockKind::SpruceHangingSign, + BlockKind::BirchHangingSign, + BlockKind::AcaciaHangingSign, + BlockKind::CherryHangingSign, + BlockKind::JungleHangingSign, + BlockKind::DarkOakHangingSign, + BlockKind::PaleOakHangingSign, + BlockKind::CrimsonHangingSign, + BlockKind::WarpedHangingSign, + BlockKind::MangroveHangingSign, + BlockKind::BambooHangingSign, + BlockKind::OakWallHangingSign, + BlockKind::SpruceWallHangingSign, + BlockKind::BirchWallHangingSign, + BlockKind::AcaciaWallHangingSign, + BlockKind::CherryWallHangingSign, + BlockKind::JungleWallHangingSign, + BlockKind::DarkOakWallHangingSign, + BlockKind::PaleOakWallHangingSign, + BlockKind::MangroveWallHangingSign, + BlockKind::CrimsonWallHangingSign, + BlockKind::WarpedWallHangingSign, + BlockKind::BambooWallHangingSign, + ]) +}); +pub static ALL_SIGNS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::OakSign, + BlockKind::SpruceSign, + BlockKind::BirchSign, + BlockKind::AcaciaSign, + BlockKind::CherrySign, + BlockKind::JungleSign, + BlockKind::DarkOakSign, + BlockKind::PaleOakSign, + BlockKind::MangroveSign, + BlockKind::BambooSign, + BlockKind::OakWallSign, + BlockKind::SpruceWallSign, + BlockKind::BirchWallSign, + BlockKind::AcaciaWallSign, + BlockKind::CherryWallSign, + BlockKind::JungleWallSign, + BlockKind::DarkOakWallSign, + BlockKind::PaleOakWallSign, + BlockKind::MangroveWallSign, + BlockKind::BambooWallSign, + BlockKind::OakHangingSign, + BlockKind::SpruceHangingSign, + BlockKind::BirchHangingSign, + BlockKind::AcaciaHangingSign, + BlockKind::CherryHangingSign, + BlockKind::JungleHangingSign, + BlockKind::DarkOakHangingSign, + BlockKind::PaleOakHangingSign, + BlockKind::CrimsonHangingSign, + BlockKind::WarpedHangingSign, + BlockKind::MangroveHangingSign, + BlockKind::BambooHangingSign, + BlockKind::OakWallHangingSign, + BlockKind::SpruceWallHangingSign, + BlockKind::BirchWallHangingSign, + BlockKind::AcaciaWallHangingSign, + BlockKind::CherryWallHangingSign, + BlockKind::JungleWallHangingSign, + BlockKind::DarkOakWallHangingSign, + BlockKind::PaleOakWallHangingSign, + BlockKind::MangroveWallHangingSign, + BlockKind::CrimsonWallHangingSign, + BlockKind::WarpedWallHangingSign, + BlockKind::BambooWallHangingSign, + BlockKind::CrimsonSign, + BlockKind::WarpedSign, + BlockKind::CrimsonWallSign, + BlockKind::WarpedWallSign, + ]) +}); +pub static ANCIENT_CITY_REPLACEABLE: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::GrayWool, + BlockKind::Deepslate, + BlockKind::CobbledDeepslate, + BlockKind::DeepslateTiles, + BlockKind::DeepslateTileSlab, + BlockKind::DeepslateTileWall, + BlockKind::DeepslateBricks, + BlockKind::DeepslateBrickStairs, + BlockKind::DeepslateBrickSlab, + BlockKind::DeepslateBrickWall, + BlockKind::CrackedDeepslateBricks, + BlockKind::CrackedDeepslateTiles, + ]) +}); +pub static ANIMALS_SPAWNABLE_ON: LazyLock<RegistryTag<BlockKind>> = + LazyLock::new(|| RegistryTag::new(vec![BlockKind::GrassBlock])); +pub static ANVIL: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::Anvil, + BlockKind::ChippedAnvil, + BlockKind::DamagedAnvil, + ]) +}); +pub static ARMADILLO_SPAWNABLE_ON: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::GrassBlock, + BlockKind::CoarseDirt, + BlockKind::RedSand, + BlockKind::WhiteTerracotta, + BlockKind::OrangeTerracotta, + BlockKind::YellowTerracotta, + BlockKind::LightGrayTerracotta, + BlockKind::BrownTerracotta, + BlockKind::RedTerracotta, + BlockKind::Terracotta, + ]) +}); +pub static AXOLOTLS_SPAWNABLE_ON: LazyLock<RegistryTag<BlockKind>> = + LazyLock::new(|| RegistryTag::new(vec![BlockKind::Clay])); +pub static AZALEA_GROWS_ON: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::GrassBlock, + BlockKind::Dirt, + BlockKind::CoarseDirt, + BlockKind::Podzol, + BlockKind::Sand, + BlockKind::SuspiciousSand, + BlockKind::RedSand, + BlockKind::MuddyMangroveRoots, + BlockKind::SnowBlock, + BlockKind::Mycelium, + BlockKind::WhiteTerracotta, + BlockKind::OrangeTerracotta, + BlockKind::MagentaTerracotta, + BlockKind::LightBlueTerracotta, + BlockKind::YellowTerracotta, + BlockKind::LimeTerracotta, + BlockKind::PinkTerracotta, + BlockKind::GrayTerracotta, + BlockKind::LightGrayTerracotta, + BlockKind::CyanTerracotta, + BlockKind::PurpleTerracotta, + BlockKind::BlueTerracotta, + BlockKind::BrownTerracotta, + BlockKind::GreenTerracotta, + BlockKind::RedTerracotta, + BlockKind::BlackTerracotta, + BlockKind::Terracotta, + BlockKind::PowderSnow, + BlockKind::MossBlock, + BlockKind::RootedDirt, + BlockKind::Mud, + BlockKind::PaleMossBlock, + ]) +}); +pub static AZALEA_ROOT_REPLACEABLE: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::Stone, + BlockKind::Granite, + BlockKind::Diorite, + BlockKind::Andesite, + BlockKind::GrassBlock, + BlockKind::Dirt, + BlockKind::CoarseDirt, + BlockKind::Podzol, + BlockKind::Sand, + BlockKind::RedSand, + BlockKind::Gravel, + BlockKind::MuddyMangroveRoots, + BlockKind::SnowBlock, + BlockKind::Clay, + BlockKind::Mycelium, + BlockKind::WhiteTerracotta, + BlockKind::OrangeTerracotta, + BlockKind::MagentaTerracotta, + BlockKind::LightBlueTerracotta, + BlockKind::YellowTerracotta, + BlockKind::LimeTerracotta, + BlockKind::PinkTerracotta, + BlockKind::GrayTerracotta, + BlockKind::LightGrayTerracotta, + BlockKind::CyanTerracotta, + BlockKind::PurpleTerracotta, + BlockKind::BlueTerracotta, + BlockKind::BrownTerracotta, + BlockKind::GreenTerracotta, + BlockKind::RedTerracotta, + BlockKind::BlackTerracotta, + BlockKind::Terracotta, + BlockKind::Tuff, + BlockKind::PowderSnow, + BlockKind::MossBlock, + BlockKind::RootedDirt, + BlockKind::Mud, + BlockKind::Deepslate, + BlockKind::PaleMossBlock, + ]) +}); +pub static BADLANDS_TERRACOTTA: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::WhiteTerracotta, + BlockKind::OrangeTerracotta, + BlockKind::YellowTerracotta, + BlockKind::LightGrayTerracotta, + BlockKind::BrownTerracotta, + BlockKind::RedTerracotta, + BlockKind::Terracotta, + ]) +}); +pub static BAMBOO_BLOCKS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![BlockKind::BambooBlock, BlockKind::StrippedBambooBlock]) +}); +pub static BAMBOO_PLANTABLE_ON: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::GrassBlock, + BlockKind::Dirt, + BlockKind::CoarseDirt, + BlockKind::Podzol, + BlockKind::Sand, + BlockKind::SuspiciousSand, + BlockKind::RedSand, + BlockKind::Gravel, + BlockKind::SuspiciousGravel, + BlockKind::MuddyMangroveRoots, + BlockKind::Mycelium, + BlockKind::BambooSapling, + BlockKind::Bamboo, + BlockKind::MossBlock, + BlockKind::RootedDirt, + BlockKind::Mud, + BlockKind::PaleMossBlock, + ]) +}); +pub static BANNERS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::WhiteBanner, + BlockKind::OrangeBanner, + BlockKind::MagentaBanner, + BlockKind::LightBlueBanner, + BlockKind::YellowBanner, + BlockKind::LimeBanner, + BlockKind::PinkBanner, + BlockKind::GrayBanner, + BlockKind::LightGrayBanner, + BlockKind::CyanBanner, + BlockKind::PurpleBanner, + BlockKind::BlueBanner, + BlockKind::BrownBanner, + BlockKind::GreenBanner, + BlockKind::RedBanner, + BlockKind::BlackBanner, + BlockKind::WhiteWallBanner, + BlockKind::OrangeWallBanner, + BlockKind::MagentaWallBanner, + BlockKind::LightBlueWallBanner, + BlockKind::YellowWallBanner, + BlockKind::LimeWallBanner, + BlockKind::PinkWallBanner, + BlockKind::GrayWallBanner, + BlockKind::LightGrayWallBanner, + BlockKind::CyanWallBanner, + BlockKind::PurpleWallBanner, + BlockKind::BlueWallBanner, + BlockKind::BrownWallBanner, + BlockKind::GreenWallBanner, + BlockKind::RedWallBanner, + BlockKind::BlackWallBanner, + ]) +}); +pub static BARS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::IronBars, + BlockKind::CopperBars, + BlockKind::ExposedCopperBars, + BlockKind::WeatheredCopperBars, + BlockKind::OxidizedCopperBars, + BlockKind::WaxedCopperBars, + BlockKind::WaxedExposedCopperBars, + BlockKind::WaxedWeatheredCopperBars, + BlockKind::WaxedOxidizedCopperBars, + ]) +}); +pub static BASE_STONE_NETHER: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::Netherrack, + BlockKind::Basalt, + BlockKind::Blackstone, + ]) +}); +pub static BASE_STONE_OVERWORLD: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::Stone, + BlockKind::Granite, + BlockKind::Diorite, + BlockKind::Andesite, + BlockKind::Tuff, + BlockKind::Deepslate, + ]) +}); +pub static BATS_SPAWNABLE_ON: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::Stone, + BlockKind::Granite, + BlockKind::Diorite, + BlockKind::Andesite, + BlockKind::Tuff, + BlockKind::Deepslate, + ]) +}); +pub static BEACON_BASE_BLOCKS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::GoldBlock, + BlockKind::IronBlock, + BlockKind::DiamondBlock, + BlockKind::EmeraldBlock, + BlockKind::NetheriteBlock, + ]) +}); +pub static BEDS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::WhiteBed, + BlockKind::OrangeBed, + BlockKind::MagentaBed, + BlockKind::LightBlueBed, + BlockKind::YellowBed, + BlockKind::LimeBed, + BlockKind::PinkBed, + BlockKind::GrayBed, + BlockKind::LightGrayBed, + BlockKind::CyanBed, + BlockKind::PurpleBed, + BlockKind::BlueBed, + BlockKind::BrownBed, + BlockKind::GreenBed, + BlockKind::RedBed, + BlockKind::BlackBed, + ]) +}); +pub static BEE_ATTRACTIVE: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::MangrovePropagule, + BlockKind::CherryLeaves, + BlockKind::FloweringAzaleaLeaves, + BlockKind::Dandelion, + BlockKind::Torchflower, + BlockKind::Poppy, + BlockKind::BlueOrchid, + BlockKind::Allium, + BlockKind::AzureBluet, + BlockKind::RedTulip, + BlockKind::OrangeTulip, + BlockKind::WhiteTulip, + BlockKind::PinkTulip, + BlockKind::OxeyeDaisy, + BlockKind::Cornflower, + BlockKind::WitherRose, + BlockKind::LilyOfTheValley, + BlockKind::CactusFlower, + BlockKind::Sunflower, + BlockKind::Lilac, + BlockKind::RoseBush, + BlockKind::Peony, + BlockKind::ChorusFlower, + BlockKind::PitcherPlant, + BlockKind::SporeBlossom, + BlockKind::FloweringAzalea, + BlockKind::PinkPetals, + BlockKind::Wildflowers, + BlockKind::OpenEyeblossom, + ]) +}); +pub static BEE_GROWABLES: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::Wheat, + BlockKind::PumpkinStem, + BlockKind::MelonStem, + BlockKind::Carrots, + BlockKind::Potatoes, + BlockKind::TorchflowerCrop, + BlockKind::PitcherCrop, + BlockKind::Beetroots, + BlockKind::SweetBerryBush, + BlockKind::CaveVines, + BlockKind::CaveVinesPlant, + ]) +}); +pub static BEEHIVES: LazyLock<RegistryTag<BlockKind>> = + LazyLock::new(|| RegistryTag::new(vec![BlockKind::BeeNest, BlockKind::Beehive])); +pub static BIG_DRIPLEAF_PLACEABLE: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::GrassBlock, + BlockKind::Dirt, + BlockKind::CoarseDirt, + BlockKind::Podzol, + BlockKind::MuddyMangroveRoots, + BlockKind::Farmland, + BlockKind::Clay, + BlockKind::Mycelium, + BlockKind::MossBlock, + BlockKind::MossBlock, + BlockKind::RootedDirt, + BlockKind::Mud, + ]) +}); +pub static BIRCH_LOGS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::BirchLog, + BlockKind::StrippedBirchLog, + BlockKind::BirchWood, + BlockKind::StrippedBirchWood, + ]) +}); +pub static BLOCKS_WIND_CHARGE_EXPLOSIONS: LazyLock<RegistryTag<BlockKind>> = + LazyLock::new(|| RegistryTag::new(vec![BlockKind::Bedrock, BlockKind::Barrier])); +pub static BUTTONS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::StoneButton, + BlockKind::OakButton, + BlockKind::SpruceButton, + BlockKind::BirchButton, + BlockKind::JungleButton, + BlockKind::AcaciaButton, + BlockKind::CherryButton, + BlockKind::DarkOakButton, + BlockKind::PaleOakButton, + BlockKind::MangroveButton, + BlockKind::BambooButton, + BlockKind::CrimsonButton, + BlockKind::WarpedButton, + BlockKind::PolishedBlackstoneButton, + ]) +}); +pub static CAMEL_SAND_STEP_SOUND_BLOCKS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::Sand, + BlockKind::SuspiciousSand, + BlockKind::RedSand, + BlockKind::WhiteConcretePowder, + BlockKind::OrangeConcretePowder, + BlockKind::MagentaConcretePowder, + BlockKind::LightBlueConcretePowder, + BlockKind::YellowConcretePowder, + BlockKind::LimeConcretePowder, + BlockKind::PinkConcretePowder, + BlockKind::GrayConcretePowder, + BlockKind::LightGrayConcretePowder, + BlockKind::CyanConcretePowder, + BlockKind::PurpleConcretePowder, + BlockKind::BlueConcretePowder, + BlockKind::BrownConcretePowder, + BlockKind::GreenConcretePowder, + BlockKind::RedConcretePowder, + BlockKind::BlackConcretePowder, + ]) +}); +pub static CAMELS_SPAWNABLE_ON: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::Sand, + BlockKind::SuspiciousSand, + BlockKind::RedSand, + ]) +}); +pub static CAMPFIRES: LazyLock<RegistryTag<BlockKind>> = + LazyLock::new(|| RegistryTag::new(vec![BlockKind::Campfire, BlockKind::SoulCampfire])); +pub static CAN_GLIDE_THROUGH: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::Vine, + BlockKind::WeepingVines, + BlockKind::WeepingVinesPlant, + BlockKind::TwistingVines, + BlockKind::TwistingVinesPlant, + BlockKind::CaveVines, + BlockKind::CaveVinesPlant, + ]) +}); +pub static CANDLE_CAKES: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::CandleCake, + BlockKind::WhiteCandleCake, + BlockKind::OrangeCandleCake, + BlockKind::MagentaCandleCake, + BlockKind::LightBlueCandleCake, + BlockKind::YellowCandleCake, + BlockKind::LimeCandleCake, + BlockKind::PinkCandleCake, + BlockKind::GrayCandleCake, + BlockKind::LightGrayCandleCake, + BlockKind::CyanCandleCake, + BlockKind::PurpleCandleCake, + BlockKind::BlueCandleCake, + BlockKind::BrownCandleCake, + BlockKind::GreenCandleCake, + BlockKind::RedCandleCake, + BlockKind::BlackCandleCake, + ]) +}); +pub static CANDLES: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::Candle, + BlockKind::WhiteCandle, + BlockKind::OrangeCandle, + BlockKind::MagentaCandle, + BlockKind::LightBlueCandle, + BlockKind::YellowCandle, + BlockKind::LimeCandle, + BlockKind::PinkCandle, + BlockKind::GrayCandle, + BlockKind::LightGrayCandle, + BlockKind::CyanCandle, + BlockKind::PurpleCandle, + BlockKind::BlueCandle, + BlockKind::BrownCandle, + BlockKind::GreenCandle, + BlockKind::RedCandle, + BlockKind::BlackCandle, + ]) +}); +pub static CAULDRONS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::Cauldron, + BlockKind::WaterCauldron, + BlockKind::LavaCauldron, + BlockKind::PowderSnowCauldron, + ]) +}); +pub static CAVE_VINES: LazyLock<RegistryTag<BlockKind>> = + LazyLock::new(|| RegistryTag::new(vec![BlockKind::CaveVines, BlockKind::CaveVinesPlant])); +pub static CEILING_HANGING_SIGNS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::OakHangingSign, + BlockKind::SpruceHangingSign, + BlockKind::BirchHangingSign, + BlockKind::AcaciaHangingSign, + BlockKind::CherryHangingSign, + BlockKind::JungleHangingSign, + BlockKind::DarkOakHangingSign, + BlockKind::PaleOakHangingSign, + BlockKind::CrimsonHangingSign, + BlockKind::WarpedHangingSign, + BlockKind::MangroveHangingSign, + BlockKind::BambooHangingSign, + ]) +}); +pub static CHAINS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::IronChain, + BlockKind::CopperChain, + BlockKind::ExposedCopperChain, + BlockKind::WeatheredCopperChain, + BlockKind::OxidizedCopperChain, + BlockKind::WaxedCopperChain, + BlockKind::WaxedExposedCopperChain, + BlockKind::WaxedWeatheredCopperChain, + BlockKind::WaxedOxidizedCopperChain, + ]) +}); +pub static CHERRY_LOGS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::CherryLog, + BlockKind::StrippedCherryLog, + BlockKind::CherryWood, + BlockKind::StrippedCherryWood, + ]) +}); +pub static CLIMBABLE: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::Ladder, + BlockKind::Vine, + BlockKind::Scaffolding, + BlockKind::WeepingVines, + BlockKind::WeepingVinesPlant, + BlockKind::TwistingVines, + BlockKind::TwistingVinesPlant, + BlockKind::CaveVines, + BlockKind::CaveVinesPlant, + ]) +}); +pub static COAL_ORES: LazyLock<RegistryTag<BlockKind>> = + LazyLock::new(|| RegistryTag::new(vec![BlockKind::CoalOre, BlockKind::DeepslateCoalOre])); +pub static COMBINATION_STEP_SOUND_BLOCKS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::Snow, + BlockKind::ResinClump, + BlockKind::WhiteCarpet, + BlockKind::OrangeCarpet, + BlockKind::MagentaCarpet, + BlockKind::LightBlueCarpet, + BlockKind::YellowCarpet, + BlockKind::LimeCarpet, + BlockKind::PinkCarpet, + BlockKind::GrayCarpet, + BlockKind::LightGrayCarpet, + BlockKind::CyanCarpet, + BlockKind::PurpleCarpet, + BlockKind::BlueCarpet, + BlockKind::BrownCarpet, + BlockKind::GreenCarpet, + BlockKind::RedCarpet, + BlockKind::BlackCarpet, + BlockKind::WarpedRoots, + BlockKind::NetherSprouts, + BlockKind::CrimsonRoots, + BlockKind::MossCarpet, + BlockKind::PaleMossCarpet, + ]) +}); +pub static COMPLETES_FIND_TREE_TUTORIAL: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::PaleOakWood, + BlockKind::OakLog, + BlockKind::SpruceLog, + BlockKind::BirchLog, + BlockKind::JungleLog, + BlockKind::AcaciaLog, + BlockKind::CherryLog, + BlockKind::DarkOakLog, + BlockKind::PaleOakLog, + BlockKind::MangroveLog, + BlockKind::StrippedSpruceLog, + BlockKind::StrippedBirchLog, + BlockKind::StrippedJungleLog, + BlockKind::StrippedAcaciaLog, + BlockKind::StrippedCherryLog, + BlockKind::StrippedDarkOakLog, + BlockKind::StrippedPaleOakLog, + BlockKind::StrippedOakLog, + BlockKind::StrippedMangroveLog, + BlockKind::OakWood, + BlockKind::SpruceWood, + BlockKind::BirchWood, + BlockKind::JungleWood, + BlockKind::AcaciaWood, + BlockKind::CherryWood, + BlockKind::DarkOakWood, + BlockKind::MangroveWood, + BlockKind::StrippedOakWood, + BlockKind::StrippedSpruceWood, + BlockKind::StrippedBirchWood, + BlockKind::StrippedJungleWood, + BlockKind::StrippedAcaciaWood, + BlockKind::StrippedCherryWood, + BlockKind::StrippedDarkOakWood, + BlockKind::StrippedPaleOakWood, + BlockKind::StrippedMangroveWood, + BlockKind::OakLeaves, + BlockKind::SpruceLeaves, + BlockKind::BirchLeaves, + BlockKind::JungleLeaves, + BlockKind::AcaciaLeaves, + BlockKind::CherryLeaves, + BlockKind::DarkOakLeaves, + BlockKind::PaleOakLeaves, + BlockKind::MangroveLeaves, + BlockKind::AzaleaLeaves, + BlockKind::FloweringAzaleaLeaves, + BlockKind::NetherWartBlock, + BlockKind::WarpedStem, + BlockKind::StrippedWarpedStem, + BlockKind::WarpedHyphae, + BlockKind::StrippedWarpedHyphae, + BlockKind::WarpedWartBlock, + BlockKind::CrimsonStem, + BlockKind::StrippedCrimsonStem, + BlockKind::CrimsonHyphae, + BlockKind::StrippedCrimsonHyphae, + ]) +}); +pub static CONCRETE_POWDER: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::WhiteConcretePowder, + BlockKind::OrangeConcretePowder, + BlockKind::MagentaConcretePowder, + BlockKind::LightBlueConcretePowder, + BlockKind::YellowConcretePowder, + BlockKind::LimeConcretePowder, + BlockKind::PinkConcretePowder, + BlockKind::GrayConcretePowder, + BlockKind::LightGrayConcretePowder, + BlockKind::CyanConcretePowder, + BlockKind::PurpleConcretePowder, + BlockKind::BlueConcretePowder, + BlockKind::BrownConcretePowder, + BlockKind::GreenConcretePowder, + BlockKind::RedConcretePowder, + BlockKind::BlackConcretePowder, + ]) +}); +pub static CONVERTABLE_TO_MUD: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::Dirt, + BlockKind::CoarseDirt, + BlockKind::RootedDirt, + ]) +}); +pub static COPPER: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::CopperBlock, + BlockKind::ExposedCopper, + BlockKind::WeatheredCopper, + BlockKind::OxidizedCopper, + BlockKind::WaxedCopperBlock, + BlockKind::WaxedWeatheredCopper, + BlockKind::WaxedExposedCopper, + BlockKind::WaxedOxidizedCopper, + ]) +}); +pub static COPPER_CHESTS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::CopperChest, + BlockKind::ExposedCopperChest, + BlockKind::WeatheredCopperChest, + BlockKind::OxidizedCopperChest, + BlockKind::WaxedCopperChest, + BlockKind::WaxedExposedCopperChest, + BlockKind::WaxedWeatheredCopperChest, + BlockKind::WaxedOxidizedCopperChest, + ]) +}); +pub static COPPER_GOLEM_STATUES: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::CopperGolemStatue, + BlockKind::ExposedCopperGolemStatue, + BlockKind::WeatheredCopperGolemStatue, + BlockKind::OxidizedCopperGolemStatue, + BlockKind::WaxedCopperGolemStatue, + BlockKind::WaxedExposedCopperGolemStatue, + BlockKind::WaxedWeatheredCopperGolemStatue, + BlockKind::WaxedOxidizedCopperGolemStatue, + ]) +}); +pub static COPPER_ORES: LazyLock<RegistryTag<BlockKind>> = + LazyLock::new(|| RegistryTag::new(vec![BlockKind::CopperOre, BlockKind::DeepslateCopperOre])); +pub static CORAL_BLOCKS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::TubeCoralBlock, + BlockKind::BrainCoralBlock, + BlockKind::BubbleCoralBlock, + BlockKind::FireCoralBlock, + BlockKind::HornCoralBlock, + ]) +}); +pub static CORAL_PLANTS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::TubeCoral, + BlockKind::BrainCoral, + BlockKind::BubbleCoral, + BlockKind::FireCoral, + BlockKind::HornCoral, + ]) +}); +pub static CORALS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::TubeCoral, + BlockKind::BrainCoral, + BlockKind::BubbleCoral, + BlockKind::FireCoral, + BlockKind::HornCoral, + BlockKind::TubeCoralFan, + BlockKind::BrainCoralFan, + BlockKind::BubbleCoralFan, + BlockKind::FireCoralFan, + BlockKind::HornCoralFan, + ]) +}); +pub static CRIMSON_STEMS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::CrimsonStem, + BlockKind::StrippedCrimsonStem, + BlockKind::CrimsonHyphae, + BlockKind::StrippedCrimsonHyphae, + ]) +}); +pub static CROPS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::Wheat, + BlockKind::PumpkinStem, + BlockKind::MelonStem, + BlockKind::Carrots, + BlockKind::Potatoes, + BlockKind::TorchflowerCrop, + BlockKind::PitcherCrop, + BlockKind::Beetroots, + ]) +}); +pub static CRYSTAL_SOUND_BLOCKS: LazyLock<RegistryTag<BlockKind>> = + LazyLock::new(|| RegistryTag::new(vec![BlockKind::AmethystBlock, BlockKind::BuddingAmethyst])); +pub static DAMPENS_VIBRATIONS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::WhiteWool, + BlockKind::OrangeWool, + BlockKind::MagentaWool, + BlockKind::LightBlueWool, + BlockKind::YellowWool, + BlockKind::LimeWool, + BlockKind::PinkWool, + BlockKind::GrayWool, + BlockKind::LightGrayWool, + BlockKind::CyanWool, + BlockKind::PurpleWool, + BlockKind::BlueWool, + BlockKind::BrownWool, + BlockKind::GreenWool, + BlockKind::RedWool, + BlockKind::BlackWool, + BlockKind::WhiteCarpet, + BlockKind::OrangeCarpet, + BlockKind::MagentaCarpet, + BlockKind::LightBlueCarpet, + BlockKind::YellowCarpet, + BlockKind::LimeCarpet, + BlockKind::PinkCarpet, + BlockKind::GrayCarpet, + BlockKind::LightGrayCarpet, + BlockKind::CyanCarpet, + BlockKind::PurpleCarpet, + BlockKind::BlueCarpet, + BlockKind::BrownCarpet, + BlockKind::GreenCarpet, + BlockKind::RedCarpet, + BlockKind::BlackCarpet, + ]) +}); +pub static DARK_OAK_LOGS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::DarkOakLog, + BlockKind::StrippedDarkOakLog, + BlockKind::DarkOakWood, + BlockKind::StrippedDarkOakWood, + ]) +}); +pub static DEEPSLATE_ORE_REPLACEABLES: LazyLock<RegistryTag<BlockKind>> = + LazyLock::new(|| RegistryTag::new(vec![BlockKind::Tuff, BlockKind::Deepslate])); +pub static DIAMOND_ORES: LazyLock<RegistryTag<BlockKind>> = + LazyLock::new(|| RegistryTag::new(vec![BlockKind::DiamondOre, BlockKind::DeepslateDiamondOre])); +pub static DIRT: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::GrassBlock, + BlockKind::Dirt, + BlockKind::CoarseDirt, + BlockKind::Podzol, + BlockKind::MuddyMangroveRoots, + BlockKind::Mycelium, + BlockKind::MossBlock, + BlockKind::RootedDirt, + BlockKind::Mud, + BlockKind::PaleMossBlock, + ]) +}); +pub static DOES_NOT_BLOCK_HOPPERS: LazyLock<RegistryTag<BlockKind>> = + LazyLock::new(|| RegistryTag::new(vec![BlockKind::BeeNest, BlockKind::Beehive])); +pub static DOORS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::OakDoor, + BlockKind::IronDoor, + BlockKind::SpruceDoor, + BlockKind::BirchDoor, + BlockKind::JungleDoor, + BlockKind::AcaciaDoor, + BlockKind::CherryDoor, + BlockKind::DarkOakDoor, + BlockKind::PaleOakDoor, + BlockKind::MangroveDoor, + BlockKind::BambooDoor, + BlockKind::CrimsonDoor, + BlockKind::WarpedDoor, + BlockKind::CopperDoor, + BlockKind::ExposedCopperDoor, + BlockKind::OxidizedCopperDoor, + BlockKind::WeatheredCopperDoor, + BlockKind::WaxedCopperDoor, + BlockKind::WaxedExposedCopperDoor, + BlockKind::WaxedOxidizedCopperDoor, + BlockKind::WaxedWeatheredCopperDoor, + ]) +}); +pub static DRAGON_IMMUNE: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::Bedrock, + BlockKind::MovingPiston, + BlockKind::Obsidian, + BlockKind::IronBars, + BlockKind::EndPortal, + BlockKind::EndPortalFrame, + BlockKind::EndStone, + BlockKind::CommandBlock, + BlockKind::Barrier, + BlockKind::EndGateway, + BlockKind::RepeatingCommandBlock, + BlockKind::ChainCommandBlock, + BlockKind::StructureBlock, + BlockKind::Jigsaw, + BlockKind::TestBlock, + BlockKind::TestInstanceBlock, + BlockKind::CryingObsidian, + BlockKind::RespawnAnchor, + BlockKind::ReinforcedDeepslate, + ]) +}); +pub static DRAGON_TRANSPARENT: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![BlockKind::Fire, BlockKind::SoulFire, BlockKind::Light]) +}); +pub static DRIPSTONE_REPLACEABLE_BLOCKS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::Stone, + BlockKind::Granite, + BlockKind::Diorite, + BlockKind::Andesite, + BlockKind::Tuff, + BlockKind::Deepslate, + ]) +}); +pub static DRY_VEGETATION_MAY_PLACE_ON: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::GrassBlock, + BlockKind::Dirt, + BlockKind::CoarseDirt, + BlockKind::Podzol, + BlockKind::Sand, + BlockKind::SuspiciousSand, + BlockKind::RedSand, + BlockKind::MuddyMangroveRoots, + BlockKind::Farmland, + BlockKind::Mycelium, + BlockKind::WhiteTerracotta, + BlockKind::OrangeTerracotta, + BlockKind::MagentaTerracotta, + BlockKind::LightBlueTerracotta, + BlockKind::YellowTerracotta, + BlockKind::LimeTerracotta, + BlockKind::PinkTerracotta, + BlockKind::GrayTerracotta, + BlockKind::LightGrayTerracotta, + BlockKind::CyanTerracotta, + BlockKind::PurpleTerracotta, + BlockKind::BlueTerracotta, + BlockKind::BrownTerracotta, + BlockKind::GreenTerracotta, + BlockKind::RedTerracotta, + BlockKind::BlackTerracotta, + BlockKind::Terracotta, + BlockKind::MossBlock, + BlockKind::RootedDirt, + BlockKind::Mud, + BlockKind::PaleMossBlock, + ]) +}); +pub static EDIBLE_FOR_SHEEP: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::ShortGrass, + BlockKind::Fern, + BlockKind::ShortDryGrass, + BlockKind::TallDryGrass, + ]) +}); +pub static EMERALD_ORES: LazyLock<RegistryTag<BlockKind>> = + LazyLock::new(|| RegistryTag::new(vec![BlockKind::EmeraldOre, BlockKind::DeepslateEmeraldOre])); +pub static ENCHANTMENT_POWER_PROVIDER: LazyLock<RegistryTag<BlockKind>> = + LazyLock::new(|| RegistryTag::new(vec![BlockKind::Bookshelf])); +pub static ENCHANTMENT_POWER_TRANSMITTER: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::Air, + BlockKind::Water, + BlockKind::Lava, + BlockKind::ShortGrass, + BlockKind::Fern, + BlockKind::DeadBush, + BlockKind::Bush, + BlockKind::ShortDryGrass, + BlockKind::TallDryGrass, + BlockKind::Seagrass, + BlockKind::TallSeagrass, + BlockKind::Fire, + BlockKind::SoulFire, + BlockKind::Snow, + BlockKind::Vine, + BlockKind::GlowLichen, + BlockKind::ResinClump, + BlockKind::Light, + BlockKind::TallGrass, + BlockKind::LargeFern, + BlockKind::StructureVoid, + BlockKind::VoidAir, + BlockKind::CaveAir, + BlockKind::BubbleColumn, + BlockKind::WarpedRoots, + BlockKind::NetherSprouts, + BlockKind::CrimsonRoots, + BlockKind::LeafLitter, + BlockKind::HangingRoots, + ]) +}); +pub static ENDERMAN_HOLDABLE: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::GrassBlock, + BlockKind::Dirt, + BlockKind::CoarseDirt, + BlockKind::Podzol, + BlockKind::Sand, + BlockKind::RedSand, + BlockKind::Gravel, + BlockKind::MuddyMangroveRoots, + BlockKind::Dandelion, + BlockKind::Torchflower, + BlockKind::Poppy, + BlockKind::BlueOrchid, + BlockKind::Allium, + BlockKind::AzureBluet, + BlockKind::RedTulip, + BlockKind::OrangeTulip, + BlockKind::WhiteTulip, + BlockKind::PinkTulip, + BlockKind::OxeyeDaisy, + BlockKind::Cornflower, + BlockKind::WitherRose, + BlockKind::LilyOfTheValley, + BlockKind::BrownMushroom, + BlockKind::RedMushroom, + BlockKind::Tnt, + BlockKind::Cactus, + BlockKind::CactusFlower, + BlockKind::Clay, + BlockKind::CarvedPumpkin, + BlockKind::Pumpkin, + BlockKind::Melon, + BlockKind::Mycelium, + BlockKind::WarpedNylium, + BlockKind::WarpedFungus, + BlockKind::WarpedRoots, + BlockKind::CrimsonNylium, + BlockKind::CrimsonFungus, + BlockKind::CrimsonRoots, + BlockKind::MossBlock, + BlockKind::RootedDirt, + BlockKind::Mud, + BlockKind::PaleMossBlock, + BlockKind::OpenEyeblossom, + BlockKind::ClosedEyeblossom, + ]) +}); +pub static FALL_DAMAGE_RESETTING: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::Cobweb, + BlockKind::Ladder, + BlockKind::Vine, + BlockKind::Scaffolding, + BlockKind::SweetBerryBush, + BlockKind::WeepingVines, + BlockKind::WeepingVinesPlant, + BlockKind::TwistingVines, + BlockKind::TwistingVinesPlant, + BlockKind::CaveVines, + BlockKind::CaveVinesPlant, + ]) +}); +pub static FEATURES_CANNOT_REPLACE: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::Bedrock, + BlockKind::Spawner, + BlockKind::Chest, + BlockKind::EndPortalFrame, + BlockKind::ReinforcedDeepslate, + BlockKind::TrialSpawner, + BlockKind::Vault, + ]) +}); +pub static FENCE_GATES: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::OakFenceGate, + BlockKind::SpruceFenceGate, + BlockKind::BirchFenceGate, + BlockKind::JungleFenceGate, + BlockKind::AcaciaFenceGate, + BlockKind::CherryFenceGate, + BlockKind::DarkOakFenceGate, + BlockKind::PaleOakFenceGate, + BlockKind::MangroveFenceGate, + BlockKind::BambooFenceGate, + BlockKind::CrimsonFenceGate, + BlockKind::WarpedFenceGate, + ]) +}); +pub static FENCES: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::OakFence, + BlockKind::NetherBrickFence, + BlockKind::SpruceFence, + BlockKind::BirchFence, + BlockKind::JungleFence, + BlockKind::AcaciaFence, + BlockKind::CherryFence, + BlockKind::DarkOakFence, + BlockKind::PaleOakFence, + BlockKind::MangroveFence, + BlockKind::BambooFence, + BlockKind::CrimsonFence, + BlockKind::WarpedFence, + ]) +}); +pub static FIRE: LazyLock<RegistryTag<BlockKind>> = + LazyLock::new(|| RegistryTag::new(vec![BlockKind::Fire, BlockKind::SoulFire])); +pub static FLOWER_POTS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::FlowerPot, + BlockKind::PottedTorchflower, + BlockKind::PottedOakSapling, + BlockKind::PottedSpruceSapling, + BlockKind::PottedBirchSapling, + BlockKind::PottedJungleSapling, + BlockKind::PottedAcaciaSapling, + BlockKind::PottedCherrySapling, + BlockKind::PottedDarkOakSapling, + BlockKind::PottedPaleOakSapling, + BlockKind::PottedMangrovePropagule, + BlockKind::PottedFern, + BlockKind::PottedDandelion, + BlockKind::PottedPoppy, + BlockKind::PottedBlueOrchid, + BlockKind::PottedAllium, + BlockKind::PottedAzureBluet, + BlockKind::PottedRedTulip, + BlockKind::PottedOrangeTulip, + BlockKind::PottedWhiteTulip, + BlockKind::PottedPinkTulip, + BlockKind::PottedOxeyeDaisy, + BlockKind::PottedCornflower, + BlockKind::PottedLilyOfTheValley, + BlockKind::PottedWitherRose, + BlockKind::PottedRedMushroom, + BlockKind::PottedBrownMushroom, + BlockKind::PottedDeadBush, + BlockKind::PottedCactus, + BlockKind::PottedBamboo, + BlockKind::PottedCrimsonFungus, + BlockKind::PottedWarpedFungus, + BlockKind::PottedCrimsonRoots, + BlockKind::PottedWarpedRoots, + BlockKind::PottedAzaleaBush, + BlockKind::PottedFloweringAzaleaBush, + BlockKind::PottedOpenEyeblossom, + BlockKind::PottedClosedEyeblossom, + ]) +}); +pub static FLOWERS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::MangrovePropagule, + BlockKind::CherryLeaves, + BlockKind::FloweringAzaleaLeaves, + BlockKind::Dandelion, + BlockKind::Torchflower, + BlockKind::Poppy, + BlockKind::BlueOrchid, + BlockKind::Allium, + BlockKind::AzureBluet, + BlockKind::RedTulip, + BlockKind::OrangeTulip, + BlockKind::WhiteTulip, + BlockKind::PinkTulip, + BlockKind::OxeyeDaisy, + BlockKind::Cornflower, + BlockKind::WitherRose, + BlockKind::LilyOfTheValley, + BlockKind::CactusFlower, + BlockKind::Sunflower, + BlockKind::Lilac, + BlockKind::RoseBush, + BlockKind::Peony, + BlockKind::ChorusFlower, + BlockKind::PitcherPlant, + BlockKind::SporeBlossom, + BlockKind::FloweringAzalea, + BlockKind::PinkPetals, + BlockKind::Wildflowers, + BlockKind::OpenEyeblossom, + BlockKind::ClosedEyeblossom, + ]) +}); +pub static FOXES_SPAWNABLE_ON: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::GrassBlock, + BlockKind::CoarseDirt, + BlockKind::Podzol, + BlockKind::Snow, + BlockKind::SnowBlock, + ]) +}); +pub static FROG_PREFER_JUMP_TO: LazyLock<RegistryTag<BlockKind>> = + LazyLock::new(|| RegistryTag::new(vec![BlockKind::LilyPad, BlockKind::BigDripleaf])); +pub static FROGS_SPAWNABLE_ON: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::GrassBlock, + BlockKind::MangroveRoots, + BlockKind::MuddyMangroveRoots, + BlockKind::Mud, + ]) +}); +pub static GEODE_INVALID_BLOCKS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::Bedrock, + BlockKind::Water, + BlockKind::Lava, + BlockKind::Ice, + BlockKind::PackedIce, + BlockKind::BlueIce, + ]) +}); +pub static GOATS_SPAWNABLE_ON: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::Stone, + BlockKind::GrassBlock, + BlockKind::Gravel, + BlockKind::Snow, + BlockKind::SnowBlock, + BlockKind::PackedIce, + ]) +}); +pub static GOLD_ORES: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::GoldOre, + BlockKind::DeepslateGoldOre, + BlockKind::NetherGoldOre, + ]) +}); +pub static GUARDED_BY_PIGLINS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::GoldOre, + BlockKind::DeepslateGoldOre, + BlockKind::NetherGoldOre, + BlockKind::GoldBlock, + BlockKind::Chest, + BlockKind::EnderChest, + BlockKind::TrappedChest, + BlockKind::ShulkerBox, + BlockKind::WhiteShulkerBox, + BlockKind::OrangeShulkerBox, + BlockKind::MagentaShulkerBox, + BlockKind::LightBlueShulkerBox, + BlockKind::YellowShulkerBox, + BlockKind::LimeShulkerBox, + BlockKind::PinkShulkerBox, + BlockKind::GrayShulkerBox, + BlockKind::LightGrayShulkerBox, + BlockKind::CyanShulkerBox, + BlockKind::PurpleShulkerBox, + BlockKind::BlueShulkerBox, + BlockKind::BrownShulkerBox, + BlockKind::GreenShulkerBox, + BlockKind::RedShulkerBox, + BlockKind::BlackShulkerBox, + BlockKind::Barrel, + BlockKind::GildedBlackstone, + BlockKind::CopperChest, + BlockKind::ExposedCopperChest, + BlockKind::WeatheredCopperChest, + BlockKind::OxidizedCopperChest, + BlockKind::WaxedCopperChest, + BlockKind::WaxedExposedCopperChest, + BlockKind::WaxedWeatheredCopperChest, + BlockKind::WaxedOxidizedCopperChest, + BlockKind::RawGoldBlock, + ]) +}); +pub static HAPPY_GHAST_AVOIDS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::WitherRose, + BlockKind::Fire, + BlockKind::Cactus, + BlockKind::MagmaBlock, + BlockKind::SweetBerryBush, + BlockKind::PointedDripstone, + ]) +}); +pub static HOGLIN_REPELLENTS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::NetherPortal, + BlockKind::WarpedFungus, + BlockKind::RespawnAnchor, + BlockKind::PottedWarpedFungus, + ]) +}); +pub static ICE: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::Ice, + BlockKind::PackedIce, + BlockKind::FrostedIce, + BlockKind::BlueIce, + ]) +}); +pub static IMPERMEABLE: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::Glass, + BlockKind::WhiteStainedGlass, + BlockKind::OrangeStainedGlass, + BlockKind::MagentaStainedGlass, + BlockKind::LightBlueStainedGlass, + BlockKind::YellowStainedGlass, + BlockKind::LimeStainedGlass, + BlockKind::PinkStainedGlass, + BlockKind::GrayStainedGlass, + BlockKind::LightGrayStainedGlass, + BlockKind::CyanStainedGlass, + BlockKind::PurpleStainedGlass, + BlockKind::BlueStainedGlass, + BlockKind::BrownStainedGlass, + BlockKind::GreenStainedGlass, + BlockKind::RedStainedGlass, + BlockKind::BlackStainedGlass, + BlockKind::Barrier, + BlockKind::TintedGlass, + ]) +}); +pub static INCORRECT_FOR_COPPER_TOOL: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::GoldOre, + BlockKind::DeepslateGoldOre, + BlockKind::GoldBlock, + BlockKind::Obsidian, + BlockKind::DiamondOre, + BlockKind::DeepslateDiamondOre, + BlockKind::DiamondBlock, + BlockKind::RedstoneOre, + BlockKind::DeepslateRedstoneOre, + BlockKind::EmeraldOre, + BlockKind::DeepslateEmeraldOre, + BlockKind::EmeraldBlock, + BlockKind::NetheriteBlock, + BlockKind::AncientDebris, + BlockKind::CryingObsidian, + BlockKind::RespawnAnchor, + BlockKind::RawGoldBlock, + ]) +}); +pub static INCORRECT_FOR_DIAMOND_TOOL: LazyLock<RegistryTag<BlockKind>> = + LazyLock::new(|| RegistryTag::new(vec![])); +pub static INCORRECT_FOR_GOLD_TOOL: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::GoldOre, + BlockKind::DeepslateGoldOre, + BlockKind::IronOre, + BlockKind::DeepslateIronOre, + BlockKind::LapisOre, + BlockKind::DeepslateLapisOre, + BlockKind::LapisBlock, + BlockKind::GoldBlock, + BlockKind::IronBlock, + BlockKind::Obsidian, + BlockKind::DiamondOre, + BlockKind::DeepslateDiamondOre, + BlockKind::DiamondBlock, + BlockKind::RedstoneOre, + BlockKind::DeepslateRedstoneOre, + BlockKind::EmeraldOre, + BlockKind::DeepslateEmeraldOre, + BlockKind::EmeraldBlock, + BlockKind::NetheriteBlock, + BlockKind::AncientDebris, + BlockKind::CryingObsidian, + BlockKind::RespawnAnchor, + BlockKind::CopperBlock, + BlockKind::ExposedCopper, + BlockKind::WeatheredCopper, + BlockKind::OxidizedCopper, + BlockKind::CopperOre, + BlockKind::DeepslateCopperOre, + BlockKind::OxidizedCutCopper, + BlockKind::WeatheredCutCopper, + BlockKind::ExposedCutCopper, + BlockKind::CutCopper, + BlockKind::OxidizedChiseledCopper, + BlockKind::WeatheredChiseledCopper, + BlockKind::ExposedChiseledCopper, + BlockKind::ChiseledCopper, + BlockKind::WaxedOxidizedChiseledCopper, + BlockKind::WaxedWeatheredChiseledCopper, + BlockKind::WaxedExposedChiseledCopper, + BlockKind::WaxedChiseledCopper, + BlockKind::OxidizedCutCopperStairs, + BlockKind::WeatheredCutCopperStairs, + BlockKind::ExposedCutCopperStairs, + BlockKind::CutCopperStairs, + BlockKind::OxidizedCutCopperSlab, + BlockKind::WeatheredCutCopperSlab, + BlockKind::ExposedCutCopperSlab, + BlockKind::CutCopperSlab, + BlockKind::WaxedCopperBlock, + BlockKind::WaxedWeatheredCopper, + BlockKind::WaxedExposedCopper, + BlockKind::WaxedOxidizedCopper, + BlockKind::WaxedOxidizedCutCopper, + BlockKind::WaxedWeatheredCutCopper, + BlockKind::WaxedExposedCutCopper, + BlockKind::WaxedCutCopper, + BlockKind::WaxedOxidizedCutCopperStairs, + BlockKind::WaxedWeatheredCutCopperStairs, + BlockKind::WaxedExposedCutCopperStairs, + BlockKind::WaxedCutCopperStairs, + BlockKind::WaxedOxidizedCutCopperSlab, + BlockKind::WaxedWeatheredCutCopperSlab, + BlockKind::WaxedExposedCutCopperSlab, + BlockKind::WaxedCutCopperSlab, + BlockKind::CopperTrapdoor, + BlockKind::ExposedCopperTrapdoor, + BlockKind::OxidizedCopperTrapdoor, + BlockKind::WeatheredCopperTrapdoor, + BlockKind::WaxedCopperTrapdoor, + BlockKind::WaxedExposedCopperTrapdoor, + BlockKind::WaxedOxidizedCopperTrapdoor, + BlockKind::WaxedWeatheredCopperTrapdoor, + BlockKind::CopperGrate, + BlockKind::ExposedCopperGrate, + BlockKind::WeatheredCopperGrate, + BlockKind::OxidizedCopperGrate, + BlockKind::WaxedCopperGrate, + BlockKind::WaxedExposedCopperGrate, + BlockKind::WaxedWeatheredCopperGrate, + BlockKind::WaxedOxidizedCopperGrate, + BlockKind::CopperBulb, + BlockKind::ExposedCopperBulb, + BlockKind::WeatheredCopperBulb, + BlockKind::OxidizedCopperBulb, + BlockKind::WaxedCopperBulb, + BlockKind::WaxedExposedCopperBulb, + BlockKind::WaxedWeatheredCopperBulb, + BlockKind::WaxedOxidizedCopperBulb, + BlockKind::CopperChest, + BlockKind::ExposedCopperChest, + BlockKind::WeatheredCopperChest, + BlockKind::OxidizedCopperChest, + BlockKind::WaxedCopperChest, + BlockKind::WaxedExposedCopperChest, + BlockKind::WaxedWeatheredCopperChest, + BlockKind::WaxedOxidizedCopperChest, + BlockKind::LightningRod, + BlockKind::ExposedLightningRod, + BlockKind::WeatheredLightningRod, + BlockKind::OxidizedLightningRod, + BlockKind::WaxedLightningRod, + BlockKind::WaxedExposedLightningRod, + BlockKind::WaxedWeatheredLightningRod, + BlockKind::WaxedOxidizedLightningRod, + BlockKind::RawIronBlock, + BlockKind::RawCopperBlock, + BlockKind::RawGoldBlock, + BlockKind::Crafter, + ]) +}); +pub static INCORRECT_FOR_IRON_TOOL: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::Obsidian, + BlockKind::NetheriteBlock, + BlockKind::AncientDebris, + BlockKind::CryingObsidian, + BlockKind::RespawnAnchor, + ]) +}); +pub static INCORRECT_FOR_NETHERITE_TOOL: LazyLock<RegistryTag<BlockKind>> = + LazyLock::new(|| RegistryTag::new(vec![])); +pub static INCORRECT_FOR_STONE_TOOL: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::GoldOre, + BlockKind::DeepslateGoldOre, + BlockKind::GoldBlock, + BlockKind::Obsidian, + BlockKind::DiamondOre, + BlockKind::DeepslateDiamondOre, + BlockKind::DiamondBlock, + BlockKind::RedstoneOre, + BlockKind::DeepslateRedstoneOre, + BlockKind::EmeraldOre, + BlockKind::DeepslateEmeraldOre, + BlockKind::EmeraldBlock, + BlockKind::NetheriteBlock, + BlockKind::AncientDebris, + BlockKind::CryingObsidian, + BlockKind::RespawnAnchor, + BlockKind::RawGoldBlock, + ]) +}); +pub static INCORRECT_FOR_WOODEN_TOOL: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::GoldOre, + BlockKind::DeepslateGoldOre, + BlockKind::IronOre, + BlockKind::DeepslateIronOre, + BlockKind::LapisOre, + BlockKind::DeepslateLapisOre, + BlockKind::LapisBlock, + BlockKind::GoldBlock, + BlockKind::IronBlock, + BlockKind::Obsidian, + BlockKind::DiamondOre, + BlockKind::DeepslateDiamondOre, + BlockKind::DiamondBlock, + BlockKind::RedstoneOre, + BlockKind::DeepslateRedstoneOre, + BlockKind::EmeraldOre, + BlockKind::DeepslateEmeraldOre, + BlockKind::EmeraldBlock, + BlockKind::NetheriteBlock, + BlockKind::AncientDebris, + BlockKind::CryingObsidian, + BlockKind::RespawnAnchor, + BlockKind::CopperBlock, + BlockKind::ExposedCopper, + BlockKind::WeatheredCopper, + BlockKind::OxidizedCopper, + BlockKind::CopperOre, + BlockKind::DeepslateCopperOre, + BlockKind::OxidizedCutCopper, + BlockKind::WeatheredCutCopper, + BlockKind::ExposedCutCopper, + BlockKind::CutCopper, + BlockKind::OxidizedChiseledCopper, + BlockKind::WeatheredChiseledCopper, + BlockKind::ExposedChiseledCopper, + BlockKind::ChiseledCopper, + BlockKind::WaxedOxidizedChiseledCopper, + BlockKind::WaxedWeatheredChiseledCopper, + BlockKind::WaxedExposedChiseledCopper, + BlockKind::WaxedChiseledCopper, + BlockKind::OxidizedCutCopperStairs, + BlockKind::WeatheredCutCopperStairs, + BlockKind::ExposedCutCopperStairs, + BlockKind::CutCopperStairs, + BlockKind::OxidizedCutCopperSlab, + BlockKind::WeatheredCutCopperSlab, + BlockKind::ExposedCutCopperSlab, + BlockKind::CutCopperSlab, + BlockKind::WaxedCopperBlock, + BlockKind::WaxedWeatheredCopper, + BlockKind::WaxedExposedCopper, + BlockKind::WaxedOxidizedCopper, + BlockKind::WaxedOxidizedCutCopper, + BlockKind::WaxedWeatheredCutCopper, + BlockKind::WaxedExposedCutCopper, + BlockKind::WaxedCutCopper, + BlockKind::WaxedOxidizedCutCopperStairs, + BlockKind::WaxedWeatheredCutCopperStairs, + BlockKind::WaxedExposedCutCopperStairs, + BlockKind::WaxedCutCopperStairs, + BlockKind::WaxedOxidizedCutCopperSlab, + BlockKind::WaxedWeatheredCutCopperSlab, + BlockKind::WaxedExposedCutCopperSlab, + BlockKind::WaxedCutCopperSlab, + BlockKind::CopperTrapdoor, + BlockKind::ExposedCopperTrapdoor, + BlockKind::OxidizedCopperTrapdoor, + BlockKind::WeatheredCopperTrapdoor, + BlockKind::WaxedCopperTrapdoor, + BlockKind::WaxedExposedCopperTrapdoor, + BlockKind::WaxedOxidizedCopperTrapdoor, + BlockKind::WaxedWeatheredCopperTrapdoor, + BlockKind::CopperGrate, + BlockKind::ExposedCopperGrate, + BlockKind::WeatheredCopperGrate, + BlockKind::OxidizedCopperGrate, + BlockKind::WaxedCopperGrate, + BlockKind::WaxedExposedCopperGrate, + BlockKind::WaxedWeatheredCopperGrate, + BlockKind::WaxedOxidizedCopperGrate, + BlockKind::CopperBulb, + BlockKind::ExposedCopperBulb, + BlockKind::WeatheredCopperBulb, + BlockKind::OxidizedCopperBulb, + BlockKind::WaxedCopperBulb, + BlockKind::WaxedExposedCopperBulb, + BlockKind::WaxedWeatheredCopperBulb, + BlockKind::WaxedOxidizedCopperBulb, + BlockKind::CopperChest, + BlockKind::ExposedCopperChest, + BlockKind::WeatheredCopperChest, + BlockKind::OxidizedCopperChest, + BlockKind::WaxedCopperChest, + BlockKind::WaxedExposedCopperChest, + BlockKind::WaxedWeatheredCopperChest, + BlockKind::WaxedOxidizedCopperChest, + BlockKind::LightningRod, + BlockKind::ExposedLightningRod, + BlockKind::WeatheredLightningRod, + BlockKind::OxidizedLightningRod, + BlockKind::WaxedLightningRod, + BlockKind::WaxedExposedLightningRod, + BlockKind::WaxedWeatheredLightningRod, + BlockKind::WaxedOxidizedLightningRod, + BlockKind::RawIronBlock, + BlockKind::RawCopperBlock, + BlockKind::RawGoldBlock, + BlockKind::Crafter, + ]) +}); +pub static INFINIBURN_END: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::Bedrock, + BlockKind::Netherrack, + BlockKind::MagmaBlock, + ]) +}); +pub static INFINIBURN_NETHER: LazyLock<RegistryTag<BlockKind>> = + LazyLock::new(|| RegistryTag::new(vec![BlockKind::Netherrack, BlockKind::MagmaBlock])); +pub static INFINIBURN_OVERWORLD: LazyLock<RegistryTag<BlockKind>> = + LazyLock::new(|| RegistryTag::new(vec![BlockKind::Netherrack, BlockKind::MagmaBlock])); +pub static INSIDE_STEP_SOUND_BLOCKS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::GlowLichen, + BlockKind::LilyPad, + BlockKind::SmallAmethystBud, + BlockKind::PowderSnow, + BlockKind::SculkVein, + BlockKind::PinkPetals, + BlockKind::Wildflowers, + BlockKind::LeafLitter, + ]) +}); +pub static INVALID_SPAWN_INSIDE: LazyLock<RegistryTag<BlockKind>> = + LazyLock::new(|| RegistryTag::new(vec![BlockKind::EndPortal, BlockKind::EndGateway])); +pub static IRON_ORES: LazyLock<RegistryTag<BlockKind>> = + LazyLock::new(|| RegistryTag::new(vec![BlockKind::IronOre, BlockKind::DeepslateIronOre])); +pub static JUNGLE_LOGS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::JungleLog, + BlockKind::StrippedJungleLog, + BlockKind::JungleWood, + BlockKind::StrippedJungleWood, + ]) +}); +pub static LANTERNS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::Lantern, + BlockKind::SoulLantern, + BlockKind::CopperLantern, + BlockKind::ExposedCopperLantern, + BlockKind::WeatheredCopperLantern, + BlockKind::OxidizedCopperLantern, + BlockKind::WaxedCopperLantern, + BlockKind::WaxedExposedCopperLantern, + BlockKind::WaxedWeatheredCopperLantern, + BlockKind::WaxedOxidizedCopperLantern, + ]) +}); +pub static LAPIS_ORES: LazyLock<RegistryTag<BlockKind>> = + LazyLock::new(|| RegistryTag::new(vec![BlockKind::LapisOre, BlockKind::DeepslateLapisOre])); +pub static LAVA_POOL_STONE_CANNOT_REPLACE: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::PaleOakWood, + BlockKind::Bedrock, + BlockKind::OakLog, + BlockKind::SpruceLog, + BlockKind::BirchLog, + BlockKind::JungleLog, + BlockKind::AcaciaLog, + BlockKind::CherryLog, + BlockKind::DarkOakLog, + BlockKind::PaleOakLog, + BlockKind::MangroveLog, + BlockKind::StrippedSpruceLog, + BlockKind::StrippedBirchLog, + BlockKind::StrippedJungleLog, + BlockKind::StrippedAcaciaLog, + BlockKind::StrippedCherryLog, + BlockKind::StrippedDarkOakLog, + BlockKind::StrippedPaleOakLog, + BlockKind::StrippedOakLog, + BlockKind::StrippedMangroveLog, + BlockKind::OakWood, + BlockKind::SpruceWood, + BlockKind::BirchWood, + BlockKind::JungleWood, + BlockKind::AcaciaWood, + BlockKind::CherryWood, + BlockKind::DarkOakWood, + BlockKind::MangroveWood, + BlockKind::StrippedOakWood, + BlockKind::StrippedSpruceWood, + BlockKind::StrippedBirchWood, + BlockKind::StrippedJungleWood, + BlockKind::StrippedAcaciaWood, + BlockKind::StrippedCherryWood, + BlockKind::StrippedDarkOakWood, + BlockKind::StrippedPaleOakWood, + BlockKind::StrippedMangroveWood, + BlockKind::OakLeaves, + BlockKind::SpruceLeaves, + BlockKind::BirchLeaves, + BlockKind::JungleLeaves, + BlockKind::AcaciaLeaves, + BlockKind::CherryLeaves, + BlockKind::DarkOakLeaves, + BlockKind::PaleOakLeaves, + BlockKind::MangroveLeaves, + BlockKind::AzaleaLeaves, + BlockKind::FloweringAzaleaLeaves, + BlockKind::Spawner, + BlockKind::Chest, + BlockKind::EndPortalFrame, + BlockKind::WarpedStem, + BlockKind::StrippedWarpedStem, + BlockKind::WarpedHyphae, + BlockKind::StrippedWarpedHyphae, + BlockKind::CrimsonStem, + BlockKind::StrippedCrimsonStem, + BlockKind::CrimsonHyphae, + BlockKind::StrippedCrimsonHyphae, + BlockKind::ReinforcedDeepslate, + BlockKind::TrialSpawner, + BlockKind::Vault, + ]) +}); +pub static LEAVES: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::OakLeaves, + BlockKind::SpruceLeaves, + BlockKind::BirchLeaves, + BlockKind::JungleLeaves, + BlockKind::AcaciaLeaves, + BlockKind::CherryLeaves, + BlockKind::DarkOakLeaves, + BlockKind::PaleOakLeaves, + BlockKind::MangroveLeaves, + BlockKind::AzaleaLeaves, + BlockKind::FloweringAzaleaLeaves, + ]) +}); +pub static LIGHTNING_RODS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::LightningRod, + BlockKind::ExposedLightningRod, + BlockKind::WeatheredLightningRod, + BlockKind::OxidizedLightningRod, + BlockKind::WaxedLightningRod, + BlockKind::WaxedExposedLightningRod, + BlockKind::WaxedWeatheredLightningRod, + BlockKind::WaxedOxidizedLightningRod, + ]) +}); +pub static LOGS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::PaleOakWood, + BlockKind::OakLog, + BlockKind::SpruceLog, + BlockKind::BirchLog, + BlockKind::JungleLog, + BlockKind::AcaciaLog, + BlockKind::CherryLog, + BlockKind::DarkOakLog, + BlockKind::PaleOakLog, + BlockKind::MangroveLog, + BlockKind::StrippedSpruceLog, + BlockKind::StrippedBirchLog, + BlockKind::StrippedJungleLog, + BlockKind::StrippedAcaciaLog, + BlockKind::StrippedCherryLog, + BlockKind::StrippedDarkOakLog, + BlockKind::StrippedPaleOakLog, + BlockKind::StrippedOakLog, + BlockKind::StrippedMangroveLog, + BlockKind::OakWood, + BlockKind::SpruceWood, + BlockKind::BirchWood, + BlockKind::JungleWood, + BlockKind::AcaciaWood, + BlockKind::CherryWood, + BlockKind::DarkOakWood, + BlockKind::MangroveWood, + BlockKind::StrippedOakWood, + BlockKind::StrippedSpruceWood, + BlockKind::StrippedBirchWood, + BlockKind::StrippedJungleWood, + BlockKind::StrippedAcaciaWood, + BlockKind::StrippedCherryWood, + BlockKind::StrippedDarkOakWood, + BlockKind::StrippedPaleOakWood, + BlockKind::StrippedMangroveWood, + BlockKind::WarpedStem, + BlockKind::StrippedWarpedStem, + BlockKind::WarpedHyphae, + BlockKind::StrippedWarpedHyphae, + BlockKind::CrimsonStem, + BlockKind::StrippedCrimsonStem, + BlockKind::CrimsonHyphae, + BlockKind::StrippedCrimsonHyphae, + ]) +}); +pub static LOGS_THAT_BURN: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::PaleOakWood, + BlockKind::OakLog, + BlockKind::SpruceLog, + BlockKind::BirchLog, + BlockKind::JungleLog, + BlockKind::AcaciaLog, + BlockKind::CherryLog, + BlockKind::DarkOakLog, + BlockKind::PaleOakLog, + BlockKind::MangroveLog, + BlockKind::StrippedSpruceLog, + BlockKind::StrippedBirchLog, + BlockKind::StrippedJungleLog, + BlockKind::StrippedAcaciaLog, + BlockKind::StrippedCherryLog, + BlockKind::StrippedDarkOakLog, + BlockKind::StrippedPaleOakLog, + BlockKind::StrippedOakLog, + BlockKind::StrippedMangroveLog, + BlockKind::OakWood, + BlockKind::SpruceWood, + BlockKind::BirchWood, + BlockKind::JungleWood, + BlockKind::AcaciaWood, + BlockKind::CherryWood, + BlockKind::DarkOakWood, + BlockKind::MangroveWood, + BlockKind::StrippedOakWood, + BlockKind::StrippedSpruceWood, + BlockKind::StrippedBirchWood, + BlockKind::StrippedJungleWood, + BlockKind::StrippedAcaciaWood, + BlockKind::StrippedCherryWood, + BlockKind::StrippedDarkOakWood, + BlockKind::StrippedPaleOakWood, + BlockKind::StrippedMangroveWood, + ]) +}); +pub static LUSH_GROUND_REPLACEABLE: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::Stone, + BlockKind::Granite, + BlockKind::Diorite, + BlockKind::Andesite, + BlockKind::GrassBlock, + BlockKind::Dirt, + BlockKind::CoarseDirt, + BlockKind::Podzol, + BlockKind::Sand, + BlockKind::Gravel, + BlockKind::MuddyMangroveRoots, + BlockKind::Clay, + BlockKind::Mycelium, + BlockKind::Tuff, + BlockKind::CaveVines, + BlockKind::CaveVinesPlant, + BlockKind::MossBlock, + BlockKind::RootedDirt, + BlockKind::Mud, + BlockKind::Deepslate, + BlockKind::PaleMossBlock, + ]) +}); +pub static MAINTAINS_FARMLAND: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::Torchflower, + BlockKind::Wheat, + BlockKind::AttachedPumpkinStem, + BlockKind::AttachedMelonStem, + BlockKind::PumpkinStem, + BlockKind::MelonStem, + BlockKind::Carrots, + BlockKind::Potatoes, + BlockKind::TorchflowerCrop, + BlockKind::PitcherCrop, + BlockKind::Beetroots, + ]) +}); +pub static MANGROVE_LOGS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::MangroveLog, + BlockKind::StrippedMangroveLog, + BlockKind::MangroveWood, + BlockKind::StrippedMangroveWood, + ]) +}); +pub static MANGROVE_LOGS_CAN_GROW_THROUGH: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::MangrovePropagule, + BlockKind::MangroveLog, + BlockKind::MangroveRoots, + BlockKind::MuddyMangroveRoots, + BlockKind::MangroveLeaves, + BlockKind::Vine, + BlockKind::MossCarpet, + BlockKind::Mud, + ]) +}); +pub static MANGROVE_ROOTS_CAN_GROW_THROUGH: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::Sand, - Block::RedSand, - Block::Terracotta, - Block::WhiteTerracotta, - Block::OrangeTerracotta, - Block::MagentaTerracotta, - Block::LightBlueTerracotta, - Block::YellowTerracotta, - Block::LimeTerracotta, - Block::PinkTerracotta, - Block::GrayTerracotta, - Block::LightGrayTerracotta, - Block::CyanTerracotta, - Block::PurpleTerracotta, - Block::BlueTerracotta, - Block::BrownTerracotta, - Block::GreenTerracotta, - Block::RedTerracotta, - Block::BlackTerracotta, + RegistryTag::new(vec![ + BlockKind::MangrovePropagule, + BlockKind::MangroveRoots, + BlockKind::MuddyMangroveRoots, + BlockKind::Snow, + BlockKind::Vine, + BlockKind::MossCarpet, + BlockKind::Mud, ]) }); -pub static TRIGGERS_AMBIENT_DESERT_SAND_BLOCK_SOUNDS: LazyLock<HashSet<Block>> = - LazyLock::new(|| HashSet::from_iter([Block::Sand, Block::RedSand])); -pub static TRIGGERS_AMBIENT_DRIED_GHAST_BLOCK_SOUNDS: LazyLock<HashSet<Block>> = - LazyLock::new(|| HashSet::from_iter([Block::SoulSand, Block::SoulSoil])); -pub static UNDERWATER_BONEMEALS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::Seagrass, - Block::TubeCoralFan, - Block::BrainCoralFan, - Block::BubbleCoralFan, - Block::FireCoralFan, - Block::HornCoralFan, - Block::TubeCoralWallFan, - Block::BrainCoralWallFan, - Block::BubbleCoralWallFan, - Block::FireCoralWallFan, - Block::HornCoralWallFan, - Block::TubeCoral, - Block::BrainCoral, - Block::BubbleCoral, - Block::FireCoral, - Block::HornCoral, - ]) -}); -pub static UNSTABLE_BOTTOM_CENTER: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::AcaciaFenceGate, - Block::BirchFenceGate, - Block::DarkOakFenceGate, - Block::PaleOakFenceGate, - Block::JungleFenceGate, - Block::OakFenceGate, - Block::SpruceFenceGate, - Block::CrimsonFenceGate, - Block::WarpedFenceGate, - Block::MangroveFenceGate, - Block::BambooFenceGate, - Block::CherryFenceGate, - ]) -}); -pub static VALID_SPAWN: LazyLock<HashSet<Block>> = - LazyLock::new(|| HashSet::from_iter([Block::GrassBlock, Block::Podzol])); -pub static VIBRATION_RESONATORS: LazyLock<HashSet<Block>> = - LazyLock::new(|| HashSet::from_iter([Block::AmethystBlock])); -pub static WALL_CORALS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::TubeCoralWallFan, - Block::BrainCoralWallFan, - Block::BubbleCoralWallFan, - Block::FireCoralWallFan, - Block::HornCoralWallFan, - ]) -}); -pub static WALL_HANGING_SIGNS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::OakWallHangingSign, - Block::SpruceWallHangingSign, - Block::BirchWallHangingSign, - Block::AcaciaWallHangingSign, - Block::CherryWallHangingSign, - Block::JungleWallHangingSign, - Block::DarkOakWallHangingSign, - Block::PaleOakWallHangingSign, - Block::CrimsonWallHangingSign, - Block::WarpedWallHangingSign, - Block::MangroveWallHangingSign, - Block::BambooWallHangingSign, - ]) -}); -pub static WALL_POST_OVERRIDE: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::Torch, - Block::SoulTorch, - Block::RedstoneTorch, - Block::CopperTorch, - Block::Tripwire, - Block::CactusFlower, - Block::WhiteBanner, - Block::OrangeBanner, - Block::MagentaBanner, - Block::LightBlueBanner, - Block::YellowBanner, - Block::LimeBanner, - Block::PinkBanner, - Block::GrayBanner, - Block::LightGrayBanner, - Block::CyanBanner, - Block::PurpleBanner, - Block::BlueBanner, - Block::BrownBanner, - Block::GreenBanner, - Block::RedBanner, - Block::BlackBanner, - Block::WhiteWallBanner, - Block::OrangeWallBanner, - Block::MagentaWallBanner, - Block::LightBlueWallBanner, - Block::YellowWallBanner, - Block::LimeWallBanner, - Block::PinkWallBanner, - Block::GrayWallBanner, - Block::LightGrayWallBanner, - Block::CyanWallBanner, - Block::PurpleWallBanner, - Block::BlueWallBanner, - Block::BrownWallBanner, - Block::GreenWallBanner, - Block::RedWallBanner, - Block::BlackWallBanner, - Block::LightWeightedPressurePlate, - Block::HeavyWeightedPressurePlate, - Block::OakSign, - Block::SpruceSign, - Block::BirchSign, - Block::AcaciaSign, - Block::JungleSign, - Block::DarkOakSign, - Block::PaleOakSign, - Block::CrimsonSign, - Block::WarpedSign, - Block::MangroveSign, - Block::BambooSign, - Block::CherrySign, - Block::OakWallSign, - Block::SpruceWallSign, - Block::BirchWallSign, - Block::AcaciaWallSign, - Block::JungleWallSign, - Block::DarkOakWallSign, - Block::PaleOakWallSign, - Block::CrimsonWallSign, - Block::WarpedWallSign, - Block::MangroveWallSign, - Block::BambooWallSign, - Block::CherryWallSign, - Block::OakPressurePlate, - Block::SprucePressurePlate, - Block::BirchPressurePlate, - Block::JunglePressurePlate, - Block::AcaciaPressurePlate, - Block::DarkOakPressurePlate, - Block::PaleOakPressurePlate, - Block::CrimsonPressurePlate, - Block::WarpedPressurePlate, - Block::MangrovePressurePlate, - Block::BambooPressurePlate, - Block::CherryPressurePlate, - Block::StonePressurePlate, - Block::PolishedBlackstonePressurePlate, - ]) -}); -pub static WALL_SIGNS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::OakWallSign, - Block::SpruceWallSign, - Block::BirchWallSign, - Block::AcaciaWallSign, - Block::JungleWallSign, - Block::DarkOakWallSign, - Block::PaleOakWallSign, - Block::CrimsonWallSign, - Block::WarpedWallSign, - Block::MangroveWallSign, - Block::BambooWallSign, - Block::CherryWallSign, - ]) -}); -pub static WALLS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::CobblestoneWall, - Block::MossyCobblestoneWall, - Block::BrickWall, - Block::PrismarineWall, - Block::RedSandstoneWall, - Block::MossyStoneBrickWall, - Block::GraniteWall, - Block::StoneBrickWall, - Block::NetherBrickWall, - Block::AndesiteWall, - Block::RedNetherBrickWall, - Block::SandstoneWall, - Block::EndStoneBrickWall, - Block::DioriteWall, - Block::BlackstoneWall, - Block::PolishedBlackstoneBrickWall, - Block::PolishedBlackstoneWall, - Block::CobbledDeepslateWall, - Block::PolishedDeepslateWall, - Block::DeepslateTileWall, - Block::DeepslateBrickWall, - Block::MudBrickWall, - Block::TuffWall, - Block::PolishedTuffWall, - Block::TuffBrickWall, - Block::ResinBrickWall, - ]) -}); -pub static WARPED_STEMS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::WarpedStem, - Block::StrippedWarpedStem, - Block::WarpedHyphae, - Block::StrippedWarpedHyphae, - ]) -}); -pub static WART_BLOCKS: LazyLock<HashSet<Block>> = - LazyLock::new(|| HashSet::from_iter([Block::NetherWartBlock, Block::WarpedWartBlock])); -pub static WITHER_IMMUNE: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::Barrier, - Block::Bedrock, - Block::EndPortal, - Block::EndPortalFrame, - Block::EndGateway, - Block::CommandBlock, - Block::RepeatingCommandBlock, - Block::ChainCommandBlock, - Block::StructureBlock, - Block::Jigsaw, - Block::MovingPiston, - Block::Light, - Block::ReinforcedDeepslate, - Block::TestBlock, - Block::TestInstanceBlock, - ]) -}); -pub static WITHER_SUMMON_BASE_BLOCKS: LazyLock<HashSet<Block>> = - LazyLock::new(|| HashSet::from_iter([Block::SoulSand, Block::SoulSoil])); -pub static WOLVES_SPAWNABLE_ON: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::GrassBlock, - Block::Snow, - Block::SnowBlock, - Block::CoarseDirt, - Block::Podzol, - ]) -}); -pub static WOODEN_BUTTONS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::OakButton, - Block::SpruceButton, - Block::BirchButton, - Block::JungleButton, - Block::AcaciaButton, - Block::DarkOakButton, - Block::PaleOakButton, - Block::CrimsonButton, - Block::WarpedButton, - Block::MangroveButton, - Block::BambooButton, - Block::CherryButton, - ]) -}); -pub static WOODEN_DOORS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::OakDoor, - Block::SpruceDoor, - Block::BirchDoor, - Block::JungleDoor, - Block::AcaciaDoor, - Block::DarkOakDoor, - Block::PaleOakDoor, - Block::CrimsonDoor, - Block::WarpedDoor, - Block::MangroveDoor, - Block::BambooDoor, - Block::CherryDoor, - ]) -}); -pub static WOODEN_FENCES: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::OakFence, - Block::AcaciaFence, - Block::DarkOakFence, - Block::PaleOakFence, - Block::SpruceFence, - Block::BirchFence, - Block::JungleFence, - Block::CrimsonFence, - Block::WarpedFence, - Block::MangroveFence, - Block::BambooFence, - Block::CherryFence, - ]) -}); -pub static WOODEN_PRESSURE_PLATES: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::OakPressurePlate, - Block::SprucePressurePlate, - Block::BirchPressurePlate, - Block::JunglePressurePlate, - Block::AcaciaPressurePlate, - Block::DarkOakPressurePlate, - Block::PaleOakPressurePlate, - Block::CrimsonPressurePlate, - Block::WarpedPressurePlate, - Block::MangrovePressurePlate, - Block::BambooPressurePlate, - Block::CherryPressurePlate, - ]) -}); -pub static WOODEN_SHELVES: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::AcaciaShelf, - Block::BambooShelf, - Block::BirchShelf, - Block::CherryShelf, - Block::CrimsonShelf, - Block::DarkOakShelf, - Block::JungleShelf, - Block::MangroveShelf, - Block::OakShelf, - Block::PaleOakShelf, - Block::SpruceShelf, - Block::WarpedShelf, - ]) -}); -pub static WOODEN_SLABS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::OakSlab, - Block::SpruceSlab, - Block::BirchSlab, - Block::JungleSlab, - Block::AcaciaSlab, - Block::DarkOakSlab, - Block::PaleOakSlab, - Block::CrimsonSlab, - Block::WarpedSlab, - Block::MangroveSlab, - Block::BambooSlab, - Block::CherrySlab, - ]) -}); -pub static WOODEN_STAIRS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::OakStairs, - Block::SpruceStairs, - Block::BirchStairs, - Block::JungleStairs, - Block::AcaciaStairs, - Block::DarkOakStairs, - Block::PaleOakStairs, - Block::CrimsonStairs, - Block::WarpedStairs, - Block::MangroveStairs, - Block::BambooStairs, - Block::CherryStairs, - ]) -}); -pub static WOODEN_TRAPDOORS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::AcaciaTrapdoor, - Block::BirchTrapdoor, - Block::DarkOakTrapdoor, - Block::PaleOakTrapdoor, - Block::JungleTrapdoor, - Block::OakTrapdoor, - Block::SpruceTrapdoor, - Block::CrimsonTrapdoor, - Block::WarpedTrapdoor, - Block::MangroveTrapdoor, - Block::BambooTrapdoor, - Block::CherryTrapdoor, - ]) -}); -pub static WOOL: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::WhiteWool, - Block::OrangeWool, - Block::MagentaWool, - Block::LightBlueWool, - Block::YellowWool, - Block::LimeWool, - Block::PinkWool, - Block::GrayWool, - Block::LightGrayWool, - Block::CyanWool, - Block::PurpleWool, - Block::BlueWool, - Block::BrownWool, - Block::GreenWool, - Block::RedWool, - Block::BlackWool, - ]) -}); -pub static WOOL_CARPETS: LazyLock<HashSet<Block>> = LazyLock::new(|| { - HashSet::from_iter([ - Block::WhiteCarpet, - Block::OrangeCarpet, - Block::MagentaCarpet, - Block::LightBlueCarpet, - Block::YellowCarpet, - Block::LimeCarpet, - Block::PinkCarpet, - Block::GrayCarpet, - Block::LightGrayCarpet, - Block::CyanCarpet, - Block::PurpleCarpet, - Block::BlueCarpet, - Block::BrownCarpet, - Block::GreenCarpet, - Block::RedCarpet, - Block::BlackCarpet, +pub static MINEABLE_AXE: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::OakPlanks, + BlockKind::SprucePlanks, + BlockKind::BirchPlanks, + BlockKind::JunglePlanks, + BlockKind::AcaciaPlanks, + BlockKind::CherryPlanks, + BlockKind::DarkOakPlanks, + BlockKind::PaleOakWood, + BlockKind::PaleOakPlanks, + BlockKind::MangrovePlanks, + BlockKind::BambooPlanks, + BlockKind::BambooMosaic, + BlockKind::OakLog, + BlockKind::SpruceLog, + BlockKind::BirchLog, + BlockKind::JungleLog, + BlockKind::AcaciaLog, + BlockKind::CherryLog, + BlockKind::DarkOakLog, + BlockKind::PaleOakLog, + BlockKind::MangroveLog, + BlockKind::MangroveRoots, + BlockKind::BambooBlock, + BlockKind::StrippedSpruceLog, + BlockKind::StrippedBirchLog, + BlockKind::StrippedJungleLog, + BlockKind::StrippedAcaciaLog, + BlockKind::StrippedCherryLog, + BlockKind::StrippedDarkOakLog, + BlockKind::StrippedPaleOakLog, + BlockKind::StrippedOakLog, + BlockKind::StrippedMangroveLog, + BlockKind::StrippedBambooBlock, + BlockKind::OakWood, + BlockKind::SpruceWood, + BlockKind::BirchWood, + BlockKind::JungleWood, + BlockKind::AcaciaWood, + BlockKind::CherryWood, + BlockKind::DarkOakWood, + BlockKind::MangroveWood, + BlockKind::StrippedOakWood, + BlockKind::StrippedSpruceWood, + BlockKind::StrippedBirchWood, + BlockKind::StrippedJungleWood, + BlockKind::StrippedAcaciaWood, + BlockKind::StrippedCherryWood, + BlockKind::StrippedDarkOakWood, + BlockKind::StrippedPaleOakWood, + BlockKind::StrippedMangroveWood, + BlockKind::NoteBlock, + BlockKind::Bookshelf, + BlockKind::ChiseledBookshelf, + BlockKind::AcaciaShelf, + BlockKind::BambooShelf, + BlockKind::BirchShelf, + BlockKind::CherryShelf, + BlockKind::CrimsonShelf, + BlockKind::DarkOakShelf, + BlockKind::JungleShelf, + BlockKind::MangroveShelf, + BlockKind::OakShelf, + BlockKind::PaleOakShelf, + BlockKind::SpruceShelf, + BlockKind::WarpedShelf, + BlockKind::CreakingHeart, + BlockKind::OakStairs, + BlockKind::Chest, + BlockKind::CraftingTable, + BlockKind::OakSign, + BlockKind::SpruceSign, + BlockKind::BirchSign, + BlockKind::AcaciaSign, + BlockKind::CherrySign, + BlockKind::JungleSign, + BlockKind::DarkOakSign, + BlockKind::PaleOakSign, + BlockKind::MangroveSign, + BlockKind::BambooSign, + BlockKind::OakDoor, + BlockKind::Ladder, + BlockKind::OakWallSign, + BlockKind::SpruceWallSign, + BlockKind::BirchWallSign, + BlockKind::AcaciaWallSign, + BlockKind::CherryWallSign, + BlockKind::JungleWallSign, + BlockKind::DarkOakWallSign, + BlockKind::PaleOakWallSign, + BlockKind::MangroveWallSign, + BlockKind::BambooWallSign, + BlockKind::OakHangingSign, + BlockKind::SpruceHangingSign, + BlockKind::BirchHangingSign, + BlockKind::AcaciaHangingSign, + BlockKind::CherryHangingSign, + BlockKind::JungleHangingSign, + BlockKind::DarkOakHangingSign, + BlockKind::PaleOakHangingSign, + BlockKind::CrimsonHangingSign, + BlockKind::WarpedHangingSign, + BlockKind::MangroveHangingSign, + BlockKind::BambooHangingSign, + BlockKind::OakWallHangingSign, + BlockKind::SpruceWallHangingSign, + BlockKind::BirchWallHangingSign, + BlockKind::AcaciaWallHangingSign, + BlockKind::CherryWallHangingSign, + BlockKind::JungleWallHangingSign, + BlockKind::DarkOakWallHangingSign, + BlockKind::PaleOakWallHangingSign, + BlockKind::MangroveWallHangingSign, + BlockKind::CrimsonWallHangingSign, + BlockKind::WarpedWallHangingSign, + BlockKind::BambooWallHangingSign, + BlockKind::OakPressurePlate, + BlockKind::SprucePressurePlate, + BlockKind::BirchPressurePlate, + BlockKind::JunglePressurePlate, + BlockKind::AcaciaPressurePlate, + BlockKind::CherryPressurePlate, + BlockKind::DarkOakPressurePlate, + BlockKind::PaleOakPressurePlate, + BlockKind::MangrovePressurePlate, + BlockKind::BambooPressurePlate, + BlockKind::Jukebox, + BlockKind::OakFence, + BlockKind::CarvedPumpkin, + BlockKind::JackOLantern, + BlockKind::OakTrapdoor, + BlockKind::SpruceTrapdoor, + BlockKind::BirchTrapdoor, + BlockKind::JungleTrapdoor, + BlockKind::AcaciaTrapdoor, + BlockKind::CherryTrapdoor, + BlockKind::DarkOakTrapdoor, + BlockKind::PaleOakTrapdoor, + BlockKind::MangroveTrapdoor, + BlockKind::BambooTrapdoor, + BlockKind::BrownMushroomBlock, + BlockKind::RedMushroomBlock, + BlockKind::MushroomStem, + BlockKind::Pumpkin, + BlockKind::Melon, + BlockKind::Vine, + BlockKind::GlowLichen, + BlockKind::OakFenceGate, + BlockKind::Cocoa, + BlockKind::SpruceStairs, + BlockKind::BirchStairs, + BlockKind::JungleStairs, + BlockKind::OakButton, + BlockKind::SpruceButton, + BlockKind::BirchButton, + BlockKind::JungleButton, + BlockKind::AcaciaButton, + BlockKind::CherryButton, + BlockKind::DarkOakButton, + BlockKind::PaleOakButton, + BlockKind::MangroveButton, + BlockKind::BambooButton, + BlockKind::TrappedChest, + BlockKind::DaylightDetector, + BlockKind::AcaciaStairs, + BlockKind::CherryStairs, + BlockKind::DarkOakStairs, + BlockKind::PaleOakStairs, + BlockKind::MangroveStairs, + BlockKind::BambooStairs, + BlockKind::BambooMosaicStairs, + BlockKind::WhiteBanner, + BlockKind::OrangeBanner, + BlockKind::MagentaBanner, + BlockKind::LightBlueBanner, + BlockKind::YellowBanner, + BlockKind::LimeBanner, + BlockKind::PinkBanner, + BlockKind::GrayBanner, + BlockKind::LightGrayBanner, + BlockKind::CyanBanner, + BlockKind::PurpleBanner, + BlockKind::BlueBanner, + BlockKind::BrownBanner, + BlockKind::GreenBanner, + BlockKind::RedBanner, + BlockKind::BlackBanner, + BlockKind::WhiteWallBanner, + BlockKind::OrangeWallBanner, + BlockKind::MagentaWallBanner, + BlockKind::LightBlueWallBanner, + BlockKind::YellowWallBanner, + BlockKind::LimeWallBanner, + BlockKind::PinkWallBanner, + BlockKind::GrayWallBanner, + BlockKind::LightGrayWallBanner, + BlockKind::CyanWallBanner, + BlockKind::PurpleWallBanner, + BlockKind::BlueWallBanner, + BlockKind::BrownWallBanner, + BlockKind::GreenWallBanner, + BlockKind::RedWallBanner, + BlockKind::BlackWallBanner, + BlockKind::OakSlab, + BlockKind::SpruceSlab, + BlockKind::BirchSlab, + BlockKind::JungleSlab, + BlockKind::AcaciaSlab, + BlockKind::CherrySlab, + BlockKind::DarkOakSlab, + BlockKind::PaleOakSlab, + BlockKind::MangroveSlab, + BlockKind::BambooSlab, + BlockKind::BambooMosaicSlab, + BlockKind::SpruceFenceGate, + BlockKind::BirchFenceGate, + BlockKind::JungleFenceGate, + BlockKind::AcaciaFenceGate, + BlockKind::CherryFenceGate, + BlockKind::DarkOakFenceGate, + BlockKind::PaleOakFenceGate, + BlockKind::MangroveFenceGate, + BlockKind::BambooFenceGate, + BlockKind::SpruceFence, + BlockKind::BirchFence, + BlockKind::JungleFence, + BlockKind::AcaciaFence, + BlockKind::CherryFence, + BlockKind::DarkOakFence, + BlockKind::PaleOakFence, + BlockKind::MangroveFence, + BlockKind::BambooFence, + BlockKind::SpruceDoor, + BlockKind::BirchDoor, + BlockKind::JungleDoor, + BlockKind::AcaciaDoor, + BlockKind::CherryDoor, + BlockKind::DarkOakDoor, + BlockKind::PaleOakDoor, + BlockKind::MangroveDoor, + BlockKind::BambooDoor, + BlockKind::ChorusPlant, + BlockKind::ChorusFlower, + BlockKind::Bamboo, + BlockKind::Loom, + BlockKind::Barrel, + BlockKind::CartographyTable, + BlockKind::FletchingTable, + BlockKind::Lectern, + BlockKind::SmithingTable, + BlockKind::Campfire, + BlockKind::SoulCampfire, + BlockKind::WarpedStem, + BlockKind::StrippedWarpedStem, + BlockKind::WarpedHyphae, + BlockKind::StrippedWarpedHyphae, + BlockKind::CrimsonStem, + BlockKind::StrippedCrimsonStem, + BlockKind::CrimsonHyphae, + BlockKind::StrippedCrimsonHyphae, + BlockKind::CrimsonPlanks, + BlockKind::WarpedPlanks, + BlockKind::CrimsonSlab, + BlockKind::WarpedSlab, + BlockKind::CrimsonPressurePlate, + BlockKind::WarpedPressurePlate, + BlockKind::CrimsonFence, + BlockKind::WarpedFence, + BlockKind::CrimsonTrapdoor, + BlockKind::WarpedTrapdoor, + BlockKind::CrimsonFenceGate, + BlockKind::WarpedFenceGate, + BlockKind::CrimsonStairs, + BlockKind::WarpedStairs, + BlockKind::CrimsonButton, + BlockKind::WarpedButton, + BlockKind::CrimsonDoor, + BlockKind::WarpedDoor, + BlockKind::CrimsonSign, + BlockKind::WarpedSign, + BlockKind::CrimsonWallSign, + BlockKind::WarpedWallSign, + BlockKind::Composter, + BlockKind::BeeNest, + BlockKind::Beehive, + BlockKind::BigDripleaf, + BlockKind::BigDripleafStem, + ]) +}); +pub static MINEABLE_HOE: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::OakLeaves, + BlockKind::SpruceLeaves, + BlockKind::BirchLeaves, + BlockKind::JungleLeaves, + BlockKind::AcaciaLeaves, + BlockKind::CherryLeaves, + BlockKind::DarkOakLeaves, + BlockKind::PaleOakLeaves, + BlockKind::MangroveLeaves, + BlockKind::AzaleaLeaves, + BlockKind::FloweringAzaleaLeaves, + BlockKind::Sponge, + BlockKind::WetSponge, + BlockKind::HayBlock, + BlockKind::NetherWartBlock, + BlockKind::DriedKelpBlock, + BlockKind::WarpedWartBlock, + BlockKind::Shroomlight, + BlockKind::Target, + BlockKind::SculkSensor, + BlockKind::CalibratedSculkSensor, + BlockKind::Sculk, + BlockKind::SculkVein, + BlockKind::SculkCatalyst, + BlockKind::SculkShrieker, + BlockKind::MossCarpet, + BlockKind::MossBlock, + BlockKind::PaleMossBlock, + BlockKind::PaleMossCarpet, + ]) +}); +pub static MINEABLE_PICKAXE: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::Stone, + BlockKind::Granite, + BlockKind::PolishedGranite, + BlockKind::Diorite, + BlockKind::PolishedDiorite, + BlockKind::Andesite, + BlockKind::PolishedAndesite, + BlockKind::Cobblestone, + BlockKind::GoldOre, + BlockKind::DeepslateGoldOre, + BlockKind::IronOre, + BlockKind::DeepslateIronOre, + BlockKind::CoalOre, + BlockKind::DeepslateCoalOre, + BlockKind::NetherGoldOre, + BlockKind::LapisOre, + BlockKind::DeepslateLapisOre, + BlockKind::LapisBlock, + BlockKind::Dispenser, + BlockKind::Sandstone, + BlockKind::ChiseledSandstone, + BlockKind::CutSandstone, + BlockKind::PoweredRail, + BlockKind::DetectorRail, + BlockKind::StickyPiston, + BlockKind::Piston, + BlockKind::PistonHead, + BlockKind::GoldBlock, + BlockKind::IronBlock, + BlockKind::Bricks, + BlockKind::MossyCobblestone, + BlockKind::Obsidian, + BlockKind::Spawner, + BlockKind::DiamondOre, + BlockKind::DeepslateDiamondOre, + BlockKind::DiamondBlock, + BlockKind::Furnace, + BlockKind::Rail, + BlockKind::CobblestoneStairs, + BlockKind::StonePressurePlate, + BlockKind::IronDoor, + BlockKind::RedstoneOre, + BlockKind::DeepslateRedstoneOre, + BlockKind::StoneButton, + BlockKind::Ice, + BlockKind::Netherrack, + BlockKind::Basalt, + BlockKind::PolishedBasalt, + BlockKind::StoneBricks, + BlockKind::MossyStoneBricks, + BlockKind::CrackedStoneBricks, + BlockKind::ChiseledStoneBricks, + BlockKind::PackedMud, + BlockKind::MudBricks, + BlockKind::InfestedStone, + BlockKind::InfestedCobblestone, + BlockKind::InfestedStoneBricks, + BlockKind::InfestedMossyStoneBricks, + BlockKind::InfestedCrackedStoneBricks, + BlockKind::InfestedChiseledStoneBricks, + BlockKind::IronBars, + BlockKind::CopperBars, + BlockKind::ExposedCopperBars, + BlockKind::WeatheredCopperBars, + BlockKind::OxidizedCopperBars, + BlockKind::WaxedCopperBars, + BlockKind::WaxedExposedCopperBars, + BlockKind::WaxedWeatheredCopperBars, + BlockKind::WaxedOxidizedCopperBars, + BlockKind::IronChain, + BlockKind::CopperChain, + BlockKind::ExposedCopperChain, + BlockKind::WeatheredCopperChain, + BlockKind::OxidizedCopperChain, + BlockKind::WaxedCopperChain, + BlockKind::WaxedExposedCopperChain, + BlockKind::WaxedWeatheredCopperChain, + BlockKind::WaxedOxidizedCopperChain, + BlockKind::BrickStairs, + BlockKind::StoneBrickStairs, + BlockKind::MudBrickStairs, + BlockKind::ResinBricks, + BlockKind::ResinBrickStairs, + BlockKind::ResinBrickSlab, + BlockKind::ResinBrickWall, + BlockKind::ResinBrickWall, + BlockKind::ChiseledResinBricks, + BlockKind::NetherBricks, + BlockKind::NetherBrickFence, + BlockKind::NetherBrickStairs, + BlockKind::EnchantingTable, + BlockKind::BrewingStand, + BlockKind::Cauldron, + BlockKind::WaterCauldron, + BlockKind::LavaCauldron, + BlockKind::PowderSnowCauldron, + BlockKind::EndStone, + BlockKind::SandstoneStairs, + BlockKind::EmeraldOre, + BlockKind::DeepslateEmeraldOre, + BlockKind::EnderChest, + BlockKind::EmeraldBlock, + BlockKind::CobblestoneWall, + BlockKind::MossyCobblestoneWall, + BlockKind::Anvil, + BlockKind::ChippedAnvil, + BlockKind::DamagedAnvil, + BlockKind::LightWeightedPressurePlate, + BlockKind::HeavyWeightedPressurePlate, + BlockKind::RedstoneBlock, + BlockKind::NetherQuartzOre, + BlockKind::Hopper, + BlockKind::QuartzBlock, + BlockKind::ChiseledQuartzBlock, + BlockKind::QuartzPillar, + BlockKind::QuartzStairs, + BlockKind::ActivatorRail, + BlockKind::Dropper, + BlockKind::WhiteTerracotta, + BlockKind::OrangeTerracotta, + BlockKind::MagentaTerracotta, + BlockKind::LightBlueTerracotta, + BlockKind::YellowTerracotta, + BlockKind::LimeTerracotta, + BlockKind::PinkTerracotta, + BlockKind::GrayTerracotta, + BlockKind::LightGrayTerracotta, + BlockKind::CyanTerracotta, + BlockKind::PurpleTerracotta, + BlockKind::BlueTerracotta, + BlockKind::BrownTerracotta, + BlockKind::GreenTerracotta, + BlockKind::RedTerracotta, + BlockKind::BlackTerracotta, + BlockKind::IronTrapdoor, + BlockKind::Prismarine, + BlockKind::PrismarineBricks, + BlockKind::DarkPrismarine, + BlockKind::PrismarineStairs, + BlockKind::PrismarineBrickStairs, + BlockKind::DarkPrismarineStairs, + BlockKind::PrismarineSlab, + BlockKind::PrismarineBrickSlab, + BlockKind::DarkPrismarineSlab, + BlockKind::Terracotta, + BlockKind::CoalBlock, + BlockKind::PackedIce, + BlockKind::RedSandstone, + BlockKind::ChiseledRedSandstone, + BlockKind::CutRedSandstone, + BlockKind::RedSandstoneStairs, + BlockKind::StoneSlab, + BlockKind::SmoothStoneSlab, + BlockKind::SandstoneSlab, + BlockKind::CutSandstoneSlab, + BlockKind::PetrifiedOakSlab, + BlockKind::CobblestoneSlab, + BlockKind::BrickSlab, + BlockKind::StoneBrickSlab, + BlockKind::MudBrickSlab, + BlockKind::NetherBrickSlab, + BlockKind::QuartzSlab, + BlockKind::RedSandstoneSlab, + BlockKind::CutRedSandstoneSlab, + BlockKind::PurpurSlab, + BlockKind::SmoothStone, + BlockKind::SmoothSandstone, + BlockKind::SmoothQuartz, + BlockKind::SmoothRedSandstone, + BlockKind::PurpurBlock, + BlockKind::PurpurPillar, + BlockKind::PurpurStairs, + BlockKind::EndStoneBricks, + BlockKind::MagmaBlock, + BlockKind::RedNetherBricks, + BlockKind::BoneBlock, + BlockKind::Observer, + BlockKind::ShulkerBox, + BlockKind::WhiteShulkerBox, + BlockKind::OrangeShulkerBox, + BlockKind::MagentaShulkerBox, + BlockKind::LightBlueShulkerBox, + BlockKind::YellowShulkerBox, + BlockKind::LimeShulkerBox, + BlockKind::PinkShulkerBox, + BlockKind::GrayShulkerBox, + BlockKind::LightGrayShulkerBox, + BlockKind::CyanShulkerBox, + BlockKind::PurpleShulkerBox, + BlockKind::BlueShulkerBox, + BlockKind::BrownShulkerBox, + BlockKind::GreenShulkerBox, + BlockKind::RedShulkerBox, + BlockKind::BlackShulkerBox, + BlockKind::WhiteGlazedTerracotta, + BlockKind::OrangeGlazedTerracotta, + BlockKind::MagentaGlazedTerracotta, + BlockKind::LightBlueGlazedTerracotta, + BlockKind::YellowGlazedTerracotta, + BlockKind::LimeGlazedTerracotta, + BlockKind::PinkGlazedTerracotta, + BlockKind::GrayGlazedTerracotta, + BlockKind::LightGrayGlazedTerracotta, + BlockKind::CyanGlazedTerracotta, + BlockKind::PurpleGlazedTerracotta, + BlockKind::BlueGlazedTerracotta, + BlockKind::BrownGlazedTerracotta, + BlockKind::GreenGlazedTerracotta, + BlockKind::RedGlazedTerracotta, + BlockKind::BlackGlazedTerracotta, + BlockKind::WhiteConcrete, + BlockKind::OrangeConcrete, + BlockKind::MagentaConcrete, + BlockKind::LightBlueConcrete, + BlockKind::YellowConcrete, + BlockKind::LimeConcrete, + BlockKind::PinkConcrete, + BlockKind::GrayConcrete, + BlockKind::LightGrayConcrete, + BlockKind::CyanConcrete, + BlockKind::PurpleConcrete, + BlockKind::BlueConcrete, + BlockKind::BrownConcrete, + BlockKind::GreenConcrete, + BlockKind::RedConcrete, + BlockKind::BlackConcrete, + BlockKind::DeadTubeCoralBlock, + BlockKind::DeadBrainCoralBlock, + BlockKind::DeadBubbleCoralBlock, + BlockKind::DeadFireCoralBlock, + BlockKind::DeadHornCoralBlock, + BlockKind::TubeCoralBlock, + BlockKind::BrainCoralBlock, + BlockKind::BubbleCoralBlock, + BlockKind::FireCoralBlock, + BlockKind::HornCoralBlock, + BlockKind::DeadTubeCoral, + BlockKind::DeadBrainCoral, + BlockKind::DeadBubbleCoral, + BlockKind::DeadFireCoral, + BlockKind::DeadHornCoral, + BlockKind::DeadTubeCoralFan, + BlockKind::DeadBrainCoralFan, + BlockKind::DeadBubbleCoralFan, + BlockKind::DeadFireCoralFan, + BlockKind::DeadHornCoralFan, + BlockKind::DeadTubeCoralWallFan, + BlockKind::DeadBrainCoralWallFan, + BlockKind::DeadBubbleCoralWallFan, + BlockKind::DeadFireCoralWallFan, + BlockKind::DeadHornCoralWallFan, + BlockKind::BlueIce, + BlockKind::Conduit, + BlockKind::PolishedGraniteStairs, + BlockKind::SmoothRedSandstoneStairs, + BlockKind::MossyStoneBrickStairs, + BlockKind::PolishedDioriteStairs, + BlockKind::MossyCobblestoneStairs, + BlockKind::EndStoneBrickStairs, + BlockKind::StoneStairs, + BlockKind::SmoothSandstoneStairs, + BlockKind::SmoothQuartzStairs, + BlockKind::GraniteStairs, + BlockKind::AndesiteStairs, + BlockKind::RedNetherBrickStairs, + BlockKind::PolishedAndesiteStairs, + BlockKind::DioriteStairs, + BlockKind::PolishedGraniteSlab, + BlockKind::SmoothRedSandstoneSlab, + BlockKind::MossyStoneBrickSlab, + BlockKind::PolishedDioriteSlab, + BlockKind::MossyCobblestoneSlab, + BlockKind::EndStoneBrickSlab, + BlockKind::SmoothSandstoneSlab, + BlockKind::SmoothQuartzSlab, + BlockKind::GraniteSlab, + BlockKind::AndesiteSlab, + BlockKind::RedNetherBrickSlab, + BlockKind::PolishedAndesiteSlab, + BlockKind::DioriteSlab, + BlockKind::BrickWall, + BlockKind::PrismarineWall, + BlockKind::RedSandstoneWall, + BlockKind::MossyStoneBrickWall, + BlockKind::GraniteWall, + BlockKind::StoneBrickWall, + BlockKind::MudBrickWall, + BlockKind::NetherBrickWall, + BlockKind::AndesiteWall, + BlockKind::RedNetherBrickWall, + BlockKind::SandstoneWall, + BlockKind::EndStoneBrickWall, + BlockKind::DioriteWall, + BlockKind::Smoker, + BlockKind::BlastFurnace, + BlockKind::Grindstone, + BlockKind::Stonecutter, + BlockKind::Bell, + BlockKind::Lantern, + BlockKind::SoulLantern, + BlockKind::CopperLantern, + BlockKind::ExposedCopperLantern, + BlockKind::WeatheredCopperLantern, + BlockKind::OxidizedCopperLantern, + BlockKind::WaxedCopperLantern, + BlockKind::WaxedExposedCopperLantern, + BlockKind::WaxedWeatheredCopperLantern, + BlockKind::WaxedOxidizedCopperLantern, + BlockKind::WarpedNylium, + BlockKind::CrimsonNylium, + BlockKind::NetheriteBlock, + BlockKind::AncientDebris, + BlockKind::CryingObsidian, + BlockKind::RespawnAnchor, + BlockKind::Lodestone, + BlockKind::Blackstone, + BlockKind::BlackstoneStairs, + BlockKind::BlackstoneWall, + BlockKind::BlackstoneSlab, + BlockKind::PolishedBlackstone, + BlockKind::PolishedBlackstoneBricks, + BlockKind::CrackedPolishedBlackstoneBricks, + BlockKind::ChiseledPolishedBlackstone, + BlockKind::PolishedBlackstoneBrickSlab, + BlockKind::PolishedBlackstoneBrickStairs, + BlockKind::PolishedBlackstoneBrickWall, + BlockKind::GildedBlackstone, + BlockKind::PolishedBlackstoneStairs, + BlockKind::PolishedBlackstoneSlab, + BlockKind::PolishedBlackstonePressurePlate, + BlockKind::PolishedBlackstoneButton, + BlockKind::PolishedBlackstoneWall, + BlockKind::ChiseledNetherBricks, + BlockKind::CrackedNetherBricks, + BlockKind::QuartzBricks, + BlockKind::AmethystBlock, + BlockKind::BuddingAmethyst, + BlockKind::AmethystCluster, + BlockKind::LargeAmethystBud, + BlockKind::MediumAmethystBud, + BlockKind::SmallAmethystBud, + BlockKind::Tuff, + BlockKind::TuffSlab, + BlockKind::TuffStairs, + BlockKind::TuffWall, + BlockKind::TuffWall, + BlockKind::PolishedTuff, + BlockKind::PolishedTuffSlab, + BlockKind::PolishedTuffStairs, + BlockKind::PolishedTuffWall, + BlockKind::PolishedTuffWall, + BlockKind::ChiseledTuff, + BlockKind::TuffBricks, + BlockKind::TuffBrickSlab, + BlockKind::TuffBrickStairs, + BlockKind::TuffBrickWall, + BlockKind::TuffBrickWall, + BlockKind::ChiseledTuffBricks, + BlockKind::Calcite, + BlockKind::CopperBlock, + BlockKind::ExposedCopper, + BlockKind::WeatheredCopper, + BlockKind::OxidizedCopper, + BlockKind::CopperOre, + BlockKind::DeepslateCopperOre, + BlockKind::OxidizedCutCopper, + BlockKind::WeatheredCutCopper, + BlockKind::ExposedCutCopper, + BlockKind::CutCopper, + BlockKind::OxidizedChiseledCopper, + BlockKind::WeatheredChiseledCopper, + BlockKind::ExposedChiseledCopper, + BlockKind::ChiseledCopper, + BlockKind::WaxedOxidizedChiseledCopper, + BlockKind::WaxedWeatheredChiseledCopper, + BlockKind::WaxedExposedChiseledCopper, + BlockKind::WaxedChiseledCopper, + BlockKind::OxidizedCutCopperStairs, + BlockKind::WeatheredCutCopperStairs, + BlockKind::ExposedCutCopperStairs, + BlockKind::CutCopperStairs, + BlockKind::OxidizedCutCopperSlab, + BlockKind::WeatheredCutCopperSlab, + BlockKind::ExposedCutCopperSlab, + BlockKind::CutCopperSlab, + BlockKind::WaxedCopperBlock, + BlockKind::WaxedWeatheredCopper, + BlockKind::WaxedExposedCopper, + BlockKind::WaxedOxidizedCopper, + BlockKind::WaxedOxidizedCutCopper, + BlockKind::WaxedWeatheredCutCopper, + BlockKind::WaxedExposedCutCopper, + BlockKind::WaxedCutCopper, + BlockKind::WaxedOxidizedCutCopperStairs, + BlockKind::WaxedWeatheredCutCopperStairs, + BlockKind::WaxedExposedCutCopperStairs, + BlockKind::WaxedCutCopperStairs, + BlockKind::WaxedOxidizedCutCopperSlab, + BlockKind::WaxedWeatheredCutCopperSlab, + BlockKind::WaxedExposedCutCopperSlab, + BlockKind::WaxedCutCopperSlab, + BlockKind::CopperDoor, + BlockKind::ExposedCopperDoor, + BlockKind::OxidizedCopperDoor, + BlockKind::WeatheredCopperDoor, + BlockKind::WaxedCopperDoor, + BlockKind::WaxedExposedCopperDoor, + BlockKind::WaxedOxidizedCopperDoor, + BlockKind::WaxedWeatheredCopperDoor, + BlockKind::CopperTrapdoor, + BlockKind::ExposedCopperTrapdoor, + BlockKind::OxidizedCopperTrapdoor, + BlockKind::WeatheredCopperTrapdoor, + BlockKind::WaxedCopperTrapdoor, + BlockKind::WaxedExposedCopperTrapdoor, + BlockKind::WaxedOxidizedCopperTrapdoor, + BlockKind::WaxedWeatheredCopperTrapdoor, + BlockKind::CopperGrate, + BlockKind::ExposedCopperGrate, + BlockKind::WeatheredCopperGrate, + BlockKind::OxidizedCopperGrate, + BlockKind::WaxedCopperGrate, + BlockKind::WaxedExposedCopperGrate, + BlockKind::WaxedWeatheredCopperGrate, + BlockKind::WaxedOxidizedCopperGrate, + BlockKind::CopperBulb, + BlockKind::ExposedCopperBulb, + BlockKind::WeatheredCopperBulb, + BlockKind::OxidizedCopperBulb, + BlockKind::WaxedCopperBulb, + BlockKind::WaxedExposedCopperBulb, + BlockKind::WaxedWeatheredCopperBulb, + BlockKind::WaxedOxidizedCopperBulb, + BlockKind::CopperChest, + BlockKind::ExposedCopperChest, + BlockKind::WeatheredCopperChest, + BlockKind::OxidizedCopperChest, + BlockKind::WaxedCopperChest, + BlockKind::WaxedExposedCopperChest, + BlockKind::WaxedWeatheredCopperChest, + BlockKind::WaxedOxidizedCopperChest, + BlockKind::CopperGolemStatue, + BlockKind::ExposedCopperGolemStatue, + BlockKind::WeatheredCopperGolemStatue, + BlockKind::OxidizedCopperGolemStatue, + BlockKind::WaxedCopperGolemStatue, + BlockKind::WaxedExposedCopperGolemStatue, + BlockKind::WaxedWeatheredCopperGolemStatue, + BlockKind::WaxedOxidizedCopperGolemStatue, + BlockKind::LightningRod, + BlockKind::ExposedLightningRod, + BlockKind::WeatheredLightningRod, + BlockKind::OxidizedLightningRod, + BlockKind::WaxedLightningRod, + BlockKind::WaxedExposedLightningRod, + BlockKind::WaxedWeatheredLightningRod, + BlockKind::WaxedOxidizedLightningRod, + BlockKind::PointedDripstone, + BlockKind::DripstoneBlock, + BlockKind::Deepslate, + BlockKind::CobbledDeepslate, + BlockKind::CobbledDeepslateStairs, + BlockKind::CobbledDeepslateSlab, + BlockKind::CobbledDeepslateWall, + BlockKind::PolishedDeepslate, + BlockKind::PolishedDeepslateStairs, + BlockKind::PolishedDeepslateSlab, + BlockKind::PolishedDeepslateWall, + BlockKind::DeepslateTiles, + BlockKind::DeepslateTileStairs, + BlockKind::DeepslateTileSlab, + BlockKind::DeepslateTileWall, + BlockKind::DeepslateBricks, + BlockKind::DeepslateBrickStairs, + BlockKind::DeepslateBrickSlab, + BlockKind::DeepslateBrickWall, + BlockKind::ChiseledDeepslate, + BlockKind::CrackedDeepslateBricks, + BlockKind::CrackedDeepslateTiles, + BlockKind::InfestedDeepslate, + BlockKind::SmoothBasalt, + BlockKind::RawIronBlock, + BlockKind::RawCopperBlock, + BlockKind::RawGoldBlock, + BlockKind::Crafter, + BlockKind::HeavyCore, + ]) +}); +pub static MINEABLE_SHOVEL: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::GrassBlock, + BlockKind::Dirt, + BlockKind::CoarseDirt, + BlockKind::Podzol, + BlockKind::Sand, + BlockKind::SuspiciousSand, + BlockKind::RedSand, + BlockKind::Gravel, + BlockKind::SuspiciousGravel, + BlockKind::MuddyMangroveRoots, + BlockKind::Farmland, + BlockKind::Snow, + BlockKind::SnowBlock, + BlockKind::Clay, + BlockKind::SoulSand, + BlockKind::SoulSoil, + BlockKind::Mycelium, + BlockKind::DirtPath, + BlockKind::WhiteConcretePowder, + BlockKind::OrangeConcretePowder, + BlockKind::MagentaConcretePowder, + BlockKind::LightBlueConcretePowder, + BlockKind::YellowConcretePowder, + BlockKind::LimeConcretePowder, + BlockKind::PinkConcretePowder, + BlockKind::GrayConcretePowder, + BlockKind::LightGrayConcretePowder, + BlockKind::CyanConcretePowder, + BlockKind::PurpleConcretePowder, + BlockKind::BlueConcretePowder, + BlockKind::BrownConcretePowder, + BlockKind::GreenConcretePowder, + BlockKind::RedConcretePowder, + BlockKind::BlackConcretePowder, + BlockKind::RootedDirt, + BlockKind::Mud, + ]) +}); +pub static MOB_INTERACTABLE_DOORS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::OakDoor, + BlockKind::SpruceDoor, + BlockKind::BirchDoor, + BlockKind::JungleDoor, + BlockKind::AcaciaDoor, + BlockKind::CherryDoor, + BlockKind::DarkOakDoor, + BlockKind::PaleOakDoor, + BlockKind::MangroveDoor, + BlockKind::BambooDoor, + BlockKind::CrimsonDoor, + BlockKind::WarpedDoor, + BlockKind::CopperDoor, + BlockKind::ExposedCopperDoor, + BlockKind::OxidizedCopperDoor, + BlockKind::WeatheredCopperDoor, + BlockKind::WaxedCopperDoor, + BlockKind::WaxedExposedCopperDoor, + BlockKind::WaxedOxidizedCopperDoor, + BlockKind::WaxedWeatheredCopperDoor, + ]) +}); +pub static MOOSHROOMS_SPAWNABLE_ON: LazyLock<RegistryTag<BlockKind>> = + LazyLock::new(|| RegistryTag::new(vec![BlockKind::Mycelium])); +pub static MOSS_REPLACEABLE: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::Stone, + BlockKind::Granite, + BlockKind::Diorite, + BlockKind::Andesite, + BlockKind::GrassBlock, + BlockKind::Dirt, + BlockKind::CoarseDirt, + BlockKind::Podzol, + BlockKind::MuddyMangroveRoots, + BlockKind::Mycelium, + BlockKind::Tuff, + BlockKind::CaveVines, + BlockKind::CaveVinesPlant, + BlockKind::MossBlock, + BlockKind::RootedDirt, + BlockKind::Mud, + BlockKind::Deepslate, + BlockKind::PaleMossBlock, + ]) +}); +pub static MUSHROOM_GROW_BLOCK: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::Podzol, + BlockKind::Mycelium, + BlockKind::WarpedNylium, + BlockKind::CrimsonNylium, + ]) +}); +pub static NEEDS_DIAMOND_TOOL: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::Obsidian, + BlockKind::NetheriteBlock, + BlockKind::AncientDebris, + BlockKind::CryingObsidian, + BlockKind::RespawnAnchor, + ]) +}); +pub static NEEDS_IRON_TOOL: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::GoldOre, + BlockKind::DeepslateGoldOre, + BlockKind::GoldBlock, + BlockKind::DiamondOre, + BlockKind::DeepslateDiamondOre, + BlockKind::DiamondBlock, + BlockKind::RedstoneOre, + BlockKind::DeepslateRedstoneOre, + BlockKind::EmeraldOre, + BlockKind::DeepslateEmeraldOre, + BlockKind::EmeraldBlock, + BlockKind::RawGoldBlock, + ]) +}); +pub static NEEDS_STONE_TOOL: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::IronOre, + BlockKind::DeepslateIronOre, + BlockKind::LapisOre, + BlockKind::DeepslateLapisOre, + BlockKind::LapisBlock, + BlockKind::IronBlock, + BlockKind::CopperBlock, + BlockKind::ExposedCopper, + BlockKind::WeatheredCopper, + BlockKind::OxidizedCopper, + BlockKind::CopperOre, + BlockKind::DeepslateCopperOre, + BlockKind::OxidizedCutCopper, + BlockKind::WeatheredCutCopper, + BlockKind::ExposedCutCopper, + BlockKind::CutCopper, + BlockKind::OxidizedChiseledCopper, + BlockKind::WeatheredChiseledCopper, + BlockKind::ExposedChiseledCopper, + BlockKind::ChiseledCopper, + BlockKind::WaxedOxidizedChiseledCopper, + BlockKind::WaxedWeatheredChiseledCopper, + BlockKind::WaxedExposedChiseledCopper, + BlockKind::WaxedChiseledCopper, + BlockKind::OxidizedCutCopperStairs, + BlockKind::WeatheredCutCopperStairs, + BlockKind::ExposedCutCopperStairs, + BlockKind::CutCopperStairs, + BlockKind::OxidizedCutCopperSlab, + BlockKind::WeatheredCutCopperSlab, + BlockKind::ExposedCutCopperSlab, + BlockKind::CutCopperSlab, + BlockKind::WaxedCopperBlock, + BlockKind::WaxedWeatheredCopper, + BlockKind::WaxedExposedCopper, + BlockKind::WaxedOxidizedCopper, + BlockKind::WaxedOxidizedCutCopper, + BlockKind::WaxedWeatheredCutCopper, + BlockKind::WaxedExposedCutCopper, + BlockKind::WaxedCutCopper, + BlockKind::WaxedOxidizedCutCopperStairs, + BlockKind::WaxedWeatheredCutCopperStairs, + BlockKind::WaxedExposedCutCopperStairs, + BlockKind::WaxedCutCopperStairs, + BlockKind::WaxedOxidizedCutCopperSlab, + BlockKind::WaxedWeatheredCutCopperSlab, + BlockKind::WaxedExposedCutCopperSlab, + BlockKind::WaxedCutCopperSlab, + BlockKind::CopperTrapdoor, + BlockKind::ExposedCopperTrapdoor, + BlockKind::OxidizedCopperTrapdoor, + BlockKind::WeatheredCopperTrapdoor, + BlockKind::WaxedCopperTrapdoor, + BlockKind::WaxedExposedCopperTrapdoor, + BlockKind::WaxedOxidizedCopperTrapdoor, + BlockKind::WaxedWeatheredCopperTrapdoor, + BlockKind::CopperGrate, + BlockKind::ExposedCopperGrate, + BlockKind::WeatheredCopperGrate, + BlockKind::OxidizedCopperGrate, + BlockKind::WaxedCopperGrate, + BlockKind::WaxedExposedCopperGrate, + BlockKind::WaxedWeatheredCopperGrate, + BlockKind::WaxedOxidizedCopperGrate, + BlockKind::CopperBulb, + BlockKind::ExposedCopperBulb, + BlockKind::WeatheredCopperBulb, + BlockKind::OxidizedCopperBulb, + BlockKind::WaxedCopperBulb, + BlockKind::WaxedExposedCopperBulb, + BlockKind::WaxedWeatheredCopperBulb, + BlockKind::WaxedOxidizedCopperBulb, + BlockKind::CopperChest, + BlockKind::ExposedCopperChest, + BlockKind::WeatheredCopperChest, + BlockKind::OxidizedCopperChest, + BlockKind::WaxedCopperChest, + BlockKind::WaxedExposedCopperChest, + BlockKind::WaxedWeatheredCopperChest, + BlockKind::WaxedOxidizedCopperChest, + BlockKind::LightningRod, + BlockKind::ExposedLightningRod, + BlockKind::WeatheredLightningRod, + BlockKind::OxidizedLightningRod, + BlockKind::WaxedLightningRod, + BlockKind::WaxedExposedLightningRod, + BlockKind::WaxedWeatheredLightningRod, + BlockKind::WaxedOxidizedLightningRod, + BlockKind::RawIronBlock, + BlockKind::RawCopperBlock, + BlockKind::Crafter, + ]) +}); +pub static NETHER_CARVER_REPLACEABLES: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::Stone, + BlockKind::Granite, + BlockKind::Diorite, + BlockKind::Andesite, + BlockKind::GrassBlock, + BlockKind::Dirt, + BlockKind::CoarseDirt, + BlockKind::Podzol, + BlockKind::MuddyMangroveRoots, + BlockKind::Netherrack, + BlockKind::SoulSand, + BlockKind::SoulSoil, + BlockKind::Basalt, + BlockKind::Mycelium, + BlockKind::NetherWartBlock, + BlockKind::WarpedNylium, + BlockKind::WarpedWartBlock, + BlockKind::CrimsonNylium, + BlockKind::Blackstone, + BlockKind::Tuff, + BlockKind::MossBlock, + BlockKind::RootedDirt, + BlockKind::Mud, + BlockKind::Deepslate, + BlockKind::PaleMossBlock, + ]) +}); +pub static NYLIUM: LazyLock<RegistryTag<BlockKind>> = + LazyLock::new(|| RegistryTag::new(vec![BlockKind::WarpedNylium, BlockKind::CrimsonNylium])); +pub static OAK_LOGS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::OakLog, + BlockKind::StrippedOakLog, + BlockKind::OakWood, + BlockKind::StrippedOakWood, + ]) +}); +pub static OCCLUDES_VIBRATION_SIGNALS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::WhiteWool, + BlockKind::OrangeWool, + BlockKind::MagentaWool, + BlockKind::LightBlueWool, + BlockKind::YellowWool, + BlockKind::LimeWool, + BlockKind::PinkWool, + BlockKind::GrayWool, + BlockKind::LightGrayWool, + BlockKind::CyanWool, + BlockKind::PurpleWool, + BlockKind::BlueWool, + BlockKind::BrownWool, + BlockKind::GreenWool, + BlockKind::RedWool, + BlockKind::BlackWool, + ]) +}); +pub static OVERWORLD_CARVER_REPLACEABLES: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::Stone, + BlockKind::Granite, + BlockKind::Diorite, + BlockKind::Andesite, + BlockKind::GrassBlock, + BlockKind::Dirt, + BlockKind::CoarseDirt, + BlockKind::Podzol, + BlockKind::Water, + BlockKind::Sand, + BlockKind::SuspiciousSand, + BlockKind::RedSand, + BlockKind::Gravel, + BlockKind::SuspiciousGravel, + BlockKind::IronOre, + BlockKind::DeepslateIronOre, + BlockKind::MuddyMangroveRoots, + BlockKind::Sandstone, + BlockKind::Snow, + BlockKind::SnowBlock, + BlockKind::Mycelium, + BlockKind::WhiteTerracotta, + BlockKind::OrangeTerracotta, + BlockKind::MagentaTerracotta, + BlockKind::LightBlueTerracotta, + BlockKind::YellowTerracotta, + BlockKind::LimeTerracotta, + BlockKind::PinkTerracotta, + BlockKind::GrayTerracotta, + BlockKind::LightGrayTerracotta, + BlockKind::CyanTerracotta, + BlockKind::PurpleTerracotta, + BlockKind::BlueTerracotta, + BlockKind::BrownTerracotta, + BlockKind::GreenTerracotta, + BlockKind::RedTerracotta, + BlockKind::BlackTerracotta, + BlockKind::Terracotta, + BlockKind::PackedIce, + BlockKind::RedSandstone, + BlockKind::Tuff, + BlockKind::Calcite, + BlockKind::PowderSnow, + BlockKind::CopperOre, + BlockKind::DeepslateCopperOre, + BlockKind::MossBlock, + BlockKind::RootedDirt, + BlockKind::Mud, + BlockKind::Deepslate, + BlockKind::RawIronBlock, + BlockKind::RawCopperBlock, + BlockKind::PaleMossBlock, + ]) +}); +pub static OVERWORLD_NATURAL_LOGS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::OakLog, + BlockKind::SpruceLog, + BlockKind::BirchLog, + BlockKind::JungleLog, + BlockKind::AcaciaLog, + BlockKind::CherryLog, + BlockKind::DarkOakLog, + BlockKind::PaleOakLog, + BlockKind::MangroveLog, + ]) +}); +pub static PALE_OAK_LOGS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::PaleOakWood, + BlockKind::PaleOakLog, + BlockKind::StrippedPaleOakLog, + BlockKind::StrippedPaleOakWood, + ]) +}); +pub static PARROTS_SPAWNABLE_ON: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::Air, + BlockKind::GrassBlock, + BlockKind::PaleOakWood, + BlockKind::OakLog, + BlockKind::SpruceLog, + BlockKind::BirchLog, + BlockKind::JungleLog, + BlockKind::AcaciaLog, + BlockKind::CherryLog, + BlockKind::DarkOakLog, + BlockKind::PaleOakLog, + BlockKind::MangroveLog, + BlockKind::StrippedSpruceLog, + BlockKind::StrippedBirchLog, + BlockKind::StrippedJungleLog, + BlockKind::StrippedAcaciaLog, + BlockKind::StrippedCherryLog, + BlockKind::StrippedDarkOakLog, + BlockKind::StrippedPaleOakLog, + BlockKind::StrippedOakLog, + BlockKind::StrippedMangroveLog, + BlockKind::OakWood, + BlockKind::SpruceWood, + BlockKind::BirchWood, + BlockKind::JungleWood, + BlockKind::AcaciaWood, + BlockKind::CherryWood, + BlockKind::DarkOakWood, + BlockKind::MangroveWood, + BlockKind::StrippedOakWood, + BlockKind::StrippedSpruceWood, + BlockKind::StrippedBirchWood, + BlockKind::StrippedJungleWood, + BlockKind::StrippedAcaciaWood, + BlockKind::StrippedCherryWood, + BlockKind::StrippedDarkOakWood, + BlockKind::StrippedPaleOakWood, + BlockKind::StrippedMangroveWood, + BlockKind::OakLeaves, + BlockKind::SpruceLeaves, + BlockKind::BirchLeaves, + BlockKind::JungleLeaves, + BlockKind::AcaciaLeaves, + BlockKind::CherryLeaves, + BlockKind::DarkOakLeaves, + BlockKind::PaleOakLeaves, + BlockKind::MangroveLeaves, + BlockKind::AzaleaLeaves, + BlockKind::FloweringAzaleaLeaves, + BlockKind::WarpedStem, + BlockKind::StrippedWarpedStem, + BlockKind::WarpedHyphae, + BlockKind::StrippedWarpedHyphae, + BlockKind::CrimsonStem, + BlockKind::StrippedCrimsonStem, + BlockKind::CrimsonHyphae, + BlockKind::StrippedCrimsonHyphae, + ]) +}); +pub static PIGLIN_REPELLENTS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::SoulFire, + BlockKind::SoulTorch, + BlockKind::SoulWallTorch, + BlockKind::SoulLantern, + BlockKind::SoulCampfire, + ]) +}); +pub static PLANKS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::OakPlanks, + BlockKind::SprucePlanks, + BlockKind::BirchPlanks, + BlockKind::JunglePlanks, + BlockKind::AcaciaPlanks, + BlockKind::CherryPlanks, + BlockKind::DarkOakPlanks, + BlockKind::PaleOakPlanks, + BlockKind::MangrovePlanks, + BlockKind::BambooPlanks, + BlockKind::CrimsonPlanks, + BlockKind::WarpedPlanks, + ]) +}); +pub static POLAR_BEARS_SPAWNABLE_ON_ALTERNATE: LazyLock<RegistryTag<BlockKind>> = + LazyLock::new(|| RegistryTag::new(vec![BlockKind::Ice])); +pub static PORTALS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::NetherPortal, + BlockKind::EndPortal, + BlockKind::EndGateway, + ]) +}); +pub static PRESSURE_PLATES: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::StonePressurePlate, + BlockKind::OakPressurePlate, + BlockKind::SprucePressurePlate, + BlockKind::BirchPressurePlate, + BlockKind::JunglePressurePlate, + BlockKind::AcaciaPressurePlate, + BlockKind::CherryPressurePlate, + BlockKind::DarkOakPressurePlate, + BlockKind::PaleOakPressurePlate, + BlockKind::MangrovePressurePlate, + BlockKind::BambooPressurePlate, + BlockKind::LightWeightedPressurePlate, + BlockKind::HeavyWeightedPressurePlate, + BlockKind::CrimsonPressurePlate, + BlockKind::WarpedPressurePlate, + BlockKind::PolishedBlackstonePressurePlate, + ]) +}); +pub static PREVENT_MOB_SPAWNING_INSIDE: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::PoweredRail, + BlockKind::DetectorRail, + BlockKind::Rail, + BlockKind::ActivatorRail, + ]) +}); +pub static RABBITS_SPAWNABLE_ON: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::GrassBlock, + BlockKind::Sand, + BlockKind::Snow, + BlockKind::SnowBlock, + ]) +}); +pub static RAILS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::PoweredRail, + BlockKind::DetectorRail, + BlockKind::Rail, + BlockKind::ActivatorRail, + ]) +}); +pub static REDSTONE_ORES: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::RedstoneOre, + BlockKind::DeepslateRedstoneOre, + ]) +}); +pub static REPLACEABLE: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::Air, + BlockKind::Water, + BlockKind::Lava, + BlockKind::ShortGrass, + BlockKind::Fern, + BlockKind::DeadBush, + BlockKind::Bush, + BlockKind::ShortDryGrass, + BlockKind::TallDryGrass, + BlockKind::Seagrass, + BlockKind::TallSeagrass, + BlockKind::Fire, + BlockKind::SoulFire, + BlockKind::Snow, + BlockKind::Vine, + BlockKind::GlowLichen, + BlockKind::ResinClump, + BlockKind::Light, + BlockKind::TallGrass, + BlockKind::LargeFern, + BlockKind::StructureVoid, + BlockKind::VoidAir, + BlockKind::CaveAir, + BlockKind::BubbleColumn, + BlockKind::WarpedRoots, + BlockKind::NetherSprouts, + BlockKind::CrimsonRoots, + BlockKind::LeafLitter, + BlockKind::HangingRoots, + ]) +}); +pub static REPLACEABLE_BY_MUSHROOMS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::Water, + BlockKind::OakLeaves, + BlockKind::SpruceLeaves, + BlockKind::BirchLeaves, + BlockKind::JungleLeaves, + BlockKind::AcaciaLeaves, + BlockKind::CherryLeaves, + BlockKind::DarkOakLeaves, + BlockKind::PaleOakLeaves, + BlockKind::MangroveLeaves, + BlockKind::AzaleaLeaves, + BlockKind::FloweringAzaleaLeaves, + BlockKind::ShortGrass, + BlockKind::Fern, + BlockKind::DeadBush, + BlockKind::Bush, + BlockKind::ShortDryGrass, + BlockKind::TallDryGrass, + BlockKind::Seagrass, + BlockKind::TallSeagrass, + BlockKind::Dandelion, + BlockKind::Torchflower, + BlockKind::Poppy, + BlockKind::BlueOrchid, + BlockKind::Allium, + BlockKind::AzureBluet, + BlockKind::RedTulip, + BlockKind::OrangeTulip, + BlockKind::WhiteTulip, + BlockKind::PinkTulip, + BlockKind::OxeyeDaisy, + BlockKind::Cornflower, + BlockKind::WitherRose, + BlockKind::LilyOfTheValley, + BlockKind::BrownMushroom, + BlockKind::RedMushroom, + BlockKind::BrownMushroomBlock, + BlockKind::RedMushroomBlock, + BlockKind::Vine, + BlockKind::GlowLichen, + BlockKind::Sunflower, + BlockKind::Lilac, + BlockKind::RoseBush, + BlockKind::Peony, + BlockKind::TallGrass, + BlockKind::LargeFern, + BlockKind::PitcherPlant, + BlockKind::WarpedRoots, + BlockKind::NetherSprouts, + BlockKind::CrimsonRoots, + BlockKind::LeafLitter, + BlockKind::HangingRoots, + BlockKind::PaleMossCarpet, + BlockKind::OpenEyeblossom, + BlockKind::ClosedEyeblossom, + BlockKind::FireflyBush, + ]) +}); +pub static REPLACEABLE_BY_TREES: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::Water, + BlockKind::OakLeaves, + BlockKind::SpruceLeaves, + BlockKind::BirchLeaves, + BlockKind::JungleLeaves, + BlockKind::AcaciaLeaves, + BlockKind::CherryLeaves, + BlockKind::DarkOakLeaves, + BlockKind::PaleOakLeaves, + BlockKind::MangroveLeaves, + BlockKind::AzaleaLeaves, + BlockKind::FloweringAzaleaLeaves, + BlockKind::ShortGrass, + BlockKind::Fern, + BlockKind::DeadBush, + BlockKind::Bush, + BlockKind::ShortDryGrass, + BlockKind::TallDryGrass, + BlockKind::Seagrass, + BlockKind::TallSeagrass, + BlockKind::Dandelion, + BlockKind::Torchflower, + BlockKind::Poppy, + BlockKind::BlueOrchid, + BlockKind::Allium, + BlockKind::AzureBluet, + BlockKind::RedTulip, + BlockKind::OrangeTulip, + BlockKind::WhiteTulip, + BlockKind::PinkTulip, + BlockKind::OxeyeDaisy, + BlockKind::Cornflower, + BlockKind::WitherRose, + BlockKind::LilyOfTheValley, + BlockKind::Vine, + BlockKind::GlowLichen, + BlockKind::Sunflower, + BlockKind::Lilac, + BlockKind::RoseBush, + BlockKind::Peony, + BlockKind::TallGrass, + BlockKind::LargeFern, + BlockKind::PitcherPlant, + BlockKind::WarpedRoots, + BlockKind::NetherSprouts, + BlockKind::CrimsonRoots, + BlockKind::LeafLitter, + BlockKind::HangingRoots, + BlockKind::PaleMossCarpet, + BlockKind::OpenEyeblossom, + BlockKind::ClosedEyeblossom, + BlockKind::FireflyBush, + ]) +}); +pub static SAND: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::Sand, + BlockKind::SuspiciousSand, + BlockKind::RedSand, + ]) +}); +pub static SAPLINGS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::OakSapling, + BlockKind::SpruceSapling, + BlockKind::BirchSapling, + BlockKind::JungleSapling, + BlockKind::AcaciaSapling, + BlockKind::CherrySapling, + BlockKind::DarkOakSapling, + BlockKind::PaleOakSapling, + BlockKind::MangrovePropagule, + BlockKind::Azalea, + BlockKind::FloweringAzalea, + ]) +}); +pub static SCULK_REPLACEABLE: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::Stone, + BlockKind::Granite, + BlockKind::Diorite, + BlockKind::Andesite, + BlockKind::GrassBlock, + BlockKind::Dirt, + BlockKind::CoarseDirt, + BlockKind::Podzol, + BlockKind::Sand, + BlockKind::RedSand, + BlockKind::Gravel, + BlockKind::MuddyMangroveRoots, + BlockKind::Sandstone, + BlockKind::Clay, + BlockKind::Netherrack, + BlockKind::SoulSand, + BlockKind::SoulSoil, + BlockKind::Basalt, + BlockKind::Mycelium, + BlockKind::EndStone, + BlockKind::WhiteTerracotta, + BlockKind::OrangeTerracotta, + BlockKind::MagentaTerracotta, + BlockKind::LightBlueTerracotta, + BlockKind::YellowTerracotta, + BlockKind::LimeTerracotta, + BlockKind::PinkTerracotta, + BlockKind::GrayTerracotta, + BlockKind::LightGrayTerracotta, + BlockKind::CyanTerracotta, + BlockKind::PurpleTerracotta, + BlockKind::BlueTerracotta, + BlockKind::BrownTerracotta, + BlockKind::GreenTerracotta, + BlockKind::RedTerracotta, + BlockKind::BlackTerracotta, + BlockKind::Terracotta, + BlockKind::RedSandstone, + BlockKind::WarpedNylium, + BlockKind::CrimsonNylium, + BlockKind::Blackstone, + BlockKind::Tuff, + BlockKind::Calcite, + BlockKind::DripstoneBlock, + BlockKind::MossBlock, + BlockKind::RootedDirt, + BlockKind::Mud, + BlockKind::Deepslate, + BlockKind::SmoothBasalt, + BlockKind::PaleMossBlock, + ]) +}); +pub static SCULK_REPLACEABLE_WORLD_GEN: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::Stone, + BlockKind::Granite, + BlockKind::Diorite, + BlockKind::Andesite, + BlockKind::GrassBlock, + BlockKind::Dirt, + BlockKind::CoarseDirt, + BlockKind::Podzol, + BlockKind::Sand, + BlockKind::RedSand, + BlockKind::Gravel, + BlockKind::MuddyMangroveRoots, + BlockKind::Sandstone, + BlockKind::Clay, + BlockKind::Netherrack, + BlockKind::SoulSand, + BlockKind::SoulSoil, + BlockKind::Basalt, + BlockKind::Mycelium, + BlockKind::EndStone, + BlockKind::WhiteTerracotta, + BlockKind::OrangeTerracotta, + BlockKind::MagentaTerracotta, + BlockKind::LightBlueTerracotta, + BlockKind::YellowTerracotta, + BlockKind::LimeTerracotta, + BlockKind::PinkTerracotta, + BlockKind::GrayTerracotta, + BlockKind::LightGrayTerracotta, + BlockKind::CyanTerracotta, + BlockKind::PurpleTerracotta, + BlockKind::BlueTerracotta, + BlockKind::BrownTerracotta, + BlockKind::GreenTerracotta, + BlockKind::RedTerracotta, + BlockKind::BlackTerracotta, + BlockKind::Terracotta, + BlockKind::RedSandstone, + BlockKind::WarpedNylium, + BlockKind::CrimsonNylium, + BlockKind::Blackstone, + BlockKind::Tuff, + BlockKind::Calcite, + BlockKind::DripstoneBlock, + BlockKind::MossBlock, + BlockKind::RootedDirt, + BlockKind::Mud, + BlockKind::Deepslate, + BlockKind::CobbledDeepslate, + BlockKind::PolishedDeepslate, + BlockKind::DeepslateTiles, + BlockKind::DeepslateBricks, + BlockKind::CrackedDeepslateBricks, + BlockKind::CrackedDeepslateTiles, + BlockKind::SmoothBasalt, + BlockKind::PaleMossBlock, + ]) +}); +pub static SHULKER_BOXES: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::ShulkerBox, + BlockKind::WhiteShulkerBox, + BlockKind::OrangeShulkerBox, + BlockKind::MagentaShulkerBox, + BlockKind::LightBlueShulkerBox, + BlockKind::YellowShulkerBox, + BlockKind::LimeShulkerBox, + BlockKind::PinkShulkerBox, + BlockKind::GrayShulkerBox, + BlockKind::LightGrayShulkerBox, + BlockKind::CyanShulkerBox, + BlockKind::PurpleShulkerBox, + BlockKind::BlueShulkerBox, + BlockKind::BrownShulkerBox, + BlockKind::GreenShulkerBox, + BlockKind::RedShulkerBox, + BlockKind::BlackShulkerBox, + ]) +}); +pub static SIGNS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::OakSign, + BlockKind::SpruceSign, + BlockKind::BirchSign, + BlockKind::AcaciaSign, + BlockKind::CherrySign, + BlockKind::JungleSign, + BlockKind::DarkOakSign, + BlockKind::PaleOakSign, + BlockKind::MangroveSign, + BlockKind::BambooSign, + BlockKind::OakWallSign, + BlockKind::SpruceWallSign, + BlockKind::BirchWallSign, + BlockKind::AcaciaWallSign, + BlockKind::CherryWallSign, + BlockKind::JungleWallSign, + BlockKind::DarkOakWallSign, + BlockKind::PaleOakWallSign, + BlockKind::MangroveWallSign, + BlockKind::BambooWallSign, + BlockKind::CrimsonSign, + BlockKind::WarpedSign, + BlockKind::CrimsonWallSign, + BlockKind::WarpedWallSign, + ]) +}); +pub static SLABS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::ResinBrickSlab, + BlockKind::PrismarineSlab, + BlockKind::PrismarineBrickSlab, + BlockKind::DarkPrismarineSlab, + BlockKind::OakSlab, + BlockKind::SpruceSlab, + BlockKind::BirchSlab, + BlockKind::JungleSlab, + BlockKind::AcaciaSlab, + BlockKind::CherrySlab, + BlockKind::DarkOakSlab, + BlockKind::PaleOakSlab, + BlockKind::MangroveSlab, + BlockKind::BambooSlab, + BlockKind::BambooMosaicSlab, + BlockKind::StoneSlab, + BlockKind::SmoothStoneSlab, + BlockKind::SandstoneSlab, + BlockKind::CutSandstoneSlab, + BlockKind::PetrifiedOakSlab, + BlockKind::CobblestoneSlab, + BlockKind::BrickSlab, + BlockKind::StoneBrickSlab, + BlockKind::MudBrickSlab, + BlockKind::NetherBrickSlab, + BlockKind::QuartzSlab, + BlockKind::RedSandstoneSlab, + BlockKind::CutRedSandstoneSlab, + BlockKind::PurpurSlab, + BlockKind::PolishedGraniteSlab, + BlockKind::SmoothRedSandstoneSlab, + BlockKind::MossyStoneBrickSlab, + BlockKind::PolishedDioriteSlab, + BlockKind::MossyCobblestoneSlab, + BlockKind::EndStoneBrickSlab, + BlockKind::SmoothSandstoneSlab, + BlockKind::SmoothQuartzSlab, + BlockKind::GraniteSlab, + BlockKind::AndesiteSlab, + BlockKind::RedNetherBrickSlab, + BlockKind::PolishedAndesiteSlab, + BlockKind::DioriteSlab, + BlockKind::CrimsonSlab, + BlockKind::WarpedSlab, + BlockKind::BlackstoneSlab, + BlockKind::PolishedBlackstoneBrickSlab, + BlockKind::PolishedBlackstoneSlab, + BlockKind::TuffSlab, + BlockKind::PolishedTuffSlab, + BlockKind::TuffBrickSlab, + BlockKind::OxidizedCutCopperSlab, + BlockKind::WeatheredCutCopperSlab, + BlockKind::ExposedCutCopperSlab, + BlockKind::CutCopperSlab, + BlockKind::WaxedOxidizedCutCopperSlab, + BlockKind::WaxedWeatheredCutCopperSlab, + BlockKind::WaxedExposedCutCopperSlab, + BlockKind::WaxedCutCopperSlab, + BlockKind::CobbledDeepslateSlab, + BlockKind::PolishedDeepslateSlab, + BlockKind::DeepslateTileSlab, + BlockKind::DeepslateBrickSlab, + ]) +}); +pub static SMALL_DRIPLEAF_PLACEABLE: LazyLock<RegistryTag<BlockKind>> = + LazyLock::new(|| RegistryTag::new(vec![BlockKind::Clay, BlockKind::MossBlock])); +pub static SMALL_FLOWERS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::Dandelion, + BlockKind::Torchflower, + BlockKind::Poppy, + BlockKind::BlueOrchid, + BlockKind::Allium, + BlockKind::AzureBluet, + BlockKind::RedTulip, + BlockKind::OrangeTulip, + BlockKind::WhiteTulip, + BlockKind::PinkTulip, + BlockKind::OxeyeDaisy, + BlockKind::Cornflower, + BlockKind::WitherRose, + BlockKind::LilyOfTheValley, + BlockKind::OpenEyeblossom, + BlockKind::ClosedEyeblossom, + ]) +}); +pub static SMELTS_TO_GLASS: LazyLock<RegistryTag<BlockKind>> = + LazyLock::new(|| RegistryTag::new(vec![BlockKind::Sand, BlockKind::RedSand])); +pub static SNAPS_GOAT_HORN: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::Stone, + BlockKind::IronOre, + BlockKind::CoalOre, + BlockKind::OakLog, + BlockKind::SpruceLog, + BlockKind::BirchLog, + BlockKind::JungleLog, + BlockKind::AcaciaLog, + BlockKind::CherryLog, + BlockKind::DarkOakLog, + BlockKind::PaleOakLog, + BlockKind::MangroveLog, + BlockKind::EmeraldOre, + BlockKind::PackedIce, + BlockKind::CopperOre, + ]) +}); +pub static SNIFFER_DIGGABLE_BLOCK: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::GrassBlock, + BlockKind::Dirt, + BlockKind::CoarseDirt, + BlockKind::Podzol, + BlockKind::MuddyMangroveRoots, + BlockKind::MossBlock, + BlockKind::RootedDirt, + BlockKind::Mud, + BlockKind::PaleMossBlock, + ]) +}); +pub static SNIFFER_EGG_HATCH_BOOST: LazyLock<RegistryTag<BlockKind>> = + LazyLock::new(|| RegistryTag::new(vec![BlockKind::MossBlock])); +pub static SNOW: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::Snow, + BlockKind::SnowBlock, + BlockKind::PowderSnow, + ]) +}); +pub static SNOW_LAYER_CAN_SURVIVE_ON: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::SoulSand, + BlockKind::HoneyBlock, + BlockKind::Mud, + ]) +}); +pub static SNOW_LAYER_CANNOT_SURVIVE_ON: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::Ice, + BlockKind::Barrier, + BlockKind::PackedIce, + ]) +}); +pub static SOUL_FIRE_BASE_BLOCKS: LazyLock<RegistryTag<BlockKind>> = + LazyLock::new(|| RegistryTag::new(vec![BlockKind::SoulSand, BlockKind::SoulSoil])); +pub static SOUL_SPEED_BLOCKS: LazyLock<RegistryTag<BlockKind>> = + LazyLock::new(|| RegistryTag::new(vec![BlockKind::SoulSand, BlockKind::SoulSoil])); +pub static SPRUCE_LOGS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::SpruceLog, + BlockKind::StrippedSpruceLog, + BlockKind::SpruceWood, + BlockKind::StrippedSpruceWood, + ]) +}); +pub static STAIRS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::OakStairs, + BlockKind::CobblestoneStairs, + BlockKind::BrickStairs, + BlockKind::StoneBrickStairs, + BlockKind::MudBrickStairs, + BlockKind::ResinBrickStairs, + BlockKind::NetherBrickStairs, + BlockKind::SandstoneStairs, + BlockKind::SpruceStairs, + BlockKind::BirchStairs, + BlockKind::JungleStairs, + BlockKind::QuartzStairs, + BlockKind::AcaciaStairs, + BlockKind::CherryStairs, + BlockKind::DarkOakStairs, + BlockKind::PaleOakStairs, + BlockKind::MangroveStairs, + BlockKind::BambooStairs, + BlockKind::BambooMosaicStairs, + BlockKind::PrismarineStairs, + BlockKind::PrismarineBrickStairs, + BlockKind::DarkPrismarineStairs, + BlockKind::RedSandstoneStairs, + BlockKind::PurpurStairs, + BlockKind::PolishedGraniteStairs, + BlockKind::SmoothRedSandstoneStairs, + BlockKind::MossyStoneBrickStairs, + BlockKind::PolishedDioriteStairs, + BlockKind::MossyCobblestoneStairs, + BlockKind::EndStoneBrickStairs, + BlockKind::StoneStairs, + BlockKind::SmoothSandstoneStairs, + BlockKind::SmoothQuartzStairs, + BlockKind::GraniteStairs, + BlockKind::AndesiteStairs, + BlockKind::RedNetherBrickStairs, + BlockKind::PolishedAndesiteStairs, + BlockKind::DioriteStairs, + BlockKind::CrimsonStairs, + BlockKind::WarpedStairs, + BlockKind::BlackstoneStairs, + BlockKind::PolishedBlackstoneBrickStairs, + BlockKind::PolishedBlackstoneStairs, + BlockKind::TuffStairs, + BlockKind::PolishedTuffStairs, + BlockKind::TuffBrickStairs, + BlockKind::OxidizedCutCopperStairs, + BlockKind::WeatheredCutCopperStairs, + BlockKind::ExposedCutCopperStairs, + BlockKind::CutCopperStairs, + BlockKind::WaxedOxidizedCutCopperStairs, + BlockKind::WaxedWeatheredCutCopperStairs, + BlockKind::WaxedExposedCutCopperStairs, + BlockKind::WaxedCutCopperStairs, + BlockKind::CobbledDeepslateStairs, + BlockKind::PolishedDeepslateStairs, + BlockKind::DeepslateTileStairs, + BlockKind::DeepslateBrickStairs, + ]) +}); +pub static STANDING_SIGNS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::OakSign, + BlockKind::SpruceSign, + BlockKind::BirchSign, + BlockKind::AcaciaSign, + BlockKind::CherrySign, + BlockKind::JungleSign, + BlockKind::DarkOakSign, + BlockKind::PaleOakSign, + BlockKind::MangroveSign, + BlockKind::BambooSign, + BlockKind::CrimsonSign, + BlockKind::WarpedSign, + ]) +}); +pub static STONE_BRICKS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::StoneBricks, + BlockKind::MossyStoneBricks, + BlockKind::CrackedStoneBricks, + BlockKind::ChiseledStoneBricks, + ]) +}); +pub static STONE_BUTTONS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::StoneButton, + BlockKind::PolishedBlackstoneButton, + ]) +}); +pub static STONE_ORE_REPLACEABLES: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::Stone, + BlockKind::Granite, + BlockKind::Diorite, + BlockKind::Andesite, + ]) +}); +pub static STONE_PRESSURE_PLATES: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::StonePressurePlate, + BlockKind::PolishedBlackstonePressurePlate, + ]) +}); +pub static STRIDER_WARM_BLOCKS: LazyLock<RegistryTag<BlockKind>> = + LazyLock::new(|| RegistryTag::new(vec![BlockKind::Lava])); +pub static SWORD_EFFICIENT: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::OakLeaves, + BlockKind::SpruceLeaves, + BlockKind::BirchLeaves, + BlockKind::JungleLeaves, + BlockKind::AcaciaLeaves, + BlockKind::CherryLeaves, + BlockKind::DarkOakLeaves, + BlockKind::PaleOakLeaves, + BlockKind::MangroveLeaves, + BlockKind::AzaleaLeaves, + BlockKind::FloweringAzaleaLeaves, + BlockKind::CarvedPumpkin, + BlockKind::JackOLantern, + BlockKind::Pumpkin, + BlockKind::Melon, + BlockKind::Vine, + BlockKind::GlowLichen, + BlockKind::Cocoa, + BlockKind::ChorusPlant, + BlockKind::ChorusFlower, + BlockKind::BigDripleaf, + BlockKind::BigDripleafStem, + ]) +}); +pub static SWORD_INSTANTLY_MINES: LazyLock<RegistryTag<BlockKind>> = + LazyLock::new(|| RegistryTag::new(vec![BlockKind::BambooSapling, BlockKind::Bamboo])); +pub static TERRACOTTA: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::WhiteTerracotta, + BlockKind::OrangeTerracotta, + BlockKind::MagentaTerracotta, + BlockKind::LightBlueTerracotta, + BlockKind::YellowTerracotta, + BlockKind::LimeTerracotta, + BlockKind::PinkTerracotta, + BlockKind::GrayTerracotta, + BlockKind::LightGrayTerracotta, + BlockKind::CyanTerracotta, + BlockKind::PurpleTerracotta, + BlockKind::BlueTerracotta, + BlockKind::BrownTerracotta, + BlockKind::GreenTerracotta, + BlockKind::RedTerracotta, + BlockKind::BlackTerracotta, + BlockKind::Terracotta, + ]) +}); +pub static TRAIL_RUINS_REPLACEABLE: LazyLock<RegistryTag<BlockKind>> = + LazyLock::new(|| RegistryTag::new(vec![BlockKind::Gravel])); +pub static TRAPDOORS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::OakTrapdoor, + BlockKind::SpruceTrapdoor, + BlockKind::BirchTrapdoor, + BlockKind::JungleTrapdoor, + BlockKind::AcaciaTrapdoor, + BlockKind::CherryTrapdoor, + BlockKind::DarkOakTrapdoor, + BlockKind::PaleOakTrapdoor, + BlockKind::MangroveTrapdoor, + BlockKind::BambooTrapdoor, + BlockKind::IronTrapdoor, + BlockKind::CrimsonTrapdoor, + BlockKind::WarpedTrapdoor, + BlockKind::CopperTrapdoor, + BlockKind::ExposedCopperTrapdoor, + BlockKind::OxidizedCopperTrapdoor, + BlockKind::WeatheredCopperTrapdoor, + BlockKind::WaxedCopperTrapdoor, + BlockKind::WaxedExposedCopperTrapdoor, + BlockKind::WaxedOxidizedCopperTrapdoor, + BlockKind::WaxedWeatheredCopperTrapdoor, + ]) +}); +pub static TRIGGERS_AMBIENT_DESERT_DRY_VEGETATION_BLOCK_SOUNDS: LazyLock<RegistryTag<BlockKind>> = + LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::Sand, + BlockKind::RedSand, + BlockKind::WhiteTerracotta, + BlockKind::OrangeTerracotta, + BlockKind::MagentaTerracotta, + BlockKind::LightBlueTerracotta, + BlockKind::YellowTerracotta, + BlockKind::LimeTerracotta, + BlockKind::PinkTerracotta, + BlockKind::GrayTerracotta, + BlockKind::LightGrayTerracotta, + BlockKind::CyanTerracotta, + BlockKind::PurpleTerracotta, + BlockKind::BlueTerracotta, + BlockKind::BrownTerracotta, + BlockKind::GreenTerracotta, + BlockKind::RedTerracotta, + BlockKind::BlackTerracotta, + BlockKind::Terracotta, + ]) + }); +pub static TRIGGERS_AMBIENT_DESERT_SAND_BLOCK_SOUNDS: LazyLock<RegistryTag<BlockKind>> = + LazyLock::new(|| RegistryTag::new(vec![BlockKind::Sand, BlockKind::RedSand])); +pub static TRIGGERS_AMBIENT_DRIED_GHAST_BLOCK_SOUNDS: LazyLock<RegistryTag<BlockKind>> = + LazyLock::new(|| RegistryTag::new(vec![BlockKind::SoulSand, BlockKind::SoulSoil])); +pub static UNDERWATER_BONEMEALS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::Seagrass, + BlockKind::TubeCoral, + BlockKind::BrainCoral, + BlockKind::BubbleCoral, + BlockKind::FireCoral, + BlockKind::HornCoral, + BlockKind::TubeCoralFan, + BlockKind::BrainCoralFan, + BlockKind::BubbleCoralFan, + BlockKind::FireCoralFan, + BlockKind::HornCoralFan, + BlockKind::TubeCoralWallFan, + BlockKind::BrainCoralWallFan, + BlockKind::BubbleCoralWallFan, + BlockKind::FireCoralWallFan, + BlockKind::HornCoralWallFan, + ]) +}); +pub static UNSTABLE_BOTTOM_CENTER: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::OakFenceGate, + BlockKind::SpruceFenceGate, + BlockKind::BirchFenceGate, + BlockKind::JungleFenceGate, + BlockKind::AcaciaFenceGate, + BlockKind::CherryFenceGate, + BlockKind::DarkOakFenceGate, + BlockKind::PaleOakFenceGate, + BlockKind::MangroveFenceGate, + BlockKind::BambooFenceGate, + BlockKind::CrimsonFenceGate, + BlockKind::WarpedFenceGate, + ]) +}); +pub static VALID_SPAWN: LazyLock<RegistryTag<BlockKind>> = + LazyLock::new(|| RegistryTag::new(vec![BlockKind::GrassBlock, BlockKind::Podzol])); +pub static VIBRATION_RESONATORS: LazyLock<RegistryTag<BlockKind>> = + LazyLock::new(|| RegistryTag::new(vec![BlockKind::AmethystBlock])); +pub static WALL_CORALS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::TubeCoralWallFan, + BlockKind::BrainCoralWallFan, + BlockKind::BubbleCoralWallFan, + BlockKind::FireCoralWallFan, + BlockKind::HornCoralWallFan, + ]) +}); +pub static WALL_HANGING_SIGNS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::OakWallHangingSign, + BlockKind::SpruceWallHangingSign, + BlockKind::BirchWallHangingSign, + BlockKind::AcaciaWallHangingSign, + BlockKind::CherryWallHangingSign, + BlockKind::JungleWallHangingSign, + BlockKind::DarkOakWallHangingSign, + BlockKind::PaleOakWallHangingSign, + BlockKind::MangroveWallHangingSign, + BlockKind::CrimsonWallHangingSign, + BlockKind::WarpedWallHangingSign, + BlockKind::BambooWallHangingSign, + ]) +}); +pub static WALL_POST_OVERRIDE: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::Torch, + BlockKind::OakSign, + BlockKind::SpruceSign, + BlockKind::BirchSign, + BlockKind::AcaciaSign, + BlockKind::CherrySign, + BlockKind::JungleSign, + BlockKind::DarkOakSign, + BlockKind::PaleOakSign, + BlockKind::MangroveSign, + BlockKind::BambooSign, + BlockKind::OakWallSign, + BlockKind::SpruceWallSign, + BlockKind::BirchWallSign, + BlockKind::AcaciaWallSign, + BlockKind::CherryWallSign, + BlockKind::JungleWallSign, + BlockKind::DarkOakWallSign, + BlockKind::PaleOakWallSign, + BlockKind::MangroveWallSign, + BlockKind::BambooWallSign, + BlockKind::StonePressurePlate, + BlockKind::OakPressurePlate, + BlockKind::SprucePressurePlate, + BlockKind::BirchPressurePlate, + BlockKind::JunglePressurePlate, + BlockKind::AcaciaPressurePlate, + BlockKind::CherryPressurePlate, + BlockKind::DarkOakPressurePlate, + BlockKind::PaleOakPressurePlate, + BlockKind::MangrovePressurePlate, + BlockKind::BambooPressurePlate, + BlockKind::RedstoneTorch, + BlockKind::CactusFlower, + BlockKind::SoulTorch, + BlockKind::CopperTorch, + BlockKind::Tripwire, + BlockKind::LightWeightedPressurePlate, + BlockKind::HeavyWeightedPressurePlate, + BlockKind::WhiteBanner, + BlockKind::OrangeBanner, + BlockKind::MagentaBanner, + BlockKind::LightBlueBanner, + BlockKind::YellowBanner, + BlockKind::LimeBanner, + BlockKind::PinkBanner, + BlockKind::GrayBanner, + BlockKind::LightGrayBanner, + BlockKind::CyanBanner, + BlockKind::PurpleBanner, + BlockKind::BlueBanner, + BlockKind::BrownBanner, + BlockKind::GreenBanner, + BlockKind::RedBanner, + BlockKind::BlackBanner, + BlockKind::WhiteWallBanner, + BlockKind::OrangeWallBanner, + BlockKind::MagentaWallBanner, + BlockKind::LightBlueWallBanner, + BlockKind::YellowWallBanner, + BlockKind::LimeWallBanner, + BlockKind::PinkWallBanner, + BlockKind::GrayWallBanner, + BlockKind::LightGrayWallBanner, + BlockKind::CyanWallBanner, + BlockKind::PurpleWallBanner, + BlockKind::BlueWallBanner, + BlockKind::BrownWallBanner, + BlockKind::GreenWallBanner, + BlockKind::RedWallBanner, + BlockKind::BlackWallBanner, + BlockKind::CrimsonPressurePlate, + BlockKind::WarpedPressurePlate, + BlockKind::CrimsonSign, + BlockKind::WarpedSign, + BlockKind::CrimsonWallSign, + BlockKind::WarpedWallSign, + BlockKind::PolishedBlackstonePressurePlate, + ]) +}); +pub static WALL_SIGNS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::OakWallSign, + BlockKind::SpruceWallSign, + BlockKind::BirchWallSign, + BlockKind::AcaciaWallSign, + BlockKind::CherryWallSign, + BlockKind::JungleWallSign, + BlockKind::DarkOakWallSign, + BlockKind::PaleOakWallSign, + BlockKind::MangroveWallSign, + BlockKind::BambooWallSign, + BlockKind::CrimsonWallSign, + BlockKind::WarpedWallSign, + ]) +}); +pub static WALLS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::ResinBrickWall, + BlockKind::CobblestoneWall, + BlockKind::MossyCobblestoneWall, + BlockKind::BrickWall, + BlockKind::PrismarineWall, + BlockKind::RedSandstoneWall, + BlockKind::MossyStoneBrickWall, + BlockKind::GraniteWall, + BlockKind::StoneBrickWall, + BlockKind::MudBrickWall, + BlockKind::NetherBrickWall, + BlockKind::AndesiteWall, + BlockKind::RedNetherBrickWall, + BlockKind::SandstoneWall, + BlockKind::EndStoneBrickWall, + BlockKind::DioriteWall, + BlockKind::BlackstoneWall, + BlockKind::PolishedBlackstoneBrickWall, + BlockKind::PolishedBlackstoneWall, + BlockKind::TuffWall, + BlockKind::PolishedTuffWall, + BlockKind::TuffBrickWall, + BlockKind::CobbledDeepslateWall, + BlockKind::PolishedDeepslateWall, + BlockKind::DeepslateTileWall, + BlockKind::DeepslateBrickWall, + ]) +}); +pub static WARPED_STEMS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::WarpedStem, + BlockKind::StrippedWarpedStem, + BlockKind::WarpedHyphae, + BlockKind::StrippedWarpedHyphae, + ]) +}); +pub static WART_BLOCKS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![BlockKind::NetherWartBlock, BlockKind::WarpedWartBlock]) +}); +pub static WITHER_IMMUNE: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::Bedrock, + BlockKind::MovingPiston, + BlockKind::EndPortal, + BlockKind::EndPortalFrame, + BlockKind::CommandBlock, + BlockKind::Barrier, + BlockKind::Light, + BlockKind::EndGateway, + BlockKind::RepeatingCommandBlock, + BlockKind::ChainCommandBlock, + BlockKind::StructureBlock, + BlockKind::Jigsaw, + BlockKind::TestBlock, + BlockKind::TestInstanceBlock, + BlockKind::ReinforcedDeepslate, + ]) +}); +pub static WITHER_SUMMON_BASE_BLOCKS: LazyLock<RegistryTag<BlockKind>> = + LazyLock::new(|| RegistryTag::new(vec![BlockKind::SoulSand, BlockKind::SoulSoil])); +pub static WOLVES_SPAWNABLE_ON: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::GrassBlock, + BlockKind::CoarseDirt, + BlockKind::Podzol, + BlockKind::Snow, + BlockKind::SnowBlock, + ]) +}); +pub static WOODEN_BUTTONS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::OakButton, + BlockKind::SpruceButton, + BlockKind::BirchButton, + BlockKind::JungleButton, + BlockKind::AcaciaButton, + BlockKind::CherryButton, + BlockKind::DarkOakButton, + BlockKind::PaleOakButton, + BlockKind::MangroveButton, + BlockKind::BambooButton, + BlockKind::CrimsonButton, + BlockKind::WarpedButton, + ]) +}); +pub static WOODEN_DOORS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::OakDoor, + BlockKind::SpruceDoor, + BlockKind::BirchDoor, + BlockKind::JungleDoor, + BlockKind::AcaciaDoor, + BlockKind::CherryDoor, + BlockKind::DarkOakDoor, + BlockKind::PaleOakDoor, + BlockKind::MangroveDoor, + BlockKind::BambooDoor, + BlockKind::CrimsonDoor, + BlockKind::WarpedDoor, + ]) +}); +pub static WOODEN_FENCES: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::OakFence, + BlockKind::SpruceFence, + BlockKind::BirchFence, + BlockKind::JungleFence, + BlockKind::AcaciaFence, + BlockKind::CherryFence, + BlockKind::DarkOakFence, + BlockKind::PaleOakFence, + BlockKind::MangroveFence, + BlockKind::BambooFence, + BlockKind::CrimsonFence, + BlockKind::WarpedFence, + ]) +}); +pub static WOODEN_PRESSURE_PLATES: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::OakPressurePlate, + BlockKind::SprucePressurePlate, + BlockKind::BirchPressurePlate, + BlockKind::JunglePressurePlate, + BlockKind::AcaciaPressurePlate, + BlockKind::CherryPressurePlate, + BlockKind::DarkOakPressurePlate, + BlockKind::PaleOakPressurePlate, + BlockKind::MangrovePressurePlate, + BlockKind::BambooPressurePlate, + BlockKind::CrimsonPressurePlate, + BlockKind::WarpedPressurePlate, + ]) +}); +pub static WOODEN_SHELVES: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::AcaciaShelf, + BlockKind::BambooShelf, + BlockKind::BirchShelf, + BlockKind::CherryShelf, + BlockKind::CrimsonShelf, + BlockKind::DarkOakShelf, + BlockKind::JungleShelf, + BlockKind::MangroveShelf, + BlockKind::OakShelf, + BlockKind::PaleOakShelf, + BlockKind::SpruceShelf, + BlockKind::WarpedShelf, + ]) +}); +pub static WOODEN_SLABS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::OakSlab, + BlockKind::SpruceSlab, + BlockKind::BirchSlab, + BlockKind::JungleSlab, + BlockKind::AcaciaSlab, + BlockKind::CherrySlab, + BlockKind::DarkOakSlab, + BlockKind::PaleOakSlab, + BlockKind::MangroveSlab, + BlockKind::BambooSlab, + BlockKind::CrimsonSlab, + BlockKind::WarpedSlab, + ]) +}); +pub static WOODEN_STAIRS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::OakStairs, + BlockKind::SpruceStairs, + BlockKind::BirchStairs, + BlockKind::JungleStairs, + BlockKind::AcaciaStairs, + BlockKind::CherryStairs, + BlockKind::DarkOakStairs, + BlockKind::PaleOakStairs, + BlockKind::MangroveStairs, + BlockKind::BambooStairs, + BlockKind::CrimsonStairs, + BlockKind::WarpedStairs, + ]) +}); +pub static WOODEN_TRAPDOORS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::OakTrapdoor, + BlockKind::SpruceTrapdoor, + BlockKind::BirchTrapdoor, + BlockKind::JungleTrapdoor, + BlockKind::AcaciaTrapdoor, + BlockKind::CherryTrapdoor, + BlockKind::DarkOakTrapdoor, + BlockKind::PaleOakTrapdoor, + BlockKind::MangroveTrapdoor, + BlockKind::BambooTrapdoor, + BlockKind::CrimsonTrapdoor, + BlockKind::WarpedTrapdoor, + ]) +}); +pub static WOOL: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::WhiteWool, + BlockKind::OrangeWool, + BlockKind::MagentaWool, + BlockKind::LightBlueWool, + BlockKind::YellowWool, + BlockKind::LimeWool, + BlockKind::PinkWool, + BlockKind::GrayWool, + BlockKind::LightGrayWool, + BlockKind::CyanWool, + BlockKind::PurpleWool, + BlockKind::BlueWool, + BlockKind::BrownWool, + BlockKind::GreenWool, + BlockKind::RedWool, + BlockKind::BlackWool, + ]) +}); +pub static WOOL_CARPETS: LazyLock<RegistryTag<BlockKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + BlockKind::WhiteCarpet, + BlockKind::OrangeCarpet, + BlockKind::MagentaCarpet, + BlockKind::LightBlueCarpet, + BlockKind::YellowCarpet, + BlockKind::LimeCarpet, + BlockKind::PinkCarpet, + BlockKind::GrayCarpet, + BlockKind::LightGrayCarpet, + BlockKind::CyanCarpet, + BlockKind::PurpleCarpet, + BlockKind::BlueCarpet, + BlockKind::BrownCarpet, + BlockKind::GreenCarpet, + BlockKind::RedCarpet, + BlockKind::BlackCarpet, ]) }); diff --git a/azalea-registry/src/tags/entities.rs b/azalea-registry/src/tags/entities.rs index 14fea7af..3680d35a 100644 --- a/azalea-registry/src/tags/entities.rs +++ b/azalea-registry/src/tags/entities.rs @@ -1,180 +1,180 @@ // This file was @generated by codegen/lib/code/tags.py, don't edit it manually! -use std::{collections::HashSet, sync::LazyLock}; +use std::sync::LazyLock; -use crate::EntityKind; +use crate::{builtin::EntityKind, tags::RegistryTag}; -pub static ACCEPTS_IRON_GOLEM_GIFT: LazyLock<HashSet<EntityKind>> = - LazyLock::new(|| HashSet::from_iter([EntityKind::CopperGolem])); -pub static AQUATIC: LazyLock<HashSet<EntityKind>> = LazyLock::new(|| { - HashSet::from_iter([ - EntityKind::Turtle, +pub static ACCEPTS_IRON_GOLEM_GIFT: LazyLock<RegistryTag<EntityKind>> = + LazyLock::new(|| RegistryTag::new(vec![EntityKind::CopperGolem])); +pub static AQUATIC: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ EntityKind::Axolotl, - EntityKind::Guardian, - EntityKind::ElderGuardian, EntityKind::Cod, + EntityKind::Dolphin, + EntityKind::ElderGuardian, + EntityKind::GlowSquid, + EntityKind::Guardian, + EntityKind::Nautilus, EntityKind::Pufferfish, EntityKind::Salmon, - EntityKind::TropicalFish, - EntityKind::Dolphin, EntityKind::Squid, - EntityKind::GlowSquid, EntityKind::Tadpole, - EntityKind::Nautilus, + EntityKind::TropicalFish, + EntityKind::Turtle, EntityKind::ZombieNautilus, ]) }); -pub static ARROWS: LazyLock<HashSet<EntityKind>> = - LazyLock::new(|| HashSet::from_iter([EntityKind::Arrow, EntityKind::SpectralArrow])); -pub static ARTHROPOD: LazyLock<HashSet<EntityKind>> = LazyLock::new(|| { - HashSet::from_iter([ +pub static ARROWS: LazyLock<RegistryTag<EntityKind>> = + LazyLock::new(|| RegistryTag::new(vec![EntityKind::Arrow, EntityKind::SpectralArrow])); +pub static ARTHROPOD: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ EntityKind::Bee, + EntityKind::CaveSpider, EntityKind::Endermite, EntityKind::Silverfish, EntityKind::Spider, - EntityKind::CaveSpider, ]) }); -pub static AXOLOTL_ALWAYS_HOSTILES: LazyLock<HashSet<EntityKind>> = LazyLock::new(|| { - HashSet::from_iter([ +pub static AXOLOTL_ALWAYS_HOSTILES: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ EntityKind::Drowned, - EntityKind::Guardian, EntityKind::ElderGuardian, + EntityKind::Guardian, ]) }); -pub static AXOLOTL_HUNT_TARGETS: LazyLock<HashSet<EntityKind>> = LazyLock::new(|| { - HashSet::from_iter([ - EntityKind::TropicalFish, +pub static AXOLOTL_HUNT_TARGETS: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + EntityKind::Cod, + EntityKind::GlowSquid, EntityKind::Pufferfish, EntityKind::Salmon, - EntityKind::Cod, EntityKind::Squid, - EntityKind::GlowSquid, EntityKind::Tadpole, + EntityKind::TropicalFish, ]) }); -pub static BEEHIVE_INHABITORS: LazyLock<HashSet<EntityKind>> = - LazyLock::new(|| HashSet::from_iter([EntityKind::Bee])); -pub static BOAT: LazyLock<HashSet<EntityKind>> = LazyLock::new(|| { - HashSet::from_iter([ - EntityKind::OakBoat, - EntityKind::SpruceBoat, - EntityKind::BirchBoat, - EntityKind::JungleBoat, +pub static BEEHIVE_INHABITORS: LazyLock<RegistryTag<EntityKind>> = + LazyLock::new(|| RegistryTag::new(vec![EntityKind::Bee])); +pub static BOAT: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ EntityKind::AcaciaBoat, + EntityKind::BambooRaft, + EntityKind::BirchBoat, EntityKind::CherryBoat, EntityKind::DarkOakBoat, - EntityKind::PaleOakBoat, + EntityKind::JungleBoat, EntityKind::MangroveBoat, - EntityKind::BambooRaft, + EntityKind::OakBoat, + EntityKind::PaleOakBoat, + EntityKind::SpruceBoat, ]) }); -pub static BURN_IN_DAYLIGHT: LazyLock<HashSet<EntityKind>> = LazyLock::new(|| { - HashSet::from_iter([ +pub static BURN_IN_DAYLIGHT: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + EntityKind::Bogged, + EntityKind::Drowned, + EntityKind::Phantom, EntityKind::Skeleton, EntityKind::Stray, EntityKind::WitherSkeleton, - EntityKind::Bogged, EntityKind::Zombie, EntityKind::ZombieHorse, - EntityKind::ZombieVillager, - EntityKind::Drowned, EntityKind::ZombieNautilus, - EntityKind::Phantom, + EntityKind::ZombieVillager, ]) }); -pub static CAN_BREATHE_UNDER_WATER: LazyLock<HashSet<EntityKind>> = LazyLock::new(|| { - HashSet::from_iter([ +pub static CAN_BREATHE_UNDER_WATER: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + EntityKind::ArmorStand, EntityKind::Axolotl, - EntityKind::Frog, - EntityKind::Guardian, + EntityKind::Bogged, + EntityKind::CamelHusk, + EntityKind::Cod, + EntityKind::CopperGolem, + EntityKind::Drowned, EntityKind::ElderGuardian, - EntityKind::Turtle, + EntityKind::Frog, EntityKind::GlowSquid, - EntityKind::Cod, + EntityKind::Guardian, + EntityKind::Husk, + EntityKind::Nautilus, + EntityKind::Parched, + EntityKind::Phantom, EntityKind::Pufferfish, EntityKind::Salmon, + EntityKind::Skeleton, + EntityKind::SkeletonHorse, EntityKind::Squid, - EntityKind::TropicalFish, + EntityKind::Stray, EntityKind::Tadpole, - EntityKind::ArmorStand, - EntityKind::CopperGolem, - EntityKind::Nautilus, + EntityKind::TropicalFish, + EntityKind::Turtle, EntityKind::Wither, - EntityKind::Phantom, - EntityKind::Skeleton, - EntityKind::Stray, EntityKind::WitherSkeleton, - EntityKind::SkeletonHorse, - EntityKind::Bogged, - EntityKind::Parched, - EntityKind::ZombieHorse, - EntityKind::CamelHusk, + EntityKind::Zoglin, EntityKind::Zombie, + EntityKind::ZombieHorse, + EntityKind::ZombieNautilus, EntityKind::ZombieVillager, EntityKind::ZombifiedPiglin, - EntityKind::Zoglin, - EntityKind::Drowned, - EntityKind::Husk, - EntityKind::ZombieNautilus, ]) }); -pub static CAN_EQUIP_HARNESS: LazyLock<HashSet<EntityKind>> = - LazyLock::new(|| HashSet::from_iter([EntityKind::HappyGhast])); -pub static CAN_EQUIP_SADDLE: LazyLock<HashSet<EntityKind>> = LazyLock::new(|| { - HashSet::from_iter([ - EntityKind::Horse, - EntityKind::SkeletonHorse, - EntityKind::ZombieHorse, +pub static CAN_EQUIP_HARNESS: LazyLock<RegistryTag<EntityKind>> = + LazyLock::new(|| RegistryTag::new(vec![EntityKind::HappyGhast])); +pub static CAN_EQUIP_SADDLE: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + EntityKind::Camel, + EntityKind::CamelHusk, EntityKind::Donkey, + EntityKind::Horse, EntityKind::Mule, + EntityKind::Nautilus, EntityKind::Pig, + EntityKind::SkeletonHorse, EntityKind::Strider, - EntityKind::Camel, - EntityKind::CamelHusk, - EntityKind::Nautilus, + EntityKind::ZombieHorse, EntityKind::ZombieNautilus, ]) }); -pub static CAN_FLOAT_WHILE_RIDDEN: LazyLock<HashSet<EntityKind>> = LazyLock::new(|| { - HashSet::from_iter([ - EntityKind::Horse, - EntityKind::ZombieHorse, - EntityKind::Mule, - EntityKind::Donkey, +pub static CAN_FLOAT_WHILE_RIDDEN: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ EntityKind::Camel, EntityKind::CamelHusk, + EntityKind::Donkey, + EntityKind::Horse, + EntityKind::Mule, + EntityKind::ZombieHorse, ]) }); -pub static CAN_TURN_IN_BOATS: LazyLock<HashSet<EntityKind>> = - LazyLock::new(|| HashSet::from_iter([EntityKind::Breeze])); -pub static CAN_WEAR_HORSE_ARMOR: LazyLock<HashSet<EntityKind>> = - LazyLock::new(|| HashSet::from_iter([EntityKind::Horse, EntityKind::ZombieHorse])); -pub static CAN_WEAR_NAUTILUS_ARMOR: LazyLock<HashSet<EntityKind>> = - LazyLock::new(|| HashSet::from_iter([EntityKind::Nautilus, EntityKind::ZombieNautilus])); -pub static CANDIDATE_FOR_IRON_GOLEM_GIFT: LazyLock<HashSet<EntityKind>> = - LazyLock::new(|| HashSet::from_iter([EntityKind::Villager, EntityKind::CopperGolem])); -pub static CANNOT_BE_PUSHED_ONTO_BOATS: LazyLock<HashSet<EntityKind>> = LazyLock::new(|| { - HashSet::from_iter([ - EntityKind::Player, - EntityKind::ElderGuardian, +pub static CAN_TURN_IN_BOATS: LazyLock<RegistryTag<EntityKind>> = + LazyLock::new(|| RegistryTag::new(vec![EntityKind::Breeze])); +pub static CAN_WEAR_HORSE_ARMOR: LazyLock<RegistryTag<EntityKind>> = + LazyLock::new(|| RegistryTag::new(vec![EntityKind::Horse, EntityKind::ZombieHorse])); +pub static CAN_WEAR_NAUTILUS_ARMOR: LazyLock<RegistryTag<EntityKind>> = + LazyLock::new(|| RegistryTag::new(vec![EntityKind::Nautilus, EntityKind::ZombieNautilus])); +pub static CANDIDATE_FOR_IRON_GOLEM_GIFT: LazyLock<RegistryTag<EntityKind>> = + LazyLock::new(|| RegistryTag::new(vec![EntityKind::CopperGolem, EntityKind::Villager])); +pub static CANNOT_BE_PUSHED_ONTO_BOATS: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ EntityKind::Cod, + EntityKind::Creaking, + EntityKind::Dolphin, + EntityKind::ElderGuardian, + EntityKind::GlowSquid, + EntityKind::Nautilus, EntityKind::Pufferfish, EntityKind::Salmon, - EntityKind::TropicalFish, - EntityKind::Dolphin, EntityKind::Squid, - EntityKind::GlowSquid, EntityKind::Tadpole, - EntityKind::Creaking, - EntityKind::Nautilus, + EntityKind::TropicalFish, EntityKind::ZombieNautilus, + EntityKind::Player, ]) }); -pub static DEFLECTS_PROJECTILES: LazyLock<HashSet<EntityKind>> = - LazyLock::new(|| HashSet::from_iter([EntityKind::Breeze])); -pub static DISMOUNTS_UNDERWATER: LazyLock<HashSet<EntityKind>> = LazyLock::new(|| { - HashSet::from_iter([ +pub static DEFLECTS_PROJECTILES: LazyLock<RegistryTag<EntityKind>> = + LazyLock::new(|| RegistryTag::new(vec![EntityKind::Breeze])); +pub static DISMOUNTS_UNDERWATER: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ EntityKind::Camel, EntityKind::Chicken, EntityKind::Donkey, @@ -190,30 +190,30 @@ pub static DISMOUNTS_UNDERWATER: LazyLock<HashSet<EntityKind>> = LazyLock::new(| EntityKind::ZombieHorse, ]) }); -pub static FALL_DAMAGE_IMMUNE: LazyLock<HashSet<EntityKind>> = LazyLock::new(|| { - HashSet::from_iter([ - EntityKind::CopperGolem, - EntityKind::IronGolem, - EntityKind::SnowGolem, - EntityKind::Shulker, +pub static FALL_DAMAGE_IMMUNE: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ EntityKind::Allay, EntityKind::Bat, EntityKind::Bee, EntityKind::Blaze, + EntityKind::Breeze, EntityKind::Cat, EntityKind::Chicken, + EntityKind::CopperGolem, EntityKind::Ghast, EntityKind::HappyGhast, - EntityKind::Phantom, + EntityKind::IronGolem, EntityKind::MagmaCube, EntityKind::Ocelot, EntityKind::Parrot, + EntityKind::Phantom, + EntityKind::Shulker, + EntityKind::SnowGolem, EntityKind::Wither, - EntityKind::Breeze, ]) }); -pub static FOLLOWABLE_FRIENDLY_MOBS: LazyLock<HashSet<EntityKind>> = LazyLock::new(|| { - HashSet::from_iter([ +pub static FOLLOWABLE_FRIENDLY_MOBS: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ EntityKind::Armadillo, EntityKind::Bee, EntityKind::Camel, @@ -222,10 +222,9 @@ pub static FOLLOWABLE_FRIENDLY_MOBS: LazyLock<HashSet<EntityKind>> = LazyLock::n EntityKind::Cow, EntityKind::Donkey, EntityKind::Fox, - EntityKind::Goat, EntityKind::HappyGhast, + EntityKind::Goat, EntityKind::Horse, - EntityKind::SkeletonHorse, EntityKind::Llama, EntityKind::Mule, EntityKind::Ocelot, @@ -235,276 +234,278 @@ pub static FOLLOWABLE_FRIENDLY_MOBS: LazyLock<HashSet<EntityKind>> = LazyLock::n EntityKind::PolarBear, EntityKind::Rabbit, EntityKind::Sheep, + EntityKind::SkeletonHorse, EntityKind::Sniffer, EntityKind::Strider, EntityKind::Villager, EntityKind::Wolf, ]) }); -pub static FREEZE_HURTS_EXTRA_TYPES: LazyLock<HashSet<EntityKind>> = LazyLock::new(|| { - HashSet::from_iter([ - EntityKind::Strider, +pub static FREEZE_HURTS_EXTRA_TYPES: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ EntityKind::Blaze, EntityKind::MagmaCube, + EntityKind::Strider, ]) }); -pub static FREEZE_IMMUNE_ENTITY_TYPES: LazyLock<HashSet<EntityKind>> = LazyLock::new(|| { - HashSet::from_iter([ - EntityKind::Stray, +pub static FREEZE_IMMUNE_ENTITY_TYPES: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ EntityKind::PolarBear, EntityKind::SnowGolem, + EntityKind::Stray, EntityKind::Wither, ]) }); -pub static FROG_FOOD: LazyLock<HashSet<EntityKind>> = - LazyLock::new(|| HashSet::from_iter([EntityKind::Slime, EntityKind::MagmaCube])); -pub static IGNORES_POISON_AND_REGEN: LazyLock<HashSet<EntityKind>> = LazyLock::new(|| { - HashSet::from_iter([ - EntityKind::Wither, +pub static FROG_FOOD: LazyLock<RegistryTag<EntityKind>> = + LazyLock::new(|| RegistryTag::new(vec![EntityKind::MagmaCube, EntityKind::Slime])); +pub static IGNORES_POISON_AND_REGEN: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + EntityKind::Bogged, + EntityKind::CamelHusk, + EntityKind::Drowned, + EntityKind::Husk, + EntityKind::Parched, EntityKind::Phantom, EntityKind::Skeleton, + EntityKind::SkeletonHorse, EntityKind::Stray, + EntityKind::Wither, EntityKind::WitherSkeleton, - EntityKind::SkeletonHorse, - EntityKind::Bogged, - EntityKind::Parched, - EntityKind::ZombieHorse, - EntityKind::CamelHusk, + EntityKind::Zoglin, EntityKind::Zombie, + EntityKind::ZombieHorse, + EntityKind::ZombieNautilus, EntityKind::ZombieVillager, EntityKind::ZombifiedPiglin, - EntityKind::Zoglin, - EntityKind::Drowned, - EntityKind::Husk, - EntityKind::ZombieNautilus, ]) }); -pub static ILLAGER: LazyLock<HashSet<EntityKind>> = LazyLock::new(|| { - HashSet::from_iter([ +pub static ILLAGER: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ EntityKind::Evoker, EntityKind::Illusioner, EntityKind::Pillager, EntityKind::Vindicator, ]) }); -pub static ILLAGER_FRIENDS: LazyLock<HashSet<EntityKind>> = LazyLock::new(|| { - HashSet::from_iter([ +pub static ILLAGER_FRIENDS: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ EntityKind::Evoker, EntityKind::Illusioner, EntityKind::Pillager, EntityKind::Vindicator, ]) }); -pub static IMMUNE_TO_INFESTED: LazyLock<HashSet<EntityKind>> = - LazyLock::new(|| HashSet::from_iter([EntityKind::Silverfish])); -pub static IMMUNE_TO_OOZING: LazyLock<HashSet<EntityKind>> = - LazyLock::new(|| HashSet::from_iter([EntityKind::Slime])); -pub static IMPACT_PROJECTILES: LazyLock<HashSet<EntityKind>> = LazyLock::new(|| { - HashSet::from_iter([ - EntityKind::FireworkRocket, - EntityKind::Snowball, +pub static IMMUNE_TO_INFESTED: LazyLock<RegistryTag<EntityKind>> = + LazyLock::new(|| RegistryTag::new(vec![EntityKind::Silverfish])); +pub static IMMUNE_TO_OOZING: LazyLock<RegistryTag<EntityKind>> = + LazyLock::new(|| RegistryTag::new(vec![EntityKind::Slime])); +pub static IMPACT_PROJECTILES: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + EntityKind::Arrow, + EntityKind::BreezeWindCharge, + EntityKind::DragonFireball, + EntityKind::Egg, EntityKind::Fireball, + EntityKind::FireworkRocket, EntityKind::SmallFireball, - EntityKind::Egg, + EntityKind::Snowball, + EntityKind::SpectralArrow, EntityKind::Trident, - EntityKind::DragonFireball, - EntityKind::WitherSkull, EntityKind::WindCharge, - EntityKind::BreezeWindCharge, - EntityKind::Arrow, - EntityKind::SpectralArrow, + EntityKind::WitherSkull, ]) }); -pub static INVERTED_HEALING_AND_HARM: LazyLock<HashSet<EntityKind>> = LazyLock::new(|| { - HashSet::from_iter([ - EntityKind::Wither, +pub static INVERTED_HEALING_AND_HARM: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + EntityKind::Bogged, + EntityKind::CamelHusk, + EntityKind::Drowned, + EntityKind::Husk, + EntityKind::Parched, EntityKind::Phantom, EntityKind::Skeleton, + EntityKind::SkeletonHorse, EntityKind::Stray, + EntityKind::Wither, EntityKind::WitherSkeleton, - EntityKind::SkeletonHorse, - EntityKind::Bogged, - EntityKind::Parched, - EntityKind::ZombieHorse, - EntityKind::CamelHusk, + EntityKind::Zoglin, EntityKind::Zombie, + EntityKind::ZombieHorse, + EntityKind::ZombieNautilus, EntityKind::ZombieVillager, EntityKind::ZombifiedPiglin, - EntityKind::Zoglin, - EntityKind::Drowned, - EntityKind::Husk, - EntityKind::ZombieNautilus, ]) }); -pub static NAUTILUS_HOSTILES: LazyLock<HashSet<EntityKind>> = - LazyLock::new(|| HashSet::from_iter([EntityKind::Pufferfish])); -pub static NO_ANGER_FROM_WIND_CHARGE: LazyLock<HashSet<EntityKind>> = LazyLock::new(|| { - HashSet::from_iter([ +pub static NAUTILUS_HOSTILES: LazyLock<RegistryTag<EntityKind>> = + LazyLock::new(|| RegistryTag::new(vec![EntityKind::Pufferfish])); +pub static NO_ANGER_FROM_WIND_CHARGE: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + EntityKind::Bogged, EntityKind::Breeze, + EntityKind::CaveSpider, + EntityKind::Husk, EntityKind::Skeleton, - EntityKind::Bogged, + EntityKind::Slime, + EntityKind::Spider, EntityKind::Stray, EntityKind::Zombie, - EntityKind::Husk, - EntityKind::Spider, - EntityKind::CaveSpider, - EntityKind::Slime, ]) }); -pub static NON_CONTROLLING_RIDER: LazyLock<HashSet<EntityKind>> = - LazyLock::new(|| HashSet::from_iter([EntityKind::Slime, EntityKind::MagmaCube])); -pub static NOT_SCARY_FOR_PUFFERFISH: LazyLock<HashSet<EntityKind>> = LazyLock::new(|| { - HashSet::from_iter([ - EntityKind::Turtle, - EntityKind::Guardian, - EntityKind::ElderGuardian, +pub static NON_CONTROLLING_RIDER: LazyLock<RegistryTag<EntityKind>> = + LazyLock::new(|| RegistryTag::new(vec![EntityKind::MagmaCube, EntityKind::Slime])); +pub static NOT_SCARY_FOR_PUFFERFISH: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ EntityKind::Cod, + EntityKind::Dolphin, + EntityKind::ElderGuardian, + EntityKind::GlowSquid, + EntityKind::Guardian, + EntityKind::Nautilus, EntityKind::Pufferfish, EntityKind::Salmon, - EntityKind::TropicalFish, - EntityKind::Dolphin, EntityKind::Squid, - EntityKind::GlowSquid, EntityKind::Tadpole, - EntityKind::Nautilus, + EntityKind::TropicalFish, + EntityKind::Turtle, EntityKind::ZombieNautilus, ]) }); -pub static POWDER_SNOW_WALKABLE_MOBS: LazyLock<HashSet<EntityKind>> = LazyLock::new(|| { - HashSet::from_iter([ - EntityKind::Rabbit, +pub static POWDER_SNOW_WALKABLE_MOBS: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ EntityKind::Endermite, - EntityKind::Silverfish, EntityKind::Fox, + EntityKind::Rabbit, + EntityKind::Silverfish, ]) }); -pub static RAIDERS: LazyLock<HashSet<EntityKind>> = LazyLock::new(|| { - HashSet::from_iter([ +pub static RAIDERS: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ EntityKind::Evoker, + EntityKind::Illusioner, EntityKind::Pillager, EntityKind::Ravager, EntityKind::Vindicator, - EntityKind::Illusioner, EntityKind::Witch, ]) }); -pub static REDIRECTABLE_PROJECTILE: LazyLock<HashSet<EntityKind>> = LazyLock::new(|| { - HashSet::from_iter([ +pub static REDIRECTABLE_PROJECTILE: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + EntityKind::BreezeWindCharge, EntityKind::Fireball, EntityKind::WindCharge, - EntityKind::BreezeWindCharge, - ]) -}); -pub static SENSITIVE_TO_BANE_OF_ARTHROPODS: LazyLock<HashSet<EntityKind>> = LazyLock::new(|| { - HashSet::from_iter([ - EntityKind::Bee, - EntityKind::Endermite, - EntityKind::Silverfish, - EntityKind::Spider, - EntityKind::CaveSpider, ]) }); -pub static SENSITIVE_TO_IMPALING: LazyLock<HashSet<EntityKind>> = LazyLock::new(|| { - HashSet::from_iter([ - EntityKind::Turtle, +pub static SENSITIVE_TO_BANE_OF_ARTHROPODS: LazyLock<RegistryTag<EntityKind>> = + LazyLock::new(|| { + RegistryTag::new(vec![ + EntityKind::Bee, + EntityKind::CaveSpider, + EntityKind::Endermite, + EntityKind::Silverfish, + EntityKind::Spider, + ]) + }); +pub static SENSITIVE_TO_IMPALING: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ EntityKind::Axolotl, - EntityKind::Guardian, - EntityKind::ElderGuardian, EntityKind::Cod, + EntityKind::Dolphin, + EntityKind::ElderGuardian, + EntityKind::GlowSquid, + EntityKind::Guardian, + EntityKind::Nautilus, EntityKind::Pufferfish, EntityKind::Salmon, - EntityKind::TropicalFish, - EntityKind::Dolphin, EntityKind::Squid, - EntityKind::GlowSquid, EntityKind::Tadpole, - EntityKind::Nautilus, + EntityKind::TropicalFish, + EntityKind::Turtle, EntityKind::ZombieNautilus, ]) }); -pub static SENSITIVE_TO_SMITE: LazyLock<HashSet<EntityKind>> = LazyLock::new(|| { - HashSet::from_iter([ - EntityKind::Wither, +pub static SENSITIVE_TO_SMITE: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + EntityKind::Bogged, + EntityKind::CamelHusk, + EntityKind::Drowned, + EntityKind::Husk, + EntityKind::Parched, EntityKind::Phantom, EntityKind::Skeleton, + EntityKind::SkeletonHorse, EntityKind::Stray, + EntityKind::Wither, EntityKind::WitherSkeleton, - EntityKind::SkeletonHorse, - EntityKind::Bogged, - EntityKind::Parched, - EntityKind::ZombieHorse, - EntityKind::CamelHusk, + EntityKind::Zoglin, EntityKind::Zombie, + EntityKind::ZombieHorse, + EntityKind::ZombieNautilus, EntityKind::ZombieVillager, EntityKind::ZombifiedPiglin, - EntityKind::Zoglin, - EntityKind::Drowned, - EntityKind::Husk, - EntityKind::ZombieNautilus, ]) }); -pub static SKELETONS: LazyLock<HashSet<EntityKind>> = LazyLock::new(|| { - HashSet::from_iter([ +pub static SKELETONS: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + EntityKind::Bogged, + EntityKind::Parched, EntityKind::Skeleton, + EntityKind::SkeletonHorse, EntityKind::Stray, EntityKind::WitherSkeleton, - EntityKind::SkeletonHorse, - EntityKind::Bogged, - EntityKind::Parched, ]) }); -pub static UNDEAD: LazyLock<HashSet<EntityKind>> = LazyLock::new(|| { - HashSet::from_iter([ - EntityKind::Wither, +pub static UNDEAD: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + EntityKind::Bogged, + EntityKind::CamelHusk, + EntityKind::Drowned, + EntityKind::Husk, + EntityKind::Parched, EntityKind::Phantom, EntityKind::Skeleton, + EntityKind::SkeletonHorse, EntityKind::Stray, + EntityKind::Wither, EntityKind::WitherSkeleton, - EntityKind::SkeletonHorse, - EntityKind::Bogged, - EntityKind::Parched, - EntityKind::ZombieHorse, - EntityKind::CamelHusk, + EntityKind::Zoglin, EntityKind::Zombie, + EntityKind::ZombieHorse, + EntityKind::ZombieNautilus, EntityKind::ZombieVillager, EntityKind::ZombifiedPiglin, - EntityKind::Zoglin, - EntityKind::Drowned, - EntityKind::Husk, - EntityKind::ZombieNautilus, ]) }); -pub static WITHER_FRIENDS: LazyLock<HashSet<EntityKind>> = LazyLock::new(|| { - HashSet::from_iter([ - EntityKind::Wither, +pub static WITHER_FRIENDS: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + EntityKind::Bogged, + EntityKind::CamelHusk, + EntityKind::Drowned, + EntityKind::Husk, + EntityKind::Parched, EntityKind::Phantom, EntityKind::Skeleton, + EntityKind::SkeletonHorse, EntityKind::Stray, + EntityKind::Wither, EntityKind::WitherSkeleton, - EntityKind::SkeletonHorse, - EntityKind::Bogged, - EntityKind::Parched, - EntityKind::ZombieHorse, - EntityKind::CamelHusk, + EntityKind::Zoglin, EntityKind::Zombie, + EntityKind::ZombieHorse, + EntityKind::ZombieNautilus, EntityKind::ZombieVillager, EntityKind::ZombifiedPiglin, - EntityKind::Zoglin, - EntityKind::Drowned, - EntityKind::Husk, - EntityKind::ZombieNautilus, ]) }); -pub static ZOMBIES: LazyLock<HashSet<EntityKind>> = LazyLock::new(|| { - HashSet::from_iter([ - EntityKind::ZombieHorse, +pub static ZOMBIES: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ EntityKind::CamelHusk, - EntityKind::Zombie, - EntityKind::ZombieVillager, - EntityKind::ZombifiedPiglin, - EntityKind::Zoglin, EntityKind::Drowned, EntityKind::Husk, + EntityKind::Zoglin, + EntityKind::Zombie, + EntityKind::ZombieHorse, EntityKind::ZombieNautilus, + EntityKind::ZombieVillager, + EntityKind::ZombifiedPiglin, ]) }); diff --git a/azalea-registry/src/tags/fluids.rs b/azalea-registry/src/tags/fluids.rs index 89c22fe0..3e8d5062 100644 --- a/azalea-registry/src/tags/fluids.rs +++ b/azalea-registry/src/tags/fluids.rs @@ -1,10 +1,10 @@ // This file was @generated by codegen/lib/code/tags.py, don't edit it manually! -use std::{collections::HashSet, sync::LazyLock}; +use std::sync::LazyLock; -use crate::Fluid; +use crate::{builtin::Fluid, tags::RegistryTag}; -pub static LAVA: LazyLock<HashSet<Fluid>> = - LazyLock::new(|| HashSet::from_iter([Fluid::Lava, Fluid::FlowingLava])); -pub static WATER: LazyLock<HashSet<Fluid>> = - LazyLock::new(|| HashSet::from_iter([Fluid::Water, Fluid::FlowingWater])); +pub static LAVA: LazyLock<RegistryTag<Fluid>> = + LazyLock::new(|| RegistryTag::new(vec![Fluid::FlowingLava, Fluid::Lava])); +pub static WATER: LazyLock<RegistryTag<Fluid>> = + LazyLock::new(|| RegistryTag::new(vec![Fluid::FlowingWater, Fluid::Water])); diff --git a/azalea-registry/src/tags/items.rs b/azalea-registry/src/tags/items.rs index eedc03d4..d76efbd2 100644 --- a/azalea-registry/src/tags/items.rs +++ b/azalea-registry/src/tags/items.rs @@ -1,2400 +1,2445 @@ // This file was @generated by codegen/lib/code/tags.py, don't edit it manually! -use std::{collections::HashSet, sync::LazyLock}; +use std::sync::LazyLock; -use crate::Item; +use crate::{builtin::ItemKind, tags::RegistryTag}; -pub static ACACIA_LOGS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::AcaciaLog, - Item::AcaciaWood, - Item::StrippedAcaciaLog, - Item::StrippedAcaciaWood, - ]) -}); -pub static ANVIL: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::Anvil, Item::ChippedAnvil, Item::DamagedAnvil])); -pub static ARMADILLO_FOOD: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::SpiderEye])); -pub static ARROWS: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::Arrow, Item::TippedArrow, Item::SpectralArrow])); -pub static AXES: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::DiamondAxe, - Item::StoneAxe, - Item::GoldenAxe, - Item::NetheriteAxe, - Item::WoodenAxe, - Item::IronAxe, - Item::CopperAxe, - ]) -}); -pub static AXOLOTL_FOOD: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::TropicalFishBucket])); -pub static BAMBOO_BLOCKS: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::BambooBlock, Item::StrippedBambooBlock])); -pub static BANNERS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::WhiteBanner, - Item::OrangeBanner, - Item::MagentaBanner, - Item::LightBlueBanner, - Item::YellowBanner, - Item::LimeBanner, - Item::PinkBanner, - Item::GrayBanner, - Item::LightGrayBanner, - Item::CyanBanner, - Item::PurpleBanner, - Item::BlueBanner, - Item::BrownBanner, - Item::GreenBanner, - Item::RedBanner, - Item::BlackBanner, - ]) -}); -pub static BARS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::IronBars, - Item::CopperBars, - Item::WaxedCopperBars, - Item::ExposedCopperBars, - Item::WaxedExposedCopperBars, - Item::WeatheredCopperBars, - Item::WaxedWeatheredCopperBars, - Item::OxidizedCopperBars, - Item::WaxedOxidizedCopperBars, - ]) -}); -pub static BEACON_PAYMENT_ITEMS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::NetheriteIngot, - Item::Emerald, - Item::Diamond, - Item::GoldIngot, - Item::IronIngot, - ]) -}); -pub static BEDS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::RedBed, - Item::BlackBed, - Item::BlueBed, - Item::BrownBed, - Item::CyanBed, - Item::GrayBed, - Item::GreenBed, - Item::LightBlueBed, - Item::LightGrayBed, - Item::LimeBed, - Item::MagentaBed, - Item::OrangeBed, - Item::PinkBed, - Item::PurpleBed, - Item::WhiteBed, - Item::YellowBed, - ]) -}); -pub static BEE_FOOD: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::Dandelion, - Item::OpenEyeblossom, - Item::Poppy, - Item::BlueOrchid, - Item::Allium, - Item::AzureBluet, - Item::RedTulip, - Item::OrangeTulip, - Item::WhiteTulip, - Item::PinkTulip, - Item::OxeyeDaisy, - Item::Cornflower, - Item::LilyOfTheValley, - Item::WitherRose, - Item::Torchflower, - Item::Sunflower, - Item::Lilac, - Item::Peony, - Item::RoseBush, - Item::PitcherPlant, - Item::FloweringAzaleaLeaves, - Item::FloweringAzalea, - Item::MangrovePropagule, - Item::CherryLeaves, - Item::PinkPetals, - Item::Wildflowers, - Item::ChorusFlower, - Item::SporeBlossom, - Item::CactusFlower, - ]) -}); -pub static BIRCH_LOGS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::BirchLog, - Item::BirchWood, - Item::StrippedBirchLog, - Item::StrippedBirchWood, - ]) -}); -pub static BOATS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::OakBoat, - Item::SpruceBoat, - Item::BirchBoat, - Item::JungleBoat, - Item::AcaciaBoat, - Item::DarkOakBoat, - Item::PaleOakBoat, - Item::MangroveBoat, - Item::BambooRaft, - Item::CherryBoat, - Item::OakChestBoat, - Item::SpruceChestBoat, - Item::BirchChestBoat, - Item::JungleChestBoat, - Item::AcaciaChestBoat, - Item::DarkOakChestBoat, - Item::PaleOakChestBoat, - Item::MangroveChestBoat, - Item::BambooChestRaft, - Item::CherryChestBoat, - ]) -}); -pub static BOOK_CLONING_TARGET: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::WritableBook])); -pub static BOOKSHELF_BOOKS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::Book, - Item::WrittenBook, - Item::EnchantedBook, - Item::WritableBook, - Item::KnowledgeBook, - ]) -}); -pub static BREAKS_DECORATED_POTS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::Trident, - Item::Mace, - Item::DiamondSword, - Item::StoneSword, - Item::GoldenSword, - Item::NetheriteSword, - Item::WoodenSword, - Item::IronSword, - Item::CopperSword, - Item::DiamondAxe, - Item::StoneAxe, - Item::GoldenAxe, - Item::NetheriteAxe, - Item::WoodenAxe, - Item::IronAxe, - Item::CopperAxe, - Item::DiamondPickaxe, - Item::StonePickaxe, - Item::GoldenPickaxe, - Item::NetheritePickaxe, - Item::WoodenPickaxe, - Item::IronPickaxe, - Item::CopperPickaxe, - Item::DiamondShovel, - Item::StoneShovel, - Item::GoldenShovel, - Item::NetheriteShovel, - Item::WoodenShovel, - Item::IronShovel, - Item::CopperShovel, - Item::DiamondHoe, - Item::StoneHoe, - Item::GoldenHoe, - Item::NetheriteHoe, - Item::WoodenHoe, - Item::IronHoe, - Item::CopperHoe, - ]) -}); -pub static BREWING_FUEL: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::BlazePowder])); -pub static BUNDLES: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::Bundle, - Item::BlackBundle, - Item::BlueBundle, - Item::BrownBundle, - Item::CyanBundle, - Item::GrayBundle, - Item::GreenBundle, - Item::LightBlueBundle, - Item::LightGrayBundle, - Item::LimeBundle, - Item::MagentaBundle, - Item::OrangeBundle, - Item::PinkBundle, - Item::PurpleBundle, - Item::RedBundle, - Item::YellowBundle, - Item::WhiteBundle, - ]) -}); -pub static BUTTONS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::OakButton, - Item::SpruceButton, - Item::BirchButton, - Item::JungleButton, - Item::AcaciaButton, - Item::DarkOakButton, - Item::PaleOakButton, - Item::CrimsonButton, - Item::WarpedButton, - Item::MangroveButton, - Item::BambooButton, - Item::CherryButton, - Item::StoneButton, - Item::PolishedBlackstoneButton, - ]) -}); -pub static CAMEL_FOOD: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::Cactus])); -pub static CAMEL_HUSK_FOOD: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::RabbitFoot])); -pub static CANDLES: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::Candle, - Item::WhiteCandle, - Item::OrangeCandle, - Item::MagentaCandle, - Item::LightBlueCandle, - Item::YellowCandle, - Item::LimeCandle, - Item::PinkCandle, - Item::GrayCandle, - Item::LightGrayCandle, - Item::CyanCandle, - Item::PurpleCandle, - Item::BlueCandle, - Item::BrownCandle, - Item::GreenCandle, - Item::RedCandle, - Item::BlackCandle, - ]) -}); -pub static CAT_FOOD: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::Cod, Item::Salmon])); -pub static CHAINS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::IronChain, - Item::CopperChain, - Item::WaxedCopperChain, - Item::ExposedCopperChain, - Item::WaxedExposedCopperChain, - Item::WeatheredCopperChain, - Item::WaxedWeatheredCopperChain, - Item::OxidizedCopperChain, - Item::WaxedOxidizedCopperChain, - ]) -}); -pub static CHERRY_LOGS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::CherryLog, - Item::CherryWood, - Item::StrippedCherryLog, - Item::StrippedCherryWood, - ]) -}); -pub static CHEST_ARMOR: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::LeatherChestplate, - Item::CopperChestplate, - Item::ChainmailChestplate, - Item::GoldenChestplate, - Item::IronChestplate, - Item::DiamondChestplate, - Item::NetheriteChestplate, - ]) -}); -pub static CHEST_BOATS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::OakChestBoat, - Item::SpruceChestBoat, - Item::BirchChestBoat, - Item::JungleChestBoat, - Item::AcaciaChestBoat, - Item::DarkOakChestBoat, - Item::PaleOakChestBoat, - Item::MangroveChestBoat, - Item::BambooChestRaft, - Item::CherryChestBoat, - ]) -}); -pub static CHICKEN_FOOD: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::WheatSeeds, - Item::MelonSeeds, - Item::PumpkinSeeds, - Item::BeetrootSeeds, - Item::TorchflowerSeeds, - Item::PitcherPod, - ]) -}); -pub static CLUSTER_MAX_HARVESTABLES: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::DiamondPickaxe, - Item::GoldenPickaxe, - Item::IronPickaxe, - Item::NetheritePickaxe, - Item::StonePickaxe, - Item::WoodenPickaxe, - Item::CopperPickaxe, - ]) -}); -pub static COAL_ORES: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::CoalOre, Item::DeepslateCoalOre])); -pub static COALS: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::Coal, Item::Charcoal])); -pub static COMPASSES: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::Compass, Item::RecoveryCompass])); -pub static COMPLETES_FIND_TREE_TUTORIAL: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::JungleLeaves, - Item::OakLeaves, - Item::SpruceLeaves, - Item::PaleOakLeaves, - Item::DarkOakLeaves, - Item::AcaciaLeaves, - Item::BirchLeaves, - Item::AzaleaLeaves, - Item::FloweringAzaleaLeaves, - Item::MangroveLeaves, - Item::CherryLeaves, - Item::NetherWartBlock, - Item::WarpedWartBlock, - Item::CrimsonStem, - Item::StrippedCrimsonStem, - Item::CrimsonHyphae, - Item::StrippedCrimsonHyphae, - Item::WarpedStem, - Item::StrippedWarpedStem, - Item::WarpedHyphae, - Item::StrippedWarpedHyphae, - Item::DarkOakLog, - Item::DarkOakWood, - Item::StrippedDarkOakLog, - Item::StrippedDarkOakWood, - Item::PaleOakLog, - Item::PaleOakWood, - Item::StrippedPaleOakLog, - Item::StrippedPaleOakWood, - Item::OakLog, - Item::OakWood, - Item::StrippedOakLog, - Item::StrippedOakWood, - Item::AcaciaLog, - Item::AcaciaWood, - Item::StrippedAcaciaLog, - Item::StrippedAcaciaWood, - Item::BirchLog, - Item::BirchWood, - Item::StrippedBirchLog, - Item::StrippedBirchWood, - Item::JungleLog, - Item::JungleWood, - Item::StrippedJungleLog, - Item::StrippedJungleWood, - Item::SpruceLog, - Item::SpruceWood, - Item::StrippedSpruceLog, - Item::StrippedSpruceWood, - Item::MangroveLog, - Item::MangroveWood, - Item::StrippedMangroveLog, - Item::StrippedMangroveWood, - Item::CherryLog, - Item::CherryWood, - Item::StrippedCherryLog, - Item::StrippedCherryWood, - ]) -}); -pub static COPPER: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::CopperBlock, - Item::ExposedCopper, - Item::WeatheredCopper, - Item::OxidizedCopper, - Item::WaxedCopperBlock, - Item::WaxedExposedCopper, - Item::WaxedWeatheredCopper, - Item::WaxedOxidizedCopper, - ]) -}); -pub static COPPER_CHESTS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::CopperChest, - Item::ExposedCopperChest, - Item::WeatheredCopperChest, - Item::OxidizedCopperChest, - Item::WaxedCopperChest, - Item::WaxedExposedCopperChest, - Item::WaxedWeatheredCopperChest, - Item::WaxedOxidizedCopperChest, - ]) -}); -pub static COPPER_GOLEM_STATUES: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::CopperGolemStatue, - Item::ExposedCopperGolemStatue, - Item::WeatheredCopperGolemStatue, - Item::OxidizedCopperGolemStatue, - Item::WaxedCopperGolemStatue, - Item::WaxedExposedCopperGolemStatue, - Item::WaxedWeatheredCopperGolemStatue, - Item::WaxedOxidizedCopperGolemStatue, - ]) -}); -pub static COPPER_ORES: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::CopperOre, Item::DeepslateCopperOre])); -pub static COPPER_TOOL_MATERIALS: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::CopperIngot])); -pub static COW_FOOD: LazyLock<HashSet<Item>> = LazyLock::new(|| HashSet::from_iter([Item::Wheat])); -pub static CREEPER_DROP_MUSIC_DISCS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::MusicDisc13, - Item::MusicDiscCat, - Item::MusicDiscBlocks, - Item::MusicDiscChirp, - Item::MusicDiscFar, - Item::MusicDiscMall, - Item::MusicDiscMellohi, - Item::MusicDiscStal, - Item::MusicDiscStrad, - Item::MusicDiscWard, - Item::MusicDisc11, - Item::MusicDiscWait, - ]) -}); -pub static CREEPER_IGNITERS: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::FlintAndSteel, Item::FireCharge])); -pub static CRIMSON_STEMS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::CrimsonStem, - Item::StrippedCrimsonStem, - Item::CrimsonHyphae, - Item::StrippedCrimsonHyphae, - ]) -}); -pub static DAMPENS_VIBRATIONS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::WhiteWool, - Item::OrangeWool, - Item::MagentaWool, - Item::LightBlueWool, - Item::YellowWool, - Item::LimeWool, - Item::PinkWool, - Item::GrayWool, - Item::LightGrayWool, - Item::CyanWool, - Item::PurpleWool, - Item::BlueWool, - Item::BrownWool, - Item::GreenWool, - Item::RedWool, - Item::BlackWool, - Item::WhiteCarpet, - Item::OrangeCarpet, - Item::MagentaCarpet, - Item::LightBlueCarpet, - Item::YellowCarpet, - Item::LimeCarpet, - Item::PinkCarpet, - Item::GrayCarpet, - Item::LightGrayCarpet, - Item::CyanCarpet, - Item::PurpleCarpet, - Item::BlueCarpet, - Item::BrownCarpet, - Item::GreenCarpet, - Item::RedCarpet, - Item::BlackCarpet, - ]) -}); -pub static DARK_OAK_LOGS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::DarkOakLog, - Item::DarkOakWood, - Item::StrippedDarkOakLog, - Item::StrippedDarkOakWood, - ]) -}); -pub static DECORATED_POT_INGREDIENTS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::Brick, - Item::AnglerPotterySherd, - Item::ArcherPotterySherd, - Item::ArmsUpPotterySherd, - Item::BladePotterySherd, - Item::BrewerPotterySherd, - Item::BurnPotterySherd, - Item::DangerPotterySherd, - Item::ExplorerPotterySherd, - Item::FriendPotterySherd, - Item::HeartPotterySherd, - Item::HeartbreakPotterySherd, - Item::HowlPotterySherd, - Item::MinerPotterySherd, - Item::MournerPotterySherd, - Item::PlentyPotterySherd, - Item::PrizePotterySherd, - Item::SheafPotterySherd, - Item::ShelterPotterySherd, - Item::SkullPotterySherd, - Item::SnortPotterySherd, - Item::FlowPotterySherd, - Item::GusterPotterySherd, - Item::ScrapePotterySherd, - ]) -}); -pub static DECORATED_POT_SHERDS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::AnglerPotterySherd, - Item::ArcherPotterySherd, - Item::ArmsUpPotterySherd, - Item::BladePotterySherd, - Item::BrewerPotterySherd, - Item::BurnPotterySherd, - Item::DangerPotterySherd, - Item::ExplorerPotterySherd, - Item::FriendPotterySherd, - Item::HeartPotterySherd, - Item::HeartbreakPotterySherd, - Item::HowlPotterySherd, - Item::MinerPotterySherd, - Item::MournerPotterySherd, - Item::PlentyPotterySherd, - Item::PrizePotterySherd, - Item::SheafPotterySherd, - Item::ShelterPotterySherd, - Item::SkullPotterySherd, - Item::SnortPotterySherd, - Item::FlowPotterySherd, - Item::GusterPotterySherd, - Item::ScrapePotterySherd, - ]) -}); -pub static DIAMOND_ORES: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::DiamondOre, Item::DeepslateDiamondOre])); -pub static DIAMOND_TOOL_MATERIALS: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::Diamond])); -pub static DIRT: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::Dirt, - Item::GrassBlock, - Item::Podzol, - Item::CoarseDirt, - Item::Mycelium, - Item::RootedDirt, - Item::MossBlock, - Item::PaleMossBlock, - Item::Mud, - Item::MuddyMangroveRoots, - ]) -}); -pub static DOORS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::CopperDoor, - Item::ExposedCopperDoor, - Item::WeatheredCopperDoor, - Item::OxidizedCopperDoor, - Item::WaxedCopperDoor, - Item::WaxedExposedCopperDoor, - Item::WaxedWeatheredCopperDoor, - Item::WaxedOxidizedCopperDoor, - Item::IronDoor, - Item::OakDoor, - Item::SpruceDoor, - Item::BirchDoor, - Item::JungleDoor, - Item::AcaciaDoor, - Item::DarkOakDoor, - Item::PaleOakDoor, - Item::CrimsonDoor, - Item::WarpedDoor, - Item::MangroveDoor, - Item::BambooDoor, - Item::CherryDoor, - ]) -}); -pub static DROWNED_PREFERRED_WEAPONS: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::Trident])); -pub static DUPLICATES_ALLAYS: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::AmethystShard])); -pub static DYEABLE: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::LeatherHelmet, - Item::LeatherChestplate, - Item::LeatherLeggings, - Item::LeatherBoots, - Item::LeatherHorseArmor, - Item::WolfArmor, - ]) -}); -pub static EGGS: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::Egg, Item::BlueEgg, Item::BrownEgg])); -pub static EMERALD_ORES: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::EmeraldOre, Item::DeepslateEmeraldOre])); -pub static ENCHANTABLE_ARMOR: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::LeatherBoots, - Item::CopperBoots, - Item::ChainmailBoots, - Item::GoldenBoots, - Item::IronBoots, - Item::DiamondBoots, - Item::NetheriteBoots, - Item::LeatherLeggings, - Item::CopperLeggings, - Item::ChainmailLeggings, - Item::GoldenLeggings, - Item::IronLeggings, - Item::DiamondLeggings, - Item::NetheriteLeggings, - Item::LeatherChestplate, - Item::CopperChestplate, - Item::ChainmailChestplate, - Item::GoldenChestplate, - Item::IronChestplate, - Item::DiamondChestplate, - Item::NetheriteChestplate, - Item::LeatherHelmet, - Item::CopperHelmet, - Item::ChainmailHelmet, - Item::GoldenHelmet, - Item::IronHelmet, - Item::DiamondHelmet, - Item::NetheriteHelmet, - Item::TurtleHelmet, - ]) -}); -pub static ENCHANTABLE_BOW: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::Bow])); -pub static ENCHANTABLE_CHEST_ARMOR: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::LeatherChestplate, - Item::CopperChestplate, - Item::ChainmailChestplate, - Item::GoldenChestplate, - Item::IronChestplate, - Item::DiamondChestplate, - Item::NetheriteChestplate, - ]) -}); -pub static ENCHANTABLE_CROSSBOW: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::Crossbow])); -pub static ENCHANTABLE_DURABILITY: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::Elytra, - Item::Shield, - Item::Bow, - Item::Crossbow, - Item::Trident, - Item::FlintAndSteel, - Item::Shears, - Item::Brush, - Item::FishingRod, - Item::CarrotOnAStick, - Item::WarpedFungusOnAStick, - Item::Mace, - Item::LeatherBoots, - Item::CopperBoots, - Item::ChainmailBoots, - Item::GoldenBoots, - Item::IronBoots, - Item::DiamondBoots, - Item::NetheriteBoots, - Item::LeatherLeggings, - Item::CopperLeggings, - Item::ChainmailLeggings, - Item::GoldenLeggings, - Item::IronLeggings, - Item::DiamondLeggings, - Item::NetheriteLeggings, - Item::LeatherChestplate, - Item::CopperChestplate, - Item::ChainmailChestplate, - Item::GoldenChestplate, - Item::IronChestplate, - Item::DiamondChestplate, - Item::NetheriteChestplate, - Item::LeatherHelmet, - Item::CopperHelmet, - Item::ChainmailHelmet, - Item::GoldenHelmet, - Item::IronHelmet, - Item::DiamondHelmet, - Item::NetheriteHelmet, - Item::TurtleHelmet, - Item::DiamondSword, - Item::StoneSword, - Item::GoldenSword, - Item::NetheriteSword, - Item::WoodenSword, - Item::IronSword, - Item::CopperSword, - Item::DiamondAxe, - Item::StoneAxe, - Item::GoldenAxe, - Item::NetheriteAxe, - Item::WoodenAxe, - Item::IronAxe, - Item::CopperAxe, - Item::DiamondPickaxe, - Item::StonePickaxe, - Item::GoldenPickaxe, - Item::NetheritePickaxe, - Item::WoodenPickaxe, - Item::IronPickaxe, - Item::CopperPickaxe, - Item::DiamondShovel, - Item::StoneShovel, - Item::GoldenShovel, - Item::NetheriteShovel, - Item::WoodenShovel, - Item::IronShovel, - Item::CopperShovel, - Item::DiamondHoe, - Item::StoneHoe, - Item::GoldenHoe, - Item::NetheriteHoe, - 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<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::Elytra, - Item::CarvedPumpkin, - Item::LeatherBoots, - Item::CopperBoots, - Item::ChainmailBoots, - Item::GoldenBoots, - Item::IronBoots, - Item::DiamondBoots, - Item::NetheriteBoots, - Item::LeatherLeggings, - Item::CopperLeggings, - Item::ChainmailLeggings, - Item::GoldenLeggings, - Item::IronLeggings, - Item::DiamondLeggings, - Item::NetheriteLeggings, - Item::LeatherChestplate, - Item::CopperChestplate, - Item::ChainmailChestplate, - Item::GoldenChestplate, - Item::IronChestplate, - Item::DiamondChestplate, - Item::NetheriteChestplate, - Item::LeatherHelmet, - Item::CopperHelmet, - Item::ChainmailHelmet, - Item::GoldenHelmet, - Item::IronHelmet, - Item::DiamondHelmet, - Item::NetheriteHelmet, - Item::TurtleHelmet, - Item::PlayerHead, - Item::CreeperHead, - Item::ZombieHead, - Item::SkeletonSkull, - Item::WitherSkeletonSkull, - Item::DragonHead, - Item::PiglinHead, - ]) -}); -pub static ENCHANTABLE_FIRE_ASPECT: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::Mace, - 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_FISHING: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::FishingRod])); -pub static ENCHANTABLE_FOOT_ARMOR: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::LeatherBoots, - Item::CopperBoots, - Item::ChainmailBoots, - Item::GoldenBoots, - Item::IronBoots, - Item::DiamondBoots, - Item::NetheriteBoots, - ]) -}); -pub static ENCHANTABLE_HEAD_ARMOR: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::LeatherHelmet, - Item::CopperHelmet, - Item::ChainmailHelmet, - Item::GoldenHelmet, - Item::IronHelmet, - Item::DiamondHelmet, - Item::NetheriteHelmet, - Item::TurtleHelmet, - ]) -}); -pub static ENCHANTABLE_LEG_ARMOR: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::LeatherLeggings, - Item::CopperLeggings, - Item::ChainmailLeggings, - Item::GoldenLeggings, - Item::IronLeggings, - Item::DiamondLeggings, - Item::NetheriteLeggings, - ]) -}); -pub static ENCHANTABLE_LUNGE: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::DiamondSpear, - Item::StoneSpear, - Item::GoldenSpear, - Item::NetheriteSpear, - Item::WoodenSpear, - Item::IronSpear, - Item::CopperSpear, - ]) -}); -pub static ENCHANTABLE_MACE: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::Mace])); -pub static ENCHANTABLE_MELEE_WEAPON: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - 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<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::Shears, - Item::DiamondAxe, - Item::StoneAxe, - Item::GoldenAxe, - Item::NetheriteAxe, - Item::WoodenAxe, - Item::IronAxe, - Item::CopperAxe, - Item::DiamondPickaxe, - Item::StonePickaxe, - Item::GoldenPickaxe, - Item::NetheritePickaxe, - Item::WoodenPickaxe, - Item::IronPickaxe, - Item::CopperPickaxe, - Item::DiamondShovel, - Item::StoneShovel, - Item::GoldenShovel, - Item::NetheriteShovel, - Item::WoodenShovel, - Item::IronShovel, - Item::CopperShovel, - Item::DiamondHoe, - Item::StoneHoe, - Item::GoldenHoe, - Item::NetheriteHoe, - Item::WoodenHoe, - Item::IronHoe, - Item::CopperHoe, - ]) -}); -pub static ENCHANTABLE_MINING_LOOT: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::DiamondAxe, - Item::StoneAxe, - Item::GoldenAxe, - Item::NetheriteAxe, - Item::WoodenAxe, - Item::IronAxe, - Item::CopperAxe, - Item::DiamondPickaxe, - Item::StonePickaxe, - Item::GoldenPickaxe, - Item::NetheritePickaxe, - Item::WoodenPickaxe, - Item::IronPickaxe, - Item::CopperPickaxe, - Item::DiamondShovel, - Item::StoneShovel, - Item::GoldenShovel, - Item::NetheriteShovel, - Item::WoodenShovel, - Item::IronShovel, - Item::CopperShovel, - Item::DiamondHoe, - Item::StoneHoe, - Item::GoldenHoe, - Item::NetheriteHoe, - Item::WoodenHoe, - Item::IronHoe, - Item::CopperHoe, - ]) -}); -pub static ENCHANTABLE_SHARP_WEAPON: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::DiamondAxe, - Item::StoneAxe, - Item::GoldenAxe, - Item::NetheriteAxe, - 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_SWEEPING: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::DiamondSword, - Item::StoneSword, - Item::GoldenSword, - Item::NetheriteSword, - Item::WoodenSword, - Item::IronSword, - Item::CopperSword, - ]) -}); -pub static ENCHANTABLE_TRIDENT: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::Trident])); -pub static ENCHANTABLE_VANISHING: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::Compass, - Item::CarvedPumpkin, - Item::Elytra, - Item::Shield, - Item::Bow, - Item::Crossbow, - Item::Trident, - Item::FlintAndSteel, - Item::Shears, - Item::Brush, - Item::FishingRod, - Item::CarrotOnAStick, - Item::WarpedFungusOnAStick, - Item::Mace, - Item::PlayerHead, - Item::CreeperHead, - Item::ZombieHead, - Item::SkeletonSkull, - Item::WitherSkeletonSkull, - Item::DragonHead, - Item::PiglinHead, - Item::LeatherBoots, - Item::CopperBoots, - Item::ChainmailBoots, - Item::GoldenBoots, - Item::IronBoots, - Item::DiamondBoots, - Item::NetheriteBoots, - Item::LeatherLeggings, - Item::CopperLeggings, - Item::ChainmailLeggings, - Item::GoldenLeggings, - Item::IronLeggings, - Item::DiamondLeggings, - Item::NetheriteLeggings, - Item::LeatherChestplate, - Item::CopperChestplate, - Item::ChainmailChestplate, - Item::GoldenChestplate, - Item::IronChestplate, - Item::DiamondChestplate, - Item::NetheriteChestplate, - Item::LeatherHelmet, - Item::CopperHelmet, - Item::ChainmailHelmet, - Item::GoldenHelmet, - Item::IronHelmet, - Item::DiamondHelmet, - Item::NetheriteHelmet, - Item::TurtleHelmet, - Item::DiamondSword, - Item::StoneSword, - Item::GoldenSword, - Item::NetheriteSword, - Item::WoodenSword, - Item::IronSword, - Item::CopperSword, - Item::DiamondAxe, - Item::StoneAxe, - Item::GoldenAxe, - Item::NetheriteAxe, - Item::WoodenAxe, - Item::IronAxe, - Item::CopperAxe, - Item::DiamondPickaxe, - Item::StonePickaxe, - Item::GoldenPickaxe, - Item::NetheritePickaxe, - Item::WoodenPickaxe, - Item::IronPickaxe, - Item::CopperPickaxe, - Item::DiamondShovel, - Item::StoneShovel, - Item::GoldenShovel, - Item::NetheriteShovel, - Item::WoodenShovel, - Item::IronShovel, - Item::CopperShovel, - Item::DiamondHoe, - Item::StoneHoe, - Item::GoldenHoe, - Item::NetheriteHoe, - 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<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::Mace, - Item::DiamondAxe, - Item::StoneAxe, - Item::GoldenAxe, - Item::NetheriteAxe, - 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<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::AcaciaFenceGate, - Item::BirchFenceGate, - Item::DarkOakFenceGate, - Item::PaleOakFenceGate, - Item::JungleFenceGate, - Item::OakFenceGate, - Item::SpruceFenceGate, - Item::CrimsonFenceGate, - Item::WarpedFenceGate, - Item::MangroveFenceGate, - Item::BambooFenceGate, - Item::CherryFenceGate, - ]) -}); -pub static FENCES: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::NetherBrickFence, - Item::OakFence, - Item::AcaciaFence, - Item::DarkOakFence, - Item::PaleOakFence, - Item::SpruceFence, - Item::BirchFence, - Item::JungleFence, - Item::CrimsonFence, - Item::WarpedFence, - Item::MangroveFence, - Item::BambooFence, - Item::CherryFence, - ]) -}); -pub static FISHES: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::Cod, - Item::CookedCod, - Item::Salmon, - Item::CookedSalmon, - Item::Pufferfish, - Item::TropicalFish, - ]) -}); -pub static FLOWERS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::Sunflower, - Item::Lilac, - Item::Peony, - Item::RoseBush, - Item::PitcherPlant, - Item::FloweringAzaleaLeaves, - Item::FloweringAzalea, - Item::MangrovePropagule, - Item::CherryLeaves, - Item::PinkPetals, - Item::Wildflowers, - Item::ChorusFlower, - Item::SporeBlossom, - Item::CactusFlower, - Item::Dandelion, - Item::OpenEyeblossom, - Item::Poppy, - Item::BlueOrchid, - Item::Allium, - Item::AzureBluet, - Item::RedTulip, - Item::OrangeTulip, - Item::WhiteTulip, - Item::PinkTulip, - Item::OxeyeDaisy, - Item::Cornflower, - Item::LilyOfTheValley, - Item::WitherRose, - Item::Torchflower, - Item::ClosedEyeblossom, - ]) -}); -pub static FOOT_ARMOR: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::LeatherBoots, - Item::CopperBoots, - Item::ChainmailBoots, - Item::GoldenBoots, - Item::IronBoots, - Item::DiamondBoots, - Item::NetheriteBoots, - ]) -}); -pub static FOX_FOOD: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::SweetBerries, Item::GlowBerries])); -pub static FREEZE_IMMUNE_WEARABLES: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::LeatherBoots, - Item::LeatherLeggings, - Item::LeatherChestplate, - Item::LeatherHelmet, - Item::LeatherHorseArmor, - ]) -}); -pub static FROG_FOOD: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::SlimeBall])); -pub static FURNACE_MINECART_FUEL: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::Coal, Item::Charcoal])); -pub static GAZE_DISGUISE_EQUIPMENT: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::CarvedPumpkin])); -pub static GOAT_FOOD: LazyLock<HashSet<Item>> = LazyLock::new(|| HashSet::from_iter([Item::Wheat])); -pub static GOLD_ORES: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([Item::GoldOre, Item::NetherGoldOre, Item::DeepslateGoldOre]) -}); -pub static GOLD_TOOL_MATERIALS: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::GoldIngot])); -pub static HANGING_SIGNS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::OakHangingSign, - Item::SpruceHangingSign, - Item::BirchHangingSign, - Item::AcaciaHangingSign, - Item::CherryHangingSign, - Item::JungleHangingSign, - Item::DarkOakHangingSign, - Item::PaleOakHangingSign, - Item::CrimsonHangingSign, - Item::WarpedHangingSign, - Item::MangroveHangingSign, - Item::BambooHangingSign, - ]) -}); -pub static HAPPY_GHAST_FOOD: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::Snowball])); -pub static HAPPY_GHAST_TEMPT_ITEMS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::Snowball, - Item::WhiteHarness, - Item::OrangeHarness, - Item::MagentaHarness, - Item::LightBlueHarness, - Item::YellowHarness, - Item::LimeHarness, - Item::PinkHarness, - Item::GrayHarness, - Item::LightGrayHarness, - Item::CyanHarness, - Item::PurpleHarness, - Item::BlueHarness, - Item::BrownHarness, - Item::GreenHarness, - Item::RedHarness, - Item::BlackHarness, - ]) -}); -pub static HARNESSES: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::WhiteHarness, - Item::OrangeHarness, - Item::MagentaHarness, - Item::LightBlueHarness, - Item::YellowHarness, - Item::LimeHarness, - Item::PinkHarness, - Item::GrayHarness, - Item::LightGrayHarness, - Item::CyanHarness, - Item::PurpleHarness, - Item::BlueHarness, - Item::BrownHarness, - Item::GreenHarness, - Item::RedHarness, - Item::BlackHarness, - ]) -}); -pub static HEAD_ARMOR: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::LeatherHelmet, - Item::CopperHelmet, - Item::ChainmailHelmet, - Item::GoldenHelmet, - Item::IronHelmet, - Item::DiamondHelmet, - Item::NetheriteHelmet, - Item::TurtleHelmet, - ]) -}); -pub static HOES: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::DiamondHoe, - Item::StoneHoe, - Item::GoldenHoe, - Item::NetheriteHoe, - Item::WoodenHoe, - Item::IronHoe, - Item::CopperHoe, - ]) -}); -pub static HOGLIN_FOOD: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::CrimsonFungus])); -pub static HORSE_FOOD: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::Wheat, - Item::Sugar, - Item::HayBlock, - Item::Apple, - Item::Carrot, - Item::GoldenCarrot, - Item::GoldenApple, - Item::EnchantedGoldenApple, - ]) -}); -pub static HORSE_TEMPT_ITEMS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::GoldenCarrot, - Item::GoldenApple, - Item::EnchantedGoldenApple, - ]) -}); -pub static IGNORED_BY_PIGLIN_BABIES: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::Leather])); -pub static IRON_ORES: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::IronOre, Item::DeepslateIronOre])); -pub static IRON_TOOL_MATERIALS: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::IronIngot])); -pub static JUNGLE_LOGS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::JungleLog, - Item::JungleWood, - Item::StrippedJungleLog, - Item::StrippedJungleWood, - ]) -}); -pub static LANTERNS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::Lantern, - Item::SoulLantern, - Item::CopperLantern, - Item::WaxedCopperLantern, - Item::ExposedCopperLantern, - Item::WaxedExposedCopperLantern, - Item::WeatheredCopperLantern, - Item::WaxedWeatheredCopperLantern, - Item::OxidizedCopperLantern, - Item::WaxedOxidizedCopperLantern, - ]) -}); -pub static LAPIS_ORES: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::LapisOre, Item::DeepslateLapisOre])); -pub static LEAVES: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::JungleLeaves, - Item::OakLeaves, - Item::SpruceLeaves, - Item::PaleOakLeaves, - Item::DarkOakLeaves, - Item::AcaciaLeaves, - Item::BirchLeaves, - Item::AzaleaLeaves, - Item::FloweringAzaleaLeaves, - Item::MangroveLeaves, - Item::CherryLeaves, - ]) -}); -pub static LECTERN_BOOKS: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::WrittenBook, Item::WritableBook])); -pub static LEG_ARMOR: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::LeatherLeggings, - Item::CopperLeggings, - Item::ChainmailLeggings, - Item::GoldenLeggings, - Item::IronLeggings, - Item::DiamondLeggings, - Item::NetheriteLeggings, - ]) -}); -pub static LIGHTNING_RODS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::LightningRod, - Item::ExposedLightningRod, - Item::WeatheredLightningRod, - Item::OxidizedLightningRod, - Item::WaxedLightningRod, - Item::WaxedExposedLightningRod, - Item::WaxedWeatheredLightningRod, - Item::WaxedOxidizedLightningRod, - ]) -}); -pub static LLAMA_FOOD: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::Wheat, Item::HayBlock])); -pub static LLAMA_TEMPT_ITEMS: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::HayBlock])); -pub static LOGS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::CrimsonStem, - Item::StrippedCrimsonStem, - Item::CrimsonHyphae, - Item::StrippedCrimsonHyphae, - Item::WarpedStem, - Item::StrippedWarpedStem, - Item::WarpedHyphae, - Item::StrippedWarpedHyphae, - Item::DarkOakLog, - Item::DarkOakWood, - Item::StrippedDarkOakLog, - Item::StrippedDarkOakWood, - Item::PaleOakLog, - Item::PaleOakWood, - Item::StrippedPaleOakLog, - Item::StrippedPaleOakWood, - Item::OakLog, - Item::OakWood, - Item::StrippedOakLog, - Item::StrippedOakWood, - Item::AcaciaLog, - Item::AcaciaWood, - Item::StrippedAcaciaLog, - Item::StrippedAcaciaWood, - Item::BirchLog, - Item::BirchWood, - Item::StrippedBirchLog, - Item::StrippedBirchWood, - Item::JungleLog, - Item::JungleWood, - Item::StrippedJungleLog, - Item::StrippedJungleWood, - Item::SpruceLog, - Item::SpruceWood, - Item::StrippedSpruceLog, - Item::StrippedSpruceWood, - Item::MangroveLog, - Item::MangroveWood, - Item::StrippedMangroveLog, - Item::StrippedMangroveWood, - Item::CherryLog, - Item::CherryWood, - Item::StrippedCherryLog, - Item::StrippedCherryWood, - ]) -}); -pub static LOGS_THAT_BURN: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::DarkOakLog, - Item::DarkOakWood, - Item::StrippedDarkOakLog, - Item::StrippedDarkOakWood, - Item::PaleOakLog, - Item::PaleOakWood, - Item::StrippedPaleOakLog, - Item::StrippedPaleOakWood, - Item::OakLog, - Item::OakWood, - Item::StrippedOakLog, - Item::StrippedOakWood, - Item::AcaciaLog, - Item::AcaciaWood, - Item::StrippedAcaciaLog, - Item::StrippedAcaciaWood, - Item::BirchLog, - Item::BirchWood, - Item::StrippedBirchLog, - Item::StrippedBirchWood, - Item::JungleLog, - Item::JungleWood, - Item::StrippedJungleLog, - Item::StrippedJungleWood, - Item::SpruceLog, - Item::SpruceWood, - Item::StrippedSpruceLog, - Item::StrippedSpruceWood, - Item::MangroveLog, - Item::MangroveWood, - Item::StrippedMangroveLog, - Item::StrippedMangroveWood, - Item::CherryLog, - Item::CherryWood, - Item::StrippedCherryLog, - Item::StrippedCherryWood, - ]) -}); -pub static MANGROVE_LOGS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::MangroveLog, - Item::MangroveWood, - Item::StrippedMangroveLog, - Item::StrippedMangroveWood, - ]) -}); -pub static MAP_INVISIBILITY_EQUIPMENT: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::CarvedPumpkin])); -pub static MEAT: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::Beef, - Item::Chicken, - Item::CookedBeef, - Item::CookedChicken, - Item::CookedMutton, - Item::CookedPorkchop, - Item::CookedRabbit, - Item::Mutton, - Item::Porkchop, - Item::Rabbit, - Item::RottenFlesh, - ]) -}); -pub static NAUTILUS_BUCKET_FOOD: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::PufferfishBucket, - Item::CodBucket, - Item::SalmonBucket, - Item::TropicalFishBucket, - ]) -}); -pub static NAUTILUS_FOOD: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - 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<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::PufferfishBucket, Item::Pufferfish])); -pub static NETHERITE_TOOL_MATERIALS: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::NetheriteIngot])); -pub static NON_FLAMMABLE_WOOD: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::WarpedStem, - Item::StrippedWarpedStem, - Item::WarpedHyphae, - Item::StrippedWarpedHyphae, - Item::CrimsonStem, - Item::StrippedCrimsonStem, - Item::CrimsonHyphae, - Item::StrippedCrimsonHyphae, - Item::CrimsonPlanks, - Item::WarpedPlanks, - Item::CrimsonSlab, - Item::WarpedSlab, - Item::CrimsonPressurePlate, - Item::WarpedPressurePlate, - Item::CrimsonFence, - Item::WarpedFence, - Item::CrimsonTrapdoor, - Item::WarpedTrapdoor, - Item::CrimsonFenceGate, - Item::WarpedFenceGate, - Item::CrimsonStairs, - Item::WarpedStairs, - Item::CrimsonButton, - Item::WarpedButton, - Item::CrimsonDoor, - Item::WarpedDoor, - Item::CrimsonSign, - Item::WarpedSign, - Item::WarpedHangingSign, - Item::CrimsonHangingSign, - Item::WarpedShelf, - Item::CrimsonShelf, - ]) -}); -pub static NOTEBLOCK_TOP_INSTRUMENTS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::ZombieHead, - Item::SkeletonSkull, - Item::CreeperHead, - Item::DragonHead, - Item::WitherSkeletonSkull, - Item::PiglinHead, - Item::PlayerHead, - ]) -}); -pub static OAK_LOGS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::OakLog, - Item::OakWood, - Item::StrippedOakLog, - Item::StrippedOakWood, - ]) -}); -pub static OCELOT_FOOD: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::Cod, Item::Salmon])); -pub static PALE_OAK_LOGS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::PaleOakLog, - Item::PaleOakWood, - Item::StrippedPaleOakLog, - Item::StrippedPaleOakWood, - ]) -}); -pub static PANDA_EATS_FROM_GROUND: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::Cake, Item::Bamboo])); -pub static PANDA_FOOD: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::Bamboo])); -pub static PARROT_FOOD: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::WheatSeeds, - Item::MelonSeeds, - Item::PumpkinSeeds, - Item::BeetrootSeeds, - Item::TorchflowerSeeds, - Item::PitcherPod, - ]) -}); -pub static PARROT_POISONOUS_FOOD: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::Cookie])); -pub static PICKAXES: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::DiamondPickaxe, - Item::StonePickaxe, - Item::GoldenPickaxe, - Item::NetheritePickaxe, - Item::WoodenPickaxe, - Item::IronPickaxe, - Item::CopperPickaxe, - ]) -}); -pub static PIG_FOOD: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::Carrot, Item::Potato, Item::Beetroot])); -pub static PIGLIN_FOOD: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::Porkchop, Item::CookedPorkchop])); -pub static PIGLIN_LOVED: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::GoldBlock, - Item::GildedBlackstone, - Item::LightWeightedPressurePlate, - Item::GoldIngot, - Item::Bell, - Item::Clock, - Item::GoldenCarrot, - Item::GlisteringMelonSlice, - Item::GoldenApple, - Item::EnchantedGoldenApple, - Item::GoldenHelmet, - Item::GoldenChestplate, - Item::GoldenLeggings, - Item::GoldenBoots, - Item::GoldenHorseArmor, - Item::GoldenNautilusArmor, - Item::GoldenSword, - Item::GoldenSpear, - Item::GoldenPickaxe, - Item::GoldenShovel, - Item::GoldenAxe, - Item::GoldenHoe, - Item::RawGold, - Item::RawGoldBlock, - Item::GoldOre, - Item::NetherGoldOre, - Item::DeepslateGoldOre, - ]) -}); -pub static PIGLIN_PREFERRED_WEAPONS: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::Crossbow, Item::GoldenSpear])); -pub static PIGLIN_REPELLENTS: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::SoulTorch, Item::SoulLantern, Item::SoulCampfire])); -pub static PIGLIN_SAFE_ARMOR: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::GoldenHelmet, - Item::GoldenChestplate, - Item::GoldenLeggings, - Item::GoldenBoots, - ]) -}); -pub static PILLAGER_PREFERRED_WEAPONS: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::Crossbow])); -pub static PLANKS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::OakPlanks, - Item::SprucePlanks, - Item::BirchPlanks, - Item::JunglePlanks, - Item::AcaciaPlanks, - Item::DarkOakPlanks, - Item::PaleOakPlanks, - Item::CrimsonPlanks, - Item::WarpedPlanks, - Item::MangrovePlanks, - Item::BambooPlanks, - Item::CherryPlanks, - ]) -}); -pub static RABBIT_FOOD: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::Carrot, Item::GoldenCarrot, Item::Dandelion])); -pub static RAILS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::Rail, - Item::PoweredRail, - Item::DetectorRail, - Item::ActivatorRail, - ]) -}); -pub static REDSTONE_ORES: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::RedstoneOre, Item::DeepslateRedstoneOre])); -pub static REPAIRS_CHAIN_ARMOR: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::IronIngot])); -pub static REPAIRS_COPPER_ARMOR: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::CopperIngot])); -pub static REPAIRS_DIAMOND_ARMOR: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::Diamond])); -pub static REPAIRS_GOLD_ARMOR: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::GoldIngot])); -pub static REPAIRS_IRON_ARMOR: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::IronIngot])); -pub static REPAIRS_LEATHER_ARMOR: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::Leather])); -pub static REPAIRS_NETHERITE_ARMOR: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::NetheriteIngot])); -pub static REPAIRS_TURTLE_HELMET: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::TurtleScute])); -pub static REPAIRS_WOLF_ARMOR: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::ArmadilloScute])); -pub static SAND: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::Sand, Item::RedSand, Item::SuspiciousSand])); -pub static SAPLINGS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::OakSapling, - Item::SpruceSapling, - Item::BirchSapling, - Item::JungleSapling, - Item::AcaciaSapling, - Item::DarkOakSapling, - Item::PaleOakSapling, - Item::Azalea, - Item::FloweringAzalea, - Item::MangrovePropagule, - Item::CherrySapling, - ]) -}); -pub static SHEARABLE_FROM_COPPER_GOLEM: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::Poppy])); -pub static SHEEP_FOOD: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::Wheat])); -pub static SHOVELS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::DiamondShovel, - Item::StoneShovel, - Item::GoldenShovel, - Item::NetheriteShovel, - Item::WoodenShovel, - Item::IronShovel, - Item::CopperShovel, - ]) -}); -pub static SHULKER_BOXES: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::ShulkerBox, - Item::BlackShulkerBox, - Item::BlueShulkerBox, - Item::BrownShulkerBox, - Item::CyanShulkerBox, - Item::GrayShulkerBox, - Item::GreenShulkerBox, - Item::LightBlueShulkerBox, - Item::LightGrayShulkerBox, - Item::LimeShulkerBox, - Item::MagentaShulkerBox, - Item::OrangeShulkerBox, - Item::PinkShulkerBox, - Item::PurpleShulkerBox, - Item::RedShulkerBox, - Item::WhiteShulkerBox, - Item::YellowShulkerBox, - ]) -}); -pub static SIGNS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::OakSign, - Item::SpruceSign, - Item::BirchSign, - Item::AcaciaSign, - Item::JungleSign, - Item::DarkOakSign, - Item::PaleOakSign, - Item::CrimsonSign, - Item::WarpedSign, - Item::MangroveSign, - Item::BambooSign, - Item::CherrySign, - ]) -}); -pub static SKELETON_PREFERRED_WEAPONS: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::Bow])); -pub static SKULLS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::PlayerHead, - Item::CreeperHead, - Item::ZombieHead, - Item::SkeletonSkull, - Item::WitherSkeletonSkull, - Item::DragonHead, - Item::PiglinHead, - ]) -}); -pub static SLABS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::BambooMosaicSlab, - Item::StoneSlab, - Item::SmoothStoneSlab, - Item::StoneBrickSlab, - Item::SandstoneSlab, - Item::PurpurSlab, - Item::QuartzSlab, - Item::RedSandstoneSlab, - Item::BrickSlab, - Item::CobblestoneSlab, - Item::NetherBrickSlab, - Item::PetrifiedOakSlab, - Item::PrismarineSlab, - Item::PrismarineBrickSlab, - Item::DarkPrismarineSlab, - Item::PolishedGraniteSlab, - Item::SmoothRedSandstoneSlab, - Item::MossyStoneBrickSlab, - Item::PolishedDioriteSlab, - Item::MossyCobblestoneSlab, - Item::EndStoneBrickSlab, - Item::SmoothSandstoneSlab, - Item::SmoothQuartzSlab, - Item::GraniteSlab, - Item::AndesiteSlab, - Item::RedNetherBrickSlab, - Item::PolishedAndesiteSlab, - Item::DioriteSlab, - Item::CutSandstoneSlab, - Item::CutRedSandstoneSlab, - Item::BlackstoneSlab, - Item::PolishedBlackstoneBrickSlab, - Item::PolishedBlackstoneSlab, - Item::CobbledDeepslateSlab, - Item::PolishedDeepslateSlab, - Item::DeepslateTileSlab, - Item::DeepslateBrickSlab, - Item::WaxedWeatheredCutCopperSlab, - Item::WaxedExposedCutCopperSlab, - Item::WaxedCutCopperSlab, - Item::OxidizedCutCopperSlab, - Item::WeatheredCutCopperSlab, - Item::ExposedCutCopperSlab, - Item::CutCopperSlab, - Item::WaxedOxidizedCutCopperSlab, - Item::MudBrickSlab, - Item::TuffSlab, - Item::PolishedTuffSlab, - Item::TuffBrickSlab, - Item::ResinBrickSlab, - Item::OakSlab, - Item::SpruceSlab, - Item::BirchSlab, - Item::JungleSlab, - Item::AcaciaSlab, - Item::DarkOakSlab, - Item::PaleOakSlab, - Item::CrimsonSlab, - Item::WarpedSlab, - Item::MangroveSlab, - Item::BambooSlab, - Item::CherrySlab, - ]) -}); -pub static SMALL_FLOWERS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::Dandelion, - Item::OpenEyeblossom, - Item::Poppy, - Item::BlueOrchid, - Item::Allium, - Item::AzureBluet, - Item::RedTulip, - Item::OrangeTulip, - Item::WhiteTulip, - Item::PinkTulip, - Item::OxeyeDaisy, - Item::Cornflower, - Item::LilyOfTheValley, - Item::WitherRose, - Item::Torchflower, - Item::ClosedEyeblossom, - ]) -}); -pub static SMELTS_TO_GLASS: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::Sand, Item::RedSand])); -pub static SNIFFER_FOOD: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::TorchflowerSeeds])); -pub static SOUL_FIRE_BASE_BLOCKS: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::SoulSand, Item::SoulSoil])); -pub static SPEARS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::DiamondSpear, - Item::StoneSpear, - Item::GoldenSpear, - Item::NetheriteSpear, - Item::WoodenSpear, - Item::IronSpear, - Item::CopperSpear, - ]) -}); -pub static SPRUCE_LOGS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::SpruceLog, - Item::SpruceWood, - Item::StrippedSpruceLog, - Item::StrippedSpruceWood, - ]) -}); -pub static STAIRS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::BambooMosaicStairs, - Item::CobblestoneStairs, - Item::SandstoneStairs, - Item::NetherBrickStairs, - Item::StoneBrickStairs, - Item::BrickStairs, - Item::PurpurStairs, - Item::QuartzStairs, - Item::RedSandstoneStairs, - Item::PrismarineBrickStairs, - Item::PrismarineStairs, - Item::DarkPrismarineStairs, - Item::PolishedGraniteStairs, - Item::SmoothRedSandstoneStairs, - Item::MossyStoneBrickStairs, - Item::PolishedDioriteStairs, - Item::MossyCobblestoneStairs, - Item::EndStoneBrickStairs, - Item::StoneStairs, - Item::SmoothSandstoneStairs, - Item::SmoothQuartzStairs, - Item::GraniteStairs, - Item::AndesiteStairs, - Item::RedNetherBrickStairs, - Item::PolishedAndesiteStairs, - Item::DioriteStairs, - Item::BlackstoneStairs, - Item::PolishedBlackstoneBrickStairs, - Item::PolishedBlackstoneStairs, - Item::CobbledDeepslateStairs, - Item::PolishedDeepslateStairs, - Item::DeepslateTileStairs, - Item::DeepslateBrickStairs, - Item::OxidizedCutCopperStairs, - Item::WeatheredCutCopperStairs, - Item::ExposedCutCopperStairs, - Item::CutCopperStairs, - Item::WaxedWeatheredCutCopperStairs, - Item::WaxedExposedCutCopperStairs, - Item::WaxedCutCopperStairs, - Item::WaxedOxidizedCutCopperStairs, - Item::MudBrickStairs, - Item::TuffStairs, - Item::PolishedTuffStairs, - Item::TuffBrickStairs, - Item::ResinBrickStairs, - Item::OakStairs, - Item::SpruceStairs, - Item::BirchStairs, - Item::JungleStairs, - Item::AcaciaStairs, - Item::DarkOakStairs, - Item::PaleOakStairs, - Item::CrimsonStairs, - Item::WarpedStairs, - Item::MangroveStairs, - Item::BambooStairs, - Item::CherryStairs, - ]) -}); -pub static STONE_BRICKS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::StoneBricks, - Item::MossyStoneBricks, - Item::CrackedStoneBricks, - Item::ChiseledStoneBricks, - ]) -}); -pub static STONE_BUTTONS: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::StoneButton, Item::PolishedBlackstoneButton])); -pub static STONE_CRAFTING_MATERIALS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([Item::Cobblestone, Item::Blackstone, Item::CobbledDeepslate]) -}); -pub static STONE_TOOL_MATERIALS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([Item::Cobblestone, Item::Blackstone, Item::CobbledDeepslate]) -}); -pub static STRIDER_FOOD: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::WarpedFungus])); -pub static STRIDER_TEMPT_ITEMS: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::WarpedFungusOnAStick, Item::WarpedFungus])); -pub static SWORDS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::DiamondSword, - Item::StoneSword, - Item::GoldenSword, - Item::NetheriteSword, - Item::WoodenSword, - Item::IronSword, - Item::CopperSword, - ]) -}); -pub static TERRACOTTA: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::Terracotta, - Item::WhiteTerracotta, - Item::OrangeTerracotta, - Item::MagentaTerracotta, - Item::LightBlueTerracotta, - Item::YellowTerracotta, - Item::LimeTerracotta, - Item::PinkTerracotta, - Item::GrayTerracotta, - Item::LightGrayTerracotta, - Item::CyanTerracotta, - Item::PurpleTerracotta, - Item::BlueTerracotta, - Item::BrownTerracotta, - Item::GreenTerracotta, - Item::RedTerracotta, - Item::BlackTerracotta, - ]) -}); -pub static TRAPDOORS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::IronTrapdoor, - Item::CopperTrapdoor, - Item::ExposedCopperTrapdoor, - Item::WeatheredCopperTrapdoor, - Item::OxidizedCopperTrapdoor, - Item::WaxedCopperTrapdoor, - Item::WaxedExposedCopperTrapdoor, - Item::WaxedWeatheredCopperTrapdoor, - Item::WaxedOxidizedCopperTrapdoor, - Item::AcaciaTrapdoor, - Item::BirchTrapdoor, - Item::DarkOakTrapdoor, - Item::PaleOakTrapdoor, - Item::JungleTrapdoor, - Item::OakTrapdoor, - Item::SpruceTrapdoor, - Item::CrimsonTrapdoor, - Item::WarpedTrapdoor, - Item::MangroveTrapdoor, - Item::BambooTrapdoor, - Item::CherryTrapdoor, - ]) -}); -pub static TRIM_MATERIALS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::AmethystShard, - Item::CopperIngot, - Item::Diamond, - Item::Emerald, - Item::GoldIngot, - Item::IronIngot, - Item::LapisLazuli, - Item::NetheriteIngot, - Item::Quartz, - Item::Redstone, - Item::ResinBrick, - ]) -}); -pub static TRIMMABLE_ARMOR: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::LeatherBoots, - Item::CopperBoots, - Item::ChainmailBoots, - Item::GoldenBoots, - Item::IronBoots, - Item::DiamondBoots, - Item::NetheriteBoots, - Item::LeatherLeggings, - Item::CopperLeggings, - Item::ChainmailLeggings, - Item::GoldenLeggings, - Item::IronLeggings, - Item::DiamondLeggings, - Item::NetheriteLeggings, - Item::LeatherChestplate, - Item::CopperChestplate, - Item::ChainmailChestplate, - Item::GoldenChestplate, - Item::IronChestplate, - Item::DiamondChestplate, - Item::NetheriteChestplate, - Item::LeatherHelmet, - Item::CopperHelmet, - Item::ChainmailHelmet, - Item::GoldenHelmet, - Item::IronHelmet, - Item::DiamondHelmet, - Item::NetheriteHelmet, - Item::TurtleHelmet, - ]) -}); -pub static TURTLE_FOOD: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::Seagrass])); -pub static VILLAGER_PICKS_UP: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::Bread, - Item::Wheat, - Item::Beetroot, - Item::WheatSeeds, - Item::Potato, - Item::Carrot, - Item::BeetrootSeeds, - Item::TorchflowerSeeds, - Item::PitcherPod, - ]) -}); -pub static VILLAGER_PLANTABLE_SEEDS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::WheatSeeds, - Item::Potato, - Item::Carrot, - Item::BeetrootSeeds, - Item::TorchflowerSeeds, - Item::PitcherPod, - ]) -}); -pub static WALLS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::CobblestoneWall, - Item::MossyCobblestoneWall, - Item::BrickWall, - Item::PrismarineWall, - Item::RedSandstoneWall, - Item::MossyStoneBrickWall, - Item::GraniteWall, - Item::StoneBrickWall, - Item::NetherBrickWall, - Item::AndesiteWall, - Item::RedNetherBrickWall, - Item::SandstoneWall, - Item::EndStoneBrickWall, - Item::DioriteWall, - Item::BlackstoneWall, - Item::PolishedBlackstoneBrickWall, - Item::PolishedBlackstoneWall, - Item::CobbledDeepslateWall, - Item::PolishedDeepslateWall, - Item::DeepslateTileWall, - Item::DeepslateBrickWall, - Item::MudBrickWall, - Item::TuffWall, - Item::PolishedTuffWall, - Item::TuffBrickWall, - Item::ResinBrickWall, - ]) -}); -pub static WARPED_STEMS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::WarpedStem, - Item::StrippedWarpedStem, - Item::WarpedHyphae, - Item::StrippedWarpedHyphae, - ]) -}); -pub static WART_BLOCKS: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::NetherWartBlock, Item::WarpedWartBlock])); -pub static WITHER_SKELETON_DISLIKED_WEAPONS: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::Bow, Item::Crossbow])); -pub static WOLF_FOOD: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::Cod, - Item::CookedCod, - Item::Salmon, - Item::CookedSalmon, - Item::TropicalFish, - Item::Pufferfish, - Item::RabbitStew, - Item::Beef, - Item::Chicken, - Item::CookedBeef, - Item::CookedChicken, - Item::CookedMutton, - Item::CookedPorkchop, - Item::CookedRabbit, - Item::Mutton, - Item::Porkchop, - Item::Rabbit, - Item::RottenFlesh, - ]) -}); -pub static WOODEN_BUTTONS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::OakButton, - Item::SpruceButton, - Item::BirchButton, - Item::JungleButton, - Item::AcaciaButton, - Item::DarkOakButton, - Item::PaleOakButton, - Item::CrimsonButton, - Item::WarpedButton, - Item::MangroveButton, - Item::BambooButton, - Item::CherryButton, - ]) -}); -pub static WOODEN_DOORS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::OakDoor, - Item::SpruceDoor, - Item::BirchDoor, - Item::JungleDoor, - Item::AcaciaDoor, - Item::DarkOakDoor, - Item::PaleOakDoor, - Item::CrimsonDoor, - Item::WarpedDoor, - Item::MangroveDoor, - Item::BambooDoor, - Item::CherryDoor, - ]) -}); -pub static WOODEN_FENCES: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::OakFence, - Item::AcaciaFence, - Item::DarkOakFence, - Item::PaleOakFence, - Item::SpruceFence, - Item::BirchFence, - Item::JungleFence, - Item::CrimsonFence, - Item::WarpedFence, - Item::MangroveFence, - Item::BambooFence, - Item::CherryFence, - ]) -}); -pub static WOODEN_PRESSURE_PLATES: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::OakPressurePlate, - Item::SprucePressurePlate, - Item::BirchPressurePlate, - Item::JunglePressurePlate, - Item::AcaciaPressurePlate, - Item::DarkOakPressurePlate, - Item::PaleOakPressurePlate, - Item::CrimsonPressurePlate, - Item::WarpedPressurePlate, - Item::MangrovePressurePlate, - Item::BambooPressurePlate, - Item::CherryPressurePlate, - ]) -}); -pub static WOODEN_SHELVES: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::AcaciaShelf, - Item::BambooShelf, - Item::BirchShelf, - Item::CherryShelf, - Item::CrimsonShelf, - Item::DarkOakShelf, - Item::JungleShelf, - Item::MangroveShelf, - Item::OakShelf, - Item::PaleOakShelf, - Item::SpruceShelf, - Item::WarpedShelf, - ]) -}); -pub static WOODEN_SLABS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::OakSlab, - Item::SpruceSlab, - Item::BirchSlab, - Item::JungleSlab, - Item::AcaciaSlab, - Item::DarkOakSlab, - Item::PaleOakSlab, - Item::CrimsonSlab, - Item::WarpedSlab, - Item::MangroveSlab, - Item::BambooSlab, - Item::CherrySlab, - ]) -}); -pub static WOODEN_STAIRS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::OakStairs, - Item::SpruceStairs, - Item::BirchStairs, - Item::JungleStairs, - Item::AcaciaStairs, - Item::DarkOakStairs, - Item::PaleOakStairs, - Item::CrimsonStairs, - Item::WarpedStairs, - Item::MangroveStairs, - Item::BambooStairs, - Item::CherryStairs, - ]) -}); -pub static WOODEN_TOOL_MATERIALS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::OakPlanks, - Item::SprucePlanks, - Item::BirchPlanks, - Item::JunglePlanks, - Item::AcaciaPlanks, - Item::DarkOakPlanks, - Item::PaleOakPlanks, - Item::CrimsonPlanks, - Item::WarpedPlanks, - Item::MangrovePlanks, - Item::BambooPlanks, - Item::CherryPlanks, - ]) -}); -pub static WOODEN_TRAPDOORS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::AcaciaTrapdoor, - Item::BirchTrapdoor, - Item::DarkOakTrapdoor, - Item::PaleOakTrapdoor, - Item::JungleTrapdoor, - Item::OakTrapdoor, - Item::SpruceTrapdoor, - Item::CrimsonTrapdoor, - Item::WarpedTrapdoor, - Item::MangroveTrapdoor, - Item::BambooTrapdoor, - Item::CherryTrapdoor, - ]) -}); -pub static WOOL: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::WhiteWool, - Item::OrangeWool, - Item::MagentaWool, - Item::LightBlueWool, - Item::YellowWool, - Item::LimeWool, - Item::PinkWool, - Item::GrayWool, - Item::LightGrayWool, - Item::CyanWool, - Item::PurpleWool, - Item::BlueWool, - Item::BrownWool, - Item::GreenWool, - Item::RedWool, - Item::BlackWool, - ]) -}); -pub static WOOL_CARPETS: LazyLock<HashSet<Item>> = LazyLock::new(|| { - HashSet::from_iter([ - Item::WhiteCarpet, - Item::OrangeCarpet, - Item::MagentaCarpet, - Item::LightBlueCarpet, - Item::YellowCarpet, - Item::LimeCarpet, - Item::PinkCarpet, - Item::GrayCarpet, - Item::LightGrayCarpet, - Item::CyanCarpet, - Item::PurpleCarpet, - Item::BlueCarpet, - Item::BrownCarpet, - Item::GreenCarpet, - Item::RedCarpet, - Item::BlackCarpet, - ]) -}); -pub static ZOMBIE_HORSE_FOOD: LazyLock<HashSet<Item>> = - LazyLock::new(|| HashSet::from_iter([Item::RedMushroom])); +pub static ACACIA_LOGS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::AcaciaLog, + ItemKind::StrippedAcaciaLog, + ItemKind::StrippedAcaciaWood, + ItemKind::AcaciaWood, + ]) +}); +pub static ANVIL: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::Anvil, + ItemKind::ChippedAnvil, + ItemKind::DamagedAnvil, + ]) +}); +pub static ARMADILLO_FOOD: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::SpiderEye])); +pub static ARROWS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::Arrow, + ItemKind::SpectralArrow, + ItemKind::TippedArrow, + ]) +}); +pub static AXES: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::WoodenAxe, + ItemKind::CopperAxe, + ItemKind::StoneAxe, + ItemKind::GoldenAxe, + ItemKind::IronAxe, + ItemKind::DiamondAxe, + ItemKind::NetheriteAxe, + ]) +}); +pub static AXOLOTL_FOOD: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::TropicalFishBucket])); +pub static BAMBOO_BLOCKS: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::BambooBlock, ItemKind::StrippedBambooBlock])); +pub static BANNERS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::WhiteBanner, + ItemKind::OrangeBanner, + ItemKind::MagentaBanner, + ItemKind::LightBlueBanner, + ItemKind::YellowBanner, + ItemKind::LimeBanner, + ItemKind::PinkBanner, + ItemKind::GrayBanner, + ItemKind::LightGrayBanner, + ItemKind::CyanBanner, + ItemKind::PurpleBanner, + ItemKind::BlueBanner, + ItemKind::BrownBanner, + ItemKind::GreenBanner, + ItemKind::RedBanner, + ItemKind::BlackBanner, + ]) +}); +pub static BARS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::IronBars, + ItemKind::CopperBars, + ItemKind::ExposedCopperBars, + ItemKind::WeatheredCopperBars, + ItemKind::OxidizedCopperBars, + ItemKind::WaxedCopperBars, + ItemKind::WaxedExposedCopperBars, + ItemKind::WaxedWeatheredCopperBars, + ItemKind::WaxedOxidizedCopperBars, + ]) +}); +pub static BEACON_PAYMENT_ITEMS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::Diamond, + ItemKind::Emerald, + ItemKind::IronIngot, + ItemKind::GoldIngot, + ItemKind::NetheriteIngot, + ]) +}); +pub static BEDS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::WhiteBed, + ItemKind::OrangeBed, + ItemKind::MagentaBed, + ItemKind::LightBlueBed, + ItemKind::YellowBed, + ItemKind::LimeBed, + ItemKind::PinkBed, + ItemKind::GrayBed, + ItemKind::LightGrayBed, + ItemKind::CyanBed, + ItemKind::PurpleBed, + ItemKind::BlueBed, + ItemKind::BrownBed, + ItemKind::GreenBed, + ItemKind::RedBed, + ItemKind::BlackBed, + ]) +}); +pub static BEE_FOOD: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::MangrovePropagule, + ItemKind::CherryLeaves, + ItemKind::FloweringAzaleaLeaves, + ItemKind::FloweringAzalea, + ItemKind::Dandelion, + ItemKind::OpenEyeblossom, + ItemKind::Poppy, + ItemKind::BlueOrchid, + ItemKind::Allium, + ItemKind::AzureBluet, + ItemKind::RedTulip, + ItemKind::OrangeTulip, + ItemKind::WhiteTulip, + ItemKind::PinkTulip, + ItemKind::OxeyeDaisy, + ItemKind::Cornflower, + ItemKind::LilyOfTheValley, + ItemKind::WitherRose, + ItemKind::Torchflower, + ItemKind::PitcherPlant, + ItemKind::SporeBlossom, + ItemKind::PinkPetals, + ItemKind::Wildflowers, + ItemKind::ChorusFlower, + ItemKind::CactusFlower, + ItemKind::Sunflower, + ItemKind::Lilac, + ItemKind::RoseBush, + ItemKind::Peony, + ]) +}); +pub static BIRCH_LOGS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::BirchLog, + ItemKind::StrippedBirchLog, + ItemKind::StrippedBirchWood, + ItemKind::BirchWood, + ]) +}); +pub static BOATS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::OakBoat, + ItemKind::OakChestBoat, + ItemKind::SpruceBoat, + ItemKind::SpruceChestBoat, + ItemKind::BirchBoat, + ItemKind::BirchChestBoat, + ItemKind::JungleBoat, + ItemKind::JungleChestBoat, + ItemKind::AcaciaBoat, + ItemKind::AcaciaChestBoat, + ItemKind::CherryBoat, + ItemKind::CherryChestBoat, + ItemKind::DarkOakBoat, + ItemKind::DarkOakChestBoat, + ItemKind::PaleOakBoat, + ItemKind::PaleOakChestBoat, + ItemKind::MangroveBoat, + ItemKind::MangroveChestBoat, + ItemKind::BambooRaft, + ItemKind::BambooChestRaft, + ]) +}); +pub static BOOK_CLONING_TARGET: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::WritableBook])); +pub static BOOKSHELF_BOOKS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::Book, + ItemKind::WritableBook, + ItemKind::WrittenBook, + ItemKind::EnchantedBook, + ItemKind::KnowledgeBook, + ]) +}); +pub static BREAKS_DECORATED_POTS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::WoodenSword, + ItemKind::WoodenShovel, + ItemKind::WoodenPickaxe, + ItemKind::WoodenAxe, + ItemKind::WoodenHoe, + ItemKind::CopperSword, + ItemKind::CopperShovel, + ItemKind::CopperPickaxe, + ItemKind::CopperAxe, + ItemKind::CopperHoe, + ItemKind::StoneSword, + ItemKind::StoneShovel, + ItemKind::StonePickaxe, + ItemKind::StoneAxe, + ItemKind::StoneHoe, + ItemKind::GoldenSword, + ItemKind::GoldenShovel, + ItemKind::GoldenPickaxe, + ItemKind::GoldenAxe, + ItemKind::GoldenHoe, + ItemKind::IronSword, + ItemKind::IronShovel, + ItemKind::IronPickaxe, + ItemKind::IronAxe, + ItemKind::IronHoe, + ItemKind::DiamondSword, + ItemKind::DiamondShovel, + ItemKind::DiamondPickaxe, + ItemKind::DiamondAxe, + ItemKind::DiamondHoe, + ItemKind::NetheriteSword, + ItemKind::NetheriteShovel, + ItemKind::NetheritePickaxe, + ItemKind::NetheriteAxe, + ItemKind::NetheriteHoe, + ItemKind::Mace, + ItemKind::Trident, + ]) +}); +pub static BREWING_FUEL: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::BlazePowder])); +pub static BUNDLES: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::Bundle, + ItemKind::WhiteBundle, + ItemKind::OrangeBundle, + ItemKind::MagentaBundle, + ItemKind::LightBlueBundle, + ItemKind::YellowBundle, + ItemKind::LimeBundle, + ItemKind::PinkBundle, + ItemKind::GrayBundle, + ItemKind::LightGrayBundle, + ItemKind::CyanBundle, + ItemKind::PurpleBundle, + ItemKind::BlueBundle, + ItemKind::BrownBundle, + ItemKind::GreenBundle, + ItemKind::RedBundle, + ItemKind::BlackBundle, + ]) +}); +pub static BUTTONS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::StoneButton, + ItemKind::PolishedBlackstoneButton, + ItemKind::OakButton, + ItemKind::SpruceButton, + ItemKind::BirchButton, + ItemKind::JungleButton, + ItemKind::AcaciaButton, + ItemKind::CherryButton, + ItemKind::DarkOakButton, + ItemKind::PaleOakButton, + ItemKind::MangroveButton, + ItemKind::BambooButton, + ItemKind::CrimsonButton, + ItemKind::WarpedButton, + ]) +}); +pub static CAMEL_FOOD: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::Cactus])); +pub static CAMEL_HUSK_FOOD: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::RabbitFoot])); +pub static CANDLES: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::Candle, + ItemKind::WhiteCandle, + ItemKind::OrangeCandle, + ItemKind::MagentaCandle, + ItemKind::LightBlueCandle, + ItemKind::YellowCandle, + ItemKind::LimeCandle, + ItemKind::PinkCandle, + ItemKind::GrayCandle, + ItemKind::LightGrayCandle, + ItemKind::CyanCandle, + ItemKind::PurpleCandle, + ItemKind::BlueCandle, + ItemKind::BrownCandle, + ItemKind::GreenCandle, + ItemKind::RedCandle, + ItemKind::BlackCandle, + ]) +}); +pub static CAT_FOOD: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::Cod, ItemKind::Salmon])); +pub static CHAINS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::IronChain, + ItemKind::CopperChain, + ItemKind::ExposedCopperChain, + ItemKind::WeatheredCopperChain, + ItemKind::OxidizedCopperChain, + ItemKind::WaxedCopperChain, + ItemKind::WaxedExposedCopperChain, + ItemKind::WaxedWeatheredCopperChain, + ItemKind::WaxedOxidizedCopperChain, + ]) +}); +pub static CHERRY_LOGS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::CherryLog, + ItemKind::StrippedCherryLog, + ItemKind::StrippedCherryWood, + ItemKind::CherryWood, + ]) +}); +pub static CHEST_ARMOR: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::LeatherChestplate, + ItemKind::CopperChestplate, + ItemKind::ChainmailChestplate, + ItemKind::IronChestplate, + ItemKind::DiamondChestplate, + ItemKind::GoldenChestplate, + ItemKind::NetheriteChestplate, + ]) +}); +pub static CHEST_BOATS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::OakChestBoat, + ItemKind::SpruceChestBoat, + ItemKind::BirchChestBoat, + ItemKind::JungleChestBoat, + ItemKind::AcaciaChestBoat, + ItemKind::CherryChestBoat, + ItemKind::DarkOakChestBoat, + ItemKind::PaleOakChestBoat, + ItemKind::MangroveChestBoat, + ItemKind::BambooChestRaft, + ]) +}); +pub static CHICKEN_FOOD: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::WheatSeeds, + ItemKind::PumpkinSeeds, + ItemKind::MelonSeeds, + ItemKind::TorchflowerSeeds, + ItemKind::PitcherPod, + ItemKind::BeetrootSeeds, + ]) +}); +pub static CLUSTER_MAX_HARVESTABLES: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::WoodenPickaxe, + ItemKind::CopperPickaxe, + ItemKind::StonePickaxe, + ItemKind::GoldenPickaxe, + ItemKind::IronPickaxe, + ItemKind::DiamondPickaxe, + ItemKind::NetheritePickaxe, + ]) +}); +pub static COAL_ORES: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::CoalOre, ItemKind::DeepslateCoalOre])); +pub static COALS: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::Coal, ItemKind::Charcoal])); +pub static COMPASSES: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::Compass, ItemKind::RecoveryCompass])); +pub static COMPLETES_FIND_TREE_TUTORIAL: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::OakLog, + ItemKind::SpruceLog, + ItemKind::BirchLog, + ItemKind::JungleLog, + ItemKind::AcaciaLog, + ItemKind::CherryLog, + ItemKind::PaleOakLog, + ItemKind::DarkOakLog, + ItemKind::MangroveLog, + ItemKind::CrimsonStem, + ItemKind::WarpedStem, + ItemKind::StrippedOakLog, + ItemKind::StrippedSpruceLog, + ItemKind::StrippedBirchLog, + ItemKind::StrippedJungleLog, + ItemKind::StrippedAcaciaLog, + ItemKind::StrippedCherryLog, + ItemKind::StrippedDarkOakLog, + ItemKind::StrippedPaleOakLog, + ItemKind::StrippedMangroveLog, + ItemKind::StrippedCrimsonStem, + ItemKind::StrippedWarpedStem, + ItemKind::StrippedOakWood, + ItemKind::StrippedSpruceWood, + ItemKind::StrippedBirchWood, + ItemKind::StrippedJungleWood, + ItemKind::StrippedAcaciaWood, + ItemKind::StrippedCherryWood, + ItemKind::StrippedDarkOakWood, + ItemKind::StrippedPaleOakWood, + ItemKind::StrippedMangroveWood, + ItemKind::StrippedCrimsonHyphae, + ItemKind::StrippedWarpedHyphae, + ItemKind::OakWood, + ItemKind::SpruceWood, + ItemKind::BirchWood, + ItemKind::JungleWood, + ItemKind::AcaciaWood, + ItemKind::CherryWood, + ItemKind::PaleOakWood, + ItemKind::DarkOakWood, + ItemKind::MangroveWood, + ItemKind::CrimsonHyphae, + ItemKind::WarpedHyphae, + ItemKind::OakLeaves, + ItemKind::SpruceLeaves, + ItemKind::BirchLeaves, + ItemKind::JungleLeaves, + ItemKind::AcaciaLeaves, + ItemKind::CherryLeaves, + ItemKind::DarkOakLeaves, + ItemKind::PaleOakLeaves, + ItemKind::MangroveLeaves, + ItemKind::AzaleaLeaves, + ItemKind::FloweringAzaleaLeaves, + ItemKind::NetherWartBlock, + ItemKind::WarpedWartBlock, + ]) +}); +pub static COPPER: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::CopperBlock, + ItemKind::ExposedCopper, + ItemKind::WeatheredCopper, + ItemKind::OxidizedCopper, + ItemKind::WaxedCopperBlock, + ItemKind::WaxedExposedCopper, + ItemKind::WaxedWeatheredCopper, + ItemKind::WaxedOxidizedCopper, + ]) +}); +pub static COPPER_CHESTS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::CopperChest, + ItemKind::ExposedCopperChest, + ItemKind::WeatheredCopperChest, + ItemKind::OxidizedCopperChest, + ItemKind::WaxedCopperChest, + ItemKind::WaxedExposedCopperChest, + ItemKind::WaxedWeatheredCopperChest, + ItemKind::WaxedOxidizedCopperChest, + ]) +}); +pub static COPPER_GOLEM_STATUES: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::CopperGolemStatue, + ItemKind::ExposedCopperGolemStatue, + ItemKind::WeatheredCopperGolemStatue, + ItemKind::OxidizedCopperGolemStatue, + ItemKind::WaxedCopperGolemStatue, + ItemKind::WaxedExposedCopperGolemStatue, + ItemKind::WaxedWeatheredCopperGolemStatue, + ItemKind::WaxedOxidizedCopperGolemStatue, + ]) +}); +pub static COPPER_ORES: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::CopperOre, ItemKind::DeepslateCopperOre])); +pub static COPPER_TOOL_MATERIALS: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::CopperIngot])); +pub static COW_FOOD: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::Wheat])); +pub static CREEPER_DROP_MUSIC_DISCS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::MusicDisc13, + ItemKind::MusicDiscCat, + ItemKind::MusicDiscBlocks, + ItemKind::MusicDiscChirp, + ItemKind::MusicDiscFar, + ItemKind::MusicDiscMall, + ItemKind::MusicDiscMellohi, + ItemKind::MusicDiscStal, + ItemKind::MusicDiscStrad, + ItemKind::MusicDiscWard, + ItemKind::MusicDisc11, + ItemKind::MusicDiscWait, + ]) +}); +pub static CREEPER_IGNITERS: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::FlintAndSteel, ItemKind::FireCharge])); +pub static CRIMSON_STEMS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::CrimsonStem, + ItemKind::StrippedCrimsonStem, + ItemKind::StrippedCrimsonHyphae, + ItemKind::CrimsonHyphae, + ]) +}); +pub static DAMPENS_VIBRATIONS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::WhiteWool, + ItemKind::OrangeWool, + ItemKind::MagentaWool, + ItemKind::LightBlueWool, + ItemKind::YellowWool, + ItemKind::LimeWool, + ItemKind::PinkWool, + ItemKind::GrayWool, + ItemKind::LightGrayWool, + ItemKind::CyanWool, + ItemKind::PurpleWool, + ItemKind::BlueWool, + ItemKind::BrownWool, + ItemKind::GreenWool, + ItemKind::RedWool, + ItemKind::BlackWool, + ItemKind::WhiteCarpet, + ItemKind::OrangeCarpet, + ItemKind::MagentaCarpet, + ItemKind::LightBlueCarpet, + ItemKind::YellowCarpet, + ItemKind::LimeCarpet, + ItemKind::PinkCarpet, + ItemKind::GrayCarpet, + ItemKind::LightGrayCarpet, + ItemKind::CyanCarpet, + ItemKind::PurpleCarpet, + ItemKind::BlueCarpet, + ItemKind::BrownCarpet, + ItemKind::GreenCarpet, + ItemKind::RedCarpet, + ItemKind::BlackCarpet, + ]) +}); +pub static DARK_OAK_LOGS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::DarkOakLog, + ItemKind::StrippedDarkOakLog, + ItemKind::StrippedDarkOakWood, + ItemKind::DarkOakWood, + ]) +}); +pub static DECORATED_POT_INGREDIENTS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::Brick, + ItemKind::AnglerPotterySherd, + ItemKind::ArcherPotterySherd, + ItemKind::ArmsUpPotterySherd, + ItemKind::BladePotterySherd, + ItemKind::BrewerPotterySherd, + ItemKind::BurnPotterySherd, + ItemKind::DangerPotterySherd, + ItemKind::ExplorerPotterySherd, + ItemKind::FlowPotterySherd, + ItemKind::FriendPotterySherd, + ItemKind::GusterPotterySherd, + ItemKind::HeartPotterySherd, + ItemKind::HeartbreakPotterySherd, + ItemKind::HowlPotterySherd, + ItemKind::MinerPotterySherd, + ItemKind::MournerPotterySherd, + ItemKind::PlentyPotterySherd, + ItemKind::PrizePotterySherd, + ItemKind::ScrapePotterySherd, + ItemKind::SheafPotterySherd, + ItemKind::ShelterPotterySherd, + ItemKind::SkullPotterySherd, + ItemKind::SnortPotterySherd, + ]) +}); +pub static DECORATED_POT_SHERDS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::AnglerPotterySherd, + ItemKind::ArcherPotterySherd, + ItemKind::ArmsUpPotterySherd, + ItemKind::BladePotterySherd, + ItemKind::BrewerPotterySherd, + ItemKind::BurnPotterySherd, + ItemKind::DangerPotterySherd, + ItemKind::ExplorerPotterySherd, + ItemKind::FlowPotterySherd, + ItemKind::FriendPotterySherd, + ItemKind::GusterPotterySherd, + ItemKind::HeartPotterySherd, + ItemKind::HeartbreakPotterySherd, + ItemKind::HowlPotterySherd, + ItemKind::MinerPotterySherd, + ItemKind::MournerPotterySherd, + ItemKind::PlentyPotterySherd, + ItemKind::PrizePotterySherd, + ItemKind::ScrapePotterySherd, + ItemKind::SheafPotterySherd, + ItemKind::ShelterPotterySherd, + ItemKind::SkullPotterySherd, + ItemKind::SnortPotterySherd, + ]) +}); +pub static DIAMOND_ORES: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::DiamondOre, ItemKind::DeepslateDiamondOre])); +pub static DIAMOND_TOOL_MATERIALS: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::Diamond])); +pub static DIRT: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::GrassBlock, + ItemKind::Dirt, + ItemKind::CoarseDirt, + ItemKind::Podzol, + ItemKind::RootedDirt, + ItemKind::Mud, + ItemKind::MuddyMangroveRoots, + ItemKind::MossBlock, + ItemKind::PaleMossBlock, + ItemKind::Mycelium, + ]) +}); +pub static DOORS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::IronDoor, + ItemKind::OakDoor, + ItemKind::SpruceDoor, + ItemKind::BirchDoor, + ItemKind::JungleDoor, + ItemKind::AcaciaDoor, + ItemKind::CherryDoor, + ItemKind::DarkOakDoor, + ItemKind::PaleOakDoor, + ItemKind::MangroveDoor, + ItemKind::BambooDoor, + ItemKind::CrimsonDoor, + ItemKind::WarpedDoor, + ItemKind::CopperDoor, + ItemKind::ExposedCopperDoor, + ItemKind::WeatheredCopperDoor, + ItemKind::OxidizedCopperDoor, + ItemKind::WaxedCopperDoor, + ItemKind::WaxedExposedCopperDoor, + ItemKind::WaxedWeatheredCopperDoor, + ItemKind::WaxedOxidizedCopperDoor, + ]) +}); +pub static DROWNED_PREFERRED_WEAPONS: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::Trident])); +pub static DUPLICATES_ALLAYS: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::AmethystShard])); +pub static DYEABLE: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::WolfArmor, + ItemKind::LeatherHelmet, + ItemKind::LeatherChestplate, + ItemKind::LeatherLeggings, + ItemKind::LeatherBoots, + ItemKind::LeatherHorseArmor, + ]) +}); +pub static EGGS: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::Egg, ItemKind::BlueEgg, ItemKind::BrownEgg])); +pub static EMERALD_ORES: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::EmeraldOre, ItemKind::DeepslateEmeraldOre])); +pub static ENCHANTABLE_ARMOR: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::TurtleHelmet, + ItemKind::LeatherHelmet, + ItemKind::LeatherChestplate, + ItemKind::LeatherLeggings, + ItemKind::LeatherBoots, + ItemKind::CopperHelmet, + ItemKind::CopperChestplate, + ItemKind::CopperLeggings, + ItemKind::CopperBoots, + ItemKind::ChainmailHelmet, + ItemKind::ChainmailChestplate, + ItemKind::ChainmailLeggings, + ItemKind::ChainmailBoots, + ItemKind::IronHelmet, + ItemKind::IronChestplate, + ItemKind::IronLeggings, + ItemKind::IronBoots, + ItemKind::DiamondHelmet, + ItemKind::DiamondChestplate, + ItemKind::DiamondLeggings, + ItemKind::DiamondBoots, + ItemKind::GoldenHelmet, + ItemKind::GoldenChestplate, + ItemKind::GoldenLeggings, + ItemKind::GoldenBoots, + ItemKind::NetheriteHelmet, + ItemKind::NetheriteChestplate, + ItemKind::NetheriteLeggings, + ItemKind::NetheriteBoots, + ]) +}); +pub static ENCHANTABLE_BOW: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::Bow])); +pub static ENCHANTABLE_CHEST_ARMOR: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::LeatherChestplate, + ItemKind::CopperChestplate, + ItemKind::ChainmailChestplate, + ItemKind::IronChestplate, + ItemKind::DiamondChestplate, + ItemKind::GoldenChestplate, + ItemKind::NetheriteChestplate, + ]) +}); +pub static ENCHANTABLE_CROSSBOW: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::Crossbow])); +pub static ENCHANTABLE_DURABILITY: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::CarrotOnAStick, + ItemKind::WarpedFungusOnAStick, + ItemKind::Elytra, + ItemKind::TurtleHelmet, + ItemKind::FlintAndSteel, + ItemKind::Bow, + ItemKind::WoodenSword, + ItemKind::WoodenShovel, + ItemKind::WoodenPickaxe, + ItemKind::WoodenAxe, + ItemKind::WoodenHoe, + ItemKind::CopperSword, + ItemKind::CopperShovel, + ItemKind::CopperPickaxe, + ItemKind::CopperAxe, + ItemKind::CopperHoe, + ItemKind::StoneSword, + ItemKind::StoneShovel, + ItemKind::StonePickaxe, + ItemKind::StoneAxe, + ItemKind::StoneHoe, + ItemKind::GoldenSword, + ItemKind::GoldenShovel, + ItemKind::GoldenPickaxe, + ItemKind::GoldenAxe, + ItemKind::GoldenHoe, + ItemKind::IronSword, + ItemKind::IronShovel, + ItemKind::IronPickaxe, + ItemKind::IronAxe, + ItemKind::IronHoe, + ItemKind::DiamondSword, + ItemKind::DiamondShovel, + ItemKind::DiamondPickaxe, + ItemKind::DiamondAxe, + ItemKind::DiamondHoe, + ItemKind::NetheriteSword, + ItemKind::NetheriteShovel, + ItemKind::NetheritePickaxe, + ItemKind::NetheriteAxe, + ItemKind::NetheriteHoe, + ItemKind::LeatherHelmet, + ItemKind::LeatherChestplate, + ItemKind::LeatherLeggings, + ItemKind::LeatherBoots, + ItemKind::CopperHelmet, + ItemKind::CopperChestplate, + ItemKind::CopperLeggings, + ItemKind::CopperBoots, + ItemKind::ChainmailHelmet, + ItemKind::ChainmailChestplate, + ItemKind::ChainmailLeggings, + ItemKind::ChainmailBoots, + ItemKind::IronHelmet, + ItemKind::IronChestplate, + ItemKind::IronLeggings, + ItemKind::IronBoots, + ItemKind::DiamondHelmet, + ItemKind::DiamondChestplate, + ItemKind::DiamondLeggings, + ItemKind::DiamondBoots, + ItemKind::GoldenHelmet, + ItemKind::GoldenChestplate, + ItemKind::GoldenLeggings, + ItemKind::GoldenBoots, + ItemKind::NetheriteHelmet, + ItemKind::NetheriteChestplate, + ItemKind::NetheriteLeggings, + ItemKind::NetheriteBoots, + ItemKind::FishingRod, + ItemKind::Shears, + ItemKind::Mace, + ItemKind::Shield, + ItemKind::WoodenSpear, + ItemKind::StoneSpear, + ItemKind::CopperSpear, + ItemKind::IronSpear, + ItemKind::GoldenSpear, + ItemKind::DiamondSpear, + ItemKind::NetheriteSpear, + ItemKind::Trident, + ItemKind::Crossbow, + ItemKind::Brush, + ]) +}); +pub static ENCHANTABLE_EQUIPPABLE: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::CarvedPumpkin, + ItemKind::Elytra, + ItemKind::TurtleHelmet, + ItemKind::LeatherHelmet, + ItemKind::LeatherChestplate, + ItemKind::LeatherLeggings, + ItemKind::LeatherBoots, + ItemKind::CopperHelmet, + ItemKind::CopperChestplate, + ItemKind::CopperLeggings, + ItemKind::CopperBoots, + ItemKind::ChainmailHelmet, + ItemKind::ChainmailChestplate, + ItemKind::ChainmailLeggings, + ItemKind::ChainmailBoots, + ItemKind::IronHelmet, + ItemKind::IronChestplate, + ItemKind::IronLeggings, + ItemKind::IronBoots, + ItemKind::DiamondHelmet, + ItemKind::DiamondChestplate, + ItemKind::DiamondLeggings, + ItemKind::DiamondBoots, + ItemKind::GoldenHelmet, + ItemKind::GoldenChestplate, + ItemKind::GoldenLeggings, + ItemKind::GoldenBoots, + ItemKind::NetheriteHelmet, + ItemKind::NetheriteChestplate, + ItemKind::NetheriteLeggings, + ItemKind::NetheriteBoots, + ItemKind::SkeletonSkull, + ItemKind::WitherSkeletonSkull, + ItemKind::PlayerHead, + ItemKind::ZombieHead, + ItemKind::CreeperHead, + ItemKind::DragonHead, + ItemKind::PiglinHead, + ]) +}); +pub static ENCHANTABLE_FIRE_ASPECT: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::WoodenSword, + ItemKind::CopperSword, + ItemKind::StoneSword, + ItemKind::GoldenSword, + ItemKind::IronSword, + ItemKind::DiamondSword, + ItemKind::NetheriteSword, + ItemKind::Mace, + ItemKind::WoodenSpear, + ItemKind::StoneSpear, + ItemKind::CopperSpear, + ItemKind::IronSpear, + ItemKind::GoldenSpear, + ItemKind::DiamondSpear, + ItemKind::NetheriteSpear, + ]) +}); +pub static ENCHANTABLE_FISHING: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::FishingRod])); +pub static ENCHANTABLE_FOOT_ARMOR: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::LeatherBoots, + ItemKind::CopperBoots, + ItemKind::ChainmailBoots, + ItemKind::IronBoots, + ItemKind::DiamondBoots, + ItemKind::GoldenBoots, + ItemKind::NetheriteBoots, + ]) +}); +pub static ENCHANTABLE_HEAD_ARMOR: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::TurtleHelmet, + ItemKind::LeatherHelmet, + ItemKind::CopperHelmet, + ItemKind::ChainmailHelmet, + ItemKind::IronHelmet, + ItemKind::DiamondHelmet, + ItemKind::GoldenHelmet, + ItemKind::NetheriteHelmet, + ]) +}); +pub static ENCHANTABLE_LEG_ARMOR: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::LeatherLeggings, + ItemKind::CopperLeggings, + ItemKind::ChainmailLeggings, + ItemKind::IronLeggings, + ItemKind::DiamondLeggings, + ItemKind::GoldenLeggings, + ItemKind::NetheriteLeggings, + ]) +}); +pub static ENCHANTABLE_LUNGE: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::WoodenSpear, + ItemKind::StoneSpear, + ItemKind::CopperSpear, + ItemKind::IronSpear, + ItemKind::GoldenSpear, + ItemKind::DiamondSpear, + ItemKind::NetheriteSpear, + ]) +}); +pub static ENCHANTABLE_MACE: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::Mace])); +pub static ENCHANTABLE_MELEE_WEAPON: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::WoodenSword, + ItemKind::CopperSword, + ItemKind::StoneSword, + ItemKind::GoldenSword, + ItemKind::IronSword, + ItemKind::DiamondSword, + ItemKind::NetheriteSword, + ItemKind::WoodenSpear, + ItemKind::StoneSpear, + ItemKind::CopperSpear, + ItemKind::IronSpear, + ItemKind::GoldenSpear, + ItemKind::DiamondSpear, + ItemKind::NetheriteSpear, + ]) +}); +pub static ENCHANTABLE_MINING: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::WoodenShovel, + ItemKind::WoodenPickaxe, + ItemKind::WoodenAxe, + ItemKind::WoodenHoe, + ItemKind::CopperShovel, + ItemKind::CopperPickaxe, + ItemKind::CopperAxe, + ItemKind::CopperHoe, + ItemKind::StoneShovel, + ItemKind::StonePickaxe, + ItemKind::StoneAxe, + ItemKind::StoneHoe, + ItemKind::GoldenShovel, + ItemKind::GoldenPickaxe, + ItemKind::GoldenAxe, + ItemKind::GoldenHoe, + ItemKind::IronShovel, + ItemKind::IronPickaxe, + ItemKind::IronAxe, + ItemKind::IronHoe, + ItemKind::DiamondShovel, + ItemKind::DiamondPickaxe, + ItemKind::DiamondAxe, + ItemKind::DiamondHoe, + ItemKind::NetheriteShovel, + ItemKind::NetheritePickaxe, + ItemKind::NetheriteAxe, + ItemKind::NetheriteHoe, + ItemKind::Shears, + ]) +}); +pub static ENCHANTABLE_MINING_LOOT: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::WoodenShovel, + ItemKind::WoodenPickaxe, + ItemKind::WoodenAxe, + ItemKind::WoodenHoe, + ItemKind::CopperShovel, + ItemKind::CopperPickaxe, + ItemKind::CopperAxe, + ItemKind::CopperHoe, + ItemKind::StoneShovel, + ItemKind::StonePickaxe, + ItemKind::StoneAxe, + ItemKind::StoneHoe, + ItemKind::GoldenShovel, + ItemKind::GoldenPickaxe, + ItemKind::GoldenAxe, + ItemKind::GoldenHoe, + ItemKind::IronShovel, + ItemKind::IronPickaxe, + ItemKind::IronAxe, + ItemKind::IronHoe, + ItemKind::DiamondShovel, + ItemKind::DiamondPickaxe, + ItemKind::DiamondAxe, + ItemKind::DiamondHoe, + ItemKind::NetheriteShovel, + ItemKind::NetheritePickaxe, + ItemKind::NetheriteAxe, + ItemKind::NetheriteHoe, + ]) +}); +pub static ENCHANTABLE_SHARP_WEAPON: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::WoodenSword, + ItemKind::WoodenAxe, + ItemKind::CopperSword, + ItemKind::CopperAxe, + ItemKind::StoneSword, + ItemKind::StoneAxe, + ItemKind::GoldenSword, + ItemKind::GoldenAxe, + ItemKind::IronSword, + ItemKind::IronAxe, + ItemKind::DiamondSword, + ItemKind::DiamondAxe, + ItemKind::NetheriteSword, + ItemKind::NetheriteAxe, + ItemKind::WoodenSpear, + ItemKind::StoneSpear, + ItemKind::CopperSpear, + ItemKind::IronSpear, + ItemKind::GoldenSpear, + ItemKind::DiamondSpear, + ItemKind::NetheriteSpear, + ]) +}); +pub static ENCHANTABLE_SWEEPING: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::WoodenSword, + ItemKind::CopperSword, + ItemKind::StoneSword, + ItemKind::GoldenSword, + ItemKind::IronSword, + ItemKind::DiamondSword, + ItemKind::NetheriteSword, + ]) +}); +pub static ENCHANTABLE_TRIDENT: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::Trident])); +pub static ENCHANTABLE_VANISHING: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::CarvedPumpkin, + ItemKind::CarrotOnAStick, + ItemKind::WarpedFungusOnAStick, + ItemKind::Elytra, + ItemKind::TurtleHelmet, + ItemKind::FlintAndSteel, + ItemKind::Bow, + ItemKind::WoodenSword, + ItemKind::WoodenShovel, + ItemKind::WoodenPickaxe, + ItemKind::WoodenAxe, + ItemKind::WoodenHoe, + ItemKind::CopperSword, + ItemKind::CopperShovel, + ItemKind::CopperPickaxe, + ItemKind::CopperAxe, + ItemKind::CopperHoe, + ItemKind::StoneSword, + ItemKind::StoneShovel, + ItemKind::StonePickaxe, + ItemKind::StoneAxe, + ItemKind::StoneHoe, + ItemKind::GoldenSword, + ItemKind::GoldenShovel, + ItemKind::GoldenPickaxe, + ItemKind::GoldenAxe, + ItemKind::GoldenHoe, + ItemKind::IronSword, + ItemKind::IronShovel, + ItemKind::IronPickaxe, + ItemKind::IronAxe, + ItemKind::IronHoe, + ItemKind::DiamondSword, + ItemKind::DiamondShovel, + ItemKind::DiamondPickaxe, + ItemKind::DiamondAxe, + ItemKind::DiamondHoe, + ItemKind::NetheriteSword, + ItemKind::NetheriteShovel, + ItemKind::NetheritePickaxe, + ItemKind::NetheriteAxe, + ItemKind::NetheriteHoe, + ItemKind::LeatherHelmet, + ItemKind::LeatherChestplate, + ItemKind::LeatherLeggings, + ItemKind::LeatherBoots, + ItemKind::CopperHelmet, + ItemKind::CopperChestplate, + ItemKind::CopperLeggings, + ItemKind::CopperBoots, + ItemKind::ChainmailHelmet, + ItemKind::ChainmailChestplate, + ItemKind::ChainmailLeggings, + ItemKind::ChainmailBoots, + ItemKind::IronHelmet, + ItemKind::IronChestplate, + ItemKind::IronLeggings, + ItemKind::IronBoots, + ItemKind::DiamondHelmet, + ItemKind::DiamondChestplate, + ItemKind::DiamondLeggings, + ItemKind::DiamondBoots, + ItemKind::GoldenHelmet, + ItemKind::GoldenChestplate, + ItemKind::GoldenLeggings, + ItemKind::GoldenBoots, + ItemKind::NetheriteHelmet, + ItemKind::NetheriteChestplate, + ItemKind::NetheriteLeggings, + ItemKind::NetheriteBoots, + ItemKind::Compass, + ItemKind::FishingRod, + ItemKind::Shears, + ItemKind::Mace, + ItemKind::SkeletonSkull, + ItemKind::WitherSkeletonSkull, + ItemKind::PlayerHead, + ItemKind::ZombieHead, + ItemKind::CreeperHead, + ItemKind::DragonHead, + ItemKind::PiglinHead, + ItemKind::Shield, + ItemKind::WoodenSpear, + ItemKind::StoneSpear, + ItemKind::CopperSpear, + ItemKind::IronSpear, + ItemKind::GoldenSpear, + ItemKind::DiamondSpear, + ItemKind::NetheriteSpear, + ItemKind::Trident, + ItemKind::Crossbow, + ItemKind::Brush, + ]) +}); +pub static ENCHANTABLE_WEAPON: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::WoodenSword, + ItemKind::WoodenAxe, + ItemKind::CopperSword, + ItemKind::CopperAxe, + ItemKind::StoneSword, + ItemKind::StoneAxe, + ItemKind::GoldenSword, + ItemKind::GoldenAxe, + ItemKind::IronSword, + ItemKind::IronAxe, + ItemKind::DiamondSword, + ItemKind::DiamondAxe, + ItemKind::NetheriteSword, + ItemKind::NetheriteAxe, + ItemKind::Mace, + ItemKind::WoodenSpear, + ItemKind::StoneSpear, + ItemKind::CopperSpear, + ItemKind::IronSpear, + ItemKind::GoldenSpear, + ItemKind::DiamondSpear, + ItemKind::NetheriteSpear, + ]) +}); +pub static FENCE_GATES: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::OakFenceGate, + ItemKind::SpruceFenceGate, + ItemKind::BirchFenceGate, + ItemKind::JungleFenceGate, + ItemKind::AcaciaFenceGate, + ItemKind::CherryFenceGate, + ItemKind::DarkOakFenceGate, + ItemKind::PaleOakFenceGate, + ItemKind::MangroveFenceGate, + ItemKind::BambooFenceGate, + ItemKind::CrimsonFenceGate, + ItemKind::WarpedFenceGate, + ]) +}); +pub static FENCES: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::OakFence, + ItemKind::SpruceFence, + ItemKind::BirchFence, + ItemKind::JungleFence, + ItemKind::AcaciaFence, + ItemKind::CherryFence, + ItemKind::DarkOakFence, + ItemKind::PaleOakFence, + ItemKind::MangroveFence, + ItemKind::BambooFence, + ItemKind::CrimsonFence, + ItemKind::WarpedFence, + ItemKind::NetherBrickFence, + ]) +}); +pub static FISHES: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::Cod, + ItemKind::Salmon, + ItemKind::TropicalFish, + ItemKind::Pufferfish, + ItemKind::CookedCod, + ItemKind::CookedSalmon, + ]) +}); +pub static FLOWERS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::MangrovePropagule, + ItemKind::CherryLeaves, + ItemKind::FloweringAzaleaLeaves, + ItemKind::FloweringAzalea, + ItemKind::Dandelion, + ItemKind::OpenEyeblossom, + ItemKind::ClosedEyeblossom, + ItemKind::Poppy, + ItemKind::BlueOrchid, + ItemKind::Allium, + ItemKind::AzureBluet, + ItemKind::RedTulip, + ItemKind::OrangeTulip, + ItemKind::WhiteTulip, + ItemKind::PinkTulip, + ItemKind::OxeyeDaisy, + ItemKind::Cornflower, + ItemKind::LilyOfTheValley, + ItemKind::WitherRose, + ItemKind::Torchflower, + ItemKind::PitcherPlant, + ItemKind::SporeBlossom, + ItemKind::PinkPetals, + ItemKind::Wildflowers, + ItemKind::ChorusFlower, + ItemKind::CactusFlower, + ItemKind::Sunflower, + ItemKind::Lilac, + ItemKind::RoseBush, + ItemKind::Peony, + ]) +}); +pub static FOOT_ARMOR: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::LeatherBoots, + ItemKind::CopperBoots, + ItemKind::ChainmailBoots, + ItemKind::IronBoots, + ItemKind::DiamondBoots, + ItemKind::GoldenBoots, + ItemKind::NetheriteBoots, + ]) +}); +pub static FOX_FOOD: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::SweetBerries, ItemKind::GlowBerries])); +pub static FREEZE_IMMUNE_WEARABLES: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::LeatherHelmet, + ItemKind::LeatherChestplate, + ItemKind::LeatherLeggings, + ItemKind::LeatherBoots, + ItemKind::LeatherHorseArmor, + ]) +}); +pub static FROG_FOOD: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::SlimeBall])); +pub static FURNACE_MINECART_FUEL: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::Coal, ItemKind::Charcoal])); +pub static GAZE_DISGUISE_EQUIPMENT: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::CarvedPumpkin])); +pub static GOAT_FOOD: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::Wheat])); +pub static GOLD_ORES: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::GoldOre, + ItemKind::DeepslateGoldOre, + ItemKind::NetherGoldOre, + ]) +}); +pub static GOLD_TOOL_MATERIALS: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::GoldIngot])); +pub static HANGING_SIGNS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::OakHangingSign, + ItemKind::SpruceHangingSign, + ItemKind::BirchHangingSign, + ItemKind::JungleHangingSign, + ItemKind::AcaciaHangingSign, + ItemKind::CherryHangingSign, + ItemKind::DarkOakHangingSign, + ItemKind::PaleOakHangingSign, + ItemKind::MangroveHangingSign, + ItemKind::BambooHangingSign, + ItemKind::CrimsonHangingSign, + ItemKind::WarpedHangingSign, + ]) +}); +pub static HAPPY_GHAST_FOOD: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::Snowball])); +pub static HAPPY_GHAST_TEMPT_ITEMS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::WhiteHarness, + ItemKind::OrangeHarness, + ItemKind::MagentaHarness, + ItemKind::LightBlueHarness, + ItemKind::YellowHarness, + ItemKind::LimeHarness, + ItemKind::PinkHarness, + ItemKind::GrayHarness, + ItemKind::LightGrayHarness, + ItemKind::CyanHarness, + ItemKind::PurpleHarness, + ItemKind::BlueHarness, + ItemKind::BrownHarness, + ItemKind::GreenHarness, + ItemKind::RedHarness, + ItemKind::BlackHarness, + ItemKind::Snowball, + ]) +}); +pub static HARNESSES: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::WhiteHarness, + ItemKind::OrangeHarness, + ItemKind::MagentaHarness, + ItemKind::LightBlueHarness, + ItemKind::YellowHarness, + ItemKind::LimeHarness, + ItemKind::PinkHarness, + ItemKind::GrayHarness, + ItemKind::LightGrayHarness, + ItemKind::CyanHarness, + ItemKind::PurpleHarness, + ItemKind::BlueHarness, + ItemKind::BrownHarness, + ItemKind::GreenHarness, + ItemKind::RedHarness, + ItemKind::BlackHarness, + ]) +}); +pub static HEAD_ARMOR: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::TurtleHelmet, + ItemKind::LeatherHelmet, + ItemKind::CopperHelmet, + ItemKind::ChainmailHelmet, + ItemKind::IronHelmet, + ItemKind::DiamondHelmet, + ItemKind::GoldenHelmet, + ItemKind::NetheriteHelmet, + ]) +}); +pub static HOES: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::WoodenHoe, + ItemKind::CopperHoe, + ItemKind::StoneHoe, + ItemKind::GoldenHoe, + ItemKind::IronHoe, + ItemKind::DiamondHoe, + ItemKind::NetheriteHoe, + ]) +}); +pub static HOGLIN_FOOD: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::CrimsonFungus])); +pub static HORSE_FOOD: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::HayBlock, + ItemKind::Apple, + ItemKind::Wheat, + ItemKind::GoldenApple, + ItemKind::EnchantedGoldenApple, + ItemKind::Sugar, + ItemKind::Carrot, + ItemKind::GoldenCarrot, + ]) +}); +pub static HORSE_TEMPT_ITEMS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::GoldenApple, + ItemKind::EnchantedGoldenApple, + ItemKind::GoldenCarrot, + ]) +}); +pub static IGNORED_BY_PIGLIN_BABIES: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::Leather])); +pub static IRON_ORES: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::IronOre, ItemKind::DeepslateIronOre])); +pub static IRON_TOOL_MATERIALS: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::IronIngot])); +pub static JUNGLE_LOGS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::JungleLog, + ItemKind::StrippedJungleLog, + ItemKind::StrippedJungleWood, + ItemKind::JungleWood, + ]) +}); +pub static LANTERNS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::Lantern, + ItemKind::SoulLantern, + ItemKind::CopperLantern, + ItemKind::ExposedCopperLantern, + ItemKind::WeatheredCopperLantern, + ItemKind::OxidizedCopperLantern, + ItemKind::WaxedCopperLantern, + ItemKind::WaxedExposedCopperLantern, + ItemKind::WaxedWeatheredCopperLantern, + ItemKind::WaxedOxidizedCopperLantern, + ]) +}); +pub static LAPIS_ORES: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::LapisOre, ItemKind::DeepslateLapisOre])); +pub static LEAVES: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::OakLeaves, + ItemKind::SpruceLeaves, + ItemKind::BirchLeaves, + ItemKind::JungleLeaves, + ItemKind::AcaciaLeaves, + ItemKind::CherryLeaves, + ItemKind::DarkOakLeaves, + ItemKind::PaleOakLeaves, + ItemKind::MangroveLeaves, + ItemKind::AzaleaLeaves, + ItemKind::FloweringAzaleaLeaves, + ]) +}); +pub static LECTERN_BOOKS: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::WritableBook, ItemKind::WrittenBook])); +pub static LEG_ARMOR: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::LeatherLeggings, + ItemKind::CopperLeggings, + ItemKind::ChainmailLeggings, + ItemKind::IronLeggings, + ItemKind::DiamondLeggings, + ItemKind::GoldenLeggings, + ItemKind::NetheriteLeggings, + ]) +}); +pub static LIGHTNING_RODS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::LightningRod, + ItemKind::ExposedLightningRod, + ItemKind::WeatheredLightningRod, + ItemKind::OxidizedLightningRod, + ItemKind::WaxedLightningRod, + ItemKind::WaxedExposedLightningRod, + ItemKind::WaxedWeatheredLightningRod, + ItemKind::WaxedOxidizedLightningRod, + ]) +}); +pub static LLAMA_FOOD: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::HayBlock, ItemKind::Wheat])); +pub static LLAMA_TEMPT_ITEMS: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::HayBlock])); +pub static LOGS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::OakLog, + ItemKind::SpruceLog, + ItemKind::BirchLog, + ItemKind::JungleLog, + ItemKind::AcaciaLog, + ItemKind::CherryLog, + ItemKind::PaleOakLog, + ItemKind::DarkOakLog, + ItemKind::MangroveLog, + ItemKind::CrimsonStem, + ItemKind::WarpedStem, + ItemKind::StrippedOakLog, + ItemKind::StrippedSpruceLog, + ItemKind::StrippedBirchLog, + ItemKind::StrippedJungleLog, + ItemKind::StrippedAcaciaLog, + ItemKind::StrippedCherryLog, + ItemKind::StrippedDarkOakLog, + ItemKind::StrippedPaleOakLog, + ItemKind::StrippedMangroveLog, + ItemKind::StrippedCrimsonStem, + ItemKind::StrippedWarpedStem, + ItemKind::StrippedOakWood, + ItemKind::StrippedSpruceWood, + ItemKind::StrippedBirchWood, + ItemKind::StrippedJungleWood, + ItemKind::StrippedAcaciaWood, + ItemKind::StrippedCherryWood, + ItemKind::StrippedDarkOakWood, + ItemKind::StrippedPaleOakWood, + ItemKind::StrippedMangroveWood, + ItemKind::StrippedCrimsonHyphae, + ItemKind::StrippedWarpedHyphae, + ItemKind::OakWood, + ItemKind::SpruceWood, + ItemKind::BirchWood, + ItemKind::JungleWood, + ItemKind::AcaciaWood, + ItemKind::CherryWood, + ItemKind::PaleOakWood, + ItemKind::DarkOakWood, + ItemKind::MangroveWood, + ItemKind::CrimsonHyphae, + ItemKind::WarpedHyphae, + ]) +}); +pub static LOGS_THAT_BURN: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::OakLog, + ItemKind::SpruceLog, + ItemKind::BirchLog, + ItemKind::JungleLog, + ItemKind::AcaciaLog, + ItemKind::CherryLog, + ItemKind::PaleOakLog, + ItemKind::DarkOakLog, + ItemKind::MangroveLog, + ItemKind::StrippedOakLog, + ItemKind::StrippedSpruceLog, + ItemKind::StrippedBirchLog, + ItemKind::StrippedJungleLog, + ItemKind::StrippedAcaciaLog, + ItemKind::StrippedCherryLog, + ItemKind::StrippedDarkOakLog, + ItemKind::StrippedPaleOakLog, + ItemKind::StrippedMangroveLog, + ItemKind::StrippedOakWood, + ItemKind::StrippedSpruceWood, + ItemKind::StrippedBirchWood, + ItemKind::StrippedJungleWood, + ItemKind::StrippedAcaciaWood, + ItemKind::StrippedCherryWood, + ItemKind::StrippedDarkOakWood, + ItemKind::StrippedPaleOakWood, + ItemKind::StrippedMangroveWood, + ItemKind::OakWood, + ItemKind::SpruceWood, + ItemKind::BirchWood, + ItemKind::JungleWood, + ItemKind::AcaciaWood, + ItemKind::CherryWood, + ItemKind::PaleOakWood, + ItemKind::DarkOakWood, + ItemKind::MangroveWood, + ]) +}); +pub static MANGROVE_LOGS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::MangroveLog, + ItemKind::StrippedMangroveLog, + ItemKind::StrippedMangroveWood, + ItemKind::MangroveWood, + ]) +}); +pub static MAP_INVISIBILITY_EQUIPMENT: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::CarvedPumpkin])); +pub static MEAT: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::Porkchop, + ItemKind::CookedPorkchop, + ItemKind::Beef, + ItemKind::CookedBeef, + ItemKind::Chicken, + ItemKind::CookedChicken, + ItemKind::RottenFlesh, + ItemKind::Rabbit, + ItemKind::CookedRabbit, + ItemKind::Mutton, + ItemKind::CookedMutton, + ]) +}); +pub static NAUTILUS_BUCKET_FOOD: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::PufferfishBucket, + ItemKind::SalmonBucket, + ItemKind::CodBucket, + ItemKind::TropicalFishBucket, + ]) +}); +pub static NAUTILUS_FOOD: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::PufferfishBucket, + ItemKind::SalmonBucket, + ItemKind::CodBucket, + ItemKind::TropicalFishBucket, + ItemKind::Cod, + ItemKind::Salmon, + ItemKind::TropicalFish, + ItemKind::Pufferfish, + ItemKind::CookedCod, + ItemKind::CookedSalmon, + ]) +}); +pub static NAUTILUS_TAMING_ITEMS: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::PufferfishBucket, ItemKind::Pufferfish])); +pub static NETHERITE_TOOL_MATERIALS: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::NetheriteIngot])); +pub static NON_FLAMMABLE_WOOD: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::CrimsonPlanks, + ItemKind::WarpedPlanks, + ItemKind::CrimsonStem, + ItemKind::WarpedStem, + ItemKind::StrippedCrimsonStem, + ItemKind::StrippedWarpedStem, + ItemKind::StrippedCrimsonHyphae, + ItemKind::StrippedWarpedHyphae, + ItemKind::CrimsonHyphae, + ItemKind::WarpedHyphae, + ItemKind::CrimsonSlab, + ItemKind::WarpedSlab, + ItemKind::CrimsonShelf, + ItemKind::WarpedShelf, + ItemKind::CrimsonFence, + ItemKind::WarpedFence, + ItemKind::CrimsonStairs, + ItemKind::WarpedStairs, + ItemKind::CrimsonButton, + ItemKind::WarpedButton, + ItemKind::CrimsonPressurePlate, + ItemKind::WarpedPressurePlate, + ItemKind::CrimsonDoor, + ItemKind::WarpedDoor, + ItemKind::CrimsonTrapdoor, + ItemKind::WarpedTrapdoor, + ItemKind::CrimsonFenceGate, + ItemKind::WarpedFenceGate, + ItemKind::CrimsonSign, + ItemKind::WarpedSign, + ItemKind::CrimsonHangingSign, + ItemKind::WarpedHangingSign, + ]) +}); +pub static NOTEBLOCK_TOP_INSTRUMENTS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::SkeletonSkull, + ItemKind::WitherSkeletonSkull, + ItemKind::PlayerHead, + ItemKind::ZombieHead, + ItemKind::CreeperHead, + ItemKind::DragonHead, + ItemKind::PiglinHead, + ]) +}); +pub static OAK_LOGS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::OakLog, + ItemKind::StrippedOakLog, + ItemKind::StrippedOakWood, + ItemKind::OakWood, + ]) +}); +pub static OCELOT_FOOD: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::Cod, ItemKind::Salmon])); +pub static PALE_OAK_LOGS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::PaleOakLog, + ItemKind::StrippedPaleOakLog, + ItemKind::StrippedPaleOakWood, + ItemKind::PaleOakWood, + ]) +}); +pub static PANDA_EATS_FROM_GROUND: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::Bamboo, ItemKind::Cake])); +pub static PANDA_FOOD: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::Bamboo])); +pub static PARROT_FOOD: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::WheatSeeds, + ItemKind::PumpkinSeeds, + ItemKind::MelonSeeds, + ItemKind::TorchflowerSeeds, + ItemKind::PitcherPod, + ItemKind::BeetrootSeeds, + ]) +}); +pub static PARROT_POISONOUS_FOOD: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::Cookie])); +pub static PICKAXES: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::WoodenPickaxe, + ItemKind::CopperPickaxe, + ItemKind::StonePickaxe, + ItemKind::GoldenPickaxe, + ItemKind::IronPickaxe, + ItemKind::DiamondPickaxe, + ItemKind::NetheritePickaxe, + ]) +}); +pub static PIG_FOOD: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ItemKind::Carrot, ItemKind::Potato, ItemKind::Beetroot]) +}); +pub static PIGLIN_FOOD: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::Porkchop, ItemKind::CookedPorkchop])); +pub static PIGLIN_LOVED: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::GoldOre, + ItemKind::DeepslateGoldOre, + ItemKind::NetherGoldOre, + ItemKind::RawGoldBlock, + ItemKind::GoldBlock, + ItemKind::LightWeightedPressurePlate, + ItemKind::RawGold, + ItemKind::GoldIngot, + ItemKind::GoldenSword, + ItemKind::GoldenShovel, + ItemKind::GoldenPickaxe, + ItemKind::GoldenAxe, + ItemKind::GoldenHoe, + ItemKind::GoldenHelmet, + ItemKind::GoldenChestplate, + ItemKind::GoldenLeggings, + ItemKind::GoldenBoots, + ItemKind::GoldenApple, + ItemKind::EnchantedGoldenApple, + ItemKind::Clock, + ItemKind::GlisteringMelonSlice, + ItemKind::GoldenCarrot, + ItemKind::GoldenHorseArmor, + ItemKind::GoldenSpear, + ItemKind::GoldenNautilusArmor, + ItemKind::Bell, + ItemKind::GildedBlackstone, + ]) +}); +pub static PIGLIN_PREFERRED_WEAPONS: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::GoldenSpear, ItemKind::Crossbow])); +pub static PIGLIN_REPELLENTS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::SoulTorch, + ItemKind::SoulLantern, + ItemKind::SoulCampfire, + ]) +}); +pub static PIGLIN_SAFE_ARMOR: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::GoldenHelmet, + ItemKind::GoldenChestplate, + ItemKind::GoldenLeggings, + ItemKind::GoldenBoots, + ]) +}); +pub static PILLAGER_PREFERRED_WEAPONS: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::Crossbow])); +pub static PLANKS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::OakPlanks, + ItemKind::SprucePlanks, + ItemKind::BirchPlanks, + ItemKind::JunglePlanks, + ItemKind::AcaciaPlanks, + ItemKind::CherryPlanks, + ItemKind::DarkOakPlanks, + ItemKind::PaleOakPlanks, + ItemKind::MangrovePlanks, + ItemKind::BambooPlanks, + ItemKind::CrimsonPlanks, + ItemKind::WarpedPlanks, + ]) +}); +pub static RABBIT_FOOD: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::Dandelion, + ItemKind::Carrot, + ItemKind::GoldenCarrot, + ]) +}); +pub static RAILS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::PoweredRail, + ItemKind::DetectorRail, + ItemKind::Rail, + ItemKind::ActivatorRail, + ]) +}); +pub static REDSTONE_ORES: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::RedstoneOre, ItemKind::DeepslateRedstoneOre])); +pub static REPAIRS_CHAIN_ARMOR: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::IronIngot])); +pub static REPAIRS_COPPER_ARMOR: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::CopperIngot])); +pub static REPAIRS_DIAMOND_ARMOR: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::Diamond])); +pub static REPAIRS_GOLD_ARMOR: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::GoldIngot])); +pub static REPAIRS_IRON_ARMOR: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::IronIngot])); +pub static REPAIRS_LEATHER_ARMOR: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::Leather])); +pub static REPAIRS_NETHERITE_ARMOR: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::NetheriteIngot])); +pub static REPAIRS_TURTLE_HELMET: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::TurtleScute])); +pub static REPAIRS_WOLF_ARMOR: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::ArmadilloScute])); +pub static SAND: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::Sand, + ItemKind::SuspiciousSand, + ItemKind::RedSand, + ]) +}); +pub static SAPLINGS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::OakSapling, + ItemKind::SpruceSapling, + ItemKind::BirchSapling, + ItemKind::JungleSapling, + ItemKind::AcaciaSapling, + ItemKind::CherrySapling, + ItemKind::DarkOakSapling, + ItemKind::PaleOakSapling, + ItemKind::MangrovePropagule, + ItemKind::Azalea, + ItemKind::FloweringAzalea, + ]) +}); +pub static SHEARABLE_FROM_COPPER_GOLEM: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::Poppy])); +pub static SHEEP_FOOD: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::Wheat])); +pub static SHOVELS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::WoodenShovel, + ItemKind::CopperShovel, + ItemKind::StoneShovel, + ItemKind::GoldenShovel, + ItemKind::IronShovel, + ItemKind::DiamondShovel, + ItemKind::NetheriteShovel, + ]) +}); +pub static SHULKER_BOXES: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::ShulkerBox, + ItemKind::WhiteShulkerBox, + ItemKind::OrangeShulkerBox, + ItemKind::MagentaShulkerBox, + ItemKind::LightBlueShulkerBox, + ItemKind::YellowShulkerBox, + ItemKind::LimeShulkerBox, + ItemKind::PinkShulkerBox, + ItemKind::GrayShulkerBox, + ItemKind::LightGrayShulkerBox, + ItemKind::CyanShulkerBox, + ItemKind::PurpleShulkerBox, + ItemKind::BlueShulkerBox, + ItemKind::BrownShulkerBox, + ItemKind::GreenShulkerBox, + ItemKind::RedShulkerBox, + ItemKind::BlackShulkerBox, + ]) +}); +pub static SIGNS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::OakSign, + ItemKind::SpruceSign, + ItemKind::BirchSign, + ItemKind::JungleSign, + ItemKind::AcaciaSign, + ItemKind::CherrySign, + ItemKind::DarkOakSign, + ItemKind::PaleOakSign, + ItemKind::MangroveSign, + ItemKind::BambooSign, + ItemKind::CrimsonSign, + ItemKind::WarpedSign, + ]) +}); +pub static SKELETON_PREFERRED_WEAPONS: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::Bow])); +pub static SKULLS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::SkeletonSkull, + ItemKind::WitherSkeletonSkull, + ItemKind::PlayerHead, + ItemKind::ZombieHead, + ItemKind::CreeperHead, + ItemKind::DragonHead, + ItemKind::PiglinHead, + ]) +}); +pub static SLABS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::TuffSlab, + ItemKind::PolishedTuffSlab, + ItemKind::TuffBrickSlab, + ItemKind::CutCopperSlab, + ItemKind::ExposedCutCopperSlab, + ItemKind::WeatheredCutCopperSlab, + ItemKind::OxidizedCutCopperSlab, + ItemKind::WaxedCutCopperSlab, + ItemKind::WaxedExposedCutCopperSlab, + ItemKind::WaxedWeatheredCutCopperSlab, + ItemKind::WaxedOxidizedCutCopperSlab, + ItemKind::OakSlab, + ItemKind::SpruceSlab, + ItemKind::BirchSlab, + ItemKind::JungleSlab, + ItemKind::AcaciaSlab, + ItemKind::CherrySlab, + ItemKind::DarkOakSlab, + ItemKind::PaleOakSlab, + ItemKind::MangroveSlab, + ItemKind::BambooSlab, + ItemKind::BambooMosaicSlab, + ItemKind::CrimsonSlab, + ItemKind::WarpedSlab, + ItemKind::StoneSlab, + ItemKind::SmoothStoneSlab, + ItemKind::SandstoneSlab, + ItemKind::CutSandstoneSlab, + ItemKind::PetrifiedOakSlab, + ItemKind::CobblestoneSlab, + ItemKind::BrickSlab, + ItemKind::StoneBrickSlab, + ItemKind::MudBrickSlab, + ItemKind::NetherBrickSlab, + ItemKind::QuartzSlab, + ItemKind::RedSandstoneSlab, + ItemKind::CutRedSandstoneSlab, + ItemKind::PurpurSlab, + ItemKind::PrismarineSlab, + ItemKind::PrismarineBrickSlab, + ItemKind::DarkPrismarineSlab, + ItemKind::ResinBrickSlab, + ItemKind::PolishedGraniteSlab, + ItemKind::SmoothRedSandstoneSlab, + ItemKind::MossyStoneBrickSlab, + ItemKind::PolishedDioriteSlab, + ItemKind::MossyCobblestoneSlab, + ItemKind::EndStoneBrickSlab, + ItemKind::SmoothSandstoneSlab, + ItemKind::SmoothQuartzSlab, + ItemKind::GraniteSlab, + ItemKind::AndesiteSlab, + ItemKind::RedNetherBrickSlab, + ItemKind::PolishedAndesiteSlab, + ItemKind::DioriteSlab, + ItemKind::CobbledDeepslateSlab, + ItemKind::PolishedDeepslateSlab, + ItemKind::DeepslateBrickSlab, + ItemKind::DeepslateTileSlab, + ItemKind::BlackstoneSlab, + ItemKind::PolishedBlackstoneSlab, + ItemKind::PolishedBlackstoneBrickSlab, + ]) +}); +pub static SMALL_FLOWERS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::Dandelion, + ItemKind::OpenEyeblossom, + ItemKind::ClosedEyeblossom, + ItemKind::Poppy, + ItemKind::BlueOrchid, + ItemKind::Allium, + ItemKind::AzureBluet, + ItemKind::RedTulip, + ItemKind::OrangeTulip, + ItemKind::WhiteTulip, + ItemKind::PinkTulip, + ItemKind::OxeyeDaisy, + ItemKind::Cornflower, + ItemKind::LilyOfTheValley, + ItemKind::WitherRose, + ItemKind::Torchflower, + ]) +}); +pub static SMELTS_TO_GLASS: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::Sand, ItemKind::RedSand])); +pub static SNIFFER_FOOD: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::TorchflowerSeeds])); +pub static SOUL_FIRE_BASE_BLOCKS: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::SoulSand, ItemKind::SoulSoil])); +pub static SPEARS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::WoodenSpear, + ItemKind::StoneSpear, + ItemKind::CopperSpear, + ItemKind::IronSpear, + ItemKind::GoldenSpear, + ItemKind::DiamondSpear, + ItemKind::NetheriteSpear, + ]) +}); +pub static SPRUCE_LOGS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::SpruceLog, + ItemKind::StrippedSpruceLog, + ItemKind::StrippedSpruceWood, + ItemKind::SpruceWood, + ]) +}); +pub static STAIRS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::TuffStairs, + ItemKind::PolishedTuffStairs, + ItemKind::TuffBrickStairs, + ItemKind::CutCopperStairs, + ItemKind::ExposedCutCopperStairs, + ItemKind::WeatheredCutCopperStairs, + ItemKind::OxidizedCutCopperStairs, + ItemKind::WaxedCutCopperStairs, + ItemKind::WaxedExposedCutCopperStairs, + ItemKind::WaxedWeatheredCutCopperStairs, + ItemKind::WaxedOxidizedCutCopperStairs, + ItemKind::PurpurStairs, + ItemKind::CobblestoneStairs, + ItemKind::ResinBrickStairs, + ItemKind::BrickStairs, + ItemKind::StoneBrickStairs, + ItemKind::MudBrickStairs, + ItemKind::NetherBrickStairs, + ItemKind::SandstoneStairs, + ItemKind::OakStairs, + ItemKind::SpruceStairs, + ItemKind::BirchStairs, + ItemKind::JungleStairs, + ItemKind::AcaciaStairs, + ItemKind::CherryStairs, + ItemKind::DarkOakStairs, + ItemKind::PaleOakStairs, + ItemKind::MangroveStairs, + ItemKind::BambooStairs, + ItemKind::BambooMosaicStairs, + ItemKind::CrimsonStairs, + ItemKind::WarpedStairs, + ItemKind::QuartzStairs, + ItemKind::PrismarineStairs, + ItemKind::PrismarineBrickStairs, + ItemKind::DarkPrismarineStairs, + ItemKind::RedSandstoneStairs, + ItemKind::PolishedGraniteStairs, + ItemKind::SmoothRedSandstoneStairs, + ItemKind::MossyStoneBrickStairs, + ItemKind::PolishedDioriteStairs, + ItemKind::MossyCobblestoneStairs, + ItemKind::EndStoneBrickStairs, + ItemKind::StoneStairs, + ItemKind::SmoothSandstoneStairs, + ItemKind::SmoothQuartzStairs, + ItemKind::GraniteStairs, + ItemKind::AndesiteStairs, + ItemKind::RedNetherBrickStairs, + ItemKind::PolishedAndesiteStairs, + ItemKind::DioriteStairs, + ItemKind::CobbledDeepslateStairs, + ItemKind::PolishedDeepslateStairs, + ItemKind::DeepslateBrickStairs, + ItemKind::DeepslateTileStairs, + ItemKind::BlackstoneStairs, + ItemKind::PolishedBlackstoneStairs, + ItemKind::PolishedBlackstoneBrickStairs, + ]) +}); +pub static STONE_BRICKS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::StoneBricks, + ItemKind::MossyStoneBricks, + ItemKind::CrackedStoneBricks, + ItemKind::ChiseledStoneBricks, + ]) +}); +pub static STONE_BUTTONS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::StoneButton, + ItemKind::PolishedBlackstoneButton, + ]) +}); +pub static STONE_CRAFTING_MATERIALS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::CobbledDeepslate, + ItemKind::Cobblestone, + ItemKind::Blackstone, + ]) +}); +pub static STONE_TOOL_MATERIALS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::CobbledDeepslate, + ItemKind::Cobblestone, + ItemKind::Blackstone, + ]) +}); +pub static STRIDER_FOOD: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::WarpedFungus])); +pub static STRIDER_TEMPT_ITEMS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ItemKind::WarpedFungus, ItemKind::WarpedFungusOnAStick]) +}); +pub static SWORDS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::WoodenSword, + ItemKind::CopperSword, + ItemKind::StoneSword, + ItemKind::GoldenSword, + ItemKind::IronSword, + ItemKind::DiamondSword, + ItemKind::NetheriteSword, + ]) +}); +pub static TERRACOTTA: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::WhiteTerracotta, + ItemKind::OrangeTerracotta, + ItemKind::MagentaTerracotta, + ItemKind::LightBlueTerracotta, + ItemKind::YellowTerracotta, + ItemKind::LimeTerracotta, + ItemKind::PinkTerracotta, + ItemKind::GrayTerracotta, + ItemKind::LightGrayTerracotta, + ItemKind::CyanTerracotta, + ItemKind::PurpleTerracotta, + ItemKind::BlueTerracotta, + ItemKind::BrownTerracotta, + ItemKind::GreenTerracotta, + ItemKind::RedTerracotta, + ItemKind::BlackTerracotta, + ItemKind::Terracotta, + ]) +}); +pub static TRAPDOORS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::IronTrapdoor, + ItemKind::OakTrapdoor, + ItemKind::SpruceTrapdoor, + ItemKind::BirchTrapdoor, + ItemKind::JungleTrapdoor, + ItemKind::AcaciaTrapdoor, + ItemKind::CherryTrapdoor, + ItemKind::DarkOakTrapdoor, + ItemKind::PaleOakTrapdoor, + ItemKind::MangroveTrapdoor, + ItemKind::BambooTrapdoor, + ItemKind::CrimsonTrapdoor, + ItemKind::WarpedTrapdoor, + ItemKind::CopperTrapdoor, + ItemKind::ExposedCopperTrapdoor, + ItemKind::WeatheredCopperTrapdoor, + ItemKind::OxidizedCopperTrapdoor, + ItemKind::WaxedCopperTrapdoor, + ItemKind::WaxedExposedCopperTrapdoor, + ItemKind::WaxedWeatheredCopperTrapdoor, + ItemKind::WaxedOxidizedCopperTrapdoor, + ]) +}); +pub static TRIM_MATERIALS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::Redstone, + ItemKind::Diamond, + ItemKind::Emerald, + ItemKind::LapisLazuli, + ItemKind::Quartz, + ItemKind::AmethystShard, + ItemKind::IronIngot, + ItemKind::CopperIngot, + ItemKind::GoldIngot, + ItemKind::NetheriteIngot, + ItemKind::ResinBrick, + ]) +}); +pub static TRIMMABLE_ARMOR: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::TurtleHelmet, + ItemKind::LeatherHelmet, + ItemKind::LeatherChestplate, + ItemKind::LeatherLeggings, + ItemKind::LeatherBoots, + ItemKind::CopperHelmet, + ItemKind::CopperChestplate, + ItemKind::CopperLeggings, + ItemKind::CopperBoots, + ItemKind::ChainmailHelmet, + ItemKind::ChainmailChestplate, + ItemKind::ChainmailLeggings, + ItemKind::ChainmailBoots, + ItemKind::IronHelmet, + ItemKind::IronChestplate, + ItemKind::IronLeggings, + ItemKind::IronBoots, + ItemKind::DiamondHelmet, + ItemKind::DiamondChestplate, + ItemKind::DiamondLeggings, + ItemKind::DiamondBoots, + ItemKind::GoldenHelmet, + ItemKind::GoldenChestplate, + ItemKind::GoldenLeggings, + ItemKind::GoldenBoots, + ItemKind::NetheriteHelmet, + ItemKind::NetheriteChestplate, + ItemKind::NetheriteLeggings, + ItemKind::NetheriteBoots, + ]) +}); +pub static TURTLE_FOOD: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::Seagrass])); +pub static VILLAGER_PICKS_UP: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::WheatSeeds, + ItemKind::Wheat, + ItemKind::Bread, + ItemKind::Carrot, + ItemKind::Potato, + ItemKind::TorchflowerSeeds, + ItemKind::PitcherPod, + ItemKind::Beetroot, + ItemKind::BeetrootSeeds, + ]) +}); +pub static VILLAGER_PLANTABLE_SEEDS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::WheatSeeds, + ItemKind::Carrot, + ItemKind::Potato, + ItemKind::TorchflowerSeeds, + ItemKind::PitcherPod, + ItemKind::BeetrootSeeds, + ]) +}); +pub static WALLS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::TuffWall, + ItemKind::PolishedTuffWall, + ItemKind::TuffBrickWall, + ItemKind::ResinBrickWall, + ItemKind::CobblestoneWall, + ItemKind::MossyCobblestoneWall, + ItemKind::BrickWall, + ItemKind::PrismarineWall, + ItemKind::RedSandstoneWall, + ItemKind::MossyStoneBrickWall, + ItemKind::GraniteWall, + ItemKind::StoneBrickWall, + ItemKind::MudBrickWall, + ItemKind::NetherBrickWall, + ItemKind::AndesiteWall, + ItemKind::RedNetherBrickWall, + ItemKind::SandstoneWall, + ItemKind::EndStoneBrickWall, + ItemKind::DioriteWall, + ItemKind::BlackstoneWall, + ItemKind::PolishedBlackstoneWall, + ItemKind::PolishedBlackstoneBrickWall, + ItemKind::CobbledDeepslateWall, + ItemKind::PolishedDeepslateWall, + ItemKind::DeepslateBrickWall, + ItemKind::DeepslateTileWall, + ]) +}); +pub static WARPED_STEMS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::WarpedStem, + ItemKind::StrippedWarpedStem, + ItemKind::StrippedWarpedHyphae, + ItemKind::WarpedHyphae, + ]) +}); +pub static WART_BLOCKS: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::NetherWartBlock, ItemKind::WarpedWartBlock])); +pub static WITHER_SKELETON_DISLIKED_WEAPONS: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::Bow, ItemKind::Crossbow])); +pub static WOLF_FOOD: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::Porkchop, + ItemKind::CookedPorkchop, + ItemKind::Cod, + ItemKind::Salmon, + ItemKind::TropicalFish, + ItemKind::Pufferfish, + ItemKind::CookedCod, + ItemKind::CookedSalmon, + ItemKind::Beef, + ItemKind::CookedBeef, + ItemKind::Chicken, + ItemKind::CookedChicken, + ItemKind::RottenFlesh, + ItemKind::Rabbit, + ItemKind::CookedRabbit, + ItemKind::RabbitStew, + ItemKind::Mutton, + ItemKind::CookedMutton, + ]) +}); +pub static WOODEN_BUTTONS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::OakButton, + ItemKind::SpruceButton, + ItemKind::BirchButton, + ItemKind::JungleButton, + ItemKind::AcaciaButton, + ItemKind::CherryButton, + ItemKind::DarkOakButton, + ItemKind::PaleOakButton, + ItemKind::MangroveButton, + ItemKind::BambooButton, + ItemKind::CrimsonButton, + ItemKind::WarpedButton, + ]) +}); +pub static WOODEN_DOORS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::OakDoor, + ItemKind::SpruceDoor, + ItemKind::BirchDoor, + ItemKind::JungleDoor, + ItemKind::AcaciaDoor, + ItemKind::CherryDoor, + ItemKind::DarkOakDoor, + ItemKind::PaleOakDoor, + ItemKind::MangroveDoor, + ItemKind::BambooDoor, + ItemKind::CrimsonDoor, + ItemKind::WarpedDoor, + ]) +}); +pub static WOODEN_FENCES: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::OakFence, + ItemKind::SpruceFence, + ItemKind::BirchFence, + ItemKind::JungleFence, + ItemKind::AcaciaFence, + ItemKind::CherryFence, + ItemKind::DarkOakFence, + ItemKind::PaleOakFence, + ItemKind::MangroveFence, + ItemKind::BambooFence, + ItemKind::CrimsonFence, + ItemKind::WarpedFence, + ]) +}); +pub static WOODEN_PRESSURE_PLATES: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::OakPressurePlate, + ItemKind::SprucePressurePlate, + ItemKind::BirchPressurePlate, + ItemKind::JunglePressurePlate, + ItemKind::AcaciaPressurePlate, + ItemKind::CherryPressurePlate, + ItemKind::DarkOakPressurePlate, + ItemKind::PaleOakPressurePlate, + ItemKind::MangrovePressurePlate, + ItemKind::BambooPressurePlate, + ItemKind::CrimsonPressurePlate, + ItemKind::WarpedPressurePlate, + ]) +}); +pub static WOODEN_SHELVES: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::AcaciaShelf, + ItemKind::BambooShelf, + ItemKind::BirchShelf, + ItemKind::CherryShelf, + ItemKind::CrimsonShelf, + ItemKind::DarkOakShelf, + ItemKind::JungleShelf, + ItemKind::MangroveShelf, + ItemKind::OakShelf, + ItemKind::PaleOakShelf, + ItemKind::SpruceShelf, + ItemKind::WarpedShelf, + ]) +}); +pub static WOODEN_SLABS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::OakSlab, + ItemKind::SpruceSlab, + ItemKind::BirchSlab, + ItemKind::JungleSlab, + ItemKind::AcaciaSlab, + ItemKind::CherrySlab, + ItemKind::DarkOakSlab, + ItemKind::PaleOakSlab, + ItemKind::MangroveSlab, + ItemKind::BambooSlab, + ItemKind::CrimsonSlab, + ItemKind::WarpedSlab, + ]) +}); +pub static WOODEN_STAIRS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::OakStairs, + ItemKind::SpruceStairs, + ItemKind::BirchStairs, + ItemKind::JungleStairs, + ItemKind::AcaciaStairs, + ItemKind::CherryStairs, + ItemKind::DarkOakStairs, + ItemKind::PaleOakStairs, + ItemKind::MangroveStairs, + ItemKind::BambooStairs, + ItemKind::CrimsonStairs, + ItemKind::WarpedStairs, + ]) +}); +pub static WOODEN_TOOL_MATERIALS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::OakPlanks, + ItemKind::SprucePlanks, + ItemKind::BirchPlanks, + ItemKind::JunglePlanks, + ItemKind::AcaciaPlanks, + ItemKind::CherryPlanks, + ItemKind::DarkOakPlanks, + ItemKind::PaleOakPlanks, + ItemKind::MangrovePlanks, + ItemKind::BambooPlanks, + ItemKind::CrimsonPlanks, + ItemKind::WarpedPlanks, + ]) +}); +pub static WOODEN_TRAPDOORS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::OakTrapdoor, + ItemKind::SpruceTrapdoor, + ItemKind::BirchTrapdoor, + ItemKind::JungleTrapdoor, + ItemKind::AcaciaTrapdoor, + ItemKind::CherryTrapdoor, + ItemKind::DarkOakTrapdoor, + ItemKind::PaleOakTrapdoor, + ItemKind::MangroveTrapdoor, + ItemKind::BambooTrapdoor, + ItemKind::CrimsonTrapdoor, + ItemKind::WarpedTrapdoor, + ]) +}); +pub static WOOL: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::WhiteWool, + ItemKind::OrangeWool, + ItemKind::MagentaWool, + ItemKind::LightBlueWool, + ItemKind::YellowWool, + ItemKind::LimeWool, + ItemKind::PinkWool, + ItemKind::GrayWool, + ItemKind::LightGrayWool, + ItemKind::CyanWool, + ItemKind::PurpleWool, + ItemKind::BlueWool, + ItemKind::BrownWool, + ItemKind::GreenWool, + ItemKind::RedWool, + ItemKind::BlackWool, + ]) +}); +pub static WOOL_CARPETS: LazyLock<RegistryTag<ItemKind>> = LazyLock::new(|| { + RegistryTag::new(vec![ + ItemKind::WhiteCarpet, + ItemKind::OrangeCarpet, + ItemKind::MagentaCarpet, + ItemKind::LightBlueCarpet, + ItemKind::YellowCarpet, + ItemKind::LimeCarpet, + ItemKind::PinkCarpet, + ItemKind::GrayCarpet, + ItemKind::LightGrayCarpet, + ItemKind::CyanCarpet, + ItemKind::PurpleCarpet, + ItemKind::BlueCarpet, + ItemKind::BrownCarpet, + ItemKind::GreenCarpet, + ItemKind::RedCarpet, + ItemKind::BlackCarpet, + ]) +}); +pub static ZOMBIE_HORSE_FOOD: LazyLock<RegistryTag<ItemKind>> = + LazyLock::new(|| RegistryTag::new(vec![ItemKind::RedMushroom])); diff --git a/azalea-registry/src/tags/mod.rs b/azalea-registry/src/tags/mod.rs index 8d3fb8fe..640d119b 100644 --- a/azalea-registry/src/tags/mod.rs +++ b/azalea-registry/src/tags/mod.rs @@ -1,4 +1,92 @@ +use std::{collections::HashSet, ops::Deref}; + +use crate::Registry; + pub mod blocks; pub mod entities; pub mod fluids; pub mod items; + +/// A set of registry items. +#[derive(Clone, Debug)] +pub struct RegistryTag<R: Registry + 'static> { + // yes, this *could* be a Box<[R]>, but there are cases in which the user may want to cheaply + // mutate this. + // yes, it could also be a [R; N] using a const generic, but that makes RegistryTag annoying if + // the user wants to put it in their own code. + // yes, if the aforementioned issues are ignored then we could even avoid a LazyLock. but that + // would provide nearly no benefit and result in wasted memory for unused tags. + // having it be a vec is fine. + entries: Vec<R>, +} +impl<R: Registry + 'static> RegistryTag<R> { + pub(crate) fn new(entries: Vec<R>) -> Self { + // must be sorted for binary search + debug_assert!(entries.is_sorted()); + + Self { entries } + } +} +impl<R: Registry + 'static> RegistryTag<R> { + /// Returns whether the given item is contained in this registry. + pub fn contains(&self, value: &R) -> bool { + self.find(value).is_some() + } + + pub fn remove(&mut self, value: &R) -> Option<R> { + self.find(value).map(|index| self.entries.remove(index)) + } + + fn find(&self, value: &R) -> Option<usize> { + // TODO: tune this number; when does binary search actually start making a + // difference? + if self.entries.len() > 64 { + self.linear_search_find(value) + } else { + self.binary_search_find(value) + } + } + fn linear_search_find(&self, value: &R) -> Option<usize> { + self.entries.iter().position(|e| e == value) + } + fn binary_search_find(&self, value: &R) -> Option<usize> { + self.entries.binary_search(value).ok() + } + + // this exists for convenience since we can't always do HashSet::from if it's a + // LazyLock + pub fn into_hashset(&self) -> HashSet<R> { + self.clone().into_iter().collect() + } +} +impl<R: Registry> IntoIterator for RegistryTag<R> { + type Item = R; + + type IntoIter = std::vec::IntoIter<R>; + + fn into_iter(self) -> Self::IntoIter { + self.entries.into_iter() + } +} + +impl<R: Registry> From<RegistryTag<R>> for HashSet<R> { + fn from(tag: RegistryTag<R>) -> Self { + tag.into_hashset() + } +} + +impl<R: Registry> Deref for RegistryTag<R> { + type Target = [R]; + + fn deref(&self) -> &Self::Target { + &self.entries + } +} + +impl<R: Registry> FromIterator<R> for RegistryTag<R> { + fn from_iter<T: IntoIterator<Item = R>>(iter: T) -> Self { + let mut entries = iter.into_iter().collect::<Vec<_>>(); + entries.sort(); + Self::new(entries) + } +} diff --git a/azalea-world/benches/chunks.rs b/azalea-world/benches/chunks.rs index f84fdc56..64924fec 100644 --- a/azalea-world/benches/chunks.rs +++ b/azalea-world/benches/chunks.rs @@ -1,6 +1,7 @@ use std::hint::black_box; use azalea_core::position::ChunkBlockPos; +use azalea_registry::builtin::BlockKind; use azalea_world::{BitStorage, Chunk}; use criterion::{Criterion, criterion_group, criterion_main}; @@ -13,7 +14,7 @@ fn bench_chunks(c: &mut Criterion) { for z in 0..16 { chunk.set_block_state( &ChunkBlockPos::new(x, 1, z), - azalea_registry::Block::Bedrock.into(), + BlockKind::Bedrock.into(), 0, ); } diff --git a/azalea-world/src/chunk_storage.rs b/azalea-world/src/chunk_storage.rs index 35d8cac3..f8646209 100644 --- a/azalea-world/src/chunk_storage.rs +++ b/azalea-world/src/chunk_storage.rs @@ -15,7 +15,7 @@ use azalea_buf::{AzaleaRead, AzaleaWrite, BufReadError}; use azalea_core::position::{ BlockPos, ChunkBiomePos, ChunkBlockPos, ChunkPos, ChunkSectionBiomePos, ChunkSectionBlockPos, }; -use azalea_registry::Biome; +use azalea_registry::data::Biome; use nohash_hasher::IntMap; use parking_lot::RwLock; use tracing::{debug, trace, warn}; diff --git a/azalea-world/src/container.rs b/azalea-world/src/container.rs index ff79ec81..3e167085 100644 --- a/azalea-world/src/container.rs +++ b/azalea-world/src/container.rs @@ -3,7 +3,8 @@ use std::{ sync::{Arc, Weak}, }; -use azalea_core::{identifier::Identifier, registry_holder::RegistryHolder}; +use azalea_core::registry_holder::RegistryHolder; +use azalea_registry::identifier::Identifier; use bevy_ecs::{component::Component, resource::Resource}; use derive_more::{Deref, DerefMut}; use nohash_hasher::IntMap; diff --git a/azalea-world/src/find_blocks.rs b/azalea-world/src/find_blocks.rs index 17e66754..5edf3ea2 100644 --- a/azalea-world/src/find_blocks.rs +++ b/azalea-world/src/find_blocks.rs @@ -10,11 +10,12 @@ impl Instance { /// performance purposes. /// /// ``` + /// # use azalea_registry::builtin::BlockKind; /// # fn example(client: &azalea_client::Client) { /// client /// .world() /// .read() - /// .find_block(client.position(), &azalea_registry::Block::Chest.into()); + /// .find_block(client.position(), &BlockKind::Chest.into()); /// # } /// ``` pub fn find_block( @@ -249,7 +250,7 @@ fn palette_maybe_has_block(palette: &Palette<BlockState>, block_states: &BlockSt #[cfg(test)] mod tests { - use azalea_registry::Block; + use azalea_registry::builtin::BlockKind; use super::*; use crate::{Chunk, PartialChunkStorage}; @@ -274,10 +275,10 @@ mod tests { chunk_storage, ); - chunk_storage.set_block_state(BlockPos { x: 17, y: 0, z: 0 }, Block::Stone.into()); - chunk_storage.set_block_state(BlockPos { x: 0, y: 18, z: 0 }, Block::Stone.into()); + chunk_storage.set_block_state(BlockPos { x: 17, y: 0, z: 0 }, BlockKind::Stone.into()); + chunk_storage.set_block_state(BlockPos { x: 0, y: 18, z: 0 }, BlockKind::Stone.into()); - let pos = instance.find_block(BlockPos { x: 0, y: 0, z: 0 }, &Block::Stone.into()); + let pos = instance.find_block(BlockPos { x: 0, y: 0, z: 0 }, &BlockKind::Stone.into()); assert_eq!(pos, Some(BlockPos { x: 17, y: 0, z: 0 })); } @@ -301,10 +302,10 @@ mod tests { chunk_storage, ); - chunk_storage.set_block_state(BlockPos { x: -1, y: 0, z: 0 }, Block::Stone.into()); - chunk_storage.set_block_state(BlockPos { x: 15, y: 0, z: 0 }, Block::Stone.into()); + chunk_storage.set_block_state(BlockPos { x: -1, y: 0, z: 0 }, BlockKind::Stone.into()); + chunk_storage.set_block_state(BlockPos { x: 15, y: 0, z: 0 }, BlockKind::Stone.into()); - let pos = instance.find_block(BlockPos { x: 0, y: 0, z: 0 }, &Block::Stone.into()); + let pos = instance.find_block(BlockPos { x: 0, y: 0, z: 0 }, &BlockKind::Stone.into()); assert_eq!(pos, Some(BlockPos { x: -1, y: 0, z: 0 })); } } diff --git a/azalea-world/src/heightmap.rs b/azalea-world/src/heightmap.rs index d3b2b071..0f5e4c53 100644 --- a/azalea-world/src/heightmap.rs +++ b/azalea-world/src/heightmap.rs @@ -3,7 +3,7 @@ use std::{ str::FromStr, }; -use azalea_block::BlockState; +use azalea_block::{BlockState, BlockTrait}; use azalea_buf::AzBuf; use azalea_core::{math, position::ChunkBlockPos}; use azalea_registry::tags::blocks::LEAVES; @@ -45,7 +45,7 @@ fn motion_blocking(block_state: BlockState) -> bool { impl HeightmapKind { pub fn is_opaque(self, block_state: BlockState) -> bool { - let block = Box::<dyn azalea_block::BlockTrait>::from(block_state); + let block = Box::<dyn BlockTrait>::from(block_state); let registry_block = block.as_registry_block(); match self { HeightmapKind::WorldSurfaceWg => !block_state.is_air(), diff --git a/azalea-world/src/palette/container.rs b/azalea-world/src/palette/container.rs index 4e5b4489..a10c5d78 100644 --- a/azalea-world/src/palette/container.rs +++ b/azalea-world/src/palette/container.rs @@ -6,7 +6,7 @@ use std::{ use azalea_block::BlockState; use azalea_buf::{AzaleaRead, AzaleaWrite, BufReadError}; use azalea_core::position::{ChunkSectionBiomePos, ChunkSectionBlockPos}; -use azalea_registry::Biome; +use azalea_registry::data::Biome; use tracing::{debug, warn}; use super::{Palette, PaletteKind}; diff --git a/azalea-world/src/world.rs b/azalea-world/src/world.rs index 969b7d36..c9833c64 100644 --- a/azalea-world/src/world.rs +++ b/azalea-world/src/world.rs @@ -11,7 +11,7 @@ use azalea_core::{ position::{BlockPos, ChunkPos}, registry_holder::RegistryHolder, }; -use azalea_registry::Biome; +use azalea_registry::data::Biome; use bevy_ecs::{component::Component, entity::Entity}; use derive_more::{Deref, DerefMut}; use nohash_hasher::IntMap; diff --git a/azalea/benches/checks.rs b/azalea/benches/checks.rs index ee737359..bd1b9085 100644 --- a/azalea/benches/checks.rs +++ b/azalea/benches/checks.rs @@ -1,23 +1,23 @@ use std::hint::black_box; use azalea::pathfinder::mining::MiningCache; -pub use azalea_registry as registry; +use azalea_registry::builtin::BlockKind; use criterion::{Criterion, criterion_group, criterion_main}; fn benchmark(c: &mut Criterion) { let mining_cache = MiningCache::new(None); - let stone = registry::Block::Stone.into(); + let stone = BlockKind::Stone.into(); c.bench_function("is_liquid stone", |b| { b.iter(|| mining_cache.is_liquid(black_box(stone))); }); - let water = registry::Block::Water.into(); + let water = BlockKind::Water.into(); c.bench_function("is_liquid water", |b| { b.iter(|| mining_cache.is_liquid(black_box(water))); }); - let lava = registry::Block::Lava.into(); + let lava = BlockKind::Lava.into(); c.bench_function("is_liquid lava", |b| { b.iter(|| mining_cache.is_liquid(black_box(lava))); }); diff --git a/azalea/benches/pathfinder.rs b/azalea/benches/pathfinder.rs index aff6c00c..5ad73d7d 100644 --- a/azalea/benches/pathfinder.rs +++ b/azalea/benches/pathfinder.rs @@ -13,6 +13,7 @@ use azalea::{ }; use azalea_core::position::{ChunkBlockPos, ChunkPos}; use azalea_inventory::Menu; +use azalea_registry::builtin::BlockKind; use azalea_world::{Chunk, ChunkStorage, PartialChunkStorage}; use criterion::{Bencher, Criterion, criterion_group, criterion_main}; use parking_lot::RwLock; @@ -44,13 +45,13 @@ fn generate_bedrock_world( for z in 0..16_u8 { chunk.set_block_state( &ChunkBlockPos::new(x, 1, z), - azalea_registry::Block::Bedrock.into(), + BlockKind::Bedrock.into(), chunks.min_y, ); if rng.random_bool(0.5) { chunk.set_block_state( &ChunkBlockPos::new(x, 2, z), - azalea_registry::Block::Bedrock.into(), + BlockKind::Bedrock.into(), chunks.min_y, ); } @@ -102,7 +103,7 @@ fn generate_mining_world( for z in 0..16_u8 { chunk.set_block_state( &ChunkBlockPos::new(x, y, z), - azalea_registry::Block::Stone.into(), + BlockKind::Stone.into(), chunks.min_y, ); } diff --git a/azalea/benches/physics.rs b/azalea/benches/physics.rs index 2f122014..a0811566 100644 --- a/azalea/benches/physics.rs +++ b/azalea/benches/physics.rs @@ -3,6 +3,7 @@ use azalea::{ pathfinder::simulation::{SimulatedPlayerBundle, SimulationSet}, }; use azalea_core::position::{ChunkBlockPos, ChunkPos}; +use azalea_registry::builtin::BlockKind; use azalea_world::{Chunk, ChunkStorage, PartialChunkStorage}; use criterion::{Bencher, Criterion, criterion_group, criterion_main}; @@ -27,7 +28,7 @@ fn generate_world(partial_chunks: &mut PartialChunkStorage, size: u32) -> ChunkS for z in 0..16_u8 { chunk.set_block_state( &ChunkBlockPos::new(x, 1, z), - azalea_registry::Block::OakFence.into(), + BlockKind::OakFence.into(), chunks.min_y, ); } diff --git a/azalea/examples/steal.rs b/azalea/examples/steal.rs index 899c2568..c928545f 100644 --- a/azalea/examples/steal.rs +++ b/azalea/examples/steal.rs @@ -4,6 +4,7 @@ use std::sync::Arc; use azalea::{BlockPos, pathfinder::goals::RadiusGoal, prelude::*}; use azalea_inventory::{ItemStack, operations::QuickMoveClick}; +use azalea_registry::builtin::{BlockKind, ItemKind}; use parking_lot::Mutex; #[tokio::main] @@ -55,7 +56,7 @@ async fn steal(bot: Client, state: State) -> anyhow::Result<()> { let chest_block = bot .world() .read() - .find_blocks(bot.position(), &azalea::registry::Block::Chest.into()) + .find_blocks(bot.position(), &BlockKind::Chest.into()) .find( // find the closest chest that hasn't been checked |block_pos| !state.checked_chests.lock().contains(block_pos), @@ -79,7 +80,7 @@ async fn steal(bot: Client, state: State) -> anyhow::Result<()> { let ItemStack::Present(item) = slot else { continue; }; - if item.kind == azalea::registry::Item::Diamond { + if item.kind == ItemKind::Diamond { println!("clicking slot ^"); chest.click(QuickMoveClick::Left { slot: index as u16 }); } diff --git a/azalea/examples/testbot/commands/debug.rs b/azalea/examples/testbot/commands/debug.rs index dfd055ea..c5b93c7d 100644 --- a/azalea/examples/testbot/commands/debug.rs +++ b/azalea/examples/testbot/commands/debug.rs @@ -142,7 +142,7 @@ pub fn register(commands: &mut CommandDispatcher<Mutex<CommandSource>>) { println!("getblock xyz {x} {y} {z}"); let block_pos = BlockPos::new(x, y, z); let block = source.bot.world().read().get_block_state(block_pos); - source.reply(format!("Block at {block_pos} is {block:?}")); + source.reply(format!("BlockKind at {block_pos} is {block:?}")); 1 })), ))); diff --git a/azalea/examples/todo/craft_dig_straight_down.rs b/azalea/examples/todo/craft_dig_straight_down.rs index 951c3de2..0d9961d4 100644 --- a/azalea/examples/todo/craft_dig_straight_down.rs +++ b/azalea/examples/todo/craft_dig_straight_down.rs @@ -38,7 +38,7 @@ async fn handle(bot: Client, event: Event, state: State) -> anyhow::Result<()> { bot.goto(pathfinder::Goals::NearXZ(5, azalea::BlockXZ(0, 0))) .await; let chest = bot - .open_container_at(&bot.world().find_block(azalea::Block::Chest)) + .open_container_at(&bot.world().find_block(BlockKind::Chest)) .await .unwrap(); bot.take_amount_from_container(&chest, 5, |i| i.id == "#minecraft:planks") @@ -46,7 +46,7 @@ async fn handle(bot: Client, event: Event, state: State) -> anyhow::Result<()> { chest.close().await; let crafting_table = bot - .open_crafting_table(&bot.world.find_block(azalea::Block::CraftingTable)) + .open_crafting_table(&bot.world.find_block(BlockKind::CraftingTable)) .await .unwrap(); bot.craft(&crafting_table, &bot.recipe_for("minecraft:sticks")) diff --git a/azalea/src/auto_tool.rs b/azalea/src/auto_tool.rs index b71fb0b0..06103976 100644 --- a/azalea/src/auto_tool.rs +++ b/azalea/src/auto_tool.rs @@ -3,7 +3,7 @@ use azalea_client::Client; use azalea_core::position::BlockPos; use azalea_entity::{ActiveEffects, Attributes, FluidOnEyes, Physics, inventory::Inventory}; use azalea_inventory::{ItemStack, Menu, components}; -use azalea_registry::EntityKind; +use azalea_registry::builtin::{BlockKind, EntityKind, ItemKind}; use crate::bot::BotClientExt; @@ -89,10 +89,7 @@ pub fn accurate_best_tool_in_hotbar_for_block( let block = Box::<dyn BlockTrait>::from(block); let registry_block = block.as_registry_block(); - if matches!( - registry_block, - azalea_registry::Block::Water | azalea_registry::Block::Lava - ) { + if matches!(registry_block, BlockKind::Water | BlockKind::Lava) { // can't mine fluids return BestToolResult { index: 0, @@ -107,7 +104,7 @@ pub fn accurate_best_tool_in_hotbar_for_block( ItemStack::Empty => { this_item_speed = Some(azalea_entity::mining::get_mine_progress( block.as_ref(), - azalea_registry::Item::Air, + ItemKind::Air, fluid_on_eyes, physics, attributes, diff --git a/azalea/src/container.rs b/azalea/src/container.rs index e82eeac8..c01b16be 100644 --- a/azalea/src/container.rs +++ b/azalea/src/container.rs @@ -37,12 +37,12 @@ pub trait ContainerClientExt { /// configure this. /// /// ``` - /// # use azalea::{prelude::*, registry::Block}; + /// # use azalea::{prelude::*, registry::builtin::BlockKind}; /// # async fn example(mut bot: azalea::Client) { /// let target_pos = bot /// .world() /// .read() - /// .find_block(bot.position(), &Block::Chest.into()); + /// .find_block(bot.position(), &BlockKind::Chest.into()); /// let Some(target_pos) = target_pos else { /// bot.chat("no chest found"); /// return; diff --git a/azalea/src/lib.rs b/azalea/src/lib.rs index bf188791..8440e31f 100644 --- a/azalea/src/lib.rs +++ b/azalea/src/lib.rs @@ -15,24 +15,33 @@ use std::{net::SocketAddr, time::Duration}; use app::Plugins; pub use azalea_auth as auth; -pub use azalea_block as blocks; +pub use azalea_block as block; +#[doc(hidden)] +#[deprecated = "moved to `azalea::block`"] +pub mod blocks { + pub type BlockStates = azalea_block::BlockStates; + pub type BlockState = azalea_block::BlockState; + pub trait BlockTrait: azalea_block::BlockTrait {} + // azalea_block has more items but rust doesn't mark them deprecated if we + // `use azalea_block::*`, so hopefully the three types above are enough for + // most users :( +} + pub use azalea_brigadier as brigadier; pub use azalea_buf as buf; pub use azalea_chat::FormattedText; pub use azalea_client::*; pub use azalea_core as core; -#[deprecated(note = "renamed to `Identifier`.")] -#[expect(deprecated)] -pub use azalea_core::resource_location::ResourceLocation; // these are re-exported on this level because they're very common -pub use azalea_core::{ - identifier::Identifier, - position::{BlockPos, Vec3}, -}; +pub use azalea_core::position::{BlockPos, Vec3}; pub use azalea_entity as entity; pub use azalea_physics as physics; pub use azalea_protocol as protocol; pub use azalea_registry as registry; +#[doc(hidden)] +#[deprecated(note = "renamed to `Identifier`.")] +pub use azalea_registry::identifier::Identifier as ResourceLocation; +pub use azalea_registry::identifier::Identifier; pub use azalea_world as world; pub use bevy_app as app; use bevy_app::AppExit; diff --git a/azalea/src/pathfinder/extras/utils.rs b/azalea/src/pathfinder/extras/utils.rs index 30b1ae52..3ae0b457 100644 --- a/azalea/src/pathfinder/extras/utils.rs +++ b/azalea/src/pathfinder/extras/utils.rs @@ -130,7 +130,7 @@ mod tests { let set_solid_block_at = |x, y, z| { partial_world.chunks.set_block_state( &BlockPos::new(x, y, z), - azalea_registry::Block::Stone.into(), + BlockKind::Stone.into(), &world, ); }; diff --git a/azalea/src/pathfinder/mining.rs b/azalea/src/pathfinder/mining.rs index a985ca71..c592831d 100644 --- a/azalea/src/pathfinder/mining.rs +++ b/azalea/src/pathfinder/mining.rs @@ -4,6 +4,7 @@ use azalea_block::{ BlockState, BlockStates, block_state::BlockStateIntegerRepr, properties::Waterlogged, }; use azalea_inventory::Menu; +use azalea_registry::builtin::BlockKind; use nohash_hasher::IntMap; use super::costs::BLOCK_BREAK_ADDITIONAL_PENALTY; @@ -21,8 +22,8 @@ pub struct MiningCache { impl MiningCache { pub fn new(inventory_menu: Option<Menu>) -> Self { - let water_block_states = BlockStates::from(azalea_registry::Block::Water); - let lava_block_states = BlockStates::from(azalea_registry::Block::Lava); + let water_block_states = BlockStates::from(BlockKind::Water); + let lava_block_states = BlockStates::from(BlockKind::Lava); let mut water_block_state_range_min = BlockStateIntegerRepr::MAX; let mut water_block_state_range_max = BlockStateIntegerRepr::MIN; @@ -41,29 +42,29 @@ impl MiningCache { let lava_block_state_range = lava_block_state_range_min..=lava_block_state_range_max; let mut falling_blocks: Vec<BlockState> = vec![ - azalea_registry::Block::Sand.into(), - azalea_registry::Block::RedSand.into(), - azalea_registry::Block::Gravel.into(), - azalea_registry::Block::Anvil.into(), - azalea_registry::Block::ChippedAnvil.into(), - azalea_registry::Block::DamagedAnvil.into(), + BlockKind::Sand.into(), + BlockKind::RedSand.into(), + BlockKind::Gravel.into(), + BlockKind::Anvil.into(), + BlockKind::ChippedAnvil.into(), + BlockKind::DamagedAnvil.into(), // concrete powders - azalea_registry::Block::WhiteConcretePowder.into(), - azalea_registry::Block::OrangeConcretePowder.into(), - azalea_registry::Block::MagentaConcretePowder.into(), - azalea_registry::Block::LightBlueConcretePowder.into(), - azalea_registry::Block::YellowConcretePowder.into(), - azalea_registry::Block::LimeConcretePowder.into(), - azalea_registry::Block::PinkConcretePowder.into(), - azalea_registry::Block::GrayConcretePowder.into(), - azalea_registry::Block::LightGrayConcretePowder.into(), - azalea_registry::Block::CyanConcretePowder.into(), - azalea_registry::Block::PurpleConcretePowder.into(), - azalea_registry::Block::BlueConcretePowder.into(), - azalea_registry::Block::BrownConcretePowder.into(), - azalea_registry::Block::GreenConcretePowder.into(), - azalea_registry::Block::RedConcretePowder.into(), - azalea_registry::Block::BlackConcretePowder.into(), + BlockKind::WhiteConcretePowder.into(), + BlockKind::OrangeConcretePowder.into(), + BlockKind::MagentaConcretePowder.into(), + BlockKind::LightBlueConcretePowder.into(), + BlockKind::YellowConcretePowder.into(), + BlockKind::LimeConcretePowder.into(), + BlockKind::PinkConcretePowder.into(), + BlockKind::GrayConcretePowder.into(), + BlockKind::LightGrayConcretePowder.into(), + BlockKind::CyanConcretePowder.into(), + BlockKind::PurpleConcretePowder.into(), + BlockKind::BlueConcretePowder.into(), + BlockKind::BrownConcretePowder.into(), + BlockKind::GreenConcretePowder.into(), + BlockKind::RedConcretePowder.into(), + BlockKind::BlackConcretePowder.into(), ]; falling_blocks.sort_unstable_by_key(|block| block.id()); diff --git a/azalea/src/pathfinder/simulation.rs b/azalea/src/pathfinder/simulation.rs index df049b3e..957cef37 100644 --- a/azalea/src/pathfinder/simulation.rs +++ b/azalea/src/pathfinder/simulation.rs @@ -6,12 +6,12 @@ use azalea_client::{ PhysicsState, interact::BlockStatePredictionHandler, local_player::LocalGameMode, mining::MineBundle, }; -use azalea_core::{game_type::GameMode, identifier::Identifier, position::Vec3, tick::GameTick}; +use azalea_core::{game_type::GameMode, position::Vec3, tick::GameTick}; use azalea_entity::{ Attributes, LookDirection, Physics, Position, dimensions::EntityDimensions, inventory::Inventory, }; -use azalea_registry::EntityKind; +use azalea_registry::{builtin::EntityKind, identifier::Identifier}; use azalea_world::{ChunkStorage, Instance, InstanceContainer, MinecraftEntityId, PartialInstance}; use bevy_app::App; use bevy_ecs::prelude::*; @@ -97,7 +97,7 @@ fn create_simulation_player_complete_bundle( azalea_entity::EntityBundle::new( Uuid::nil(), *player.position, - azalea_registry::EntityKind::Player, + EntityKind::Player, instance_name, ), azalea_client::local_player::InstanceHolder { diff --git a/azalea/src/pathfinder/tests.rs b/azalea/src/pathfinder/tests.rs index 7b33ca18..8c573405 100644 --- a/azalea/src/pathfinder/tests.rs +++ b/azalea/src/pathfinder/tests.rs @@ -7,6 +7,7 @@ use std::{ use azalea_block::BlockState; use azalea_core::position::{BlockPos, ChunkPos, Vec3}; +use azalea_registry::builtin::BlockKind; use azalea_world::{Chunk, ChunkStorage, PartialChunkStorage}; use super::{ @@ -66,7 +67,7 @@ fn setup_simulation_world( partial_chunks.set(&chunk_pos, Some(Chunk::default()), &mut chunks); } for block_pos in solid_blocks { - chunks.set_block_state(*block_pos, azalea_registry::Block::Stone.into()); + chunks.set_block_state(*block_pos, BlockKind::Stone.into()); } for (block_pos, block_state) in extra_blocks { chunks.set_block_state(*block_pos, *block_state); @@ -285,17 +286,11 @@ fn test_mine_through_non_colliding_block() { BlockPos::new(0, 72, 1), &[BlockPos::new(0, 71, 1)], &[ - ( - BlockPos::new(0, 71, 0), - azalea_registry::Block::SculkVein.into(), - ), - ( - BlockPos::new(0, 70, 0), - azalea_registry::Block::GrassBlock.into(), - ), + (BlockPos::new(0, 71, 0), BlockKind::SculkVein.into()), + (BlockPos::new(0, 70, 0), BlockKind::GrassBlock.into()), // this is an extra check to make sure that we don't accidentally break the block // below (since tnt will break instantly) - (BlockPos::new(0, 69, 0), azalea_registry::Block::Tnt.into()), + (BlockPos::new(0, 69, 0), BlockKind::Tnt.into()), ], ); diff --git a/azalea/src/pathfinder/world.rs b/azalea/src/pathfinder/world.rs index 0f1a8305..980cda9a 100644 --- a/azalea/src/pathfinder/world.rs +++ b/azalea/src/pathfinder/world.rs @@ -9,7 +9,7 @@ use azalea_core::{ position::{BlockPos, ChunkPos, ChunkSectionBlockPos, ChunkSectionPos}, }; use azalea_physics::collision::BlockWithShape; -use azalea_registry::{Block, tags}; +use azalea_registry::{builtin::BlockKind, tags}; use azalea_world::{Instance, palette::PalettedContainer}; use parking_lot::RwLock; @@ -531,8 +531,8 @@ pub fn is_block_state_passable(block_state: BlockState) -> bool { if !block_state.is_collision_shape_empty() { return false; } - let registry_block = Block::from(block_state); - if registry_block == Block::Water { + let registry_block = BlockKind::from(block_state); + if registry_block == BlockKind::Water { return false; } if block_state @@ -541,26 +541,26 @@ pub fn is_block_state_passable(block_state: BlockState) -> bool { { return false; } - if registry_block == Block::Lava { + if registry_block == BlockKind::Lava { return false; } // block.waterlogged currently doesn't account for seagrass and some other water // blocks - if block_state == Block::Seagrass.into() { + if block_state == BlockKind::Seagrass.into() { return false; } // don't walk into fire - if registry_block == Block::Fire || registry_block == Block::SoulFire { + if registry_block == BlockKind::Fire || registry_block == BlockKind::SoulFire { return false; } - if registry_block == Block::PowderSnow { + if registry_block == BlockKind::PowderSnow { // we can't jump out of powder snow return false; } - if registry_block == Block::SweetBerryBush { + if registry_block == BlockKind::SweetBerryBush { // these hurt us return false; } @@ -588,9 +588,9 @@ pub fn is_block_state_solid(block_state: BlockState) -> bool { return true; } - let block = Block::from(block_state); + let block = BlockKind::from(block_state); // solid enough - if matches!(block, Block::DirtPath | Block::Farmland) { + if matches!(block, BlockKind::DirtPath | BlockKind::Farmland) { return true; } @@ -604,7 +604,7 @@ pub fn is_block_state_standable(block_state: BlockState) -> bool { return true; } - let block = Block::from(block_state); + let block = BlockKind::from(block_state); if tags::blocks::SLABS.contains(&block) || tags::blocks::STAIRS.contains(&block) { return true; } @@ -626,9 +626,11 @@ mod tests { partial_world .chunks .set(&ChunkPos { x: 0, z: 0 }, Some(Chunk::default()), &mut world); - partial_world - .chunks - .set_block_state(BlockPos::new(0, 0, 0), Block::Stone.into(), &world); + partial_world.chunks.set_block_state( + BlockPos::new(0, 0, 0), + BlockKind::Stone.into(), + &world, + ); partial_world .chunks .set_block_state(BlockPos::new(0, 1, 0), BlockState::AIR, &world); @@ -645,9 +647,11 @@ mod tests { partial_world .chunks .set(&ChunkPos { x: 0, z: 0 }, Some(Chunk::default()), &mut world); - partial_world - .chunks - .set_block_state(BlockPos::new(0, 0, 0), Block::Stone.into(), &world); + partial_world.chunks.set_block_state( + BlockPos::new(0, 0, 0), + BlockKind::Stone.into(), + &world, + ); partial_world .chunks .set_block_state(BlockPos::new(0, 1, 0), BlockState::AIR, &world); @@ -664,9 +668,11 @@ mod tests { partial_world .chunks .set(&ChunkPos { x: 0, z: 0 }, Some(Chunk::default()), &mut world); - partial_world - .chunks - .set_block_state(BlockPos::new(0, 0, 0), Block::Stone.into(), &world); + partial_world.chunks.set_block_state( + BlockPos::new(0, 0, 0), + BlockKind::Stone.into(), + &world, + ); partial_world .chunks .set_block_state(BlockPos::new(0, 1, 0), BlockState::AIR, &world); diff --git a/codegen/genblocks.py b/codegen/genblocks.py index d4d4b9ae..78cc56e6 100644 --- a/codegen/genblocks.py +++ b/codegen/genblocks.py @@ -7,21 +7,24 @@ import lib.download import lib.extract import lib.utils + def generate(version_id): - pumpkin_block_datas = lib.extract.get_pumpkin_data(version_id, 'blocks') + pumpkin_block_datas = lib.extract.get_pumpkin_data(version_id, "blocks") burger_data = lib.extract.get_burger_data_for_version(version_id) block_states_report = lib.extract.get_block_states_report(version_id) - registries = lib.extract.get_registries_report(version_id) + registries = lib.extract.get_builtin_registries_report(version_id) ordered_blocks = lib.code.blocks.get_ordered_blocks(registries) - lib.code.blocks.generate_blocks(block_states_report, pumpkin_block_datas, ordered_blocks, burger_data) + lib.code.blocks.generate_blocks( + block_states_report, pumpkin_block_datas, ordered_blocks, burger_data + ) lib.code.shapes.generate_block_shapes(pumpkin_block_datas, block_states_report) lib.code.utils.fmt() - print('Done!') + print("Done!") -if __name__ == '__main__': +if __name__ == "__main__": generate(lib.code.version.get_version_id()) diff --git a/codegen/genregistries.py b/codegen/genregistries.py index d34cce97..ce91ee81 100644 --- a/codegen/genregistries.py +++ b/codegen/genregistries.py @@ -7,20 +7,24 @@ import lib.extract def generate(version_id: str): - registries = lib.extract.get_registries_report(version_id) + builtin_registries = lib.extract.get_builtin_registries_report(version_id) + data_registries = lib.extract.get_data_registries(version_id) - lib.code.registry.generate_registries(registries) - lib.code.inventory.update_menus(registries["minecraft:menu"]["entries"]) + lib.code.registry.generate_builtin_registries(builtin_registries) + lib.code.registry.generate_data_registries(data_registries) + lib.code.inventory.update_menus(builtin_registries["minecraft:menu"]["entries"]) block_tags = lib.extract.get_registry_tags(version_id, "block") item_tags = lib.extract.get_registry_tags(version_id, "item") fluid_tags = lib.extract.get_registry_tags(version_id, "fluid") entity_tags = lib.extract.get_registry_tags(version_id, "entity_type") - lib.code.tags.generate_tags(block_tags, "blocks", "Block") - lib.code.tags.generate_tags(item_tags, "items", "Item") - lib.code.tags.generate_tags(fluid_tags, "fluids", "Fluid") - lib.code.tags.generate_tags(entity_tags, "entities", "EntityKind") + lib.code.tags.generate_tags(builtin_registries, block_tags, "blocks", "block") + lib.code.tags.generate_tags(builtin_registries, item_tags, "items", "item") + lib.code.tags.generate_tags(builtin_registries, fluid_tags, "fluids", "fluid") + lib.code.tags.generate_tags( + builtin_registries, entity_tags, "entities", "entity_type" + ) lib.code.utils.fmt() diff --git a/codegen/lib/code/blocks.py b/codegen/lib/code/blocks.py index 9f783690..84d9fffb 100644 --- a/codegen/lib/code/blocks.py +++ b/codegen/lib/code/blocks.py @@ -6,7 +6,7 @@ BLOCKS_RS_DIR = get_dir_location("../azalea-block/src/generated.rs") # - Property: A property of a block, like "direction" # - Variant: A potential state of a property, like "up" # - State: A possible state of a block, a combination of variants -# - Block: Has properties and states. +# - BlockKind: Has properties and states. def generate_blocks( @@ -85,7 +85,7 @@ def generate_blocks( new_make_block_states_macro_code.append(" },") - # Block codegen + # BlockKind codegen new_make_block_states_macro_code.append(" Blocks => {") for block_id in ordered_blocks: block_data_report = blocks_report["minecraft:" + block_id] diff --git a/codegen/lib/code/data_components.py b/codegen/lib/code/data_components.py index d4c13118..38060662 100644 --- a/codegen/lib/code/data_components.py +++ b/codegen/lib/code/data_components.py @@ -47,7 +47,7 @@ def generate(version_id: str): def get_expected_variants(version_id: str): expected_variants = [] - registries = lib.extract.get_registries_report(version_id) + registries = lib.extract.get_builtin_registries_report(version_id) registry = registries["minecraft:data_component_type"] registry_entries = sorted( @@ -182,7 +182,7 @@ use std::collections::HashMap; use azalea_chat::translatable_component::TranslatableComponent; use azalea_core::attribute_modifier_operation::AttributeModifierOperation; use azalea_registry::{ - Attribute, Block, DataRegistry, EntityKind, HolderSet, Item, MobEffect, SoundEvent, + Attribute, BlockKind, DataRegistry, EntityKind, HolderSet, ItemKind, MobEffect, SoundEvent, }; use simdnbt::owned::NbtCompound; @@ -207,7 +207,7 @@ use crate::{ component_value ) - registries = lib.extract.get_registries_report(version_id) + registries = lib.extract.get_builtin_registries_report(version_id) item_resource_id_to_protocol_id = {} item_resource_ids = [None] * len(registries["minecraft:item"]["entries"]) for item_resource_id, item_data in registries["minecraft:item"]["entries"].items(): @@ -358,7 +358,7 @@ use crate::{ list(python_value.values())[0], target_rust_type ) elif target_rust_type == "ItemStack": - item_rust_value = python_to_rust_value(python_value["id"], "Item") + item_rust_value = python_to_rust_value(python_value["id"], "ItemKind") count = python_value["count"] if count == 1: return f"ItemStack::from({item_rust_value})" @@ -430,7 +430,7 @@ use crate::{ 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))" + return "DamageType::Registry(azalea_registry::data::DamageKind::new_raw(0))" else: # enum variant return f"{target_rust_type}::{lib.utils.to_camel_case(python_value.split(':')[-1])}" @@ -464,9 +464,9 @@ use crate::{ tag_name = lib.utils.to_snake_case(v.split(":")[-1]).upper() if inner_type == "EntityKind": tag_module = "entities" - elif inner_type == "Item": + elif inner_type == "ItemKind": tag_module = "items" - elif inner_type == "Block": + elif inner_type == "BlockKind": tag_module = "blocks" else: tag_module = "FIXME_UNKNOWN_MODULE" @@ -561,7 +561,9 @@ use crate::{ if len(values_set) == 1: # always returns the same value code.append(f"impl DefaultableComponent for {component_struct_name} {{") - code.append(" fn default_for_item(_item: Item) -> Option<Self> {") + code.append( + " fn default_for_item(_item: ItemKind) -> Option<Self> {" + ) value = next(iter(values_set)) code.append(f" Some({transform_value_fn(value)})") code.append(" }") @@ -587,7 +589,7 @@ use crate::{ code.append(static_def_line) code.append(f"impl DefaultableComponent for {component_struct_name} {{") - code.append(" fn default_for_item(item: Item) -> Option<Self> {") + code.append(" fn default_for_item(item: ItemKind) -> Option<Self> {") code.append(f" let value = {static_values_name}[item as usize];") if none_value_is_used: code.append(f" if value == {none_value} {{") @@ -599,18 +601,22 @@ use crate::{ elif includes_every_item_but_mostly_same_values: code.append(f"impl DefaultableComponent for {component_struct_name} {{") if default_values_count_except_most_common > 0: - code.append(" fn default_for_item(item: Item) -> Option<Self> {") + code.append(" fn default_for_item(item: ItemKind) -> Option<Self> {") code.append(" let value = match item {") for item_resource_id, value in item_defaults.items(): if value == most_common_default_value: continue item_variant_name = lib.utils.to_camel_case(item_resource_id) - code.append(f" Item::{item_variant_name} => {value},") + code.append( + f" ItemKind::{item_variant_name} => {value}," + ) code.append(f" _ => {most_common_default_value},") code.append(" };") code.append(f" Some({transform_value_fn('value')})") else: - code.append(" fn default_for_item(_item: Item) -> Option<Self> {") + code.append( + " fn default_for_item(_item: ItemKind) -> Option<Self> {" + ) code.append( f" Some({transform_value_fn(most_common_default_value)})" ) @@ -618,11 +624,11 @@ use crate::{ code.append("}") else: code.append(f"impl DefaultableComponent for {component_struct_name} {{") - code.append(" fn default_for_item(item: Item) -> Option<Self> {") + code.append(" fn default_for_item(item: ItemKind) -> Option<Self> {") code.append(" let value = match item {") for item_resource_id, value in item_defaults.items(): item_variant_name = lib.utils.to_camel_case(item_resource_id) - code.append(f" Item::{item_variant_name} => {value},") + code.append(f" ItemKind::{item_variant_name} => {value},") code.append(" _ => return None,") code.append(" };") code.append(f" Some({transform_value_fn('value')})") diff --git a/codegen/lib/code/entity.py b/codegen/lib/code/entity.py index e9da0404..2fc66b0f 100644 --- a/codegen/lib/code/entity.py +++ b/codegen/lib/code/entity.py @@ -114,7 +114,7 @@ use azalea_core::{ position::{BlockPos, Vec3f32}, }; use azalea_inventory::{ItemStack, components}; -use azalea_registry::DataRegistry; +use azalea_registry::{DataRegistry, builtin::EntityKind}; use bevy_ecs::{bundle::Bundle, component::Component}; use derive_more::{Deref, DerefMut}; use thiserror::Error; @@ -456,15 +456,15 @@ impl From<EntityDataValue> for UpdateMetadataError { default = "simdnbt::owned::NbtCompound::default()" # elif type_name == 'CatVariant': # # TODO: the default should be Tabby but we don't have a way to get that from here - # default = 'azalea_registry::CatVariant::new_raw(0)' + # default = 'azalea_registry::data::CatVariant::new_raw(0)' # elif type_name == 'PaintingVariant': - # default = 'azalea_registry::PaintingVariant::Kebab' + # default = 'azalea_registry::data::PaintingVariant::Kebab' # elif type_name == 'FrogVariant': - # default = 'azalea_registry::FrogVariant::Temperate' + # default = 'azalea_registry::data::FrogVariant::Temperate' elif type_name.endswith("Variant"): - default = f"azalea_registry::{type_name}::new_raw(0)" + default = f"azalea_registry::data::{type_name}::new_raw(0)" elif type_name == "VillagerData": - default = "VillagerData { kind: azalea_registry::VillagerKind::Plains, profession: azalea_registry::VillagerProfession::None, level: 0 }" + default = "VillagerData { kind: azalea_registry::builtin::VillagerKind::Plains, profession: azalea_registry::builtin::VillagerProfession::None, level: 0 }" else: default = ( f"{type_name}::default()" @@ -581,7 +581,7 @@ impl From<EntityDataValue> for UpdateMetadataError { code.append( """pub fn apply_metadata( entity: &mut bevy_ecs::system::EntityCommands, - entity_kind: azalea_registry::EntityKind, + entity_kind: EntityKind, items: Vec<EntityDataItem>, ) -> Result<(), UpdateMetadataError> { match entity_kind {""" @@ -591,7 +591,7 @@ impl From<EntityDataValue> for UpdateMetadataError { # not actually an entity continue struct_name: str = upper_first_letter(to_camel_case(entity_id)) - code.append(f" azalea_registry::EntityKind::{struct_name} => {{") + code.append(f" EntityKind::{struct_name} => {{") code.append(" for d in items {") code.append(f" {struct_name}::apply_metadata(entity, d)?;") code.append(" }") @@ -601,15 +601,15 @@ impl From<EntityDataValue> for UpdateMetadataError { code.append("}") code.append("") - # pub fn apply_default_metadata(entity: &mut bevy_ecs::system::EntityCommands, kind: azalea_registry::EntityKind) { + # pub fn apply_default_metadata(entity: &mut bevy_ecs::system::EntityCommands, kind: EntityKind) { # match kind { - # azalea_registry::EntityKind::AreaEffectCloud => { + # EntityKind::AreaEffectCloud => { # entity.insert(AreaEffectCloudMetadataBundle::default()); # } # } # } code.append( - "pub fn apply_default_metadata(entity: &mut bevy_ecs::system::EntityCommands, kind: azalea_registry::EntityKind) {" + "pub fn apply_default_metadata(entity: &mut bevy_ecs::system::EntityCommands, kind: EntityKind) {" ) code.append(" match kind {") for entity_id in burger_entity_metadata: @@ -617,7 +617,7 @@ impl From<EntityDataValue> for UpdateMetadataError { # not actually an entity continue struct_name: str = upper_first_letter(to_camel_case(entity_id)) - code.append(f" azalea_registry::EntityKind::{struct_name} => {{") + code.append(f" EntityKind::{struct_name} => {{") code.append( f" entity.insert({struct_name}MetadataBundle::default());" ) diff --git a/codegen/lib/code/registry.py b/codegen/lib/code/registry.py index 84d613ba..a01dc845 100644 --- a/codegen/lib/code/registry.py +++ b/codegen/lib/code/registry.py @@ -1,16 +1,17 @@ from lib.utils import get_dir_location, to_camel_case -REGISTRIES_DIR = get_dir_location("../azalea-registry/src/lib.rs") +BUILTIN_REGISTRIES_DIR = get_dir_location("../azalea-registry/src/builtin.rs") +DATA_REGISTRIES_DIR = get_dir_location("../azalea-registry/src/data.rs") -def generate_registries(registries: dict): - with open(REGISTRIES_DIR, "r") as f: +def generate_builtin_registries(registries: dict): + with open(BUILTIN_REGISTRIES_DIR, "r") as f: code = f.read().split("\n") existing_registry_enum_names = set() for registry_name, registry in registries.items(): - # registry!(Block, { + # registry!(BlockKind, { # Air => "minecraft:air", # Stone => "minecraft:stone" # }); @@ -68,18 +69,91 @@ def generate_registries(registries: dict): else: i += 1 - with open(REGISTRIES_DIR, "w") as f: + with open(BUILTIN_REGISTRIES_DIR, "w") as f: + f.write("\n".join(code)) + + +# data_registries looks like { "enchantment": [ "aqua_affinity", ... ] } +def generate_data_registries(data_registries: dict): + with open(DATA_REGISTRIES_DIR, "r") as f: + code = f.read().split("\n") + + existing_registry_struct_names = set() + for registry_name, registry_entries in data_registries.items(): + registry_enum_name = registry_name_to_enum_name(registry_name.split("/")[-1]) + existing_registry_struct_names.add(registry_enum_name) + + # delete the unused data registries + i = 0 + while i < len(code): + if code[i] == "data_registry! {": + i += 1 + struct_name = code[i].split(" ")[0] + if struct_name not in existing_registry_struct_names: + print("removing data registry", struct_name) + i -= 1 + while code[i] != "}": + code.pop(i) + code.pop(i) + # close the data_registry! block + code.pop(i) + else: + i += 1 + + for registry_name, registry_entries in data_registries.items(): + # data_registry! { + # Enchantment => "enchantment", + # enum EnchantmentKey { + # AquaAffinity => "minecraft:aqua_affinity", + # } + # } + + registry_enum_name = registry_name_to_enum_name(registry_name.split("/")[-1]) + + registry_code = [] + registry_code.append(f'{registry_enum_name} => "{registry_name}",') + registry_code.append(f"enum {registry_enum_name}Key {{") + registry_entries.sort() + for variant_name in registry_entries: + variant_struct_name = to_camel_case(variant_name.split(":")[-1]) + registry_code.append(f' {variant_struct_name} => "{variant_name}",') + registry_code.append("}") + + # when we find a "data_registry! {" line, find the next line that starts + # with "enum <name>" and replace that until we find a line that's "}" + found = False + in_registry_macro = False + for i, line in enumerate(list(code)): + if not in_registry_macro and line == "data_registry! {": + in_registry_macro = True + elif in_registry_macro and line == registry_code[1]: + # found it, now delete until we get to "}" + while code[i] != "}": + code.pop(i) + code[i] = "\n".join(registry_code[1:]) + found = True + break + if not found: + code.append("data_registry! {") + code.append("\n".join(registry_code)) + code.append("}") + code.append("") + + with open(DATA_REGISTRIES_DIR, "w") as f: f.write("\n".join(code)) def registry_name_to_enum_name(registry_name: str) -> str: registry_name = registry_name.split(":")[-1] - if registry_name.endswith("_type"): + if registry_name == "block_type": + # avoid conflicting with BlockKind + registry_name = "abstract_block_kind" + elif registry_name.endswith("_type"): # change _type to _kind because that's Rustier (and because _type # is a reserved keyword) registry_name = registry_name[:-5] + "_kind" - elif registry_name in {"menu"}: + elif registry_name in {"menu", "block", "item"}: registry_name += "_kind" return to_camel_case(registry_name) diff --git a/codegen/lib/code/tags.py b/codegen/lib/code/tags.py index d3e561df..ff5a4061 100644 --- a/codegen/lib/code/tags.py +++ b/codegen/lib/code/tags.py @@ -1,34 +1,48 @@ +from lib.code.registry import registry_name_to_enum_name from lib.utils import to_snake_case, upper_first_letter, get_dir_location, to_camel_case -REGISTRIES_DIR = get_dir_location("../azalea-registry/src/tags") +TAGS_DIR = get_dir_location("../azalea-registry/src/tags") -def generate_tags(registries: dict, file_name: str, struct_name: str): - tags_dir = f"{REGISTRIES_DIR}/{file_name}.rs" +def generate_tags(registries: dict, tags: dict, file_name: str, registry_name: str): + struct_name = registry_name_to_enum_name(registry_name) - generated = f"""// This file was @generated by codegen/lib/code/tags.py, don't edit it manually! + tags_dir = f"{TAGS_DIR}/{file_name}.rs" -use std::{{collections::HashSet, sync::LazyLock}}; + generated = f"""// This file was @generated by codegen/lib/code/tags.py, don't edit it manually! +use std::sync::LazyLock; -use crate::{struct_name}; +use crate::{{builtin::{struct_name}, tags::RegistryTag}}; """ - for tag_name, tag in sorted(registries.items(), key=lambda x: x[0]): - tag_name = tag_name.replace("/", "_") - static_set_name = to_snake_case(tag_name).upper() - generated += f"pub static {static_set_name}: LazyLock<HashSet<{struct_name}>> = LazyLock::new(|| HashSet::from_iter([" + protocol_ids = {} + for k, v in registries["minecraft:" + registry_name]["entries"].items(): + protocol_ids[k.split(":")[1]] = v["protocol_id"] + for tag_name, tag in sorted(tags.items(), key=lambda x: x[0]): + entries = [] queue = tag["values"].copy() while queue != []: - item = queue.pop(0) - namespace, item_name = item.split(":") + ident = queue.pop(0) + namespace, entry_name = ident.split(":") if namespace[0] == "#": - queue += registries[item_name]["values"] + queue += tags[entry_name]["values"] continue + entries.append(entry_name) + + tag_name = tag_name.replace("/", "_") + static_set_name = to_snake_case(tag_name).upper() + generated += f"pub static {static_set_name}: LazyLock<RegistryTag<{struct_name}>> = LazyLock::new(|| RegistryTag::new(vec![" + + # this is important because we binary search registries in some cases + # and they need to be sorted by their rust Ord order + entries.sort(key=lambda e: protocol_ids[e]) + + for entry_name in entries: generated += ( - f"{struct_name}::{upper_first_letter(to_camel_case(item_name))},\n" + f"{struct_name}::{upper_first_letter(to_camel_case(entry_name))},\n" ) generated += "]));\n" diff --git a/codegen/lib/extract.py b/codegen/lib/extract.py index b575b697..b07e17ba 100644 --- a/codegen/lib/extract.py +++ b/codegen/lib/extract.py @@ -34,7 +34,7 @@ def get_block_states_report(version_id: str): return get_report(version_id, "blocks") -def get_registries_report(version_id: str): +def get_builtin_registries_report(version_id: str): return get_report(version_id, "registries") @@ -73,6 +73,33 @@ def get_registry_tags(version_id: str, name: str): return tags +# note that these are different from "builtin" registries +def get_data_registries(version_id: str): + generate_data_from_server_jar(version_id) + data_registries_dir = get_dir_location( + f"__cache__/generated-{version_id}/data/minecraft" + ) + registries = {} + + def add_entries_in_dir(parent_dir, registry_name): + entries = [] + for variant_dir in os.listdir(os.path.join(parent_dir, registry_name)): + if not variant_dir.endswith(".json"): + continue + entries.append(variant_dir[:-5]) + if len(entries) > 0: + registries[registry_name] = entries + + for registry_name in os.listdir(data_registries_dir): + add_entries_in_dir(data_registries_dir, registry_name) + for registry_name in os.listdir(os.path.join(data_registries_dir, "worldgen")): + if registry_name != "biome": + continue + add_entries_in_dir(data_registries_dir, os.path.join("worldgen", registry_name)) + + return registries + + python_command = None diff --git a/codegen/migrate.py b/codegen/migrate.py index 8695024e..643ea92c 100644 --- a/codegen/migrate.py +++ b/codegen/migrate.py @@ -43,7 +43,7 @@ print("Generating blocks and shapes...") new_pumpkin_block_datas = lib.extract.get_pumpkin_data(new_version_id, "blocks") new_block_states_report = lib.extract.get_block_states_report(new_version_id) -new_registries = lib.extract.get_registries_report(new_version_id) +new_registries = lib.extract.get_builtin_registries_report(new_version_id) new_ordered_blocks = lib.code.blocks.get_ordered_blocks(new_registries) lib.code.blocks.generate_blocks( |
