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 HAPPY_GHAST_FOOD: LazyLock<HashSet<Item>> =
1083    LazyLock::new(|| HashSet::from_iter(vec![Item::Snowball]));
1084pub static HAPPY_GHAST_TEMPT_ITEMS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1085    HashSet::from_iter(vec![
1086        Item::Snowball,
1087        Item::WhiteHarness,
1088        Item::OrangeHarness,
1089        Item::MagentaHarness,
1090        Item::LightBlueHarness,
1091        Item::YellowHarness,
1092        Item::LimeHarness,
1093        Item::PinkHarness,
1094        Item::GrayHarness,
1095        Item::LightGrayHarness,
1096        Item::CyanHarness,
1097        Item::PurpleHarness,
1098        Item::BlueHarness,
1099        Item::BrownHarness,
1100        Item::GreenHarness,
1101        Item::RedHarness,
1102        Item::BlackHarness,
1103    ])
1104});
1105pub static HARNESSES: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1106    HashSet::from_iter(vec![
1107        Item::WhiteHarness,
1108        Item::OrangeHarness,
1109        Item::MagentaHarness,
1110        Item::LightBlueHarness,
1111        Item::YellowHarness,
1112        Item::LimeHarness,
1113        Item::PinkHarness,
1114        Item::GrayHarness,
1115        Item::LightGrayHarness,
1116        Item::CyanHarness,
1117        Item::PurpleHarness,
1118        Item::BlueHarness,
1119        Item::BrownHarness,
1120        Item::GreenHarness,
1121        Item::RedHarness,
1122        Item::BlackHarness,
1123    ])
1124});
1125pub static HEAD_ARMOR: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1126    HashSet::from_iter(vec![
1127        Item::LeatherHelmet,
1128        Item::ChainmailHelmet,
1129        Item::GoldenHelmet,
1130        Item::IronHelmet,
1131        Item::DiamondHelmet,
1132        Item::NetheriteHelmet,
1133        Item::TurtleHelmet,
1134    ])
1135});
1136pub static HOES: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1137    HashSet::from_iter(vec![
1138        Item::DiamondHoe,
1139        Item::StoneHoe,
1140        Item::GoldenHoe,
1141        Item::NetheriteHoe,
1142        Item::WoodenHoe,
1143        Item::IronHoe,
1144    ])
1145});
1146pub static HOGLIN_FOOD: LazyLock<HashSet<Item>> =
1147    LazyLock::new(|| HashSet::from_iter(vec![Item::CrimsonFungus]));
1148pub static HORSE_FOOD: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1149    HashSet::from_iter(vec![
1150        Item::Wheat,
1151        Item::Sugar,
1152        Item::HayBlock,
1153        Item::Apple,
1154        Item::Carrot,
1155        Item::GoldenCarrot,
1156        Item::GoldenApple,
1157        Item::EnchantedGoldenApple,
1158    ])
1159});
1160pub static HORSE_TEMPT_ITEMS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1161    HashSet::from_iter(vec![
1162        Item::GoldenCarrot,
1163        Item::GoldenApple,
1164        Item::EnchantedGoldenApple,
1165    ])
1166});
1167pub static IGNORED_BY_PIGLIN_BABIES: LazyLock<HashSet<Item>> =
1168    LazyLock::new(|| HashSet::from_iter(vec![Item::Leather]));
1169pub static IRON_ORES: LazyLock<HashSet<Item>> =
1170    LazyLock::new(|| HashSet::from_iter(vec![Item::IronOre, Item::DeepslateIronOre]));
1171pub static IRON_TOOL_MATERIALS: LazyLock<HashSet<Item>> =
1172    LazyLock::new(|| HashSet::from_iter(vec![Item::IronIngot]));
1173pub static JUNGLE_LOGS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1174    HashSet::from_iter(vec![
1175        Item::JungleLog,
1176        Item::JungleWood,
1177        Item::StrippedJungleLog,
1178        Item::StrippedJungleWood,
1179    ])
1180});
1181pub static LAPIS_ORES: LazyLock<HashSet<Item>> =
1182    LazyLock::new(|| HashSet::from_iter(vec![Item::LapisOre, Item::DeepslateLapisOre]));
1183pub static LEAVES: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1184    HashSet::from_iter(vec![
1185        Item::JungleLeaves,
1186        Item::OakLeaves,
1187        Item::SpruceLeaves,
1188        Item::PaleOakLeaves,
1189        Item::DarkOakLeaves,
1190        Item::AcaciaLeaves,
1191        Item::BirchLeaves,
1192        Item::AzaleaLeaves,
1193        Item::FloweringAzaleaLeaves,
1194        Item::MangroveLeaves,
1195        Item::CherryLeaves,
1196    ])
1197});
1198pub static LECTERN_BOOKS: LazyLock<HashSet<Item>> =
1199    LazyLock::new(|| HashSet::from_iter(vec![Item::WrittenBook, Item::WritableBook]));
1200pub static LEG_ARMOR: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1201    HashSet::from_iter(vec![
1202        Item::LeatherLeggings,
1203        Item::ChainmailLeggings,
1204        Item::GoldenLeggings,
1205        Item::IronLeggings,
1206        Item::DiamondLeggings,
1207        Item::NetheriteLeggings,
1208    ])
1209});
1210pub static LLAMA_FOOD: LazyLock<HashSet<Item>> =
1211    LazyLock::new(|| HashSet::from_iter(vec![Item::Wheat, Item::HayBlock]));
1212pub static LLAMA_TEMPT_ITEMS: LazyLock<HashSet<Item>> =
1213    LazyLock::new(|| HashSet::from_iter(vec![Item::HayBlock]));
1214pub static LOGS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1215    HashSet::from_iter(vec![
1216        Item::CrimsonStem,
1217        Item::StrippedCrimsonStem,
1218        Item::CrimsonHyphae,
1219        Item::StrippedCrimsonHyphae,
1220        Item::WarpedStem,
1221        Item::StrippedWarpedStem,
1222        Item::WarpedHyphae,
1223        Item::StrippedWarpedHyphae,
1224        Item::DarkOakLog,
1225        Item::DarkOakWood,
1226        Item::StrippedDarkOakLog,
1227        Item::StrippedDarkOakWood,
1228        Item::PaleOakLog,
1229        Item::PaleOakWood,
1230        Item::StrippedPaleOakLog,
1231        Item::StrippedPaleOakWood,
1232        Item::OakLog,
1233        Item::OakWood,
1234        Item::StrippedOakLog,
1235        Item::StrippedOakWood,
1236        Item::AcaciaLog,
1237        Item::AcaciaWood,
1238        Item::StrippedAcaciaLog,
1239        Item::StrippedAcaciaWood,
1240        Item::BirchLog,
1241        Item::BirchWood,
1242        Item::StrippedBirchLog,
1243        Item::StrippedBirchWood,
1244        Item::JungleLog,
1245        Item::JungleWood,
1246        Item::StrippedJungleLog,
1247        Item::StrippedJungleWood,
1248        Item::SpruceLog,
1249        Item::SpruceWood,
1250        Item::StrippedSpruceLog,
1251        Item::StrippedSpruceWood,
1252        Item::MangroveLog,
1253        Item::MangroveWood,
1254        Item::StrippedMangroveLog,
1255        Item::StrippedMangroveWood,
1256        Item::CherryLog,
1257        Item::CherryWood,
1258        Item::StrippedCherryLog,
1259        Item::StrippedCherryWood,
1260    ])
1261});
1262pub static LOGS_THAT_BURN: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1263    HashSet::from_iter(vec![
1264        Item::DarkOakLog,
1265        Item::DarkOakWood,
1266        Item::StrippedDarkOakLog,
1267        Item::StrippedDarkOakWood,
1268        Item::PaleOakLog,
1269        Item::PaleOakWood,
1270        Item::StrippedPaleOakLog,
1271        Item::StrippedPaleOakWood,
1272        Item::OakLog,
1273        Item::OakWood,
1274        Item::StrippedOakLog,
1275        Item::StrippedOakWood,
1276        Item::AcaciaLog,
1277        Item::AcaciaWood,
1278        Item::StrippedAcaciaLog,
1279        Item::StrippedAcaciaWood,
1280        Item::BirchLog,
1281        Item::BirchWood,
1282        Item::StrippedBirchLog,
1283        Item::StrippedBirchWood,
1284        Item::JungleLog,
1285        Item::JungleWood,
1286        Item::StrippedJungleLog,
1287        Item::StrippedJungleWood,
1288        Item::SpruceLog,
1289        Item::SpruceWood,
1290        Item::StrippedSpruceLog,
1291        Item::StrippedSpruceWood,
1292        Item::MangroveLog,
1293        Item::MangroveWood,
1294        Item::StrippedMangroveLog,
1295        Item::StrippedMangroveWood,
1296        Item::CherryLog,
1297        Item::CherryWood,
1298        Item::StrippedCherryLog,
1299        Item::StrippedCherryWood,
1300    ])
1301});
1302pub static MANGROVE_LOGS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1303    HashSet::from_iter(vec![
1304        Item::MangroveLog,
1305        Item::MangroveWood,
1306        Item::StrippedMangroveLog,
1307        Item::StrippedMangroveWood,
1308    ])
1309});
1310pub static MAP_INVISIBILITY_EQUIPMENT: LazyLock<HashSet<Item>> =
1311    LazyLock::new(|| HashSet::from_iter(vec![Item::CarvedPumpkin]));
1312pub static MEAT: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1313    HashSet::from_iter(vec![
1314        Item::Beef,
1315        Item::Chicken,
1316        Item::CookedBeef,
1317        Item::CookedChicken,
1318        Item::CookedMutton,
1319        Item::CookedPorkchop,
1320        Item::CookedRabbit,
1321        Item::Mutton,
1322        Item::Porkchop,
1323        Item::Rabbit,
1324        Item::RottenFlesh,
1325    ])
1326});
1327pub static NETHERITE_TOOL_MATERIALS: LazyLock<HashSet<Item>> =
1328    LazyLock::new(|| HashSet::from_iter(vec![Item::NetheriteIngot]));
1329pub static NON_FLAMMABLE_WOOD: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1330    HashSet::from_iter(vec![
1331        Item::WarpedStem,
1332        Item::StrippedWarpedStem,
1333        Item::WarpedHyphae,
1334        Item::StrippedWarpedHyphae,
1335        Item::CrimsonStem,
1336        Item::StrippedCrimsonStem,
1337        Item::CrimsonHyphae,
1338        Item::StrippedCrimsonHyphae,
1339        Item::CrimsonPlanks,
1340        Item::WarpedPlanks,
1341        Item::CrimsonSlab,
1342        Item::WarpedSlab,
1343        Item::CrimsonPressurePlate,
1344        Item::WarpedPressurePlate,
1345        Item::CrimsonFence,
1346        Item::WarpedFence,
1347        Item::CrimsonTrapdoor,
1348        Item::WarpedTrapdoor,
1349        Item::CrimsonFenceGate,
1350        Item::WarpedFenceGate,
1351        Item::CrimsonStairs,
1352        Item::WarpedStairs,
1353        Item::CrimsonButton,
1354        Item::WarpedButton,
1355        Item::CrimsonDoor,
1356        Item::WarpedDoor,
1357        Item::CrimsonSign,
1358        Item::WarpedSign,
1359        Item::WarpedHangingSign,
1360        Item::CrimsonHangingSign,
1361    ])
1362});
1363pub static NOTEBLOCK_TOP_INSTRUMENTS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1364    HashSet::from_iter(vec![
1365        Item::ZombieHead,
1366        Item::SkeletonSkull,
1367        Item::CreeperHead,
1368        Item::DragonHead,
1369        Item::WitherSkeletonSkull,
1370        Item::PiglinHead,
1371        Item::PlayerHead,
1372    ])
1373});
1374pub static OAK_LOGS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1375    HashSet::from_iter(vec![
1376        Item::OakLog,
1377        Item::OakWood,
1378        Item::StrippedOakLog,
1379        Item::StrippedOakWood,
1380    ])
1381});
1382pub static OCELOT_FOOD: LazyLock<HashSet<Item>> =
1383    LazyLock::new(|| HashSet::from_iter(vec![Item::Cod, Item::Salmon]));
1384pub static PALE_OAK_LOGS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1385    HashSet::from_iter(vec![
1386        Item::PaleOakLog,
1387        Item::PaleOakWood,
1388        Item::StrippedPaleOakLog,
1389        Item::StrippedPaleOakWood,
1390    ])
1391});
1392pub static PANDA_EATS_FROM_GROUND: LazyLock<HashSet<Item>> =
1393    LazyLock::new(|| HashSet::from_iter(vec![Item::Cake, Item::Bamboo]));
1394pub static PANDA_FOOD: LazyLock<HashSet<Item>> =
1395    LazyLock::new(|| HashSet::from_iter(vec![Item::Bamboo]));
1396pub static PARROT_FOOD: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1397    HashSet::from_iter(vec![
1398        Item::WheatSeeds,
1399        Item::MelonSeeds,
1400        Item::PumpkinSeeds,
1401        Item::BeetrootSeeds,
1402        Item::TorchflowerSeeds,
1403        Item::PitcherPod,
1404    ])
1405});
1406pub static PARROT_POISONOUS_FOOD: LazyLock<HashSet<Item>> =
1407    LazyLock::new(|| HashSet::from_iter(vec![Item::Cookie]));
1408pub static PICKAXES: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1409    HashSet::from_iter(vec![
1410        Item::DiamondPickaxe,
1411        Item::StonePickaxe,
1412        Item::GoldenPickaxe,
1413        Item::NetheritePickaxe,
1414        Item::WoodenPickaxe,
1415        Item::IronPickaxe,
1416    ])
1417});
1418pub static PIG_FOOD: LazyLock<HashSet<Item>> =
1419    LazyLock::new(|| HashSet::from_iter(vec![Item::Carrot, Item::Potato, Item::Beetroot]));
1420pub static PIGLIN_FOOD: LazyLock<HashSet<Item>> =
1421    LazyLock::new(|| HashSet::from_iter(vec![Item::Porkchop, Item::CookedPorkchop]));
1422pub static PIGLIN_LOVED: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1423    HashSet::from_iter(vec![
1424        Item::GoldBlock,
1425        Item::GildedBlackstone,
1426        Item::LightWeightedPressurePlate,
1427        Item::GoldIngot,
1428        Item::Bell,
1429        Item::Clock,
1430        Item::GoldenCarrot,
1431        Item::GlisteringMelonSlice,
1432        Item::GoldenApple,
1433        Item::EnchantedGoldenApple,
1434        Item::GoldenHelmet,
1435        Item::GoldenChestplate,
1436        Item::GoldenLeggings,
1437        Item::GoldenBoots,
1438        Item::GoldenHorseArmor,
1439        Item::GoldenSword,
1440        Item::GoldenPickaxe,
1441        Item::GoldenShovel,
1442        Item::GoldenAxe,
1443        Item::GoldenHoe,
1444        Item::RawGold,
1445        Item::RawGoldBlock,
1446        Item::GoldOre,
1447        Item::NetherGoldOre,
1448        Item::DeepslateGoldOre,
1449    ])
1450});
1451pub static PIGLIN_PREFERRED_WEAPONS: LazyLock<HashSet<Item>> =
1452    LazyLock::new(|| HashSet::from_iter(vec![Item::Crossbow]));
1453pub static PIGLIN_REPELLENTS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1454    HashSet::from_iter(vec![Item::SoulTorch, Item::SoulLantern, Item::SoulCampfire])
1455});
1456pub static PIGLIN_SAFE_ARMOR: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1457    HashSet::from_iter(vec![
1458        Item::GoldenHelmet,
1459        Item::GoldenChestplate,
1460        Item::GoldenLeggings,
1461        Item::GoldenBoots,
1462    ])
1463});
1464pub static PILLAGER_PREFERRED_WEAPONS: LazyLock<HashSet<Item>> =
1465    LazyLock::new(|| HashSet::from_iter(vec![Item::Crossbow]));
1466pub static PLANKS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1467    HashSet::from_iter(vec![
1468        Item::OakPlanks,
1469        Item::SprucePlanks,
1470        Item::BirchPlanks,
1471        Item::JunglePlanks,
1472        Item::AcaciaPlanks,
1473        Item::DarkOakPlanks,
1474        Item::PaleOakPlanks,
1475        Item::CrimsonPlanks,
1476        Item::WarpedPlanks,
1477        Item::MangrovePlanks,
1478        Item::BambooPlanks,
1479        Item::CherryPlanks,
1480    ])
1481});
1482pub static RABBIT_FOOD: LazyLock<HashSet<Item>> =
1483    LazyLock::new(|| HashSet::from_iter(vec![Item::Carrot, Item::GoldenCarrot, Item::Dandelion]));
1484pub static RAILS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1485    HashSet::from_iter(vec![
1486        Item::Rail,
1487        Item::PoweredRail,
1488        Item::DetectorRail,
1489        Item::ActivatorRail,
1490    ])
1491});
1492pub static REDSTONE_ORES: LazyLock<HashSet<Item>> =
1493    LazyLock::new(|| HashSet::from_iter(vec![Item::RedstoneOre, Item::DeepslateRedstoneOre]));
1494pub static REPAIRS_CHAIN_ARMOR: LazyLock<HashSet<Item>> =
1495    LazyLock::new(|| HashSet::from_iter(vec![Item::IronIngot]));
1496pub static REPAIRS_DIAMOND_ARMOR: LazyLock<HashSet<Item>> =
1497    LazyLock::new(|| HashSet::from_iter(vec![Item::Diamond]));
1498pub static REPAIRS_GOLD_ARMOR: LazyLock<HashSet<Item>> =
1499    LazyLock::new(|| HashSet::from_iter(vec![Item::GoldIngot]));
1500pub static REPAIRS_IRON_ARMOR: LazyLock<HashSet<Item>> =
1501    LazyLock::new(|| HashSet::from_iter(vec![Item::IronIngot]));
1502pub static REPAIRS_LEATHER_ARMOR: LazyLock<HashSet<Item>> =
1503    LazyLock::new(|| HashSet::from_iter(vec![Item::Leather]));
1504pub static REPAIRS_NETHERITE_ARMOR: LazyLock<HashSet<Item>> =
1505    LazyLock::new(|| HashSet::from_iter(vec![Item::NetheriteIngot]));
1506pub static REPAIRS_TURTLE_HELMET: LazyLock<HashSet<Item>> =
1507    LazyLock::new(|| HashSet::from_iter(vec![Item::TurtleScute]));
1508pub static REPAIRS_WOLF_ARMOR: LazyLock<HashSet<Item>> =
1509    LazyLock::new(|| HashSet::from_iter(vec![Item::ArmadilloScute]));
1510pub static SAND: LazyLock<HashSet<Item>> =
1511    LazyLock::new(|| HashSet::from_iter(vec![Item::Sand, Item::RedSand, Item::SuspiciousSand]));
1512pub static SAPLINGS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1513    HashSet::from_iter(vec![
1514        Item::OakSapling,
1515        Item::SpruceSapling,
1516        Item::BirchSapling,
1517        Item::JungleSapling,
1518        Item::AcaciaSapling,
1519        Item::DarkOakSapling,
1520        Item::PaleOakSapling,
1521        Item::Azalea,
1522        Item::FloweringAzalea,
1523        Item::MangrovePropagule,
1524        Item::CherrySapling,
1525    ])
1526});
1527pub static SHEEP_FOOD: LazyLock<HashSet<Item>> =
1528    LazyLock::new(|| HashSet::from_iter(vec![Item::Wheat]));
1529pub static SHOVELS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1530    HashSet::from_iter(vec![
1531        Item::DiamondShovel,
1532        Item::StoneShovel,
1533        Item::GoldenShovel,
1534        Item::NetheriteShovel,
1535        Item::WoodenShovel,
1536        Item::IronShovel,
1537    ])
1538});
1539pub static SHULKER_BOXES: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1540    HashSet::from_iter(vec![
1541        Item::ShulkerBox,
1542        Item::BlackShulkerBox,
1543        Item::BlueShulkerBox,
1544        Item::BrownShulkerBox,
1545        Item::CyanShulkerBox,
1546        Item::GrayShulkerBox,
1547        Item::GreenShulkerBox,
1548        Item::LightBlueShulkerBox,
1549        Item::LightGrayShulkerBox,
1550        Item::LimeShulkerBox,
1551        Item::MagentaShulkerBox,
1552        Item::OrangeShulkerBox,
1553        Item::PinkShulkerBox,
1554        Item::PurpleShulkerBox,
1555        Item::RedShulkerBox,
1556        Item::WhiteShulkerBox,
1557        Item::YellowShulkerBox,
1558    ])
1559});
1560pub static SIGNS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1561    HashSet::from_iter(vec![
1562        Item::OakSign,
1563        Item::SpruceSign,
1564        Item::BirchSign,
1565        Item::AcaciaSign,
1566        Item::JungleSign,
1567        Item::DarkOakSign,
1568        Item::PaleOakSign,
1569        Item::CrimsonSign,
1570        Item::WarpedSign,
1571        Item::MangroveSign,
1572        Item::BambooSign,
1573        Item::CherrySign,
1574    ])
1575});
1576pub static SKELETON_PREFERRED_WEAPONS: LazyLock<HashSet<Item>> =
1577    LazyLock::new(|| HashSet::from_iter(vec![Item::Bow]));
1578pub static SKULLS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1579    HashSet::from_iter(vec![
1580        Item::PlayerHead,
1581        Item::CreeperHead,
1582        Item::ZombieHead,
1583        Item::SkeletonSkull,
1584        Item::WitherSkeletonSkull,
1585        Item::DragonHead,
1586        Item::PiglinHead,
1587    ])
1588});
1589pub static SLABS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1590    HashSet::from_iter(vec![
1591        Item::BambooMosaicSlab,
1592        Item::StoneSlab,
1593        Item::SmoothStoneSlab,
1594        Item::StoneBrickSlab,
1595        Item::SandstoneSlab,
1596        Item::PurpurSlab,
1597        Item::QuartzSlab,
1598        Item::RedSandstoneSlab,
1599        Item::BrickSlab,
1600        Item::CobblestoneSlab,
1601        Item::NetherBrickSlab,
1602        Item::PetrifiedOakSlab,
1603        Item::PrismarineSlab,
1604        Item::PrismarineBrickSlab,
1605        Item::DarkPrismarineSlab,
1606        Item::PolishedGraniteSlab,
1607        Item::SmoothRedSandstoneSlab,
1608        Item::MossyStoneBrickSlab,
1609        Item::PolishedDioriteSlab,
1610        Item::MossyCobblestoneSlab,
1611        Item::EndStoneBrickSlab,
1612        Item::SmoothSandstoneSlab,
1613        Item::SmoothQuartzSlab,
1614        Item::GraniteSlab,
1615        Item::AndesiteSlab,
1616        Item::RedNetherBrickSlab,
1617        Item::PolishedAndesiteSlab,
1618        Item::DioriteSlab,
1619        Item::CutSandstoneSlab,
1620        Item::CutRedSandstoneSlab,
1621        Item::BlackstoneSlab,
1622        Item::PolishedBlackstoneBrickSlab,
1623        Item::PolishedBlackstoneSlab,
1624        Item::CobbledDeepslateSlab,
1625        Item::PolishedDeepslateSlab,
1626        Item::DeepslateTileSlab,
1627        Item::DeepslateBrickSlab,
1628        Item::WaxedWeatheredCutCopperSlab,
1629        Item::WaxedExposedCutCopperSlab,
1630        Item::WaxedCutCopperSlab,
1631        Item::OxidizedCutCopperSlab,
1632        Item::WeatheredCutCopperSlab,
1633        Item::ExposedCutCopperSlab,
1634        Item::CutCopperSlab,
1635        Item::WaxedOxidizedCutCopperSlab,
1636        Item::MudBrickSlab,
1637        Item::TuffSlab,
1638        Item::PolishedTuffSlab,
1639        Item::TuffBrickSlab,
1640        Item::ResinBrickSlab,
1641        Item::OakSlab,
1642        Item::SpruceSlab,
1643        Item::BirchSlab,
1644        Item::JungleSlab,
1645        Item::AcaciaSlab,
1646        Item::DarkOakSlab,
1647        Item::PaleOakSlab,
1648        Item::CrimsonSlab,
1649        Item::WarpedSlab,
1650        Item::MangroveSlab,
1651        Item::BambooSlab,
1652        Item::CherrySlab,
1653    ])
1654});
1655pub static SMALL_FLOWERS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1656    HashSet::from_iter(vec![
1657        Item::Dandelion,
1658        Item::OpenEyeblossom,
1659        Item::Poppy,
1660        Item::BlueOrchid,
1661        Item::Allium,
1662        Item::AzureBluet,
1663        Item::RedTulip,
1664        Item::OrangeTulip,
1665        Item::WhiteTulip,
1666        Item::PinkTulip,
1667        Item::OxeyeDaisy,
1668        Item::Cornflower,
1669        Item::LilyOfTheValley,
1670        Item::WitherRose,
1671        Item::Torchflower,
1672        Item::ClosedEyeblossom,
1673    ])
1674});
1675pub static SMELTS_TO_GLASS: LazyLock<HashSet<Item>> =
1676    LazyLock::new(|| HashSet::from_iter(vec![Item::Sand, Item::RedSand]));
1677pub static SNIFFER_FOOD: LazyLock<HashSet<Item>> =
1678    LazyLock::new(|| HashSet::from_iter(vec![Item::TorchflowerSeeds]));
1679pub static SOUL_FIRE_BASE_BLOCKS: LazyLock<HashSet<Item>> =
1680    LazyLock::new(|| HashSet::from_iter(vec![Item::SoulSand, Item::SoulSoil]));
1681pub static SPRUCE_LOGS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1682    HashSet::from_iter(vec![
1683        Item::SpruceLog,
1684        Item::SpruceWood,
1685        Item::StrippedSpruceLog,
1686        Item::StrippedSpruceWood,
1687    ])
1688});
1689pub static STAIRS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1690    HashSet::from_iter(vec![
1691        Item::BambooMosaicStairs,
1692        Item::CobblestoneStairs,
1693        Item::SandstoneStairs,
1694        Item::NetherBrickStairs,
1695        Item::StoneBrickStairs,
1696        Item::BrickStairs,
1697        Item::PurpurStairs,
1698        Item::QuartzStairs,
1699        Item::RedSandstoneStairs,
1700        Item::PrismarineBrickStairs,
1701        Item::PrismarineStairs,
1702        Item::DarkPrismarineStairs,
1703        Item::PolishedGraniteStairs,
1704        Item::SmoothRedSandstoneStairs,
1705        Item::MossyStoneBrickStairs,
1706        Item::PolishedDioriteStairs,
1707        Item::MossyCobblestoneStairs,
1708        Item::EndStoneBrickStairs,
1709        Item::StoneStairs,
1710        Item::SmoothSandstoneStairs,
1711        Item::SmoothQuartzStairs,
1712        Item::GraniteStairs,
1713        Item::AndesiteStairs,
1714        Item::RedNetherBrickStairs,
1715        Item::PolishedAndesiteStairs,
1716        Item::DioriteStairs,
1717        Item::BlackstoneStairs,
1718        Item::PolishedBlackstoneBrickStairs,
1719        Item::PolishedBlackstoneStairs,
1720        Item::CobbledDeepslateStairs,
1721        Item::PolishedDeepslateStairs,
1722        Item::DeepslateTileStairs,
1723        Item::DeepslateBrickStairs,
1724        Item::OxidizedCutCopperStairs,
1725        Item::WeatheredCutCopperStairs,
1726        Item::ExposedCutCopperStairs,
1727        Item::CutCopperStairs,
1728        Item::WaxedWeatheredCutCopperStairs,
1729        Item::WaxedExposedCutCopperStairs,
1730        Item::WaxedCutCopperStairs,
1731        Item::WaxedOxidizedCutCopperStairs,
1732        Item::MudBrickStairs,
1733        Item::TuffStairs,
1734        Item::PolishedTuffStairs,
1735        Item::TuffBrickStairs,
1736        Item::ResinBrickStairs,
1737        Item::OakStairs,
1738        Item::SpruceStairs,
1739        Item::BirchStairs,
1740        Item::JungleStairs,
1741        Item::AcaciaStairs,
1742        Item::DarkOakStairs,
1743        Item::PaleOakStairs,
1744        Item::CrimsonStairs,
1745        Item::WarpedStairs,
1746        Item::MangroveStairs,
1747        Item::BambooStairs,
1748        Item::CherryStairs,
1749    ])
1750});
1751pub static STONE_BRICKS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1752    HashSet::from_iter(vec![
1753        Item::StoneBricks,
1754        Item::MossyStoneBricks,
1755        Item::CrackedStoneBricks,
1756        Item::ChiseledStoneBricks,
1757    ])
1758});
1759pub static STONE_BUTTONS: LazyLock<HashSet<Item>> =
1760    LazyLock::new(|| HashSet::from_iter(vec![Item::StoneButton, Item::PolishedBlackstoneButton]));
1761pub static STONE_CRAFTING_MATERIALS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1762    HashSet::from_iter(vec![
1763        Item::Cobblestone,
1764        Item::Blackstone,
1765        Item::CobbledDeepslate,
1766    ])
1767});
1768pub static STONE_TOOL_MATERIALS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1769    HashSet::from_iter(vec![
1770        Item::Cobblestone,
1771        Item::Blackstone,
1772        Item::CobbledDeepslate,
1773    ])
1774});
1775pub static STRIDER_FOOD: LazyLock<HashSet<Item>> =
1776    LazyLock::new(|| HashSet::from_iter(vec![Item::WarpedFungus]));
1777pub static STRIDER_TEMPT_ITEMS: LazyLock<HashSet<Item>> =
1778    LazyLock::new(|| HashSet::from_iter(vec![Item::WarpedFungusOnAStick, Item::WarpedFungus]));
1779pub static SWORDS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1780    HashSet::from_iter(vec![
1781        Item::DiamondSword,
1782        Item::StoneSword,
1783        Item::GoldenSword,
1784        Item::NetheriteSword,
1785        Item::WoodenSword,
1786        Item::IronSword,
1787    ])
1788});
1789pub static TERRACOTTA: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1790    HashSet::from_iter(vec![
1791        Item::Terracotta,
1792        Item::WhiteTerracotta,
1793        Item::OrangeTerracotta,
1794        Item::MagentaTerracotta,
1795        Item::LightBlueTerracotta,
1796        Item::YellowTerracotta,
1797        Item::LimeTerracotta,
1798        Item::PinkTerracotta,
1799        Item::GrayTerracotta,
1800        Item::LightGrayTerracotta,
1801        Item::CyanTerracotta,
1802        Item::PurpleTerracotta,
1803        Item::BlueTerracotta,
1804        Item::BrownTerracotta,
1805        Item::GreenTerracotta,
1806        Item::RedTerracotta,
1807        Item::BlackTerracotta,
1808    ])
1809});
1810pub static TRAPDOORS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1811    HashSet::from_iter(vec![
1812        Item::IronTrapdoor,
1813        Item::CopperTrapdoor,
1814        Item::ExposedCopperTrapdoor,
1815        Item::WeatheredCopperTrapdoor,
1816        Item::OxidizedCopperTrapdoor,
1817        Item::WaxedCopperTrapdoor,
1818        Item::WaxedExposedCopperTrapdoor,
1819        Item::WaxedWeatheredCopperTrapdoor,
1820        Item::WaxedOxidizedCopperTrapdoor,
1821        Item::AcaciaTrapdoor,
1822        Item::BirchTrapdoor,
1823        Item::DarkOakTrapdoor,
1824        Item::PaleOakTrapdoor,
1825        Item::JungleTrapdoor,
1826        Item::OakTrapdoor,
1827        Item::SpruceTrapdoor,
1828        Item::CrimsonTrapdoor,
1829        Item::WarpedTrapdoor,
1830        Item::MangroveTrapdoor,
1831        Item::BambooTrapdoor,
1832        Item::CherryTrapdoor,
1833    ])
1834});
1835pub static TRIM_MATERIALS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1836    HashSet::from_iter(vec![
1837        Item::AmethystShard,
1838        Item::CopperIngot,
1839        Item::Diamond,
1840        Item::Emerald,
1841        Item::GoldIngot,
1842        Item::IronIngot,
1843        Item::LapisLazuli,
1844        Item::NetheriteIngot,
1845        Item::Quartz,
1846        Item::Redstone,
1847        Item::ResinBrick,
1848    ])
1849});
1850pub static TRIMMABLE_ARMOR: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1851    HashSet::from_iter(vec![
1852        Item::LeatherBoots,
1853        Item::ChainmailBoots,
1854        Item::GoldenBoots,
1855        Item::IronBoots,
1856        Item::DiamondBoots,
1857        Item::NetheriteBoots,
1858        Item::LeatherLeggings,
1859        Item::ChainmailLeggings,
1860        Item::GoldenLeggings,
1861        Item::IronLeggings,
1862        Item::DiamondLeggings,
1863        Item::NetheriteLeggings,
1864        Item::LeatherChestplate,
1865        Item::ChainmailChestplate,
1866        Item::GoldenChestplate,
1867        Item::IronChestplate,
1868        Item::DiamondChestplate,
1869        Item::NetheriteChestplate,
1870        Item::LeatherHelmet,
1871        Item::ChainmailHelmet,
1872        Item::GoldenHelmet,
1873        Item::IronHelmet,
1874        Item::DiamondHelmet,
1875        Item::NetheriteHelmet,
1876        Item::TurtleHelmet,
1877    ])
1878});
1879pub static TURTLE_FOOD: LazyLock<HashSet<Item>> =
1880    LazyLock::new(|| HashSet::from_iter(vec![Item::Seagrass]));
1881pub static VILLAGER_PICKS_UP: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1882    HashSet::from_iter(vec![
1883        Item::Bread,
1884        Item::Wheat,
1885        Item::Beetroot,
1886        Item::WheatSeeds,
1887        Item::Potato,
1888        Item::Carrot,
1889        Item::BeetrootSeeds,
1890        Item::TorchflowerSeeds,
1891        Item::PitcherPod,
1892    ])
1893});
1894pub static VILLAGER_PLANTABLE_SEEDS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1895    HashSet::from_iter(vec![
1896        Item::WheatSeeds,
1897        Item::Potato,
1898        Item::Carrot,
1899        Item::BeetrootSeeds,
1900        Item::TorchflowerSeeds,
1901        Item::PitcherPod,
1902    ])
1903});
1904pub static WALLS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1905    HashSet::from_iter(vec![
1906        Item::CobblestoneWall,
1907        Item::MossyCobblestoneWall,
1908        Item::BrickWall,
1909        Item::PrismarineWall,
1910        Item::RedSandstoneWall,
1911        Item::MossyStoneBrickWall,
1912        Item::GraniteWall,
1913        Item::StoneBrickWall,
1914        Item::NetherBrickWall,
1915        Item::AndesiteWall,
1916        Item::RedNetherBrickWall,
1917        Item::SandstoneWall,
1918        Item::EndStoneBrickWall,
1919        Item::DioriteWall,
1920        Item::BlackstoneWall,
1921        Item::PolishedBlackstoneBrickWall,
1922        Item::PolishedBlackstoneWall,
1923        Item::CobbledDeepslateWall,
1924        Item::PolishedDeepslateWall,
1925        Item::DeepslateTileWall,
1926        Item::DeepslateBrickWall,
1927        Item::MudBrickWall,
1928        Item::TuffWall,
1929        Item::PolishedTuffWall,
1930        Item::TuffBrickWall,
1931        Item::ResinBrickWall,
1932    ])
1933});
1934pub static WARPED_STEMS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1935    HashSet::from_iter(vec![
1936        Item::WarpedStem,
1937        Item::StrippedWarpedStem,
1938        Item::WarpedHyphae,
1939        Item::StrippedWarpedHyphae,
1940    ])
1941});
1942pub static WART_BLOCKS: LazyLock<HashSet<Item>> =
1943    LazyLock::new(|| HashSet::from_iter(vec![Item::NetherWartBlock, Item::WarpedWartBlock]));
1944pub static WITHER_SKELETON_DISLIKED_WEAPONS: LazyLock<HashSet<Item>> =
1945    LazyLock::new(|| HashSet::from_iter(vec![Item::Bow, Item::Crossbow]));
1946pub static WOLF_FOOD: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1947    HashSet::from_iter(vec![
1948        Item::Cod,
1949        Item::CookedCod,
1950        Item::Salmon,
1951        Item::CookedSalmon,
1952        Item::TropicalFish,
1953        Item::Pufferfish,
1954        Item::RabbitStew,
1955        Item::Beef,
1956        Item::Chicken,
1957        Item::CookedBeef,
1958        Item::CookedChicken,
1959        Item::CookedMutton,
1960        Item::CookedPorkchop,
1961        Item::CookedRabbit,
1962        Item::Mutton,
1963        Item::Porkchop,
1964        Item::Rabbit,
1965        Item::RottenFlesh,
1966    ])
1967});
1968pub static WOODEN_BUTTONS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1969    HashSet::from_iter(vec![
1970        Item::OakButton,
1971        Item::SpruceButton,
1972        Item::BirchButton,
1973        Item::JungleButton,
1974        Item::AcaciaButton,
1975        Item::DarkOakButton,
1976        Item::PaleOakButton,
1977        Item::CrimsonButton,
1978        Item::WarpedButton,
1979        Item::MangroveButton,
1980        Item::BambooButton,
1981        Item::CherryButton,
1982    ])
1983});
1984pub static WOODEN_DOORS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1985    HashSet::from_iter(vec![
1986        Item::OakDoor,
1987        Item::SpruceDoor,
1988        Item::BirchDoor,
1989        Item::JungleDoor,
1990        Item::AcaciaDoor,
1991        Item::DarkOakDoor,
1992        Item::PaleOakDoor,
1993        Item::CrimsonDoor,
1994        Item::WarpedDoor,
1995        Item::MangroveDoor,
1996        Item::BambooDoor,
1997        Item::CherryDoor,
1998    ])
1999});
2000pub static WOODEN_FENCES: LazyLock<HashSet<Item>> = LazyLock::new(|| {
2001    HashSet::from_iter(vec![
2002        Item::OakFence,
2003        Item::AcaciaFence,
2004        Item::DarkOakFence,
2005        Item::PaleOakFence,
2006        Item::SpruceFence,
2007        Item::BirchFence,
2008        Item::JungleFence,
2009        Item::CrimsonFence,
2010        Item::WarpedFence,
2011        Item::MangroveFence,
2012        Item::BambooFence,
2013        Item::CherryFence,
2014    ])
2015});
2016pub static WOODEN_PRESSURE_PLATES: LazyLock<HashSet<Item>> = LazyLock::new(|| {
2017    HashSet::from_iter(vec![
2018        Item::OakPressurePlate,
2019        Item::SprucePressurePlate,
2020        Item::BirchPressurePlate,
2021        Item::JunglePressurePlate,
2022        Item::AcaciaPressurePlate,
2023        Item::DarkOakPressurePlate,
2024        Item::PaleOakPressurePlate,
2025        Item::CrimsonPressurePlate,
2026        Item::WarpedPressurePlate,
2027        Item::MangrovePressurePlate,
2028        Item::BambooPressurePlate,
2029        Item::CherryPressurePlate,
2030    ])
2031});
2032pub static WOODEN_SLABS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
2033    HashSet::from_iter(vec![
2034        Item::OakSlab,
2035        Item::SpruceSlab,
2036        Item::BirchSlab,
2037        Item::JungleSlab,
2038        Item::AcaciaSlab,
2039        Item::DarkOakSlab,
2040        Item::PaleOakSlab,
2041        Item::CrimsonSlab,
2042        Item::WarpedSlab,
2043        Item::MangroveSlab,
2044        Item::BambooSlab,
2045        Item::CherrySlab,
2046    ])
2047});
2048pub static WOODEN_STAIRS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
2049    HashSet::from_iter(vec![
2050        Item::OakStairs,
2051        Item::SpruceStairs,
2052        Item::BirchStairs,
2053        Item::JungleStairs,
2054        Item::AcaciaStairs,
2055        Item::DarkOakStairs,
2056        Item::PaleOakStairs,
2057        Item::CrimsonStairs,
2058        Item::WarpedStairs,
2059        Item::MangroveStairs,
2060        Item::BambooStairs,
2061        Item::CherryStairs,
2062    ])
2063});
2064pub static WOODEN_TOOL_MATERIALS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
2065    HashSet::from_iter(vec![
2066        Item::OakPlanks,
2067        Item::SprucePlanks,
2068        Item::BirchPlanks,
2069        Item::JunglePlanks,
2070        Item::AcaciaPlanks,
2071        Item::DarkOakPlanks,
2072        Item::PaleOakPlanks,
2073        Item::CrimsonPlanks,
2074        Item::WarpedPlanks,
2075        Item::MangrovePlanks,
2076        Item::BambooPlanks,
2077        Item::CherryPlanks,
2078    ])
2079});
2080pub static WOODEN_TRAPDOORS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
2081    HashSet::from_iter(vec![
2082        Item::AcaciaTrapdoor,
2083        Item::BirchTrapdoor,
2084        Item::DarkOakTrapdoor,
2085        Item::PaleOakTrapdoor,
2086        Item::JungleTrapdoor,
2087        Item::OakTrapdoor,
2088        Item::SpruceTrapdoor,
2089        Item::CrimsonTrapdoor,
2090        Item::WarpedTrapdoor,
2091        Item::MangroveTrapdoor,
2092        Item::BambooTrapdoor,
2093        Item::CherryTrapdoor,
2094    ])
2095});
2096pub static WOOL: LazyLock<HashSet<Item>> = LazyLock::new(|| {
2097    HashSet::from_iter(vec![
2098        Item::WhiteWool,
2099        Item::OrangeWool,
2100        Item::MagentaWool,
2101        Item::LightBlueWool,
2102        Item::YellowWool,
2103        Item::LimeWool,
2104        Item::PinkWool,
2105        Item::GrayWool,
2106        Item::LightGrayWool,
2107        Item::CyanWool,
2108        Item::PurpleWool,
2109        Item::BlueWool,
2110        Item::BrownWool,
2111        Item::GreenWool,
2112        Item::RedWool,
2113        Item::BlackWool,
2114    ])
2115});
2116pub static WOOL_CARPETS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
2117    HashSet::from_iter(vec![
2118        Item::WhiteCarpet,
2119        Item::OrangeCarpet,
2120        Item::MagentaCarpet,
2121        Item::LightBlueCarpet,
2122        Item::YellowCarpet,
2123        Item::LimeCarpet,
2124        Item::PinkCarpet,
2125        Item::GrayCarpet,
2126        Item::LightGrayCarpet,
2127        Item::CyanCarpet,
2128        Item::PurpleCarpet,
2129        Item::BlueCarpet,
2130        Item::BrownCarpet,
2131        Item::GreenCarpet,
2132        Item::RedCarpet,
2133        Item::BlackCarpet,
2134    ])
2135});