azalea_registry/tags/
items.rs

1// This file was generated by codegen/lib/code/tags.py, don't edit it manually!
2
3use std::{collections::HashSet, sync::LazyLock};
4
5use crate::Item;
6
7pub static ACACIA_LOGS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
8    HashSet::from_iter(vec![
9        Item::AcaciaLog,
10        Item::AcaciaWood,
11        Item::StrippedAcaciaLog,
12        Item::StrippedAcaciaWood,
13    ])
14});
15pub static ANVIL: LazyLock<HashSet<Item>> =
16    LazyLock::new(|| HashSet::from_iter(vec![Item::Anvil, Item::ChippedAnvil, Item::DamagedAnvil]));
17pub static ARMADILLO_FOOD: LazyLock<HashSet<Item>> =
18    LazyLock::new(|| HashSet::from_iter(vec![Item::SpiderEye]));
19pub static ARROWS: LazyLock<HashSet<Item>> =
20    LazyLock::new(|| HashSet::from_iter(vec![Item::Arrow, Item::TippedArrow, Item::SpectralArrow]));
21pub static AXES: LazyLock<HashSet<Item>> = LazyLock::new(|| {
22    HashSet::from_iter(vec![
23        Item::DiamondAxe,
24        Item::StoneAxe,
25        Item::GoldenAxe,
26        Item::NetheriteAxe,
27        Item::WoodenAxe,
28        Item::IronAxe,
29    ])
30});
31pub static AXOLOTL_FOOD: LazyLock<HashSet<Item>> =
32    LazyLock::new(|| HashSet::from_iter(vec![Item::TropicalFishBucket]));
33pub static BAMBOO_BLOCKS: LazyLock<HashSet<Item>> =
34    LazyLock::new(|| HashSet::from_iter(vec![Item::BambooBlock, Item::StrippedBambooBlock]));
35pub static BANNERS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
36    HashSet::from_iter(vec![
37        Item::WhiteBanner,
38        Item::OrangeBanner,
39        Item::MagentaBanner,
40        Item::LightBlueBanner,
41        Item::YellowBanner,
42        Item::LimeBanner,
43        Item::PinkBanner,
44        Item::GrayBanner,
45        Item::LightGrayBanner,
46        Item::CyanBanner,
47        Item::PurpleBanner,
48        Item::BlueBanner,
49        Item::BrownBanner,
50        Item::GreenBanner,
51        Item::RedBanner,
52        Item::BlackBanner,
53    ])
54});
55pub static BEACON_PAYMENT_ITEMS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
56    HashSet::from_iter(vec![
57        Item::NetheriteIngot,
58        Item::Emerald,
59        Item::Diamond,
60        Item::GoldIngot,
61        Item::IronIngot,
62    ])
63});
64pub static BEDS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
65    HashSet::from_iter(vec![
66        Item::RedBed,
67        Item::BlackBed,
68        Item::BlueBed,
69        Item::BrownBed,
70        Item::CyanBed,
71        Item::GrayBed,
72        Item::GreenBed,
73        Item::LightBlueBed,
74        Item::LightGrayBed,
75        Item::LimeBed,
76        Item::MagentaBed,
77        Item::OrangeBed,
78        Item::PinkBed,
79        Item::PurpleBed,
80        Item::WhiteBed,
81        Item::YellowBed,
82    ])
83});
84pub static BEE_FOOD: LazyLock<HashSet<Item>> = LazyLock::new(|| {
85    HashSet::from_iter(vec![
86        Item::Dandelion,
87        Item::OpenEyeblossom,
88        Item::Poppy,
89        Item::BlueOrchid,
90        Item::Allium,
91        Item::AzureBluet,
92        Item::RedTulip,
93        Item::OrangeTulip,
94        Item::WhiteTulip,
95        Item::PinkTulip,
96        Item::OxeyeDaisy,
97        Item::Cornflower,
98        Item::LilyOfTheValley,
99        Item::WitherRose,
100        Item::Torchflower,
101        Item::Sunflower,
102        Item::Lilac,
103        Item::Peony,
104        Item::RoseBush,
105        Item::PitcherPlant,
106        Item::FloweringAzaleaLeaves,
107        Item::FloweringAzalea,
108        Item::MangrovePropagule,
109        Item::CherryLeaves,
110        Item::PinkPetals,
111        Item::ChorusFlower,
112        Item::SporeBlossom,
113    ])
114});
115pub static BIRCH_LOGS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
116    HashSet::from_iter(vec![
117        Item::BirchLog,
118        Item::BirchWood,
119        Item::StrippedBirchLog,
120        Item::StrippedBirchWood,
121    ])
122});
123pub static BOATS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
124    HashSet::from_iter(vec![
125        Item::OakBoat,
126        Item::SpruceBoat,
127        Item::BirchBoat,
128        Item::JungleBoat,
129        Item::AcaciaBoat,
130        Item::DarkOakBoat,
131        Item::PaleOakBoat,
132        Item::MangroveBoat,
133        Item::BambooRaft,
134        Item::CherryBoat,
135        Item::OakChestBoat,
136        Item::SpruceChestBoat,
137        Item::BirchChestBoat,
138        Item::JungleChestBoat,
139        Item::AcaciaChestBoat,
140        Item::DarkOakChestBoat,
141        Item::PaleOakChestBoat,
142        Item::MangroveChestBoat,
143        Item::BambooChestRaft,
144        Item::CherryChestBoat,
145    ])
146});
147pub static BOOKSHELF_BOOKS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
148    HashSet::from_iter(vec![
149        Item::Book,
150        Item::WrittenBook,
151        Item::EnchantedBook,
152        Item::WritableBook,
153        Item::KnowledgeBook,
154    ])
155});
156pub static BREAKS_DECORATED_POTS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
157    HashSet::from_iter(vec![
158        Item::Trident,
159        Item::Mace,
160        Item::DiamondSword,
161        Item::StoneSword,
162        Item::GoldenSword,
163        Item::NetheriteSword,
164        Item::WoodenSword,
165        Item::IronSword,
166        Item::DiamondAxe,
167        Item::StoneAxe,
168        Item::GoldenAxe,
169        Item::NetheriteAxe,
170        Item::WoodenAxe,
171        Item::IronAxe,
172        Item::DiamondPickaxe,
173        Item::StonePickaxe,
174        Item::GoldenPickaxe,
175        Item::NetheritePickaxe,
176        Item::WoodenPickaxe,
177        Item::IronPickaxe,
178        Item::DiamondShovel,
179        Item::StoneShovel,
180        Item::GoldenShovel,
181        Item::NetheriteShovel,
182        Item::WoodenShovel,
183        Item::IronShovel,
184        Item::DiamondHoe,
185        Item::StoneHoe,
186        Item::GoldenHoe,
187        Item::NetheriteHoe,
188        Item::WoodenHoe,
189        Item::IronHoe,
190    ])
191});
192pub static BREWING_FUEL: LazyLock<HashSet<Item>> =
193    LazyLock::new(|| HashSet::from_iter(vec![Item::BlazePowder]));
194pub static BUNDLES: LazyLock<HashSet<Item>> = LazyLock::new(|| {
195    HashSet::from_iter(vec![
196        Item::Bundle,
197        Item::BlackBundle,
198        Item::BlueBundle,
199        Item::BrownBundle,
200        Item::CyanBundle,
201        Item::GrayBundle,
202        Item::GreenBundle,
203        Item::LightBlueBundle,
204        Item::LightGrayBundle,
205        Item::LimeBundle,
206        Item::MagentaBundle,
207        Item::OrangeBundle,
208        Item::PinkBundle,
209        Item::PurpleBundle,
210        Item::RedBundle,
211        Item::YellowBundle,
212        Item::WhiteBundle,
213    ])
214});
215pub static BUTTONS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
216    HashSet::from_iter(vec![
217        Item::OakButton,
218        Item::SpruceButton,
219        Item::BirchButton,
220        Item::JungleButton,
221        Item::AcaciaButton,
222        Item::DarkOakButton,
223        Item::PaleOakButton,
224        Item::CrimsonButton,
225        Item::WarpedButton,
226        Item::MangroveButton,
227        Item::BambooButton,
228        Item::CherryButton,
229        Item::StoneButton,
230        Item::PolishedBlackstoneButton,
231    ])
232});
233pub static CAMEL_FOOD: LazyLock<HashSet<Item>> =
234    LazyLock::new(|| HashSet::from_iter(vec![Item::Cactus]));
235pub static CANDLES: LazyLock<HashSet<Item>> = LazyLock::new(|| {
236    HashSet::from_iter(vec![
237        Item::Candle,
238        Item::WhiteCandle,
239        Item::OrangeCandle,
240        Item::MagentaCandle,
241        Item::LightBlueCandle,
242        Item::YellowCandle,
243        Item::LimeCandle,
244        Item::PinkCandle,
245        Item::GrayCandle,
246        Item::LightGrayCandle,
247        Item::CyanCandle,
248        Item::PurpleCandle,
249        Item::BlueCandle,
250        Item::BrownCandle,
251        Item::GreenCandle,
252        Item::RedCandle,
253        Item::BlackCandle,
254    ])
255});
256pub static CAT_FOOD: LazyLock<HashSet<Item>> =
257    LazyLock::new(|| HashSet::from_iter(vec![Item::Cod, Item::Salmon]));
258pub static CHERRY_LOGS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
259    HashSet::from_iter(vec![
260        Item::CherryLog,
261        Item::CherryWood,
262        Item::StrippedCherryLog,
263        Item::StrippedCherryWood,
264    ])
265});
266pub static CHEST_ARMOR: LazyLock<HashSet<Item>> = LazyLock::new(|| {
267    HashSet::from_iter(vec![
268        Item::LeatherChestplate,
269        Item::ChainmailChestplate,
270        Item::GoldenChestplate,
271        Item::IronChestplate,
272        Item::DiamondChestplate,
273        Item::NetheriteChestplate,
274    ])
275});
276pub static CHEST_BOATS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
277    HashSet::from_iter(vec![
278        Item::OakChestBoat,
279        Item::SpruceChestBoat,
280        Item::BirchChestBoat,
281        Item::JungleChestBoat,
282        Item::AcaciaChestBoat,
283        Item::DarkOakChestBoat,
284        Item::PaleOakChestBoat,
285        Item::MangroveChestBoat,
286        Item::BambooChestRaft,
287        Item::CherryChestBoat,
288    ])
289});
290pub static CHICKEN_FOOD: LazyLock<HashSet<Item>> = LazyLock::new(|| {
291    HashSet::from_iter(vec![
292        Item::WheatSeeds,
293        Item::MelonSeeds,
294        Item::PumpkinSeeds,
295        Item::BeetrootSeeds,
296        Item::TorchflowerSeeds,
297        Item::PitcherPod,
298    ])
299});
300pub static CLUSTER_MAX_HARVESTABLES: LazyLock<HashSet<Item>> = LazyLock::new(|| {
301    HashSet::from_iter(vec![
302        Item::DiamondPickaxe,
303        Item::GoldenPickaxe,
304        Item::IronPickaxe,
305        Item::NetheritePickaxe,
306        Item::StonePickaxe,
307        Item::WoodenPickaxe,
308    ])
309});
310pub static COAL_ORES: LazyLock<HashSet<Item>> =
311    LazyLock::new(|| HashSet::from_iter(vec![Item::CoalOre, Item::DeepslateCoalOre]));
312pub static COALS: LazyLock<HashSet<Item>> =
313    LazyLock::new(|| HashSet::from_iter(vec![Item::Coal, Item::Charcoal]));
314pub static COMPASSES: LazyLock<HashSet<Item>> =
315    LazyLock::new(|| HashSet::from_iter(vec![Item::Compass, Item::RecoveryCompass]));
316pub static COMPLETES_FIND_TREE_TUTORIAL: LazyLock<HashSet<Item>> = LazyLock::new(|| {
317    HashSet::from_iter(vec![
318        Item::JungleLeaves,
319        Item::OakLeaves,
320        Item::SpruceLeaves,
321        Item::PaleOakLeaves,
322        Item::DarkOakLeaves,
323        Item::AcaciaLeaves,
324        Item::BirchLeaves,
325        Item::AzaleaLeaves,
326        Item::FloweringAzaleaLeaves,
327        Item::MangroveLeaves,
328        Item::CherryLeaves,
329        Item::NetherWartBlock,
330        Item::WarpedWartBlock,
331        Item::CrimsonStem,
332        Item::StrippedCrimsonStem,
333        Item::CrimsonHyphae,
334        Item::StrippedCrimsonHyphae,
335        Item::WarpedStem,
336        Item::StrippedWarpedStem,
337        Item::WarpedHyphae,
338        Item::StrippedWarpedHyphae,
339        Item::DarkOakLog,
340        Item::DarkOakWood,
341        Item::StrippedDarkOakLog,
342        Item::StrippedDarkOakWood,
343        Item::PaleOakLog,
344        Item::PaleOakWood,
345        Item::StrippedPaleOakLog,
346        Item::StrippedPaleOakWood,
347        Item::OakLog,
348        Item::OakWood,
349        Item::StrippedOakLog,
350        Item::StrippedOakWood,
351        Item::AcaciaLog,
352        Item::AcaciaWood,
353        Item::StrippedAcaciaLog,
354        Item::StrippedAcaciaWood,
355        Item::BirchLog,
356        Item::BirchWood,
357        Item::StrippedBirchLog,
358        Item::StrippedBirchWood,
359        Item::JungleLog,
360        Item::JungleWood,
361        Item::StrippedJungleLog,
362        Item::StrippedJungleWood,
363        Item::SpruceLog,
364        Item::SpruceWood,
365        Item::StrippedSpruceLog,
366        Item::StrippedSpruceWood,
367        Item::MangroveLog,
368        Item::MangroveWood,
369        Item::StrippedMangroveLog,
370        Item::StrippedMangroveWood,
371        Item::CherryLog,
372        Item::CherryWood,
373        Item::StrippedCherryLog,
374        Item::StrippedCherryWood,
375    ])
376});
377pub static COPPER_ORES: LazyLock<HashSet<Item>> =
378    LazyLock::new(|| HashSet::from_iter(vec![Item::CopperOre, Item::DeepslateCopperOre]));
379pub static COW_FOOD: LazyLock<HashSet<Item>> =
380    LazyLock::new(|| HashSet::from_iter(vec![Item::Wheat]));
381pub static CREEPER_DROP_MUSIC_DISCS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
382    HashSet::from_iter(vec![
383        Item::MusicDisc13,
384        Item::MusicDiscCat,
385        Item::MusicDiscBlocks,
386        Item::MusicDiscChirp,
387        Item::MusicDiscFar,
388        Item::MusicDiscMall,
389        Item::MusicDiscMellohi,
390        Item::MusicDiscStal,
391        Item::MusicDiscStrad,
392        Item::MusicDiscWard,
393        Item::MusicDisc11,
394        Item::MusicDiscWait,
395    ])
396});
397pub static CREEPER_IGNITERS: LazyLock<HashSet<Item>> =
398    LazyLock::new(|| HashSet::from_iter(vec![Item::FlintAndSteel, Item::FireCharge]));
399pub static CRIMSON_STEMS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
400    HashSet::from_iter(vec![
401        Item::CrimsonStem,
402        Item::StrippedCrimsonStem,
403        Item::CrimsonHyphae,
404        Item::StrippedCrimsonHyphae,
405    ])
406});
407pub static DAMPENS_VIBRATIONS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
408    HashSet::from_iter(vec![
409        Item::WhiteWool,
410        Item::OrangeWool,
411        Item::MagentaWool,
412        Item::LightBlueWool,
413        Item::YellowWool,
414        Item::LimeWool,
415        Item::PinkWool,
416        Item::GrayWool,
417        Item::LightGrayWool,
418        Item::CyanWool,
419        Item::PurpleWool,
420        Item::BlueWool,
421        Item::BrownWool,
422        Item::GreenWool,
423        Item::RedWool,
424        Item::BlackWool,
425        Item::WhiteCarpet,
426        Item::OrangeCarpet,
427        Item::MagentaCarpet,
428        Item::LightBlueCarpet,
429        Item::YellowCarpet,
430        Item::LimeCarpet,
431        Item::PinkCarpet,
432        Item::GrayCarpet,
433        Item::LightGrayCarpet,
434        Item::CyanCarpet,
435        Item::PurpleCarpet,
436        Item::BlueCarpet,
437        Item::BrownCarpet,
438        Item::GreenCarpet,
439        Item::RedCarpet,
440        Item::BlackCarpet,
441    ])
442});
443pub static DARK_OAK_LOGS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
444    HashSet::from_iter(vec![
445        Item::DarkOakLog,
446        Item::DarkOakWood,
447        Item::StrippedDarkOakLog,
448        Item::StrippedDarkOakWood,
449    ])
450});
451pub static DECORATED_POT_INGREDIENTS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
452    HashSet::from_iter(vec![
453        Item::Brick,
454        Item::AnglerPotterySherd,
455        Item::ArcherPotterySherd,
456        Item::ArmsUpPotterySherd,
457        Item::BladePotterySherd,
458        Item::BrewerPotterySherd,
459        Item::BurnPotterySherd,
460        Item::DangerPotterySherd,
461        Item::ExplorerPotterySherd,
462        Item::FriendPotterySherd,
463        Item::HeartPotterySherd,
464        Item::HeartbreakPotterySherd,
465        Item::HowlPotterySherd,
466        Item::MinerPotterySherd,
467        Item::MournerPotterySherd,
468        Item::PlentyPotterySherd,
469        Item::PrizePotterySherd,
470        Item::SheafPotterySherd,
471        Item::ShelterPotterySherd,
472        Item::SkullPotterySherd,
473        Item::SnortPotterySherd,
474        Item::FlowPotterySherd,
475        Item::GusterPotterySherd,
476        Item::ScrapePotterySherd,
477    ])
478});
479pub static DECORATED_POT_SHERDS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
480    HashSet::from_iter(vec![
481        Item::AnglerPotterySherd,
482        Item::ArcherPotterySherd,
483        Item::ArmsUpPotterySherd,
484        Item::BladePotterySherd,
485        Item::BrewerPotterySherd,
486        Item::BurnPotterySherd,
487        Item::DangerPotterySherd,
488        Item::ExplorerPotterySherd,
489        Item::FriendPotterySherd,
490        Item::HeartPotterySherd,
491        Item::HeartbreakPotterySherd,
492        Item::HowlPotterySherd,
493        Item::MinerPotterySherd,
494        Item::MournerPotterySherd,
495        Item::PlentyPotterySherd,
496        Item::PrizePotterySherd,
497        Item::SheafPotterySherd,
498        Item::ShelterPotterySherd,
499        Item::SkullPotterySherd,
500        Item::SnortPotterySherd,
501        Item::FlowPotterySherd,
502        Item::GusterPotterySherd,
503        Item::ScrapePotterySherd,
504    ])
505});
506pub static DIAMOND_ORES: LazyLock<HashSet<Item>> =
507    LazyLock::new(|| HashSet::from_iter(vec![Item::DiamondOre, Item::DeepslateDiamondOre]));
508pub static DIAMOND_TOOL_MATERIALS: LazyLock<HashSet<Item>> =
509    LazyLock::new(|| HashSet::from_iter(vec![Item::Diamond]));
510pub static DIRT: LazyLock<HashSet<Item>> = LazyLock::new(|| {
511    HashSet::from_iter(vec![
512        Item::Dirt,
513        Item::GrassBlock,
514        Item::Podzol,
515        Item::CoarseDirt,
516        Item::Mycelium,
517        Item::RootedDirt,
518        Item::MossBlock,
519        Item::PaleMossBlock,
520        Item::Mud,
521        Item::MuddyMangroveRoots,
522    ])
523});
524pub static DOORS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
525    HashSet::from_iter(vec![
526        Item::CopperDoor,
527        Item::ExposedCopperDoor,
528        Item::WeatheredCopperDoor,
529        Item::OxidizedCopperDoor,
530        Item::WaxedCopperDoor,
531        Item::WaxedExposedCopperDoor,
532        Item::WaxedWeatheredCopperDoor,
533        Item::WaxedOxidizedCopperDoor,
534        Item::IronDoor,
535        Item::OakDoor,
536        Item::SpruceDoor,
537        Item::BirchDoor,
538        Item::JungleDoor,
539        Item::AcaciaDoor,
540        Item::DarkOakDoor,
541        Item::PaleOakDoor,
542        Item::CrimsonDoor,
543        Item::WarpedDoor,
544        Item::MangroveDoor,
545        Item::BambooDoor,
546        Item::CherryDoor,
547    ])
548});
549pub static DROWNED_PREFERRED_WEAPONS: LazyLock<HashSet<Item>> =
550    LazyLock::new(|| HashSet::from_iter(vec![Item::Trident]));
551pub static DUPLICATES_ALLAYS: LazyLock<HashSet<Item>> =
552    LazyLock::new(|| HashSet::from_iter(vec![Item::AmethystShard]));
553pub static DYEABLE: LazyLock<HashSet<Item>> = LazyLock::new(|| {
554    HashSet::from_iter(vec![
555        Item::LeatherHelmet,
556        Item::LeatherChestplate,
557        Item::LeatherLeggings,
558        Item::LeatherBoots,
559        Item::LeatherHorseArmor,
560        Item::WolfArmor,
561    ])
562});
563pub static EMERALD_ORES: LazyLock<HashSet<Item>> =
564    LazyLock::new(|| HashSet::from_iter(vec![Item::EmeraldOre, Item::DeepslateEmeraldOre]));
565pub static ENCHANTABLE_ARMOR: LazyLock<HashSet<Item>> = LazyLock::new(|| {
566    HashSet::from_iter(vec![
567        Item::LeatherBoots,
568        Item::ChainmailBoots,
569        Item::GoldenBoots,
570        Item::IronBoots,
571        Item::DiamondBoots,
572        Item::NetheriteBoots,
573        Item::LeatherLeggings,
574        Item::ChainmailLeggings,
575        Item::GoldenLeggings,
576        Item::IronLeggings,
577        Item::DiamondLeggings,
578        Item::NetheriteLeggings,
579        Item::LeatherChestplate,
580        Item::ChainmailChestplate,
581        Item::GoldenChestplate,
582        Item::IronChestplate,
583        Item::DiamondChestplate,
584        Item::NetheriteChestplate,
585        Item::LeatherHelmet,
586        Item::ChainmailHelmet,
587        Item::GoldenHelmet,
588        Item::IronHelmet,
589        Item::DiamondHelmet,
590        Item::NetheriteHelmet,
591        Item::TurtleHelmet,
592    ])
593});
594pub static ENCHANTABLE_BOW: LazyLock<HashSet<Item>> =
595    LazyLock::new(|| HashSet::from_iter(vec![Item::Bow]));
596pub static ENCHANTABLE_CHEST_ARMOR: LazyLock<HashSet<Item>> = LazyLock::new(|| {
597    HashSet::from_iter(vec![
598        Item::LeatherChestplate,
599        Item::ChainmailChestplate,
600        Item::GoldenChestplate,
601        Item::IronChestplate,
602        Item::DiamondChestplate,
603        Item::NetheriteChestplate,
604    ])
605});
606pub static ENCHANTABLE_CROSSBOW: LazyLock<HashSet<Item>> =
607    LazyLock::new(|| HashSet::from_iter(vec![Item::Crossbow]));
608pub static ENCHANTABLE_DURABILITY: LazyLock<HashSet<Item>> = LazyLock::new(|| {
609    HashSet::from_iter(vec![
610        Item::Elytra,
611        Item::Shield,
612        Item::Bow,
613        Item::Crossbow,
614        Item::Trident,
615        Item::FlintAndSteel,
616        Item::Shears,
617        Item::Brush,
618        Item::FishingRod,
619        Item::CarrotOnAStick,
620        Item::WarpedFungusOnAStick,
621        Item::Mace,
622        Item::LeatherBoots,
623        Item::ChainmailBoots,
624        Item::GoldenBoots,
625        Item::IronBoots,
626        Item::DiamondBoots,
627        Item::NetheriteBoots,
628        Item::LeatherLeggings,
629        Item::ChainmailLeggings,
630        Item::GoldenLeggings,
631        Item::IronLeggings,
632        Item::DiamondLeggings,
633        Item::NetheriteLeggings,
634        Item::LeatherChestplate,
635        Item::ChainmailChestplate,
636        Item::GoldenChestplate,
637        Item::IronChestplate,
638        Item::DiamondChestplate,
639        Item::NetheriteChestplate,
640        Item::LeatherHelmet,
641        Item::ChainmailHelmet,
642        Item::GoldenHelmet,
643        Item::IronHelmet,
644        Item::DiamondHelmet,
645        Item::NetheriteHelmet,
646        Item::TurtleHelmet,
647        Item::DiamondSword,
648        Item::StoneSword,
649        Item::GoldenSword,
650        Item::NetheriteSword,
651        Item::WoodenSword,
652        Item::IronSword,
653        Item::DiamondAxe,
654        Item::StoneAxe,
655        Item::GoldenAxe,
656        Item::NetheriteAxe,
657        Item::WoodenAxe,
658        Item::IronAxe,
659        Item::DiamondPickaxe,
660        Item::StonePickaxe,
661        Item::GoldenPickaxe,
662        Item::NetheritePickaxe,
663        Item::WoodenPickaxe,
664        Item::IronPickaxe,
665        Item::DiamondShovel,
666        Item::StoneShovel,
667        Item::GoldenShovel,
668        Item::NetheriteShovel,
669        Item::WoodenShovel,
670        Item::IronShovel,
671        Item::DiamondHoe,
672        Item::StoneHoe,
673        Item::GoldenHoe,
674        Item::NetheriteHoe,
675        Item::WoodenHoe,
676        Item::IronHoe,
677    ])
678});
679pub static ENCHANTABLE_EQUIPPABLE: LazyLock<HashSet<Item>> = LazyLock::new(|| {
680    HashSet::from_iter(vec![
681        Item::Elytra,
682        Item::CarvedPumpkin,
683        Item::LeatherBoots,
684        Item::ChainmailBoots,
685        Item::GoldenBoots,
686        Item::IronBoots,
687        Item::DiamondBoots,
688        Item::NetheriteBoots,
689        Item::LeatherLeggings,
690        Item::ChainmailLeggings,
691        Item::GoldenLeggings,
692        Item::IronLeggings,
693        Item::DiamondLeggings,
694        Item::NetheriteLeggings,
695        Item::LeatherChestplate,
696        Item::ChainmailChestplate,
697        Item::GoldenChestplate,
698        Item::IronChestplate,
699        Item::DiamondChestplate,
700        Item::NetheriteChestplate,
701        Item::LeatherHelmet,
702        Item::ChainmailHelmet,
703        Item::GoldenHelmet,
704        Item::IronHelmet,
705        Item::DiamondHelmet,
706        Item::NetheriteHelmet,
707        Item::TurtleHelmet,
708        Item::PlayerHead,
709        Item::CreeperHead,
710        Item::ZombieHead,
711        Item::SkeletonSkull,
712        Item::WitherSkeletonSkull,
713        Item::DragonHead,
714        Item::PiglinHead,
715    ])
716});
717pub static ENCHANTABLE_FIRE_ASPECT: LazyLock<HashSet<Item>> = LazyLock::new(|| {
718    HashSet::from_iter(vec![
719        Item::Mace,
720        Item::DiamondSword,
721        Item::StoneSword,
722        Item::GoldenSword,
723        Item::NetheriteSword,
724        Item::WoodenSword,
725        Item::IronSword,
726    ])
727});
728pub static ENCHANTABLE_FISHING: LazyLock<HashSet<Item>> =
729    LazyLock::new(|| HashSet::from_iter(vec![Item::FishingRod]));
730pub static ENCHANTABLE_FOOT_ARMOR: LazyLock<HashSet<Item>> = LazyLock::new(|| {
731    HashSet::from_iter(vec![
732        Item::LeatherBoots,
733        Item::ChainmailBoots,
734        Item::GoldenBoots,
735        Item::IronBoots,
736        Item::DiamondBoots,
737        Item::NetheriteBoots,
738    ])
739});
740pub static ENCHANTABLE_HEAD_ARMOR: LazyLock<HashSet<Item>> = LazyLock::new(|| {
741    HashSet::from_iter(vec![
742        Item::LeatherHelmet,
743        Item::ChainmailHelmet,
744        Item::GoldenHelmet,
745        Item::IronHelmet,
746        Item::DiamondHelmet,
747        Item::NetheriteHelmet,
748        Item::TurtleHelmet,
749    ])
750});
751pub static ENCHANTABLE_LEG_ARMOR: LazyLock<HashSet<Item>> = LazyLock::new(|| {
752    HashSet::from_iter(vec![
753        Item::LeatherLeggings,
754        Item::ChainmailLeggings,
755        Item::GoldenLeggings,
756        Item::IronLeggings,
757        Item::DiamondLeggings,
758        Item::NetheriteLeggings,
759    ])
760});
761pub static ENCHANTABLE_MACE: LazyLock<HashSet<Item>> =
762    LazyLock::new(|| HashSet::from_iter(vec![Item::Mace]));
763pub static ENCHANTABLE_MINING: LazyLock<HashSet<Item>> = LazyLock::new(|| {
764    HashSet::from_iter(vec![
765        Item::Shears,
766        Item::DiamondAxe,
767        Item::StoneAxe,
768        Item::GoldenAxe,
769        Item::NetheriteAxe,
770        Item::WoodenAxe,
771        Item::IronAxe,
772        Item::DiamondPickaxe,
773        Item::StonePickaxe,
774        Item::GoldenPickaxe,
775        Item::NetheritePickaxe,
776        Item::WoodenPickaxe,
777        Item::IronPickaxe,
778        Item::DiamondShovel,
779        Item::StoneShovel,
780        Item::GoldenShovel,
781        Item::NetheriteShovel,
782        Item::WoodenShovel,
783        Item::IronShovel,
784        Item::DiamondHoe,
785        Item::StoneHoe,
786        Item::GoldenHoe,
787        Item::NetheriteHoe,
788        Item::WoodenHoe,
789        Item::IronHoe,
790    ])
791});
792pub static ENCHANTABLE_MINING_LOOT: LazyLock<HashSet<Item>> = LazyLock::new(|| {
793    HashSet::from_iter(vec![
794        Item::DiamondAxe,
795        Item::StoneAxe,
796        Item::GoldenAxe,
797        Item::NetheriteAxe,
798        Item::WoodenAxe,
799        Item::IronAxe,
800        Item::DiamondPickaxe,
801        Item::StonePickaxe,
802        Item::GoldenPickaxe,
803        Item::NetheritePickaxe,
804        Item::WoodenPickaxe,
805        Item::IronPickaxe,
806        Item::DiamondShovel,
807        Item::StoneShovel,
808        Item::GoldenShovel,
809        Item::NetheriteShovel,
810        Item::WoodenShovel,
811        Item::IronShovel,
812        Item::DiamondHoe,
813        Item::StoneHoe,
814        Item::GoldenHoe,
815        Item::NetheriteHoe,
816        Item::WoodenHoe,
817        Item::IronHoe,
818    ])
819});
820pub static ENCHANTABLE_SHARP_WEAPON: LazyLock<HashSet<Item>> = LazyLock::new(|| {
821    HashSet::from_iter(vec![
822        Item::DiamondSword,
823        Item::StoneSword,
824        Item::GoldenSword,
825        Item::NetheriteSword,
826        Item::WoodenSword,
827        Item::IronSword,
828        Item::DiamondAxe,
829        Item::StoneAxe,
830        Item::GoldenAxe,
831        Item::NetheriteAxe,
832        Item::WoodenAxe,
833        Item::IronAxe,
834    ])
835});
836pub static ENCHANTABLE_SWORD: LazyLock<HashSet<Item>> = LazyLock::new(|| {
837    HashSet::from_iter(vec![
838        Item::DiamondSword,
839        Item::StoneSword,
840        Item::GoldenSword,
841        Item::NetheriteSword,
842        Item::WoodenSword,
843        Item::IronSword,
844    ])
845});
846pub static ENCHANTABLE_TRIDENT: LazyLock<HashSet<Item>> =
847    LazyLock::new(|| HashSet::from_iter(vec![Item::Trident]));
848pub static ENCHANTABLE_VANISHING: LazyLock<HashSet<Item>> = LazyLock::new(|| {
849    HashSet::from_iter(vec![
850        Item::Compass,
851        Item::CarvedPumpkin,
852        Item::Elytra,
853        Item::Shield,
854        Item::Bow,
855        Item::Crossbow,
856        Item::Trident,
857        Item::FlintAndSteel,
858        Item::Shears,
859        Item::Brush,
860        Item::FishingRod,
861        Item::CarrotOnAStick,
862        Item::WarpedFungusOnAStick,
863        Item::Mace,
864        Item::PlayerHead,
865        Item::CreeperHead,
866        Item::ZombieHead,
867        Item::SkeletonSkull,
868        Item::WitherSkeletonSkull,
869        Item::DragonHead,
870        Item::PiglinHead,
871        Item::LeatherBoots,
872        Item::ChainmailBoots,
873        Item::GoldenBoots,
874        Item::IronBoots,
875        Item::DiamondBoots,
876        Item::NetheriteBoots,
877        Item::LeatherLeggings,
878        Item::ChainmailLeggings,
879        Item::GoldenLeggings,
880        Item::IronLeggings,
881        Item::DiamondLeggings,
882        Item::NetheriteLeggings,
883        Item::LeatherChestplate,
884        Item::ChainmailChestplate,
885        Item::GoldenChestplate,
886        Item::IronChestplate,
887        Item::DiamondChestplate,
888        Item::NetheriteChestplate,
889        Item::LeatherHelmet,
890        Item::ChainmailHelmet,
891        Item::GoldenHelmet,
892        Item::IronHelmet,
893        Item::DiamondHelmet,
894        Item::NetheriteHelmet,
895        Item::TurtleHelmet,
896        Item::DiamondSword,
897        Item::StoneSword,
898        Item::GoldenSword,
899        Item::NetheriteSword,
900        Item::WoodenSword,
901        Item::IronSword,
902        Item::DiamondAxe,
903        Item::StoneAxe,
904        Item::GoldenAxe,
905        Item::NetheriteAxe,
906        Item::WoodenAxe,
907        Item::IronAxe,
908        Item::DiamondPickaxe,
909        Item::StonePickaxe,
910        Item::GoldenPickaxe,
911        Item::NetheritePickaxe,
912        Item::WoodenPickaxe,
913        Item::IronPickaxe,
914        Item::DiamondShovel,
915        Item::StoneShovel,
916        Item::GoldenShovel,
917        Item::NetheriteShovel,
918        Item::WoodenShovel,
919        Item::IronShovel,
920        Item::DiamondHoe,
921        Item::StoneHoe,
922        Item::GoldenHoe,
923        Item::NetheriteHoe,
924        Item::WoodenHoe,
925        Item::IronHoe,
926    ])
927});
928pub static ENCHANTABLE_WEAPON: LazyLock<HashSet<Item>> = LazyLock::new(|| {
929    HashSet::from_iter(vec![
930        Item::Mace,
931        Item::DiamondSword,
932        Item::StoneSword,
933        Item::GoldenSword,
934        Item::NetheriteSword,
935        Item::WoodenSword,
936        Item::IronSword,
937        Item::DiamondAxe,
938        Item::StoneAxe,
939        Item::GoldenAxe,
940        Item::NetheriteAxe,
941        Item::WoodenAxe,
942        Item::IronAxe,
943    ])
944});
945pub static FENCE_GATES: LazyLock<HashSet<Item>> = LazyLock::new(|| {
946    HashSet::from_iter(vec![
947        Item::AcaciaFenceGate,
948        Item::BirchFenceGate,
949        Item::DarkOakFenceGate,
950        Item::PaleOakFenceGate,
951        Item::JungleFenceGate,
952        Item::OakFenceGate,
953        Item::SpruceFenceGate,
954        Item::CrimsonFenceGate,
955        Item::WarpedFenceGate,
956        Item::MangroveFenceGate,
957        Item::BambooFenceGate,
958        Item::CherryFenceGate,
959    ])
960});
961pub static FENCES: LazyLock<HashSet<Item>> = LazyLock::new(|| {
962    HashSet::from_iter(vec![
963        Item::NetherBrickFence,
964        Item::OakFence,
965        Item::AcaciaFence,
966        Item::DarkOakFence,
967        Item::PaleOakFence,
968        Item::SpruceFence,
969        Item::BirchFence,
970        Item::JungleFence,
971        Item::CrimsonFence,
972        Item::WarpedFence,
973        Item::MangroveFence,
974        Item::BambooFence,
975        Item::CherryFence,
976    ])
977});
978pub static FISHES: LazyLock<HashSet<Item>> = LazyLock::new(|| {
979    HashSet::from_iter(vec![
980        Item::Cod,
981        Item::CookedCod,
982        Item::Salmon,
983        Item::CookedSalmon,
984        Item::Pufferfish,
985        Item::TropicalFish,
986    ])
987});
988pub static FOOT_ARMOR: LazyLock<HashSet<Item>> = LazyLock::new(|| {
989    HashSet::from_iter(vec![
990        Item::LeatherBoots,
991        Item::ChainmailBoots,
992        Item::GoldenBoots,
993        Item::IronBoots,
994        Item::DiamondBoots,
995        Item::NetheriteBoots,
996    ])
997});
998pub static FOX_FOOD: LazyLock<HashSet<Item>> =
999    LazyLock::new(|| HashSet::from_iter(vec![Item::SweetBerries, Item::GlowBerries]));
1000pub static FREEZE_IMMUNE_WEARABLES: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1001    HashSet::from_iter(vec![
1002        Item::LeatherBoots,
1003        Item::LeatherLeggings,
1004        Item::LeatherChestplate,
1005        Item::LeatherHelmet,
1006        Item::LeatherHorseArmor,
1007    ])
1008});
1009pub static FROG_FOOD: LazyLock<HashSet<Item>> =
1010    LazyLock::new(|| HashSet::from_iter(vec![Item::SlimeBall]));
1011pub static FURNACE_MINECART_FUEL: LazyLock<HashSet<Item>> =
1012    LazyLock::new(|| HashSet::from_iter(vec![Item::Coal, Item::Charcoal]));
1013pub static GAZE_DISGUISE_EQUIPMENT: LazyLock<HashSet<Item>> =
1014    LazyLock::new(|| HashSet::from_iter(vec![Item::CarvedPumpkin]));
1015pub static GOAT_FOOD: LazyLock<HashSet<Item>> =
1016    LazyLock::new(|| HashSet::from_iter(vec![Item::Wheat]));
1017pub static GOLD_ORES: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1018    HashSet::from_iter(vec![
1019        Item::GoldOre,
1020        Item::NetherGoldOre,
1021        Item::DeepslateGoldOre,
1022    ])
1023});
1024pub static GOLD_TOOL_MATERIALS: LazyLock<HashSet<Item>> =
1025    LazyLock::new(|| HashSet::from_iter(vec![Item::GoldIngot]));
1026pub static HANGING_SIGNS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1027    HashSet::from_iter(vec![
1028        Item::OakHangingSign,
1029        Item::SpruceHangingSign,
1030        Item::BirchHangingSign,
1031        Item::AcaciaHangingSign,
1032        Item::CherryHangingSign,
1033        Item::JungleHangingSign,
1034        Item::DarkOakHangingSign,
1035        Item::PaleOakHangingSign,
1036        Item::CrimsonHangingSign,
1037        Item::WarpedHangingSign,
1038        Item::MangroveHangingSign,
1039        Item::BambooHangingSign,
1040    ])
1041});
1042pub static HEAD_ARMOR: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1043    HashSet::from_iter(vec![
1044        Item::LeatherHelmet,
1045        Item::ChainmailHelmet,
1046        Item::GoldenHelmet,
1047        Item::IronHelmet,
1048        Item::DiamondHelmet,
1049        Item::NetheriteHelmet,
1050        Item::TurtleHelmet,
1051    ])
1052});
1053pub static HOES: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1054    HashSet::from_iter(vec![
1055        Item::DiamondHoe,
1056        Item::StoneHoe,
1057        Item::GoldenHoe,
1058        Item::NetheriteHoe,
1059        Item::WoodenHoe,
1060        Item::IronHoe,
1061    ])
1062});
1063pub static HOGLIN_FOOD: LazyLock<HashSet<Item>> =
1064    LazyLock::new(|| HashSet::from_iter(vec![Item::CrimsonFungus]));
1065pub static HORSE_FOOD: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1066    HashSet::from_iter(vec![
1067        Item::Wheat,
1068        Item::Sugar,
1069        Item::HayBlock,
1070        Item::Apple,
1071        Item::GoldenCarrot,
1072        Item::GoldenApple,
1073        Item::EnchantedGoldenApple,
1074    ])
1075});
1076pub static HORSE_TEMPT_ITEMS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1077    HashSet::from_iter(vec![
1078        Item::GoldenCarrot,
1079        Item::GoldenApple,
1080        Item::EnchantedGoldenApple,
1081    ])
1082});
1083pub static IGNORED_BY_PIGLIN_BABIES: LazyLock<HashSet<Item>> =
1084    LazyLock::new(|| HashSet::from_iter(vec![Item::Leather]));
1085pub static IRON_ORES: LazyLock<HashSet<Item>> =
1086    LazyLock::new(|| HashSet::from_iter(vec![Item::IronOre, Item::DeepslateIronOre]));
1087pub static IRON_TOOL_MATERIALS: LazyLock<HashSet<Item>> =
1088    LazyLock::new(|| HashSet::from_iter(vec![Item::IronIngot]));
1089pub static JUNGLE_LOGS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1090    HashSet::from_iter(vec![
1091        Item::JungleLog,
1092        Item::JungleWood,
1093        Item::StrippedJungleLog,
1094        Item::StrippedJungleWood,
1095    ])
1096});
1097pub static LAPIS_ORES: LazyLock<HashSet<Item>> =
1098    LazyLock::new(|| HashSet::from_iter(vec![Item::LapisOre, Item::DeepslateLapisOre]));
1099pub static LEAVES: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1100    HashSet::from_iter(vec![
1101        Item::JungleLeaves,
1102        Item::OakLeaves,
1103        Item::SpruceLeaves,
1104        Item::PaleOakLeaves,
1105        Item::DarkOakLeaves,
1106        Item::AcaciaLeaves,
1107        Item::BirchLeaves,
1108        Item::AzaleaLeaves,
1109        Item::FloweringAzaleaLeaves,
1110        Item::MangroveLeaves,
1111        Item::CherryLeaves,
1112    ])
1113});
1114pub static LECTERN_BOOKS: LazyLock<HashSet<Item>> =
1115    LazyLock::new(|| HashSet::from_iter(vec![Item::WrittenBook, Item::WritableBook]));
1116pub static LEG_ARMOR: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1117    HashSet::from_iter(vec![
1118        Item::LeatherLeggings,
1119        Item::ChainmailLeggings,
1120        Item::GoldenLeggings,
1121        Item::IronLeggings,
1122        Item::DiamondLeggings,
1123        Item::NetheriteLeggings,
1124    ])
1125});
1126pub static LLAMA_FOOD: LazyLock<HashSet<Item>> =
1127    LazyLock::new(|| HashSet::from_iter(vec![Item::Wheat, Item::HayBlock]));
1128pub static LLAMA_TEMPT_ITEMS: LazyLock<HashSet<Item>> =
1129    LazyLock::new(|| HashSet::from_iter(vec![Item::HayBlock]));
1130pub static LOGS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1131    HashSet::from_iter(vec![
1132        Item::CrimsonStem,
1133        Item::StrippedCrimsonStem,
1134        Item::CrimsonHyphae,
1135        Item::StrippedCrimsonHyphae,
1136        Item::WarpedStem,
1137        Item::StrippedWarpedStem,
1138        Item::WarpedHyphae,
1139        Item::StrippedWarpedHyphae,
1140        Item::DarkOakLog,
1141        Item::DarkOakWood,
1142        Item::StrippedDarkOakLog,
1143        Item::StrippedDarkOakWood,
1144        Item::PaleOakLog,
1145        Item::PaleOakWood,
1146        Item::StrippedPaleOakLog,
1147        Item::StrippedPaleOakWood,
1148        Item::OakLog,
1149        Item::OakWood,
1150        Item::StrippedOakLog,
1151        Item::StrippedOakWood,
1152        Item::AcaciaLog,
1153        Item::AcaciaWood,
1154        Item::StrippedAcaciaLog,
1155        Item::StrippedAcaciaWood,
1156        Item::BirchLog,
1157        Item::BirchWood,
1158        Item::StrippedBirchLog,
1159        Item::StrippedBirchWood,
1160        Item::JungleLog,
1161        Item::JungleWood,
1162        Item::StrippedJungleLog,
1163        Item::StrippedJungleWood,
1164        Item::SpruceLog,
1165        Item::SpruceWood,
1166        Item::StrippedSpruceLog,
1167        Item::StrippedSpruceWood,
1168        Item::MangroveLog,
1169        Item::MangroveWood,
1170        Item::StrippedMangroveLog,
1171        Item::StrippedMangroveWood,
1172        Item::CherryLog,
1173        Item::CherryWood,
1174        Item::StrippedCherryLog,
1175        Item::StrippedCherryWood,
1176    ])
1177});
1178pub static LOGS_THAT_BURN: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1179    HashSet::from_iter(vec![
1180        Item::DarkOakLog,
1181        Item::DarkOakWood,
1182        Item::StrippedDarkOakLog,
1183        Item::StrippedDarkOakWood,
1184        Item::PaleOakLog,
1185        Item::PaleOakWood,
1186        Item::StrippedPaleOakLog,
1187        Item::StrippedPaleOakWood,
1188        Item::OakLog,
1189        Item::OakWood,
1190        Item::StrippedOakLog,
1191        Item::StrippedOakWood,
1192        Item::AcaciaLog,
1193        Item::AcaciaWood,
1194        Item::StrippedAcaciaLog,
1195        Item::StrippedAcaciaWood,
1196        Item::BirchLog,
1197        Item::BirchWood,
1198        Item::StrippedBirchLog,
1199        Item::StrippedBirchWood,
1200        Item::JungleLog,
1201        Item::JungleWood,
1202        Item::StrippedJungleLog,
1203        Item::StrippedJungleWood,
1204        Item::SpruceLog,
1205        Item::SpruceWood,
1206        Item::StrippedSpruceLog,
1207        Item::StrippedSpruceWood,
1208        Item::MangroveLog,
1209        Item::MangroveWood,
1210        Item::StrippedMangroveLog,
1211        Item::StrippedMangroveWood,
1212        Item::CherryLog,
1213        Item::CherryWood,
1214        Item::StrippedCherryLog,
1215        Item::StrippedCherryWood,
1216    ])
1217});
1218pub static MANGROVE_LOGS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1219    HashSet::from_iter(vec![
1220        Item::MangroveLog,
1221        Item::MangroveWood,
1222        Item::StrippedMangroveLog,
1223        Item::StrippedMangroveWood,
1224    ])
1225});
1226pub static MAP_INVISIBILITY_EQUIPMENT: LazyLock<HashSet<Item>> =
1227    LazyLock::new(|| HashSet::from_iter(vec![Item::CarvedPumpkin]));
1228pub static MEAT: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1229    HashSet::from_iter(vec![
1230        Item::Beef,
1231        Item::Chicken,
1232        Item::CookedBeef,
1233        Item::CookedChicken,
1234        Item::CookedMutton,
1235        Item::CookedPorkchop,
1236        Item::CookedRabbit,
1237        Item::Mutton,
1238        Item::Porkchop,
1239        Item::Rabbit,
1240        Item::RottenFlesh,
1241    ])
1242});
1243pub static NETHERITE_TOOL_MATERIALS: LazyLock<HashSet<Item>> =
1244    LazyLock::new(|| HashSet::from_iter(vec![Item::NetheriteIngot]));
1245pub static NON_FLAMMABLE_WOOD: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1246    HashSet::from_iter(vec![
1247        Item::WarpedStem,
1248        Item::StrippedWarpedStem,
1249        Item::WarpedHyphae,
1250        Item::StrippedWarpedHyphae,
1251        Item::CrimsonStem,
1252        Item::StrippedCrimsonStem,
1253        Item::CrimsonHyphae,
1254        Item::StrippedCrimsonHyphae,
1255        Item::CrimsonPlanks,
1256        Item::WarpedPlanks,
1257        Item::CrimsonSlab,
1258        Item::WarpedSlab,
1259        Item::CrimsonPressurePlate,
1260        Item::WarpedPressurePlate,
1261        Item::CrimsonFence,
1262        Item::WarpedFence,
1263        Item::CrimsonTrapdoor,
1264        Item::WarpedTrapdoor,
1265        Item::CrimsonFenceGate,
1266        Item::WarpedFenceGate,
1267        Item::CrimsonStairs,
1268        Item::WarpedStairs,
1269        Item::CrimsonButton,
1270        Item::WarpedButton,
1271        Item::CrimsonDoor,
1272        Item::WarpedDoor,
1273        Item::CrimsonSign,
1274        Item::WarpedSign,
1275        Item::WarpedHangingSign,
1276        Item::CrimsonHangingSign,
1277    ])
1278});
1279pub static NOTEBLOCK_TOP_INSTRUMENTS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1280    HashSet::from_iter(vec![
1281        Item::ZombieHead,
1282        Item::SkeletonSkull,
1283        Item::CreeperHead,
1284        Item::DragonHead,
1285        Item::WitherSkeletonSkull,
1286        Item::PiglinHead,
1287        Item::PlayerHead,
1288    ])
1289});
1290pub static OAK_LOGS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1291    HashSet::from_iter(vec![
1292        Item::OakLog,
1293        Item::OakWood,
1294        Item::StrippedOakLog,
1295        Item::StrippedOakWood,
1296    ])
1297});
1298pub static OCELOT_FOOD: LazyLock<HashSet<Item>> =
1299    LazyLock::new(|| HashSet::from_iter(vec![Item::Cod, Item::Salmon]));
1300pub static PALE_OAK_LOGS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1301    HashSet::from_iter(vec![
1302        Item::PaleOakLog,
1303        Item::PaleOakWood,
1304        Item::StrippedPaleOakLog,
1305        Item::StrippedPaleOakWood,
1306    ])
1307});
1308pub static PANDA_EATS_FROM_GROUND: LazyLock<HashSet<Item>> =
1309    LazyLock::new(|| HashSet::from_iter(vec![Item::Cake, Item::Bamboo]));
1310pub static PANDA_FOOD: LazyLock<HashSet<Item>> =
1311    LazyLock::new(|| HashSet::from_iter(vec![Item::Bamboo]));
1312pub static PARROT_FOOD: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1313    HashSet::from_iter(vec![
1314        Item::WheatSeeds,
1315        Item::MelonSeeds,
1316        Item::PumpkinSeeds,
1317        Item::BeetrootSeeds,
1318        Item::TorchflowerSeeds,
1319        Item::PitcherPod,
1320    ])
1321});
1322pub static PARROT_POISONOUS_FOOD: LazyLock<HashSet<Item>> =
1323    LazyLock::new(|| HashSet::from_iter(vec![Item::Cookie]));
1324pub static PICKAXES: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1325    HashSet::from_iter(vec![
1326        Item::DiamondPickaxe,
1327        Item::StonePickaxe,
1328        Item::GoldenPickaxe,
1329        Item::NetheritePickaxe,
1330        Item::WoodenPickaxe,
1331        Item::IronPickaxe,
1332    ])
1333});
1334pub static PIG_FOOD: LazyLock<HashSet<Item>> =
1335    LazyLock::new(|| HashSet::from_iter(vec![Item::Carrot, Item::Potato, Item::Beetroot]));
1336pub static PIGLIN_FOOD: LazyLock<HashSet<Item>> =
1337    LazyLock::new(|| HashSet::from_iter(vec![Item::Porkchop, Item::CookedPorkchop]));
1338pub static PIGLIN_LOVED: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1339    HashSet::from_iter(vec![
1340        Item::GoldBlock,
1341        Item::GildedBlackstone,
1342        Item::LightWeightedPressurePlate,
1343        Item::GoldIngot,
1344        Item::Bell,
1345        Item::Clock,
1346        Item::GoldenCarrot,
1347        Item::GlisteringMelonSlice,
1348        Item::GoldenApple,
1349        Item::EnchantedGoldenApple,
1350        Item::GoldenHelmet,
1351        Item::GoldenChestplate,
1352        Item::GoldenLeggings,
1353        Item::GoldenBoots,
1354        Item::GoldenHorseArmor,
1355        Item::GoldenSword,
1356        Item::GoldenPickaxe,
1357        Item::GoldenShovel,
1358        Item::GoldenAxe,
1359        Item::GoldenHoe,
1360        Item::RawGold,
1361        Item::RawGoldBlock,
1362        Item::GoldOre,
1363        Item::NetherGoldOre,
1364        Item::DeepslateGoldOre,
1365    ])
1366});
1367pub static PIGLIN_PREFERRED_WEAPONS: LazyLock<HashSet<Item>> =
1368    LazyLock::new(|| HashSet::from_iter(vec![Item::Crossbow]));
1369pub static PIGLIN_REPELLENTS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1370    HashSet::from_iter(vec![Item::SoulTorch, Item::SoulLantern, Item::SoulCampfire])
1371});
1372pub static PIGLIN_SAFE_ARMOR: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1373    HashSet::from_iter(vec![
1374        Item::GoldenHelmet,
1375        Item::GoldenChestplate,
1376        Item::GoldenLeggings,
1377        Item::GoldenBoots,
1378    ])
1379});
1380pub static PILLAGER_PREFERRED_WEAPONS: LazyLock<HashSet<Item>> =
1381    LazyLock::new(|| HashSet::from_iter(vec![Item::Crossbow]));
1382pub static PLANKS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1383    HashSet::from_iter(vec![
1384        Item::OakPlanks,
1385        Item::SprucePlanks,
1386        Item::BirchPlanks,
1387        Item::JunglePlanks,
1388        Item::AcaciaPlanks,
1389        Item::DarkOakPlanks,
1390        Item::PaleOakPlanks,
1391        Item::CrimsonPlanks,
1392        Item::WarpedPlanks,
1393        Item::MangrovePlanks,
1394        Item::BambooPlanks,
1395        Item::CherryPlanks,
1396    ])
1397});
1398pub static RABBIT_FOOD: LazyLock<HashSet<Item>> =
1399    LazyLock::new(|| HashSet::from_iter(vec![Item::Carrot, Item::GoldenCarrot, Item::Dandelion]));
1400pub static RAILS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1401    HashSet::from_iter(vec![
1402        Item::Rail,
1403        Item::PoweredRail,
1404        Item::DetectorRail,
1405        Item::ActivatorRail,
1406    ])
1407});
1408pub static REDSTONE_ORES: LazyLock<HashSet<Item>> =
1409    LazyLock::new(|| HashSet::from_iter(vec![Item::RedstoneOre, Item::DeepslateRedstoneOre]));
1410pub static REPAIRS_CHAIN_ARMOR: LazyLock<HashSet<Item>> =
1411    LazyLock::new(|| HashSet::from_iter(vec![Item::IronIngot]));
1412pub static REPAIRS_DIAMOND_ARMOR: LazyLock<HashSet<Item>> =
1413    LazyLock::new(|| HashSet::from_iter(vec![Item::Diamond]));
1414pub static REPAIRS_GOLD_ARMOR: LazyLock<HashSet<Item>> =
1415    LazyLock::new(|| HashSet::from_iter(vec![Item::GoldIngot]));
1416pub static REPAIRS_IRON_ARMOR: LazyLock<HashSet<Item>> =
1417    LazyLock::new(|| HashSet::from_iter(vec![Item::IronIngot]));
1418pub static REPAIRS_LEATHER_ARMOR: LazyLock<HashSet<Item>> =
1419    LazyLock::new(|| HashSet::from_iter(vec![Item::Leather]));
1420pub static REPAIRS_NETHERITE_ARMOR: LazyLock<HashSet<Item>> =
1421    LazyLock::new(|| HashSet::from_iter(vec![Item::NetheriteIngot]));
1422pub static REPAIRS_TURTLE_HELMET: LazyLock<HashSet<Item>> =
1423    LazyLock::new(|| HashSet::from_iter(vec![Item::TurtleScute]));
1424pub static REPAIRS_WOLF_ARMOR: LazyLock<HashSet<Item>> =
1425    LazyLock::new(|| HashSet::from_iter(vec![Item::ArmadilloScute]));
1426pub static SAND: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1427    HashSet::from_iter(vec![
1428        Item::Sand,
1429        Item::RedSand,
1430        Item::SuspiciousSand,
1431        Item::SuspiciousSand,
1432    ])
1433});
1434pub static SAPLINGS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1435    HashSet::from_iter(vec![
1436        Item::OakSapling,
1437        Item::SpruceSapling,
1438        Item::BirchSapling,
1439        Item::JungleSapling,
1440        Item::AcaciaSapling,
1441        Item::DarkOakSapling,
1442        Item::PaleOakSapling,
1443        Item::Azalea,
1444        Item::FloweringAzalea,
1445        Item::MangrovePropagule,
1446        Item::CherrySapling,
1447    ])
1448});
1449pub static SHEEP_FOOD: LazyLock<HashSet<Item>> =
1450    LazyLock::new(|| HashSet::from_iter(vec![Item::Wheat]));
1451pub static SHOVELS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1452    HashSet::from_iter(vec![
1453        Item::DiamondShovel,
1454        Item::StoneShovel,
1455        Item::GoldenShovel,
1456        Item::NetheriteShovel,
1457        Item::WoodenShovel,
1458        Item::IronShovel,
1459    ])
1460});
1461pub static SHULKER_BOXES: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1462    HashSet::from_iter(vec![
1463        Item::ShulkerBox,
1464        Item::BlackShulkerBox,
1465        Item::BlueShulkerBox,
1466        Item::BrownShulkerBox,
1467        Item::CyanShulkerBox,
1468        Item::GrayShulkerBox,
1469        Item::GreenShulkerBox,
1470        Item::LightBlueShulkerBox,
1471        Item::LightGrayShulkerBox,
1472        Item::LimeShulkerBox,
1473        Item::MagentaShulkerBox,
1474        Item::OrangeShulkerBox,
1475        Item::PinkShulkerBox,
1476        Item::PurpleShulkerBox,
1477        Item::RedShulkerBox,
1478        Item::WhiteShulkerBox,
1479        Item::YellowShulkerBox,
1480    ])
1481});
1482pub static SIGNS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1483    HashSet::from_iter(vec![
1484        Item::OakSign,
1485        Item::SpruceSign,
1486        Item::BirchSign,
1487        Item::AcaciaSign,
1488        Item::JungleSign,
1489        Item::DarkOakSign,
1490        Item::PaleOakSign,
1491        Item::CrimsonSign,
1492        Item::WarpedSign,
1493        Item::MangroveSign,
1494        Item::BambooSign,
1495        Item::CherrySign,
1496    ])
1497});
1498pub static SKELETON_PREFERRED_WEAPONS: LazyLock<HashSet<Item>> =
1499    LazyLock::new(|| HashSet::from_iter(vec![Item::Bow]));
1500pub static SKULLS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1501    HashSet::from_iter(vec![
1502        Item::PlayerHead,
1503        Item::CreeperHead,
1504        Item::ZombieHead,
1505        Item::SkeletonSkull,
1506        Item::WitherSkeletonSkull,
1507        Item::DragonHead,
1508        Item::PiglinHead,
1509    ])
1510});
1511pub static SLABS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1512    HashSet::from_iter(vec![
1513        Item::BambooMosaicSlab,
1514        Item::StoneSlab,
1515        Item::SmoothStoneSlab,
1516        Item::StoneBrickSlab,
1517        Item::SandstoneSlab,
1518        Item::PurpurSlab,
1519        Item::QuartzSlab,
1520        Item::RedSandstoneSlab,
1521        Item::BrickSlab,
1522        Item::CobblestoneSlab,
1523        Item::NetherBrickSlab,
1524        Item::PetrifiedOakSlab,
1525        Item::PrismarineSlab,
1526        Item::PrismarineBrickSlab,
1527        Item::DarkPrismarineSlab,
1528        Item::PolishedGraniteSlab,
1529        Item::SmoothRedSandstoneSlab,
1530        Item::MossyStoneBrickSlab,
1531        Item::PolishedDioriteSlab,
1532        Item::MossyCobblestoneSlab,
1533        Item::EndStoneBrickSlab,
1534        Item::SmoothSandstoneSlab,
1535        Item::SmoothQuartzSlab,
1536        Item::GraniteSlab,
1537        Item::AndesiteSlab,
1538        Item::RedNetherBrickSlab,
1539        Item::PolishedAndesiteSlab,
1540        Item::DioriteSlab,
1541        Item::CutSandstoneSlab,
1542        Item::CutRedSandstoneSlab,
1543        Item::BlackstoneSlab,
1544        Item::PolishedBlackstoneBrickSlab,
1545        Item::PolishedBlackstoneSlab,
1546        Item::CobbledDeepslateSlab,
1547        Item::PolishedDeepslateSlab,
1548        Item::DeepslateTileSlab,
1549        Item::DeepslateBrickSlab,
1550        Item::WaxedWeatheredCutCopperSlab,
1551        Item::WaxedExposedCutCopperSlab,
1552        Item::WaxedCutCopperSlab,
1553        Item::OxidizedCutCopperSlab,
1554        Item::WeatheredCutCopperSlab,
1555        Item::ExposedCutCopperSlab,
1556        Item::CutCopperSlab,
1557        Item::WaxedOxidizedCutCopperSlab,
1558        Item::MudBrickSlab,
1559        Item::TuffSlab,
1560        Item::PolishedTuffSlab,
1561        Item::TuffBrickSlab,
1562        Item::ResinBrickSlab,
1563        Item::OakSlab,
1564        Item::SpruceSlab,
1565        Item::BirchSlab,
1566        Item::JungleSlab,
1567        Item::AcaciaSlab,
1568        Item::DarkOakSlab,
1569        Item::PaleOakSlab,
1570        Item::CrimsonSlab,
1571        Item::WarpedSlab,
1572        Item::MangroveSlab,
1573        Item::BambooSlab,
1574        Item::CherrySlab,
1575    ])
1576});
1577pub static SMALL_FLOWERS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1578    HashSet::from_iter(vec![
1579        Item::Dandelion,
1580        Item::OpenEyeblossom,
1581        Item::Poppy,
1582        Item::BlueOrchid,
1583        Item::Allium,
1584        Item::AzureBluet,
1585        Item::RedTulip,
1586        Item::OrangeTulip,
1587        Item::WhiteTulip,
1588        Item::PinkTulip,
1589        Item::OxeyeDaisy,
1590        Item::Cornflower,
1591        Item::LilyOfTheValley,
1592        Item::WitherRose,
1593        Item::Torchflower,
1594        Item::ClosedEyeblossom,
1595    ])
1596});
1597pub static SMELTS_TO_GLASS: LazyLock<HashSet<Item>> =
1598    LazyLock::new(|| HashSet::from_iter(vec![Item::Sand, Item::RedSand]));
1599pub static SNIFFER_FOOD: LazyLock<HashSet<Item>> =
1600    LazyLock::new(|| HashSet::from_iter(vec![Item::TorchflowerSeeds]));
1601pub static SOUL_FIRE_BASE_BLOCKS: LazyLock<HashSet<Item>> =
1602    LazyLock::new(|| HashSet::from_iter(vec![Item::SoulSand, Item::SoulSoil]));
1603pub static SPRUCE_LOGS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1604    HashSet::from_iter(vec![
1605        Item::SpruceLog,
1606        Item::SpruceWood,
1607        Item::StrippedSpruceLog,
1608        Item::StrippedSpruceWood,
1609    ])
1610});
1611pub static STAIRS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1612    HashSet::from_iter(vec![
1613        Item::BambooMosaicStairs,
1614        Item::CobblestoneStairs,
1615        Item::SandstoneStairs,
1616        Item::NetherBrickStairs,
1617        Item::StoneBrickStairs,
1618        Item::BrickStairs,
1619        Item::PurpurStairs,
1620        Item::QuartzStairs,
1621        Item::RedSandstoneStairs,
1622        Item::PrismarineBrickStairs,
1623        Item::PrismarineStairs,
1624        Item::DarkPrismarineStairs,
1625        Item::PolishedGraniteStairs,
1626        Item::SmoothRedSandstoneStairs,
1627        Item::MossyStoneBrickStairs,
1628        Item::PolishedDioriteStairs,
1629        Item::MossyCobblestoneStairs,
1630        Item::EndStoneBrickStairs,
1631        Item::StoneStairs,
1632        Item::SmoothSandstoneStairs,
1633        Item::SmoothQuartzStairs,
1634        Item::GraniteStairs,
1635        Item::AndesiteStairs,
1636        Item::RedNetherBrickStairs,
1637        Item::PolishedAndesiteStairs,
1638        Item::DioriteStairs,
1639        Item::BlackstoneStairs,
1640        Item::PolishedBlackstoneBrickStairs,
1641        Item::PolishedBlackstoneStairs,
1642        Item::CobbledDeepslateStairs,
1643        Item::PolishedDeepslateStairs,
1644        Item::DeepslateTileStairs,
1645        Item::DeepslateBrickStairs,
1646        Item::OxidizedCutCopperStairs,
1647        Item::WeatheredCutCopperStairs,
1648        Item::ExposedCutCopperStairs,
1649        Item::CutCopperStairs,
1650        Item::WaxedWeatheredCutCopperStairs,
1651        Item::WaxedExposedCutCopperStairs,
1652        Item::WaxedCutCopperStairs,
1653        Item::WaxedOxidizedCutCopperStairs,
1654        Item::MudBrickStairs,
1655        Item::TuffStairs,
1656        Item::PolishedTuffStairs,
1657        Item::TuffBrickStairs,
1658        Item::ResinBrickStairs,
1659        Item::OakStairs,
1660        Item::SpruceStairs,
1661        Item::BirchStairs,
1662        Item::JungleStairs,
1663        Item::AcaciaStairs,
1664        Item::DarkOakStairs,
1665        Item::PaleOakStairs,
1666        Item::CrimsonStairs,
1667        Item::WarpedStairs,
1668        Item::MangroveStairs,
1669        Item::BambooStairs,
1670        Item::CherryStairs,
1671    ])
1672});
1673pub static STONE_BRICKS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1674    HashSet::from_iter(vec![
1675        Item::StoneBricks,
1676        Item::MossyStoneBricks,
1677        Item::CrackedStoneBricks,
1678        Item::ChiseledStoneBricks,
1679    ])
1680});
1681pub static STONE_BUTTONS: LazyLock<HashSet<Item>> =
1682    LazyLock::new(|| HashSet::from_iter(vec![Item::StoneButton, Item::PolishedBlackstoneButton]));
1683pub static STONE_CRAFTING_MATERIALS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1684    HashSet::from_iter(vec![
1685        Item::Cobblestone,
1686        Item::Blackstone,
1687        Item::CobbledDeepslate,
1688    ])
1689});
1690pub static STONE_TOOL_MATERIALS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1691    HashSet::from_iter(vec![
1692        Item::Cobblestone,
1693        Item::Blackstone,
1694        Item::CobbledDeepslate,
1695    ])
1696});
1697pub static STRIDER_FOOD: LazyLock<HashSet<Item>> =
1698    LazyLock::new(|| HashSet::from_iter(vec![Item::WarpedFungus]));
1699pub static STRIDER_TEMPT_ITEMS: LazyLock<HashSet<Item>> =
1700    LazyLock::new(|| HashSet::from_iter(vec![Item::WarpedFungusOnAStick, Item::WarpedFungus]));
1701pub static SWORDS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1702    HashSet::from_iter(vec![
1703        Item::DiamondSword,
1704        Item::StoneSword,
1705        Item::GoldenSword,
1706        Item::NetheriteSword,
1707        Item::WoodenSword,
1708        Item::IronSword,
1709    ])
1710});
1711pub static TERRACOTTA: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1712    HashSet::from_iter(vec![
1713        Item::Terracotta,
1714        Item::WhiteTerracotta,
1715        Item::OrangeTerracotta,
1716        Item::MagentaTerracotta,
1717        Item::LightBlueTerracotta,
1718        Item::YellowTerracotta,
1719        Item::LimeTerracotta,
1720        Item::PinkTerracotta,
1721        Item::GrayTerracotta,
1722        Item::LightGrayTerracotta,
1723        Item::CyanTerracotta,
1724        Item::PurpleTerracotta,
1725        Item::BlueTerracotta,
1726        Item::BrownTerracotta,
1727        Item::GreenTerracotta,
1728        Item::RedTerracotta,
1729        Item::BlackTerracotta,
1730    ])
1731});
1732pub static TRAPDOORS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1733    HashSet::from_iter(vec![
1734        Item::IronTrapdoor,
1735        Item::CopperTrapdoor,
1736        Item::ExposedCopperTrapdoor,
1737        Item::WeatheredCopperTrapdoor,
1738        Item::OxidizedCopperTrapdoor,
1739        Item::WaxedCopperTrapdoor,
1740        Item::WaxedExposedCopperTrapdoor,
1741        Item::WaxedWeatheredCopperTrapdoor,
1742        Item::WaxedOxidizedCopperTrapdoor,
1743        Item::AcaciaTrapdoor,
1744        Item::BirchTrapdoor,
1745        Item::DarkOakTrapdoor,
1746        Item::PaleOakTrapdoor,
1747        Item::JungleTrapdoor,
1748        Item::OakTrapdoor,
1749        Item::SpruceTrapdoor,
1750        Item::CrimsonTrapdoor,
1751        Item::WarpedTrapdoor,
1752        Item::MangroveTrapdoor,
1753        Item::BambooTrapdoor,
1754        Item::CherryTrapdoor,
1755    ])
1756});
1757pub static TRIM_MATERIALS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1758    HashSet::from_iter(vec![
1759        Item::AmethystShard,
1760        Item::CopperIngot,
1761        Item::Diamond,
1762        Item::Emerald,
1763        Item::GoldIngot,
1764        Item::IronIngot,
1765        Item::LapisLazuli,
1766        Item::NetheriteIngot,
1767        Item::Quartz,
1768        Item::Redstone,
1769        Item::ResinBrick,
1770    ])
1771});
1772pub static TRIMMABLE_ARMOR: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1773    HashSet::from_iter(vec![
1774        Item::LeatherBoots,
1775        Item::ChainmailBoots,
1776        Item::GoldenBoots,
1777        Item::IronBoots,
1778        Item::DiamondBoots,
1779        Item::NetheriteBoots,
1780        Item::LeatherLeggings,
1781        Item::ChainmailLeggings,
1782        Item::GoldenLeggings,
1783        Item::IronLeggings,
1784        Item::DiamondLeggings,
1785        Item::NetheriteLeggings,
1786        Item::LeatherChestplate,
1787        Item::ChainmailChestplate,
1788        Item::GoldenChestplate,
1789        Item::IronChestplate,
1790        Item::DiamondChestplate,
1791        Item::NetheriteChestplate,
1792        Item::LeatherHelmet,
1793        Item::ChainmailHelmet,
1794        Item::GoldenHelmet,
1795        Item::IronHelmet,
1796        Item::DiamondHelmet,
1797        Item::NetheriteHelmet,
1798        Item::TurtleHelmet,
1799    ])
1800});
1801pub static TURTLE_FOOD: LazyLock<HashSet<Item>> =
1802    LazyLock::new(|| HashSet::from_iter(vec![Item::Seagrass]));
1803pub static VILLAGER_PICKS_UP: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1804    HashSet::from_iter(vec![
1805        Item::Bread,
1806        Item::Wheat,
1807        Item::Beetroot,
1808        Item::WheatSeeds,
1809        Item::Potato,
1810        Item::Carrot,
1811        Item::BeetrootSeeds,
1812        Item::TorchflowerSeeds,
1813        Item::PitcherPod,
1814    ])
1815});
1816pub static VILLAGER_PLANTABLE_SEEDS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1817    HashSet::from_iter(vec![
1818        Item::WheatSeeds,
1819        Item::Potato,
1820        Item::Carrot,
1821        Item::BeetrootSeeds,
1822        Item::TorchflowerSeeds,
1823        Item::PitcherPod,
1824    ])
1825});
1826pub static WALLS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1827    HashSet::from_iter(vec![
1828        Item::CobblestoneWall,
1829        Item::MossyCobblestoneWall,
1830        Item::BrickWall,
1831        Item::PrismarineWall,
1832        Item::RedSandstoneWall,
1833        Item::MossyStoneBrickWall,
1834        Item::GraniteWall,
1835        Item::StoneBrickWall,
1836        Item::NetherBrickWall,
1837        Item::AndesiteWall,
1838        Item::RedNetherBrickWall,
1839        Item::SandstoneWall,
1840        Item::EndStoneBrickWall,
1841        Item::DioriteWall,
1842        Item::BlackstoneWall,
1843        Item::PolishedBlackstoneBrickWall,
1844        Item::PolishedBlackstoneWall,
1845        Item::CobbledDeepslateWall,
1846        Item::PolishedDeepslateWall,
1847        Item::DeepslateTileWall,
1848        Item::DeepslateBrickWall,
1849        Item::MudBrickWall,
1850        Item::TuffWall,
1851        Item::PolishedTuffWall,
1852        Item::TuffBrickWall,
1853        Item::ResinBrickWall,
1854    ])
1855});
1856pub static WARPED_STEMS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1857    HashSet::from_iter(vec![
1858        Item::WarpedStem,
1859        Item::StrippedWarpedStem,
1860        Item::WarpedHyphae,
1861        Item::StrippedWarpedHyphae,
1862    ])
1863});
1864pub static WART_BLOCKS: LazyLock<HashSet<Item>> =
1865    LazyLock::new(|| HashSet::from_iter(vec![Item::NetherWartBlock, Item::WarpedWartBlock]));
1866pub static WITHER_SKELETON_DISLIKED_WEAPONS: LazyLock<HashSet<Item>> =
1867    LazyLock::new(|| HashSet::from_iter(vec![Item::Bow, Item::Crossbow]));
1868pub static WOLF_FOOD: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1869    HashSet::from_iter(vec![
1870        Item::Cod,
1871        Item::CookedCod,
1872        Item::Salmon,
1873        Item::CookedSalmon,
1874        Item::TropicalFish,
1875        Item::Pufferfish,
1876        Item::RabbitStew,
1877        Item::Beef,
1878        Item::Chicken,
1879        Item::CookedBeef,
1880        Item::CookedChicken,
1881        Item::CookedMutton,
1882        Item::CookedPorkchop,
1883        Item::CookedRabbit,
1884        Item::Mutton,
1885        Item::Porkchop,
1886        Item::Rabbit,
1887        Item::RottenFlesh,
1888    ])
1889});
1890pub static WOODEN_BUTTONS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1891    HashSet::from_iter(vec![
1892        Item::OakButton,
1893        Item::SpruceButton,
1894        Item::BirchButton,
1895        Item::JungleButton,
1896        Item::AcaciaButton,
1897        Item::DarkOakButton,
1898        Item::PaleOakButton,
1899        Item::CrimsonButton,
1900        Item::WarpedButton,
1901        Item::MangroveButton,
1902        Item::BambooButton,
1903        Item::CherryButton,
1904    ])
1905});
1906pub static WOODEN_DOORS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1907    HashSet::from_iter(vec![
1908        Item::OakDoor,
1909        Item::SpruceDoor,
1910        Item::BirchDoor,
1911        Item::JungleDoor,
1912        Item::AcaciaDoor,
1913        Item::DarkOakDoor,
1914        Item::PaleOakDoor,
1915        Item::CrimsonDoor,
1916        Item::WarpedDoor,
1917        Item::MangroveDoor,
1918        Item::BambooDoor,
1919        Item::CherryDoor,
1920    ])
1921});
1922pub static WOODEN_FENCES: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1923    HashSet::from_iter(vec![
1924        Item::OakFence,
1925        Item::AcaciaFence,
1926        Item::DarkOakFence,
1927        Item::PaleOakFence,
1928        Item::SpruceFence,
1929        Item::BirchFence,
1930        Item::JungleFence,
1931        Item::CrimsonFence,
1932        Item::WarpedFence,
1933        Item::MangroveFence,
1934        Item::BambooFence,
1935        Item::CherryFence,
1936    ])
1937});
1938pub static WOODEN_PRESSURE_PLATES: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1939    HashSet::from_iter(vec![
1940        Item::OakPressurePlate,
1941        Item::SprucePressurePlate,
1942        Item::BirchPressurePlate,
1943        Item::JunglePressurePlate,
1944        Item::AcaciaPressurePlate,
1945        Item::DarkOakPressurePlate,
1946        Item::PaleOakPressurePlate,
1947        Item::CrimsonPressurePlate,
1948        Item::WarpedPressurePlate,
1949        Item::MangrovePressurePlate,
1950        Item::BambooPressurePlate,
1951        Item::CherryPressurePlate,
1952    ])
1953});
1954pub static WOODEN_SLABS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1955    HashSet::from_iter(vec![
1956        Item::OakSlab,
1957        Item::SpruceSlab,
1958        Item::BirchSlab,
1959        Item::JungleSlab,
1960        Item::AcaciaSlab,
1961        Item::DarkOakSlab,
1962        Item::PaleOakSlab,
1963        Item::CrimsonSlab,
1964        Item::WarpedSlab,
1965        Item::MangroveSlab,
1966        Item::BambooSlab,
1967        Item::CherrySlab,
1968    ])
1969});
1970pub static WOODEN_STAIRS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1971    HashSet::from_iter(vec![
1972        Item::OakStairs,
1973        Item::SpruceStairs,
1974        Item::BirchStairs,
1975        Item::JungleStairs,
1976        Item::AcaciaStairs,
1977        Item::DarkOakStairs,
1978        Item::PaleOakStairs,
1979        Item::CrimsonStairs,
1980        Item::WarpedStairs,
1981        Item::MangroveStairs,
1982        Item::BambooStairs,
1983        Item::CherryStairs,
1984    ])
1985});
1986pub static WOODEN_TOOL_MATERIALS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1987    HashSet::from_iter(vec![
1988        Item::OakPlanks,
1989        Item::SprucePlanks,
1990        Item::BirchPlanks,
1991        Item::JunglePlanks,
1992        Item::AcaciaPlanks,
1993        Item::DarkOakPlanks,
1994        Item::PaleOakPlanks,
1995        Item::CrimsonPlanks,
1996        Item::WarpedPlanks,
1997        Item::MangrovePlanks,
1998        Item::BambooPlanks,
1999        Item::CherryPlanks,
2000    ])
2001});
2002pub static WOODEN_TRAPDOORS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
2003    HashSet::from_iter(vec![
2004        Item::AcaciaTrapdoor,
2005        Item::BirchTrapdoor,
2006        Item::DarkOakTrapdoor,
2007        Item::PaleOakTrapdoor,
2008        Item::JungleTrapdoor,
2009        Item::OakTrapdoor,
2010        Item::SpruceTrapdoor,
2011        Item::CrimsonTrapdoor,
2012        Item::WarpedTrapdoor,
2013        Item::MangroveTrapdoor,
2014        Item::BambooTrapdoor,
2015        Item::CherryTrapdoor,
2016    ])
2017});
2018pub static WOOL: LazyLock<HashSet<Item>> = LazyLock::new(|| {
2019    HashSet::from_iter(vec![
2020        Item::WhiteWool,
2021        Item::OrangeWool,
2022        Item::MagentaWool,
2023        Item::LightBlueWool,
2024        Item::YellowWool,
2025        Item::LimeWool,
2026        Item::PinkWool,
2027        Item::GrayWool,
2028        Item::LightGrayWool,
2029        Item::CyanWool,
2030        Item::PurpleWool,
2031        Item::BlueWool,
2032        Item::BrownWool,
2033        Item::GreenWool,
2034        Item::RedWool,
2035        Item::BlackWool,
2036    ])
2037});
2038pub static WOOL_CARPETS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
2039    HashSet::from_iter(vec![
2040        Item::WhiteCarpet,
2041        Item::OrangeCarpet,
2042        Item::MagentaCarpet,
2043        Item::LightBlueCarpet,
2044        Item::YellowCarpet,
2045        Item::LimeCarpet,
2046        Item::PinkCarpet,
2047        Item::GrayCarpet,
2048        Item::LightGrayCarpet,
2049        Item::CyanCarpet,
2050        Item::PurpleCarpet,
2051        Item::BlueCarpet,
2052        Item::BrownCarpet,
2053        Item::GreenCarpet,
2054        Item::RedCarpet,
2055        Item::BlackCarpet,
2056    ])
2057});