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