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