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