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