// This file was @generated by codegen/lib/code/components.py, don't edit it // manually! #![allow(clippy::all)] use std::collections::HashMap; use azalea_chat::translatable_component::TranslatableComponent; use azalea_core::attribute_modifier_operation::AttributeModifierOperation; use azalea_registry::{ DataRegistry, HolderSet, builtin::{Attribute, BlockKind, EntityKind, ItemKind, MobEffect, SoundEvent}, }; use simdnbt::owned::NbtCompound; use crate::{ ItemStack, components::*, default_components::DefaultableComponent, item::consume_effect::ConsumeEffect, }; impl DefaultableComponent for AttackRange { fn default_for_item(item: ItemKind) -> Option { let value = match item { ItemKind::CopperSpear => AttackRange { hitbox_margin: 0.125, max_creative_reach: 6.5, max_reach: 4.5, min_creative_reach: 2.0, min_reach: 2.0, mob_factor: 0.5, }, ItemKind::DiamondSpear => AttackRange { hitbox_margin: 0.125, max_creative_reach: 6.5, max_reach: 4.5, min_creative_reach: 2.0, min_reach: 2.0, mob_factor: 0.5, }, ItemKind::GoldenSpear => AttackRange { hitbox_margin: 0.125, max_creative_reach: 6.5, max_reach: 4.5, min_creative_reach: 2.0, min_reach: 2.0, mob_factor: 0.5, }, ItemKind::IronSpear => AttackRange { hitbox_margin: 0.125, max_creative_reach: 6.5, max_reach: 4.5, min_creative_reach: 2.0, min_reach: 2.0, mob_factor: 0.5, }, ItemKind::NetheriteSpear => AttackRange { hitbox_margin: 0.125, max_creative_reach: 6.5, max_reach: 4.5, min_creative_reach: 2.0, min_reach: 2.0, mob_factor: 0.5, }, ItemKind::StoneSpear => AttackRange { hitbox_margin: 0.125, max_creative_reach: 6.5, max_reach: 4.5, min_creative_reach: 2.0, min_reach: 2.0, mob_factor: 0.5, }, ItemKind::WoodenSpear => AttackRange { hitbox_margin: 0.125, max_creative_reach: 6.5, max_reach: 4.5, min_creative_reach: 2.0, min_reach: 2.0, mob_factor: 0.5, }, _ => return None, }; Some(value) } } impl DefaultableComponent for AttributeModifiers { fn default_for_item(item: ItemKind) -> Option { let value = match item { ItemKind::CarvedPumpkin => vec![AttributeModifiersEntry { display: AttributeModifierDisplay::Hidden, slot: EquipmentSlotGroup::Head, kind: Attribute::WaypointTransmitRange, modifier: AttributeModifier { id: "minecraft:waypoint_transmit_range_hide".into(), amount: -1.0, operation: AttributeModifierOperation::AddMultipliedTotal, }, }], ItemKind::ChainmailBoots => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Feet, kind: Attribute::Armor, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.boots".into(), amount: 1.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Feet, kind: Attribute::ArmorToughness, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.boots".into(), amount: 0.0, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::ChainmailChestplate => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Chest, kind: Attribute::Armor, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.chestplate".into(), amount: 5.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Chest, kind: Attribute::ArmorToughness, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.chestplate".into(), amount: 0.0, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::ChainmailHelmet => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Head, kind: Attribute::Armor, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.helmet".into(), amount: 2.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Head, kind: Attribute::ArmorToughness, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.helmet".into(), amount: 0.0, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::ChainmailLeggings => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Legs, kind: Attribute::Armor, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.leggings".into(), amount: 4.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Legs, kind: Attribute::ArmorToughness, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.leggings".into(), amount: 0.0, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::CopperAxe => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_damage".into(), amount: 8.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackSpeed, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_speed".into(), amount: -3.200000047683716, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::CopperBoots => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Feet, kind: Attribute::Armor, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.boots".into(), amount: 1.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Feet, kind: Attribute::ArmorToughness, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.boots".into(), amount: 0.0, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::CopperChestplate => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Chest, kind: Attribute::Armor, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.chestplate".into(), amount: 4.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Chest, kind: Attribute::ArmorToughness, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.chestplate".into(), amount: 0.0, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::CopperHelmet => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Head, kind: Attribute::Armor, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.helmet".into(), amount: 2.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Head, kind: Attribute::ArmorToughness, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.helmet".into(), amount: 0.0, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::CopperHoe => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_damage".into(), amount: 0.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackSpeed, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_speed".into(), amount: -2.0, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::CopperHorseArmor => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Body, kind: Attribute::Armor, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.body".into(), amount: 4.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Body, kind: Attribute::ArmorToughness, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.body".into(), amount: 0.0, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::CopperLeggings => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Legs, kind: Attribute::Armor, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.leggings".into(), amount: 3.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Legs, kind: Attribute::ArmorToughness, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.leggings".into(), amount: 0.0, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::CopperNautilusArmor => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Body, kind: Attribute::Armor, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.body".into(), amount: 4.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Body, kind: Attribute::ArmorToughness, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.body".into(), amount: 0.0, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::CopperPickaxe => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_damage".into(), amount: 2.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackSpeed, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_speed".into(), amount: -2.799999952316284, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::CopperShovel => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_damage".into(), amount: 2.5, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackSpeed, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_speed".into(), amount: -3.0, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::CopperSpear => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_damage".into(), amount: 1.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackSpeed, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_speed".into(), amount: -2.8235294818878174, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::CopperSword => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_damage".into(), amount: 4.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackSpeed, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_speed".into(), amount: -2.4000000953674316, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::CreeperHead => vec![AttributeModifiersEntry { display: AttributeModifierDisplay::Hidden, slot: EquipmentSlotGroup::Head, kind: Attribute::WaypointTransmitRange, modifier: AttributeModifier { id: "minecraft:waypoint_transmit_range_hide".into(), amount: -1.0, operation: AttributeModifierOperation::AddMultipliedTotal, }, }], ItemKind::DiamondAxe => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_damage".into(), amount: 8.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackSpeed, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_speed".into(), amount: -3.0, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::DiamondBoots => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Feet, kind: Attribute::Armor, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.boots".into(), amount: 3.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Feet, kind: Attribute::ArmorToughness, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.boots".into(), amount: 2.0, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::DiamondChestplate => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Chest, kind: Attribute::Armor, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.chestplate".into(), amount: 8.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Chest, kind: Attribute::ArmorToughness, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.chestplate".into(), amount: 2.0, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::DiamondHelmet => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Head, kind: Attribute::Armor, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.helmet".into(), amount: 3.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Head, kind: Attribute::ArmorToughness, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.helmet".into(), amount: 2.0, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::DiamondHoe => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_damage".into(), amount: 0.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackSpeed, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_speed".into(), amount: 0.0, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::DiamondHorseArmor => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Body, kind: Attribute::Armor, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.body".into(), amount: 11.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Body, kind: Attribute::ArmorToughness, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.body".into(), amount: 2.0, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::DiamondLeggings => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Legs, kind: Attribute::Armor, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.leggings".into(), amount: 6.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Legs, kind: Attribute::ArmorToughness, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.leggings".into(), amount: 2.0, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::DiamondNautilusArmor => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Body, kind: Attribute::Armor, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.body".into(), amount: 11.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Body, kind: Attribute::ArmorToughness, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.body".into(), amount: 2.0, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::DiamondPickaxe => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_damage".into(), amount: 4.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackSpeed, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_speed".into(), amount: -2.799999952316284, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::DiamondShovel => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_damage".into(), amount: 4.5, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackSpeed, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_speed".into(), amount: -3.0, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::DiamondSpear => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_damage".into(), amount: 3.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackSpeed, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_speed".into(), amount: -3.0476189851760864, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::DiamondSword => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_damage".into(), amount: 6.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackSpeed, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_speed".into(), amount: -2.4000000953674316, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::DragonHead => vec![AttributeModifiersEntry { display: AttributeModifierDisplay::Hidden, slot: EquipmentSlotGroup::Head, kind: Attribute::WaypointTransmitRange, modifier: AttributeModifier { id: "minecraft:waypoint_transmit_range_hide".into(), amount: -1.0, operation: AttributeModifierOperation::AddMultipliedTotal, }, }], ItemKind::GoldenAxe => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_damage".into(), amount: 6.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackSpeed, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_speed".into(), amount: -3.0, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::GoldenBoots => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Feet, kind: Attribute::Armor, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.boots".into(), amount: 1.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Feet, kind: Attribute::ArmorToughness, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.boots".into(), amount: 0.0, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::GoldenChestplate => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Chest, kind: Attribute::Armor, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.chestplate".into(), amount: 5.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Chest, kind: Attribute::ArmorToughness, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.chestplate".into(), amount: 0.0, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::GoldenHelmet => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Head, kind: Attribute::Armor, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.helmet".into(), amount: 2.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Head, kind: Attribute::ArmorToughness, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.helmet".into(), amount: 0.0, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::GoldenHoe => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_damage".into(), amount: 0.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackSpeed, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_speed".into(), amount: -3.0, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::GoldenHorseArmor => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Body, kind: Attribute::Armor, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.body".into(), amount: 7.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Body, kind: Attribute::ArmorToughness, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.body".into(), amount: 0.0, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::GoldenLeggings => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Legs, kind: Attribute::Armor, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.leggings".into(), amount: 3.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Legs, kind: Attribute::ArmorToughness, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.leggings".into(), amount: 0.0, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::GoldenNautilusArmor => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Body, kind: Attribute::Armor, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.body".into(), amount: 7.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Body, kind: Attribute::ArmorToughness, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.body".into(), amount: 0.0, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::GoldenPickaxe => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_damage".into(), amount: 1.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackSpeed, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_speed".into(), amount: -2.799999952316284, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::GoldenShovel => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_damage".into(), amount: 1.5, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackSpeed, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_speed".into(), amount: -3.0, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::GoldenSpear => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_damage".into(), amount: 0.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackSpeed, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_speed".into(), amount: -2.9473683834075928, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::GoldenSword => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_damage".into(), amount: 3.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackSpeed, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_speed".into(), amount: -2.4000000953674316, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::IronAxe => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_damage".into(), amount: 8.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackSpeed, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_speed".into(), amount: -3.0999999046325684, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::IronBoots => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Feet, kind: Attribute::Armor, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.boots".into(), amount: 2.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Feet, kind: Attribute::ArmorToughness, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.boots".into(), amount: 0.0, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::IronChestplate => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Chest, kind: Attribute::Armor, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.chestplate".into(), amount: 6.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Chest, kind: Attribute::ArmorToughness, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.chestplate".into(), amount: 0.0, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::IronHelmet => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Head, kind: Attribute::Armor, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.helmet".into(), amount: 2.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Head, kind: Attribute::ArmorToughness, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.helmet".into(), amount: 0.0, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::IronHoe => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_damage".into(), amount: 0.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackSpeed, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_speed".into(), amount: -1.0, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::IronHorseArmor => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Body, kind: Attribute::Armor, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.body".into(), amount: 5.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Body, kind: Attribute::ArmorToughness, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.body".into(), amount: 0.0, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::IronLeggings => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Legs, kind: Attribute::Armor, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.leggings".into(), amount: 5.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Legs, kind: Attribute::ArmorToughness, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.leggings".into(), amount: 0.0, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::IronNautilusArmor => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Body, kind: Attribute::Armor, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.body".into(), amount: 5.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Body, kind: Attribute::ArmorToughness, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.body".into(), amount: 0.0, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::IronPickaxe => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_damage".into(), amount: 3.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackSpeed, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_speed".into(), amount: -2.799999952316284, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::IronShovel => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_damage".into(), amount: 3.5, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackSpeed, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_speed".into(), amount: -3.0, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::IronSpear => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_damage".into(), amount: 2.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackSpeed, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_speed".into(), amount: -2.9473683834075928, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::IronSword => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_damage".into(), amount: 5.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackSpeed, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_speed".into(), amount: -2.4000000953674316, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::LeatherBoots => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Feet, kind: Attribute::Armor, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.boots".into(), amount: 1.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Feet, kind: Attribute::ArmorToughness, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.boots".into(), amount: 0.0, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::LeatherChestplate => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Chest, kind: Attribute::Armor, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.chestplate".into(), amount: 3.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Chest, kind: Attribute::ArmorToughness, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.chestplate".into(), amount: 0.0, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::LeatherHelmet => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Head, kind: Attribute::Armor, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.helmet".into(), amount: 1.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Head, kind: Attribute::ArmorToughness, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.helmet".into(), amount: 0.0, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::LeatherHorseArmor => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Body, kind: Attribute::Armor, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.body".into(), amount: 3.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Body, kind: Attribute::ArmorToughness, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.body".into(), amount: 0.0, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::LeatherLeggings => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Legs, kind: Attribute::Armor, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.leggings".into(), amount: 2.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Legs, kind: Attribute::ArmorToughness, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.leggings".into(), amount: 0.0, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::Mace => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_damage".into(), amount: 5.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackSpeed, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_speed".into(), amount: -3.4000000953674316, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::NetheriteAxe => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_damage".into(), amount: 9.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackSpeed, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_speed".into(), amount: -3.0, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::NetheriteBoots => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Feet, kind: Attribute::Armor, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.boots".into(), amount: 3.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Feet, kind: Attribute::ArmorToughness, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.boots".into(), amount: 3.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Feet, kind: Attribute::KnockbackResistance, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.boots".into(), amount: 0.10000000149011612, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::NetheriteChestplate => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Chest, kind: Attribute::Armor, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.chestplate".into(), amount: 8.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Chest, kind: Attribute::ArmorToughness, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.chestplate".into(), amount: 3.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Chest, kind: Attribute::KnockbackResistance, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.chestplate".into(), amount: 0.10000000149011612, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::NetheriteHelmet => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Head, kind: Attribute::Armor, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.helmet".into(), amount: 3.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Head, kind: Attribute::ArmorToughness, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.helmet".into(), amount: 3.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Head, kind: Attribute::KnockbackResistance, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.helmet".into(), amount: 0.10000000149011612, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::NetheriteHoe => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_damage".into(), amount: 0.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackSpeed, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_speed".into(), amount: 0.0, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::NetheriteHorseArmor => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Body, kind: Attribute::Armor, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.body".into(), amount: 19.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Body, kind: Attribute::ArmorToughness, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.body".into(), amount: 3.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Body, kind: Attribute::KnockbackResistance, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.body".into(), amount: 0.10000000149011612, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::NetheriteLeggings => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Legs, kind: Attribute::Armor, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.leggings".into(), amount: 6.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Legs, kind: Attribute::ArmorToughness, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.leggings".into(), amount: 3.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Legs, kind: Attribute::KnockbackResistance, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.leggings".into(), amount: 0.10000000149011612, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::NetheriteNautilusArmor => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Body, kind: Attribute::Armor, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.body".into(), amount: 19.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Body, kind: Attribute::ArmorToughness, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.body".into(), amount: 3.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Body, kind: Attribute::KnockbackResistance, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.body".into(), amount: 0.10000000149011612, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::NetheritePickaxe => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_damage".into(), amount: 5.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackSpeed, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_speed".into(), amount: -2.799999952316284, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::NetheriteShovel => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_damage".into(), amount: 5.5, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackSpeed, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_speed".into(), amount: -3.0, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::NetheriteSpear => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_damage".into(), amount: 4.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackSpeed, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_speed".into(), amount: -3.13043475151062, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::NetheriteSword => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_damage".into(), amount: 7.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackSpeed, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_speed".into(), amount: -2.4000000953674316, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::PiglinHead => vec![AttributeModifiersEntry { display: AttributeModifierDisplay::Hidden, slot: EquipmentSlotGroup::Head, kind: Attribute::WaypointTransmitRange, modifier: AttributeModifier { id: "minecraft:waypoint_transmit_range_hide".into(), amount: -1.0, operation: AttributeModifierOperation::AddMultipliedTotal, }, }], ItemKind::PlayerHead => vec![AttributeModifiersEntry { display: AttributeModifierDisplay::Hidden, slot: EquipmentSlotGroup::Head, kind: Attribute::WaypointTransmitRange, modifier: AttributeModifier { id: "minecraft:waypoint_transmit_range_hide".into(), amount: -1.0, operation: AttributeModifierOperation::AddMultipliedTotal, }, }], ItemKind::SkeletonSkull => vec![AttributeModifiersEntry { display: AttributeModifierDisplay::Hidden, slot: EquipmentSlotGroup::Head, kind: Attribute::WaypointTransmitRange, modifier: AttributeModifier { id: "minecraft:waypoint_transmit_range_hide".into(), amount: -1.0, operation: AttributeModifierOperation::AddMultipliedTotal, }, }], ItemKind::StoneAxe => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_damage".into(), amount: 8.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackSpeed, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_speed".into(), amount: -3.200000047683716, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::StoneHoe => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_damage".into(), amount: 0.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackSpeed, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_speed".into(), amount: -2.0, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::StonePickaxe => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_damage".into(), amount: 2.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackSpeed, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_speed".into(), amount: -2.799999952316284, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::StoneShovel => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_damage".into(), amount: 2.5, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackSpeed, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_speed".into(), amount: -3.0, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::StoneSpear => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_damage".into(), amount: 1.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackSpeed, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_speed".into(), amount: -2.666666626930237, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::StoneSword => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_damage".into(), amount: 4.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackSpeed, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_speed".into(), amount: -2.4000000953674316, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::Trident => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_damage".into(), amount: 8.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackSpeed, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_speed".into(), amount: -2.9000000953674316, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::TurtleHelmet => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Head, kind: Attribute::Armor, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.helmet".into(), amount: 2.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Head, kind: Attribute::ArmorToughness, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.helmet".into(), amount: 0.0, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::WitherSkeletonSkull => vec![AttributeModifiersEntry { display: AttributeModifierDisplay::Hidden, slot: EquipmentSlotGroup::Head, kind: Attribute::WaypointTransmitRange, modifier: AttributeModifier { id: "minecraft:waypoint_transmit_range_hide".into(), amount: -1.0, operation: AttributeModifierOperation::AddMultipliedTotal, }, }], ItemKind::WolfArmor => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Body, kind: Attribute::Armor, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.body".into(), amount: 11.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Body, kind: Attribute::ArmorToughness, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:armor.body".into(), amount: 0.0, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::WoodenAxe => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_damage".into(), amount: 6.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackSpeed, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_speed".into(), amount: -3.200000047683716, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::WoodenHoe => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_damage".into(), amount: 0.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackSpeed, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_speed".into(), amount: -3.0, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::WoodenPickaxe => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_damage".into(), amount: 1.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackSpeed, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_speed".into(), amount: -2.799999952316284, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::WoodenShovel => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_damage".into(), amount: 1.5, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackSpeed, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_speed".into(), amount: -3.0, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::WoodenSpear => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_damage".into(), amount: 0.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackSpeed, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_speed".into(), amount: -2.4615384340286255, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::WoodenSword => vec![ AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackDamage, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_damage".into(), amount: 3.0, operation: AttributeModifierOperation::AddValue, }, }, AttributeModifiersEntry { slot: EquipmentSlotGroup::Mainhand, kind: Attribute::AttackSpeed, display: AttributeModifierDisplay::Default, modifier: AttributeModifier { id: "minecraft:base_attack_speed".into(), amount: -2.4000000953674316, operation: AttributeModifierOperation::AddValue, }, }, ], ItemKind::ZombieHead => vec![AttributeModifiersEntry { display: AttributeModifierDisplay::Hidden, slot: EquipmentSlotGroup::Head, kind: Attribute::WaypointTransmitRange, modifier: AttributeModifier { id: "minecraft:waypoint_transmit_range_hide".into(), amount: -1.0, operation: AttributeModifierOperation::AddMultipliedTotal, }, }], _ => vec![], }; Some(AttributeModifiers { modifiers: value }) } } impl DefaultableComponent for BannerPatterns { fn default_for_item(item: ItemKind) -> Option { let value = match item { 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 Bees { fn default_for_item(item: ItemKind) -> Option { let value = match item { ItemKind::BeeNest => vec![], ItemKind::Beehive => vec![], _ => return None, }; Some(Bees { occupants: value }) } } impl DefaultableComponent for BlockState { fn default_for_item(item: ItemKind) -> Option { let value = match item { ItemKind::BeeNest => HashMap::from_iter([("honey_level".to_owned(), "0".to_owned())]), ItemKind::Beehive => HashMap::from_iter([("honey_level".to_owned(), "0".to_owned())]), ItemKind::CopperGolemStatue => { HashMap::from_iter([("copper_golem_pose".to_owned(), "standing".to_owned())]) } ItemKind::ExposedCopperGolemStatue => { HashMap::from_iter([("copper_golem_pose".to_owned(), "standing".to_owned())]) } ItemKind::Light => HashMap::from_iter([("level".to_owned(), "15".to_owned())]), ItemKind::OxidizedCopperGolemStatue => { HashMap::from_iter([("copper_golem_pose".to_owned(), "standing".to_owned())]) } ItemKind::TestBlock => HashMap::from_iter([("mode".to_owned(), "start".to_owned())]), ItemKind::WaxedCopperGolemStatue => { HashMap::from_iter([("copper_golem_pose".to_owned(), "standing".to_owned())]) } ItemKind::WaxedExposedCopperGolemStatue => { HashMap::from_iter([("copper_golem_pose".to_owned(), "standing".to_owned())]) } ItemKind::WaxedOxidizedCopperGolemStatue => { HashMap::from_iter([("copper_golem_pose".to_owned(), "standing".to_owned())]) } ItemKind::WaxedWeatheredCopperGolemStatue => { HashMap::from_iter([("copper_golem_pose".to_owned(), "standing".to_owned())]) } ItemKind::WeatheredCopperGolemStatue => { HashMap::from_iter([("copper_golem_pose".to_owned(), "standing".to_owned())]) } _ => return None, }; Some(BlockState { properties: value }) } } impl DefaultableComponent for BlocksAttacks { fn default_for_item(item: ItemKind) -> Option { let value = match item { ItemKind::Shield => BlocksAttacks { block_delay_seconds: 0.25, block_sound: Some(azalea_registry::Holder::Reference( SoundEvent::ItemShieldBlock, )), bypassed_by: Some(HolderSet::Direct { contents: vec![] }), disabled_sound: Some(azalea_registry::Holder::Reference( SoundEvent::ItemShieldBreak, )), item_damage: ItemDamageFunction { base: 1.0, factor: 1.0, threshold: 3.0, }, ..BlocksAttacks::new() }, _ => return None, }; Some(value) } } impl DefaultableComponent for BreakSound { fn default_for_item(item: ItemKind) -> Option { let value = match item { 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 BucketEntityData { fn default_for_item(item: ItemKind) -> Option { let value = match item { 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 BundleContents { fn default_for_item(item: ItemKind) -> Option { let value = match item { 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 ChargedProjectiles { fn default_for_item(item: ItemKind) -> Option { let value = match item { ItemKind::Crossbow => vec![], _ => return None, }; Some(ChargedProjectiles { items: value }) } } impl DefaultableComponent for ChickenVariant { fn default_for_item(item: ItemKind) -> Option { let value = match item { ItemKind::BlueEgg => azalea_registry::data::ChickenVariant::new_raw(0), ItemKind::BrownEgg => azalea_registry::data::ChickenVariant::new_raw(0), ItemKind::Egg => azalea_registry::data::ChickenVariant::new_raw(0), _ => return None, }; Some(ChickenVariant { data: value }) } } impl DefaultableComponent for Consumable { fn default_for_item(item: ItemKind) -> Option { let value = match item { 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, details: MobEffectDetails { duration: 600, show_icon: true, ..MobEffectDetails::new() }, }], probability: 0.3, }], ..Consumable::new() }, ItemKind::ChorusFruit => Consumable { on_consume_effects: vec![ConsumeEffect::TeleportRandomly { diameter: 16.0 }], ..Consumable::new() }, 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() }, ItemKind::EnchantedGoldenApple => Consumable { on_consume_effects: vec![ConsumeEffect::ApplyEffects { effects: vec![ MobEffectInstance { id: MobEffect::Regeneration, details: MobEffectDetails { amplifier: 1, duration: 400, show_icon: true, ..MobEffectDetails::new() }, }, MobEffectInstance { id: MobEffect::Resistance, details: MobEffectDetails { duration: 6000, show_icon: true, ..MobEffectDetails::new() }, }, MobEffectInstance { id: MobEffect::FireResistance, details: MobEffectDetails { duration: 6000, show_icon: true, ..MobEffectDetails::new() }, }, MobEffectInstance { id: MobEffect::Absorption, details: MobEffectDetails { amplifier: 3, duration: 2400, show_icon: true, ..MobEffectDetails::new() }, }, ], probability: 1.0, }], ..Consumable::new() }, ItemKind::GlowBerries => Consumable::new(), ItemKind::GoldenApple => Consumable { on_consume_effects: vec![ConsumeEffect::ApplyEffects { effects: vec![ MobEffectInstance { id: MobEffect::Regeneration, details: MobEffectDetails { amplifier: 1, duration: 100, show_icon: true, ..MobEffectDetails::new() }, }, MobEffectInstance { id: MobEffect::Absorption, details: MobEffectDetails { duration: 2400, show_icon: true, ..MobEffectDetails::new() }, }, ], probability: 1.0, }], ..Consumable::new() }, ItemKind::GoldenCarrot => Consumable::new(), ItemKind::HoneyBottle => Consumable { animation: ItemUseAnimation::Drink, consume_seconds: 2.0, has_consume_particles: false, on_consume_effects: vec![ConsumeEffect::RemoveEffects { effects: HolderSet::Direct { contents: vec![MobEffect::Poison], }, }], sound: azalea_registry::Holder::Reference(SoundEvent::ItemHoneyBottleDrink), }, 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() }, ItemKind::MushroomStew => Consumable::new(), ItemKind::Mutton => Consumable::new(), ItemKind::OminousBottle => Consumable { animation: ItemUseAnimation::Drink, has_consume_particles: false, on_consume_effects: vec![ConsumeEffect::PlaySound { sound: SoundEvent::ItemOminousBottleDispose, }], sound: azalea_registry::Holder::Reference(SoundEvent::EntityGenericDrink), ..Consumable::new() }, ItemKind::PoisonousPotato => Consumable { on_consume_effects: vec![ConsumeEffect::ApplyEffects { effects: vec![MobEffectInstance { id: MobEffect::Poison, details: MobEffectDetails { duration: 100, show_icon: true, ..MobEffectDetails::new() }, }], probability: 0.6, }], ..Consumable::new() }, 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() }, ItemKind::Pufferfish => Consumable { on_consume_effects: vec![ConsumeEffect::ApplyEffects { effects: vec![ MobEffectInstance { id: MobEffect::Poison, details: MobEffectDetails { amplifier: 1, duration: 1200, show_icon: true, ..MobEffectDetails::new() }, }, MobEffectInstance { id: MobEffect::Hunger, details: MobEffectDetails { amplifier: 2, duration: 300, show_icon: true, ..MobEffectDetails::new() }, }, MobEffectInstance { id: MobEffect::Nausea, details: MobEffectDetails { duration: 300, show_icon: true, ..MobEffectDetails::new() }, }, ], probability: 1.0, }], ..Consumable::new() }, 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, details: MobEffectDetails { duration: 600, show_icon: true, ..MobEffectDetails::new() }, }], probability: 0.8, }], ..Consumable::new() }, ItemKind::Salmon => Consumable::new(), ItemKind::SpiderEye => Consumable { on_consume_effects: vec![ConsumeEffect::ApplyEffects { effects: vec![MobEffectInstance { id: MobEffect::Poison, details: MobEffectDetails { duration: 100, show_icon: true, ..MobEffectDetails::new() }, }], probability: 1.0, }], ..Consumable::new() }, ItemKind::SuspiciousStew => Consumable::new(), ItemKind::SweetBerries => Consumable::new(), ItemKind::TropicalFish => Consumable::new(), _ => return None, }; Some(value) } } impl DefaultableComponent for Container { fn default_for_item(item: ItemKind) -> Option { let value = match item { 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 Damage { fn default_for_item(item: ItemKind) -> Option { let value = match item { 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 DamageResistant { fn default_for_item(item: ItemKind) -> Option { let value = match item { ItemKind::AncientDebris => HolderSet::Direct { contents: vec![] }, ItemKind::NetherStar => HolderSet::Direct { contents: vec![] }, ItemKind::NetheriteAxe => HolderSet::Direct { contents: vec![] }, ItemKind::NetheriteBlock => HolderSet::Direct { contents: vec![] }, ItemKind::NetheriteBoots => HolderSet::Direct { contents: vec![] }, ItemKind::NetheriteChestplate => HolderSet::Direct { contents: vec![] }, ItemKind::NetheriteHelmet => HolderSet::Direct { contents: vec![] }, ItemKind::NetheriteHoe => HolderSet::Direct { contents: vec![] }, ItemKind::NetheriteHorseArmor => HolderSet::Direct { contents: vec![] }, ItemKind::NetheriteIngot => HolderSet::Direct { contents: vec![] }, ItemKind::NetheriteLeggings => HolderSet::Direct { contents: vec![] }, ItemKind::NetheriteNautilusArmor => HolderSet::Direct { contents: vec![] }, ItemKind::NetheritePickaxe => HolderSet::Direct { contents: vec![] }, ItemKind::NetheriteScrap => HolderSet::Direct { contents: vec![] }, ItemKind::NetheriteShovel => HolderSet::Direct { contents: vec![] }, ItemKind::NetheriteSpear => HolderSet::Direct { contents: vec![] }, ItemKind::NetheriteSword => HolderSet::Direct { contents: vec![] }, _ => return None, }; Some(DamageResistant { types: value }) } } impl DefaultableComponent for DamageType { fn default_for_item(item: ItemKind) -> Option { let value = match item { ItemKind::CopperSpear => azalea_registry::data::DamageKind::new_raw(0), ItemKind::DiamondSpear => azalea_registry::data::DamageKind::new_raw(0), ItemKind::GoldenSpear => azalea_registry::data::DamageKind::new_raw(0), ItemKind::IronSpear => azalea_registry::data::DamageKind::new_raw(0), ItemKind::NetheriteSpear => azalea_registry::data::DamageKind::new_raw(0), ItemKind::StoneSpear => azalea_registry::data::DamageKind::new_raw(0), ItemKind::WoodenSpear => azalea_registry::data::DamageKind::new_raw(0), _ => return None, }; Some(DamageType { value: value }) } } impl DefaultableComponent for DeathProtection { fn default_for_item(item: ItemKind) -> Option { let value = match item { ItemKind::TotemOfUndying => vec![ ConsumeEffect::ClearAllEffects {}, ConsumeEffect::ApplyEffects { effects: vec![ MobEffectInstance { id: MobEffect::Regeneration, details: MobEffectDetails { amplifier: 1, duration: 900, show_icon: true, ..MobEffectDetails::new() }, }, MobEffectInstance { id: MobEffect::Absorption, details: MobEffectDetails { amplifier: 1, duration: 100, show_icon: true, ..MobEffectDetails::new() }, }, MobEffectInstance { id: MobEffect::FireResistance, details: MobEffectDetails { duration: 800, show_icon: true, ..MobEffectDetails::new() }, }, ], probability: 1.0, }, ], _ => return None, }; Some(DeathProtection { death_effects: value, }) } } impl DefaultableComponent for DebugStickState { fn default_for_item(item: ItemKind) -> Option { let value = match item { ItemKind::DebugStick => NbtCompound::from_values(vec![]), _ => return None, }; Some(DebugStickState { properties: value }) } } impl DefaultableComponent for Dye { fn default_for_item(item: ItemKind) -> Option { let value = match item { ItemKind::BlackDye => DyeColor::Black, ItemKind::BlueDye => DyeColor::Blue, ItemKind::BrownDye => DyeColor::Brown, ItemKind::CyanDye => DyeColor::Cyan, ItemKind::GrayDye => DyeColor::Gray, ItemKind::GreenDye => DyeColor::Green, ItemKind::LightBlueDye => DyeColor::LightBlue, ItemKind::LightGrayDye => DyeColor::LightGray, ItemKind::LimeDye => DyeColor::Lime, ItemKind::MagentaDye => DyeColor::Magenta, ItemKind::OrangeDye => DyeColor::Orange, ItemKind::PinkDye => DyeColor::Pink, ItemKind::PurpleDye => DyeColor::Purple, ItemKind::RedDye => DyeColor::Red, ItemKind::WhiteDye => DyeColor::White, ItemKind::YellowDye => DyeColor::Yellow, _ => return None, }; Some(Dye { color: value }) } } impl DefaultableComponent for Enchantable { fn default_for_item(item: ItemKind) -> Option { let value = match item { 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 EnchantmentGlintOverride { fn default_for_item(item: ItemKind) -> Option { let value = match item { 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 Enchantments { fn default_for_item(_item: ItemKind) -> Option { Some(Enchantments { levels: HashMap::from_iter([]), }) } } impl DefaultableComponent for EntityData { fn default_for_item(item: ItemKind) -> Option { let value = match item { 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 { kind: value, data: NbtCompound::new(), }) } } impl DefaultableComponent for Equippable { fn default_for_item(item: ItemKind) -> Option { let value = match item { ItemKind::BlackCarpet => Equippable { allowed_entities: Some(HolderSet::Direct { contents: vec![EntityKind::Llama, EntityKind::TraderLlama], }), asset_id: Some("minecraft:black_carpet".into()), can_be_sheared: true, equip_sound: SoundEvent::EntityLlamaSwag, shearing_sound: SoundEvent::ItemLlamaCarpetUnequip, slot: EquipmentSlot::Body, ..Equippable::new() }, ItemKind::BlackHarness => Equippable { allowed_entities: Some(HolderSet::Direct { contents: azalea_registry::tags::entities::CAN_EQUIP_HARNESS .clone() .into_iter() .collect(), }), asset_id: Some("minecraft:black_harness".into()), can_be_sheared: true, equip_on_interact: true, equip_sound: SoundEvent::EntityHappyGhastEquip, shearing_sound: SoundEvent::EntityHappyGhastUnequip, slot: EquipmentSlot::Body, ..Equippable::new() }, ItemKind::BlueCarpet => Equippable { allowed_entities: Some(HolderSet::Direct { contents: vec![EntityKind::Llama, EntityKind::TraderLlama], }), asset_id: Some("minecraft:blue_carpet".into()), can_be_sheared: true, equip_sound: SoundEvent::EntityLlamaSwag, shearing_sound: SoundEvent::ItemLlamaCarpetUnequip, slot: EquipmentSlot::Body, ..Equippable::new() }, ItemKind::BlueHarness => Equippable { allowed_entities: Some(HolderSet::Direct { contents: azalea_registry::tags::entities::CAN_EQUIP_HARNESS .clone() .into_iter() .collect(), }), asset_id: Some("minecraft:blue_harness".into()), can_be_sheared: true, equip_on_interact: true, equip_sound: SoundEvent::EntityHappyGhastEquip, shearing_sound: SoundEvent::EntityHappyGhastUnequip, slot: EquipmentSlot::Body, ..Equippable::new() }, ItemKind::BrownCarpet => Equippable { allowed_entities: Some(HolderSet::Direct { contents: vec![EntityKind::Llama, EntityKind::TraderLlama], }), asset_id: Some("minecraft:brown_carpet".into()), can_be_sheared: true, equip_sound: SoundEvent::EntityLlamaSwag, shearing_sound: SoundEvent::ItemLlamaCarpetUnequip, slot: EquipmentSlot::Body, ..Equippable::new() }, ItemKind::BrownHarness => Equippable { allowed_entities: Some(HolderSet::Direct { contents: azalea_registry::tags::entities::CAN_EQUIP_HARNESS .clone() .into_iter() .collect(), }), asset_id: Some("minecraft:brown_harness".into()), can_be_sheared: true, equip_on_interact: true, equip_sound: SoundEvent::EntityHappyGhastEquip, shearing_sound: SoundEvent::EntityHappyGhastUnequip, slot: EquipmentSlot::Body, ..Equippable::new() }, ItemKind::CarvedPumpkin => Equippable { camera_overlay: Some("minecraft:misc/pumpkinblur".into()), slot: EquipmentSlot::Head, swappable: false, ..Equippable::new() }, ItemKind::ChainmailBoots => Equippable { asset_id: Some("minecraft:chainmail".into()), equip_sound: SoundEvent::ItemArmorEquipChain, slot: EquipmentSlot::Feet, ..Equippable::new() }, ItemKind::ChainmailChestplate => Equippable { asset_id: Some("minecraft:chainmail".into()), equip_sound: SoundEvent::ItemArmorEquipChain, slot: EquipmentSlot::Chest, ..Equippable::new() }, ItemKind::ChainmailHelmet => Equippable { asset_id: Some("minecraft:chainmail".into()), equip_sound: SoundEvent::ItemArmorEquipChain, slot: EquipmentSlot::Head, ..Equippable::new() }, ItemKind::ChainmailLeggings => Equippable { asset_id: Some("minecraft:chainmail".into()), equip_sound: SoundEvent::ItemArmorEquipChain, slot: EquipmentSlot::Legs, ..Equippable::new() }, ItemKind::CopperBoots => Equippable { asset_id: Some("minecraft:copper".into()), equip_sound: SoundEvent::ItemArmorEquipCopper, slot: EquipmentSlot::Feet, ..Equippable::new() }, ItemKind::CopperChestplate => Equippable { asset_id: Some("minecraft:copper".into()), equip_sound: SoundEvent::ItemArmorEquipCopper, slot: EquipmentSlot::Chest, ..Equippable::new() }, ItemKind::CopperHelmet => Equippable { asset_id: Some("minecraft:copper".into()), equip_sound: SoundEvent::ItemArmorEquipCopper, slot: EquipmentSlot::Head, ..Equippable::new() }, ItemKind::CopperHorseArmor => Equippable { allowed_entities: Some(HolderSet::Direct { contents: azalea_registry::tags::entities::CAN_WEAR_HORSE_ARMOR .clone() .into_iter() .collect(), }), asset_id: Some("minecraft:copper".into()), can_be_sheared: true, damage_on_hurt: false, equip_sound: SoundEvent::EntityHorseArmor, shearing_sound: SoundEvent::ItemHorseArmorUnequip, slot: EquipmentSlot::Body, ..Equippable::new() }, ItemKind::CopperLeggings => Equippable { asset_id: Some("minecraft:copper".into()), equip_sound: SoundEvent::ItemArmorEquipCopper, slot: EquipmentSlot::Legs, ..Equippable::new() }, ItemKind::CopperNautilusArmor => Equippable { allowed_entities: Some(HolderSet::Direct { contents: azalea_registry::tags::entities::CAN_WEAR_NAUTILUS_ARMOR .clone() .into_iter() .collect(), }), asset_id: Some("minecraft:copper".into()), can_be_sheared: true, damage_on_hurt: false, equip_on_interact: true, equip_sound: SoundEvent::ItemArmorEquipNautilus, shearing_sound: SoundEvent::ItemArmorUnequipNautilus, slot: EquipmentSlot::Body, ..Equippable::new() }, ItemKind::CreeperHead => Equippable { slot: EquipmentSlot::Head, swappable: false, ..Equippable::new() }, ItemKind::CyanCarpet => Equippable { allowed_entities: Some(HolderSet::Direct { contents: vec![EntityKind::Llama, EntityKind::TraderLlama], }), asset_id: Some("minecraft:cyan_carpet".into()), can_be_sheared: true, equip_sound: SoundEvent::EntityLlamaSwag, shearing_sound: SoundEvent::ItemLlamaCarpetUnequip, slot: EquipmentSlot::Body, ..Equippable::new() }, ItemKind::CyanHarness => Equippable { allowed_entities: Some(HolderSet::Direct { contents: azalea_registry::tags::entities::CAN_EQUIP_HARNESS .clone() .into_iter() .collect(), }), asset_id: Some("minecraft:cyan_harness".into()), can_be_sheared: true, equip_on_interact: true, equip_sound: SoundEvent::EntityHappyGhastEquip, shearing_sound: SoundEvent::EntityHappyGhastUnequip, slot: EquipmentSlot::Body, ..Equippable::new() }, ItemKind::DiamondBoots => Equippable { asset_id: Some("minecraft:diamond".into()), equip_sound: SoundEvent::ItemArmorEquipDiamond, slot: EquipmentSlot::Feet, ..Equippable::new() }, ItemKind::DiamondChestplate => Equippable { asset_id: Some("minecraft:diamond".into()), equip_sound: SoundEvent::ItemArmorEquipDiamond, slot: EquipmentSlot::Chest, ..Equippable::new() }, ItemKind::DiamondHelmet => Equippable { asset_id: Some("minecraft:diamond".into()), equip_sound: SoundEvent::ItemArmorEquipDiamond, slot: EquipmentSlot::Head, ..Equippable::new() }, ItemKind::DiamondHorseArmor => Equippable { allowed_entities: Some(HolderSet::Direct { contents: azalea_registry::tags::entities::CAN_WEAR_HORSE_ARMOR .clone() .into_iter() .collect(), }), asset_id: Some("minecraft:diamond".into()), can_be_sheared: true, damage_on_hurt: false, equip_sound: SoundEvent::EntityHorseArmor, shearing_sound: SoundEvent::ItemHorseArmorUnequip, slot: EquipmentSlot::Body, ..Equippable::new() }, ItemKind::DiamondLeggings => Equippable { asset_id: Some("minecraft:diamond".into()), equip_sound: SoundEvent::ItemArmorEquipDiamond, slot: EquipmentSlot::Legs, ..Equippable::new() }, ItemKind::DiamondNautilusArmor => Equippable { allowed_entities: Some(HolderSet::Direct { contents: azalea_registry::tags::entities::CAN_WEAR_NAUTILUS_ARMOR .clone() .into_iter() .collect(), }), asset_id: Some("minecraft:diamond".into()), can_be_sheared: true, damage_on_hurt: false, equip_on_interact: true, equip_sound: SoundEvent::ItemArmorEquipNautilus, shearing_sound: SoundEvent::ItemArmorUnequipNautilus, slot: EquipmentSlot::Body, ..Equippable::new() }, ItemKind::DragonHead => Equippable { slot: EquipmentSlot::Head, swappable: false, ..Equippable::new() }, ItemKind::Elytra => Equippable { asset_id: Some("minecraft:elytra".into()), damage_on_hurt: false, equip_sound: SoundEvent::ItemArmorEquipElytra, slot: EquipmentSlot::Chest, ..Equippable::new() }, ItemKind::GoldenBoots => Equippable { asset_id: Some("minecraft:gold".into()), equip_sound: SoundEvent::ItemArmorEquipGold, slot: EquipmentSlot::Feet, ..Equippable::new() }, ItemKind::GoldenChestplate => Equippable { asset_id: Some("minecraft:gold".into()), equip_sound: SoundEvent::ItemArmorEquipGold, slot: EquipmentSlot::Chest, ..Equippable::new() }, ItemKind::GoldenHelmet => Equippable { asset_id: Some("minecraft:gold".into()), equip_sound: SoundEvent::ItemArmorEquipGold, slot: EquipmentSlot::Head, ..Equippable::new() }, ItemKind::GoldenHorseArmor => Equippable { allowed_entities: Some(HolderSet::Direct { contents: azalea_registry::tags::entities::CAN_WEAR_HORSE_ARMOR .clone() .into_iter() .collect(), }), asset_id: Some("minecraft:gold".into()), can_be_sheared: true, damage_on_hurt: false, equip_sound: SoundEvent::EntityHorseArmor, shearing_sound: SoundEvent::ItemHorseArmorUnequip, slot: EquipmentSlot::Body, ..Equippable::new() }, ItemKind::GoldenLeggings => Equippable { asset_id: Some("minecraft:gold".into()), equip_sound: SoundEvent::ItemArmorEquipGold, slot: EquipmentSlot::Legs, ..Equippable::new() }, ItemKind::GoldenNautilusArmor => Equippable { allowed_entities: Some(HolderSet::Direct { contents: azalea_registry::tags::entities::CAN_WEAR_NAUTILUS_ARMOR .clone() .into_iter() .collect(), }), asset_id: Some("minecraft:gold".into()), can_be_sheared: true, damage_on_hurt: false, equip_on_interact: true, equip_sound: SoundEvent::ItemArmorEquipNautilus, shearing_sound: SoundEvent::ItemArmorUnequipNautilus, slot: EquipmentSlot::Body, ..Equippable::new() }, ItemKind::GrayCarpet => Equippable { allowed_entities: Some(HolderSet::Direct { contents: vec![EntityKind::Llama, EntityKind::TraderLlama], }), asset_id: Some("minecraft:gray_carpet".into()), can_be_sheared: true, equip_sound: SoundEvent::EntityLlamaSwag, shearing_sound: SoundEvent::ItemLlamaCarpetUnequip, slot: EquipmentSlot::Body, ..Equippable::new() }, ItemKind::GrayHarness => Equippable { allowed_entities: Some(HolderSet::Direct { contents: azalea_registry::tags::entities::CAN_EQUIP_HARNESS .clone() .into_iter() .collect(), }), asset_id: Some("minecraft:gray_harness".into()), can_be_sheared: true, equip_on_interact: true, equip_sound: SoundEvent::EntityHappyGhastEquip, shearing_sound: SoundEvent::EntityHappyGhastUnequip, slot: EquipmentSlot::Body, ..Equippable::new() }, ItemKind::GreenCarpet => Equippable { allowed_entities: Some(HolderSet::Direct { contents: vec![EntityKind::Llama, EntityKind::TraderLlama], }), asset_id: Some("minecraft:green_carpet".into()), can_be_sheared: true, equip_sound: SoundEvent::EntityLlamaSwag, shearing_sound: SoundEvent::ItemLlamaCarpetUnequip, slot: EquipmentSlot::Body, ..Equippable::new() }, ItemKind::GreenHarness => Equippable { allowed_entities: Some(HolderSet::Direct { contents: azalea_registry::tags::entities::CAN_EQUIP_HARNESS .clone() .into_iter() .collect(), }), asset_id: Some("minecraft:green_harness".into()), can_be_sheared: true, equip_on_interact: true, equip_sound: SoundEvent::EntityHappyGhastEquip, shearing_sound: SoundEvent::EntityHappyGhastUnequip, slot: EquipmentSlot::Body, ..Equippable::new() }, ItemKind::IronBoots => Equippable { asset_id: Some("minecraft:iron".into()), equip_sound: SoundEvent::ItemArmorEquipIron, slot: EquipmentSlot::Feet, ..Equippable::new() }, ItemKind::IronChestplate => Equippable { asset_id: Some("minecraft:iron".into()), equip_sound: SoundEvent::ItemArmorEquipIron, slot: EquipmentSlot::Chest, ..Equippable::new() }, ItemKind::IronHelmet => Equippable { asset_id: Some("minecraft:iron".into()), equip_sound: SoundEvent::ItemArmorEquipIron, slot: EquipmentSlot::Head, ..Equippable::new() }, ItemKind::IronHorseArmor => Equippable { allowed_entities: Some(HolderSet::Direct { contents: azalea_registry::tags::entities::CAN_WEAR_HORSE_ARMOR .clone() .into_iter() .collect(), }), asset_id: Some("minecraft:iron".into()), can_be_sheared: true, damage_on_hurt: false, equip_sound: SoundEvent::EntityHorseArmor, shearing_sound: SoundEvent::ItemHorseArmorUnequip, slot: EquipmentSlot::Body, ..Equippable::new() }, ItemKind::IronLeggings => Equippable { asset_id: Some("minecraft:iron".into()), equip_sound: SoundEvent::ItemArmorEquipIron, slot: EquipmentSlot::Legs, ..Equippable::new() }, ItemKind::IronNautilusArmor => Equippable { allowed_entities: Some(HolderSet::Direct { contents: azalea_registry::tags::entities::CAN_WEAR_NAUTILUS_ARMOR .clone() .into_iter() .collect(), }), asset_id: Some("minecraft:iron".into()), can_be_sheared: true, damage_on_hurt: false, equip_on_interact: true, equip_sound: SoundEvent::ItemArmorEquipNautilus, shearing_sound: SoundEvent::ItemArmorUnequipNautilus, slot: EquipmentSlot::Body, ..Equippable::new() }, ItemKind::LeatherBoots => Equippable { asset_id: Some("minecraft:leather".into()), equip_sound: SoundEvent::ItemArmorEquipLeather, slot: EquipmentSlot::Feet, ..Equippable::new() }, ItemKind::LeatherChestplate => Equippable { asset_id: Some("minecraft:leather".into()), equip_sound: SoundEvent::ItemArmorEquipLeather, slot: EquipmentSlot::Chest, ..Equippable::new() }, ItemKind::LeatherHelmet => Equippable { asset_id: Some("minecraft:leather".into()), equip_sound: SoundEvent::ItemArmorEquipLeather, slot: EquipmentSlot::Head, ..Equippable::new() }, ItemKind::LeatherHorseArmor => Equippable { allowed_entities: Some(HolderSet::Direct { contents: azalea_registry::tags::entities::CAN_WEAR_HORSE_ARMOR .clone() .into_iter() .collect(), }), asset_id: Some("minecraft:leather".into()), can_be_sheared: true, damage_on_hurt: false, equip_sound: SoundEvent::EntityHorseArmor, shearing_sound: SoundEvent::ItemHorseArmorUnequip, slot: EquipmentSlot::Body, ..Equippable::new() }, ItemKind::LeatherLeggings => Equippable { asset_id: Some("minecraft:leather".into()), equip_sound: SoundEvent::ItemArmorEquipLeather, slot: EquipmentSlot::Legs, ..Equippable::new() }, ItemKind::LightBlueCarpet => Equippable { allowed_entities: Some(HolderSet::Direct { contents: vec![EntityKind::Llama, EntityKind::TraderLlama], }), asset_id: Some("minecraft:light_blue_carpet".into()), can_be_sheared: true, equip_sound: SoundEvent::EntityLlamaSwag, shearing_sound: SoundEvent::ItemLlamaCarpetUnequip, slot: EquipmentSlot::Body, ..Equippable::new() }, ItemKind::LightBlueHarness => Equippable { allowed_entities: Some(HolderSet::Direct { contents: azalea_registry::tags::entities::CAN_EQUIP_HARNESS .clone() .into_iter() .collect(), }), asset_id: Some("minecraft:light_blue_harness".into()), can_be_sheared: true, equip_on_interact: true, equip_sound: SoundEvent::EntityHappyGhastEquip, shearing_sound: SoundEvent::EntityHappyGhastUnequip, slot: EquipmentSlot::Body, ..Equippable::new() }, ItemKind::LightGrayCarpet => Equippable { allowed_entities: Some(HolderSet::Direct { contents: vec![EntityKind::Llama, EntityKind::TraderLlama], }), asset_id: Some("minecraft:light_gray_carpet".into()), can_be_sheared: true, equip_sound: SoundEvent::EntityLlamaSwag, shearing_sound: SoundEvent::ItemLlamaCarpetUnequip, slot: EquipmentSlot::Body, ..Equippable::new() }, ItemKind::LightGrayHarness => Equippable { allowed_entities: Some(HolderSet::Direct { contents: azalea_registry::tags::entities::CAN_EQUIP_HARNESS .clone() .into_iter() .collect(), }), asset_id: Some("minecraft:light_gray_harness".into()), can_be_sheared: true, equip_on_interact: true, equip_sound: SoundEvent::EntityHappyGhastEquip, shearing_sound: SoundEvent::EntityHappyGhastUnequip, slot: EquipmentSlot::Body, ..Equippable::new() }, ItemKind::LimeCarpet => Equippable { allowed_entities: Some(HolderSet::Direct { contents: vec![EntityKind::Llama, EntityKind::TraderLlama], }), asset_id: Some("minecraft:lime_carpet".into()), can_be_sheared: true, equip_sound: SoundEvent::EntityLlamaSwag, shearing_sound: SoundEvent::ItemLlamaCarpetUnequip, slot: EquipmentSlot::Body, ..Equippable::new() }, ItemKind::LimeHarness => Equippable { allowed_entities: Some(HolderSet::Direct { contents: azalea_registry::tags::entities::CAN_EQUIP_HARNESS .clone() .into_iter() .collect(), }), asset_id: Some("minecraft:lime_harness".into()), can_be_sheared: true, equip_on_interact: true, equip_sound: SoundEvent::EntityHappyGhastEquip, shearing_sound: SoundEvent::EntityHappyGhastUnequip, slot: EquipmentSlot::Body, ..Equippable::new() }, ItemKind::MagentaCarpet => Equippable { allowed_entities: Some(HolderSet::Direct { contents: vec![EntityKind::Llama, EntityKind::TraderLlama], }), asset_id: Some("minecraft:magenta_carpet".into()), can_be_sheared: true, equip_sound: SoundEvent::EntityLlamaSwag, shearing_sound: SoundEvent::ItemLlamaCarpetUnequip, slot: EquipmentSlot::Body, ..Equippable::new() }, ItemKind::MagentaHarness => Equippable { allowed_entities: Some(HolderSet::Direct { contents: azalea_registry::tags::entities::CAN_EQUIP_HARNESS .clone() .into_iter() .collect(), }), asset_id: Some("minecraft:magenta_harness".into()), can_be_sheared: true, equip_on_interact: true, equip_sound: SoundEvent::EntityHappyGhastEquip, shearing_sound: SoundEvent::EntityHappyGhastUnequip, slot: EquipmentSlot::Body, ..Equippable::new() }, ItemKind::NetheriteBoots => Equippable { asset_id: Some("minecraft:netherite".into()), equip_sound: SoundEvent::ItemArmorEquipNetherite, slot: EquipmentSlot::Feet, ..Equippable::new() }, ItemKind::NetheriteChestplate => Equippable { asset_id: Some("minecraft:netherite".into()), equip_sound: SoundEvent::ItemArmorEquipNetherite, slot: EquipmentSlot::Chest, ..Equippable::new() }, ItemKind::NetheriteHelmet => Equippable { asset_id: Some("minecraft:netherite".into()), equip_sound: SoundEvent::ItemArmorEquipNetherite, slot: EquipmentSlot::Head, ..Equippable::new() }, ItemKind::NetheriteHorseArmor => Equippable { allowed_entities: Some(HolderSet::Direct { contents: azalea_registry::tags::entities::CAN_WEAR_HORSE_ARMOR .clone() .into_iter() .collect(), }), asset_id: Some("minecraft:netherite".into()), can_be_sheared: true, damage_on_hurt: false, equip_sound: SoundEvent::EntityHorseArmor, shearing_sound: SoundEvent::ItemHorseArmorUnequip, slot: EquipmentSlot::Body, ..Equippable::new() }, ItemKind::NetheriteLeggings => Equippable { asset_id: Some("minecraft:netherite".into()), equip_sound: SoundEvent::ItemArmorEquipNetherite, slot: EquipmentSlot::Legs, ..Equippable::new() }, ItemKind::NetheriteNautilusArmor => Equippable { allowed_entities: Some(HolderSet::Direct { contents: azalea_registry::tags::entities::CAN_WEAR_NAUTILUS_ARMOR .clone() .into_iter() .collect(), }), asset_id: Some("minecraft:netherite".into()), can_be_sheared: true, damage_on_hurt: false, equip_on_interact: true, equip_sound: SoundEvent::ItemArmorEquipNautilus, shearing_sound: SoundEvent::ItemArmorUnequipNautilus, slot: EquipmentSlot::Body, ..Equippable::new() }, ItemKind::OrangeCarpet => Equippable { allowed_entities: Some(HolderSet::Direct { contents: vec![EntityKind::Llama, EntityKind::TraderLlama], }), asset_id: Some("minecraft:orange_carpet".into()), can_be_sheared: true, equip_sound: SoundEvent::EntityLlamaSwag, shearing_sound: SoundEvent::ItemLlamaCarpetUnequip, slot: EquipmentSlot::Body, ..Equippable::new() }, ItemKind::OrangeHarness => Equippable { allowed_entities: Some(HolderSet::Direct { contents: azalea_registry::tags::entities::CAN_EQUIP_HARNESS .clone() .into_iter() .collect(), }), asset_id: Some("minecraft:orange_harness".into()), can_be_sheared: true, equip_on_interact: true, equip_sound: SoundEvent::EntityHappyGhastEquip, shearing_sound: SoundEvent::EntityHappyGhastUnequip, slot: EquipmentSlot::Body, ..Equippable::new() }, ItemKind::PiglinHead => Equippable { slot: EquipmentSlot::Head, swappable: false, ..Equippable::new() }, ItemKind::PinkCarpet => Equippable { allowed_entities: Some(HolderSet::Direct { contents: vec![EntityKind::Llama, EntityKind::TraderLlama], }), asset_id: Some("minecraft:pink_carpet".into()), can_be_sheared: true, equip_sound: SoundEvent::EntityLlamaSwag, shearing_sound: SoundEvent::ItemLlamaCarpetUnequip, slot: EquipmentSlot::Body, ..Equippable::new() }, ItemKind::PinkHarness => Equippable { allowed_entities: Some(HolderSet::Direct { contents: azalea_registry::tags::entities::CAN_EQUIP_HARNESS .clone() .into_iter() .collect(), }), asset_id: Some("minecraft:pink_harness".into()), can_be_sheared: true, equip_on_interact: true, equip_sound: SoundEvent::EntityHappyGhastEquip, shearing_sound: SoundEvent::EntityHappyGhastUnequip, slot: EquipmentSlot::Body, ..Equippable::new() }, ItemKind::PlayerHead => Equippable { slot: EquipmentSlot::Head, swappable: false, ..Equippable::new() }, ItemKind::PurpleCarpet => Equippable { allowed_entities: Some(HolderSet::Direct { contents: vec![EntityKind::Llama, EntityKind::TraderLlama], }), asset_id: Some("minecraft:purple_carpet".into()), can_be_sheared: true, equip_sound: SoundEvent::EntityLlamaSwag, shearing_sound: SoundEvent::ItemLlamaCarpetUnequip, slot: EquipmentSlot::Body, ..Equippable::new() }, ItemKind::PurpleHarness => Equippable { allowed_entities: Some(HolderSet::Direct { contents: azalea_registry::tags::entities::CAN_EQUIP_HARNESS .clone() .into_iter() .collect(), }), asset_id: Some("minecraft:purple_harness".into()), can_be_sheared: true, equip_on_interact: true, equip_sound: SoundEvent::EntityHappyGhastEquip, shearing_sound: SoundEvent::EntityHappyGhastUnequip, slot: EquipmentSlot::Body, ..Equippable::new() }, ItemKind::RedCarpet => Equippable { allowed_entities: Some(HolderSet::Direct { contents: vec![EntityKind::Llama, EntityKind::TraderLlama], }), asset_id: Some("minecraft:red_carpet".into()), can_be_sheared: true, equip_sound: SoundEvent::EntityLlamaSwag, shearing_sound: SoundEvent::ItemLlamaCarpetUnequip, slot: EquipmentSlot::Body, ..Equippable::new() }, ItemKind::RedHarness => Equippable { allowed_entities: Some(HolderSet::Direct { contents: azalea_registry::tags::entities::CAN_EQUIP_HARNESS .clone() .into_iter() .collect(), }), asset_id: Some("minecraft:red_harness".into()), can_be_sheared: true, equip_on_interact: true, equip_sound: SoundEvent::EntityHappyGhastEquip, shearing_sound: SoundEvent::EntityHappyGhastUnequip, slot: EquipmentSlot::Body, ..Equippable::new() }, ItemKind::Saddle => Equippable { allowed_entities: Some(HolderSet::Direct { contents: azalea_registry::tags::entities::CAN_EQUIP_SADDLE .clone() .into_iter() .collect(), }), asset_id: Some("minecraft:saddle".into()), can_be_sheared: true, equip_on_interact: true, equip_sound: SoundEvent::EntityHorseSaddle, shearing_sound: SoundEvent::ItemSaddleUnequip, slot: EquipmentSlot::Saddle, ..Equippable::new() }, ItemKind::Shield => Equippable { slot: EquipmentSlot::Offhand, swappable: false, ..Equippable::new() }, ItemKind::SkeletonSkull => Equippable { slot: EquipmentSlot::Head, swappable: false, ..Equippable::new() }, ItemKind::TurtleHelmet => Equippable { asset_id: Some("minecraft:turtle_scute".into()), equip_sound: SoundEvent::ItemArmorEquipTurtle, slot: EquipmentSlot::Head, ..Equippable::new() }, ItemKind::WhiteCarpet => Equippable { allowed_entities: Some(HolderSet::Direct { contents: vec![EntityKind::Llama, EntityKind::TraderLlama], }), asset_id: Some("minecraft:white_carpet".into()), can_be_sheared: true, equip_sound: SoundEvent::EntityLlamaSwag, shearing_sound: SoundEvent::ItemLlamaCarpetUnequip, slot: EquipmentSlot::Body, ..Equippable::new() }, ItemKind::WhiteHarness => Equippable { allowed_entities: Some(HolderSet::Direct { contents: azalea_registry::tags::entities::CAN_EQUIP_HARNESS .clone() .into_iter() .collect(), }), asset_id: Some("minecraft:white_harness".into()), can_be_sheared: true, equip_on_interact: true, equip_sound: SoundEvent::EntityHappyGhastEquip, shearing_sound: SoundEvent::EntityHappyGhastUnequip, slot: EquipmentSlot::Body, ..Equippable::new() }, ItemKind::WitherSkeletonSkull => Equippable { slot: EquipmentSlot::Head, swappable: false, ..Equippable::new() }, ItemKind::WolfArmor => Equippable { allowed_entities: Some(HolderSet::Direct { contents: vec![EntityKind::Wolf], }), asset_id: Some("minecraft:armadillo_scute".into()), can_be_sheared: true, equip_sound: SoundEvent::ItemArmorEquipWolf, shearing_sound: SoundEvent::ItemArmorUnequipWolf, slot: EquipmentSlot::Body, ..Equippable::new() }, ItemKind::YellowCarpet => Equippable { allowed_entities: Some(HolderSet::Direct { contents: vec![EntityKind::Llama, EntityKind::TraderLlama], }), asset_id: Some("minecraft:yellow_carpet".into()), can_be_sheared: true, equip_sound: SoundEvent::EntityLlamaSwag, shearing_sound: SoundEvent::ItemLlamaCarpetUnequip, slot: EquipmentSlot::Body, ..Equippable::new() }, ItemKind::YellowHarness => Equippable { allowed_entities: Some(HolderSet::Direct { contents: azalea_registry::tags::entities::CAN_EQUIP_HARNESS .clone() .into_iter() .collect(), }), asset_id: Some("minecraft:yellow_harness".into()), can_be_sheared: true, equip_on_interact: true, equip_sound: SoundEvent::EntityHappyGhastEquip, shearing_sound: SoundEvent::EntityHappyGhastUnequip, slot: EquipmentSlot::Body, ..Equippable::new() }, ItemKind::ZombieHead => Equippable { slot: EquipmentSlot::Head, swappable: false, ..Equippable::new() }, _ => return None, }; Some(value) } } impl DefaultableComponent for Fireworks { fn default_for_item(item: ItemKind) -> Option { let value = match item { ItemKind::FireworkRocket => Fireworks { flight_duration: 1, ..Fireworks::new() }, _ => return None, }; Some(value) } } impl DefaultableComponent for Food { fn default_for_item(item: ItemKind) -> Option { let value = match item { ItemKind::Apple => Food { nutrition: 4, saturation: 2.4, ..Food::new() }, ItemKind::BakedPotato => Food { nutrition: 5, saturation: 6.0, ..Food::new() }, ItemKind::Beef => Food { nutrition: 3, saturation: 1.8000001, ..Food::new() }, ItemKind::Beetroot => Food { nutrition: 1, saturation: 1.2, ..Food::new() }, ItemKind::BeetrootSoup => Food { nutrition: 6, saturation: 7.2000003, ..Food::new() }, ItemKind::Bread => Food { nutrition: 5, saturation: 6.0, ..Food::new() }, ItemKind::Carrot => Food { nutrition: 3, saturation: 3.6000001, ..Food::new() }, ItemKind::Chicken => Food { nutrition: 2, saturation: 1.2, ..Food::new() }, ItemKind::ChorusFruit => Food { can_always_eat: true, nutrition: 4, saturation: 2.4, }, ItemKind::Cod => Food { nutrition: 2, saturation: 0.4, ..Food::new() }, ItemKind::CodBucket => Food { nutrition: 2, saturation: 0.4, ..Food::new() }, ItemKind::CookedBeef => Food { nutrition: 8, saturation: 12.8, ..Food::new() }, ItemKind::CookedChicken => Food { nutrition: 6, saturation: 7.2000003, ..Food::new() }, ItemKind::CookedCod => Food { nutrition: 5, saturation: 6.0, ..Food::new() }, ItemKind::CookedMutton => Food { nutrition: 6, saturation: 9.6, ..Food::new() }, ItemKind::CookedPorkchop => Food { nutrition: 8, saturation: 12.8, ..Food::new() }, ItemKind::CookedRabbit => Food { nutrition: 5, saturation: 6.0, ..Food::new() }, ItemKind::CookedSalmon => Food { nutrition: 6, saturation: 9.6, ..Food::new() }, ItemKind::Cookie => Food { nutrition: 2, saturation: 0.4, ..Food::new() }, ItemKind::DriedKelp => Food { nutrition: 1, saturation: 0.6, ..Food::new() }, ItemKind::EnchantedGoldenApple => Food { can_always_eat: true, nutrition: 4, saturation: 9.6, }, ItemKind::GlowBerries => Food { nutrition: 2, saturation: 0.4, ..Food::new() }, ItemKind::GoldenApple => Food { can_always_eat: true, nutrition: 4, saturation: 9.6, }, ItemKind::GoldenCarrot => Food { nutrition: 6, saturation: 14.400001, ..Food::new() }, ItemKind::HoneyBottle => Food { can_always_eat: true, nutrition: 6, saturation: 1.2, }, ItemKind::MelonSlice => Food { nutrition: 2, saturation: 1.2, ..Food::new() }, ItemKind::MushroomStew => Food { nutrition: 6, saturation: 7.2000003, ..Food::new() }, ItemKind::Mutton => Food { nutrition: 2, saturation: 1.2, ..Food::new() }, ItemKind::PoisonousPotato => Food { nutrition: 2, saturation: 1.2, ..Food::new() }, ItemKind::Porkchop => Food { nutrition: 3, saturation: 1.8000001, ..Food::new() }, ItemKind::Potato => Food { nutrition: 1, saturation: 0.6, ..Food::new() }, ItemKind::Pufferfish => Food { nutrition: 1, saturation: 0.2, ..Food::new() }, ItemKind::PufferfishBucket => Food { nutrition: 1, saturation: 0.2, ..Food::new() }, ItemKind::PumpkinPie => Food { nutrition: 8, saturation: 4.8, ..Food::new() }, ItemKind::Rabbit => Food { nutrition: 3, saturation: 1.8000001, ..Food::new() }, ItemKind::RabbitStew => Food { nutrition: 10, saturation: 12.0, ..Food::new() }, ItemKind::RottenFlesh => Food { nutrition: 4, saturation: 0.8, ..Food::new() }, ItemKind::Salmon => Food { nutrition: 2, saturation: 0.4, ..Food::new() }, ItemKind::SalmonBucket => Food { nutrition: 2, saturation: 0.4, ..Food::new() }, ItemKind::SpiderEye => Food { nutrition: 2, saturation: 3.2, ..Food::new() }, ItemKind::SuspiciousStew => Food { can_always_eat: true, nutrition: 6, saturation: 7.2000003, }, ItemKind::SweetBerries => Food { nutrition: 2, saturation: 0.4, ..Food::new() }, ItemKind::TropicalFish => Food { nutrition: 1, saturation: 0.2, ..Food::new() }, ItemKind::TropicalFishBucket => Food { nutrition: 1, saturation: 0.2, ..Food::new() }, _ => return None, }; Some(value) } } impl DefaultableComponent for Glider { fn default_for_item(item: ItemKind) -> Option { let value = match item { ItemKind::Elytra => Glider, _ => return None, }; Some(value) } } impl DefaultableComponent for Instrument { fn default_for_item(item: ItemKind) -> Option { let value = match item { ItemKind::GoatHorn => { azalea_registry::Holder::Reference(azalea_registry::data::Instrument::new_raw(0)) } _ => return None, }; Some(Instrument { value: value }) } } #[rustfmt::skip] static ITEM_MODEL_VALUES: [&str; 1506] = ["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:golden_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: ItemKind) -> Option { let value = ITEM_MODEL_VALUES[item as usize]; Some(ItemModel { resource_location: value.into(), }) } } #[rustfmt::skip] static ITEM_NAME_VALUES: [&str; 1506] = ["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.golden_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: ItemKind) -> Option { let value = ITEM_NAME_VALUES[item as usize]; Some(ItemName { name: TranslatableComponent::from(value).into(), }) } } impl DefaultableComponent for JukeboxPlayable { fn default_for_item(item: ItemKind) -> Option { let value = match item { ItemKind::MusicDisc11 => { azalea_registry::Holder::Reference(azalea_registry::data::JukeboxSong::new_raw(0)) } ItemKind::MusicDisc13 => { azalea_registry::Holder::Reference(azalea_registry::data::JukeboxSong::new_raw(0)) } ItemKind::MusicDisc5 => { azalea_registry::Holder::Reference(azalea_registry::data::JukeboxSong::new_raw(0)) } ItemKind::MusicDiscBlocks => { azalea_registry::Holder::Reference(azalea_registry::data::JukeboxSong::new_raw(0)) } ItemKind::MusicDiscCat => { azalea_registry::Holder::Reference(azalea_registry::data::JukeboxSong::new_raw(0)) } ItemKind::MusicDiscChirp => { azalea_registry::Holder::Reference(azalea_registry::data::JukeboxSong::new_raw(0)) } ItemKind::MusicDiscCreator => { azalea_registry::Holder::Reference(azalea_registry::data::JukeboxSong::new_raw(0)) } ItemKind::MusicDiscCreatorMusicBox => { azalea_registry::Holder::Reference(azalea_registry::data::JukeboxSong::new_raw(0)) } ItemKind::MusicDiscFar => { azalea_registry::Holder::Reference(azalea_registry::data::JukeboxSong::new_raw(0)) } ItemKind::MusicDiscLavaChicken => { azalea_registry::Holder::Reference(azalea_registry::data::JukeboxSong::new_raw(0)) } ItemKind::MusicDiscMall => { azalea_registry::Holder::Reference(azalea_registry::data::JukeboxSong::new_raw(0)) } ItemKind::MusicDiscMellohi => { azalea_registry::Holder::Reference(azalea_registry::data::JukeboxSong::new_raw(0)) } ItemKind::MusicDiscOtherside => { azalea_registry::Holder::Reference(azalea_registry::data::JukeboxSong::new_raw(0)) } ItemKind::MusicDiscPigstep => { azalea_registry::Holder::Reference(azalea_registry::data::JukeboxSong::new_raw(0)) } ItemKind::MusicDiscPrecipice => { azalea_registry::Holder::Reference(azalea_registry::data::JukeboxSong::new_raw(0)) } ItemKind::MusicDiscRelic => { azalea_registry::Holder::Reference(azalea_registry::data::JukeboxSong::new_raw(0)) } ItemKind::MusicDiscStal => { azalea_registry::Holder::Reference(azalea_registry::data::JukeboxSong::new_raw(0)) } ItemKind::MusicDiscStrad => { azalea_registry::Holder::Reference(azalea_registry::data::JukeboxSong::new_raw(0)) } ItemKind::MusicDiscTears => { azalea_registry::Holder::Reference(azalea_registry::data::JukeboxSong::new_raw(0)) } ItemKind::MusicDiscWait => { azalea_registry::Holder::Reference(azalea_registry::data::JukeboxSong::new_raw(0)) } ItemKind::MusicDiscWard => { azalea_registry::Holder::Reference(azalea_registry::data::JukeboxSong::new_raw(0)) } _ => return None, }; Some(JukeboxPlayable { value: value }) } } impl DefaultableComponent for KineticWeapon { fn default_for_item(item: ItemKind) -> Option { let value = match item { ItemKind::CopperSpear => KineticWeapon { damage_conditions: Some(KineticWeaponCondition { max_duration_ticks: 250, min_relative_speed: 4.6, ..KineticWeaponCondition::new() }), damage_multiplier: 0.82, delay_ticks: 13, dismount_conditions: Some(KineticWeaponCondition { max_duration_ticks: 80, min_speed: 12.0, ..KineticWeaponCondition::new() }), forward_movement: 0.38, hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)), knockback_conditions: Some(KineticWeaponCondition { max_duration_ticks: 165, min_speed: 5.1, ..KineticWeaponCondition::new() }), sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearUse)), ..KineticWeapon::new() }, ItemKind::DiamondSpear => KineticWeapon { damage_conditions: Some(KineticWeaponCondition { max_duration_ticks: 200, min_relative_speed: 4.6, ..KineticWeaponCondition::new() }), damage_multiplier: 1.075, delay_ticks: 10, dismount_conditions: Some(KineticWeaponCondition { max_duration_ticks: 60, min_speed: 10.0, ..KineticWeaponCondition::new() }), forward_movement: 0.38, hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)), knockback_conditions: Some(KineticWeaponCondition { max_duration_ticks: 130, min_speed: 5.1, ..KineticWeaponCondition::new() }), sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearUse)), ..KineticWeapon::new() }, ItemKind::GoldenSpear => KineticWeapon { damage_conditions: Some(KineticWeaponCondition { max_duration_ticks: 275, min_relative_speed: 4.6, ..KineticWeaponCondition::new() }), damage_multiplier: 0.7, delay_ticks: 14, dismount_conditions: Some(KineticWeaponCondition { max_duration_ticks: 70, min_speed: 13.0, ..KineticWeaponCondition::new() }), forward_movement: 0.38, hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)), knockback_conditions: Some(KineticWeaponCondition { max_duration_ticks: 170, min_speed: 5.1, ..KineticWeaponCondition::new() }), sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearUse)), ..KineticWeapon::new() }, ItemKind::IronSpear => KineticWeapon { damage_conditions: Some(KineticWeaponCondition { max_duration_ticks: 225, min_relative_speed: 4.6, ..KineticWeaponCondition::new() }), damage_multiplier: 0.95, delay_ticks: 12, dismount_conditions: Some(KineticWeaponCondition { max_duration_ticks: 50, min_speed: 11.0, ..KineticWeaponCondition::new() }), forward_movement: 0.38, hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)), knockback_conditions: Some(KineticWeaponCondition { max_duration_ticks: 135, min_speed: 5.1, ..KineticWeaponCondition::new() }), sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearUse)), ..KineticWeapon::new() }, ItemKind::NetheriteSpear => KineticWeapon { damage_conditions: Some(KineticWeaponCondition { max_duration_ticks: 175, min_relative_speed: 4.6, ..KineticWeaponCondition::new() }), damage_multiplier: 1.2, delay_ticks: 8, dismount_conditions: Some(KineticWeaponCondition { max_duration_ticks: 50, min_speed: 9.0, ..KineticWeaponCondition::new() }), forward_movement: 0.38, hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)), knockback_conditions: Some(KineticWeaponCondition { max_duration_ticks: 110, min_speed: 5.1, ..KineticWeaponCondition::new() }), sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearUse)), ..KineticWeapon::new() }, ItemKind::StoneSpear => KineticWeapon { damage_conditions: Some(KineticWeaponCondition { max_duration_ticks: 275, min_relative_speed: 4.6, ..KineticWeaponCondition::new() }), damage_multiplier: 0.82, delay_ticks: 14, dismount_conditions: Some(KineticWeaponCondition { max_duration_ticks: 90, min_speed: 13.0, ..KineticWeaponCondition::new() }), forward_movement: 0.38, hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)), knockback_conditions: Some(KineticWeaponCondition { max_duration_ticks: 180, min_speed: 5.1, ..KineticWeaponCondition::new() }), sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearUse)), ..KineticWeapon::new() }, ItemKind::WoodenSpear => KineticWeapon { damage_conditions: Some(KineticWeaponCondition { max_duration_ticks: 300, min_relative_speed: 4.6, ..KineticWeaponCondition::new() }), damage_multiplier: 0.7, delay_ticks: 15, dismount_conditions: Some(KineticWeaponCondition { max_duration_ticks: 100, min_speed: 14.0, ..KineticWeaponCondition::new() }), forward_movement: 0.38, hit_sound: Some(azalea_registry::Holder::Reference( SoundEvent::ItemSpearWoodHit, )), knockback_conditions: Some(KineticWeaponCondition { max_duration_ticks: 200, min_speed: 5.1, ..KineticWeaponCondition::new() }), sound: Some(azalea_registry::Holder::Reference( SoundEvent::ItemSpearWoodUse, )), ..KineticWeapon::new() }, _ => return None, }; Some(value) } } impl DefaultableComponent for Lore { fn default_for_item(_item: ItemKind) -> Option { Some(Lore { lines: vec![] }) } } impl DefaultableComponent for MapColor { fn default_for_item(item: ItemKind) -> Option { let value = match item { ItemKind::FilledMap => 4603950, _ => return None, }; Some(MapColor { color: value }) } } impl DefaultableComponent for MapDecorations { fn default_for_item(item: ItemKind) -> Option { let value = match item { ItemKind::FilledMap => NbtCompound::from_values(vec![]), _ => return None, }; Some(MapDecorations { decorations: value }) } } impl DefaultableComponent for MaxDamage { fn default_for_item(item: ItemKind) -> Option { let value = match item { 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 }) } } #[rustfmt::skip] static MAX_STACK_SIZE_VALUES: [i32; 1506] = [64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,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: ItemKind) -> Option { let value = MAX_STACK_SIZE_VALUES[item as usize]; Some(MaxStackSize { count: value }) } } impl DefaultableComponent for MinimumAttackCharge { fn default_for_item(item: ItemKind) -> Option { let value = match item { 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 OminousBottleAmplifier { fn default_for_item(item: ItemKind) -> Option { let value = match item { ItemKind::OminousBottle => 0, _ => return None, }; Some(OminousBottleAmplifier { amplifier: value }) } } impl DefaultableComponent for PiercingWeapon { fn default_for_item(item: ItemKind) -> Option { let value = match item { ItemKind::CopperSpear => PiercingWeapon { hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)), sound: Some(azalea_registry::Holder::Reference( SoundEvent::ItemSpearAttack, )), ..PiercingWeapon::new() }, ItemKind::DiamondSpear => PiercingWeapon { hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)), sound: Some(azalea_registry::Holder::Reference( SoundEvent::ItemSpearAttack, )), ..PiercingWeapon::new() }, ItemKind::GoldenSpear => PiercingWeapon { hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)), sound: Some(azalea_registry::Holder::Reference( SoundEvent::ItemSpearAttack, )), ..PiercingWeapon::new() }, ItemKind::IronSpear => PiercingWeapon { hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)), sound: Some(azalea_registry::Holder::Reference( SoundEvent::ItemSpearAttack, )), ..PiercingWeapon::new() }, ItemKind::NetheriteSpear => PiercingWeapon { hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)), sound: Some(azalea_registry::Holder::Reference( SoundEvent::ItemSpearAttack, )), ..PiercingWeapon::new() }, ItemKind::StoneSpear => PiercingWeapon { hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)), sound: Some(azalea_registry::Holder::Reference( SoundEvent::ItemSpearAttack, )), ..PiercingWeapon::new() }, ItemKind::WoodenSpear => PiercingWeapon { hit_sound: Some(azalea_registry::Holder::Reference( SoundEvent::ItemSpearWoodHit, )), sound: Some(azalea_registry::Holder::Reference( SoundEvent::ItemSpearWoodAttack, )), ..PiercingWeapon::new() }, _ => return None, }; Some(value) } } impl DefaultableComponent for PotDecorations { fn default_for_item(item: ItemKind) -> Option { let value = match item { ItemKind::DecoratedPot => vec![ ItemKind::Brick, ItemKind::Brick, ItemKind::Brick, ItemKind::Brick, ], _ => return None, }; Some(PotDecorations { items: value }) } } impl DefaultableComponent for PotionContents { fn default_for_item(item: ItemKind) -> Option { let value = match item { 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: ItemKind) -> Option { let value = match item { ItemKind::LingeringPotion => 0.25, ItemKind::TippedArrow => 0.125, _ => return None, }; Some(PotionDurationScale { value: value }) } } impl DefaultableComponent for ProvidesBannerPatterns { fn default_for_item(item: ItemKind) -> Option { let value = match item { ItemKind::BordureIndentedBannerPattern => HolderSet::Direct { contents: vec![] }, ItemKind::CreeperBannerPattern => HolderSet::Direct { contents: vec![] }, ItemKind::FieldMasonedBannerPattern => HolderSet::Direct { contents: vec![] }, ItemKind::FlowBannerPattern => HolderSet::Direct { contents: vec![] }, ItemKind::FlowerBannerPattern => HolderSet::Direct { contents: vec![] }, ItemKind::GlobeBannerPattern => HolderSet::Direct { contents: vec![] }, ItemKind::GusterBannerPattern => HolderSet::Direct { contents: vec![] }, ItemKind::MojangBannerPattern => HolderSet::Direct { contents: vec![] }, ItemKind::PiglinBannerPattern => HolderSet::Direct { contents: vec![] }, ItemKind::SkullBannerPattern => HolderSet::Direct { contents: vec![] }, _ => return None, }; Some(ProvidesBannerPatterns { key: value }) } } impl DefaultableComponent for ProvidesTrimMaterial { fn default_for_item(item: ItemKind) -> Option { let value = match item { ItemKind::AmethystShard => { azalea_registry::Holder::Reference(azalea_registry::data::TrimMaterial::new_raw(0)) } ItemKind::CopperIngot => { azalea_registry::Holder::Reference(azalea_registry::data::TrimMaterial::new_raw(0)) } ItemKind::Diamond => { azalea_registry::Holder::Reference(azalea_registry::data::TrimMaterial::new_raw(0)) } ItemKind::Emerald => { azalea_registry::Holder::Reference(azalea_registry::data::TrimMaterial::new_raw(0)) } ItemKind::GoldIngot => { azalea_registry::Holder::Reference(azalea_registry::data::TrimMaterial::new_raw(0)) } ItemKind::IronIngot => { azalea_registry::Holder::Reference(azalea_registry::data::TrimMaterial::new_raw(0)) } ItemKind::LapisLazuli => { azalea_registry::Holder::Reference(azalea_registry::data::TrimMaterial::new_raw(0)) } ItemKind::NetheriteIngot => { azalea_registry::Holder::Reference(azalea_registry::data::TrimMaterial::new_raw(0)) } ItemKind::Quartz => { azalea_registry::Holder::Reference(azalea_registry::data::TrimMaterial::new_raw(0)) } ItemKind::Redstone => { azalea_registry::Holder::Reference(azalea_registry::data::TrimMaterial::new_raw(0)) } ItemKind::ResinBrick => { azalea_registry::Holder::Reference(azalea_registry::data::TrimMaterial::new_raw(0)) } _ => return None, }; Some(ProvidesTrimMaterial { value: value }) } } impl DefaultableComponent for Rarity { fn default_for_item(item: ItemKind) -> Option { let value = match item { 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 Recipes { fn default_for_item(item: ItemKind) -> Option { let value = match item { ItemKind::KnowledgeBook => vec![], _ => return None, }; Some(Recipes { recipes: value }) } } impl DefaultableComponent for RepairCost { fn default_for_item(_item: ItemKind) -> Option { Some(RepairCost { cost: 0 }) } } impl DefaultableComponent for Repairable { fn default_for_item(item: ItemKind) -> Option { let value = match item { ItemKind::ChainmailBoots => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_CHAIN_ARMOR .clone() .into_iter() .collect(), }, ItemKind::ChainmailChestplate => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_CHAIN_ARMOR .clone() .into_iter() .collect(), }, ItemKind::ChainmailHelmet => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_CHAIN_ARMOR .clone() .into_iter() .collect(), }, ItemKind::ChainmailLeggings => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_CHAIN_ARMOR .clone() .into_iter() .collect(), }, ItemKind::CopperAxe => HolderSet::Direct { contents: azalea_registry::tags::items::COPPER_TOOL_MATERIALS .clone() .into_iter() .collect(), }, ItemKind::CopperBoots => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_COPPER_ARMOR .clone() .into_iter() .collect(), }, ItemKind::CopperChestplate => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_COPPER_ARMOR .clone() .into_iter() .collect(), }, ItemKind::CopperHelmet => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_COPPER_ARMOR .clone() .into_iter() .collect(), }, ItemKind::CopperHoe => HolderSet::Direct { contents: azalea_registry::tags::items::COPPER_TOOL_MATERIALS .clone() .into_iter() .collect(), }, ItemKind::CopperLeggings => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_COPPER_ARMOR .clone() .into_iter() .collect(), }, ItemKind::CopperPickaxe => HolderSet::Direct { contents: azalea_registry::tags::items::COPPER_TOOL_MATERIALS .clone() .into_iter() .collect(), }, ItemKind::CopperShovel => HolderSet::Direct { contents: azalea_registry::tags::items::COPPER_TOOL_MATERIALS .clone() .into_iter() .collect(), }, ItemKind::CopperSpear => HolderSet::Direct { contents: azalea_registry::tags::items::COPPER_TOOL_MATERIALS .clone() .into_iter() .collect(), }, ItemKind::CopperSword => HolderSet::Direct { contents: azalea_registry::tags::items::COPPER_TOOL_MATERIALS .clone() .into_iter() .collect(), }, ItemKind::DiamondAxe => HolderSet::Direct { contents: azalea_registry::tags::items::DIAMOND_TOOL_MATERIALS .clone() .into_iter() .collect(), }, ItemKind::DiamondBoots => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_DIAMOND_ARMOR .clone() .into_iter() .collect(), }, ItemKind::DiamondChestplate => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_DIAMOND_ARMOR .clone() .into_iter() .collect(), }, ItemKind::DiamondHelmet => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_DIAMOND_ARMOR .clone() .into_iter() .collect(), }, ItemKind::DiamondHoe => HolderSet::Direct { contents: azalea_registry::tags::items::DIAMOND_TOOL_MATERIALS .clone() .into_iter() .collect(), }, ItemKind::DiamondLeggings => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_DIAMOND_ARMOR .clone() .into_iter() .collect(), }, ItemKind::DiamondPickaxe => HolderSet::Direct { contents: azalea_registry::tags::items::DIAMOND_TOOL_MATERIALS .clone() .into_iter() .collect(), }, ItemKind::DiamondShovel => HolderSet::Direct { contents: azalea_registry::tags::items::DIAMOND_TOOL_MATERIALS .clone() .into_iter() .collect(), }, ItemKind::DiamondSpear => HolderSet::Direct { contents: azalea_registry::tags::items::DIAMOND_TOOL_MATERIALS .clone() .into_iter() .collect(), }, ItemKind::DiamondSword => HolderSet::Direct { contents: azalea_registry::tags::items::DIAMOND_TOOL_MATERIALS .clone() .into_iter() .collect(), }, ItemKind::Elytra => HolderSet::Direct { contents: vec![ItemKind::PhantomMembrane], }, ItemKind::GoldenAxe => HolderSet::Direct { contents: azalea_registry::tags::items::GOLD_TOOL_MATERIALS .clone() .into_iter() .collect(), }, ItemKind::GoldenBoots => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_GOLD_ARMOR .clone() .into_iter() .collect(), }, ItemKind::GoldenChestplate => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_GOLD_ARMOR .clone() .into_iter() .collect(), }, ItemKind::GoldenHelmet => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_GOLD_ARMOR .clone() .into_iter() .collect(), }, ItemKind::GoldenHoe => HolderSet::Direct { contents: azalea_registry::tags::items::GOLD_TOOL_MATERIALS .clone() .into_iter() .collect(), }, ItemKind::GoldenLeggings => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_GOLD_ARMOR .clone() .into_iter() .collect(), }, ItemKind::GoldenPickaxe => HolderSet::Direct { contents: azalea_registry::tags::items::GOLD_TOOL_MATERIALS .clone() .into_iter() .collect(), }, ItemKind::GoldenShovel => HolderSet::Direct { contents: azalea_registry::tags::items::GOLD_TOOL_MATERIALS .clone() .into_iter() .collect(), }, ItemKind::GoldenSpear => HolderSet::Direct { contents: azalea_registry::tags::items::GOLD_TOOL_MATERIALS .clone() .into_iter() .collect(), }, ItemKind::GoldenSword => HolderSet::Direct { contents: azalea_registry::tags::items::GOLD_TOOL_MATERIALS .clone() .into_iter() .collect(), }, ItemKind::IronAxe => HolderSet::Direct { contents: azalea_registry::tags::items::IRON_TOOL_MATERIALS .clone() .into_iter() .collect(), }, ItemKind::IronBoots => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_IRON_ARMOR .clone() .into_iter() .collect(), }, ItemKind::IronChestplate => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_IRON_ARMOR .clone() .into_iter() .collect(), }, ItemKind::IronHelmet => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_IRON_ARMOR .clone() .into_iter() .collect(), }, ItemKind::IronHoe => HolderSet::Direct { contents: azalea_registry::tags::items::IRON_TOOL_MATERIALS .clone() .into_iter() .collect(), }, ItemKind::IronLeggings => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_IRON_ARMOR .clone() .into_iter() .collect(), }, ItemKind::IronPickaxe => HolderSet::Direct { contents: azalea_registry::tags::items::IRON_TOOL_MATERIALS .clone() .into_iter() .collect(), }, ItemKind::IronShovel => HolderSet::Direct { contents: azalea_registry::tags::items::IRON_TOOL_MATERIALS .clone() .into_iter() .collect(), }, ItemKind::IronSpear => HolderSet::Direct { contents: azalea_registry::tags::items::IRON_TOOL_MATERIALS .clone() .into_iter() .collect(), }, ItemKind::IronSword => HolderSet::Direct { contents: azalea_registry::tags::items::IRON_TOOL_MATERIALS .clone() .into_iter() .collect(), }, ItemKind::LeatherBoots => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_LEATHER_ARMOR .clone() .into_iter() .collect(), }, ItemKind::LeatherChestplate => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_LEATHER_ARMOR .clone() .into_iter() .collect(), }, ItemKind::LeatherHelmet => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_LEATHER_ARMOR .clone() .into_iter() .collect(), }, ItemKind::LeatherLeggings => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_LEATHER_ARMOR .clone() .into_iter() .collect(), }, ItemKind::Mace => HolderSet::Direct { contents: vec![ItemKind::BreezeRod], }, ItemKind::NetheriteAxe => HolderSet::Direct { contents: azalea_registry::tags::items::NETHERITE_TOOL_MATERIALS .clone() .into_iter() .collect(), }, ItemKind::NetheriteBoots => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_NETHERITE_ARMOR .clone() .into_iter() .collect(), }, ItemKind::NetheriteChestplate => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_NETHERITE_ARMOR .clone() .into_iter() .collect(), }, ItemKind::NetheriteHelmet => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_NETHERITE_ARMOR .clone() .into_iter() .collect(), }, ItemKind::NetheriteHoe => HolderSet::Direct { contents: azalea_registry::tags::items::NETHERITE_TOOL_MATERIALS .clone() .into_iter() .collect(), }, ItemKind::NetheriteLeggings => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_NETHERITE_ARMOR .clone() .into_iter() .collect(), }, ItemKind::NetheritePickaxe => HolderSet::Direct { contents: azalea_registry::tags::items::NETHERITE_TOOL_MATERIALS .clone() .into_iter() .collect(), }, ItemKind::NetheriteShovel => HolderSet::Direct { contents: azalea_registry::tags::items::NETHERITE_TOOL_MATERIALS .clone() .into_iter() .collect(), }, ItemKind::NetheriteSpear => HolderSet::Direct { contents: azalea_registry::tags::items::NETHERITE_TOOL_MATERIALS .clone() .into_iter() .collect(), }, ItemKind::NetheriteSword => HolderSet::Direct { contents: azalea_registry::tags::items::NETHERITE_TOOL_MATERIALS .clone() .into_iter() .collect(), }, ItemKind::Shield => HolderSet::Direct { contents: azalea_registry::tags::items::WOODEN_TOOL_MATERIALS .clone() .into_iter() .collect(), }, ItemKind::StoneAxe => HolderSet::Direct { contents: azalea_registry::tags::items::STONE_TOOL_MATERIALS .clone() .into_iter() .collect(), }, ItemKind::StoneHoe => HolderSet::Direct { contents: azalea_registry::tags::items::STONE_TOOL_MATERIALS .clone() .into_iter() .collect(), }, ItemKind::StonePickaxe => HolderSet::Direct { contents: azalea_registry::tags::items::STONE_TOOL_MATERIALS .clone() .into_iter() .collect(), }, ItemKind::StoneShovel => HolderSet::Direct { contents: azalea_registry::tags::items::STONE_TOOL_MATERIALS .clone() .into_iter() .collect(), }, ItemKind::StoneSpear => HolderSet::Direct { contents: azalea_registry::tags::items::STONE_TOOL_MATERIALS .clone() .into_iter() .collect(), }, ItemKind::StoneSword => HolderSet::Direct { contents: azalea_registry::tags::items::STONE_TOOL_MATERIALS .clone() .into_iter() .collect(), }, ItemKind::TurtleHelmet => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_TURTLE_HELMET .clone() .into_iter() .collect(), }, ItemKind::WolfArmor => HolderSet::Direct { contents: azalea_registry::tags::items::REPAIRS_WOLF_ARMOR .clone() .into_iter() .collect(), }, ItemKind::WoodenAxe => HolderSet::Direct { contents: azalea_registry::tags::items::WOODEN_TOOL_MATERIALS .clone() .into_iter() .collect(), }, ItemKind::WoodenHoe => HolderSet::Direct { contents: azalea_registry::tags::items::WOODEN_TOOL_MATERIALS .clone() .into_iter() .collect(), }, ItemKind::WoodenPickaxe => HolderSet::Direct { contents: azalea_registry::tags::items::WOODEN_TOOL_MATERIALS .clone() .into_iter() .collect(), }, ItemKind::WoodenShovel => HolderSet::Direct { contents: azalea_registry::tags::items::WOODEN_TOOL_MATERIALS .clone() .into_iter() .collect(), }, ItemKind::WoodenSpear => HolderSet::Direct { contents: azalea_registry::tags::items::WOODEN_TOOL_MATERIALS .clone() .into_iter() .collect(), }, ItemKind::WoodenSword => HolderSet::Direct { contents: azalea_registry::tags::items::WOODEN_TOOL_MATERIALS .clone() .into_iter() .collect(), }, _ => return None, }; Some(Repairable { items: value }) } } impl DefaultableComponent for StoredEnchantments { fn default_for_item(item: ItemKind) -> Option { let value = match item { ItemKind::EnchantedBook => HashMap::from_iter([]), _ => return None, }; Some(StoredEnchantments { enchantments: value, }) } } impl DefaultableComponent for SuspiciousStewEffects { fn default_for_item(item: ItemKind) -> Option { let value = match item { ItemKind::SuspiciousStew => vec![], _ => return None, }; Some(SuspiciousStewEffects { effects: value }) } } impl DefaultableComponent for SwingAnimation { fn default_for_item(item: ItemKind) -> Option { let value = match item { ItemKind::CopperSpear => SwingAnimation { kind: SwingAnimationKind::Stab, duration: 17, }, ItemKind::DiamondSpear => SwingAnimation { kind: SwingAnimationKind::Stab, duration: 21, }, ItemKind::GoldenSpear => SwingAnimation { kind: SwingAnimationKind::Stab, duration: 19, }, ItemKind::IronSpear => SwingAnimation { kind: SwingAnimationKind::Stab, duration: 19, }, ItemKind::NetheriteSpear => SwingAnimation { kind: SwingAnimationKind::Stab, duration: 23, }, ItemKind::StoneSpear => SwingAnimation { kind: SwingAnimationKind::Stab, duration: 15, }, ItemKind::WoodenSpear => SwingAnimation { kind: SwingAnimationKind::Stab, duration: 13, }, _ => SwingAnimation::new(), }; Some(value) } } impl DefaultableComponent for Tool { fn default_for_item(item: ItemKind) -> Option { let value = match item { ItemKind::CopperAxe => Tool { rules: vec![ ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::INCORRECT_FOR_COPPER_TOOL .clone() .into_iter() .collect(), }, correct_for_drops: Some(false), ..ToolRule::new() }, ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::MINEABLE_AXE .clone() .into_iter() .collect(), }, correct_for_drops: Some(true), speed: Some(5.0), }, ], ..Tool::new() }, ItemKind::CopperHoe => Tool { rules: vec![ ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::INCORRECT_FOR_COPPER_TOOL .clone() .into_iter() .collect(), }, correct_for_drops: Some(false), ..ToolRule::new() }, ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::MINEABLE_HOE .clone() .into_iter() .collect(), }, correct_for_drops: Some(true), speed: Some(5.0), }, ], ..Tool::new() }, ItemKind::CopperPickaxe => Tool { rules: vec![ ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::INCORRECT_FOR_COPPER_TOOL .clone() .into_iter() .collect(), }, correct_for_drops: Some(false), ..ToolRule::new() }, ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::MINEABLE_PICKAXE .clone() .into_iter() .collect(), }, correct_for_drops: Some(true), speed: Some(5.0), }, ], ..Tool::new() }, ItemKind::CopperShovel => Tool { rules: vec![ ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::INCORRECT_FOR_COPPER_TOOL .clone() .into_iter() .collect(), }, correct_for_drops: Some(false), ..ToolRule::new() }, ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::MINEABLE_SHOVEL .clone() .into_iter() .collect(), }, correct_for_drops: Some(true), speed: Some(5.0), }, ], ..Tool::new() }, ItemKind::CopperSword => Tool { can_destroy_blocks_in_creative: false, damage_per_block: 2, rules: vec![ ToolRule { blocks: HolderSet::Direct { contents: vec![BlockKind::Cobweb], }, correct_for_drops: Some(true), speed: Some(15.0), }, ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::SWORD_INSTANTLY_MINES .clone() .into_iter() .collect(), }, speed: Some(3.4028235e+38), ..ToolRule::new() }, ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::SWORD_EFFICIENT .clone() .into_iter() .collect(), }, speed: Some(1.5), ..ToolRule::new() }, ], ..Tool::new() }, ItemKind::DiamondAxe => Tool { rules: vec![ ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::INCORRECT_FOR_DIAMOND_TOOL .clone() .into_iter() .collect(), }, correct_for_drops: Some(false), ..ToolRule::new() }, ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::MINEABLE_AXE .clone() .into_iter() .collect(), }, correct_for_drops: Some(true), speed: Some(8.0), }, ], ..Tool::new() }, ItemKind::DiamondHoe => Tool { rules: vec![ ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::INCORRECT_FOR_DIAMOND_TOOL .clone() .into_iter() .collect(), }, correct_for_drops: Some(false), ..ToolRule::new() }, ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::MINEABLE_HOE .clone() .into_iter() .collect(), }, correct_for_drops: Some(true), speed: Some(8.0), }, ], ..Tool::new() }, ItemKind::DiamondPickaxe => Tool { rules: vec![ ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::INCORRECT_FOR_DIAMOND_TOOL .clone() .into_iter() .collect(), }, correct_for_drops: Some(false), ..ToolRule::new() }, ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::MINEABLE_PICKAXE .clone() .into_iter() .collect(), }, correct_for_drops: Some(true), speed: Some(8.0), }, ], ..Tool::new() }, ItemKind::DiamondShovel => Tool { rules: vec![ ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::INCORRECT_FOR_DIAMOND_TOOL .clone() .into_iter() .collect(), }, correct_for_drops: Some(false), ..ToolRule::new() }, ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::MINEABLE_SHOVEL .clone() .into_iter() .collect(), }, correct_for_drops: Some(true), speed: Some(8.0), }, ], ..Tool::new() }, ItemKind::DiamondSword => Tool { can_destroy_blocks_in_creative: false, damage_per_block: 2, rules: vec![ ToolRule { blocks: HolderSet::Direct { contents: vec![BlockKind::Cobweb], }, correct_for_drops: Some(true), speed: Some(15.0), }, ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::SWORD_INSTANTLY_MINES .clone() .into_iter() .collect(), }, speed: Some(3.4028235e+38), ..ToolRule::new() }, ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::SWORD_EFFICIENT .clone() .into_iter() .collect(), }, speed: Some(1.5), ..ToolRule::new() }, ], ..Tool::new() }, ItemKind::GoldenAxe => Tool { rules: vec![ ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::INCORRECT_FOR_GOLD_TOOL .clone() .into_iter() .collect(), }, correct_for_drops: Some(false), ..ToolRule::new() }, ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::MINEABLE_AXE .clone() .into_iter() .collect(), }, correct_for_drops: Some(true), speed: Some(12.0), }, ], ..Tool::new() }, ItemKind::GoldenHoe => Tool { rules: vec![ ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::INCORRECT_FOR_GOLD_TOOL .clone() .into_iter() .collect(), }, correct_for_drops: Some(false), ..ToolRule::new() }, ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::MINEABLE_HOE .clone() .into_iter() .collect(), }, correct_for_drops: Some(true), speed: Some(12.0), }, ], ..Tool::new() }, ItemKind::GoldenPickaxe => Tool { rules: vec![ ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::INCORRECT_FOR_GOLD_TOOL .clone() .into_iter() .collect(), }, correct_for_drops: Some(false), ..ToolRule::new() }, ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::MINEABLE_PICKAXE .clone() .into_iter() .collect(), }, correct_for_drops: Some(true), speed: Some(12.0), }, ], ..Tool::new() }, ItemKind::GoldenShovel => Tool { rules: vec![ ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::INCORRECT_FOR_GOLD_TOOL .clone() .into_iter() .collect(), }, correct_for_drops: Some(false), ..ToolRule::new() }, ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::MINEABLE_SHOVEL .clone() .into_iter() .collect(), }, correct_for_drops: Some(true), speed: Some(12.0), }, ], ..Tool::new() }, ItemKind::GoldenSword => Tool { can_destroy_blocks_in_creative: false, damage_per_block: 2, rules: vec![ ToolRule { blocks: HolderSet::Direct { contents: vec![BlockKind::Cobweb], }, correct_for_drops: Some(true), speed: Some(15.0), }, ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::SWORD_INSTANTLY_MINES .clone() .into_iter() .collect(), }, speed: Some(3.4028235e+38), ..ToolRule::new() }, ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::SWORD_EFFICIENT .clone() .into_iter() .collect(), }, speed: Some(1.5), ..ToolRule::new() }, ], ..Tool::new() }, ItemKind::IronAxe => Tool { rules: vec![ ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::INCORRECT_FOR_IRON_TOOL .clone() .into_iter() .collect(), }, correct_for_drops: Some(false), ..ToolRule::new() }, ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::MINEABLE_AXE .clone() .into_iter() .collect(), }, correct_for_drops: Some(true), speed: Some(6.0), }, ], ..Tool::new() }, ItemKind::IronHoe => Tool { rules: vec![ ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::INCORRECT_FOR_IRON_TOOL .clone() .into_iter() .collect(), }, correct_for_drops: Some(false), ..ToolRule::new() }, ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::MINEABLE_HOE .clone() .into_iter() .collect(), }, correct_for_drops: Some(true), speed: Some(6.0), }, ], ..Tool::new() }, ItemKind::IronPickaxe => Tool { rules: vec![ ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::INCORRECT_FOR_IRON_TOOL .clone() .into_iter() .collect(), }, correct_for_drops: Some(false), ..ToolRule::new() }, ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::MINEABLE_PICKAXE .clone() .into_iter() .collect(), }, correct_for_drops: Some(true), speed: Some(6.0), }, ], ..Tool::new() }, ItemKind::IronShovel => Tool { rules: vec![ ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::INCORRECT_FOR_IRON_TOOL .clone() .into_iter() .collect(), }, correct_for_drops: Some(false), ..ToolRule::new() }, ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::MINEABLE_SHOVEL .clone() .into_iter() .collect(), }, correct_for_drops: Some(true), speed: Some(6.0), }, ], ..Tool::new() }, ItemKind::IronSword => Tool { can_destroy_blocks_in_creative: false, damage_per_block: 2, rules: vec![ ToolRule { blocks: HolderSet::Direct { contents: vec![BlockKind::Cobweb], }, correct_for_drops: Some(true), speed: Some(15.0), }, ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::SWORD_INSTANTLY_MINES .clone() .into_iter() .collect(), }, speed: Some(3.4028235e+38), ..ToolRule::new() }, ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::SWORD_EFFICIENT .clone() .into_iter() .collect(), }, speed: Some(1.5), ..ToolRule::new() }, ], ..Tool::new() }, ItemKind::Mace => Tool { can_destroy_blocks_in_creative: false, damage_per_block: 2, rules: vec![], ..Tool::new() }, ItemKind::NetheriteAxe => Tool { rules: vec![ ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::INCORRECT_FOR_NETHERITE_TOOL .clone() .into_iter() .collect(), }, correct_for_drops: Some(false), ..ToolRule::new() }, ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::MINEABLE_AXE .clone() .into_iter() .collect(), }, correct_for_drops: Some(true), speed: Some(9.0), }, ], ..Tool::new() }, ItemKind::NetheriteHoe => Tool { rules: vec![ ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::INCORRECT_FOR_NETHERITE_TOOL .clone() .into_iter() .collect(), }, correct_for_drops: Some(false), ..ToolRule::new() }, ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::MINEABLE_HOE .clone() .into_iter() .collect(), }, correct_for_drops: Some(true), speed: Some(9.0), }, ], ..Tool::new() }, ItemKind::NetheritePickaxe => Tool { rules: vec![ ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::INCORRECT_FOR_NETHERITE_TOOL .clone() .into_iter() .collect(), }, correct_for_drops: Some(false), ..ToolRule::new() }, ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::MINEABLE_PICKAXE .clone() .into_iter() .collect(), }, correct_for_drops: Some(true), speed: Some(9.0), }, ], ..Tool::new() }, ItemKind::NetheriteShovel => Tool { rules: vec![ ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::INCORRECT_FOR_NETHERITE_TOOL .clone() .into_iter() .collect(), }, correct_for_drops: Some(false), ..ToolRule::new() }, ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::MINEABLE_SHOVEL .clone() .into_iter() .collect(), }, correct_for_drops: Some(true), speed: Some(9.0), }, ], ..Tool::new() }, ItemKind::NetheriteSword => Tool { can_destroy_blocks_in_creative: false, damage_per_block: 2, rules: vec![ ToolRule { blocks: HolderSet::Direct { contents: vec![BlockKind::Cobweb], }, correct_for_drops: Some(true), speed: Some(15.0), }, ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::SWORD_INSTANTLY_MINES .clone() .into_iter() .collect(), }, speed: Some(3.4028235e+38), ..ToolRule::new() }, ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::SWORD_EFFICIENT .clone() .into_iter() .collect(), }, speed: Some(1.5), ..ToolRule::new() }, ], ..Tool::new() }, ItemKind::Shears => Tool { rules: vec![ ToolRule { blocks: HolderSet::Direct { contents: vec![BlockKind::Cobweb], }, correct_for_drops: Some(true), speed: Some(15.0), }, ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::LEAVES .clone() .into_iter() .collect(), }, speed: Some(15.0), ..ToolRule::new() }, ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::WOOL .clone() .into_iter() .collect(), }, speed: Some(5.0), ..ToolRule::new() }, ToolRule { blocks: HolderSet::Direct { contents: vec![BlockKind::Vine, BlockKind::GlowLichen], }, speed: Some(2.0), ..ToolRule::new() }, ], ..Tool::new() }, ItemKind::StoneAxe => Tool { rules: vec![ ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::INCORRECT_FOR_STONE_TOOL .clone() .into_iter() .collect(), }, correct_for_drops: Some(false), ..ToolRule::new() }, ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::MINEABLE_AXE .clone() .into_iter() .collect(), }, correct_for_drops: Some(true), speed: Some(4.0), }, ], ..Tool::new() }, ItemKind::StoneHoe => Tool { rules: vec![ ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::INCORRECT_FOR_STONE_TOOL .clone() .into_iter() .collect(), }, correct_for_drops: Some(false), ..ToolRule::new() }, ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::MINEABLE_HOE .clone() .into_iter() .collect(), }, correct_for_drops: Some(true), speed: Some(4.0), }, ], ..Tool::new() }, ItemKind::StonePickaxe => Tool { rules: vec![ ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::INCORRECT_FOR_STONE_TOOL .clone() .into_iter() .collect(), }, correct_for_drops: Some(false), ..ToolRule::new() }, ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::MINEABLE_PICKAXE .clone() .into_iter() .collect(), }, correct_for_drops: Some(true), speed: Some(4.0), }, ], ..Tool::new() }, ItemKind::StoneShovel => Tool { rules: vec![ ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::INCORRECT_FOR_STONE_TOOL .clone() .into_iter() .collect(), }, correct_for_drops: Some(false), ..ToolRule::new() }, ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::MINEABLE_SHOVEL .clone() .into_iter() .collect(), }, correct_for_drops: Some(true), speed: Some(4.0), }, ], ..Tool::new() }, ItemKind::StoneSword => Tool { can_destroy_blocks_in_creative: false, damage_per_block: 2, rules: vec![ ToolRule { blocks: HolderSet::Direct { contents: vec![BlockKind::Cobweb], }, correct_for_drops: Some(true), speed: Some(15.0), }, ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::SWORD_INSTANTLY_MINES .clone() .into_iter() .collect(), }, speed: Some(3.4028235e+38), ..ToolRule::new() }, ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::SWORD_EFFICIENT .clone() .into_iter() .collect(), }, speed: Some(1.5), ..ToolRule::new() }, ], ..Tool::new() }, ItemKind::Trident => Tool { can_destroy_blocks_in_creative: false, damage_per_block: 2, rules: vec![], ..Tool::new() }, ItemKind::WoodenAxe => Tool { rules: vec![ ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::INCORRECT_FOR_WOODEN_TOOL .clone() .into_iter() .collect(), }, correct_for_drops: Some(false), ..ToolRule::new() }, ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::MINEABLE_AXE .clone() .into_iter() .collect(), }, correct_for_drops: Some(true), speed: Some(2.0), }, ], ..Tool::new() }, ItemKind::WoodenHoe => Tool { rules: vec![ ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::INCORRECT_FOR_WOODEN_TOOL .clone() .into_iter() .collect(), }, correct_for_drops: Some(false), ..ToolRule::new() }, ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::MINEABLE_HOE .clone() .into_iter() .collect(), }, correct_for_drops: Some(true), speed: Some(2.0), }, ], ..Tool::new() }, ItemKind::WoodenPickaxe => Tool { rules: vec![ ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::INCORRECT_FOR_WOODEN_TOOL .clone() .into_iter() .collect(), }, correct_for_drops: Some(false), ..ToolRule::new() }, ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::MINEABLE_PICKAXE .clone() .into_iter() .collect(), }, correct_for_drops: Some(true), speed: Some(2.0), }, ], ..Tool::new() }, ItemKind::WoodenShovel => Tool { rules: vec![ ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::INCORRECT_FOR_WOODEN_TOOL .clone() .into_iter() .collect(), }, correct_for_drops: Some(false), ..ToolRule::new() }, ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::MINEABLE_SHOVEL .clone() .into_iter() .collect(), }, correct_for_drops: Some(true), speed: Some(2.0), }, ], ..Tool::new() }, ItemKind::WoodenSword => Tool { can_destroy_blocks_in_creative: false, damage_per_block: 2, rules: vec![ ToolRule { blocks: HolderSet::Direct { contents: vec![BlockKind::Cobweb], }, correct_for_drops: Some(true), speed: Some(15.0), }, ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::SWORD_INSTANTLY_MINES .clone() .into_iter() .collect(), }, speed: Some(3.4028235e+38), ..ToolRule::new() }, ToolRule { blocks: HolderSet::Direct { contents: azalea_registry::tags::blocks::SWORD_EFFICIENT .clone() .into_iter() .collect(), }, speed: Some(1.5), ..ToolRule::new() }, ], ..Tool::new() }, _ => return None, }; Some(value) } } impl DefaultableComponent for TooltipDisplay { fn default_for_item(_item: ItemKind) -> Option { Some(TooltipDisplay::new()) } } impl DefaultableComponent for UseCooldown { fn default_for_item(item: ItemKind) -> Option { let value = match item { ItemKind::ChorusFruit => UseCooldown { seconds: 1.0, ..UseCooldown::new() }, ItemKind::EnderPearl => UseCooldown { seconds: 1.0, ..UseCooldown::new() }, ItemKind::WindCharge => UseCooldown { seconds: 0.5, ..UseCooldown::new() }, _ => return None, }; Some(value) } } impl DefaultableComponent for UseEffects { fn default_for_item(item: ItemKind) -> Option { let value = match item { ItemKind::CopperSpear => UseEffects { can_sprint: true, interact_vibrations: false, speed_multiplier: 1.0, }, ItemKind::DiamondSpear => UseEffects { can_sprint: true, interact_vibrations: false, speed_multiplier: 1.0, }, ItemKind::GoldenSpear => UseEffects { can_sprint: true, interact_vibrations: false, speed_multiplier: 1.0, }, ItemKind::IronSpear => UseEffects { can_sprint: true, interact_vibrations: false, speed_multiplier: 1.0, }, ItemKind::NetheriteSpear => UseEffects { can_sprint: true, interact_vibrations: false, speed_multiplier: 1.0, }, ItemKind::StoneSpear => UseEffects { can_sprint: true, interact_vibrations: false, speed_multiplier: 1.0, }, ItemKind::WoodenSpear => UseEffects { can_sprint: true, interact_vibrations: false, speed_multiplier: 1.0, }, _ => UseEffects::new(), }; Some(value) } } impl DefaultableComponent for UseRemainder { fn default_for_item(item: ItemKind) -> Option { let value = match item { 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 { convert_into: value, }) } } impl DefaultableComponent for Weapon { fn default_for_item(item: ItemKind) -> Option { let value = match item { ItemKind::CopperAxe => Weapon { disable_blocking_for_seconds: 5.0, item_damage_per_attack: 2, }, ItemKind::CopperHoe => Weapon { item_damage_per_attack: 2, ..Weapon::new() }, ItemKind::CopperPickaxe => Weapon { item_damage_per_attack: 2, ..Weapon::new() }, ItemKind::CopperShovel => Weapon { item_damage_per_attack: 2, ..Weapon::new() }, ItemKind::CopperSpear => Weapon::new(), ItemKind::CopperSword => Weapon::new(), ItemKind::DiamondAxe => Weapon { disable_blocking_for_seconds: 5.0, item_damage_per_attack: 2, }, ItemKind::DiamondHoe => Weapon { item_damage_per_attack: 2, ..Weapon::new() }, ItemKind::DiamondPickaxe => Weapon { item_damage_per_attack: 2, ..Weapon::new() }, ItemKind::DiamondShovel => Weapon { item_damage_per_attack: 2, ..Weapon::new() }, ItemKind::DiamondSpear => Weapon::new(), ItemKind::DiamondSword => Weapon::new(), ItemKind::GoldenAxe => Weapon { disable_blocking_for_seconds: 5.0, item_damage_per_attack: 2, }, ItemKind::GoldenHoe => Weapon { item_damage_per_attack: 2, ..Weapon::new() }, ItemKind::GoldenPickaxe => Weapon { item_damage_per_attack: 2, ..Weapon::new() }, ItemKind::GoldenShovel => Weapon { item_damage_per_attack: 2, ..Weapon::new() }, ItemKind::GoldenSpear => Weapon::new(), ItemKind::GoldenSword => Weapon::new(), ItemKind::IronAxe => Weapon { disable_blocking_for_seconds: 5.0, item_damage_per_attack: 2, }, ItemKind::IronHoe => Weapon { item_damage_per_attack: 2, ..Weapon::new() }, ItemKind::IronPickaxe => Weapon { item_damage_per_attack: 2, ..Weapon::new() }, ItemKind::IronShovel => Weapon { item_damage_per_attack: 2, ..Weapon::new() }, 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, }, ItemKind::NetheriteHoe => Weapon { item_damage_per_attack: 2, ..Weapon::new() }, ItemKind::NetheritePickaxe => Weapon { item_damage_per_attack: 2, ..Weapon::new() }, ItemKind::NetheriteShovel => Weapon { item_damage_per_attack: 2, ..Weapon::new() }, ItemKind::NetheriteSpear => Weapon::new(), ItemKind::NetheriteSword => Weapon::new(), ItemKind::StoneAxe => Weapon { disable_blocking_for_seconds: 5.0, item_damage_per_attack: 2, }, ItemKind::StoneHoe => Weapon { item_damage_per_attack: 2, ..Weapon::new() }, ItemKind::StonePickaxe => Weapon { item_damage_per_attack: 2, ..Weapon::new() }, ItemKind::StoneShovel => Weapon { item_damage_per_attack: 2, ..Weapon::new() }, 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, }, ItemKind::WoodenHoe => Weapon { item_damage_per_attack: 2, ..Weapon::new() }, ItemKind::WoodenPickaxe => Weapon { item_damage_per_attack: 2, ..Weapon::new() }, ItemKind::WoodenShovel => Weapon { item_damage_per_attack: 2, ..Weapon::new() }, ItemKind::WoodenSpear => Weapon::new(), ItemKind::WoodenSword => Weapon::new(), _ => return None, }; Some(value) } } impl DefaultableComponent for WritableBookContent { fn default_for_item(item: ItemKind) -> Option { let value = match item { ItemKind::WritableBook => Vec::new(), _ => return None, }; Some(WritableBookContent { pages: value }) } }