1#![allow(clippy::all)]
5
6use std::collections::HashMap;
7
8use azalea_chat::translatable_component::TranslatableComponent;
9use azalea_core::attribute_modifier_operation::AttributeModifierOperation;
10use azalea_registry::{
11 DataRegistry, HolderSet,
12 builtin::{Attribute, BlockKind, EntityKind, ItemKind, MobEffect, SoundEvent},
13};
14use simdnbt::owned::NbtCompound;
15
16use crate::{
17 ItemStack, components::*, default_components::DefaultableComponent,
18 item::consume_effect::ConsumeEffect,
19};
20
21impl DefaultableComponent for AttributeModifiers {
22 fn default_for_item(item: ItemKind) -> Option<Self> {
23 let value = match item {
24 ItemKind::CarvedPumpkin => vec![AttributeModifiersEntry {
25 display: AttributeModifierDisplay::Hidden,
26 slot: EquipmentSlotGroup::Head,
27 kind: Attribute::WaypointTransmitRange,
28 modifier: AttributeModifier {
29 id: "minecraft:waypoint_transmit_range_hide".into(),
30 amount: -1.0,
31 operation: AttributeModifierOperation::AddMultipliedTotal,
32 },
33 }],
34 ItemKind::ChainmailBoots => vec![
35 AttributeModifiersEntry {
36 slot: EquipmentSlotGroup::Feet,
37 kind: Attribute::Armor,
38 display: AttributeModifierDisplay::Default,
39 modifier: AttributeModifier {
40 id: "minecraft:armor.boots".into(),
41 amount: 1.0,
42 operation: AttributeModifierOperation::AddValue,
43 },
44 },
45 AttributeModifiersEntry {
46 slot: EquipmentSlotGroup::Feet,
47 kind: Attribute::ArmorToughness,
48 display: AttributeModifierDisplay::Default,
49 modifier: AttributeModifier {
50 id: "minecraft:armor.boots".into(),
51 amount: 0.0,
52 operation: AttributeModifierOperation::AddValue,
53 },
54 },
55 ],
56 ItemKind::ChainmailChestplate => vec![
57 AttributeModifiersEntry {
58 slot: EquipmentSlotGroup::Chest,
59 kind: Attribute::Armor,
60 display: AttributeModifierDisplay::Default,
61 modifier: AttributeModifier {
62 id: "minecraft:armor.chestplate".into(),
63 amount: 5.0,
64 operation: AttributeModifierOperation::AddValue,
65 },
66 },
67 AttributeModifiersEntry {
68 slot: EquipmentSlotGroup::Chest,
69 kind: Attribute::ArmorToughness,
70 display: AttributeModifierDisplay::Default,
71 modifier: AttributeModifier {
72 id: "minecraft:armor.chestplate".into(),
73 amount: 0.0,
74 operation: AttributeModifierOperation::AddValue,
75 },
76 },
77 ],
78 ItemKind::ChainmailHelmet => vec![
79 AttributeModifiersEntry {
80 slot: EquipmentSlotGroup::Head,
81 kind: Attribute::Armor,
82 display: AttributeModifierDisplay::Default,
83 modifier: AttributeModifier {
84 id: "minecraft:armor.helmet".into(),
85 amount: 2.0,
86 operation: AttributeModifierOperation::AddValue,
87 },
88 },
89 AttributeModifiersEntry {
90 slot: EquipmentSlotGroup::Head,
91 kind: Attribute::ArmorToughness,
92 display: AttributeModifierDisplay::Default,
93 modifier: AttributeModifier {
94 id: "minecraft:armor.helmet".into(),
95 amount: 0.0,
96 operation: AttributeModifierOperation::AddValue,
97 },
98 },
99 ],
100 ItemKind::ChainmailLeggings => vec![
101 AttributeModifiersEntry {
102 slot: EquipmentSlotGroup::Legs,
103 kind: Attribute::Armor,
104 display: AttributeModifierDisplay::Default,
105 modifier: AttributeModifier {
106 id: "minecraft:armor.leggings".into(),
107 amount: 4.0,
108 operation: AttributeModifierOperation::AddValue,
109 },
110 },
111 AttributeModifiersEntry {
112 slot: EquipmentSlotGroup::Legs,
113 kind: Attribute::ArmorToughness,
114 display: AttributeModifierDisplay::Default,
115 modifier: AttributeModifier {
116 id: "minecraft:armor.leggings".into(),
117 amount: 0.0,
118 operation: AttributeModifierOperation::AddValue,
119 },
120 },
121 ],
122 ItemKind::CopperAxe => vec![
123 AttributeModifiersEntry {
124 slot: EquipmentSlotGroup::Mainhand,
125 kind: Attribute::AttackDamage,
126 display: AttributeModifierDisplay::Default,
127 modifier: AttributeModifier {
128 id: "minecraft:base_attack_damage".into(),
129 amount: 8.0,
130 operation: AttributeModifierOperation::AddValue,
131 },
132 },
133 AttributeModifiersEntry {
134 slot: EquipmentSlotGroup::Mainhand,
135 kind: Attribute::AttackSpeed,
136 display: AttributeModifierDisplay::Default,
137 modifier: AttributeModifier {
138 id: "minecraft:base_attack_speed".into(),
139 amount: -3.200000047683716,
140 operation: AttributeModifierOperation::AddValue,
141 },
142 },
143 ],
144 ItemKind::CopperBoots => vec![
145 AttributeModifiersEntry {
146 slot: EquipmentSlotGroup::Feet,
147 kind: Attribute::Armor,
148 display: AttributeModifierDisplay::Default,
149 modifier: AttributeModifier {
150 id: "minecraft:armor.boots".into(),
151 amount: 1.0,
152 operation: AttributeModifierOperation::AddValue,
153 },
154 },
155 AttributeModifiersEntry {
156 slot: EquipmentSlotGroup::Feet,
157 kind: Attribute::ArmorToughness,
158 display: AttributeModifierDisplay::Default,
159 modifier: AttributeModifier {
160 id: "minecraft:armor.boots".into(),
161 amount: 0.0,
162 operation: AttributeModifierOperation::AddValue,
163 },
164 },
165 ],
166 ItemKind::CopperChestplate => vec![
167 AttributeModifiersEntry {
168 slot: EquipmentSlotGroup::Chest,
169 kind: Attribute::Armor,
170 display: AttributeModifierDisplay::Default,
171 modifier: AttributeModifier {
172 id: "minecraft:armor.chestplate".into(),
173 amount: 4.0,
174 operation: AttributeModifierOperation::AddValue,
175 },
176 },
177 AttributeModifiersEntry {
178 slot: EquipmentSlotGroup::Chest,
179 kind: Attribute::ArmorToughness,
180 display: AttributeModifierDisplay::Default,
181 modifier: AttributeModifier {
182 id: "minecraft:armor.chestplate".into(),
183 amount: 0.0,
184 operation: AttributeModifierOperation::AddValue,
185 },
186 },
187 ],
188 ItemKind::CopperHelmet => vec![
189 AttributeModifiersEntry {
190 slot: EquipmentSlotGroup::Head,
191 kind: Attribute::Armor,
192 display: AttributeModifierDisplay::Default,
193 modifier: AttributeModifier {
194 id: "minecraft:armor.helmet".into(),
195 amount: 2.0,
196 operation: AttributeModifierOperation::AddValue,
197 },
198 },
199 AttributeModifiersEntry {
200 slot: EquipmentSlotGroup::Head,
201 kind: Attribute::ArmorToughness,
202 display: AttributeModifierDisplay::Default,
203 modifier: AttributeModifier {
204 id: "minecraft:armor.helmet".into(),
205 amount: 0.0,
206 operation: AttributeModifierOperation::AddValue,
207 },
208 },
209 ],
210 ItemKind::CopperHoe => vec![
211 AttributeModifiersEntry {
212 slot: EquipmentSlotGroup::Mainhand,
213 kind: Attribute::AttackDamage,
214 display: AttributeModifierDisplay::Default,
215 modifier: AttributeModifier {
216 id: "minecraft:base_attack_damage".into(),
217 amount: 0.0,
218 operation: AttributeModifierOperation::AddValue,
219 },
220 },
221 AttributeModifiersEntry {
222 slot: EquipmentSlotGroup::Mainhand,
223 kind: Attribute::AttackSpeed,
224 display: AttributeModifierDisplay::Default,
225 modifier: AttributeModifier {
226 id: "minecraft:base_attack_speed".into(),
227 amount: -2.0,
228 operation: AttributeModifierOperation::AddValue,
229 },
230 },
231 ],
232 ItemKind::CopperHorseArmor => vec![
233 AttributeModifiersEntry {
234 slot: EquipmentSlotGroup::Body,
235 kind: Attribute::Armor,
236 display: AttributeModifierDisplay::Default,
237 modifier: AttributeModifier {
238 id: "minecraft:armor.body".into(),
239 amount: 4.0,
240 operation: AttributeModifierOperation::AddValue,
241 },
242 },
243 AttributeModifiersEntry {
244 slot: EquipmentSlotGroup::Body,
245 kind: Attribute::ArmorToughness,
246 display: AttributeModifierDisplay::Default,
247 modifier: AttributeModifier {
248 id: "minecraft:armor.body".into(),
249 amount: 0.0,
250 operation: AttributeModifierOperation::AddValue,
251 },
252 },
253 ],
254 ItemKind::CopperLeggings => vec![
255 AttributeModifiersEntry {
256 slot: EquipmentSlotGroup::Legs,
257 kind: Attribute::Armor,
258 display: AttributeModifierDisplay::Default,
259 modifier: AttributeModifier {
260 id: "minecraft:armor.leggings".into(),
261 amount: 3.0,
262 operation: AttributeModifierOperation::AddValue,
263 },
264 },
265 AttributeModifiersEntry {
266 slot: EquipmentSlotGroup::Legs,
267 kind: Attribute::ArmorToughness,
268 display: AttributeModifierDisplay::Default,
269 modifier: AttributeModifier {
270 id: "minecraft:armor.leggings".into(),
271 amount: 0.0,
272 operation: AttributeModifierOperation::AddValue,
273 },
274 },
275 ],
276 ItemKind::CopperNautilusArmor => vec![
277 AttributeModifiersEntry {
278 slot: EquipmentSlotGroup::Body,
279 kind: Attribute::Armor,
280 display: AttributeModifierDisplay::Default,
281 modifier: AttributeModifier {
282 id: "minecraft:armor.body".into(),
283 amount: 4.0,
284 operation: AttributeModifierOperation::AddValue,
285 },
286 },
287 AttributeModifiersEntry {
288 slot: EquipmentSlotGroup::Body,
289 kind: Attribute::ArmorToughness,
290 display: AttributeModifierDisplay::Default,
291 modifier: AttributeModifier {
292 id: "minecraft:armor.body".into(),
293 amount: 0.0,
294 operation: AttributeModifierOperation::AddValue,
295 },
296 },
297 ],
298 ItemKind::CopperPickaxe => vec![
299 AttributeModifiersEntry {
300 slot: EquipmentSlotGroup::Mainhand,
301 kind: Attribute::AttackDamage,
302 display: AttributeModifierDisplay::Default,
303 modifier: AttributeModifier {
304 id: "minecraft:base_attack_damage".into(),
305 amount: 2.0,
306 operation: AttributeModifierOperation::AddValue,
307 },
308 },
309 AttributeModifiersEntry {
310 slot: EquipmentSlotGroup::Mainhand,
311 kind: Attribute::AttackSpeed,
312 display: AttributeModifierDisplay::Default,
313 modifier: AttributeModifier {
314 id: "minecraft:base_attack_speed".into(),
315 amount: -2.799999952316284,
316 operation: AttributeModifierOperation::AddValue,
317 },
318 },
319 ],
320 ItemKind::CopperShovel => vec![
321 AttributeModifiersEntry {
322 slot: EquipmentSlotGroup::Mainhand,
323 kind: Attribute::AttackDamage,
324 display: AttributeModifierDisplay::Default,
325 modifier: AttributeModifier {
326 id: "minecraft:base_attack_damage".into(),
327 amount: 2.5,
328 operation: AttributeModifierOperation::AddValue,
329 },
330 },
331 AttributeModifiersEntry {
332 slot: EquipmentSlotGroup::Mainhand,
333 kind: Attribute::AttackSpeed,
334 display: AttributeModifierDisplay::Default,
335 modifier: AttributeModifier {
336 id: "minecraft:base_attack_speed".into(),
337 amount: -3.0,
338 operation: AttributeModifierOperation::AddValue,
339 },
340 },
341 ],
342 ItemKind::CopperSpear => vec![
343 AttributeModifiersEntry {
344 slot: EquipmentSlotGroup::Mainhand,
345 kind: Attribute::AttackDamage,
346 display: AttributeModifierDisplay::Default,
347 modifier: AttributeModifier {
348 id: "minecraft:base_attack_damage".into(),
349 amount: 1.0,
350 operation: AttributeModifierOperation::AddValue,
351 },
352 },
353 AttributeModifiersEntry {
354 slot: EquipmentSlotGroup::Mainhand,
355 kind: Attribute::AttackSpeed,
356 display: AttributeModifierDisplay::Default,
357 modifier: AttributeModifier {
358 id: "minecraft:base_attack_speed".into(),
359 amount: -2.8235294818878174,
360 operation: AttributeModifierOperation::AddValue,
361 },
362 },
363 ],
364 ItemKind::CopperSword => vec![
365 AttributeModifiersEntry {
366 slot: EquipmentSlotGroup::Mainhand,
367 kind: Attribute::AttackDamage,
368 display: AttributeModifierDisplay::Default,
369 modifier: AttributeModifier {
370 id: "minecraft:base_attack_damage".into(),
371 amount: 4.0,
372 operation: AttributeModifierOperation::AddValue,
373 },
374 },
375 AttributeModifiersEntry {
376 slot: EquipmentSlotGroup::Mainhand,
377 kind: Attribute::AttackSpeed,
378 display: AttributeModifierDisplay::Default,
379 modifier: AttributeModifier {
380 id: "minecraft:base_attack_speed".into(),
381 amount: -2.4000000953674316,
382 operation: AttributeModifierOperation::AddValue,
383 },
384 },
385 ],
386 ItemKind::CreeperHead => vec![AttributeModifiersEntry {
387 display: AttributeModifierDisplay::Hidden,
388 slot: EquipmentSlotGroup::Head,
389 kind: Attribute::WaypointTransmitRange,
390 modifier: AttributeModifier {
391 id: "minecraft:waypoint_transmit_range_hide".into(),
392 amount: -1.0,
393 operation: AttributeModifierOperation::AddMultipliedTotal,
394 },
395 }],
396 ItemKind::DiamondAxe => vec![
397 AttributeModifiersEntry {
398 slot: EquipmentSlotGroup::Mainhand,
399 kind: Attribute::AttackDamage,
400 display: AttributeModifierDisplay::Default,
401 modifier: AttributeModifier {
402 id: "minecraft:base_attack_damage".into(),
403 amount: 8.0,
404 operation: AttributeModifierOperation::AddValue,
405 },
406 },
407 AttributeModifiersEntry {
408 slot: EquipmentSlotGroup::Mainhand,
409 kind: Attribute::AttackSpeed,
410 display: AttributeModifierDisplay::Default,
411 modifier: AttributeModifier {
412 id: "minecraft:base_attack_speed".into(),
413 amount: -3.0,
414 operation: AttributeModifierOperation::AddValue,
415 },
416 },
417 ],
418 ItemKind::DiamondBoots => vec![
419 AttributeModifiersEntry {
420 slot: EquipmentSlotGroup::Feet,
421 kind: Attribute::Armor,
422 display: AttributeModifierDisplay::Default,
423 modifier: AttributeModifier {
424 id: "minecraft:armor.boots".into(),
425 amount: 3.0,
426 operation: AttributeModifierOperation::AddValue,
427 },
428 },
429 AttributeModifiersEntry {
430 slot: EquipmentSlotGroup::Feet,
431 kind: Attribute::ArmorToughness,
432 display: AttributeModifierDisplay::Default,
433 modifier: AttributeModifier {
434 id: "minecraft:armor.boots".into(),
435 amount: 2.0,
436 operation: AttributeModifierOperation::AddValue,
437 },
438 },
439 ],
440 ItemKind::DiamondChestplate => vec![
441 AttributeModifiersEntry {
442 slot: EquipmentSlotGroup::Chest,
443 kind: Attribute::Armor,
444 display: AttributeModifierDisplay::Default,
445 modifier: AttributeModifier {
446 id: "minecraft:armor.chestplate".into(),
447 amount: 8.0,
448 operation: AttributeModifierOperation::AddValue,
449 },
450 },
451 AttributeModifiersEntry {
452 slot: EquipmentSlotGroup::Chest,
453 kind: Attribute::ArmorToughness,
454 display: AttributeModifierDisplay::Default,
455 modifier: AttributeModifier {
456 id: "minecraft:armor.chestplate".into(),
457 amount: 2.0,
458 operation: AttributeModifierOperation::AddValue,
459 },
460 },
461 ],
462 ItemKind::DiamondHelmet => vec![
463 AttributeModifiersEntry {
464 slot: EquipmentSlotGroup::Head,
465 kind: Attribute::Armor,
466 display: AttributeModifierDisplay::Default,
467 modifier: AttributeModifier {
468 id: "minecraft:armor.helmet".into(),
469 amount: 3.0,
470 operation: AttributeModifierOperation::AddValue,
471 },
472 },
473 AttributeModifiersEntry {
474 slot: EquipmentSlotGroup::Head,
475 kind: Attribute::ArmorToughness,
476 display: AttributeModifierDisplay::Default,
477 modifier: AttributeModifier {
478 id: "minecraft:armor.helmet".into(),
479 amount: 2.0,
480 operation: AttributeModifierOperation::AddValue,
481 },
482 },
483 ],
484 ItemKind::DiamondHoe => vec![
485 AttributeModifiersEntry {
486 slot: EquipmentSlotGroup::Mainhand,
487 kind: Attribute::AttackDamage,
488 display: AttributeModifierDisplay::Default,
489 modifier: AttributeModifier {
490 id: "minecraft:base_attack_damage".into(),
491 amount: 0.0,
492 operation: AttributeModifierOperation::AddValue,
493 },
494 },
495 AttributeModifiersEntry {
496 slot: EquipmentSlotGroup::Mainhand,
497 kind: Attribute::AttackSpeed,
498 display: AttributeModifierDisplay::Default,
499 modifier: AttributeModifier {
500 id: "minecraft:base_attack_speed".into(),
501 amount: 0.0,
502 operation: AttributeModifierOperation::AddValue,
503 },
504 },
505 ],
506 ItemKind::DiamondHorseArmor => vec![
507 AttributeModifiersEntry {
508 slot: EquipmentSlotGroup::Body,
509 kind: Attribute::Armor,
510 display: AttributeModifierDisplay::Default,
511 modifier: AttributeModifier {
512 id: "minecraft:armor.body".into(),
513 amount: 11.0,
514 operation: AttributeModifierOperation::AddValue,
515 },
516 },
517 AttributeModifiersEntry {
518 slot: EquipmentSlotGroup::Body,
519 kind: Attribute::ArmorToughness,
520 display: AttributeModifierDisplay::Default,
521 modifier: AttributeModifier {
522 id: "minecraft:armor.body".into(),
523 amount: 2.0,
524 operation: AttributeModifierOperation::AddValue,
525 },
526 },
527 ],
528 ItemKind::DiamondLeggings => vec![
529 AttributeModifiersEntry {
530 slot: EquipmentSlotGroup::Legs,
531 kind: Attribute::Armor,
532 display: AttributeModifierDisplay::Default,
533 modifier: AttributeModifier {
534 id: "minecraft:armor.leggings".into(),
535 amount: 6.0,
536 operation: AttributeModifierOperation::AddValue,
537 },
538 },
539 AttributeModifiersEntry {
540 slot: EquipmentSlotGroup::Legs,
541 kind: Attribute::ArmorToughness,
542 display: AttributeModifierDisplay::Default,
543 modifier: AttributeModifier {
544 id: "minecraft:armor.leggings".into(),
545 amount: 2.0,
546 operation: AttributeModifierOperation::AddValue,
547 },
548 },
549 ],
550 ItemKind::DiamondNautilusArmor => vec![
551 AttributeModifiersEntry {
552 slot: EquipmentSlotGroup::Body,
553 kind: Attribute::Armor,
554 display: AttributeModifierDisplay::Default,
555 modifier: AttributeModifier {
556 id: "minecraft:armor.body".into(),
557 amount: 11.0,
558 operation: AttributeModifierOperation::AddValue,
559 },
560 },
561 AttributeModifiersEntry {
562 slot: EquipmentSlotGroup::Body,
563 kind: Attribute::ArmorToughness,
564 display: AttributeModifierDisplay::Default,
565 modifier: AttributeModifier {
566 id: "minecraft:armor.body".into(),
567 amount: 2.0,
568 operation: AttributeModifierOperation::AddValue,
569 },
570 },
571 ],
572 ItemKind::DiamondPickaxe => vec![
573 AttributeModifiersEntry {
574 slot: EquipmentSlotGroup::Mainhand,
575 kind: Attribute::AttackDamage,
576 display: AttributeModifierDisplay::Default,
577 modifier: AttributeModifier {
578 id: "minecraft:base_attack_damage".into(),
579 amount: 4.0,
580 operation: AttributeModifierOperation::AddValue,
581 },
582 },
583 AttributeModifiersEntry {
584 slot: EquipmentSlotGroup::Mainhand,
585 kind: Attribute::AttackSpeed,
586 display: AttributeModifierDisplay::Default,
587 modifier: AttributeModifier {
588 id: "minecraft:base_attack_speed".into(),
589 amount: -2.799999952316284,
590 operation: AttributeModifierOperation::AddValue,
591 },
592 },
593 ],
594 ItemKind::DiamondShovel => vec![
595 AttributeModifiersEntry {
596 slot: EquipmentSlotGroup::Mainhand,
597 kind: Attribute::AttackDamage,
598 display: AttributeModifierDisplay::Default,
599 modifier: AttributeModifier {
600 id: "minecraft:base_attack_damage".into(),
601 amount: 4.5,
602 operation: AttributeModifierOperation::AddValue,
603 },
604 },
605 AttributeModifiersEntry {
606 slot: EquipmentSlotGroup::Mainhand,
607 kind: Attribute::AttackSpeed,
608 display: AttributeModifierDisplay::Default,
609 modifier: AttributeModifier {
610 id: "minecraft:base_attack_speed".into(),
611 amount: -3.0,
612 operation: AttributeModifierOperation::AddValue,
613 },
614 },
615 ],
616 ItemKind::DiamondSpear => vec![
617 AttributeModifiersEntry {
618 slot: EquipmentSlotGroup::Mainhand,
619 kind: Attribute::AttackDamage,
620 display: AttributeModifierDisplay::Default,
621 modifier: AttributeModifier {
622 id: "minecraft:base_attack_damage".into(),
623 amount: 3.0,
624 operation: AttributeModifierOperation::AddValue,
625 },
626 },
627 AttributeModifiersEntry {
628 slot: EquipmentSlotGroup::Mainhand,
629 kind: Attribute::AttackSpeed,
630 display: AttributeModifierDisplay::Default,
631 modifier: AttributeModifier {
632 id: "minecraft:base_attack_speed".into(),
633 amount: -3.0476189851760864,
634 operation: AttributeModifierOperation::AddValue,
635 },
636 },
637 ],
638 ItemKind::DiamondSword => vec![
639 AttributeModifiersEntry {
640 slot: EquipmentSlotGroup::Mainhand,
641 kind: Attribute::AttackDamage,
642 display: AttributeModifierDisplay::Default,
643 modifier: AttributeModifier {
644 id: "minecraft:base_attack_damage".into(),
645 amount: 6.0,
646 operation: AttributeModifierOperation::AddValue,
647 },
648 },
649 AttributeModifiersEntry {
650 slot: EquipmentSlotGroup::Mainhand,
651 kind: Attribute::AttackSpeed,
652 display: AttributeModifierDisplay::Default,
653 modifier: AttributeModifier {
654 id: "minecraft:base_attack_speed".into(),
655 amount: -2.4000000953674316,
656 operation: AttributeModifierOperation::AddValue,
657 },
658 },
659 ],
660 ItemKind::DragonHead => vec![AttributeModifiersEntry {
661 display: AttributeModifierDisplay::Hidden,
662 slot: EquipmentSlotGroup::Head,
663 kind: Attribute::WaypointTransmitRange,
664 modifier: AttributeModifier {
665 id: "minecraft:waypoint_transmit_range_hide".into(),
666 amount: -1.0,
667 operation: AttributeModifierOperation::AddMultipliedTotal,
668 },
669 }],
670 ItemKind::GoldenAxe => vec![
671 AttributeModifiersEntry {
672 slot: EquipmentSlotGroup::Mainhand,
673 kind: Attribute::AttackDamage,
674 display: AttributeModifierDisplay::Default,
675 modifier: AttributeModifier {
676 id: "minecraft:base_attack_damage".into(),
677 amount: 6.0,
678 operation: AttributeModifierOperation::AddValue,
679 },
680 },
681 AttributeModifiersEntry {
682 slot: EquipmentSlotGroup::Mainhand,
683 kind: Attribute::AttackSpeed,
684 display: AttributeModifierDisplay::Default,
685 modifier: AttributeModifier {
686 id: "minecraft:base_attack_speed".into(),
687 amount: -3.0,
688 operation: AttributeModifierOperation::AddValue,
689 },
690 },
691 ],
692 ItemKind::GoldenBoots => vec![
693 AttributeModifiersEntry {
694 slot: EquipmentSlotGroup::Feet,
695 kind: Attribute::Armor,
696 display: AttributeModifierDisplay::Default,
697 modifier: AttributeModifier {
698 id: "minecraft:armor.boots".into(),
699 amount: 1.0,
700 operation: AttributeModifierOperation::AddValue,
701 },
702 },
703 AttributeModifiersEntry {
704 slot: EquipmentSlotGroup::Feet,
705 kind: Attribute::ArmorToughness,
706 display: AttributeModifierDisplay::Default,
707 modifier: AttributeModifier {
708 id: "minecraft:armor.boots".into(),
709 amount: 0.0,
710 operation: AttributeModifierOperation::AddValue,
711 },
712 },
713 ],
714 ItemKind::GoldenChestplate => vec![
715 AttributeModifiersEntry {
716 slot: EquipmentSlotGroup::Chest,
717 kind: Attribute::Armor,
718 display: AttributeModifierDisplay::Default,
719 modifier: AttributeModifier {
720 id: "minecraft:armor.chestplate".into(),
721 amount: 5.0,
722 operation: AttributeModifierOperation::AddValue,
723 },
724 },
725 AttributeModifiersEntry {
726 slot: EquipmentSlotGroup::Chest,
727 kind: Attribute::ArmorToughness,
728 display: AttributeModifierDisplay::Default,
729 modifier: AttributeModifier {
730 id: "minecraft:armor.chestplate".into(),
731 amount: 0.0,
732 operation: AttributeModifierOperation::AddValue,
733 },
734 },
735 ],
736 ItemKind::GoldenHelmet => vec![
737 AttributeModifiersEntry {
738 slot: EquipmentSlotGroup::Head,
739 kind: Attribute::Armor,
740 display: AttributeModifierDisplay::Default,
741 modifier: AttributeModifier {
742 id: "minecraft:armor.helmet".into(),
743 amount: 2.0,
744 operation: AttributeModifierOperation::AddValue,
745 },
746 },
747 AttributeModifiersEntry {
748 slot: EquipmentSlotGroup::Head,
749 kind: Attribute::ArmorToughness,
750 display: AttributeModifierDisplay::Default,
751 modifier: AttributeModifier {
752 id: "minecraft:armor.helmet".into(),
753 amount: 0.0,
754 operation: AttributeModifierOperation::AddValue,
755 },
756 },
757 ],
758 ItemKind::GoldenHoe => vec![
759 AttributeModifiersEntry {
760 slot: EquipmentSlotGroup::Mainhand,
761 kind: Attribute::AttackDamage,
762 display: AttributeModifierDisplay::Default,
763 modifier: AttributeModifier {
764 id: "minecraft:base_attack_damage".into(),
765 amount: 0.0,
766 operation: AttributeModifierOperation::AddValue,
767 },
768 },
769 AttributeModifiersEntry {
770 slot: EquipmentSlotGroup::Mainhand,
771 kind: Attribute::AttackSpeed,
772 display: AttributeModifierDisplay::Default,
773 modifier: AttributeModifier {
774 id: "minecraft:base_attack_speed".into(),
775 amount: -3.0,
776 operation: AttributeModifierOperation::AddValue,
777 },
778 },
779 ],
780 ItemKind::GoldenHorseArmor => vec![
781 AttributeModifiersEntry {
782 slot: EquipmentSlotGroup::Body,
783 kind: Attribute::Armor,
784 display: AttributeModifierDisplay::Default,
785 modifier: AttributeModifier {
786 id: "minecraft:armor.body".into(),
787 amount: 7.0,
788 operation: AttributeModifierOperation::AddValue,
789 },
790 },
791 AttributeModifiersEntry {
792 slot: EquipmentSlotGroup::Body,
793 kind: Attribute::ArmorToughness,
794 display: AttributeModifierDisplay::Default,
795 modifier: AttributeModifier {
796 id: "minecraft:armor.body".into(),
797 amount: 0.0,
798 operation: AttributeModifierOperation::AddValue,
799 },
800 },
801 ],
802 ItemKind::GoldenLeggings => vec![
803 AttributeModifiersEntry {
804 slot: EquipmentSlotGroup::Legs,
805 kind: Attribute::Armor,
806 display: AttributeModifierDisplay::Default,
807 modifier: AttributeModifier {
808 id: "minecraft:armor.leggings".into(),
809 amount: 3.0,
810 operation: AttributeModifierOperation::AddValue,
811 },
812 },
813 AttributeModifiersEntry {
814 slot: EquipmentSlotGroup::Legs,
815 kind: Attribute::ArmorToughness,
816 display: AttributeModifierDisplay::Default,
817 modifier: AttributeModifier {
818 id: "minecraft:armor.leggings".into(),
819 amount: 0.0,
820 operation: AttributeModifierOperation::AddValue,
821 },
822 },
823 ],
824 ItemKind::GoldenNautilusArmor => vec![
825 AttributeModifiersEntry {
826 slot: EquipmentSlotGroup::Body,
827 kind: Attribute::Armor,
828 display: AttributeModifierDisplay::Default,
829 modifier: AttributeModifier {
830 id: "minecraft:armor.body".into(),
831 amount: 7.0,
832 operation: AttributeModifierOperation::AddValue,
833 },
834 },
835 AttributeModifiersEntry {
836 slot: EquipmentSlotGroup::Body,
837 kind: Attribute::ArmorToughness,
838 display: AttributeModifierDisplay::Default,
839 modifier: AttributeModifier {
840 id: "minecraft:armor.body".into(),
841 amount: 0.0,
842 operation: AttributeModifierOperation::AddValue,
843 },
844 },
845 ],
846 ItemKind::GoldenPickaxe => vec![
847 AttributeModifiersEntry {
848 slot: EquipmentSlotGroup::Mainhand,
849 kind: Attribute::AttackDamage,
850 display: AttributeModifierDisplay::Default,
851 modifier: AttributeModifier {
852 id: "minecraft:base_attack_damage".into(),
853 amount: 1.0,
854 operation: AttributeModifierOperation::AddValue,
855 },
856 },
857 AttributeModifiersEntry {
858 slot: EquipmentSlotGroup::Mainhand,
859 kind: Attribute::AttackSpeed,
860 display: AttributeModifierDisplay::Default,
861 modifier: AttributeModifier {
862 id: "minecraft:base_attack_speed".into(),
863 amount: -2.799999952316284,
864 operation: AttributeModifierOperation::AddValue,
865 },
866 },
867 ],
868 ItemKind::GoldenShovel => vec![
869 AttributeModifiersEntry {
870 slot: EquipmentSlotGroup::Mainhand,
871 kind: Attribute::AttackDamage,
872 display: AttributeModifierDisplay::Default,
873 modifier: AttributeModifier {
874 id: "minecraft:base_attack_damage".into(),
875 amount: 1.5,
876 operation: AttributeModifierOperation::AddValue,
877 },
878 },
879 AttributeModifiersEntry {
880 slot: EquipmentSlotGroup::Mainhand,
881 kind: Attribute::AttackSpeed,
882 display: AttributeModifierDisplay::Default,
883 modifier: AttributeModifier {
884 id: "minecraft:base_attack_speed".into(),
885 amount: -3.0,
886 operation: AttributeModifierOperation::AddValue,
887 },
888 },
889 ],
890 ItemKind::GoldenSpear => vec![
891 AttributeModifiersEntry {
892 slot: EquipmentSlotGroup::Mainhand,
893 kind: Attribute::AttackDamage,
894 display: AttributeModifierDisplay::Default,
895 modifier: AttributeModifier {
896 id: "minecraft:base_attack_damage".into(),
897 amount: 0.0,
898 operation: AttributeModifierOperation::AddValue,
899 },
900 },
901 AttributeModifiersEntry {
902 slot: EquipmentSlotGroup::Mainhand,
903 kind: Attribute::AttackSpeed,
904 display: AttributeModifierDisplay::Default,
905 modifier: AttributeModifier {
906 id: "minecraft:base_attack_speed".into(),
907 amount: -2.9473683834075928,
908 operation: AttributeModifierOperation::AddValue,
909 },
910 },
911 ],
912 ItemKind::GoldenSword => vec![
913 AttributeModifiersEntry {
914 slot: EquipmentSlotGroup::Mainhand,
915 kind: Attribute::AttackDamage,
916 display: AttributeModifierDisplay::Default,
917 modifier: AttributeModifier {
918 id: "minecraft:base_attack_damage".into(),
919 amount: 3.0,
920 operation: AttributeModifierOperation::AddValue,
921 },
922 },
923 AttributeModifiersEntry {
924 slot: EquipmentSlotGroup::Mainhand,
925 kind: Attribute::AttackSpeed,
926 display: AttributeModifierDisplay::Default,
927 modifier: AttributeModifier {
928 id: "minecraft:base_attack_speed".into(),
929 amount: -2.4000000953674316,
930 operation: AttributeModifierOperation::AddValue,
931 },
932 },
933 ],
934 ItemKind::IronAxe => vec![
935 AttributeModifiersEntry {
936 slot: EquipmentSlotGroup::Mainhand,
937 kind: Attribute::AttackDamage,
938 display: AttributeModifierDisplay::Default,
939 modifier: AttributeModifier {
940 id: "minecraft:base_attack_damage".into(),
941 amount: 8.0,
942 operation: AttributeModifierOperation::AddValue,
943 },
944 },
945 AttributeModifiersEntry {
946 slot: EquipmentSlotGroup::Mainhand,
947 kind: Attribute::AttackSpeed,
948 display: AttributeModifierDisplay::Default,
949 modifier: AttributeModifier {
950 id: "minecraft:base_attack_speed".into(),
951 amount: -3.0999999046325684,
952 operation: AttributeModifierOperation::AddValue,
953 },
954 },
955 ],
956 ItemKind::IronBoots => vec![
957 AttributeModifiersEntry {
958 slot: EquipmentSlotGroup::Feet,
959 kind: Attribute::Armor,
960 display: AttributeModifierDisplay::Default,
961 modifier: AttributeModifier {
962 id: "minecraft:armor.boots".into(),
963 amount: 2.0,
964 operation: AttributeModifierOperation::AddValue,
965 },
966 },
967 AttributeModifiersEntry {
968 slot: EquipmentSlotGroup::Feet,
969 kind: Attribute::ArmorToughness,
970 display: AttributeModifierDisplay::Default,
971 modifier: AttributeModifier {
972 id: "minecraft:armor.boots".into(),
973 amount: 0.0,
974 operation: AttributeModifierOperation::AddValue,
975 },
976 },
977 ],
978 ItemKind::IronChestplate => vec![
979 AttributeModifiersEntry {
980 slot: EquipmentSlotGroup::Chest,
981 kind: Attribute::Armor,
982 display: AttributeModifierDisplay::Default,
983 modifier: AttributeModifier {
984 id: "minecraft:armor.chestplate".into(),
985 amount: 6.0,
986 operation: AttributeModifierOperation::AddValue,
987 },
988 },
989 AttributeModifiersEntry {
990 slot: EquipmentSlotGroup::Chest,
991 kind: Attribute::ArmorToughness,
992 display: AttributeModifierDisplay::Default,
993 modifier: AttributeModifier {
994 id: "minecraft:armor.chestplate".into(),
995 amount: 0.0,
996 operation: AttributeModifierOperation::AddValue,
997 },
998 },
999 ],
1000 ItemKind::IronHelmet => vec![
1001 AttributeModifiersEntry {
1002 slot: EquipmentSlotGroup::Head,
1003 kind: Attribute::Armor,
1004 display: AttributeModifierDisplay::Default,
1005 modifier: AttributeModifier {
1006 id: "minecraft:armor.helmet".into(),
1007 amount: 2.0,
1008 operation: AttributeModifierOperation::AddValue,
1009 },
1010 },
1011 AttributeModifiersEntry {
1012 slot: EquipmentSlotGroup::Head,
1013 kind: Attribute::ArmorToughness,
1014 display: AttributeModifierDisplay::Default,
1015 modifier: AttributeModifier {
1016 id: "minecraft:armor.helmet".into(),
1017 amount: 0.0,
1018 operation: AttributeModifierOperation::AddValue,
1019 },
1020 },
1021 ],
1022 ItemKind::IronHoe => vec![
1023 AttributeModifiersEntry {
1024 slot: EquipmentSlotGroup::Mainhand,
1025 kind: Attribute::AttackDamage,
1026 display: AttributeModifierDisplay::Default,
1027 modifier: AttributeModifier {
1028 id: "minecraft:base_attack_damage".into(),
1029 amount: 0.0,
1030 operation: AttributeModifierOperation::AddValue,
1031 },
1032 },
1033 AttributeModifiersEntry {
1034 slot: EquipmentSlotGroup::Mainhand,
1035 kind: Attribute::AttackSpeed,
1036 display: AttributeModifierDisplay::Default,
1037 modifier: AttributeModifier {
1038 id: "minecraft:base_attack_speed".into(),
1039 amount: -1.0,
1040 operation: AttributeModifierOperation::AddValue,
1041 },
1042 },
1043 ],
1044 ItemKind::IronHorseArmor => vec![
1045 AttributeModifiersEntry {
1046 slot: EquipmentSlotGroup::Body,
1047 kind: Attribute::Armor,
1048 display: AttributeModifierDisplay::Default,
1049 modifier: AttributeModifier {
1050 id: "minecraft:armor.body".into(),
1051 amount: 5.0,
1052 operation: AttributeModifierOperation::AddValue,
1053 },
1054 },
1055 AttributeModifiersEntry {
1056 slot: EquipmentSlotGroup::Body,
1057 kind: Attribute::ArmorToughness,
1058 display: AttributeModifierDisplay::Default,
1059 modifier: AttributeModifier {
1060 id: "minecraft:armor.body".into(),
1061 amount: 0.0,
1062 operation: AttributeModifierOperation::AddValue,
1063 },
1064 },
1065 ],
1066 ItemKind::IronLeggings => vec![
1067 AttributeModifiersEntry {
1068 slot: EquipmentSlotGroup::Legs,
1069 kind: Attribute::Armor,
1070 display: AttributeModifierDisplay::Default,
1071 modifier: AttributeModifier {
1072 id: "minecraft:armor.leggings".into(),
1073 amount: 5.0,
1074 operation: AttributeModifierOperation::AddValue,
1075 },
1076 },
1077 AttributeModifiersEntry {
1078 slot: EquipmentSlotGroup::Legs,
1079 kind: Attribute::ArmorToughness,
1080 display: AttributeModifierDisplay::Default,
1081 modifier: AttributeModifier {
1082 id: "minecraft:armor.leggings".into(),
1083 amount: 0.0,
1084 operation: AttributeModifierOperation::AddValue,
1085 },
1086 },
1087 ],
1088 ItemKind::IronNautilusArmor => vec![
1089 AttributeModifiersEntry {
1090 slot: EquipmentSlotGroup::Body,
1091 kind: Attribute::Armor,
1092 display: AttributeModifierDisplay::Default,
1093 modifier: AttributeModifier {
1094 id: "minecraft:armor.body".into(),
1095 amount: 5.0,
1096 operation: AttributeModifierOperation::AddValue,
1097 },
1098 },
1099 AttributeModifiersEntry {
1100 slot: EquipmentSlotGroup::Body,
1101 kind: Attribute::ArmorToughness,
1102 display: AttributeModifierDisplay::Default,
1103 modifier: AttributeModifier {
1104 id: "minecraft:armor.body".into(),
1105 amount: 0.0,
1106 operation: AttributeModifierOperation::AddValue,
1107 },
1108 },
1109 ],
1110 ItemKind::IronPickaxe => vec![
1111 AttributeModifiersEntry {
1112 slot: EquipmentSlotGroup::Mainhand,
1113 kind: Attribute::AttackDamage,
1114 display: AttributeModifierDisplay::Default,
1115 modifier: AttributeModifier {
1116 id: "minecraft:base_attack_damage".into(),
1117 amount: 3.0,
1118 operation: AttributeModifierOperation::AddValue,
1119 },
1120 },
1121 AttributeModifiersEntry {
1122 slot: EquipmentSlotGroup::Mainhand,
1123 kind: Attribute::AttackSpeed,
1124 display: AttributeModifierDisplay::Default,
1125 modifier: AttributeModifier {
1126 id: "minecraft:base_attack_speed".into(),
1127 amount: -2.799999952316284,
1128 operation: AttributeModifierOperation::AddValue,
1129 },
1130 },
1131 ],
1132 ItemKind::IronShovel => vec![
1133 AttributeModifiersEntry {
1134 slot: EquipmentSlotGroup::Mainhand,
1135 kind: Attribute::AttackDamage,
1136 display: AttributeModifierDisplay::Default,
1137 modifier: AttributeModifier {
1138 id: "minecraft:base_attack_damage".into(),
1139 amount: 3.5,
1140 operation: AttributeModifierOperation::AddValue,
1141 },
1142 },
1143 AttributeModifiersEntry {
1144 slot: EquipmentSlotGroup::Mainhand,
1145 kind: Attribute::AttackSpeed,
1146 display: AttributeModifierDisplay::Default,
1147 modifier: AttributeModifier {
1148 id: "minecraft:base_attack_speed".into(),
1149 amount: -3.0,
1150 operation: AttributeModifierOperation::AddValue,
1151 },
1152 },
1153 ],
1154 ItemKind::IronSpear => vec![
1155 AttributeModifiersEntry {
1156 slot: EquipmentSlotGroup::Mainhand,
1157 kind: Attribute::AttackDamage,
1158 display: AttributeModifierDisplay::Default,
1159 modifier: AttributeModifier {
1160 id: "minecraft:base_attack_damage".into(),
1161 amount: 2.0,
1162 operation: AttributeModifierOperation::AddValue,
1163 },
1164 },
1165 AttributeModifiersEntry {
1166 slot: EquipmentSlotGroup::Mainhand,
1167 kind: Attribute::AttackSpeed,
1168 display: AttributeModifierDisplay::Default,
1169 modifier: AttributeModifier {
1170 id: "minecraft:base_attack_speed".into(),
1171 amount: -2.9473683834075928,
1172 operation: AttributeModifierOperation::AddValue,
1173 },
1174 },
1175 ],
1176 ItemKind::IronSword => vec![
1177 AttributeModifiersEntry {
1178 slot: EquipmentSlotGroup::Mainhand,
1179 kind: Attribute::AttackDamage,
1180 display: AttributeModifierDisplay::Default,
1181 modifier: AttributeModifier {
1182 id: "minecraft:base_attack_damage".into(),
1183 amount: 5.0,
1184 operation: AttributeModifierOperation::AddValue,
1185 },
1186 },
1187 AttributeModifiersEntry {
1188 slot: EquipmentSlotGroup::Mainhand,
1189 kind: Attribute::AttackSpeed,
1190 display: AttributeModifierDisplay::Default,
1191 modifier: AttributeModifier {
1192 id: "minecraft:base_attack_speed".into(),
1193 amount: -2.4000000953674316,
1194 operation: AttributeModifierOperation::AddValue,
1195 },
1196 },
1197 ],
1198 ItemKind::LeatherBoots => vec![
1199 AttributeModifiersEntry {
1200 slot: EquipmentSlotGroup::Feet,
1201 kind: Attribute::Armor,
1202 display: AttributeModifierDisplay::Default,
1203 modifier: AttributeModifier {
1204 id: "minecraft:armor.boots".into(),
1205 amount: 1.0,
1206 operation: AttributeModifierOperation::AddValue,
1207 },
1208 },
1209 AttributeModifiersEntry {
1210 slot: EquipmentSlotGroup::Feet,
1211 kind: Attribute::ArmorToughness,
1212 display: AttributeModifierDisplay::Default,
1213 modifier: AttributeModifier {
1214 id: "minecraft:armor.boots".into(),
1215 amount: 0.0,
1216 operation: AttributeModifierOperation::AddValue,
1217 },
1218 },
1219 ],
1220 ItemKind::LeatherChestplate => vec![
1221 AttributeModifiersEntry {
1222 slot: EquipmentSlotGroup::Chest,
1223 kind: Attribute::Armor,
1224 display: AttributeModifierDisplay::Default,
1225 modifier: AttributeModifier {
1226 id: "minecraft:armor.chestplate".into(),
1227 amount: 3.0,
1228 operation: AttributeModifierOperation::AddValue,
1229 },
1230 },
1231 AttributeModifiersEntry {
1232 slot: EquipmentSlotGroup::Chest,
1233 kind: Attribute::ArmorToughness,
1234 display: AttributeModifierDisplay::Default,
1235 modifier: AttributeModifier {
1236 id: "minecraft:armor.chestplate".into(),
1237 amount: 0.0,
1238 operation: AttributeModifierOperation::AddValue,
1239 },
1240 },
1241 ],
1242 ItemKind::LeatherHelmet => vec![
1243 AttributeModifiersEntry {
1244 slot: EquipmentSlotGroup::Head,
1245 kind: Attribute::Armor,
1246 display: AttributeModifierDisplay::Default,
1247 modifier: AttributeModifier {
1248 id: "minecraft:armor.helmet".into(),
1249 amount: 1.0,
1250 operation: AttributeModifierOperation::AddValue,
1251 },
1252 },
1253 AttributeModifiersEntry {
1254 slot: EquipmentSlotGroup::Head,
1255 kind: Attribute::ArmorToughness,
1256 display: AttributeModifierDisplay::Default,
1257 modifier: AttributeModifier {
1258 id: "minecraft:armor.helmet".into(),
1259 amount: 0.0,
1260 operation: AttributeModifierOperation::AddValue,
1261 },
1262 },
1263 ],
1264 ItemKind::LeatherHorseArmor => vec![
1265 AttributeModifiersEntry {
1266 slot: EquipmentSlotGroup::Body,
1267 kind: Attribute::Armor,
1268 display: AttributeModifierDisplay::Default,
1269 modifier: AttributeModifier {
1270 id: "minecraft:armor.body".into(),
1271 amount: 3.0,
1272 operation: AttributeModifierOperation::AddValue,
1273 },
1274 },
1275 AttributeModifiersEntry {
1276 slot: EquipmentSlotGroup::Body,
1277 kind: Attribute::ArmorToughness,
1278 display: AttributeModifierDisplay::Default,
1279 modifier: AttributeModifier {
1280 id: "minecraft:armor.body".into(),
1281 amount: 0.0,
1282 operation: AttributeModifierOperation::AddValue,
1283 },
1284 },
1285 ],
1286 ItemKind::LeatherLeggings => vec![
1287 AttributeModifiersEntry {
1288 slot: EquipmentSlotGroup::Legs,
1289 kind: Attribute::Armor,
1290 display: AttributeModifierDisplay::Default,
1291 modifier: AttributeModifier {
1292 id: "minecraft:armor.leggings".into(),
1293 amount: 2.0,
1294 operation: AttributeModifierOperation::AddValue,
1295 },
1296 },
1297 AttributeModifiersEntry {
1298 slot: EquipmentSlotGroup::Legs,
1299 kind: Attribute::ArmorToughness,
1300 display: AttributeModifierDisplay::Default,
1301 modifier: AttributeModifier {
1302 id: "minecraft:armor.leggings".into(),
1303 amount: 0.0,
1304 operation: AttributeModifierOperation::AddValue,
1305 },
1306 },
1307 ],
1308 ItemKind::Mace => vec![
1309 AttributeModifiersEntry {
1310 slot: EquipmentSlotGroup::Mainhand,
1311 kind: Attribute::AttackDamage,
1312 display: AttributeModifierDisplay::Default,
1313 modifier: AttributeModifier {
1314 id: "minecraft:base_attack_damage".into(),
1315 amount: 5.0,
1316 operation: AttributeModifierOperation::AddValue,
1317 },
1318 },
1319 AttributeModifiersEntry {
1320 slot: EquipmentSlotGroup::Mainhand,
1321 kind: Attribute::AttackSpeed,
1322 display: AttributeModifierDisplay::Default,
1323 modifier: AttributeModifier {
1324 id: "minecraft:base_attack_speed".into(),
1325 amount: -3.4000000953674316,
1326 operation: AttributeModifierOperation::AddValue,
1327 },
1328 },
1329 ],
1330 ItemKind::NetheriteAxe => vec![
1331 AttributeModifiersEntry {
1332 slot: EquipmentSlotGroup::Mainhand,
1333 kind: Attribute::AttackDamage,
1334 display: AttributeModifierDisplay::Default,
1335 modifier: AttributeModifier {
1336 id: "minecraft:base_attack_damage".into(),
1337 amount: 9.0,
1338 operation: AttributeModifierOperation::AddValue,
1339 },
1340 },
1341 AttributeModifiersEntry {
1342 slot: EquipmentSlotGroup::Mainhand,
1343 kind: Attribute::AttackSpeed,
1344 display: AttributeModifierDisplay::Default,
1345 modifier: AttributeModifier {
1346 id: "minecraft:base_attack_speed".into(),
1347 amount: -3.0,
1348 operation: AttributeModifierOperation::AddValue,
1349 },
1350 },
1351 ],
1352 ItemKind::NetheriteBoots => vec![
1353 AttributeModifiersEntry {
1354 slot: EquipmentSlotGroup::Feet,
1355 kind: Attribute::Armor,
1356 display: AttributeModifierDisplay::Default,
1357 modifier: AttributeModifier {
1358 id: "minecraft:armor.boots".into(),
1359 amount: 3.0,
1360 operation: AttributeModifierOperation::AddValue,
1361 },
1362 },
1363 AttributeModifiersEntry {
1364 slot: EquipmentSlotGroup::Feet,
1365 kind: Attribute::ArmorToughness,
1366 display: AttributeModifierDisplay::Default,
1367 modifier: AttributeModifier {
1368 id: "minecraft:armor.boots".into(),
1369 amount: 3.0,
1370 operation: AttributeModifierOperation::AddValue,
1371 },
1372 },
1373 AttributeModifiersEntry {
1374 slot: EquipmentSlotGroup::Feet,
1375 kind: Attribute::KnockbackResistance,
1376 display: AttributeModifierDisplay::Default,
1377 modifier: AttributeModifier {
1378 id: "minecraft:armor.boots".into(),
1379 amount: 0.10000000149011612,
1380 operation: AttributeModifierOperation::AddValue,
1381 },
1382 },
1383 ],
1384 ItemKind::NetheriteChestplate => vec![
1385 AttributeModifiersEntry {
1386 slot: EquipmentSlotGroup::Chest,
1387 kind: Attribute::Armor,
1388 display: AttributeModifierDisplay::Default,
1389 modifier: AttributeModifier {
1390 id: "minecraft:armor.chestplate".into(),
1391 amount: 8.0,
1392 operation: AttributeModifierOperation::AddValue,
1393 },
1394 },
1395 AttributeModifiersEntry {
1396 slot: EquipmentSlotGroup::Chest,
1397 kind: Attribute::ArmorToughness,
1398 display: AttributeModifierDisplay::Default,
1399 modifier: AttributeModifier {
1400 id: "minecraft:armor.chestplate".into(),
1401 amount: 3.0,
1402 operation: AttributeModifierOperation::AddValue,
1403 },
1404 },
1405 AttributeModifiersEntry {
1406 slot: EquipmentSlotGroup::Chest,
1407 kind: Attribute::KnockbackResistance,
1408 display: AttributeModifierDisplay::Default,
1409 modifier: AttributeModifier {
1410 id: "minecraft:armor.chestplate".into(),
1411 amount: 0.10000000149011612,
1412 operation: AttributeModifierOperation::AddValue,
1413 },
1414 },
1415 ],
1416 ItemKind::NetheriteHelmet => vec![
1417 AttributeModifiersEntry {
1418 slot: EquipmentSlotGroup::Head,
1419 kind: Attribute::Armor,
1420 display: AttributeModifierDisplay::Default,
1421 modifier: AttributeModifier {
1422 id: "minecraft:armor.helmet".into(),
1423 amount: 3.0,
1424 operation: AttributeModifierOperation::AddValue,
1425 },
1426 },
1427 AttributeModifiersEntry {
1428 slot: EquipmentSlotGroup::Head,
1429 kind: Attribute::ArmorToughness,
1430 display: AttributeModifierDisplay::Default,
1431 modifier: AttributeModifier {
1432 id: "minecraft:armor.helmet".into(),
1433 amount: 3.0,
1434 operation: AttributeModifierOperation::AddValue,
1435 },
1436 },
1437 AttributeModifiersEntry {
1438 slot: EquipmentSlotGroup::Head,
1439 kind: Attribute::KnockbackResistance,
1440 display: AttributeModifierDisplay::Default,
1441 modifier: AttributeModifier {
1442 id: "minecraft:armor.helmet".into(),
1443 amount: 0.10000000149011612,
1444 operation: AttributeModifierOperation::AddValue,
1445 },
1446 },
1447 ],
1448 ItemKind::NetheriteHoe => vec![
1449 AttributeModifiersEntry {
1450 slot: EquipmentSlotGroup::Mainhand,
1451 kind: Attribute::AttackDamage,
1452 display: AttributeModifierDisplay::Default,
1453 modifier: AttributeModifier {
1454 id: "minecraft:base_attack_damage".into(),
1455 amount: 0.0,
1456 operation: AttributeModifierOperation::AddValue,
1457 },
1458 },
1459 AttributeModifiersEntry {
1460 slot: EquipmentSlotGroup::Mainhand,
1461 kind: Attribute::AttackSpeed,
1462 display: AttributeModifierDisplay::Default,
1463 modifier: AttributeModifier {
1464 id: "minecraft:base_attack_speed".into(),
1465 amount: 0.0,
1466 operation: AttributeModifierOperation::AddValue,
1467 },
1468 },
1469 ],
1470 ItemKind::NetheriteHorseArmor => vec![
1471 AttributeModifiersEntry {
1472 slot: EquipmentSlotGroup::Body,
1473 kind: Attribute::Armor,
1474 display: AttributeModifierDisplay::Default,
1475 modifier: AttributeModifier {
1476 id: "minecraft:armor.body".into(),
1477 amount: 19.0,
1478 operation: AttributeModifierOperation::AddValue,
1479 },
1480 },
1481 AttributeModifiersEntry {
1482 slot: EquipmentSlotGroup::Body,
1483 kind: Attribute::ArmorToughness,
1484 display: AttributeModifierDisplay::Default,
1485 modifier: AttributeModifier {
1486 id: "minecraft:armor.body".into(),
1487 amount: 3.0,
1488 operation: AttributeModifierOperation::AddValue,
1489 },
1490 },
1491 AttributeModifiersEntry {
1492 slot: EquipmentSlotGroup::Body,
1493 kind: Attribute::KnockbackResistance,
1494 display: AttributeModifierDisplay::Default,
1495 modifier: AttributeModifier {
1496 id: "minecraft:armor.body".into(),
1497 amount: 0.10000000149011612,
1498 operation: AttributeModifierOperation::AddValue,
1499 },
1500 },
1501 ],
1502 ItemKind::NetheriteLeggings => vec![
1503 AttributeModifiersEntry {
1504 slot: EquipmentSlotGroup::Legs,
1505 kind: Attribute::Armor,
1506 display: AttributeModifierDisplay::Default,
1507 modifier: AttributeModifier {
1508 id: "minecraft:armor.leggings".into(),
1509 amount: 6.0,
1510 operation: AttributeModifierOperation::AddValue,
1511 },
1512 },
1513 AttributeModifiersEntry {
1514 slot: EquipmentSlotGroup::Legs,
1515 kind: Attribute::ArmorToughness,
1516 display: AttributeModifierDisplay::Default,
1517 modifier: AttributeModifier {
1518 id: "minecraft:armor.leggings".into(),
1519 amount: 3.0,
1520 operation: AttributeModifierOperation::AddValue,
1521 },
1522 },
1523 AttributeModifiersEntry {
1524 slot: EquipmentSlotGroup::Legs,
1525 kind: Attribute::KnockbackResistance,
1526 display: AttributeModifierDisplay::Default,
1527 modifier: AttributeModifier {
1528 id: "minecraft:armor.leggings".into(),
1529 amount: 0.10000000149011612,
1530 operation: AttributeModifierOperation::AddValue,
1531 },
1532 },
1533 ],
1534 ItemKind::NetheriteNautilusArmor => vec![
1535 AttributeModifiersEntry {
1536 slot: EquipmentSlotGroup::Body,
1537 kind: Attribute::Armor,
1538 display: AttributeModifierDisplay::Default,
1539 modifier: AttributeModifier {
1540 id: "minecraft:armor.body".into(),
1541 amount: 19.0,
1542 operation: AttributeModifierOperation::AddValue,
1543 },
1544 },
1545 AttributeModifiersEntry {
1546 slot: EquipmentSlotGroup::Body,
1547 kind: Attribute::ArmorToughness,
1548 display: AttributeModifierDisplay::Default,
1549 modifier: AttributeModifier {
1550 id: "minecraft:armor.body".into(),
1551 amount: 3.0,
1552 operation: AttributeModifierOperation::AddValue,
1553 },
1554 },
1555 AttributeModifiersEntry {
1556 slot: EquipmentSlotGroup::Body,
1557 kind: Attribute::KnockbackResistance,
1558 display: AttributeModifierDisplay::Default,
1559 modifier: AttributeModifier {
1560 id: "minecraft:armor.body".into(),
1561 amount: 0.10000000149011612,
1562 operation: AttributeModifierOperation::AddValue,
1563 },
1564 },
1565 ],
1566 ItemKind::NetheritePickaxe => vec![
1567 AttributeModifiersEntry {
1568 slot: EquipmentSlotGroup::Mainhand,
1569 kind: Attribute::AttackDamage,
1570 display: AttributeModifierDisplay::Default,
1571 modifier: AttributeModifier {
1572 id: "minecraft:base_attack_damage".into(),
1573 amount: 5.0,
1574 operation: AttributeModifierOperation::AddValue,
1575 },
1576 },
1577 AttributeModifiersEntry {
1578 slot: EquipmentSlotGroup::Mainhand,
1579 kind: Attribute::AttackSpeed,
1580 display: AttributeModifierDisplay::Default,
1581 modifier: AttributeModifier {
1582 id: "minecraft:base_attack_speed".into(),
1583 amount: -2.799999952316284,
1584 operation: AttributeModifierOperation::AddValue,
1585 },
1586 },
1587 ],
1588 ItemKind::NetheriteShovel => vec![
1589 AttributeModifiersEntry {
1590 slot: EquipmentSlotGroup::Mainhand,
1591 kind: Attribute::AttackDamage,
1592 display: AttributeModifierDisplay::Default,
1593 modifier: AttributeModifier {
1594 id: "minecraft:base_attack_damage".into(),
1595 amount: 5.5,
1596 operation: AttributeModifierOperation::AddValue,
1597 },
1598 },
1599 AttributeModifiersEntry {
1600 slot: EquipmentSlotGroup::Mainhand,
1601 kind: Attribute::AttackSpeed,
1602 display: AttributeModifierDisplay::Default,
1603 modifier: AttributeModifier {
1604 id: "minecraft:base_attack_speed".into(),
1605 amount: -3.0,
1606 operation: AttributeModifierOperation::AddValue,
1607 },
1608 },
1609 ],
1610 ItemKind::NetheriteSpear => vec![
1611 AttributeModifiersEntry {
1612 slot: EquipmentSlotGroup::Mainhand,
1613 kind: Attribute::AttackDamage,
1614 display: AttributeModifierDisplay::Default,
1615 modifier: AttributeModifier {
1616 id: "minecraft:base_attack_damage".into(),
1617 amount: 4.0,
1618 operation: AttributeModifierOperation::AddValue,
1619 },
1620 },
1621 AttributeModifiersEntry {
1622 slot: EquipmentSlotGroup::Mainhand,
1623 kind: Attribute::AttackSpeed,
1624 display: AttributeModifierDisplay::Default,
1625 modifier: AttributeModifier {
1626 id: "minecraft:base_attack_speed".into(),
1627 amount: -3.13043475151062,
1628 operation: AttributeModifierOperation::AddValue,
1629 },
1630 },
1631 ],
1632 ItemKind::NetheriteSword => vec![
1633 AttributeModifiersEntry {
1634 slot: EquipmentSlotGroup::Mainhand,
1635 kind: Attribute::AttackDamage,
1636 display: AttributeModifierDisplay::Default,
1637 modifier: AttributeModifier {
1638 id: "minecraft:base_attack_damage".into(),
1639 amount: 7.0,
1640 operation: AttributeModifierOperation::AddValue,
1641 },
1642 },
1643 AttributeModifiersEntry {
1644 slot: EquipmentSlotGroup::Mainhand,
1645 kind: Attribute::AttackSpeed,
1646 display: AttributeModifierDisplay::Default,
1647 modifier: AttributeModifier {
1648 id: "minecraft:base_attack_speed".into(),
1649 amount: -2.4000000953674316,
1650 operation: AttributeModifierOperation::AddValue,
1651 },
1652 },
1653 ],
1654 ItemKind::PiglinHead => vec![AttributeModifiersEntry {
1655 display: AttributeModifierDisplay::Hidden,
1656 slot: EquipmentSlotGroup::Head,
1657 kind: Attribute::WaypointTransmitRange,
1658 modifier: AttributeModifier {
1659 id: "minecraft:waypoint_transmit_range_hide".into(),
1660 amount: -1.0,
1661 operation: AttributeModifierOperation::AddMultipliedTotal,
1662 },
1663 }],
1664 ItemKind::PlayerHead => vec![AttributeModifiersEntry {
1665 display: AttributeModifierDisplay::Hidden,
1666 slot: EquipmentSlotGroup::Head,
1667 kind: Attribute::WaypointTransmitRange,
1668 modifier: AttributeModifier {
1669 id: "minecraft:waypoint_transmit_range_hide".into(),
1670 amount: -1.0,
1671 operation: AttributeModifierOperation::AddMultipliedTotal,
1672 },
1673 }],
1674 ItemKind::SkeletonSkull => vec![AttributeModifiersEntry {
1675 display: AttributeModifierDisplay::Hidden,
1676 slot: EquipmentSlotGroup::Head,
1677 kind: Attribute::WaypointTransmitRange,
1678 modifier: AttributeModifier {
1679 id: "minecraft:waypoint_transmit_range_hide".into(),
1680 amount: -1.0,
1681 operation: AttributeModifierOperation::AddMultipliedTotal,
1682 },
1683 }],
1684 ItemKind::StoneAxe => vec![
1685 AttributeModifiersEntry {
1686 slot: EquipmentSlotGroup::Mainhand,
1687 kind: Attribute::AttackDamage,
1688 display: AttributeModifierDisplay::Default,
1689 modifier: AttributeModifier {
1690 id: "minecraft:base_attack_damage".into(),
1691 amount: 8.0,
1692 operation: AttributeModifierOperation::AddValue,
1693 },
1694 },
1695 AttributeModifiersEntry {
1696 slot: EquipmentSlotGroup::Mainhand,
1697 kind: Attribute::AttackSpeed,
1698 display: AttributeModifierDisplay::Default,
1699 modifier: AttributeModifier {
1700 id: "minecraft:base_attack_speed".into(),
1701 amount: -3.200000047683716,
1702 operation: AttributeModifierOperation::AddValue,
1703 },
1704 },
1705 ],
1706 ItemKind::StoneHoe => vec![
1707 AttributeModifiersEntry {
1708 slot: EquipmentSlotGroup::Mainhand,
1709 kind: Attribute::AttackDamage,
1710 display: AttributeModifierDisplay::Default,
1711 modifier: AttributeModifier {
1712 id: "minecraft:base_attack_damage".into(),
1713 amount: 0.0,
1714 operation: AttributeModifierOperation::AddValue,
1715 },
1716 },
1717 AttributeModifiersEntry {
1718 slot: EquipmentSlotGroup::Mainhand,
1719 kind: Attribute::AttackSpeed,
1720 display: AttributeModifierDisplay::Default,
1721 modifier: AttributeModifier {
1722 id: "minecraft:base_attack_speed".into(),
1723 amount: -2.0,
1724 operation: AttributeModifierOperation::AddValue,
1725 },
1726 },
1727 ],
1728 ItemKind::StonePickaxe => vec![
1729 AttributeModifiersEntry {
1730 slot: EquipmentSlotGroup::Mainhand,
1731 kind: Attribute::AttackDamage,
1732 display: AttributeModifierDisplay::Default,
1733 modifier: AttributeModifier {
1734 id: "minecraft:base_attack_damage".into(),
1735 amount: 2.0,
1736 operation: AttributeModifierOperation::AddValue,
1737 },
1738 },
1739 AttributeModifiersEntry {
1740 slot: EquipmentSlotGroup::Mainhand,
1741 kind: Attribute::AttackSpeed,
1742 display: AttributeModifierDisplay::Default,
1743 modifier: AttributeModifier {
1744 id: "minecraft:base_attack_speed".into(),
1745 amount: -2.799999952316284,
1746 operation: AttributeModifierOperation::AddValue,
1747 },
1748 },
1749 ],
1750 ItemKind::StoneShovel => vec![
1751 AttributeModifiersEntry {
1752 slot: EquipmentSlotGroup::Mainhand,
1753 kind: Attribute::AttackDamage,
1754 display: AttributeModifierDisplay::Default,
1755 modifier: AttributeModifier {
1756 id: "minecraft:base_attack_damage".into(),
1757 amount: 2.5,
1758 operation: AttributeModifierOperation::AddValue,
1759 },
1760 },
1761 AttributeModifiersEntry {
1762 slot: EquipmentSlotGroup::Mainhand,
1763 kind: Attribute::AttackSpeed,
1764 display: AttributeModifierDisplay::Default,
1765 modifier: AttributeModifier {
1766 id: "minecraft:base_attack_speed".into(),
1767 amount: -3.0,
1768 operation: AttributeModifierOperation::AddValue,
1769 },
1770 },
1771 ],
1772 ItemKind::StoneSpear => vec![
1773 AttributeModifiersEntry {
1774 slot: EquipmentSlotGroup::Mainhand,
1775 kind: Attribute::AttackDamage,
1776 display: AttributeModifierDisplay::Default,
1777 modifier: AttributeModifier {
1778 id: "minecraft:base_attack_damage".into(),
1779 amount: 1.0,
1780 operation: AttributeModifierOperation::AddValue,
1781 },
1782 },
1783 AttributeModifiersEntry {
1784 slot: EquipmentSlotGroup::Mainhand,
1785 kind: Attribute::AttackSpeed,
1786 display: AttributeModifierDisplay::Default,
1787 modifier: AttributeModifier {
1788 id: "minecraft:base_attack_speed".into(),
1789 amount: -2.666666626930237,
1790 operation: AttributeModifierOperation::AddValue,
1791 },
1792 },
1793 ],
1794 ItemKind::StoneSword => vec![
1795 AttributeModifiersEntry {
1796 slot: EquipmentSlotGroup::Mainhand,
1797 kind: Attribute::AttackDamage,
1798 display: AttributeModifierDisplay::Default,
1799 modifier: AttributeModifier {
1800 id: "minecraft:base_attack_damage".into(),
1801 amount: 4.0,
1802 operation: AttributeModifierOperation::AddValue,
1803 },
1804 },
1805 AttributeModifiersEntry {
1806 slot: EquipmentSlotGroup::Mainhand,
1807 kind: Attribute::AttackSpeed,
1808 display: AttributeModifierDisplay::Default,
1809 modifier: AttributeModifier {
1810 id: "minecraft:base_attack_speed".into(),
1811 amount: -2.4000000953674316,
1812 operation: AttributeModifierOperation::AddValue,
1813 },
1814 },
1815 ],
1816 ItemKind::Trident => vec![
1817 AttributeModifiersEntry {
1818 slot: EquipmentSlotGroup::Mainhand,
1819 kind: Attribute::AttackDamage,
1820 display: AttributeModifierDisplay::Default,
1821 modifier: AttributeModifier {
1822 id: "minecraft:base_attack_damage".into(),
1823 amount: 8.0,
1824 operation: AttributeModifierOperation::AddValue,
1825 },
1826 },
1827 AttributeModifiersEntry {
1828 slot: EquipmentSlotGroup::Mainhand,
1829 kind: Attribute::AttackSpeed,
1830 display: AttributeModifierDisplay::Default,
1831 modifier: AttributeModifier {
1832 id: "minecraft:base_attack_speed".into(),
1833 amount: -2.9000000953674316,
1834 operation: AttributeModifierOperation::AddValue,
1835 },
1836 },
1837 ],
1838 ItemKind::TurtleHelmet => vec![
1839 AttributeModifiersEntry {
1840 slot: EquipmentSlotGroup::Head,
1841 kind: Attribute::Armor,
1842 display: AttributeModifierDisplay::Default,
1843 modifier: AttributeModifier {
1844 id: "minecraft:armor.helmet".into(),
1845 amount: 2.0,
1846 operation: AttributeModifierOperation::AddValue,
1847 },
1848 },
1849 AttributeModifiersEntry {
1850 slot: EquipmentSlotGroup::Head,
1851 kind: Attribute::ArmorToughness,
1852 display: AttributeModifierDisplay::Default,
1853 modifier: AttributeModifier {
1854 id: "minecraft:armor.helmet".into(),
1855 amount: 0.0,
1856 operation: AttributeModifierOperation::AddValue,
1857 },
1858 },
1859 ],
1860 ItemKind::WitherSkeletonSkull => vec![AttributeModifiersEntry {
1861 display: AttributeModifierDisplay::Hidden,
1862 slot: EquipmentSlotGroup::Head,
1863 kind: Attribute::WaypointTransmitRange,
1864 modifier: AttributeModifier {
1865 id: "minecraft:waypoint_transmit_range_hide".into(),
1866 amount: -1.0,
1867 operation: AttributeModifierOperation::AddMultipliedTotal,
1868 },
1869 }],
1870 ItemKind::WolfArmor => vec![
1871 AttributeModifiersEntry {
1872 slot: EquipmentSlotGroup::Body,
1873 kind: Attribute::Armor,
1874 display: AttributeModifierDisplay::Default,
1875 modifier: AttributeModifier {
1876 id: "minecraft:armor.body".into(),
1877 amount: 11.0,
1878 operation: AttributeModifierOperation::AddValue,
1879 },
1880 },
1881 AttributeModifiersEntry {
1882 slot: EquipmentSlotGroup::Body,
1883 kind: Attribute::ArmorToughness,
1884 display: AttributeModifierDisplay::Default,
1885 modifier: AttributeModifier {
1886 id: "minecraft:armor.body".into(),
1887 amount: 0.0,
1888 operation: AttributeModifierOperation::AddValue,
1889 },
1890 },
1891 ],
1892 ItemKind::WoodenAxe => vec![
1893 AttributeModifiersEntry {
1894 slot: EquipmentSlotGroup::Mainhand,
1895 kind: Attribute::AttackDamage,
1896 display: AttributeModifierDisplay::Default,
1897 modifier: AttributeModifier {
1898 id: "minecraft:base_attack_damage".into(),
1899 amount: 6.0,
1900 operation: AttributeModifierOperation::AddValue,
1901 },
1902 },
1903 AttributeModifiersEntry {
1904 slot: EquipmentSlotGroup::Mainhand,
1905 kind: Attribute::AttackSpeed,
1906 display: AttributeModifierDisplay::Default,
1907 modifier: AttributeModifier {
1908 id: "minecraft:base_attack_speed".into(),
1909 amount: -3.200000047683716,
1910 operation: AttributeModifierOperation::AddValue,
1911 },
1912 },
1913 ],
1914 ItemKind::WoodenHoe => vec![
1915 AttributeModifiersEntry {
1916 slot: EquipmentSlotGroup::Mainhand,
1917 kind: Attribute::AttackDamage,
1918 display: AttributeModifierDisplay::Default,
1919 modifier: AttributeModifier {
1920 id: "minecraft:base_attack_damage".into(),
1921 amount: 0.0,
1922 operation: AttributeModifierOperation::AddValue,
1923 },
1924 },
1925 AttributeModifiersEntry {
1926 slot: EquipmentSlotGroup::Mainhand,
1927 kind: Attribute::AttackSpeed,
1928 display: AttributeModifierDisplay::Default,
1929 modifier: AttributeModifier {
1930 id: "minecraft:base_attack_speed".into(),
1931 amount: -3.0,
1932 operation: AttributeModifierOperation::AddValue,
1933 },
1934 },
1935 ],
1936 ItemKind::WoodenPickaxe => vec![
1937 AttributeModifiersEntry {
1938 slot: EquipmentSlotGroup::Mainhand,
1939 kind: Attribute::AttackDamage,
1940 display: AttributeModifierDisplay::Default,
1941 modifier: AttributeModifier {
1942 id: "minecraft:base_attack_damage".into(),
1943 amount: 1.0,
1944 operation: AttributeModifierOperation::AddValue,
1945 },
1946 },
1947 AttributeModifiersEntry {
1948 slot: EquipmentSlotGroup::Mainhand,
1949 kind: Attribute::AttackSpeed,
1950 display: AttributeModifierDisplay::Default,
1951 modifier: AttributeModifier {
1952 id: "minecraft:base_attack_speed".into(),
1953 amount: -2.799999952316284,
1954 operation: AttributeModifierOperation::AddValue,
1955 },
1956 },
1957 ],
1958 ItemKind::WoodenShovel => vec![
1959 AttributeModifiersEntry {
1960 slot: EquipmentSlotGroup::Mainhand,
1961 kind: Attribute::AttackDamage,
1962 display: AttributeModifierDisplay::Default,
1963 modifier: AttributeModifier {
1964 id: "minecraft:base_attack_damage".into(),
1965 amount: 1.5,
1966 operation: AttributeModifierOperation::AddValue,
1967 },
1968 },
1969 AttributeModifiersEntry {
1970 slot: EquipmentSlotGroup::Mainhand,
1971 kind: Attribute::AttackSpeed,
1972 display: AttributeModifierDisplay::Default,
1973 modifier: AttributeModifier {
1974 id: "minecraft:base_attack_speed".into(),
1975 amount: -3.0,
1976 operation: AttributeModifierOperation::AddValue,
1977 },
1978 },
1979 ],
1980 ItemKind::WoodenSpear => vec![
1981 AttributeModifiersEntry {
1982 slot: EquipmentSlotGroup::Mainhand,
1983 kind: Attribute::AttackDamage,
1984 display: AttributeModifierDisplay::Default,
1985 modifier: AttributeModifier {
1986 id: "minecraft:base_attack_damage".into(),
1987 amount: 0.0,
1988 operation: AttributeModifierOperation::AddValue,
1989 },
1990 },
1991 AttributeModifiersEntry {
1992 slot: EquipmentSlotGroup::Mainhand,
1993 kind: Attribute::AttackSpeed,
1994 display: AttributeModifierDisplay::Default,
1995 modifier: AttributeModifier {
1996 id: "minecraft:base_attack_speed".into(),
1997 amount: -2.4615384340286255,
1998 operation: AttributeModifierOperation::AddValue,
1999 },
2000 },
2001 ],
2002 ItemKind::WoodenSword => vec![
2003 AttributeModifiersEntry {
2004 slot: EquipmentSlotGroup::Mainhand,
2005 kind: Attribute::AttackDamage,
2006 display: AttributeModifierDisplay::Default,
2007 modifier: AttributeModifier {
2008 id: "minecraft:base_attack_damage".into(),
2009 amount: 3.0,
2010 operation: AttributeModifierOperation::AddValue,
2011 },
2012 },
2013 AttributeModifiersEntry {
2014 slot: EquipmentSlotGroup::Mainhand,
2015 kind: Attribute::AttackSpeed,
2016 display: AttributeModifierDisplay::Default,
2017 modifier: AttributeModifier {
2018 id: "minecraft:base_attack_speed".into(),
2019 amount: -2.4000000953674316,
2020 operation: AttributeModifierOperation::AddValue,
2021 },
2022 },
2023 ],
2024 ItemKind::ZombieHead => vec![AttributeModifiersEntry {
2025 display: AttributeModifierDisplay::Hidden,
2026 slot: EquipmentSlotGroup::Head,
2027 kind: Attribute::WaypointTransmitRange,
2028 modifier: AttributeModifier {
2029 id: "minecraft:waypoint_transmit_range_hide".into(),
2030 amount: -1.0,
2031 operation: AttributeModifierOperation::AddMultipliedTotal,
2032 },
2033 }],
2034 _ => vec![],
2035 };
2036 Some(AttributeModifiers { modifiers: value })
2037 }
2038}
2039impl DefaultableComponent for BreakSound {
2040 fn default_for_item(item: ItemKind) -> Option<Self> {
2041 let value = match item {
2042 ItemKind::Shield => azalea_registry::Holder::Reference(SoundEvent::ItemShieldBreak),
2043 ItemKind::WolfArmor => {
2044 azalea_registry::Holder::Reference(SoundEvent::ItemWolfArmorBreak)
2045 }
2046 _ => azalea_registry::Holder::Reference(SoundEvent::EntityItemBreak),
2047 };
2048 Some(BreakSound { sound: value })
2049 }
2050}
2051impl DefaultableComponent for Enchantments {
2052 fn default_for_item(_item: ItemKind) -> Option<Self> {
2053 Some(Enchantments {
2054 levels: HashMap::from_iter([]),
2055 })
2056 }
2057}
2058#[rustfmt::skip]
2059static ITEM_MODEL_VALUES: [&str; 1505] = ["minecraft:air","minecraft:stone","minecraft:granite","minecraft:polished_granite","minecraft:diorite","minecraft:polished_diorite","minecraft:andesite","minecraft:polished_andesite","minecraft:deepslate","minecraft:cobbled_deepslate","minecraft:polished_deepslate","minecraft:calcite","minecraft:tuff","minecraft:tuff_slab","minecraft:tuff_stairs","minecraft:tuff_wall","minecraft:chiseled_tuff","minecraft:polished_tuff","minecraft:polished_tuff_slab","minecraft:polished_tuff_stairs","minecraft:polished_tuff_wall","minecraft:tuff_bricks","minecraft:tuff_brick_slab","minecraft:tuff_brick_stairs","minecraft:tuff_brick_wall","minecraft:chiseled_tuff_bricks","minecraft:dripstone_block","minecraft:grass_block","minecraft:dirt","minecraft:coarse_dirt","minecraft:podzol","minecraft:rooted_dirt","minecraft:mud","minecraft:crimson_nylium","minecraft:warped_nylium","minecraft:cobblestone","minecraft:oak_planks","minecraft:spruce_planks","minecraft:birch_planks","minecraft:jungle_planks","minecraft:acacia_planks","minecraft:cherry_planks","minecraft:dark_oak_planks","minecraft:pale_oak_planks","minecraft:mangrove_planks","minecraft:bamboo_planks","minecraft:crimson_planks","minecraft:warped_planks","minecraft:bamboo_mosaic","minecraft:oak_sapling","minecraft:spruce_sapling","minecraft:birch_sapling","minecraft:jungle_sapling","minecraft:acacia_sapling","minecraft:cherry_sapling","minecraft:dark_oak_sapling","minecraft:pale_oak_sapling","minecraft:mangrove_propagule","minecraft:bedrock","minecraft:sand","minecraft:suspicious_sand","minecraft:suspicious_gravel","minecraft:red_sand","minecraft:gravel","minecraft:coal_ore","minecraft:deepslate_coal_ore","minecraft:iron_ore","minecraft:deepslate_iron_ore","minecraft:copper_ore","minecraft:deepslate_copper_ore","minecraft:gold_ore","minecraft:deepslate_gold_ore","minecraft:redstone_ore","minecraft:deepslate_redstone_ore","minecraft:emerald_ore","minecraft:deepslate_emerald_ore","minecraft:lapis_ore","minecraft:deepslate_lapis_ore","minecraft:diamond_ore","minecraft:deepslate_diamond_ore","minecraft:nether_gold_ore","minecraft:nether_quartz_ore","minecraft:ancient_debris","minecraft:coal_block","minecraft:raw_iron_block","minecraft:raw_copper_block","minecraft:raw_gold_block","minecraft:heavy_core","minecraft:amethyst_block","minecraft:budding_amethyst","minecraft:iron_block","minecraft:copper_block","minecraft:gold_block","minecraft:diamond_block","minecraft:netherite_block","minecraft:exposed_copper","minecraft:weathered_copper","minecraft:oxidized_copper","minecraft:chiseled_copper","minecraft:exposed_chiseled_copper","minecraft:weathered_chiseled_copper","minecraft:oxidized_chiseled_copper","minecraft:cut_copper","minecraft:exposed_cut_copper","minecraft:weathered_cut_copper","minecraft:oxidized_cut_copper","minecraft:cut_copper_stairs","minecraft:exposed_cut_copper_stairs","minecraft:weathered_cut_copper_stairs","minecraft:oxidized_cut_copper_stairs","minecraft:cut_copper_slab","minecraft:exposed_cut_copper_slab","minecraft:weathered_cut_copper_slab","minecraft:oxidized_cut_copper_slab","minecraft:waxed_copper_block","minecraft:waxed_exposed_copper","minecraft:waxed_weathered_copper","minecraft:waxed_oxidized_copper","minecraft:waxed_chiseled_copper","minecraft:waxed_exposed_chiseled_copper","minecraft:waxed_weathered_chiseled_copper","minecraft:waxed_oxidized_chiseled_copper","minecraft:waxed_cut_copper","minecraft:waxed_exposed_cut_copper","minecraft:waxed_weathered_cut_copper","minecraft:waxed_oxidized_cut_copper","minecraft:waxed_cut_copper_stairs","minecraft:waxed_exposed_cut_copper_stairs","minecraft:waxed_weathered_cut_copper_stairs","minecraft:waxed_oxidized_cut_copper_stairs","minecraft:waxed_cut_copper_slab","minecraft:waxed_exposed_cut_copper_slab","minecraft:waxed_weathered_cut_copper_slab","minecraft:waxed_oxidized_cut_copper_slab","minecraft:oak_log","minecraft:spruce_log","minecraft:birch_log","minecraft:jungle_log","minecraft:acacia_log","minecraft:cherry_log","minecraft:pale_oak_log","minecraft:dark_oak_log","minecraft:mangrove_log","minecraft:mangrove_roots","minecraft:muddy_mangrove_roots","minecraft:crimson_stem","minecraft:warped_stem","minecraft:bamboo_block","minecraft:stripped_oak_log","minecraft:stripped_spruce_log","minecraft:stripped_birch_log","minecraft:stripped_jungle_log","minecraft:stripped_acacia_log","minecraft:stripped_cherry_log","minecraft:stripped_dark_oak_log","minecraft:stripped_pale_oak_log","minecraft:stripped_mangrove_log","minecraft:stripped_crimson_stem","minecraft:stripped_warped_stem","minecraft:stripped_oak_wood","minecraft:stripped_spruce_wood","minecraft:stripped_birch_wood","minecraft:stripped_jungle_wood","minecraft:stripped_acacia_wood","minecraft:stripped_cherry_wood","minecraft:stripped_dark_oak_wood","minecraft:stripped_pale_oak_wood","minecraft:stripped_mangrove_wood","minecraft:stripped_crimson_hyphae","minecraft:stripped_warped_hyphae","minecraft:stripped_bamboo_block","minecraft:oak_wood","minecraft:spruce_wood","minecraft:birch_wood","minecraft:jungle_wood","minecraft:acacia_wood","minecraft:cherry_wood","minecraft:pale_oak_wood","minecraft:dark_oak_wood","minecraft:mangrove_wood","minecraft:crimson_hyphae","minecraft:warped_hyphae","minecraft:oak_leaves","minecraft:spruce_leaves","minecraft:birch_leaves","minecraft:jungle_leaves","minecraft:acacia_leaves","minecraft:cherry_leaves","minecraft:dark_oak_leaves","minecraft:pale_oak_leaves","minecraft:mangrove_leaves","minecraft:azalea_leaves","minecraft:flowering_azalea_leaves","minecraft:sponge","minecraft:wet_sponge","minecraft:glass","minecraft:tinted_glass","minecraft:lapis_block","minecraft:sandstone","minecraft:chiseled_sandstone","minecraft:cut_sandstone","minecraft:cobweb","minecraft:short_grass","minecraft:fern","minecraft:bush","minecraft:azalea","minecraft:flowering_azalea","minecraft:dead_bush","minecraft:firefly_bush","minecraft:short_dry_grass","minecraft:tall_dry_grass","minecraft:seagrass","minecraft:sea_pickle","minecraft:white_wool","minecraft:orange_wool","minecraft:magenta_wool","minecraft:light_blue_wool","minecraft:yellow_wool","minecraft:lime_wool","minecraft:pink_wool","minecraft:gray_wool","minecraft:light_gray_wool","minecraft:cyan_wool","minecraft:purple_wool","minecraft:blue_wool","minecraft:brown_wool","minecraft:green_wool","minecraft:red_wool","minecraft:black_wool","minecraft:dandelion","minecraft:open_eyeblossom","minecraft:closed_eyeblossom","minecraft:poppy","minecraft:blue_orchid","minecraft:allium","minecraft:azure_bluet","minecraft:red_tulip","minecraft:orange_tulip","minecraft:white_tulip","minecraft:pink_tulip","minecraft:oxeye_daisy","minecraft:cornflower","minecraft:lily_of_the_valley","minecraft:wither_rose","minecraft:torchflower","minecraft:pitcher_plant","minecraft:spore_blossom","minecraft:brown_mushroom","minecraft:red_mushroom","minecraft:crimson_fungus","minecraft:warped_fungus","minecraft:crimson_roots","minecraft:warped_roots","minecraft:nether_sprouts","minecraft:weeping_vines","minecraft:twisting_vines","minecraft:sugar_cane","minecraft:kelp","minecraft:pink_petals","minecraft:wildflowers","minecraft:leaf_litter","minecraft:moss_carpet","minecraft:moss_block","minecraft:pale_moss_carpet","minecraft:pale_hanging_moss","minecraft:pale_moss_block","minecraft:hanging_roots","minecraft:big_dripleaf","minecraft:small_dripleaf","minecraft:bamboo","minecraft:oak_slab","minecraft:spruce_slab","minecraft:birch_slab","minecraft:jungle_slab","minecraft:acacia_slab","minecraft:cherry_slab","minecraft:dark_oak_slab","minecraft:pale_oak_slab","minecraft:mangrove_slab","minecraft:bamboo_slab","minecraft:bamboo_mosaic_slab","minecraft:crimson_slab","minecraft:warped_slab","minecraft:stone_slab","minecraft:smooth_stone_slab","minecraft:sandstone_slab","minecraft:cut_sandstone_slab","minecraft:petrified_oak_slab","minecraft:cobblestone_slab","minecraft:brick_slab","minecraft:stone_brick_slab","minecraft:mud_brick_slab","minecraft:nether_brick_slab","minecraft:quartz_slab","minecraft:red_sandstone_slab","minecraft:cut_red_sandstone_slab","minecraft:purpur_slab","minecraft:prismarine_slab","minecraft:prismarine_brick_slab","minecraft:dark_prismarine_slab","minecraft:smooth_quartz","minecraft:smooth_red_sandstone","minecraft:smooth_sandstone","minecraft:smooth_stone","minecraft:bricks","minecraft:acacia_shelf","minecraft:bamboo_shelf","minecraft:birch_shelf","minecraft:cherry_shelf","minecraft:crimson_shelf","minecraft:dark_oak_shelf","minecraft:jungle_shelf","minecraft:mangrove_shelf","minecraft:oak_shelf","minecraft:pale_oak_shelf","minecraft:spruce_shelf","minecraft:warped_shelf","minecraft:bookshelf","minecraft:chiseled_bookshelf","minecraft:decorated_pot","minecraft:mossy_cobblestone","minecraft:obsidian","minecraft:torch","minecraft:end_rod","minecraft:chorus_plant","minecraft:chorus_flower","minecraft:purpur_block","minecraft:purpur_pillar","minecraft:purpur_stairs","minecraft:spawner","minecraft:creaking_heart","minecraft:chest","minecraft:crafting_table","minecraft:farmland","minecraft:furnace","minecraft:ladder","minecraft:cobblestone_stairs","minecraft:snow","minecraft:ice","minecraft:snow_block","minecraft:cactus","minecraft:cactus_flower","minecraft:clay","minecraft:jukebox","minecraft:oak_fence","minecraft:spruce_fence","minecraft:birch_fence","minecraft:jungle_fence","minecraft:acacia_fence","minecraft:cherry_fence","minecraft:dark_oak_fence","minecraft:pale_oak_fence","minecraft:mangrove_fence","minecraft:bamboo_fence","minecraft:crimson_fence","minecraft:warped_fence","minecraft:pumpkin","minecraft:carved_pumpkin","minecraft:jack_o_lantern","minecraft:netherrack","minecraft:soul_sand","minecraft:soul_soil","minecraft:basalt","minecraft:polished_basalt","minecraft:smooth_basalt","minecraft:soul_torch","minecraft:copper_torch","minecraft:glowstone","minecraft:infested_stone","minecraft:infested_cobblestone","minecraft:infested_stone_bricks","minecraft:infested_mossy_stone_bricks","minecraft:infested_cracked_stone_bricks","minecraft:infested_chiseled_stone_bricks","minecraft:infested_deepslate","minecraft:stone_bricks","minecraft:mossy_stone_bricks","minecraft:cracked_stone_bricks","minecraft:chiseled_stone_bricks","minecraft:packed_mud","minecraft:mud_bricks","minecraft:deepslate_bricks","minecraft:cracked_deepslate_bricks","minecraft:deepslate_tiles","minecraft:cracked_deepslate_tiles","minecraft:chiseled_deepslate","minecraft:reinforced_deepslate","minecraft:brown_mushroom_block","minecraft:red_mushroom_block","minecraft:mushroom_stem","minecraft:iron_bars","minecraft:copper_bars","minecraft:exposed_copper_bars","minecraft:weathered_copper_bars","minecraft:oxidized_copper_bars","minecraft:waxed_copper_bars","minecraft:waxed_exposed_copper_bars","minecraft:waxed_weathered_copper_bars","minecraft:waxed_oxidized_copper_bars","minecraft:iron_chain","minecraft:copper_chain","minecraft:exposed_copper_chain","minecraft:weathered_copper_chain","minecraft:oxidized_copper_chain","minecraft:waxed_copper_chain","minecraft:waxed_exposed_copper_chain","minecraft:waxed_weathered_copper_chain","minecraft:waxed_oxidized_copper_chain","minecraft:glass_pane","minecraft:melon","minecraft:vine","minecraft:glow_lichen","minecraft:resin_clump","minecraft:resin_block","minecraft:resin_bricks","minecraft:resin_brick_stairs","minecraft:resin_brick_slab","minecraft:resin_brick_wall","minecraft:chiseled_resin_bricks","minecraft:brick_stairs","minecraft:stone_brick_stairs","minecraft:mud_brick_stairs","minecraft:mycelium","minecraft:lily_pad","minecraft:nether_bricks","minecraft:cracked_nether_bricks","minecraft:chiseled_nether_bricks","minecraft:nether_brick_fence","minecraft:nether_brick_stairs","minecraft:sculk","minecraft:sculk_vein","minecraft:sculk_catalyst","minecraft:sculk_shrieker","minecraft:enchanting_table","minecraft:end_portal_frame","minecraft:end_stone","minecraft:end_stone_bricks","minecraft:dragon_egg","minecraft:sandstone_stairs","minecraft:ender_chest","minecraft:emerald_block","minecraft:oak_stairs","minecraft:spruce_stairs","minecraft:birch_stairs","minecraft:jungle_stairs","minecraft:acacia_stairs","minecraft:cherry_stairs","minecraft:dark_oak_stairs","minecraft:pale_oak_stairs","minecraft:mangrove_stairs","minecraft:bamboo_stairs","minecraft:bamboo_mosaic_stairs","minecraft:crimson_stairs","minecraft:warped_stairs","minecraft:command_block","minecraft:beacon","minecraft:cobblestone_wall","minecraft:mossy_cobblestone_wall","minecraft:brick_wall","minecraft:prismarine_wall","minecraft:red_sandstone_wall","minecraft:mossy_stone_brick_wall","minecraft:granite_wall","minecraft:stone_brick_wall","minecraft:mud_brick_wall","minecraft:nether_brick_wall","minecraft:andesite_wall","minecraft:red_nether_brick_wall","minecraft:sandstone_wall","minecraft:end_stone_brick_wall","minecraft:diorite_wall","minecraft:blackstone_wall","minecraft:polished_blackstone_wall","minecraft:polished_blackstone_brick_wall","minecraft:cobbled_deepslate_wall","minecraft:polished_deepslate_wall","minecraft:deepslate_brick_wall","minecraft:deepslate_tile_wall","minecraft:anvil","minecraft:chipped_anvil","minecraft:damaged_anvil","minecraft:chiseled_quartz_block","minecraft:quartz_block","minecraft:quartz_bricks","minecraft:quartz_pillar","minecraft:quartz_stairs","minecraft:white_terracotta","minecraft:orange_terracotta","minecraft:magenta_terracotta","minecraft:light_blue_terracotta","minecraft:yellow_terracotta","minecraft:lime_terracotta","minecraft:pink_terracotta","minecraft:gray_terracotta","minecraft:light_gray_terracotta","minecraft:cyan_terracotta","minecraft:purple_terracotta","minecraft:blue_terracotta","minecraft:brown_terracotta","minecraft:green_terracotta","minecraft:red_terracotta","minecraft:black_terracotta","minecraft:barrier","minecraft:light","minecraft:hay_block","minecraft:white_carpet","minecraft:orange_carpet","minecraft:magenta_carpet","minecraft:light_blue_carpet","minecraft:yellow_carpet","minecraft:lime_carpet","minecraft:pink_carpet","minecraft:gray_carpet","minecraft:light_gray_carpet","minecraft:cyan_carpet","minecraft:purple_carpet","minecraft:blue_carpet","minecraft:brown_carpet","minecraft:green_carpet","minecraft:red_carpet","minecraft:black_carpet","minecraft:terracotta","minecraft:packed_ice","minecraft:dirt_path","minecraft:sunflower","minecraft:lilac","minecraft:rose_bush","minecraft:peony","minecraft:tall_grass","minecraft:large_fern","minecraft:white_stained_glass","minecraft:orange_stained_glass","minecraft:magenta_stained_glass","minecraft:light_blue_stained_glass","minecraft:yellow_stained_glass","minecraft:lime_stained_glass","minecraft:pink_stained_glass","minecraft:gray_stained_glass","minecraft:light_gray_stained_glass","minecraft:cyan_stained_glass","minecraft:purple_stained_glass","minecraft:blue_stained_glass","minecraft:brown_stained_glass","minecraft:green_stained_glass","minecraft:red_stained_glass","minecraft:black_stained_glass","minecraft:white_stained_glass_pane","minecraft:orange_stained_glass_pane","minecraft:magenta_stained_glass_pane","minecraft:light_blue_stained_glass_pane","minecraft:yellow_stained_glass_pane","minecraft:lime_stained_glass_pane","minecraft:pink_stained_glass_pane","minecraft:gray_stained_glass_pane","minecraft:light_gray_stained_glass_pane","minecraft:cyan_stained_glass_pane","minecraft:purple_stained_glass_pane","minecraft:blue_stained_glass_pane","minecraft:brown_stained_glass_pane","minecraft:green_stained_glass_pane","minecraft:red_stained_glass_pane","minecraft:black_stained_glass_pane","minecraft:prismarine","minecraft:prismarine_bricks","minecraft:dark_prismarine","minecraft:prismarine_stairs","minecraft:prismarine_brick_stairs","minecraft:dark_prismarine_stairs","minecraft:sea_lantern","minecraft:red_sandstone","minecraft:chiseled_red_sandstone","minecraft:cut_red_sandstone","minecraft:red_sandstone_stairs","minecraft:repeating_command_block","minecraft:chain_command_block","minecraft:magma_block","minecraft:nether_wart_block","minecraft:warped_wart_block","minecraft:red_nether_bricks","minecraft:bone_block","minecraft:structure_void","minecraft:shulker_box","minecraft:white_shulker_box","minecraft:orange_shulker_box","minecraft:magenta_shulker_box","minecraft:light_blue_shulker_box","minecraft:yellow_shulker_box","minecraft:lime_shulker_box","minecraft:pink_shulker_box","minecraft:gray_shulker_box","minecraft:light_gray_shulker_box","minecraft:cyan_shulker_box","minecraft:purple_shulker_box","minecraft:blue_shulker_box","minecraft:brown_shulker_box","minecraft:green_shulker_box","minecraft:red_shulker_box","minecraft:black_shulker_box","minecraft:white_glazed_terracotta","minecraft:orange_glazed_terracotta","minecraft:magenta_glazed_terracotta","minecraft:light_blue_glazed_terracotta","minecraft:yellow_glazed_terracotta","minecraft:lime_glazed_terracotta","minecraft:pink_glazed_terracotta","minecraft:gray_glazed_terracotta","minecraft:light_gray_glazed_terracotta","minecraft:cyan_glazed_terracotta","minecraft:purple_glazed_terracotta","minecraft:blue_glazed_terracotta","minecraft:brown_glazed_terracotta","minecraft:green_glazed_terracotta","minecraft:red_glazed_terracotta","minecraft:black_glazed_terracotta","minecraft:white_concrete","minecraft:orange_concrete","minecraft:magenta_concrete","minecraft:light_blue_concrete","minecraft:yellow_concrete","minecraft:lime_concrete","minecraft:pink_concrete","minecraft:gray_concrete","minecraft:light_gray_concrete","minecraft:cyan_concrete","minecraft:purple_concrete","minecraft:blue_concrete","minecraft:brown_concrete","minecraft:green_concrete","minecraft:red_concrete","minecraft:black_concrete","minecraft:white_concrete_powder","minecraft:orange_concrete_powder","minecraft:magenta_concrete_powder","minecraft:light_blue_concrete_powder","minecraft:yellow_concrete_powder","minecraft:lime_concrete_powder","minecraft:pink_concrete_powder","minecraft:gray_concrete_powder","minecraft:light_gray_concrete_powder","minecraft:cyan_concrete_powder","minecraft:purple_concrete_powder","minecraft:blue_concrete_powder","minecraft:brown_concrete_powder","minecraft:green_concrete_powder","minecraft:red_concrete_powder","minecraft:black_concrete_powder","minecraft:turtle_egg","minecraft:sniffer_egg","minecraft:dried_ghast","minecraft:dead_tube_coral_block","minecraft:dead_brain_coral_block","minecraft:dead_bubble_coral_block","minecraft:dead_fire_coral_block","minecraft:dead_horn_coral_block","minecraft:tube_coral_block","minecraft:brain_coral_block","minecraft:bubble_coral_block","minecraft:fire_coral_block","minecraft:horn_coral_block","minecraft:tube_coral","minecraft:brain_coral","minecraft:bubble_coral","minecraft:fire_coral","minecraft:horn_coral","minecraft:dead_brain_coral","minecraft:dead_bubble_coral","minecraft:dead_fire_coral","minecraft:dead_horn_coral","minecraft:dead_tube_coral","minecraft:tube_coral_fan","minecraft:brain_coral_fan","minecraft:bubble_coral_fan","minecraft:fire_coral_fan","minecraft:horn_coral_fan","minecraft:dead_tube_coral_fan","minecraft:dead_brain_coral_fan","minecraft:dead_bubble_coral_fan","minecraft:dead_fire_coral_fan","minecraft:dead_horn_coral_fan","minecraft:blue_ice","minecraft:conduit","minecraft:polished_granite_stairs","minecraft:smooth_red_sandstone_stairs","minecraft:mossy_stone_brick_stairs","minecraft:polished_diorite_stairs","minecraft:mossy_cobblestone_stairs","minecraft:end_stone_brick_stairs","minecraft:stone_stairs","minecraft:smooth_sandstone_stairs","minecraft:smooth_quartz_stairs","minecraft:granite_stairs","minecraft:andesite_stairs","minecraft:red_nether_brick_stairs","minecraft:polished_andesite_stairs","minecraft:diorite_stairs","minecraft:cobbled_deepslate_stairs","minecraft:polished_deepslate_stairs","minecraft:deepslate_brick_stairs","minecraft:deepslate_tile_stairs","minecraft:polished_granite_slab","minecraft:smooth_red_sandstone_slab","minecraft:mossy_stone_brick_slab","minecraft:polished_diorite_slab","minecraft:mossy_cobblestone_slab","minecraft:end_stone_brick_slab","minecraft:smooth_sandstone_slab","minecraft:smooth_quartz_slab","minecraft:granite_slab","minecraft:andesite_slab","minecraft:red_nether_brick_slab","minecraft:polished_andesite_slab","minecraft:diorite_slab","minecraft:cobbled_deepslate_slab","minecraft:polished_deepslate_slab","minecraft:deepslate_brick_slab","minecraft:deepslate_tile_slab","minecraft:scaffolding","minecraft:redstone","minecraft:redstone_torch","minecraft:redstone_block","minecraft:repeater","minecraft:comparator","minecraft:piston","minecraft:sticky_piston","minecraft:slime_block","minecraft:honey_block","minecraft:observer","minecraft:hopper","minecraft:dispenser","minecraft:dropper","minecraft:lectern","minecraft:target","minecraft:lever","minecraft:lightning_rod","minecraft:exposed_lightning_rod","minecraft:weathered_lightning_rod","minecraft:oxidized_lightning_rod","minecraft:waxed_lightning_rod","minecraft:waxed_exposed_lightning_rod","minecraft:waxed_weathered_lightning_rod","minecraft:waxed_oxidized_lightning_rod","minecraft:daylight_detector","minecraft:sculk_sensor","minecraft:calibrated_sculk_sensor","minecraft:tripwire_hook","minecraft:trapped_chest","minecraft:tnt","minecraft:redstone_lamp","minecraft:note_block","minecraft:stone_button","minecraft:polished_blackstone_button","minecraft:oak_button","minecraft:spruce_button","minecraft:birch_button","minecraft:jungle_button","minecraft:acacia_button","minecraft:cherry_button","minecraft:dark_oak_button","minecraft:pale_oak_button","minecraft:mangrove_button","minecraft:bamboo_button","minecraft:crimson_button","minecraft:warped_button","minecraft:stone_pressure_plate","minecraft:polished_blackstone_pressure_plate","minecraft:light_weighted_pressure_plate","minecraft:heavy_weighted_pressure_plate","minecraft:oak_pressure_plate","minecraft:spruce_pressure_plate","minecraft:birch_pressure_plate","minecraft:jungle_pressure_plate","minecraft:acacia_pressure_plate","minecraft:cherry_pressure_plate","minecraft:dark_oak_pressure_plate","minecraft:pale_oak_pressure_plate","minecraft:mangrove_pressure_plate","minecraft:bamboo_pressure_plate","minecraft:crimson_pressure_plate","minecraft:warped_pressure_plate","minecraft:iron_door","minecraft:oak_door","minecraft:spruce_door","minecraft:birch_door","minecraft:jungle_door","minecraft:acacia_door","minecraft:cherry_door","minecraft:dark_oak_door","minecraft:pale_oak_door","minecraft:mangrove_door","minecraft:bamboo_door","minecraft:crimson_door","minecraft:warped_door","minecraft:copper_door","minecraft:exposed_copper_door","minecraft:weathered_copper_door","minecraft:oxidized_copper_door","minecraft:waxed_copper_door","minecraft:waxed_exposed_copper_door","minecraft:waxed_weathered_copper_door","minecraft:waxed_oxidized_copper_door","minecraft:iron_trapdoor","minecraft:oak_trapdoor","minecraft:spruce_trapdoor","minecraft:birch_trapdoor","minecraft:jungle_trapdoor","minecraft:acacia_trapdoor","minecraft:cherry_trapdoor","minecraft:dark_oak_trapdoor","minecraft:pale_oak_trapdoor","minecraft:mangrove_trapdoor","minecraft:bamboo_trapdoor","minecraft:crimson_trapdoor","minecraft:warped_trapdoor","minecraft:copper_trapdoor","minecraft:exposed_copper_trapdoor","minecraft:weathered_copper_trapdoor","minecraft:oxidized_copper_trapdoor","minecraft:waxed_copper_trapdoor","minecraft:waxed_exposed_copper_trapdoor","minecraft:waxed_weathered_copper_trapdoor","minecraft:waxed_oxidized_copper_trapdoor","minecraft:oak_fence_gate","minecraft:spruce_fence_gate","minecraft:birch_fence_gate","minecraft:jungle_fence_gate","minecraft:acacia_fence_gate","minecraft:cherry_fence_gate","minecraft:dark_oak_fence_gate","minecraft:pale_oak_fence_gate","minecraft:mangrove_fence_gate","minecraft:bamboo_fence_gate","minecraft:crimson_fence_gate","minecraft:warped_fence_gate","minecraft:powered_rail","minecraft:detector_rail","minecraft:rail","minecraft:activator_rail","minecraft:saddle","minecraft:white_harness","minecraft:orange_harness","minecraft:magenta_harness","minecraft:light_blue_harness","minecraft:yellow_harness","minecraft:lime_harness","minecraft:pink_harness","minecraft:gray_harness","minecraft:light_gray_harness","minecraft:cyan_harness","minecraft:purple_harness","minecraft:blue_harness","minecraft:brown_harness","minecraft:green_harness","minecraft:red_harness","minecraft:black_harness","minecraft:minecart","minecraft:chest_minecart","minecraft:furnace_minecart","minecraft:tnt_minecart","minecraft:hopper_minecart","minecraft:carrot_on_a_stick","minecraft:warped_fungus_on_a_stick","minecraft:phantom_membrane","minecraft:elytra","minecraft:oak_boat","minecraft:oak_chest_boat","minecraft:spruce_boat","minecraft:spruce_chest_boat","minecraft:birch_boat","minecraft:birch_chest_boat","minecraft:jungle_boat","minecraft:jungle_chest_boat","minecraft:acacia_boat","minecraft:acacia_chest_boat","minecraft:cherry_boat","minecraft:cherry_chest_boat","minecraft:dark_oak_boat","minecraft:dark_oak_chest_boat","minecraft:pale_oak_boat","minecraft:pale_oak_chest_boat","minecraft:mangrove_boat","minecraft:mangrove_chest_boat","minecraft:bamboo_raft","minecraft:bamboo_chest_raft","minecraft:structure_block","minecraft:jigsaw","minecraft:test_block","minecraft:test_instance_block","minecraft:turtle_helmet","minecraft:turtle_scute","minecraft:armadillo_scute","minecraft:wolf_armor","minecraft:flint_and_steel","minecraft:bowl","minecraft:apple","minecraft:bow","minecraft:arrow","minecraft:coal","minecraft:charcoal","minecraft:diamond","minecraft:emerald","minecraft:lapis_lazuli","minecraft:quartz","minecraft:amethyst_shard","minecraft:raw_iron","minecraft:iron_ingot","minecraft:raw_copper","minecraft:copper_ingot","minecraft:raw_gold","minecraft:gold_ingot","minecraft:netherite_ingot","minecraft:netherite_scrap","minecraft:wooden_sword","minecraft:wooden_shovel","minecraft:wooden_pickaxe","minecraft:wooden_axe","minecraft:wooden_hoe","minecraft:copper_sword","minecraft:copper_shovel","minecraft:copper_pickaxe","minecraft:copper_axe","minecraft:copper_hoe","minecraft:stone_sword","minecraft:stone_shovel","minecraft:stone_pickaxe","minecraft:stone_axe","minecraft:stone_hoe","minecraft:golden_sword","minecraft:golden_shovel","minecraft:golden_pickaxe","minecraft:golden_axe","minecraft:golden_hoe","minecraft:iron_sword","minecraft:iron_shovel","minecraft:iron_pickaxe","minecraft:iron_axe","minecraft:iron_hoe","minecraft:diamond_sword","minecraft:diamond_shovel","minecraft:diamond_pickaxe","minecraft:diamond_axe","minecraft:diamond_hoe","minecraft:netherite_sword","minecraft:netherite_shovel","minecraft:netherite_pickaxe","minecraft:netherite_axe","minecraft:netherite_hoe","minecraft:stick","minecraft:mushroom_stew","minecraft:string","minecraft:feather","minecraft:gunpowder","minecraft:wheat_seeds","minecraft:wheat","minecraft:bread","minecraft:leather_helmet","minecraft:leather_chestplate","minecraft:leather_leggings","minecraft:leather_boots","minecraft:copper_helmet","minecraft:copper_chestplate","minecraft:copper_leggings","minecraft:copper_boots","minecraft:chainmail_helmet","minecraft:chainmail_chestplate","minecraft:chainmail_leggings","minecraft:chainmail_boots","minecraft:iron_helmet","minecraft:iron_chestplate","minecraft:iron_leggings","minecraft:iron_boots","minecraft:diamond_helmet","minecraft:diamond_chestplate","minecraft:diamond_leggings","minecraft:diamond_boots","minecraft:golden_helmet","minecraft:golden_chestplate","minecraft:golden_leggings","minecraft:golden_boots","minecraft:netherite_helmet","minecraft:netherite_chestplate","minecraft:netherite_leggings","minecraft:netherite_boots","minecraft:flint","minecraft:porkchop","minecraft:cooked_porkchop","minecraft:painting","minecraft:golden_apple","minecraft:enchanted_golden_apple","minecraft:oak_sign","minecraft:spruce_sign","minecraft:birch_sign","minecraft:jungle_sign","minecraft:acacia_sign","minecraft:cherry_sign","minecraft:dark_oak_sign","minecraft:pale_oak_sign","minecraft:mangrove_sign","minecraft:bamboo_sign","minecraft:crimson_sign","minecraft:warped_sign","minecraft:oak_hanging_sign","minecraft:spruce_hanging_sign","minecraft:birch_hanging_sign","minecraft:jungle_hanging_sign","minecraft:acacia_hanging_sign","minecraft:cherry_hanging_sign","minecraft:dark_oak_hanging_sign","minecraft:pale_oak_hanging_sign","minecraft:mangrove_hanging_sign","minecraft:bamboo_hanging_sign","minecraft:crimson_hanging_sign","minecraft:warped_hanging_sign","minecraft:bucket","minecraft:water_bucket","minecraft:lava_bucket","minecraft:powder_snow_bucket","minecraft:snowball","minecraft:leather","minecraft:milk_bucket","minecraft:pufferfish_bucket","minecraft:salmon_bucket","minecraft:cod_bucket","minecraft:tropical_fish_bucket","minecraft:axolotl_bucket","minecraft:tadpole_bucket","minecraft:brick","minecraft:clay_ball","minecraft:dried_kelp_block","minecraft:paper","minecraft:book","minecraft:slime_ball","minecraft:egg","minecraft:blue_egg","minecraft:brown_egg","minecraft:compass","minecraft:recovery_compass","minecraft:bundle","minecraft:white_bundle","minecraft:orange_bundle","minecraft:magenta_bundle","minecraft:light_blue_bundle","minecraft:yellow_bundle","minecraft:lime_bundle","minecraft:pink_bundle","minecraft:gray_bundle","minecraft:light_gray_bundle","minecraft:cyan_bundle","minecraft:purple_bundle","minecraft:blue_bundle","minecraft:brown_bundle","minecraft:green_bundle","minecraft:red_bundle","minecraft:black_bundle","minecraft:fishing_rod","minecraft:clock","minecraft:spyglass","minecraft:glowstone_dust","minecraft:cod","minecraft:salmon","minecraft:tropical_fish","minecraft:pufferfish","minecraft:cooked_cod","minecraft:cooked_salmon","minecraft:ink_sac","minecraft:glow_ink_sac","minecraft:cocoa_beans","minecraft:white_dye","minecraft:orange_dye","minecraft:magenta_dye","minecraft:light_blue_dye","minecraft:yellow_dye","minecraft:lime_dye","minecraft:pink_dye","minecraft:gray_dye","minecraft:light_gray_dye","minecraft:cyan_dye","minecraft:purple_dye","minecraft:blue_dye","minecraft:brown_dye","minecraft:green_dye","minecraft:red_dye","minecraft:black_dye","minecraft:bone_meal","minecraft:bone","minecraft:sugar","minecraft:cake","minecraft:white_bed","minecraft:orange_bed","minecraft:magenta_bed","minecraft:light_blue_bed","minecraft:yellow_bed","minecraft:lime_bed","minecraft:pink_bed","minecraft:gray_bed","minecraft:light_gray_bed","minecraft:cyan_bed","minecraft:purple_bed","minecraft:blue_bed","minecraft:brown_bed","minecraft:green_bed","minecraft:red_bed","minecraft:black_bed","minecraft:cookie","minecraft:crafter","minecraft:filled_map","minecraft:shears","minecraft:melon_slice","minecraft:dried_kelp","minecraft:pumpkin_seeds","minecraft:melon_seeds","minecraft:beef","minecraft:cooked_beef","minecraft:chicken","minecraft:cooked_chicken","minecraft:rotten_flesh","minecraft:ender_pearl","minecraft:blaze_rod","minecraft:ghast_tear","minecraft:gold_nugget","minecraft:nether_wart","minecraft:glass_bottle","minecraft:potion","minecraft:spider_eye","minecraft:fermented_spider_eye","minecraft:blaze_powder","minecraft:magma_cream","minecraft:brewing_stand","minecraft:cauldron","minecraft:ender_eye","minecraft:glistering_melon_slice","minecraft:chicken_spawn_egg","minecraft:cow_spawn_egg","minecraft:pig_spawn_egg","minecraft:sheep_spawn_egg","minecraft:camel_spawn_egg","minecraft:donkey_spawn_egg","minecraft:horse_spawn_egg","minecraft:mule_spawn_egg","minecraft:cat_spawn_egg","minecraft:parrot_spawn_egg","minecraft:wolf_spawn_egg","minecraft:armadillo_spawn_egg","minecraft:bat_spawn_egg","minecraft:bee_spawn_egg","minecraft:fox_spawn_egg","minecraft:goat_spawn_egg","minecraft:llama_spawn_egg","minecraft:ocelot_spawn_egg","minecraft:panda_spawn_egg","minecraft:polar_bear_spawn_egg","minecraft:rabbit_spawn_egg","minecraft:axolotl_spawn_egg","minecraft:cod_spawn_egg","minecraft:dolphin_spawn_egg","minecraft:frog_spawn_egg","minecraft:glow_squid_spawn_egg","minecraft:nautilus_spawn_egg","minecraft:pufferfish_spawn_egg","minecraft:salmon_spawn_egg","minecraft:squid_spawn_egg","minecraft:tadpole_spawn_egg","minecraft:tropical_fish_spawn_egg","minecraft:turtle_spawn_egg","minecraft:allay_spawn_egg","minecraft:mooshroom_spawn_egg","minecraft:sniffer_spawn_egg","minecraft:copper_golem_spawn_egg","minecraft:iron_golem_spawn_egg","minecraft:snow_golem_spawn_egg","minecraft:trader_llama_spawn_egg","minecraft:villager_spawn_egg","minecraft:wandering_trader_spawn_egg","minecraft:bogged_spawn_egg","minecraft:camel_husk_spawn_egg","minecraft:drowned_spawn_egg","minecraft:husk_spawn_egg","minecraft:parched_spawn_egg","minecraft:skeleton_spawn_egg","minecraft:skeleton_horse_spawn_egg","minecraft:stray_spawn_egg","minecraft:wither_spawn_egg","minecraft:wither_skeleton_spawn_egg","minecraft:zombie_spawn_egg","minecraft:zombie_horse_spawn_egg","minecraft:zombie_nautilus_spawn_egg","minecraft:zombie_villager_spawn_egg","minecraft:cave_spider_spawn_egg","minecraft:spider_spawn_egg","minecraft:breeze_spawn_egg","minecraft:creaking_spawn_egg","minecraft:creeper_spawn_egg","minecraft:elder_guardian_spawn_egg","minecraft:guardian_spawn_egg","minecraft:phantom_spawn_egg","minecraft:silverfish_spawn_egg","minecraft:slime_spawn_egg","minecraft:warden_spawn_egg","minecraft:witch_spawn_egg","minecraft:evoker_spawn_egg","minecraft:pillager_spawn_egg","minecraft:ravager_spawn_egg","minecraft:vindicator_spawn_egg","minecraft:vex_spawn_egg","minecraft:blaze_spawn_egg","minecraft:ghast_spawn_egg","minecraft:happy_ghast_spawn_egg","minecraft:hoglin_spawn_egg","minecraft:magma_cube_spawn_egg","minecraft:piglin_spawn_egg","minecraft:piglin_brute_spawn_egg","minecraft:strider_spawn_egg","minecraft:zoglin_spawn_egg","minecraft:zombified_piglin_spawn_egg","minecraft:ender_dragon_spawn_egg","minecraft:enderman_spawn_egg","minecraft:endermite_spawn_egg","minecraft:shulker_spawn_egg","minecraft:experience_bottle","minecraft:fire_charge","minecraft:wind_charge","minecraft:writable_book","minecraft:written_book","minecraft:breeze_rod","minecraft:mace","minecraft:item_frame","minecraft:glow_item_frame","minecraft:flower_pot","minecraft:carrot","minecraft:potato","minecraft:baked_potato","minecraft:poisonous_potato","minecraft:map","minecraft:golden_carrot","minecraft:skeleton_skull","minecraft:wither_skeleton_skull","minecraft:player_head","minecraft:zombie_head","minecraft:creeper_head","minecraft:dragon_head","minecraft:piglin_head","minecraft:nether_star","minecraft:pumpkin_pie","minecraft:firework_rocket","minecraft:firework_star","minecraft:enchanted_book","minecraft:nether_brick","minecraft:resin_brick","minecraft:prismarine_shard","minecraft:prismarine_crystals","minecraft:rabbit","minecraft:cooked_rabbit","minecraft:rabbit_stew","minecraft:rabbit_foot","minecraft:rabbit_hide","minecraft:armor_stand","minecraft:copper_horse_armor","minecraft:iron_horse_armor","minecraft:golden_horse_armor","minecraft:diamond_horse_armor","minecraft:netherite_horse_armor","minecraft:leather_horse_armor","minecraft:lead","minecraft:name_tag","minecraft:command_block_minecart","minecraft:mutton","minecraft:cooked_mutton","minecraft:white_banner","minecraft:orange_banner","minecraft:magenta_banner","minecraft:light_blue_banner","minecraft:yellow_banner","minecraft:lime_banner","minecraft:pink_banner","minecraft:gray_banner","minecraft:light_gray_banner","minecraft:cyan_banner","minecraft:purple_banner","minecraft:blue_banner","minecraft:brown_banner","minecraft:green_banner","minecraft:red_banner","minecraft:black_banner","minecraft:end_crystal","minecraft:chorus_fruit","minecraft:popped_chorus_fruit","minecraft:torchflower_seeds","minecraft:pitcher_pod","minecraft:beetroot","minecraft:beetroot_seeds","minecraft:beetroot_soup","minecraft:dragon_breath","minecraft:splash_potion","minecraft:spectral_arrow","minecraft:tipped_arrow","minecraft:lingering_potion","minecraft:shield","minecraft:wooden_spear","minecraft:stone_spear","minecraft:copper_spear","minecraft:iron_spear","minecraft:golden_spear","minecraft:diamond_spear","minecraft:netherite_spear","minecraft:totem_of_undying","minecraft:shulker_shell","minecraft:iron_nugget","minecraft:copper_nugget","minecraft:knowledge_book","minecraft:debug_stick","minecraft:music_disc_13","minecraft:music_disc_cat","minecraft:music_disc_blocks","minecraft:music_disc_chirp","minecraft:music_disc_creator","minecraft:music_disc_creator_music_box","minecraft:music_disc_far","minecraft:music_disc_lava_chicken","minecraft:music_disc_mall","minecraft:music_disc_mellohi","minecraft:music_disc_stal","minecraft:music_disc_strad","minecraft:music_disc_ward","minecraft:music_disc_11","minecraft:music_disc_wait","minecraft:music_disc_otherside","minecraft:music_disc_relic","minecraft:music_disc_5","minecraft:music_disc_pigstep","minecraft:music_disc_precipice","minecraft:music_disc_tears","minecraft:disc_fragment_5","minecraft:trident","minecraft:nautilus_shell","minecraft:iron_nautilus_armor","minecraft:golden_nautilus_armor","minecraft:diamond_nautilus_armor","minecraft:netherite_nautilus_armor","minecraft:copper_nautilus_armor","minecraft:heart_of_the_sea","minecraft:crossbow","minecraft:suspicious_stew","minecraft:loom","minecraft:flower_banner_pattern","minecraft:creeper_banner_pattern","minecraft:skull_banner_pattern","minecraft:mojang_banner_pattern","minecraft:globe_banner_pattern","minecraft:piglin_banner_pattern","minecraft:flow_banner_pattern","minecraft:guster_banner_pattern","minecraft:field_masoned_banner_pattern","minecraft:bordure_indented_banner_pattern","minecraft:goat_horn","minecraft:composter","minecraft:barrel","minecraft:smoker","minecraft:blast_furnace","minecraft:cartography_table","minecraft:fletching_table","minecraft:grindstone","minecraft:smithing_table","minecraft:stonecutter","minecraft:bell","minecraft:lantern","minecraft:soul_lantern","minecraft:copper_lantern","minecraft:exposed_copper_lantern","minecraft:weathered_copper_lantern","minecraft:oxidized_copper_lantern","minecraft:waxed_copper_lantern","minecraft:waxed_exposed_copper_lantern","minecraft:waxed_weathered_copper_lantern","minecraft:waxed_oxidized_copper_lantern","minecraft:sweet_berries","minecraft:glow_berries","minecraft:campfire","minecraft:soul_campfire","minecraft:shroomlight","minecraft:honeycomb","minecraft:bee_nest","minecraft:beehive","minecraft:honey_bottle","minecraft:honeycomb_block","minecraft:lodestone","minecraft:crying_obsidian","minecraft:blackstone","minecraft:blackstone_slab","minecraft:blackstone_stairs","minecraft:gilded_blackstone","minecraft:polished_blackstone","minecraft:polished_blackstone_slab","minecraft:polished_blackstone_stairs","minecraft:chiseled_polished_blackstone","minecraft:polished_blackstone_bricks","minecraft:polished_blackstone_brick_slab","minecraft:polished_blackstone_brick_stairs","minecraft:cracked_polished_blackstone_bricks","minecraft:respawn_anchor","minecraft:candle","minecraft:white_candle","minecraft:orange_candle","minecraft:magenta_candle","minecraft:light_blue_candle","minecraft:yellow_candle","minecraft:lime_candle","minecraft:pink_candle","minecraft:gray_candle","minecraft:light_gray_candle","minecraft:cyan_candle","minecraft:purple_candle","minecraft:blue_candle","minecraft:brown_candle","minecraft:green_candle","minecraft:red_candle","minecraft:black_candle","minecraft:small_amethyst_bud","minecraft:medium_amethyst_bud","minecraft:large_amethyst_bud","minecraft:amethyst_cluster","minecraft:pointed_dripstone","minecraft:ochre_froglight","minecraft:verdant_froglight","minecraft:pearlescent_froglight","minecraft:frogspawn","minecraft:echo_shard","minecraft:brush","minecraft:netherite_upgrade_smithing_template","minecraft:sentry_armor_trim_smithing_template","minecraft:dune_armor_trim_smithing_template","minecraft:coast_armor_trim_smithing_template","minecraft:wild_armor_trim_smithing_template","minecraft:ward_armor_trim_smithing_template","minecraft:eye_armor_trim_smithing_template","minecraft:vex_armor_trim_smithing_template","minecraft:tide_armor_trim_smithing_template","minecraft:snout_armor_trim_smithing_template","minecraft:rib_armor_trim_smithing_template","minecraft:spire_armor_trim_smithing_template","minecraft:wayfinder_armor_trim_smithing_template","minecraft:shaper_armor_trim_smithing_template","minecraft:silence_armor_trim_smithing_template","minecraft:raiser_armor_trim_smithing_template","minecraft:host_armor_trim_smithing_template","minecraft:flow_armor_trim_smithing_template","minecraft:bolt_armor_trim_smithing_template","minecraft:angler_pottery_sherd","minecraft:archer_pottery_sherd","minecraft:arms_up_pottery_sherd","minecraft:blade_pottery_sherd","minecraft:brewer_pottery_sherd","minecraft:burn_pottery_sherd","minecraft:danger_pottery_sherd","minecraft:explorer_pottery_sherd","minecraft:flow_pottery_sherd","minecraft:friend_pottery_sherd","minecraft:guster_pottery_sherd","minecraft:heart_pottery_sherd","minecraft:heartbreak_pottery_sherd","minecraft:howl_pottery_sherd","minecraft:miner_pottery_sherd","minecraft:mourner_pottery_sherd","minecraft:plenty_pottery_sherd","minecraft:prize_pottery_sherd","minecraft:scrape_pottery_sherd","minecraft:sheaf_pottery_sherd","minecraft:shelter_pottery_sherd","minecraft:skull_pottery_sherd","minecraft:snort_pottery_sherd","minecraft:copper_grate","minecraft:exposed_copper_grate","minecraft:weathered_copper_grate","minecraft:oxidized_copper_grate","minecraft:waxed_copper_grate","minecraft:waxed_exposed_copper_grate","minecraft:waxed_weathered_copper_grate","minecraft:waxed_oxidized_copper_grate","minecraft:copper_bulb","minecraft:exposed_copper_bulb","minecraft:weathered_copper_bulb","minecraft:oxidized_copper_bulb","minecraft:waxed_copper_bulb","minecraft:waxed_exposed_copper_bulb","minecraft:waxed_weathered_copper_bulb","minecraft:waxed_oxidized_copper_bulb","minecraft:copper_chest","minecraft:exposed_copper_chest","minecraft:weathered_copper_chest","minecraft:oxidized_copper_chest","minecraft:waxed_copper_chest","minecraft:waxed_exposed_copper_chest","minecraft:waxed_weathered_copper_chest","minecraft:waxed_oxidized_copper_chest","minecraft:copper_golem_statue","minecraft:exposed_copper_golem_statue","minecraft:weathered_copper_golem_statue","minecraft:oxidized_copper_golem_statue","minecraft:waxed_copper_golem_statue","minecraft:waxed_exposed_copper_golem_statue","minecraft:waxed_weathered_copper_golem_statue","minecraft:waxed_oxidized_copper_golem_statue","minecraft:trial_spawner","minecraft:trial_key","minecraft:ominous_trial_key","minecraft:vault","minecraft:ominous_bottle"];
2060impl DefaultableComponent for ItemModel {
2061 fn default_for_item(item: ItemKind) -> Option<Self> {
2062 let value = ITEM_MODEL_VALUES[item as usize];
2063 Some(ItemModel {
2064 resource_location: value.into(),
2065 })
2066 }
2067}
2068#[rustfmt::skip]
2069static ITEM_NAME_VALUES: [&str; 1505] = ["block.minecraft.air","block.minecraft.stone","block.minecraft.granite","block.minecraft.polished_granite","block.minecraft.diorite","block.minecraft.polished_diorite","block.minecraft.andesite","block.minecraft.polished_andesite","block.minecraft.deepslate","block.minecraft.cobbled_deepslate","block.minecraft.polished_deepslate","block.minecraft.calcite","block.minecraft.tuff","block.minecraft.tuff_slab","block.minecraft.tuff_stairs","block.minecraft.tuff_wall","block.minecraft.chiseled_tuff","block.minecraft.polished_tuff","block.minecraft.polished_tuff_slab","block.minecraft.polished_tuff_stairs","block.minecraft.polished_tuff_wall","block.minecraft.tuff_bricks","block.minecraft.tuff_brick_slab","block.minecraft.tuff_brick_stairs","block.minecraft.tuff_brick_wall","block.minecraft.chiseled_tuff_bricks","block.minecraft.dripstone_block","block.minecraft.grass_block","block.minecraft.dirt","block.minecraft.coarse_dirt","block.minecraft.podzol","block.minecraft.rooted_dirt","block.minecraft.mud","block.minecraft.crimson_nylium","block.minecraft.warped_nylium","block.minecraft.cobblestone","block.minecraft.oak_planks","block.minecraft.spruce_planks","block.minecraft.birch_planks","block.minecraft.jungle_planks","block.minecraft.acacia_planks","block.minecraft.cherry_planks","block.minecraft.dark_oak_planks","block.minecraft.pale_oak_planks","block.minecraft.mangrove_planks","block.minecraft.bamboo_planks","block.minecraft.crimson_planks","block.minecraft.warped_planks","block.minecraft.bamboo_mosaic","block.minecraft.oak_sapling","block.minecraft.spruce_sapling","block.minecraft.birch_sapling","block.minecraft.jungle_sapling","block.minecraft.acacia_sapling","block.minecraft.cherry_sapling","block.minecraft.dark_oak_sapling","block.minecraft.pale_oak_sapling","block.minecraft.mangrove_propagule","block.minecraft.bedrock","block.minecraft.sand","block.minecraft.suspicious_sand","block.minecraft.suspicious_gravel","block.minecraft.red_sand","block.minecraft.gravel","block.minecraft.coal_ore","block.minecraft.deepslate_coal_ore","block.minecraft.iron_ore","block.minecraft.deepslate_iron_ore","block.minecraft.copper_ore","block.minecraft.deepslate_copper_ore","block.minecraft.gold_ore","block.minecraft.deepslate_gold_ore","block.minecraft.redstone_ore","block.minecraft.deepslate_redstone_ore","block.minecraft.emerald_ore","block.minecraft.deepslate_emerald_ore","block.minecraft.lapis_ore","block.minecraft.deepslate_lapis_ore","block.minecraft.diamond_ore","block.minecraft.deepslate_diamond_ore","block.minecraft.nether_gold_ore","block.minecraft.nether_quartz_ore","block.minecraft.ancient_debris","block.minecraft.coal_block","block.minecraft.raw_iron_block","block.minecraft.raw_copper_block","block.minecraft.raw_gold_block","block.minecraft.heavy_core","block.minecraft.amethyst_block","block.minecraft.budding_amethyst","block.minecraft.iron_block","block.minecraft.copper_block","block.minecraft.gold_block","block.minecraft.diamond_block","block.minecraft.netherite_block","block.minecraft.exposed_copper","block.minecraft.weathered_copper","block.minecraft.oxidized_copper","block.minecraft.chiseled_copper","block.minecraft.exposed_chiseled_copper","block.minecraft.weathered_chiseled_copper","block.minecraft.oxidized_chiseled_copper","block.minecraft.cut_copper","block.minecraft.exposed_cut_copper","block.minecraft.weathered_cut_copper","block.minecraft.oxidized_cut_copper","block.minecraft.cut_copper_stairs","block.minecraft.exposed_cut_copper_stairs","block.minecraft.weathered_cut_copper_stairs","block.minecraft.oxidized_cut_copper_stairs","block.minecraft.cut_copper_slab","block.minecraft.exposed_cut_copper_slab","block.minecraft.weathered_cut_copper_slab","block.minecraft.oxidized_cut_copper_slab","block.minecraft.waxed_copper_block","block.minecraft.waxed_exposed_copper","block.minecraft.waxed_weathered_copper","block.minecraft.waxed_oxidized_copper","block.minecraft.waxed_chiseled_copper","block.minecraft.waxed_exposed_chiseled_copper","block.minecraft.waxed_weathered_chiseled_copper","block.minecraft.waxed_oxidized_chiseled_copper","block.minecraft.waxed_cut_copper","block.minecraft.waxed_exposed_cut_copper","block.minecraft.waxed_weathered_cut_copper","block.minecraft.waxed_oxidized_cut_copper","block.minecraft.waxed_cut_copper_stairs","block.minecraft.waxed_exposed_cut_copper_stairs","block.minecraft.waxed_weathered_cut_copper_stairs","block.minecraft.waxed_oxidized_cut_copper_stairs","block.minecraft.waxed_cut_copper_slab","block.minecraft.waxed_exposed_cut_copper_slab","block.minecraft.waxed_weathered_cut_copper_slab","block.minecraft.waxed_oxidized_cut_copper_slab","block.minecraft.oak_log","block.minecraft.spruce_log","block.minecraft.birch_log","block.minecraft.jungle_log","block.minecraft.acacia_log","block.minecraft.cherry_log","block.minecraft.pale_oak_log","block.minecraft.dark_oak_log","block.minecraft.mangrove_log","block.minecraft.mangrove_roots","block.minecraft.muddy_mangrove_roots","block.minecraft.crimson_stem","block.minecraft.warped_stem","block.minecraft.bamboo_block","block.minecraft.stripped_oak_log","block.minecraft.stripped_spruce_log","block.minecraft.stripped_birch_log","block.minecraft.stripped_jungle_log","block.minecraft.stripped_acacia_log","block.minecraft.stripped_cherry_log","block.minecraft.stripped_dark_oak_log","block.minecraft.stripped_pale_oak_log","block.minecraft.stripped_mangrove_log","block.minecraft.stripped_crimson_stem","block.minecraft.stripped_warped_stem","block.minecraft.stripped_oak_wood","block.minecraft.stripped_spruce_wood","block.minecraft.stripped_birch_wood","block.minecraft.stripped_jungle_wood","block.minecraft.stripped_acacia_wood","block.minecraft.stripped_cherry_wood","block.minecraft.stripped_dark_oak_wood","block.minecraft.stripped_pale_oak_wood","block.minecraft.stripped_mangrove_wood","block.minecraft.stripped_crimson_hyphae","block.minecraft.stripped_warped_hyphae","block.minecraft.stripped_bamboo_block","block.minecraft.oak_wood","block.minecraft.spruce_wood","block.minecraft.birch_wood","block.minecraft.jungle_wood","block.minecraft.acacia_wood","block.minecraft.cherry_wood","block.minecraft.pale_oak_wood","block.minecraft.dark_oak_wood","block.minecraft.mangrove_wood","block.minecraft.crimson_hyphae","block.minecraft.warped_hyphae","block.minecraft.oak_leaves","block.minecraft.spruce_leaves","block.minecraft.birch_leaves","block.minecraft.jungle_leaves","block.minecraft.acacia_leaves","block.minecraft.cherry_leaves","block.minecraft.dark_oak_leaves","block.minecraft.pale_oak_leaves","block.minecraft.mangrove_leaves","block.minecraft.azalea_leaves","block.minecraft.flowering_azalea_leaves","block.minecraft.sponge","block.minecraft.wet_sponge","block.minecraft.glass","block.minecraft.tinted_glass","block.minecraft.lapis_block","block.minecraft.sandstone","block.minecraft.chiseled_sandstone","block.minecraft.cut_sandstone","block.minecraft.cobweb","block.minecraft.short_grass","block.minecraft.fern","block.minecraft.bush","block.minecraft.azalea","block.minecraft.flowering_azalea","block.minecraft.dead_bush","block.minecraft.firefly_bush","block.minecraft.short_dry_grass","block.minecraft.tall_dry_grass","block.minecraft.seagrass","block.minecraft.sea_pickle","block.minecraft.white_wool","block.minecraft.orange_wool","block.minecraft.magenta_wool","block.minecraft.light_blue_wool","block.minecraft.yellow_wool","block.minecraft.lime_wool","block.minecraft.pink_wool","block.minecraft.gray_wool","block.minecraft.light_gray_wool","block.minecraft.cyan_wool","block.minecraft.purple_wool","block.minecraft.blue_wool","block.minecraft.brown_wool","block.minecraft.green_wool","block.minecraft.red_wool","block.minecraft.black_wool","block.minecraft.dandelion","block.minecraft.open_eyeblossom","block.minecraft.closed_eyeblossom","block.minecraft.poppy","block.minecraft.blue_orchid","block.minecraft.allium","block.minecraft.azure_bluet","block.minecraft.red_tulip","block.minecraft.orange_tulip","block.minecraft.white_tulip","block.minecraft.pink_tulip","block.minecraft.oxeye_daisy","block.minecraft.cornflower","block.minecraft.lily_of_the_valley","block.minecraft.wither_rose","block.minecraft.torchflower","block.minecraft.pitcher_plant","block.minecraft.spore_blossom","block.minecraft.brown_mushroom","block.minecraft.red_mushroom","block.minecraft.crimson_fungus","block.minecraft.warped_fungus","block.minecraft.crimson_roots","block.minecraft.warped_roots","block.minecraft.nether_sprouts","block.minecraft.weeping_vines","block.minecraft.twisting_vines","block.minecraft.sugar_cane","block.minecraft.kelp","block.minecraft.pink_petals","block.minecraft.wildflowers","block.minecraft.leaf_litter","block.minecraft.moss_carpet","block.minecraft.moss_block","block.minecraft.pale_moss_carpet","block.minecraft.pale_hanging_moss","block.minecraft.pale_moss_block","block.minecraft.hanging_roots","block.minecraft.big_dripleaf","block.minecraft.small_dripleaf","block.minecraft.bamboo","block.minecraft.oak_slab","block.minecraft.spruce_slab","block.minecraft.birch_slab","block.minecraft.jungle_slab","block.minecraft.acacia_slab","block.minecraft.cherry_slab","block.minecraft.dark_oak_slab","block.minecraft.pale_oak_slab","block.minecraft.mangrove_slab","block.minecraft.bamboo_slab","block.minecraft.bamboo_mosaic_slab","block.minecraft.crimson_slab","block.minecraft.warped_slab","block.minecraft.stone_slab","block.minecraft.smooth_stone_slab","block.minecraft.sandstone_slab","block.minecraft.cut_sandstone_slab","block.minecraft.petrified_oak_slab","block.minecraft.cobblestone_slab","block.minecraft.brick_slab","block.minecraft.stone_brick_slab","block.minecraft.mud_brick_slab","block.minecraft.nether_brick_slab","block.minecraft.quartz_slab","block.minecraft.red_sandstone_slab","block.minecraft.cut_red_sandstone_slab","block.minecraft.purpur_slab","block.minecraft.prismarine_slab","block.minecraft.prismarine_brick_slab","block.minecraft.dark_prismarine_slab","block.minecraft.smooth_quartz","block.minecraft.smooth_red_sandstone","block.minecraft.smooth_sandstone","block.minecraft.smooth_stone","block.minecraft.bricks","block.minecraft.acacia_shelf","block.minecraft.bamboo_shelf","block.minecraft.birch_shelf","block.minecraft.cherry_shelf","block.minecraft.crimson_shelf","block.minecraft.dark_oak_shelf","block.minecraft.jungle_shelf","block.minecraft.mangrove_shelf","block.minecraft.oak_shelf","block.minecraft.pale_oak_shelf","block.minecraft.spruce_shelf","block.minecraft.warped_shelf","block.minecraft.bookshelf","block.minecraft.chiseled_bookshelf","block.minecraft.decorated_pot","block.minecraft.mossy_cobblestone","block.minecraft.obsidian","block.minecraft.torch","block.minecraft.end_rod","block.minecraft.chorus_plant","block.minecraft.chorus_flower","block.minecraft.purpur_block","block.minecraft.purpur_pillar","block.minecraft.purpur_stairs","block.minecraft.spawner","block.minecraft.creaking_heart","block.minecraft.chest","block.minecraft.crafting_table","block.minecraft.farmland","block.minecraft.furnace","block.minecraft.ladder","block.minecraft.cobblestone_stairs","block.minecraft.snow","block.minecraft.ice","block.minecraft.snow_block","block.minecraft.cactus","block.minecraft.cactus_flower","block.minecraft.clay","block.minecraft.jukebox","block.minecraft.oak_fence","block.minecraft.spruce_fence","block.minecraft.birch_fence","block.minecraft.jungle_fence","block.minecraft.acacia_fence","block.minecraft.cherry_fence","block.minecraft.dark_oak_fence","block.minecraft.pale_oak_fence","block.minecraft.mangrove_fence","block.minecraft.bamboo_fence","block.minecraft.crimson_fence","block.minecraft.warped_fence","block.minecraft.pumpkin","block.minecraft.carved_pumpkin","block.minecraft.jack_o_lantern","block.minecraft.netherrack","block.minecraft.soul_sand","block.minecraft.soul_soil","block.minecraft.basalt","block.minecraft.polished_basalt","block.minecraft.smooth_basalt","block.minecraft.soul_torch","block.minecraft.copper_torch","block.minecraft.glowstone","block.minecraft.infested_stone","block.minecraft.infested_cobblestone","block.minecraft.infested_stone_bricks","block.minecraft.infested_mossy_stone_bricks","block.minecraft.infested_cracked_stone_bricks","block.minecraft.infested_chiseled_stone_bricks","block.minecraft.infested_deepslate","block.minecraft.stone_bricks","block.minecraft.mossy_stone_bricks","block.minecraft.cracked_stone_bricks","block.minecraft.chiseled_stone_bricks","block.minecraft.packed_mud","block.minecraft.mud_bricks","block.minecraft.deepslate_bricks","block.minecraft.cracked_deepslate_bricks","block.minecraft.deepslate_tiles","block.minecraft.cracked_deepslate_tiles","block.minecraft.chiseled_deepslate","block.minecraft.reinforced_deepslate","block.minecraft.brown_mushroom_block","block.minecraft.red_mushroom_block","block.minecraft.mushroom_stem","block.minecraft.iron_bars","block.minecraft.copper_bars","block.minecraft.exposed_copper_bars","block.minecraft.weathered_copper_bars","block.minecraft.oxidized_copper_bars","block.minecraft.waxed_copper_bars","block.minecraft.waxed_exposed_copper_bars","block.minecraft.waxed_weathered_copper_bars","block.minecraft.waxed_oxidized_copper_bars","block.minecraft.iron_chain","block.minecraft.copper_chain","block.minecraft.exposed_copper_chain","block.minecraft.weathered_copper_chain","block.minecraft.oxidized_copper_chain","block.minecraft.waxed_copper_chain","block.minecraft.waxed_exposed_copper_chain","block.minecraft.waxed_weathered_copper_chain","block.minecraft.waxed_oxidized_copper_chain","block.minecraft.glass_pane","block.minecraft.melon","block.minecraft.vine","block.minecraft.glow_lichen","item.minecraft.resin_clump","block.minecraft.resin_block","block.minecraft.resin_bricks","block.minecraft.resin_brick_stairs","block.minecraft.resin_brick_slab","block.minecraft.resin_brick_wall","block.minecraft.chiseled_resin_bricks","block.minecraft.brick_stairs","block.minecraft.stone_brick_stairs","block.minecraft.mud_brick_stairs","block.minecraft.mycelium","block.minecraft.lily_pad","block.minecraft.nether_bricks","block.minecraft.cracked_nether_bricks","block.minecraft.chiseled_nether_bricks","block.minecraft.nether_brick_fence","block.minecraft.nether_brick_stairs","block.minecraft.sculk","block.minecraft.sculk_vein","block.minecraft.sculk_catalyst","block.minecraft.sculk_shrieker","block.minecraft.enchanting_table","block.minecraft.end_portal_frame","block.minecraft.end_stone","block.minecraft.end_stone_bricks","block.minecraft.dragon_egg","block.minecraft.sandstone_stairs","block.minecraft.ender_chest","block.minecraft.emerald_block","block.minecraft.oak_stairs","block.minecraft.spruce_stairs","block.minecraft.birch_stairs","block.minecraft.jungle_stairs","block.minecraft.acacia_stairs","block.minecraft.cherry_stairs","block.minecraft.dark_oak_stairs","block.minecraft.pale_oak_stairs","block.minecraft.mangrove_stairs","block.minecraft.bamboo_stairs","block.minecraft.bamboo_mosaic_stairs","block.minecraft.crimson_stairs","block.minecraft.warped_stairs","block.minecraft.command_block","block.minecraft.beacon","block.minecraft.cobblestone_wall","block.minecraft.mossy_cobblestone_wall","block.minecraft.brick_wall","block.minecraft.prismarine_wall","block.minecraft.red_sandstone_wall","block.minecraft.mossy_stone_brick_wall","block.minecraft.granite_wall","block.minecraft.stone_brick_wall","block.minecraft.mud_brick_wall","block.minecraft.nether_brick_wall","block.minecraft.andesite_wall","block.minecraft.red_nether_brick_wall","block.minecraft.sandstone_wall","block.minecraft.end_stone_brick_wall","block.minecraft.diorite_wall","block.minecraft.blackstone_wall","block.minecraft.polished_blackstone_wall","block.minecraft.polished_blackstone_brick_wall","block.minecraft.cobbled_deepslate_wall","block.minecraft.polished_deepslate_wall","block.minecraft.deepslate_brick_wall","block.minecraft.deepslate_tile_wall","block.minecraft.anvil","block.minecraft.chipped_anvil","block.minecraft.damaged_anvil","block.minecraft.chiseled_quartz_block","block.minecraft.quartz_block","block.minecraft.quartz_bricks","block.minecraft.quartz_pillar","block.minecraft.quartz_stairs","block.minecraft.white_terracotta","block.minecraft.orange_terracotta","block.minecraft.magenta_terracotta","block.minecraft.light_blue_terracotta","block.minecraft.yellow_terracotta","block.minecraft.lime_terracotta","block.minecraft.pink_terracotta","block.minecraft.gray_terracotta","block.minecraft.light_gray_terracotta","block.minecraft.cyan_terracotta","block.minecraft.purple_terracotta","block.minecraft.blue_terracotta","block.minecraft.brown_terracotta","block.minecraft.green_terracotta","block.minecraft.red_terracotta","block.minecraft.black_terracotta","block.minecraft.barrier","block.minecraft.light","block.minecraft.hay_block","block.minecraft.white_carpet","block.minecraft.orange_carpet","block.minecraft.magenta_carpet","block.minecraft.light_blue_carpet","block.minecraft.yellow_carpet","block.minecraft.lime_carpet","block.minecraft.pink_carpet","block.minecraft.gray_carpet","block.minecraft.light_gray_carpet","block.minecraft.cyan_carpet","block.minecraft.purple_carpet","block.minecraft.blue_carpet","block.minecraft.brown_carpet","block.minecraft.green_carpet","block.minecraft.red_carpet","block.minecraft.black_carpet","block.minecraft.terracotta","block.minecraft.packed_ice","block.minecraft.dirt_path","block.minecraft.sunflower","block.minecraft.lilac","block.minecraft.rose_bush","block.minecraft.peony","block.minecraft.tall_grass","block.minecraft.large_fern","block.minecraft.white_stained_glass","block.minecraft.orange_stained_glass","block.minecraft.magenta_stained_glass","block.minecraft.light_blue_stained_glass","block.minecraft.yellow_stained_glass","block.minecraft.lime_stained_glass","block.minecraft.pink_stained_glass","block.minecraft.gray_stained_glass","block.minecraft.light_gray_stained_glass","block.minecraft.cyan_stained_glass","block.minecraft.purple_stained_glass","block.minecraft.blue_stained_glass","block.minecraft.brown_stained_glass","block.minecraft.green_stained_glass","block.minecraft.red_stained_glass","block.minecraft.black_stained_glass","block.minecraft.white_stained_glass_pane","block.minecraft.orange_stained_glass_pane","block.minecraft.magenta_stained_glass_pane","block.minecraft.light_blue_stained_glass_pane","block.minecraft.yellow_stained_glass_pane","block.minecraft.lime_stained_glass_pane","block.minecraft.pink_stained_glass_pane","block.minecraft.gray_stained_glass_pane","block.minecraft.light_gray_stained_glass_pane","block.minecraft.cyan_stained_glass_pane","block.minecraft.purple_stained_glass_pane","block.minecraft.blue_stained_glass_pane","block.minecraft.brown_stained_glass_pane","block.minecraft.green_stained_glass_pane","block.minecraft.red_stained_glass_pane","block.minecraft.black_stained_glass_pane","block.minecraft.prismarine","block.minecraft.prismarine_bricks","block.minecraft.dark_prismarine","block.minecraft.prismarine_stairs","block.minecraft.prismarine_brick_stairs","block.minecraft.dark_prismarine_stairs","block.minecraft.sea_lantern","block.minecraft.red_sandstone","block.minecraft.chiseled_red_sandstone","block.minecraft.cut_red_sandstone","block.minecraft.red_sandstone_stairs","block.minecraft.repeating_command_block","block.minecraft.chain_command_block","block.minecraft.magma_block","block.minecraft.nether_wart_block","block.minecraft.warped_wart_block","block.minecraft.red_nether_bricks","block.minecraft.bone_block","block.minecraft.structure_void","block.minecraft.shulker_box","block.minecraft.white_shulker_box","block.minecraft.orange_shulker_box","block.minecraft.magenta_shulker_box","block.minecraft.light_blue_shulker_box","block.minecraft.yellow_shulker_box","block.minecraft.lime_shulker_box","block.minecraft.pink_shulker_box","block.minecraft.gray_shulker_box","block.minecraft.light_gray_shulker_box","block.minecraft.cyan_shulker_box","block.minecraft.purple_shulker_box","block.minecraft.blue_shulker_box","block.minecraft.brown_shulker_box","block.minecraft.green_shulker_box","block.minecraft.red_shulker_box","block.minecraft.black_shulker_box","block.minecraft.white_glazed_terracotta","block.minecraft.orange_glazed_terracotta","block.minecraft.magenta_glazed_terracotta","block.minecraft.light_blue_glazed_terracotta","block.minecraft.yellow_glazed_terracotta","block.minecraft.lime_glazed_terracotta","block.minecraft.pink_glazed_terracotta","block.minecraft.gray_glazed_terracotta","block.minecraft.light_gray_glazed_terracotta","block.minecraft.cyan_glazed_terracotta","block.minecraft.purple_glazed_terracotta","block.minecraft.blue_glazed_terracotta","block.minecraft.brown_glazed_terracotta","block.minecraft.green_glazed_terracotta","block.minecraft.red_glazed_terracotta","block.minecraft.black_glazed_terracotta","block.minecraft.white_concrete","block.minecraft.orange_concrete","block.minecraft.magenta_concrete","block.minecraft.light_blue_concrete","block.minecraft.yellow_concrete","block.minecraft.lime_concrete","block.minecraft.pink_concrete","block.minecraft.gray_concrete","block.minecraft.light_gray_concrete","block.minecraft.cyan_concrete","block.minecraft.purple_concrete","block.minecraft.blue_concrete","block.minecraft.brown_concrete","block.minecraft.green_concrete","block.minecraft.red_concrete","block.minecraft.black_concrete","block.minecraft.white_concrete_powder","block.minecraft.orange_concrete_powder","block.minecraft.magenta_concrete_powder","block.minecraft.light_blue_concrete_powder","block.minecraft.yellow_concrete_powder","block.minecraft.lime_concrete_powder","block.minecraft.pink_concrete_powder","block.minecraft.gray_concrete_powder","block.minecraft.light_gray_concrete_powder","block.minecraft.cyan_concrete_powder","block.minecraft.purple_concrete_powder","block.minecraft.blue_concrete_powder","block.minecraft.brown_concrete_powder","block.minecraft.green_concrete_powder","block.minecraft.red_concrete_powder","block.minecraft.black_concrete_powder","block.minecraft.turtle_egg","block.minecraft.sniffer_egg","block.minecraft.dried_ghast","block.minecraft.dead_tube_coral_block","block.minecraft.dead_brain_coral_block","block.minecraft.dead_bubble_coral_block","block.minecraft.dead_fire_coral_block","block.minecraft.dead_horn_coral_block","block.minecraft.tube_coral_block","block.minecraft.brain_coral_block","block.minecraft.bubble_coral_block","block.minecraft.fire_coral_block","block.minecraft.horn_coral_block","block.minecraft.tube_coral","block.minecraft.brain_coral","block.minecraft.bubble_coral","block.minecraft.fire_coral","block.minecraft.horn_coral","block.minecraft.dead_brain_coral","block.minecraft.dead_bubble_coral","block.minecraft.dead_fire_coral","block.minecraft.dead_horn_coral","block.minecraft.dead_tube_coral","block.minecraft.tube_coral_fan","block.minecraft.brain_coral_fan","block.minecraft.bubble_coral_fan","block.minecraft.fire_coral_fan","block.minecraft.horn_coral_fan","block.minecraft.dead_tube_coral_fan","block.minecraft.dead_brain_coral_fan","block.minecraft.dead_bubble_coral_fan","block.minecraft.dead_fire_coral_fan","block.minecraft.dead_horn_coral_fan","block.minecraft.blue_ice","block.minecraft.conduit","block.minecraft.polished_granite_stairs","block.minecraft.smooth_red_sandstone_stairs","block.minecraft.mossy_stone_brick_stairs","block.minecraft.polished_diorite_stairs","block.minecraft.mossy_cobblestone_stairs","block.minecraft.end_stone_brick_stairs","block.minecraft.stone_stairs","block.minecraft.smooth_sandstone_stairs","block.minecraft.smooth_quartz_stairs","block.minecraft.granite_stairs","block.minecraft.andesite_stairs","block.minecraft.red_nether_brick_stairs","block.minecraft.polished_andesite_stairs","block.minecraft.diorite_stairs","block.minecraft.cobbled_deepslate_stairs","block.minecraft.polished_deepslate_stairs","block.minecraft.deepslate_brick_stairs","block.minecraft.deepslate_tile_stairs","block.minecraft.polished_granite_slab","block.minecraft.smooth_red_sandstone_slab","block.minecraft.mossy_stone_brick_slab","block.minecraft.polished_diorite_slab","block.minecraft.mossy_cobblestone_slab","block.minecraft.end_stone_brick_slab","block.minecraft.smooth_sandstone_slab","block.minecraft.smooth_quartz_slab","block.minecraft.granite_slab","block.minecraft.andesite_slab","block.minecraft.red_nether_brick_slab","block.minecraft.polished_andesite_slab","block.minecraft.diorite_slab","block.minecraft.cobbled_deepslate_slab","block.minecraft.polished_deepslate_slab","block.minecraft.deepslate_brick_slab","block.minecraft.deepslate_tile_slab","block.minecraft.scaffolding","item.minecraft.redstone","block.minecraft.redstone_torch","block.minecraft.redstone_block","block.minecraft.repeater","block.minecraft.comparator","block.minecraft.piston","block.minecraft.sticky_piston","block.minecraft.slime_block","block.minecraft.honey_block","block.minecraft.observer","block.minecraft.hopper","block.minecraft.dispenser","block.minecraft.dropper","block.minecraft.lectern","block.minecraft.target","block.minecraft.lever","block.minecraft.lightning_rod","block.minecraft.exposed_lightning_rod","block.minecraft.weathered_lightning_rod","block.minecraft.oxidized_lightning_rod","block.minecraft.waxed_lightning_rod","block.minecraft.waxed_exposed_lightning_rod","block.minecraft.waxed_weathered_lightning_rod","block.minecraft.waxed_oxidized_lightning_rod","block.minecraft.daylight_detector","block.minecraft.sculk_sensor","block.minecraft.calibrated_sculk_sensor","block.minecraft.tripwire_hook","block.minecraft.trapped_chest","block.minecraft.tnt","block.minecraft.redstone_lamp","block.minecraft.note_block","block.minecraft.stone_button","block.minecraft.polished_blackstone_button","block.minecraft.oak_button","block.minecraft.spruce_button","block.minecraft.birch_button","block.minecraft.jungle_button","block.minecraft.acacia_button","block.minecraft.cherry_button","block.minecraft.dark_oak_button","block.minecraft.pale_oak_button","block.minecraft.mangrove_button","block.minecraft.bamboo_button","block.minecraft.crimson_button","block.minecraft.warped_button","block.minecraft.stone_pressure_plate","block.minecraft.polished_blackstone_pressure_plate","block.minecraft.light_weighted_pressure_plate","block.minecraft.heavy_weighted_pressure_plate","block.minecraft.oak_pressure_plate","block.minecraft.spruce_pressure_plate","block.minecraft.birch_pressure_plate","block.minecraft.jungle_pressure_plate","block.minecraft.acacia_pressure_plate","block.minecraft.cherry_pressure_plate","block.minecraft.dark_oak_pressure_plate","block.minecraft.pale_oak_pressure_plate","block.minecraft.mangrove_pressure_plate","block.minecraft.bamboo_pressure_plate","block.minecraft.crimson_pressure_plate","block.minecraft.warped_pressure_plate","block.minecraft.iron_door","block.minecraft.oak_door","block.minecraft.spruce_door","block.minecraft.birch_door","block.minecraft.jungle_door","block.minecraft.acacia_door","block.minecraft.cherry_door","block.minecraft.dark_oak_door","block.minecraft.pale_oak_door","block.minecraft.mangrove_door","block.minecraft.bamboo_door","block.minecraft.crimson_door","block.minecraft.warped_door","block.minecraft.copper_door","block.minecraft.exposed_copper_door","block.minecraft.weathered_copper_door","block.minecraft.oxidized_copper_door","block.minecraft.waxed_copper_door","block.minecraft.waxed_exposed_copper_door","block.minecraft.waxed_weathered_copper_door","block.minecraft.waxed_oxidized_copper_door","block.minecraft.iron_trapdoor","block.minecraft.oak_trapdoor","block.minecraft.spruce_trapdoor","block.minecraft.birch_trapdoor","block.minecraft.jungle_trapdoor","block.minecraft.acacia_trapdoor","block.minecraft.cherry_trapdoor","block.minecraft.dark_oak_trapdoor","block.minecraft.pale_oak_trapdoor","block.minecraft.mangrove_trapdoor","block.minecraft.bamboo_trapdoor","block.minecraft.crimson_trapdoor","block.minecraft.warped_trapdoor","block.minecraft.copper_trapdoor","block.minecraft.exposed_copper_trapdoor","block.minecraft.weathered_copper_trapdoor","block.minecraft.oxidized_copper_trapdoor","block.minecraft.waxed_copper_trapdoor","block.minecraft.waxed_exposed_copper_trapdoor","block.minecraft.waxed_weathered_copper_trapdoor","block.minecraft.waxed_oxidized_copper_trapdoor","block.minecraft.oak_fence_gate","block.minecraft.spruce_fence_gate","block.minecraft.birch_fence_gate","block.minecraft.jungle_fence_gate","block.minecraft.acacia_fence_gate","block.minecraft.cherry_fence_gate","block.minecraft.dark_oak_fence_gate","block.minecraft.pale_oak_fence_gate","block.minecraft.mangrove_fence_gate","block.minecraft.bamboo_fence_gate","block.minecraft.crimson_fence_gate","block.minecraft.warped_fence_gate","block.minecraft.powered_rail","block.minecraft.detector_rail","block.minecraft.rail","block.minecraft.activator_rail","item.minecraft.saddle","item.minecraft.white_harness","item.minecraft.orange_harness","item.minecraft.magenta_harness","item.minecraft.light_blue_harness","item.minecraft.yellow_harness","item.minecraft.lime_harness","item.minecraft.pink_harness","item.minecraft.gray_harness","item.minecraft.light_gray_harness","item.minecraft.cyan_harness","item.minecraft.purple_harness","item.minecraft.blue_harness","item.minecraft.brown_harness","item.minecraft.green_harness","item.minecraft.red_harness","item.minecraft.black_harness","item.minecraft.minecart","item.minecraft.chest_minecart","item.minecraft.furnace_minecart","item.minecraft.tnt_minecart","item.minecraft.hopper_minecart","item.minecraft.carrot_on_a_stick","item.minecraft.warped_fungus_on_a_stick","item.minecraft.phantom_membrane","item.minecraft.elytra","item.minecraft.oak_boat","item.minecraft.oak_chest_boat","item.minecraft.spruce_boat","item.minecraft.spruce_chest_boat","item.minecraft.birch_boat","item.minecraft.birch_chest_boat","item.minecraft.jungle_boat","item.minecraft.jungle_chest_boat","item.minecraft.acacia_boat","item.minecraft.acacia_chest_boat","item.minecraft.cherry_boat","item.minecraft.cherry_chest_boat","item.minecraft.dark_oak_boat","item.minecraft.dark_oak_chest_boat","item.minecraft.pale_oak_boat","item.minecraft.pale_oak_chest_boat","item.minecraft.mangrove_boat","item.minecraft.mangrove_chest_boat","item.minecraft.bamboo_raft","item.minecraft.bamboo_chest_raft","block.minecraft.structure_block","block.minecraft.jigsaw","block.minecraft.test_block","block.minecraft.test_instance_block","item.minecraft.turtle_helmet","item.minecraft.turtle_scute","item.minecraft.armadillo_scute","item.minecraft.wolf_armor","item.minecraft.flint_and_steel","item.minecraft.bowl","item.minecraft.apple","item.minecraft.bow","item.minecraft.arrow","item.minecraft.coal","item.minecraft.charcoal","item.minecraft.diamond","item.minecraft.emerald","item.minecraft.lapis_lazuli","item.minecraft.quartz","item.minecraft.amethyst_shard","item.minecraft.raw_iron","item.minecraft.iron_ingot","item.minecraft.raw_copper","item.minecraft.copper_ingot","item.minecraft.raw_gold","item.minecraft.gold_ingot","item.minecraft.netherite_ingot","item.minecraft.netherite_scrap","item.minecraft.wooden_sword","item.minecraft.wooden_shovel","item.minecraft.wooden_pickaxe","item.minecraft.wooden_axe","item.minecraft.wooden_hoe","item.minecraft.copper_sword","item.minecraft.copper_shovel","item.minecraft.copper_pickaxe","item.minecraft.copper_axe","item.minecraft.copper_hoe","item.minecraft.stone_sword","item.minecraft.stone_shovel","item.minecraft.stone_pickaxe","item.minecraft.stone_axe","item.minecraft.stone_hoe","item.minecraft.golden_sword","item.minecraft.golden_shovel","item.minecraft.golden_pickaxe","item.minecraft.golden_axe","item.minecraft.golden_hoe","item.minecraft.iron_sword","item.minecraft.iron_shovel","item.minecraft.iron_pickaxe","item.minecraft.iron_axe","item.minecraft.iron_hoe","item.minecraft.diamond_sword","item.minecraft.diamond_shovel","item.minecraft.diamond_pickaxe","item.minecraft.diamond_axe","item.minecraft.diamond_hoe","item.minecraft.netherite_sword","item.minecraft.netherite_shovel","item.minecraft.netherite_pickaxe","item.minecraft.netherite_axe","item.minecraft.netherite_hoe","item.minecraft.stick","item.minecraft.mushroom_stew","item.minecraft.string","item.minecraft.feather","item.minecraft.gunpowder","item.minecraft.wheat_seeds","item.minecraft.wheat","item.minecraft.bread","item.minecraft.leather_helmet","item.minecraft.leather_chestplate","item.minecraft.leather_leggings","item.minecraft.leather_boots","item.minecraft.copper_helmet","item.minecraft.copper_chestplate","item.minecraft.copper_leggings","item.minecraft.copper_boots","item.minecraft.chainmail_helmet","item.minecraft.chainmail_chestplate","item.minecraft.chainmail_leggings","item.minecraft.chainmail_boots","item.minecraft.iron_helmet","item.minecraft.iron_chestplate","item.minecraft.iron_leggings","item.minecraft.iron_boots","item.minecraft.diamond_helmet","item.minecraft.diamond_chestplate","item.minecraft.diamond_leggings","item.minecraft.diamond_boots","item.minecraft.golden_helmet","item.minecraft.golden_chestplate","item.minecraft.golden_leggings","item.minecraft.golden_boots","item.minecraft.netherite_helmet","item.minecraft.netherite_chestplate","item.minecraft.netherite_leggings","item.minecraft.netherite_boots","item.minecraft.flint","item.minecraft.porkchop","item.minecraft.cooked_porkchop","item.minecraft.painting","item.minecraft.golden_apple","item.minecraft.enchanted_golden_apple","block.minecraft.oak_sign","block.minecraft.spruce_sign","block.minecraft.birch_sign","block.minecraft.jungle_sign","block.minecraft.acacia_sign","block.minecraft.cherry_sign","block.minecraft.dark_oak_sign","block.minecraft.pale_oak_sign","block.minecraft.mangrove_sign","block.minecraft.bamboo_sign","block.minecraft.crimson_sign","block.minecraft.warped_sign","block.minecraft.oak_hanging_sign","block.minecraft.spruce_hanging_sign","block.minecraft.birch_hanging_sign","block.minecraft.jungle_hanging_sign","block.minecraft.acacia_hanging_sign","block.minecraft.cherry_hanging_sign","block.minecraft.dark_oak_hanging_sign","block.minecraft.pale_oak_hanging_sign","block.minecraft.mangrove_hanging_sign","block.minecraft.bamboo_hanging_sign","block.minecraft.crimson_hanging_sign","block.minecraft.warped_hanging_sign","item.minecraft.bucket","item.minecraft.water_bucket","item.minecraft.lava_bucket","item.minecraft.powder_snow_bucket","item.minecraft.snowball","item.minecraft.leather","item.minecraft.milk_bucket","item.minecraft.pufferfish_bucket","item.minecraft.salmon_bucket","item.minecraft.cod_bucket","item.minecraft.tropical_fish_bucket","item.minecraft.axolotl_bucket","item.minecraft.tadpole_bucket","item.minecraft.brick","item.minecraft.clay_ball","block.minecraft.dried_kelp_block","item.minecraft.paper","item.minecraft.book","item.minecraft.slime_ball","item.minecraft.egg","item.minecraft.blue_egg","item.minecraft.brown_egg","item.minecraft.compass","item.minecraft.recovery_compass","item.minecraft.bundle","item.minecraft.white_bundle","item.minecraft.orange_bundle","item.minecraft.magenta_bundle","item.minecraft.light_blue_bundle","item.minecraft.yellow_bundle","item.minecraft.lime_bundle","item.minecraft.pink_bundle","item.minecraft.gray_bundle","item.minecraft.light_gray_bundle","item.minecraft.cyan_bundle","item.minecraft.purple_bundle","item.minecraft.blue_bundle","item.minecraft.brown_bundle","item.minecraft.green_bundle","item.minecraft.red_bundle","item.minecraft.black_bundle","item.minecraft.fishing_rod","item.minecraft.clock","item.minecraft.spyglass","item.minecraft.glowstone_dust","item.minecraft.cod","item.minecraft.salmon","item.minecraft.tropical_fish","item.minecraft.pufferfish","item.minecraft.cooked_cod","item.minecraft.cooked_salmon","item.minecraft.ink_sac","item.minecraft.glow_ink_sac","item.minecraft.cocoa_beans","item.minecraft.white_dye","item.minecraft.orange_dye","item.minecraft.magenta_dye","item.minecraft.light_blue_dye","item.minecraft.yellow_dye","item.minecraft.lime_dye","item.minecraft.pink_dye","item.minecraft.gray_dye","item.minecraft.light_gray_dye","item.minecraft.cyan_dye","item.minecraft.purple_dye","item.minecraft.blue_dye","item.minecraft.brown_dye","item.minecraft.green_dye","item.minecraft.red_dye","item.minecraft.black_dye","item.minecraft.bone_meal","item.minecraft.bone","item.minecraft.sugar","block.minecraft.cake","block.minecraft.white_bed","block.minecraft.orange_bed","block.minecraft.magenta_bed","block.minecraft.light_blue_bed","block.minecraft.yellow_bed","block.minecraft.lime_bed","block.minecraft.pink_bed","block.minecraft.gray_bed","block.minecraft.light_gray_bed","block.minecraft.cyan_bed","block.minecraft.purple_bed","block.minecraft.blue_bed","block.minecraft.brown_bed","block.minecraft.green_bed","block.minecraft.red_bed","block.minecraft.black_bed","item.minecraft.cookie","block.minecraft.crafter","item.minecraft.filled_map","item.minecraft.shears","item.minecraft.melon_slice","item.minecraft.dried_kelp","item.minecraft.pumpkin_seeds","item.minecraft.melon_seeds","item.minecraft.beef","item.minecraft.cooked_beef","item.minecraft.chicken","item.minecraft.cooked_chicken","item.minecraft.rotten_flesh","item.minecraft.ender_pearl","item.minecraft.blaze_rod","item.minecraft.ghast_tear","item.minecraft.gold_nugget","item.minecraft.nether_wart","item.minecraft.glass_bottle","item.minecraft.potion","item.minecraft.spider_eye","item.minecraft.fermented_spider_eye","item.minecraft.blaze_powder","item.minecraft.magma_cream","block.minecraft.brewing_stand","block.minecraft.cauldron","item.minecraft.ender_eye","item.minecraft.glistering_melon_slice","item.minecraft.chicken_spawn_egg","item.minecraft.cow_spawn_egg","item.minecraft.pig_spawn_egg","item.minecraft.sheep_spawn_egg","item.minecraft.camel_spawn_egg","item.minecraft.donkey_spawn_egg","item.minecraft.horse_spawn_egg","item.minecraft.mule_spawn_egg","item.minecraft.cat_spawn_egg","item.minecraft.parrot_spawn_egg","item.minecraft.wolf_spawn_egg","item.minecraft.armadillo_spawn_egg","item.minecraft.bat_spawn_egg","item.minecraft.bee_spawn_egg","item.minecraft.fox_spawn_egg","item.minecraft.goat_spawn_egg","item.minecraft.llama_spawn_egg","item.minecraft.ocelot_spawn_egg","item.minecraft.panda_spawn_egg","item.minecraft.polar_bear_spawn_egg","item.minecraft.rabbit_spawn_egg","item.minecraft.axolotl_spawn_egg","item.minecraft.cod_spawn_egg","item.minecraft.dolphin_spawn_egg","item.minecraft.frog_spawn_egg","item.minecraft.glow_squid_spawn_egg","item.minecraft.nautilus_spawn_egg","item.minecraft.pufferfish_spawn_egg","item.minecraft.salmon_spawn_egg","item.minecraft.squid_spawn_egg","item.minecraft.tadpole_spawn_egg","item.minecraft.tropical_fish_spawn_egg","item.minecraft.turtle_spawn_egg","item.minecraft.allay_spawn_egg","item.minecraft.mooshroom_spawn_egg","item.minecraft.sniffer_spawn_egg","item.minecraft.copper_golem_spawn_egg","item.minecraft.iron_golem_spawn_egg","item.minecraft.snow_golem_spawn_egg","item.minecraft.trader_llama_spawn_egg","item.minecraft.villager_spawn_egg","item.minecraft.wandering_trader_spawn_egg","item.minecraft.bogged_spawn_egg","item.minecraft.camel_husk_spawn_egg","item.minecraft.drowned_spawn_egg","item.minecraft.husk_spawn_egg","item.minecraft.parched_spawn_egg","item.minecraft.skeleton_spawn_egg","item.minecraft.skeleton_horse_spawn_egg","item.minecraft.stray_spawn_egg","item.minecraft.wither_spawn_egg","item.minecraft.wither_skeleton_spawn_egg","item.minecraft.zombie_spawn_egg","item.minecraft.zombie_horse_spawn_egg","item.minecraft.zombie_nautilus_spawn_egg","item.minecraft.zombie_villager_spawn_egg","item.minecraft.cave_spider_spawn_egg","item.minecraft.spider_spawn_egg","item.minecraft.breeze_spawn_egg","item.minecraft.creaking_spawn_egg","item.minecraft.creeper_spawn_egg","item.minecraft.elder_guardian_spawn_egg","item.minecraft.guardian_spawn_egg","item.minecraft.phantom_spawn_egg","item.minecraft.silverfish_spawn_egg","item.minecraft.slime_spawn_egg","item.minecraft.warden_spawn_egg","item.minecraft.witch_spawn_egg","item.minecraft.evoker_spawn_egg","item.minecraft.pillager_spawn_egg","item.minecraft.ravager_spawn_egg","item.minecraft.vindicator_spawn_egg","item.minecraft.vex_spawn_egg","item.minecraft.blaze_spawn_egg","item.minecraft.ghast_spawn_egg","item.minecraft.happy_ghast_spawn_egg","item.minecraft.hoglin_spawn_egg","item.minecraft.magma_cube_spawn_egg","item.minecraft.piglin_spawn_egg","item.minecraft.piglin_brute_spawn_egg","item.minecraft.strider_spawn_egg","item.minecraft.zoglin_spawn_egg","item.minecraft.zombified_piglin_spawn_egg","item.minecraft.ender_dragon_spawn_egg","item.minecraft.enderman_spawn_egg","item.minecraft.endermite_spawn_egg","item.minecraft.shulker_spawn_egg","item.minecraft.experience_bottle","item.minecraft.fire_charge","item.minecraft.wind_charge","item.minecraft.writable_book","item.minecraft.written_book","item.minecraft.breeze_rod","item.minecraft.mace","item.minecraft.item_frame","item.minecraft.glow_item_frame","block.minecraft.flower_pot","item.minecraft.carrot","item.minecraft.potato","item.minecraft.baked_potato","item.minecraft.poisonous_potato","item.minecraft.map","item.minecraft.golden_carrot","block.minecraft.skeleton_skull","block.minecraft.wither_skeleton_skull","block.minecraft.player_head","block.minecraft.zombie_head","block.minecraft.creeper_head","block.minecraft.dragon_head","block.minecraft.piglin_head","item.minecraft.nether_star","item.minecraft.pumpkin_pie","item.minecraft.firework_rocket","item.minecraft.firework_star","item.minecraft.enchanted_book","item.minecraft.nether_brick","item.minecraft.resin_brick","item.minecraft.prismarine_shard","item.minecraft.prismarine_crystals","item.minecraft.rabbit","item.minecraft.cooked_rabbit","item.minecraft.rabbit_stew","item.minecraft.rabbit_foot","item.minecraft.rabbit_hide","item.minecraft.armor_stand","item.minecraft.copper_horse_armor","item.minecraft.iron_horse_armor","item.minecraft.golden_horse_armor","item.minecraft.diamond_horse_armor","item.minecraft.netherite_horse_armor","item.minecraft.leather_horse_armor","item.minecraft.lead","item.minecraft.name_tag","item.minecraft.command_block_minecart","item.minecraft.mutton","item.minecraft.cooked_mutton","block.minecraft.white_banner","block.minecraft.orange_banner","block.minecraft.magenta_banner","block.minecraft.light_blue_banner","block.minecraft.yellow_banner","block.minecraft.lime_banner","block.minecraft.pink_banner","block.minecraft.gray_banner","block.minecraft.light_gray_banner","block.minecraft.cyan_banner","block.minecraft.purple_banner","block.minecraft.blue_banner","block.minecraft.brown_banner","block.minecraft.green_banner","block.minecraft.red_banner","block.minecraft.black_banner","item.minecraft.end_crystal","item.minecraft.chorus_fruit","item.minecraft.popped_chorus_fruit","item.minecraft.torchflower_seeds","item.minecraft.pitcher_pod","item.minecraft.beetroot","item.minecraft.beetroot_seeds","item.minecraft.beetroot_soup","item.minecraft.dragon_breath","item.minecraft.splash_potion","item.minecraft.spectral_arrow","item.minecraft.tipped_arrow","item.minecraft.lingering_potion","item.minecraft.shield","item.minecraft.wooden_spear","item.minecraft.stone_spear","item.minecraft.copper_spear","item.minecraft.iron_spear","item.minecraft.golden_spear","item.minecraft.diamond_spear","item.minecraft.netherite_spear","item.minecraft.totem_of_undying","item.minecraft.shulker_shell","item.minecraft.iron_nugget","item.minecraft.copper_nugget","item.minecraft.knowledge_book","item.minecraft.debug_stick","item.minecraft.music_disc_13","item.minecraft.music_disc_cat","item.minecraft.music_disc_blocks","item.minecraft.music_disc_chirp","item.minecraft.music_disc_creator","item.minecraft.music_disc_creator_music_box","item.minecraft.music_disc_far","item.minecraft.music_disc_lava_chicken","item.minecraft.music_disc_mall","item.minecraft.music_disc_mellohi","item.minecraft.music_disc_stal","item.minecraft.music_disc_strad","item.minecraft.music_disc_ward","item.minecraft.music_disc_11","item.minecraft.music_disc_wait","item.minecraft.music_disc_otherside","item.minecraft.music_disc_relic","item.minecraft.music_disc_5","item.minecraft.music_disc_pigstep","item.minecraft.music_disc_precipice","item.minecraft.music_disc_tears","item.minecraft.disc_fragment_5","item.minecraft.trident","item.minecraft.nautilus_shell","item.minecraft.iron_nautilus_armor","item.minecraft.golden_nautilus_armor","item.minecraft.diamond_nautilus_armor","item.minecraft.netherite_nautilus_armor","item.minecraft.copper_nautilus_armor","item.minecraft.heart_of_the_sea","item.minecraft.crossbow","item.minecraft.suspicious_stew","block.minecraft.loom","item.minecraft.flower_banner_pattern","item.minecraft.creeper_banner_pattern","item.minecraft.skull_banner_pattern","item.minecraft.mojang_banner_pattern","item.minecraft.globe_banner_pattern","item.minecraft.piglin_banner_pattern","item.minecraft.flow_banner_pattern","item.minecraft.guster_banner_pattern","item.minecraft.field_masoned_banner_pattern","item.minecraft.bordure_indented_banner_pattern","item.minecraft.goat_horn","block.minecraft.composter","block.minecraft.barrel","block.minecraft.smoker","block.minecraft.blast_furnace","block.minecraft.cartography_table","block.minecraft.fletching_table","block.minecraft.grindstone","block.minecraft.smithing_table","block.minecraft.stonecutter","block.minecraft.bell","block.minecraft.lantern","block.minecraft.soul_lantern","block.minecraft.copper_lantern","block.minecraft.exposed_copper_lantern","block.minecraft.weathered_copper_lantern","block.minecraft.oxidized_copper_lantern","block.minecraft.waxed_copper_lantern","block.minecraft.waxed_exposed_copper_lantern","block.minecraft.waxed_weathered_copper_lantern","block.minecraft.waxed_oxidized_copper_lantern","item.minecraft.sweet_berries","item.minecraft.glow_berries","block.minecraft.campfire","block.minecraft.soul_campfire","block.minecraft.shroomlight","item.minecraft.honeycomb","block.minecraft.bee_nest","block.minecraft.beehive","item.minecraft.honey_bottle","block.minecraft.honeycomb_block","block.minecraft.lodestone","block.minecraft.crying_obsidian","block.minecraft.blackstone","block.minecraft.blackstone_slab","block.minecraft.blackstone_stairs","block.minecraft.gilded_blackstone","block.minecraft.polished_blackstone","block.minecraft.polished_blackstone_slab","block.minecraft.polished_blackstone_stairs","block.minecraft.chiseled_polished_blackstone","block.minecraft.polished_blackstone_bricks","block.minecraft.polished_blackstone_brick_slab","block.minecraft.polished_blackstone_brick_stairs","block.minecraft.cracked_polished_blackstone_bricks","block.minecraft.respawn_anchor","block.minecraft.candle","block.minecraft.white_candle","block.minecraft.orange_candle","block.minecraft.magenta_candle","block.minecraft.light_blue_candle","block.minecraft.yellow_candle","block.minecraft.lime_candle","block.minecraft.pink_candle","block.minecraft.gray_candle","block.minecraft.light_gray_candle","block.minecraft.cyan_candle","block.minecraft.purple_candle","block.minecraft.blue_candle","block.minecraft.brown_candle","block.minecraft.green_candle","block.minecraft.red_candle","block.minecraft.black_candle","block.minecraft.small_amethyst_bud","block.minecraft.medium_amethyst_bud","block.minecraft.large_amethyst_bud","block.minecraft.amethyst_cluster","block.minecraft.pointed_dripstone","block.minecraft.ochre_froglight","block.minecraft.verdant_froglight","block.minecraft.pearlescent_froglight","block.minecraft.frogspawn","item.minecraft.echo_shard","item.minecraft.brush","item.minecraft.netherite_upgrade_smithing_template","item.minecraft.sentry_armor_trim_smithing_template","item.minecraft.dune_armor_trim_smithing_template","item.minecraft.coast_armor_trim_smithing_template","item.minecraft.wild_armor_trim_smithing_template","item.minecraft.ward_armor_trim_smithing_template","item.minecraft.eye_armor_trim_smithing_template","item.minecraft.vex_armor_trim_smithing_template","item.minecraft.tide_armor_trim_smithing_template","item.minecraft.snout_armor_trim_smithing_template","item.minecraft.rib_armor_trim_smithing_template","item.minecraft.spire_armor_trim_smithing_template","item.minecraft.wayfinder_armor_trim_smithing_template","item.minecraft.shaper_armor_trim_smithing_template","item.minecraft.silence_armor_trim_smithing_template","item.minecraft.raiser_armor_trim_smithing_template","item.minecraft.host_armor_trim_smithing_template","item.minecraft.flow_armor_trim_smithing_template","item.minecraft.bolt_armor_trim_smithing_template","item.minecraft.angler_pottery_sherd","item.minecraft.archer_pottery_sherd","item.minecraft.arms_up_pottery_sherd","item.minecraft.blade_pottery_sherd","item.minecraft.brewer_pottery_sherd","item.minecraft.burn_pottery_sherd","item.minecraft.danger_pottery_sherd","item.minecraft.explorer_pottery_sherd","item.minecraft.flow_pottery_sherd","item.minecraft.friend_pottery_sherd","item.minecraft.guster_pottery_sherd","item.minecraft.heart_pottery_sherd","item.minecraft.heartbreak_pottery_sherd","item.minecraft.howl_pottery_sherd","item.minecraft.miner_pottery_sherd","item.minecraft.mourner_pottery_sherd","item.minecraft.plenty_pottery_sherd","item.minecraft.prize_pottery_sherd","item.minecraft.scrape_pottery_sherd","item.minecraft.sheaf_pottery_sherd","item.minecraft.shelter_pottery_sherd","item.minecraft.skull_pottery_sherd","item.minecraft.snort_pottery_sherd","block.minecraft.copper_grate","block.minecraft.exposed_copper_grate","block.minecraft.weathered_copper_grate","block.minecraft.oxidized_copper_grate","block.minecraft.waxed_copper_grate","block.minecraft.waxed_exposed_copper_grate","block.minecraft.waxed_weathered_copper_grate","block.minecraft.waxed_oxidized_copper_grate","block.minecraft.copper_bulb","block.minecraft.exposed_copper_bulb","block.minecraft.weathered_copper_bulb","block.minecraft.oxidized_copper_bulb","block.minecraft.waxed_copper_bulb","block.minecraft.waxed_exposed_copper_bulb","block.minecraft.waxed_weathered_copper_bulb","block.minecraft.waxed_oxidized_copper_bulb","block.minecraft.copper_chest","block.minecraft.exposed_copper_chest","block.minecraft.weathered_copper_chest","block.minecraft.oxidized_copper_chest","block.minecraft.waxed_copper_chest","block.minecraft.waxed_exposed_copper_chest","block.minecraft.waxed_weathered_copper_chest","block.minecraft.waxed_oxidized_copper_chest","block.minecraft.copper_golem_statue","block.minecraft.exposed_copper_golem_statue","block.minecraft.weathered_copper_golem_statue","block.minecraft.oxidized_copper_golem_statue","block.minecraft.waxed_copper_golem_statue","block.minecraft.waxed_exposed_copper_golem_statue","block.minecraft.waxed_weathered_copper_golem_statue","block.minecraft.waxed_oxidized_copper_golem_statue","block.minecraft.trial_spawner","item.minecraft.trial_key","item.minecraft.ominous_trial_key","block.minecraft.vault","item.minecraft.ominous_bottle"];
2070impl DefaultableComponent for ItemName {
2071 fn default_for_item(item: ItemKind) -> Option<Self> {
2072 let value = ITEM_NAME_VALUES[item as usize];
2073 Some(ItemName {
2074 name: TranslatableComponent::from(value).into(),
2075 })
2076 }
2077}
2078impl DefaultableComponent for Lore {
2079 fn default_for_item(_item: ItemKind) -> Option<Self> {
2080 Some(Lore { lines: vec![] })
2081 }
2082}
2083#[rustfmt::skip]
2084static MAX_STACK_SIZE_VALUES: [i32; 1505] = [64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,64,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,64,64,64,64,1,64,64,1,1,64,64,1,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,64,1,64,64,64,64,64,64,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,64,64,64,64,64,64,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,1,1,1,16,64,1,1,1,1,1,1,1,64,64,64,64,64,64,16,16,16,64,64,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,64,1,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,64,64,64,1,64,64,64,64,64,64,64,64,64,16,64,64,64,64,64,1,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,1,16,64,1,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,1,64,64,64,64,64,64,1,64,64,16,1,1,1,1,1,1,64,64,1,64,64,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,64,64,64,64,64,64,64,1,64,1,64,64,1,1,1,1,1,1,1,1,1,1,64,64,64,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,64,1,64,1,1,1,1,1,64,1,1,64,1,1,1,1,1,1,1,1,1,1,1,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,16,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,1,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64];
2085impl DefaultableComponent for MaxStackSize {
2086 fn default_for_item(item: ItemKind) -> Option<Self> {
2087 let value = MAX_STACK_SIZE_VALUES[item as usize];
2088 Some(MaxStackSize { count: value })
2089 }
2090}
2091impl DefaultableComponent for Rarity {
2092 fn default_for_item(item: ItemKind) -> Option<Self> {
2093 let value = match item {
2094 ItemKind::AnglerPotterySherd => Rarity::Uncommon,
2095 ItemKind::ArcherPotterySherd => Rarity::Uncommon,
2096 ItemKind::ArmsUpPotterySherd => Rarity::Uncommon,
2097 ItemKind::Barrier => Rarity::Epic,
2098 ItemKind::Beacon => Rarity::Rare,
2099 ItemKind::BladePotterySherd => Rarity::Uncommon,
2100 ItemKind::BoltArmorTrimSmithingTemplate => Rarity::Uncommon,
2101 ItemKind::BrewerPotterySherd => Rarity::Uncommon,
2102 ItemKind::BurnPotterySherd => Rarity::Uncommon,
2103 ItemKind::ChainCommandBlock => Rarity::Epic,
2104 ItemKind::ChainmailBoots => Rarity::Uncommon,
2105 ItemKind::ChainmailChestplate => Rarity::Uncommon,
2106 ItemKind::ChainmailHelmet => Rarity::Uncommon,
2107 ItemKind::ChainmailLeggings => Rarity::Uncommon,
2108 ItemKind::CoastArmorTrimSmithingTemplate => Rarity::Uncommon,
2109 ItemKind::CommandBlock => Rarity::Epic,
2110 ItemKind::CommandBlockMinecart => Rarity::Epic,
2111 ItemKind::Conduit => Rarity::Uncommon,
2112 ItemKind::CreeperBannerPattern => Rarity::Uncommon,
2113 ItemKind::CreeperHead => Rarity::Uncommon,
2114 ItemKind::DangerPotterySherd => Rarity::Uncommon,
2115 ItemKind::DebugStick => Rarity::Epic,
2116 ItemKind::DiscFragment5 => Rarity::Uncommon,
2117 ItemKind::DragonBreath => Rarity::Uncommon,
2118 ItemKind::DragonEgg => Rarity::Epic,
2119 ItemKind::DragonHead => Rarity::Epic,
2120 ItemKind::DuneArmorTrimSmithingTemplate => Rarity::Uncommon,
2121 ItemKind::EchoShard => Rarity::Uncommon,
2122 ItemKind::Elytra => Rarity::Epic,
2123 ItemKind::EnchantedBook => Rarity::Rare,
2124 ItemKind::EnchantedGoldenApple => Rarity::Rare,
2125 ItemKind::ExperienceBottle => Rarity::Uncommon,
2126 ItemKind::ExplorerPotterySherd => Rarity::Uncommon,
2127 ItemKind::EyeArmorTrimSmithingTemplate => Rarity::Rare,
2128 ItemKind::FlowArmorTrimSmithingTemplate => Rarity::Uncommon,
2129 ItemKind::FlowBannerPattern => Rarity::Rare,
2130 ItemKind::FlowPotterySherd => Rarity::Uncommon,
2131 ItemKind::FriendPotterySherd => Rarity::Uncommon,
2132 ItemKind::GoatHorn => Rarity::Uncommon,
2133 ItemKind::GusterBannerPattern => Rarity::Rare,
2134 ItemKind::GusterPotterySherd => Rarity::Uncommon,
2135 ItemKind::HeartOfTheSea => Rarity::Uncommon,
2136 ItemKind::HeartPotterySherd => Rarity::Uncommon,
2137 ItemKind::HeartbreakPotterySherd => Rarity::Uncommon,
2138 ItemKind::HeavyCore => Rarity::Epic,
2139 ItemKind::HostArmorTrimSmithingTemplate => Rarity::Uncommon,
2140 ItemKind::HowlPotterySherd => Rarity::Uncommon,
2141 ItemKind::Jigsaw => Rarity::Epic,
2142 ItemKind::KnowledgeBook => Rarity::Epic,
2143 ItemKind::Light => Rarity::Epic,
2144 ItemKind::Mace => Rarity::Epic,
2145 ItemKind::MinerPotterySherd => Rarity::Uncommon,
2146 ItemKind::MojangBannerPattern => Rarity::Rare,
2147 ItemKind::MournerPotterySherd => Rarity::Uncommon,
2148 ItemKind::MusicDisc11 => Rarity::Uncommon,
2149 ItemKind::MusicDisc13 => Rarity::Uncommon,
2150 ItemKind::MusicDisc5 => Rarity::Uncommon,
2151 ItemKind::MusicDiscBlocks => Rarity::Uncommon,
2152 ItemKind::MusicDiscCat => Rarity::Uncommon,
2153 ItemKind::MusicDiscChirp => Rarity::Uncommon,
2154 ItemKind::MusicDiscCreator => Rarity::Rare,
2155 ItemKind::MusicDiscCreatorMusicBox => Rarity::Uncommon,
2156 ItemKind::MusicDiscFar => Rarity::Uncommon,
2157 ItemKind::MusicDiscLavaChicken => Rarity::Rare,
2158 ItemKind::MusicDiscMall => Rarity::Uncommon,
2159 ItemKind::MusicDiscMellohi => Rarity::Uncommon,
2160 ItemKind::MusicDiscOtherside => Rarity::Rare,
2161 ItemKind::MusicDiscPigstep => Rarity::Rare,
2162 ItemKind::MusicDiscPrecipice => Rarity::Uncommon,
2163 ItemKind::MusicDiscRelic => Rarity::Uncommon,
2164 ItemKind::MusicDiscStal => Rarity::Uncommon,
2165 ItemKind::MusicDiscStrad => Rarity::Uncommon,
2166 ItemKind::MusicDiscTears => Rarity::Uncommon,
2167 ItemKind::MusicDiscWait => Rarity::Uncommon,
2168 ItemKind::MusicDiscWard => Rarity::Uncommon,
2169 ItemKind::NautilusShell => Rarity::Uncommon,
2170 ItemKind::NetherStar => Rarity::Rare,
2171 ItemKind::NetheriteUpgradeSmithingTemplate => Rarity::Uncommon,
2172 ItemKind::OminousBottle => Rarity::Uncommon,
2173 ItemKind::PiglinBannerPattern => Rarity::Uncommon,
2174 ItemKind::PiglinHead => Rarity::Uncommon,
2175 ItemKind::PlayerHead => Rarity::Uncommon,
2176 ItemKind::PlentyPotterySherd => Rarity::Uncommon,
2177 ItemKind::PrizePotterySherd => Rarity::Uncommon,
2178 ItemKind::RaiserArmorTrimSmithingTemplate => Rarity::Uncommon,
2179 ItemKind::RecoveryCompass => Rarity::Uncommon,
2180 ItemKind::RepeatingCommandBlock => Rarity::Epic,
2181 ItemKind::RibArmorTrimSmithingTemplate => Rarity::Uncommon,
2182 ItemKind::ScrapePotterySherd => Rarity::Uncommon,
2183 ItemKind::SentryArmorTrimSmithingTemplate => Rarity::Uncommon,
2184 ItemKind::ShaperArmorTrimSmithingTemplate => Rarity::Uncommon,
2185 ItemKind::SheafPotterySherd => Rarity::Uncommon,
2186 ItemKind::ShelterPotterySherd => Rarity::Uncommon,
2187 ItemKind::SilenceArmorTrimSmithingTemplate => Rarity::Epic,
2188 ItemKind::SkeletonSkull => Rarity::Uncommon,
2189 ItemKind::SkullBannerPattern => Rarity::Rare,
2190 ItemKind::SkullPotterySherd => Rarity::Uncommon,
2191 ItemKind::SnifferEgg => Rarity::Uncommon,
2192 ItemKind::SnortPotterySherd => Rarity::Uncommon,
2193 ItemKind::SnoutArmorTrimSmithingTemplate => Rarity::Uncommon,
2194 ItemKind::SpireArmorTrimSmithingTemplate => Rarity::Rare,
2195 ItemKind::StructureBlock => Rarity::Epic,
2196 ItemKind::StructureVoid => Rarity::Epic,
2197 ItemKind::TestBlock => Rarity::Epic,
2198 ItemKind::TestInstanceBlock => Rarity::Epic,
2199 ItemKind::TideArmorTrimSmithingTemplate => Rarity::Uncommon,
2200 ItemKind::TotemOfUndying => Rarity::Uncommon,
2201 ItemKind::Trident => Rarity::Rare,
2202 ItemKind::VexArmorTrimSmithingTemplate => Rarity::Rare,
2203 ItemKind::WardArmorTrimSmithingTemplate => Rarity::Rare,
2204 ItemKind::WayfinderArmorTrimSmithingTemplate => Rarity::Uncommon,
2205 ItemKind::WildArmorTrimSmithingTemplate => Rarity::Uncommon,
2206 ItemKind::WitherSkeletonSkull => Rarity::Rare,
2207 ItemKind::ZombieHead => Rarity::Uncommon,
2208 _ => Rarity::Common,
2209 };
2210 Some(value)
2211 }
2212}
2213impl DefaultableComponent for RepairCost {
2214 fn default_for_item(_item: ItemKind) -> Option<Self> {
2215 Some(RepairCost { cost: 0 })
2216 }
2217}
2218impl DefaultableComponent for SwingAnimation {
2219 fn default_for_item(item: ItemKind) -> Option<Self> {
2220 let value = match item {
2221 ItemKind::CopperSpear => SwingAnimation {
2222 kind: SwingAnimationKind::Stab,
2223 duration: 17,
2224 },
2225 ItemKind::DiamondSpear => SwingAnimation {
2226 kind: SwingAnimationKind::Stab,
2227 duration: 21,
2228 },
2229 ItemKind::GoldenSpear => SwingAnimation {
2230 kind: SwingAnimationKind::Stab,
2231 duration: 19,
2232 },
2233 ItemKind::IronSpear => SwingAnimation {
2234 kind: SwingAnimationKind::Stab,
2235 duration: 19,
2236 },
2237 ItemKind::NetheriteSpear => SwingAnimation {
2238 kind: SwingAnimationKind::Stab,
2239 duration: 23,
2240 },
2241 ItemKind::StoneSpear => SwingAnimation {
2242 kind: SwingAnimationKind::Stab,
2243 duration: 15,
2244 },
2245 ItemKind::WoodenSpear => SwingAnimation {
2246 kind: SwingAnimationKind::Stab,
2247 duration: 13,
2248 },
2249 _ => SwingAnimation::new(),
2250 };
2251 Some(value)
2252 }
2253}
2254impl DefaultableComponent for TooltipDisplay {
2255 fn default_for_item(_item: ItemKind) -> Option<Self> {
2256 Some(TooltipDisplay::new())
2257 }
2258}
2259impl DefaultableComponent for UseEffects {
2260 fn default_for_item(item: ItemKind) -> Option<Self> {
2261 let value = match item {
2262 ItemKind::CopperSpear => UseEffects {
2263 can_sprint: true,
2264 interact_vibrations: false,
2265 speed_multiplier: 1.0,
2266 },
2267 ItemKind::DiamondSpear => UseEffects {
2268 can_sprint: true,
2269 interact_vibrations: false,
2270 speed_multiplier: 1.0,
2271 },
2272 ItemKind::GoldenSpear => UseEffects {
2273 can_sprint: true,
2274 interact_vibrations: false,
2275 speed_multiplier: 1.0,
2276 },
2277 ItemKind::IronSpear => UseEffects {
2278 can_sprint: true,
2279 interact_vibrations: false,
2280 speed_multiplier: 1.0,
2281 },
2282 ItemKind::NetheriteSpear => UseEffects {
2283 can_sprint: true,
2284 interact_vibrations: false,
2285 speed_multiplier: 1.0,
2286 },
2287 ItemKind::StoneSpear => UseEffects {
2288 can_sprint: true,
2289 interact_vibrations: false,
2290 speed_multiplier: 1.0,
2291 },
2292 ItemKind::WoodenSpear => UseEffects {
2293 can_sprint: true,
2294 interact_vibrations: false,
2295 speed_multiplier: 1.0,
2296 },
2297 _ => UseEffects::new(),
2298 };
2299 Some(value)
2300 }
2301}
2302impl DefaultableComponent for Container {
2303 fn default_for_item(item: ItemKind) -> Option<Self> {
2304 let value = match item {
2305 ItemKind::AcaciaShelf => vec![],
2306 ItemKind::BambooShelf => vec![],
2307 ItemKind::Barrel => vec![],
2308 ItemKind::BirchShelf => vec![],
2309 ItemKind::BlackShulkerBox => vec![],
2310 ItemKind::BlastFurnace => vec![],
2311 ItemKind::BlueShulkerBox => vec![],
2312 ItemKind::BrewingStand => vec![],
2313 ItemKind::BrownShulkerBox => vec![],
2314 ItemKind::Campfire => vec![],
2315 ItemKind::CherryShelf => vec![],
2316 ItemKind::Chest => vec![],
2317 ItemKind::ChiseledBookshelf => vec![],
2318 ItemKind::Crafter => vec![],
2319 ItemKind::CrimsonShelf => vec![],
2320 ItemKind::CyanShulkerBox => vec![],
2321 ItemKind::DarkOakShelf => vec![],
2322 ItemKind::DecoratedPot => vec![],
2323 ItemKind::Dispenser => vec![],
2324 ItemKind::Dropper => vec![],
2325 ItemKind::Furnace => vec![],
2326 ItemKind::GrayShulkerBox => vec![],
2327 ItemKind::GreenShulkerBox => vec![],
2328 ItemKind::Hopper => vec![],
2329 ItemKind::JungleShelf => vec![],
2330 ItemKind::LightBlueShulkerBox => vec![],
2331 ItemKind::LightGrayShulkerBox => vec![],
2332 ItemKind::LimeShulkerBox => vec![],
2333 ItemKind::MagentaShulkerBox => vec![],
2334 ItemKind::MangroveShelf => vec![],
2335 ItemKind::OakShelf => vec![],
2336 ItemKind::OrangeShulkerBox => vec![],
2337 ItemKind::PaleOakShelf => vec![],
2338 ItemKind::PinkShulkerBox => vec![],
2339 ItemKind::PurpleShulkerBox => vec![],
2340 ItemKind::RedShulkerBox => vec![],
2341 ItemKind::ShulkerBox => vec![],
2342 ItemKind::Smoker => vec![],
2343 ItemKind::SoulCampfire => vec![],
2344 ItemKind::SpruceShelf => vec![],
2345 ItemKind::TrappedChest => vec![],
2346 ItemKind::WarpedShelf => vec![],
2347 ItemKind::WhiteShulkerBox => vec![],
2348 ItemKind::YellowShulkerBox => vec![],
2349 _ => return None,
2350 };
2351 Some(Container { items: value })
2352 }
2353}
2354impl DefaultableComponent for EntityData {
2355 fn default_for_item(item: ItemKind) -> Option<Self> {
2356 let value = match item {
2357 ItemKind::AllaySpawnEgg => EntityKind::Allay,
2358 ItemKind::ArmadilloSpawnEgg => EntityKind::Armadillo,
2359 ItemKind::AxolotlSpawnEgg => EntityKind::Axolotl,
2360 ItemKind::BatSpawnEgg => EntityKind::Bat,
2361 ItemKind::BeeSpawnEgg => EntityKind::Bee,
2362 ItemKind::BlazeSpawnEgg => EntityKind::Blaze,
2363 ItemKind::BoggedSpawnEgg => EntityKind::Bogged,
2364 ItemKind::BreezeSpawnEgg => EntityKind::Breeze,
2365 ItemKind::CamelHuskSpawnEgg => EntityKind::CamelHusk,
2366 ItemKind::CamelSpawnEgg => EntityKind::Camel,
2367 ItemKind::CatSpawnEgg => EntityKind::Cat,
2368 ItemKind::CaveSpiderSpawnEgg => EntityKind::CaveSpider,
2369 ItemKind::ChickenSpawnEgg => EntityKind::Chicken,
2370 ItemKind::CodSpawnEgg => EntityKind::Cod,
2371 ItemKind::CopperGolemSpawnEgg => EntityKind::CopperGolem,
2372 ItemKind::CowSpawnEgg => EntityKind::Cow,
2373 ItemKind::CreakingSpawnEgg => EntityKind::Creaking,
2374 ItemKind::CreeperSpawnEgg => EntityKind::Creeper,
2375 ItemKind::DolphinSpawnEgg => EntityKind::Dolphin,
2376 ItemKind::DonkeySpawnEgg => EntityKind::Donkey,
2377 ItemKind::DrownedSpawnEgg => EntityKind::Drowned,
2378 ItemKind::ElderGuardianSpawnEgg => EntityKind::ElderGuardian,
2379 ItemKind::EnderDragonSpawnEgg => EntityKind::EnderDragon,
2380 ItemKind::EndermanSpawnEgg => EntityKind::Enderman,
2381 ItemKind::EndermiteSpawnEgg => EntityKind::Endermite,
2382 ItemKind::EvokerSpawnEgg => EntityKind::Evoker,
2383 ItemKind::FoxSpawnEgg => EntityKind::Fox,
2384 ItemKind::FrogSpawnEgg => EntityKind::Frog,
2385 ItemKind::GhastSpawnEgg => EntityKind::Ghast,
2386 ItemKind::GlowSquidSpawnEgg => EntityKind::GlowSquid,
2387 ItemKind::GoatSpawnEgg => EntityKind::Goat,
2388 ItemKind::GuardianSpawnEgg => EntityKind::Guardian,
2389 ItemKind::HappyGhastSpawnEgg => EntityKind::HappyGhast,
2390 ItemKind::HoglinSpawnEgg => EntityKind::Hoglin,
2391 ItemKind::HorseSpawnEgg => EntityKind::Horse,
2392 ItemKind::HuskSpawnEgg => EntityKind::Husk,
2393 ItemKind::IronGolemSpawnEgg => EntityKind::IronGolem,
2394 ItemKind::LlamaSpawnEgg => EntityKind::Llama,
2395 ItemKind::MagmaCubeSpawnEgg => EntityKind::MagmaCube,
2396 ItemKind::MooshroomSpawnEgg => EntityKind::Mooshroom,
2397 ItemKind::MuleSpawnEgg => EntityKind::Mule,
2398 ItemKind::NautilusSpawnEgg => EntityKind::Nautilus,
2399 ItemKind::OcelotSpawnEgg => EntityKind::Ocelot,
2400 ItemKind::PandaSpawnEgg => EntityKind::Panda,
2401 ItemKind::ParchedSpawnEgg => EntityKind::Parched,
2402 ItemKind::ParrotSpawnEgg => EntityKind::Parrot,
2403 ItemKind::PhantomSpawnEgg => EntityKind::Phantom,
2404 ItemKind::PigSpawnEgg => EntityKind::Pig,
2405 ItemKind::PiglinBruteSpawnEgg => EntityKind::PiglinBrute,
2406 ItemKind::PiglinSpawnEgg => EntityKind::Piglin,
2407 ItemKind::PillagerSpawnEgg => EntityKind::Pillager,
2408 ItemKind::PolarBearSpawnEgg => EntityKind::PolarBear,
2409 ItemKind::PufferfishSpawnEgg => EntityKind::Pufferfish,
2410 ItemKind::RabbitSpawnEgg => EntityKind::Rabbit,
2411 ItemKind::RavagerSpawnEgg => EntityKind::Ravager,
2412 ItemKind::SalmonSpawnEgg => EntityKind::Salmon,
2413 ItemKind::SheepSpawnEgg => EntityKind::Sheep,
2414 ItemKind::ShulkerSpawnEgg => EntityKind::Shulker,
2415 ItemKind::SilverfishSpawnEgg => EntityKind::Silverfish,
2416 ItemKind::SkeletonHorseSpawnEgg => EntityKind::SkeletonHorse,
2417 ItemKind::SkeletonSpawnEgg => EntityKind::Skeleton,
2418 ItemKind::SlimeSpawnEgg => EntityKind::Slime,
2419 ItemKind::SnifferSpawnEgg => EntityKind::Sniffer,
2420 ItemKind::SnowGolemSpawnEgg => EntityKind::SnowGolem,
2421 ItemKind::SpiderSpawnEgg => EntityKind::Spider,
2422 ItemKind::SquidSpawnEgg => EntityKind::Squid,
2423 ItemKind::StraySpawnEgg => EntityKind::Stray,
2424 ItemKind::StriderSpawnEgg => EntityKind::Strider,
2425 ItemKind::TadpoleSpawnEgg => EntityKind::Tadpole,
2426 ItemKind::TraderLlamaSpawnEgg => EntityKind::TraderLlama,
2427 ItemKind::TropicalFishSpawnEgg => EntityKind::TropicalFish,
2428 ItemKind::TurtleSpawnEgg => EntityKind::Turtle,
2429 ItemKind::VexSpawnEgg => EntityKind::Vex,
2430 ItemKind::VillagerSpawnEgg => EntityKind::Villager,
2431 ItemKind::VindicatorSpawnEgg => EntityKind::Vindicator,
2432 ItemKind::WanderingTraderSpawnEgg => EntityKind::WanderingTrader,
2433 ItemKind::WardenSpawnEgg => EntityKind::Warden,
2434 ItemKind::WitchSpawnEgg => EntityKind::Witch,
2435 ItemKind::WitherSkeletonSpawnEgg => EntityKind::WitherSkeleton,
2436 ItemKind::WitherSpawnEgg => EntityKind::Wither,
2437 ItemKind::WolfSpawnEgg => EntityKind::Wolf,
2438 ItemKind::ZoglinSpawnEgg => EntityKind::Zoglin,
2439 ItemKind::ZombieHorseSpawnEgg => EntityKind::ZombieHorse,
2440 ItemKind::ZombieNautilusSpawnEgg => EntityKind::ZombieNautilus,
2441 ItemKind::ZombieSpawnEgg => EntityKind::Zombie,
2442 ItemKind::ZombieVillagerSpawnEgg => EntityKind::ZombieVillager,
2443 ItemKind::ZombifiedPiglinSpawnEgg => EntityKind::ZombifiedPiglin,
2444 _ => return None,
2445 };
2446 Some(EntityData {
2447 kind: value,
2448 data: NbtCompound::new(),
2449 })
2450 }
2451}
2452impl DefaultableComponent for ProvidesTrimMaterial {
2453 fn default_for_item(item: ItemKind) -> Option<Self> {
2454 let value = match item {
2455 ItemKind::AmethystShard => {
2456 ProvidesTrimMaterial::Referenced("minecraft:amethyst".into())
2457 }
2458 ItemKind::CopperIngot => ProvidesTrimMaterial::Referenced("minecraft:copper".into()),
2459 ItemKind::Diamond => ProvidesTrimMaterial::Referenced("minecraft:diamond".into()),
2460 ItemKind::Emerald => ProvidesTrimMaterial::Referenced("minecraft:emerald".into()),
2461 ItemKind::GoldIngot => ProvidesTrimMaterial::Referenced("minecraft:gold".into()),
2462 ItemKind::IronIngot => ProvidesTrimMaterial::Referenced("minecraft:iron".into()),
2463 ItemKind::LapisLazuli => ProvidesTrimMaterial::Referenced("minecraft:lapis".into()),
2464 ItemKind::NetheriteIngot => {
2465 ProvidesTrimMaterial::Referenced("minecraft:netherite".into())
2466 }
2467 ItemKind::Quartz => ProvidesTrimMaterial::Referenced("minecraft:quartz".into()),
2468 ItemKind::Redstone => ProvidesTrimMaterial::Referenced("minecraft:redstone".into()),
2469 ItemKind::ResinBrick => ProvidesTrimMaterial::Referenced("minecraft:resin".into()),
2470 _ => return None,
2471 };
2472 Some(value)
2473 }
2474}
2475impl DefaultableComponent for DamageResistant {
2476 fn default_for_item(item: ItemKind) -> Option<Self> {
2477 let value = match item {
2478 ItemKind::AncientDebris => "#minecraft:is_fire".into(),
2479 ItemKind::NetherStar => "#minecraft:is_explosion".into(),
2480 ItemKind::NetheriteAxe => "#minecraft:is_fire".into(),
2481 ItemKind::NetheriteBlock => "#minecraft:is_fire".into(),
2482 ItemKind::NetheriteBoots => "#minecraft:is_fire".into(),
2483 ItemKind::NetheriteChestplate => "#minecraft:is_fire".into(),
2484 ItemKind::NetheriteHelmet => "#minecraft:is_fire".into(),
2485 ItemKind::NetheriteHoe => "#minecraft:is_fire".into(),
2486 ItemKind::NetheriteHorseArmor => "#minecraft:is_fire".into(),
2487 ItemKind::NetheriteIngot => "#minecraft:is_fire".into(),
2488 ItemKind::NetheriteLeggings => "#minecraft:is_fire".into(),
2489 ItemKind::NetheriteNautilusArmor => "#minecraft:is_fire".into(),
2490 ItemKind::NetheritePickaxe => "#minecraft:is_fire".into(),
2491 ItemKind::NetheriteScrap => "#minecraft:is_fire".into(),
2492 ItemKind::NetheriteShovel => "#minecraft:is_fire".into(),
2493 ItemKind::NetheriteSpear => "#minecraft:is_fire".into(),
2494 ItemKind::NetheriteSword => "#minecraft:is_fire".into(),
2495 _ => return None,
2496 };
2497 Some(DamageResistant { types: value })
2498 }
2499}
2500impl DefaultableComponent for Consumable {
2501 fn default_for_item(item: ItemKind) -> Option<Self> {
2502 let value = match item {
2503 ItemKind::Apple => Consumable::new(),
2504 ItemKind::BakedPotato => Consumable::new(),
2505 ItemKind::Beef => Consumable::new(),
2506 ItemKind::Beetroot => Consumable::new(),
2507 ItemKind::BeetrootSoup => Consumable::new(),
2508 ItemKind::Bread => Consumable::new(),
2509 ItemKind::Carrot => Consumable::new(),
2510 ItemKind::Chicken => Consumable {
2511 on_consume_effects: vec![ConsumeEffect::ApplyEffects {
2512 effects: vec![MobEffectInstance {
2513 id: MobEffect::Hunger,
2514 details: MobEffectDetails {
2515 duration: 600,
2516 show_icon: true,
2517 ..MobEffectDetails::new()
2518 },
2519 }],
2520 probability: 0.3,
2521 }],
2522 ..Consumable::new()
2523 },
2524 ItemKind::ChorusFruit => Consumable {
2525 on_consume_effects: vec![ConsumeEffect::TeleportRandomly { diameter: 16.0 }],
2526 ..Consumable::new()
2527 },
2528 ItemKind::Cod => Consumable::new(),
2529 ItemKind::CookedBeef => Consumable::new(),
2530 ItemKind::CookedChicken => Consumable::new(),
2531 ItemKind::CookedCod => Consumable::new(),
2532 ItemKind::CookedMutton => Consumable::new(),
2533 ItemKind::CookedPorkchop => Consumable::new(),
2534 ItemKind::CookedRabbit => Consumable::new(),
2535 ItemKind::CookedSalmon => Consumable::new(),
2536 ItemKind::Cookie => Consumable::new(),
2537 ItemKind::DriedKelp => Consumable {
2538 consume_seconds: 0.8,
2539 ..Consumable::new()
2540 },
2541 ItemKind::EnchantedGoldenApple => Consumable {
2542 on_consume_effects: vec![ConsumeEffect::ApplyEffects {
2543 effects: vec![
2544 MobEffectInstance {
2545 id: MobEffect::Regeneration,
2546 details: MobEffectDetails {
2547 amplifier: 1,
2548 duration: 400,
2549 show_icon: true,
2550 ..MobEffectDetails::new()
2551 },
2552 },
2553 MobEffectInstance {
2554 id: MobEffect::Resistance,
2555 details: MobEffectDetails {
2556 duration: 6000,
2557 show_icon: true,
2558 ..MobEffectDetails::new()
2559 },
2560 },
2561 MobEffectInstance {
2562 id: MobEffect::FireResistance,
2563 details: MobEffectDetails {
2564 duration: 6000,
2565 show_icon: true,
2566 ..MobEffectDetails::new()
2567 },
2568 },
2569 MobEffectInstance {
2570 id: MobEffect::Absorption,
2571 details: MobEffectDetails {
2572 amplifier: 3,
2573 duration: 2400,
2574 show_icon: true,
2575 ..MobEffectDetails::new()
2576 },
2577 },
2578 ],
2579 probability: 1.0,
2580 }],
2581 ..Consumable::new()
2582 },
2583 ItemKind::GlowBerries => Consumable::new(),
2584 ItemKind::GoldenApple => Consumable {
2585 on_consume_effects: vec![ConsumeEffect::ApplyEffects {
2586 effects: vec![
2587 MobEffectInstance {
2588 id: MobEffect::Regeneration,
2589 details: MobEffectDetails {
2590 amplifier: 1,
2591 duration: 100,
2592 show_icon: true,
2593 ..MobEffectDetails::new()
2594 },
2595 },
2596 MobEffectInstance {
2597 id: MobEffect::Absorption,
2598 details: MobEffectDetails {
2599 duration: 2400,
2600 show_icon: true,
2601 ..MobEffectDetails::new()
2602 },
2603 },
2604 ],
2605 probability: 1.0,
2606 }],
2607 ..Consumable::new()
2608 },
2609 ItemKind::GoldenCarrot => Consumable::new(),
2610 ItemKind::HoneyBottle => Consumable {
2611 animation: ItemUseAnimation::Drink,
2612 consume_seconds: 2.0,
2613 has_consume_particles: false,
2614 on_consume_effects: vec![ConsumeEffect::RemoveEffects {
2615 effects: HolderSet::Direct {
2616 contents: vec![MobEffect::Poison],
2617 },
2618 }],
2619 sound: azalea_registry::Holder::Reference(SoundEvent::ItemHoneyBottleDrink),
2620 },
2621 ItemKind::MelonSlice => Consumable::new(),
2622 ItemKind::MilkBucket => Consumable {
2623 animation: ItemUseAnimation::Drink,
2624 has_consume_particles: false,
2625 on_consume_effects: vec![ConsumeEffect::ClearAllEffects {}],
2626 sound: azalea_registry::Holder::Reference(SoundEvent::EntityGenericDrink),
2627 ..Consumable::new()
2628 },
2629 ItemKind::MushroomStew => Consumable::new(),
2630 ItemKind::Mutton => Consumable::new(),
2631 ItemKind::OminousBottle => Consumable {
2632 animation: ItemUseAnimation::Drink,
2633 has_consume_particles: false,
2634 on_consume_effects: vec![ConsumeEffect::PlaySound {
2635 sound: SoundEvent::ItemOminousBottleDispose,
2636 }],
2637 sound: azalea_registry::Holder::Reference(SoundEvent::EntityGenericDrink),
2638 ..Consumable::new()
2639 },
2640 ItemKind::PoisonousPotato => Consumable {
2641 on_consume_effects: vec![ConsumeEffect::ApplyEffects {
2642 effects: vec![MobEffectInstance {
2643 id: MobEffect::Poison,
2644 details: MobEffectDetails {
2645 duration: 100,
2646 show_icon: true,
2647 ..MobEffectDetails::new()
2648 },
2649 }],
2650 probability: 0.6,
2651 }],
2652 ..Consumable::new()
2653 },
2654 ItemKind::Porkchop => Consumable::new(),
2655 ItemKind::Potato => Consumable::new(),
2656 ItemKind::Potion => Consumable {
2657 animation: ItemUseAnimation::Drink,
2658 has_consume_particles: false,
2659 sound: azalea_registry::Holder::Reference(SoundEvent::EntityGenericDrink),
2660 ..Consumable::new()
2661 },
2662 ItemKind::Pufferfish => Consumable {
2663 on_consume_effects: vec![ConsumeEffect::ApplyEffects {
2664 effects: vec![
2665 MobEffectInstance {
2666 id: MobEffect::Poison,
2667 details: MobEffectDetails {
2668 amplifier: 1,
2669 duration: 1200,
2670 show_icon: true,
2671 ..MobEffectDetails::new()
2672 },
2673 },
2674 MobEffectInstance {
2675 id: MobEffect::Hunger,
2676 details: MobEffectDetails {
2677 amplifier: 2,
2678 duration: 300,
2679 show_icon: true,
2680 ..MobEffectDetails::new()
2681 },
2682 },
2683 MobEffectInstance {
2684 id: MobEffect::Nausea,
2685 details: MobEffectDetails {
2686 duration: 300,
2687 show_icon: true,
2688 ..MobEffectDetails::new()
2689 },
2690 },
2691 ],
2692 probability: 1.0,
2693 }],
2694 ..Consumable::new()
2695 },
2696 ItemKind::PumpkinPie => Consumable::new(),
2697 ItemKind::Rabbit => Consumable::new(),
2698 ItemKind::RabbitStew => Consumable::new(),
2699 ItemKind::RottenFlesh => Consumable {
2700 on_consume_effects: vec![ConsumeEffect::ApplyEffects {
2701 effects: vec![MobEffectInstance {
2702 id: MobEffect::Hunger,
2703 details: MobEffectDetails {
2704 duration: 600,
2705 show_icon: true,
2706 ..MobEffectDetails::new()
2707 },
2708 }],
2709 probability: 0.8,
2710 }],
2711 ..Consumable::new()
2712 },
2713 ItemKind::Salmon => Consumable::new(),
2714 ItemKind::SpiderEye => Consumable {
2715 on_consume_effects: vec![ConsumeEffect::ApplyEffects {
2716 effects: vec![MobEffectInstance {
2717 id: MobEffect::Poison,
2718 details: MobEffectDetails {
2719 duration: 100,
2720 show_icon: true,
2721 ..MobEffectDetails::new()
2722 },
2723 }],
2724 probability: 1.0,
2725 }],
2726 ..Consumable::new()
2727 },
2728 ItemKind::SuspiciousStew => Consumable::new(),
2729 ItemKind::SweetBerries => Consumable::new(),
2730 ItemKind::TropicalFish => Consumable::new(),
2731 _ => return None,
2732 };
2733 Some(value)
2734 }
2735}
2736impl DefaultableComponent for Food {
2737 fn default_for_item(item: ItemKind) -> Option<Self> {
2738 let value = match item {
2739 ItemKind::Apple => Food {
2740 nutrition: 4,
2741 saturation: 2.4,
2742 ..Food::new()
2743 },
2744 ItemKind::BakedPotato => Food {
2745 nutrition: 5,
2746 saturation: 6.0,
2747 ..Food::new()
2748 },
2749 ItemKind::Beef => Food {
2750 nutrition: 3,
2751 saturation: 1.8000001,
2752 ..Food::new()
2753 },
2754 ItemKind::Beetroot => Food {
2755 nutrition: 1,
2756 saturation: 1.2,
2757 ..Food::new()
2758 },
2759 ItemKind::BeetrootSoup => Food {
2760 nutrition: 6,
2761 saturation: 7.2000003,
2762 ..Food::new()
2763 },
2764 ItemKind::Bread => Food {
2765 nutrition: 5,
2766 saturation: 6.0,
2767 ..Food::new()
2768 },
2769 ItemKind::Carrot => Food {
2770 nutrition: 3,
2771 saturation: 3.6000001,
2772 ..Food::new()
2773 },
2774 ItemKind::Chicken => Food {
2775 nutrition: 2,
2776 saturation: 1.2,
2777 ..Food::new()
2778 },
2779 ItemKind::ChorusFruit => Food {
2780 can_always_eat: true,
2781 nutrition: 4,
2782 saturation: 2.4,
2783 },
2784 ItemKind::Cod => Food {
2785 nutrition: 2,
2786 saturation: 0.4,
2787 ..Food::new()
2788 },
2789 ItemKind::CodBucket => Food {
2790 nutrition: 2,
2791 saturation: 0.4,
2792 ..Food::new()
2793 },
2794 ItemKind::CookedBeef => Food {
2795 nutrition: 8,
2796 saturation: 12.8,
2797 ..Food::new()
2798 },
2799 ItemKind::CookedChicken => Food {
2800 nutrition: 6,
2801 saturation: 7.2000003,
2802 ..Food::new()
2803 },
2804 ItemKind::CookedCod => Food {
2805 nutrition: 5,
2806 saturation: 6.0,
2807 ..Food::new()
2808 },
2809 ItemKind::CookedMutton => Food {
2810 nutrition: 6,
2811 saturation: 9.6,
2812 ..Food::new()
2813 },
2814 ItemKind::CookedPorkchop => Food {
2815 nutrition: 8,
2816 saturation: 12.8,
2817 ..Food::new()
2818 },
2819 ItemKind::CookedRabbit => Food {
2820 nutrition: 5,
2821 saturation: 6.0,
2822 ..Food::new()
2823 },
2824 ItemKind::CookedSalmon => Food {
2825 nutrition: 6,
2826 saturation: 9.6,
2827 ..Food::new()
2828 },
2829 ItemKind::Cookie => Food {
2830 nutrition: 2,
2831 saturation: 0.4,
2832 ..Food::new()
2833 },
2834 ItemKind::DriedKelp => Food {
2835 nutrition: 1,
2836 saturation: 0.6,
2837 ..Food::new()
2838 },
2839 ItemKind::EnchantedGoldenApple => Food {
2840 can_always_eat: true,
2841 nutrition: 4,
2842 saturation: 9.6,
2843 },
2844 ItemKind::GlowBerries => Food {
2845 nutrition: 2,
2846 saturation: 0.4,
2847 ..Food::new()
2848 },
2849 ItemKind::GoldenApple => Food {
2850 can_always_eat: true,
2851 nutrition: 4,
2852 saturation: 9.6,
2853 },
2854 ItemKind::GoldenCarrot => Food {
2855 nutrition: 6,
2856 saturation: 14.400001,
2857 ..Food::new()
2858 },
2859 ItemKind::HoneyBottle => Food {
2860 can_always_eat: true,
2861 nutrition: 6,
2862 saturation: 1.2,
2863 },
2864 ItemKind::MelonSlice => Food {
2865 nutrition: 2,
2866 saturation: 1.2,
2867 ..Food::new()
2868 },
2869 ItemKind::MushroomStew => Food {
2870 nutrition: 6,
2871 saturation: 7.2000003,
2872 ..Food::new()
2873 },
2874 ItemKind::Mutton => Food {
2875 nutrition: 2,
2876 saturation: 1.2,
2877 ..Food::new()
2878 },
2879 ItemKind::PoisonousPotato => Food {
2880 nutrition: 2,
2881 saturation: 1.2,
2882 ..Food::new()
2883 },
2884 ItemKind::Porkchop => Food {
2885 nutrition: 3,
2886 saturation: 1.8000001,
2887 ..Food::new()
2888 },
2889 ItemKind::Potato => Food {
2890 nutrition: 1,
2891 saturation: 0.6,
2892 ..Food::new()
2893 },
2894 ItemKind::Pufferfish => Food {
2895 nutrition: 1,
2896 saturation: 0.2,
2897 ..Food::new()
2898 },
2899 ItemKind::PufferfishBucket => Food {
2900 nutrition: 1,
2901 saturation: 0.2,
2902 ..Food::new()
2903 },
2904 ItemKind::PumpkinPie => Food {
2905 nutrition: 8,
2906 saturation: 4.8,
2907 ..Food::new()
2908 },
2909 ItemKind::Rabbit => Food {
2910 nutrition: 3,
2911 saturation: 1.8000001,
2912 ..Food::new()
2913 },
2914 ItemKind::RabbitStew => Food {
2915 nutrition: 10,
2916 saturation: 12.0,
2917 ..Food::new()
2918 },
2919 ItemKind::RottenFlesh => Food {
2920 nutrition: 4,
2921 saturation: 0.8,
2922 ..Food::new()
2923 },
2924 ItemKind::Salmon => Food {
2925 nutrition: 2,
2926 saturation: 0.4,
2927 ..Food::new()
2928 },
2929 ItemKind::SalmonBucket => Food {
2930 nutrition: 2,
2931 saturation: 0.4,
2932 ..Food::new()
2933 },
2934 ItemKind::SpiderEye => Food {
2935 nutrition: 2,
2936 saturation: 3.2,
2937 ..Food::new()
2938 },
2939 ItemKind::SuspiciousStew => Food {
2940 can_always_eat: true,
2941 nutrition: 6,
2942 saturation: 7.2000003,
2943 },
2944 ItemKind::SweetBerries => Food {
2945 nutrition: 2,
2946 saturation: 0.4,
2947 ..Food::new()
2948 },
2949 ItemKind::TropicalFish => Food {
2950 nutrition: 1,
2951 saturation: 0.2,
2952 ..Food::new()
2953 },
2954 ItemKind::TropicalFishBucket => Food {
2955 nutrition: 1,
2956 saturation: 0.2,
2957 ..Food::new()
2958 },
2959 _ => return None,
2960 };
2961 Some(value)
2962 }
2963}
2964impl DefaultableComponent for BucketEntityData {
2965 fn default_for_item(item: ItemKind) -> Option<Self> {
2966 let value = match item {
2967 ItemKind::AxolotlBucket => NbtCompound::from_values(vec![]),
2968 ItemKind::CodBucket => NbtCompound::from_values(vec![]),
2969 ItemKind::PufferfishBucket => NbtCompound::from_values(vec![]),
2970 ItemKind::SalmonBucket => NbtCompound::from_values(vec![]),
2971 ItemKind::TadpoleBucket => NbtCompound::from_values(vec![]),
2972 ItemKind::TropicalFishBucket => NbtCompound::from_values(vec![]),
2973 _ => return None,
2974 };
2975 Some(BucketEntityData { entity: value })
2976 }
2977}
2978impl DefaultableComponent for Bees {
2979 fn default_for_item(item: ItemKind) -> Option<Self> {
2980 let value = match item {
2981 ItemKind::BeeNest => vec![],
2982 ItemKind::Beehive => vec![],
2983 _ => return None,
2984 };
2985 Some(Bees { occupants: value })
2986 }
2987}
2988impl DefaultableComponent for BlockState {
2989 fn default_for_item(item: ItemKind) -> Option<Self> {
2990 let value = match item {
2991 ItemKind::BeeNest => HashMap::from_iter([("honey_level".to_owned(), "0".to_owned())]),
2992 ItemKind::Beehive => HashMap::from_iter([("honey_level".to_owned(), "0".to_owned())]),
2993 ItemKind::CopperGolemStatue => {
2994 HashMap::from_iter([("copper_golem_pose".to_owned(), "standing".to_owned())])
2995 }
2996 ItemKind::ExposedCopperGolemStatue => {
2997 HashMap::from_iter([("copper_golem_pose".to_owned(), "standing".to_owned())])
2998 }
2999 ItemKind::Light => HashMap::from_iter([("level".to_owned(), "15".to_owned())]),
3000 ItemKind::OxidizedCopperGolemStatue => {
3001 HashMap::from_iter([("copper_golem_pose".to_owned(), "standing".to_owned())])
3002 }
3003 ItemKind::TestBlock => HashMap::from_iter([("mode".to_owned(), "start".to_owned())]),
3004 ItemKind::WaxedCopperGolemStatue => {
3005 HashMap::from_iter([("copper_golem_pose".to_owned(), "standing".to_owned())])
3006 }
3007 ItemKind::WaxedExposedCopperGolemStatue => {
3008 HashMap::from_iter([("copper_golem_pose".to_owned(), "standing".to_owned())])
3009 }
3010 ItemKind::WaxedOxidizedCopperGolemStatue => {
3011 HashMap::from_iter([("copper_golem_pose".to_owned(), "standing".to_owned())])
3012 }
3013 ItemKind::WaxedWeatheredCopperGolemStatue => {
3014 HashMap::from_iter([("copper_golem_pose".to_owned(), "standing".to_owned())])
3015 }
3016 ItemKind::WeatheredCopperGolemStatue => {
3017 HashMap::from_iter([("copper_golem_pose".to_owned(), "standing".to_owned())])
3018 }
3019 _ => return None,
3020 };
3021 Some(BlockState { properties: value })
3022 }
3023}
3024impl DefaultableComponent for UseRemainder {
3025 fn default_for_item(item: ItemKind) -> Option<Self> {
3026 let value = match item {
3027 ItemKind::BeetrootSoup => ItemStack::from(ItemKind::Bowl),
3028 ItemKind::HoneyBottle => ItemStack::from(ItemKind::GlassBottle),
3029 ItemKind::MilkBucket => ItemStack::from(ItemKind::Bucket),
3030 ItemKind::MushroomStew => ItemStack::from(ItemKind::Bowl),
3031 ItemKind::Potion => ItemStack::from(ItemKind::GlassBottle),
3032 ItemKind::RabbitStew => ItemStack::from(ItemKind::Bowl),
3033 ItemKind::SuspiciousStew => ItemStack::from(ItemKind::Bowl),
3034 _ => return None,
3035 };
3036 Some(UseRemainder {
3037 convert_into: value,
3038 })
3039 }
3040}
3041impl DefaultableComponent for BannerPatterns {
3042 fn default_for_item(item: ItemKind) -> Option<Self> {
3043 let value = match item {
3044 ItemKind::BlackBanner => vec![],
3045 ItemKind::BlueBanner => vec![],
3046 ItemKind::BrownBanner => vec![],
3047 ItemKind::CyanBanner => vec![],
3048 ItemKind::GrayBanner => vec![],
3049 ItemKind::GreenBanner => vec![],
3050 ItemKind::LightBlueBanner => vec![],
3051 ItemKind::LightGrayBanner => vec![],
3052 ItemKind::LimeBanner => vec![],
3053 ItemKind::MagentaBanner => vec![],
3054 ItemKind::OrangeBanner => vec![],
3055 ItemKind::PinkBanner => vec![],
3056 ItemKind::PurpleBanner => vec![],
3057 ItemKind::RedBanner => vec![],
3058 ItemKind::Shield => vec![],
3059 ItemKind::WhiteBanner => vec![],
3060 ItemKind::YellowBanner => vec![],
3061 _ => return None,
3062 };
3063 Some(BannerPatterns { patterns: value })
3064 }
3065}
3066impl DefaultableComponent for BundleContents {
3067 fn default_for_item(item: ItemKind) -> Option<Self> {
3068 let value = match item {
3069 ItemKind::BlackBundle => vec![],
3070 ItemKind::BlueBundle => vec![],
3071 ItemKind::BrownBundle => vec![],
3072 ItemKind::Bundle => vec![],
3073 ItemKind::CyanBundle => vec![],
3074 ItemKind::GrayBundle => vec![],
3075 ItemKind::GreenBundle => vec![],
3076 ItemKind::LightBlueBundle => vec![],
3077 ItemKind::LightGrayBundle => vec![],
3078 ItemKind::LimeBundle => vec![],
3079 ItemKind::MagentaBundle => vec![],
3080 ItemKind::OrangeBundle => vec![],
3081 ItemKind::PinkBundle => vec![],
3082 ItemKind::PurpleBundle => vec![],
3083 ItemKind::RedBundle => vec![],
3084 ItemKind::WhiteBundle => vec![],
3085 ItemKind::YellowBundle => vec![],
3086 _ => return None,
3087 };
3088 Some(BundleContents { items: value })
3089 }
3090}
3091impl DefaultableComponent for Equippable {
3092 fn default_for_item(item: ItemKind) -> Option<Self> {
3093 let value = match item {
3094 ItemKind::BlackCarpet => Equippable {
3095 allowed_entities: Some(HolderSet::Direct {
3096 contents: vec![EntityKind::Llama, EntityKind::TraderLlama],
3097 }),
3098 asset_id: Some("minecraft:black_carpet".into()),
3099 can_be_sheared: true,
3100 equip_sound: SoundEvent::EntityLlamaSwag,
3101 shearing_sound: SoundEvent::ItemLlamaCarpetUnequip,
3102 slot: EquipmentSlot::Body,
3103 ..Equippable::new()
3104 },
3105 ItemKind::BlackHarness => Equippable {
3106 allowed_entities: Some(HolderSet::Direct {
3107 contents: azalea_registry::tags::entities::CAN_EQUIP_HARNESS
3108 .clone()
3109 .into_iter()
3110 .collect(),
3111 }),
3112 asset_id: Some("minecraft:black_harness".into()),
3113 can_be_sheared: true,
3114 equip_on_interact: true,
3115 equip_sound: SoundEvent::EntityHappyGhastEquip,
3116 shearing_sound: SoundEvent::EntityHappyGhastUnequip,
3117 slot: EquipmentSlot::Body,
3118 ..Equippable::new()
3119 },
3120 ItemKind::BlueCarpet => Equippable {
3121 allowed_entities: Some(HolderSet::Direct {
3122 contents: vec![EntityKind::Llama, EntityKind::TraderLlama],
3123 }),
3124 asset_id: Some("minecraft:blue_carpet".into()),
3125 can_be_sheared: true,
3126 equip_sound: SoundEvent::EntityLlamaSwag,
3127 shearing_sound: SoundEvent::ItemLlamaCarpetUnequip,
3128 slot: EquipmentSlot::Body,
3129 ..Equippable::new()
3130 },
3131 ItemKind::BlueHarness => Equippable {
3132 allowed_entities: Some(HolderSet::Direct {
3133 contents: azalea_registry::tags::entities::CAN_EQUIP_HARNESS
3134 .clone()
3135 .into_iter()
3136 .collect(),
3137 }),
3138 asset_id: Some("minecraft:blue_harness".into()),
3139 can_be_sheared: true,
3140 equip_on_interact: true,
3141 equip_sound: SoundEvent::EntityHappyGhastEquip,
3142 shearing_sound: SoundEvent::EntityHappyGhastUnequip,
3143 slot: EquipmentSlot::Body,
3144 ..Equippable::new()
3145 },
3146 ItemKind::BrownCarpet => Equippable {
3147 allowed_entities: Some(HolderSet::Direct {
3148 contents: vec![EntityKind::Llama, EntityKind::TraderLlama],
3149 }),
3150 asset_id: Some("minecraft:brown_carpet".into()),
3151 can_be_sheared: true,
3152 equip_sound: SoundEvent::EntityLlamaSwag,
3153 shearing_sound: SoundEvent::ItemLlamaCarpetUnequip,
3154 slot: EquipmentSlot::Body,
3155 ..Equippable::new()
3156 },
3157 ItemKind::BrownHarness => Equippable {
3158 allowed_entities: Some(HolderSet::Direct {
3159 contents: azalea_registry::tags::entities::CAN_EQUIP_HARNESS
3160 .clone()
3161 .into_iter()
3162 .collect(),
3163 }),
3164 asset_id: Some("minecraft:brown_harness".into()),
3165 can_be_sheared: true,
3166 equip_on_interact: true,
3167 equip_sound: SoundEvent::EntityHappyGhastEquip,
3168 shearing_sound: SoundEvent::EntityHappyGhastUnequip,
3169 slot: EquipmentSlot::Body,
3170 ..Equippable::new()
3171 },
3172 ItemKind::CarvedPumpkin => Equippable {
3173 camera_overlay: Some("minecraft:misc/pumpkinblur".into()),
3174 slot: EquipmentSlot::Head,
3175 swappable: false,
3176 ..Equippable::new()
3177 },
3178 ItemKind::ChainmailBoots => Equippable {
3179 asset_id: Some("minecraft:chainmail".into()),
3180 equip_sound: SoundEvent::ItemArmorEquipChain,
3181 slot: EquipmentSlot::Feet,
3182 ..Equippable::new()
3183 },
3184 ItemKind::ChainmailChestplate => Equippable {
3185 asset_id: Some("minecraft:chainmail".into()),
3186 equip_sound: SoundEvent::ItemArmorEquipChain,
3187 slot: EquipmentSlot::Chest,
3188 ..Equippable::new()
3189 },
3190 ItemKind::ChainmailHelmet => Equippable {
3191 asset_id: Some("minecraft:chainmail".into()),
3192 equip_sound: SoundEvent::ItemArmorEquipChain,
3193 slot: EquipmentSlot::Head,
3194 ..Equippable::new()
3195 },
3196 ItemKind::ChainmailLeggings => Equippable {
3197 asset_id: Some("minecraft:chainmail".into()),
3198 equip_sound: SoundEvent::ItemArmorEquipChain,
3199 slot: EquipmentSlot::Legs,
3200 ..Equippable::new()
3201 },
3202 ItemKind::CopperBoots => Equippable {
3203 asset_id: Some("minecraft:copper".into()),
3204 equip_sound: SoundEvent::ItemArmorEquipCopper,
3205 slot: EquipmentSlot::Feet,
3206 ..Equippable::new()
3207 },
3208 ItemKind::CopperChestplate => Equippable {
3209 asset_id: Some("minecraft:copper".into()),
3210 equip_sound: SoundEvent::ItemArmorEquipCopper,
3211 slot: EquipmentSlot::Chest,
3212 ..Equippable::new()
3213 },
3214 ItemKind::CopperHelmet => Equippable {
3215 asset_id: Some("minecraft:copper".into()),
3216 equip_sound: SoundEvent::ItemArmorEquipCopper,
3217 slot: EquipmentSlot::Head,
3218 ..Equippable::new()
3219 },
3220 ItemKind::CopperHorseArmor => Equippable {
3221 allowed_entities: Some(HolderSet::Direct {
3222 contents: azalea_registry::tags::entities::CAN_WEAR_HORSE_ARMOR
3223 .clone()
3224 .into_iter()
3225 .collect(),
3226 }),
3227 asset_id: Some("minecraft:copper".into()),
3228 can_be_sheared: true,
3229 damage_on_hurt: false,
3230 equip_sound: SoundEvent::EntityHorseArmor,
3231 shearing_sound: SoundEvent::ItemHorseArmorUnequip,
3232 slot: EquipmentSlot::Body,
3233 ..Equippable::new()
3234 },
3235 ItemKind::CopperLeggings => Equippable {
3236 asset_id: Some("minecraft:copper".into()),
3237 equip_sound: SoundEvent::ItemArmorEquipCopper,
3238 slot: EquipmentSlot::Legs,
3239 ..Equippable::new()
3240 },
3241 ItemKind::CopperNautilusArmor => Equippable {
3242 allowed_entities: Some(HolderSet::Direct {
3243 contents: azalea_registry::tags::entities::CAN_WEAR_NAUTILUS_ARMOR
3244 .clone()
3245 .into_iter()
3246 .collect(),
3247 }),
3248 asset_id: Some("minecraft:copper".into()),
3249 can_be_sheared: true,
3250 damage_on_hurt: false,
3251 equip_on_interact: true,
3252 equip_sound: SoundEvent::ItemArmorEquipNautilus,
3253 shearing_sound: SoundEvent::ItemArmorUnequipNautilus,
3254 slot: EquipmentSlot::Body,
3255 ..Equippable::new()
3256 },
3257 ItemKind::CreeperHead => Equippable {
3258 slot: EquipmentSlot::Head,
3259 swappable: false,
3260 ..Equippable::new()
3261 },
3262 ItemKind::CyanCarpet => Equippable {
3263 allowed_entities: Some(HolderSet::Direct {
3264 contents: vec![EntityKind::Llama, EntityKind::TraderLlama],
3265 }),
3266 asset_id: Some("minecraft:cyan_carpet".into()),
3267 can_be_sheared: true,
3268 equip_sound: SoundEvent::EntityLlamaSwag,
3269 shearing_sound: SoundEvent::ItemLlamaCarpetUnequip,
3270 slot: EquipmentSlot::Body,
3271 ..Equippable::new()
3272 },
3273 ItemKind::CyanHarness => Equippable {
3274 allowed_entities: Some(HolderSet::Direct {
3275 contents: azalea_registry::tags::entities::CAN_EQUIP_HARNESS
3276 .clone()
3277 .into_iter()
3278 .collect(),
3279 }),
3280 asset_id: Some("minecraft:cyan_harness".into()),
3281 can_be_sheared: true,
3282 equip_on_interact: true,
3283 equip_sound: SoundEvent::EntityHappyGhastEquip,
3284 shearing_sound: SoundEvent::EntityHappyGhastUnequip,
3285 slot: EquipmentSlot::Body,
3286 ..Equippable::new()
3287 },
3288 ItemKind::DiamondBoots => Equippable {
3289 asset_id: Some("minecraft:diamond".into()),
3290 equip_sound: SoundEvent::ItemArmorEquipDiamond,
3291 slot: EquipmentSlot::Feet,
3292 ..Equippable::new()
3293 },
3294 ItemKind::DiamondChestplate => Equippable {
3295 asset_id: Some("minecraft:diamond".into()),
3296 equip_sound: SoundEvent::ItemArmorEquipDiamond,
3297 slot: EquipmentSlot::Chest,
3298 ..Equippable::new()
3299 },
3300 ItemKind::DiamondHelmet => Equippable {
3301 asset_id: Some("minecraft:diamond".into()),
3302 equip_sound: SoundEvent::ItemArmorEquipDiamond,
3303 slot: EquipmentSlot::Head,
3304 ..Equippable::new()
3305 },
3306 ItemKind::DiamondHorseArmor => Equippable {
3307 allowed_entities: Some(HolderSet::Direct {
3308 contents: azalea_registry::tags::entities::CAN_WEAR_HORSE_ARMOR
3309 .clone()
3310 .into_iter()
3311 .collect(),
3312 }),
3313 asset_id: Some("minecraft:diamond".into()),
3314 can_be_sheared: true,
3315 damage_on_hurt: false,
3316 equip_sound: SoundEvent::EntityHorseArmor,
3317 shearing_sound: SoundEvent::ItemHorseArmorUnequip,
3318 slot: EquipmentSlot::Body,
3319 ..Equippable::new()
3320 },
3321 ItemKind::DiamondLeggings => Equippable {
3322 asset_id: Some("minecraft:diamond".into()),
3323 equip_sound: SoundEvent::ItemArmorEquipDiamond,
3324 slot: EquipmentSlot::Legs,
3325 ..Equippable::new()
3326 },
3327 ItemKind::DiamondNautilusArmor => Equippable {
3328 allowed_entities: Some(HolderSet::Direct {
3329 contents: azalea_registry::tags::entities::CAN_WEAR_NAUTILUS_ARMOR
3330 .clone()
3331 .into_iter()
3332 .collect(),
3333 }),
3334 asset_id: Some("minecraft:diamond".into()),
3335 can_be_sheared: true,
3336 damage_on_hurt: false,
3337 equip_on_interact: true,
3338 equip_sound: SoundEvent::ItemArmorEquipNautilus,
3339 shearing_sound: SoundEvent::ItemArmorUnequipNautilus,
3340 slot: EquipmentSlot::Body,
3341 ..Equippable::new()
3342 },
3343 ItemKind::DragonHead => Equippable {
3344 slot: EquipmentSlot::Head,
3345 swappable: false,
3346 ..Equippable::new()
3347 },
3348 ItemKind::Elytra => Equippable {
3349 asset_id: Some("minecraft:elytra".into()),
3350 damage_on_hurt: false,
3351 equip_sound: SoundEvent::ItemArmorEquipElytra,
3352 slot: EquipmentSlot::Chest,
3353 ..Equippable::new()
3354 },
3355 ItemKind::GoldenBoots => Equippable {
3356 asset_id: Some("minecraft:gold".into()),
3357 equip_sound: SoundEvent::ItemArmorEquipGold,
3358 slot: EquipmentSlot::Feet,
3359 ..Equippable::new()
3360 },
3361 ItemKind::GoldenChestplate => Equippable {
3362 asset_id: Some("minecraft:gold".into()),
3363 equip_sound: SoundEvent::ItemArmorEquipGold,
3364 slot: EquipmentSlot::Chest,
3365 ..Equippable::new()
3366 },
3367 ItemKind::GoldenHelmet => Equippable {
3368 asset_id: Some("minecraft:gold".into()),
3369 equip_sound: SoundEvent::ItemArmorEquipGold,
3370 slot: EquipmentSlot::Head,
3371 ..Equippable::new()
3372 },
3373 ItemKind::GoldenHorseArmor => Equippable {
3374 allowed_entities: Some(HolderSet::Direct {
3375 contents: azalea_registry::tags::entities::CAN_WEAR_HORSE_ARMOR
3376 .clone()
3377 .into_iter()
3378 .collect(),
3379 }),
3380 asset_id: Some("minecraft:gold".into()),
3381 can_be_sheared: true,
3382 damage_on_hurt: false,
3383 equip_sound: SoundEvent::EntityHorseArmor,
3384 shearing_sound: SoundEvent::ItemHorseArmorUnequip,
3385 slot: EquipmentSlot::Body,
3386 ..Equippable::new()
3387 },
3388 ItemKind::GoldenLeggings => Equippable {
3389 asset_id: Some("minecraft:gold".into()),
3390 equip_sound: SoundEvent::ItemArmorEquipGold,
3391 slot: EquipmentSlot::Legs,
3392 ..Equippable::new()
3393 },
3394 ItemKind::GoldenNautilusArmor => Equippable {
3395 allowed_entities: Some(HolderSet::Direct {
3396 contents: azalea_registry::tags::entities::CAN_WEAR_NAUTILUS_ARMOR
3397 .clone()
3398 .into_iter()
3399 .collect(),
3400 }),
3401 asset_id: Some("minecraft:gold".into()),
3402 can_be_sheared: true,
3403 damage_on_hurt: false,
3404 equip_on_interact: true,
3405 equip_sound: SoundEvent::ItemArmorEquipNautilus,
3406 shearing_sound: SoundEvent::ItemArmorUnequipNautilus,
3407 slot: EquipmentSlot::Body,
3408 ..Equippable::new()
3409 },
3410 ItemKind::GrayCarpet => Equippable {
3411 allowed_entities: Some(HolderSet::Direct {
3412 contents: vec![EntityKind::Llama, EntityKind::TraderLlama],
3413 }),
3414 asset_id: Some("minecraft:gray_carpet".into()),
3415 can_be_sheared: true,
3416 equip_sound: SoundEvent::EntityLlamaSwag,
3417 shearing_sound: SoundEvent::ItemLlamaCarpetUnequip,
3418 slot: EquipmentSlot::Body,
3419 ..Equippable::new()
3420 },
3421 ItemKind::GrayHarness => Equippable {
3422 allowed_entities: Some(HolderSet::Direct {
3423 contents: azalea_registry::tags::entities::CAN_EQUIP_HARNESS
3424 .clone()
3425 .into_iter()
3426 .collect(),
3427 }),
3428 asset_id: Some("minecraft:gray_harness".into()),
3429 can_be_sheared: true,
3430 equip_on_interact: true,
3431 equip_sound: SoundEvent::EntityHappyGhastEquip,
3432 shearing_sound: SoundEvent::EntityHappyGhastUnequip,
3433 slot: EquipmentSlot::Body,
3434 ..Equippable::new()
3435 },
3436 ItemKind::GreenCarpet => Equippable {
3437 allowed_entities: Some(HolderSet::Direct {
3438 contents: vec![EntityKind::Llama, EntityKind::TraderLlama],
3439 }),
3440 asset_id: Some("minecraft:green_carpet".into()),
3441 can_be_sheared: true,
3442 equip_sound: SoundEvent::EntityLlamaSwag,
3443 shearing_sound: SoundEvent::ItemLlamaCarpetUnequip,
3444 slot: EquipmentSlot::Body,
3445 ..Equippable::new()
3446 },
3447 ItemKind::GreenHarness => Equippable {
3448 allowed_entities: Some(HolderSet::Direct {
3449 contents: azalea_registry::tags::entities::CAN_EQUIP_HARNESS
3450 .clone()
3451 .into_iter()
3452 .collect(),
3453 }),
3454 asset_id: Some("minecraft:green_harness".into()),
3455 can_be_sheared: true,
3456 equip_on_interact: true,
3457 equip_sound: SoundEvent::EntityHappyGhastEquip,
3458 shearing_sound: SoundEvent::EntityHappyGhastUnequip,
3459 slot: EquipmentSlot::Body,
3460 ..Equippable::new()
3461 },
3462 ItemKind::IronBoots => Equippable {
3463 asset_id: Some("minecraft:iron".into()),
3464 equip_sound: SoundEvent::ItemArmorEquipIron,
3465 slot: EquipmentSlot::Feet,
3466 ..Equippable::new()
3467 },
3468 ItemKind::IronChestplate => Equippable {
3469 asset_id: Some("minecraft:iron".into()),
3470 equip_sound: SoundEvent::ItemArmorEquipIron,
3471 slot: EquipmentSlot::Chest,
3472 ..Equippable::new()
3473 },
3474 ItemKind::IronHelmet => Equippable {
3475 asset_id: Some("minecraft:iron".into()),
3476 equip_sound: SoundEvent::ItemArmorEquipIron,
3477 slot: EquipmentSlot::Head,
3478 ..Equippable::new()
3479 },
3480 ItemKind::IronHorseArmor => Equippable {
3481 allowed_entities: Some(HolderSet::Direct {
3482 contents: azalea_registry::tags::entities::CAN_WEAR_HORSE_ARMOR
3483 .clone()
3484 .into_iter()
3485 .collect(),
3486 }),
3487 asset_id: Some("minecraft:iron".into()),
3488 can_be_sheared: true,
3489 damage_on_hurt: false,
3490 equip_sound: SoundEvent::EntityHorseArmor,
3491 shearing_sound: SoundEvent::ItemHorseArmorUnequip,
3492 slot: EquipmentSlot::Body,
3493 ..Equippable::new()
3494 },
3495 ItemKind::IronLeggings => Equippable {
3496 asset_id: Some("minecraft:iron".into()),
3497 equip_sound: SoundEvent::ItemArmorEquipIron,
3498 slot: EquipmentSlot::Legs,
3499 ..Equippable::new()
3500 },
3501 ItemKind::IronNautilusArmor => Equippable {
3502 allowed_entities: Some(HolderSet::Direct {
3503 contents: azalea_registry::tags::entities::CAN_WEAR_NAUTILUS_ARMOR
3504 .clone()
3505 .into_iter()
3506 .collect(),
3507 }),
3508 asset_id: Some("minecraft:iron".into()),
3509 can_be_sheared: true,
3510 damage_on_hurt: false,
3511 equip_on_interact: true,
3512 equip_sound: SoundEvent::ItemArmorEquipNautilus,
3513 shearing_sound: SoundEvent::ItemArmorUnequipNautilus,
3514 slot: EquipmentSlot::Body,
3515 ..Equippable::new()
3516 },
3517 ItemKind::LeatherBoots => Equippable {
3518 asset_id: Some("minecraft:leather".into()),
3519 equip_sound: SoundEvent::ItemArmorEquipLeather,
3520 slot: EquipmentSlot::Feet,
3521 ..Equippable::new()
3522 },
3523 ItemKind::LeatherChestplate => Equippable {
3524 asset_id: Some("minecraft:leather".into()),
3525 equip_sound: SoundEvent::ItemArmorEquipLeather,
3526 slot: EquipmentSlot::Chest,
3527 ..Equippable::new()
3528 },
3529 ItemKind::LeatherHelmet => Equippable {
3530 asset_id: Some("minecraft:leather".into()),
3531 equip_sound: SoundEvent::ItemArmorEquipLeather,
3532 slot: EquipmentSlot::Head,
3533 ..Equippable::new()
3534 },
3535 ItemKind::LeatherHorseArmor => Equippable {
3536 allowed_entities: Some(HolderSet::Direct {
3537 contents: azalea_registry::tags::entities::CAN_WEAR_HORSE_ARMOR
3538 .clone()
3539 .into_iter()
3540 .collect(),
3541 }),
3542 asset_id: Some("minecraft:leather".into()),
3543 can_be_sheared: true,
3544 damage_on_hurt: false,
3545 equip_sound: SoundEvent::EntityHorseArmor,
3546 shearing_sound: SoundEvent::ItemHorseArmorUnequip,
3547 slot: EquipmentSlot::Body,
3548 ..Equippable::new()
3549 },
3550 ItemKind::LeatherLeggings => Equippable {
3551 asset_id: Some("minecraft:leather".into()),
3552 equip_sound: SoundEvent::ItemArmorEquipLeather,
3553 slot: EquipmentSlot::Legs,
3554 ..Equippable::new()
3555 },
3556 ItemKind::LightBlueCarpet => Equippable {
3557 allowed_entities: Some(HolderSet::Direct {
3558 contents: vec![EntityKind::Llama, EntityKind::TraderLlama],
3559 }),
3560 asset_id: Some("minecraft:light_blue_carpet".into()),
3561 can_be_sheared: true,
3562 equip_sound: SoundEvent::EntityLlamaSwag,
3563 shearing_sound: SoundEvent::ItemLlamaCarpetUnequip,
3564 slot: EquipmentSlot::Body,
3565 ..Equippable::new()
3566 },
3567 ItemKind::LightBlueHarness => Equippable {
3568 allowed_entities: Some(HolderSet::Direct {
3569 contents: azalea_registry::tags::entities::CAN_EQUIP_HARNESS
3570 .clone()
3571 .into_iter()
3572 .collect(),
3573 }),
3574 asset_id: Some("minecraft:light_blue_harness".into()),
3575 can_be_sheared: true,
3576 equip_on_interact: true,
3577 equip_sound: SoundEvent::EntityHappyGhastEquip,
3578 shearing_sound: SoundEvent::EntityHappyGhastUnequip,
3579 slot: EquipmentSlot::Body,
3580 ..Equippable::new()
3581 },
3582 ItemKind::LightGrayCarpet => Equippable {
3583 allowed_entities: Some(HolderSet::Direct {
3584 contents: vec![EntityKind::Llama, EntityKind::TraderLlama],
3585 }),
3586 asset_id: Some("minecraft:light_gray_carpet".into()),
3587 can_be_sheared: true,
3588 equip_sound: SoundEvent::EntityLlamaSwag,
3589 shearing_sound: SoundEvent::ItemLlamaCarpetUnequip,
3590 slot: EquipmentSlot::Body,
3591 ..Equippable::new()
3592 },
3593 ItemKind::LightGrayHarness => Equippable {
3594 allowed_entities: Some(HolderSet::Direct {
3595 contents: azalea_registry::tags::entities::CAN_EQUIP_HARNESS
3596 .clone()
3597 .into_iter()
3598 .collect(),
3599 }),
3600 asset_id: Some("minecraft:light_gray_harness".into()),
3601 can_be_sheared: true,
3602 equip_on_interact: true,
3603 equip_sound: SoundEvent::EntityHappyGhastEquip,
3604 shearing_sound: SoundEvent::EntityHappyGhastUnequip,
3605 slot: EquipmentSlot::Body,
3606 ..Equippable::new()
3607 },
3608 ItemKind::LimeCarpet => Equippable {
3609 allowed_entities: Some(HolderSet::Direct {
3610 contents: vec![EntityKind::Llama, EntityKind::TraderLlama],
3611 }),
3612 asset_id: Some("minecraft:lime_carpet".into()),
3613 can_be_sheared: true,
3614 equip_sound: SoundEvent::EntityLlamaSwag,
3615 shearing_sound: SoundEvent::ItemLlamaCarpetUnequip,
3616 slot: EquipmentSlot::Body,
3617 ..Equippable::new()
3618 },
3619 ItemKind::LimeHarness => Equippable {
3620 allowed_entities: Some(HolderSet::Direct {
3621 contents: azalea_registry::tags::entities::CAN_EQUIP_HARNESS
3622 .clone()
3623 .into_iter()
3624 .collect(),
3625 }),
3626 asset_id: Some("minecraft:lime_harness".into()),
3627 can_be_sheared: true,
3628 equip_on_interact: true,
3629 equip_sound: SoundEvent::EntityHappyGhastEquip,
3630 shearing_sound: SoundEvent::EntityHappyGhastUnequip,
3631 slot: EquipmentSlot::Body,
3632 ..Equippable::new()
3633 },
3634 ItemKind::MagentaCarpet => Equippable {
3635 allowed_entities: Some(HolderSet::Direct {
3636 contents: vec![EntityKind::Llama, EntityKind::TraderLlama],
3637 }),
3638 asset_id: Some("minecraft:magenta_carpet".into()),
3639 can_be_sheared: true,
3640 equip_sound: SoundEvent::EntityLlamaSwag,
3641 shearing_sound: SoundEvent::ItemLlamaCarpetUnequip,
3642 slot: EquipmentSlot::Body,
3643 ..Equippable::new()
3644 },
3645 ItemKind::MagentaHarness => Equippable {
3646 allowed_entities: Some(HolderSet::Direct {
3647 contents: azalea_registry::tags::entities::CAN_EQUIP_HARNESS
3648 .clone()
3649 .into_iter()
3650 .collect(),
3651 }),
3652 asset_id: Some("minecraft:magenta_harness".into()),
3653 can_be_sheared: true,
3654 equip_on_interact: true,
3655 equip_sound: SoundEvent::EntityHappyGhastEquip,
3656 shearing_sound: SoundEvent::EntityHappyGhastUnequip,
3657 slot: EquipmentSlot::Body,
3658 ..Equippable::new()
3659 },
3660 ItemKind::NetheriteBoots => Equippable {
3661 asset_id: Some("minecraft:netherite".into()),
3662 equip_sound: SoundEvent::ItemArmorEquipNetherite,
3663 slot: EquipmentSlot::Feet,
3664 ..Equippable::new()
3665 },
3666 ItemKind::NetheriteChestplate => Equippable {
3667 asset_id: Some("minecraft:netherite".into()),
3668 equip_sound: SoundEvent::ItemArmorEquipNetherite,
3669 slot: EquipmentSlot::Chest,
3670 ..Equippable::new()
3671 },
3672 ItemKind::NetheriteHelmet => Equippable {
3673 asset_id: Some("minecraft:netherite".into()),
3674 equip_sound: SoundEvent::ItemArmorEquipNetherite,
3675 slot: EquipmentSlot::Head,
3676 ..Equippable::new()
3677 },
3678 ItemKind::NetheriteHorseArmor => Equippable {
3679 allowed_entities: Some(HolderSet::Direct {
3680 contents: azalea_registry::tags::entities::CAN_WEAR_HORSE_ARMOR
3681 .clone()
3682 .into_iter()
3683 .collect(),
3684 }),
3685 asset_id: Some("minecraft:netherite".into()),
3686 can_be_sheared: true,
3687 damage_on_hurt: false,
3688 equip_sound: SoundEvent::EntityHorseArmor,
3689 shearing_sound: SoundEvent::ItemHorseArmorUnequip,
3690 slot: EquipmentSlot::Body,
3691 ..Equippable::new()
3692 },
3693 ItemKind::NetheriteLeggings => Equippable {
3694 asset_id: Some("minecraft:netherite".into()),
3695 equip_sound: SoundEvent::ItemArmorEquipNetherite,
3696 slot: EquipmentSlot::Legs,
3697 ..Equippable::new()
3698 },
3699 ItemKind::NetheriteNautilusArmor => Equippable {
3700 allowed_entities: Some(HolderSet::Direct {
3701 contents: azalea_registry::tags::entities::CAN_WEAR_NAUTILUS_ARMOR
3702 .clone()
3703 .into_iter()
3704 .collect(),
3705 }),
3706 asset_id: Some("minecraft:netherite".into()),
3707 can_be_sheared: true,
3708 damage_on_hurt: false,
3709 equip_on_interact: true,
3710 equip_sound: SoundEvent::ItemArmorEquipNautilus,
3711 shearing_sound: SoundEvent::ItemArmorUnequipNautilus,
3712 slot: EquipmentSlot::Body,
3713 ..Equippable::new()
3714 },
3715 ItemKind::OrangeCarpet => Equippable {
3716 allowed_entities: Some(HolderSet::Direct {
3717 contents: vec![EntityKind::Llama, EntityKind::TraderLlama],
3718 }),
3719 asset_id: Some("minecraft:orange_carpet".into()),
3720 can_be_sheared: true,
3721 equip_sound: SoundEvent::EntityLlamaSwag,
3722 shearing_sound: SoundEvent::ItemLlamaCarpetUnequip,
3723 slot: EquipmentSlot::Body,
3724 ..Equippable::new()
3725 },
3726 ItemKind::OrangeHarness => Equippable {
3727 allowed_entities: Some(HolderSet::Direct {
3728 contents: azalea_registry::tags::entities::CAN_EQUIP_HARNESS
3729 .clone()
3730 .into_iter()
3731 .collect(),
3732 }),
3733 asset_id: Some("minecraft:orange_harness".into()),
3734 can_be_sheared: true,
3735 equip_on_interact: true,
3736 equip_sound: SoundEvent::EntityHappyGhastEquip,
3737 shearing_sound: SoundEvent::EntityHappyGhastUnequip,
3738 slot: EquipmentSlot::Body,
3739 ..Equippable::new()
3740 },
3741 ItemKind::PiglinHead => Equippable {
3742 slot: EquipmentSlot::Head,
3743 swappable: false,
3744 ..Equippable::new()
3745 },
3746 ItemKind::PinkCarpet => Equippable {
3747 allowed_entities: Some(HolderSet::Direct {
3748 contents: vec![EntityKind::Llama, EntityKind::TraderLlama],
3749 }),
3750 asset_id: Some("minecraft:pink_carpet".into()),
3751 can_be_sheared: true,
3752 equip_sound: SoundEvent::EntityLlamaSwag,
3753 shearing_sound: SoundEvent::ItemLlamaCarpetUnequip,
3754 slot: EquipmentSlot::Body,
3755 ..Equippable::new()
3756 },
3757 ItemKind::PinkHarness => Equippable {
3758 allowed_entities: Some(HolderSet::Direct {
3759 contents: azalea_registry::tags::entities::CAN_EQUIP_HARNESS
3760 .clone()
3761 .into_iter()
3762 .collect(),
3763 }),
3764 asset_id: Some("minecraft:pink_harness".into()),
3765 can_be_sheared: true,
3766 equip_on_interact: true,
3767 equip_sound: SoundEvent::EntityHappyGhastEquip,
3768 shearing_sound: SoundEvent::EntityHappyGhastUnequip,
3769 slot: EquipmentSlot::Body,
3770 ..Equippable::new()
3771 },
3772 ItemKind::PlayerHead => Equippable {
3773 slot: EquipmentSlot::Head,
3774 swappable: false,
3775 ..Equippable::new()
3776 },
3777 ItemKind::PurpleCarpet => Equippable {
3778 allowed_entities: Some(HolderSet::Direct {
3779 contents: vec![EntityKind::Llama, EntityKind::TraderLlama],
3780 }),
3781 asset_id: Some("minecraft:purple_carpet".into()),
3782 can_be_sheared: true,
3783 equip_sound: SoundEvent::EntityLlamaSwag,
3784 shearing_sound: SoundEvent::ItemLlamaCarpetUnequip,
3785 slot: EquipmentSlot::Body,
3786 ..Equippable::new()
3787 },
3788 ItemKind::PurpleHarness => Equippable {
3789 allowed_entities: Some(HolderSet::Direct {
3790 contents: azalea_registry::tags::entities::CAN_EQUIP_HARNESS
3791 .clone()
3792 .into_iter()
3793 .collect(),
3794 }),
3795 asset_id: Some("minecraft:purple_harness".into()),
3796 can_be_sheared: true,
3797 equip_on_interact: true,
3798 equip_sound: SoundEvent::EntityHappyGhastEquip,
3799 shearing_sound: SoundEvent::EntityHappyGhastUnequip,
3800 slot: EquipmentSlot::Body,
3801 ..Equippable::new()
3802 },
3803 ItemKind::RedCarpet => Equippable {
3804 allowed_entities: Some(HolderSet::Direct {
3805 contents: vec![EntityKind::Llama, EntityKind::TraderLlama],
3806 }),
3807 asset_id: Some("minecraft:red_carpet".into()),
3808 can_be_sheared: true,
3809 equip_sound: SoundEvent::EntityLlamaSwag,
3810 shearing_sound: SoundEvent::ItemLlamaCarpetUnequip,
3811 slot: EquipmentSlot::Body,
3812 ..Equippable::new()
3813 },
3814 ItemKind::RedHarness => Equippable {
3815 allowed_entities: Some(HolderSet::Direct {
3816 contents: azalea_registry::tags::entities::CAN_EQUIP_HARNESS
3817 .clone()
3818 .into_iter()
3819 .collect(),
3820 }),
3821 asset_id: Some("minecraft:red_harness".into()),
3822 can_be_sheared: true,
3823 equip_on_interact: true,
3824 equip_sound: SoundEvent::EntityHappyGhastEquip,
3825 shearing_sound: SoundEvent::EntityHappyGhastUnequip,
3826 slot: EquipmentSlot::Body,
3827 ..Equippable::new()
3828 },
3829 ItemKind::Saddle => Equippable {
3830 allowed_entities: Some(HolderSet::Direct {
3831 contents: azalea_registry::tags::entities::CAN_EQUIP_SADDLE
3832 .clone()
3833 .into_iter()
3834 .collect(),
3835 }),
3836 asset_id: Some("minecraft:saddle".into()),
3837 can_be_sheared: true,
3838 equip_on_interact: true,
3839 equip_sound: SoundEvent::EntityHorseSaddle,
3840 shearing_sound: SoundEvent::ItemSaddleUnequip,
3841 slot: EquipmentSlot::Saddle,
3842 ..Equippable::new()
3843 },
3844 ItemKind::Shield => Equippable {
3845 slot: EquipmentSlot::Offhand,
3846 swappable: false,
3847 ..Equippable::new()
3848 },
3849 ItemKind::SkeletonSkull => Equippable {
3850 slot: EquipmentSlot::Head,
3851 swappable: false,
3852 ..Equippable::new()
3853 },
3854 ItemKind::TurtleHelmet => Equippable {
3855 asset_id: Some("minecraft:turtle_scute".into()),
3856 equip_sound: SoundEvent::ItemArmorEquipTurtle,
3857 slot: EquipmentSlot::Head,
3858 ..Equippable::new()
3859 },
3860 ItemKind::WhiteCarpet => Equippable {
3861 allowed_entities: Some(HolderSet::Direct {
3862 contents: vec![EntityKind::Llama, EntityKind::TraderLlama],
3863 }),
3864 asset_id: Some("minecraft:white_carpet".into()),
3865 can_be_sheared: true,
3866 equip_sound: SoundEvent::EntityLlamaSwag,
3867 shearing_sound: SoundEvent::ItemLlamaCarpetUnequip,
3868 slot: EquipmentSlot::Body,
3869 ..Equippable::new()
3870 },
3871 ItemKind::WhiteHarness => Equippable {
3872 allowed_entities: Some(HolderSet::Direct {
3873 contents: azalea_registry::tags::entities::CAN_EQUIP_HARNESS
3874 .clone()
3875 .into_iter()
3876 .collect(),
3877 }),
3878 asset_id: Some("minecraft:white_harness".into()),
3879 can_be_sheared: true,
3880 equip_on_interact: true,
3881 equip_sound: SoundEvent::EntityHappyGhastEquip,
3882 shearing_sound: SoundEvent::EntityHappyGhastUnequip,
3883 slot: EquipmentSlot::Body,
3884 ..Equippable::new()
3885 },
3886 ItemKind::WitherSkeletonSkull => Equippable {
3887 slot: EquipmentSlot::Head,
3888 swappable: false,
3889 ..Equippable::new()
3890 },
3891 ItemKind::WolfArmor => Equippable {
3892 allowed_entities: Some(HolderSet::Direct {
3893 contents: vec![EntityKind::Wolf],
3894 }),
3895 asset_id: Some("minecraft:armadillo_scute".into()),
3896 can_be_sheared: true,
3897 equip_sound: SoundEvent::ItemArmorEquipWolf,
3898 shearing_sound: SoundEvent::ItemArmorUnequipWolf,
3899 slot: EquipmentSlot::Body,
3900 ..Equippable::new()
3901 },
3902 ItemKind::YellowCarpet => Equippable {
3903 allowed_entities: Some(HolderSet::Direct {
3904 contents: vec![EntityKind::Llama, EntityKind::TraderLlama],
3905 }),
3906 asset_id: Some("minecraft:yellow_carpet".into()),
3907 can_be_sheared: true,
3908 equip_sound: SoundEvent::EntityLlamaSwag,
3909 shearing_sound: SoundEvent::ItemLlamaCarpetUnequip,
3910 slot: EquipmentSlot::Body,
3911 ..Equippable::new()
3912 },
3913 ItemKind::YellowHarness => Equippable {
3914 allowed_entities: Some(HolderSet::Direct {
3915 contents: azalea_registry::tags::entities::CAN_EQUIP_HARNESS
3916 .clone()
3917 .into_iter()
3918 .collect(),
3919 }),
3920 asset_id: Some("minecraft:yellow_harness".into()),
3921 can_be_sheared: true,
3922 equip_on_interact: true,
3923 equip_sound: SoundEvent::EntityHappyGhastEquip,
3924 shearing_sound: SoundEvent::EntityHappyGhastUnequip,
3925 slot: EquipmentSlot::Body,
3926 ..Equippable::new()
3927 },
3928 ItemKind::ZombieHead => Equippable {
3929 slot: EquipmentSlot::Head,
3930 swappable: false,
3931 ..Equippable::new()
3932 },
3933 _ => return None,
3934 };
3935 Some(value)
3936 }
3937}
3938impl DefaultableComponent for ChickenVariant {
3939 fn default_for_item(item: ItemKind) -> Option<Self> {
3940 let value = match item {
3941 ItemKind::BlueEgg => ChickenVariant::Referenced("minecraft:cold".into()),
3942 ItemKind::BrownEgg => ChickenVariant::Referenced("minecraft:warm".into()),
3943 ItemKind::Egg => ChickenVariant::Referenced("minecraft:temperate".into()),
3944 _ => return None,
3945 };
3946 Some(value)
3947 }
3948}
3949impl DefaultableComponent for Enchantable {
3950 fn default_for_item(item: ItemKind) -> Option<Self> {
3951 let value = match item {
3952 ItemKind::Book => 1,
3953 ItemKind::Bow => 1,
3954 ItemKind::ChainmailBoots => 12,
3955 ItemKind::ChainmailChestplate => 12,
3956 ItemKind::ChainmailHelmet => 12,
3957 ItemKind::ChainmailLeggings => 12,
3958 ItemKind::CopperAxe => 13,
3959 ItemKind::CopperBoots => 8,
3960 ItemKind::CopperChestplate => 8,
3961 ItemKind::CopperHelmet => 8,
3962 ItemKind::CopperHoe => 13,
3963 ItemKind::CopperLeggings => 8,
3964 ItemKind::CopperPickaxe => 13,
3965 ItemKind::CopperShovel => 13,
3966 ItemKind::CopperSpear => 13,
3967 ItemKind::CopperSword => 13,
3968 ItemKind::Crossbow => 1,
3969 ItemKind::DiamondAxe => 10,
3970 ItemKind::DiamondBoots => 10,
3971 ItemKind::DiamondChestplate => 10,
3972 ItemKind::DiamondHelmet => 10,
3973 ItemKind::DiamondHoe => 10,
3974 ItemKind::DiamondLeggings => 10,
3975 ItemKind::DiamondPickaxe => 10,
3976 ItemKind::DiamondShovel => 10,
3977 ItemKind::DiamondSpear => 10,
3978 ItemKind::DiamondSword => 10,
3979 ItemKind::FishingRod => 1,
3980 ItemKind::GoldenAxe => 22,
3981 ItemKind::GoldenBoots => 25,
3982 ItemKind::GoldenChestplate => 25,
3983 ItemKind::GoldenHelmet => 25,
3984 ItemKind::GoldenHoe => 22,
3985 ItemKind::GoldenLeggings => 25,
3986 ItemKind::GoldenPickaxe => 22,
3987 ItemKind::GoldenShovel => 22,
3988 ItemKind::GoldenSpear => 22,
3989 ItemKind::GoldenSword => 22,
3990 ItemKind::IronAxe => 14,
3991 ItemKind::IronBoots => 9,
3992 ItemKind::IronChestplate => 9,
3993 ItemKind::IronHelmet => 9,
3994 ItemKind::IronHoe => 14,
3995 ItemKind::IronLeggings => 9,
3996 ItemKind::IronPickaxe => 14,
3997 ItemKind::IronShovel => 14,
3998 ItemKind::IronSpear => 14,
3999 ItemKind::IronSword => 14,
4000 ItemKind::LeatherBoots => 15,
4001 ItemKind::LeatherChestplate => 15,
4002 ItemKind::LeatherHelmet => 15,
4003 ItemKind::LeatherLeggings => 15,
4004 ItemKind::Mace => 15,
4005 ItemKind::NetheriteAxe => 15,
4006 ItemKind::NetheriteBoots => 15,
4007 ItemKind::NetheriteChestplate => 15,
4008 ItemKind::NetheriteHelmet => 15,
4009 ItemKind::NetheriteHoe => 15,
4010 ItemKind::NetheriteLeggings => 15,
4011 ItemKind::NetheritePickaxe => 15,
4012 ItemKind::NetheriteShovel => 15,
4013 ItemKind::NetheriteSpear => 15,
4014 ItemKind::NetheriteSword => 15,
4015 ItemKind::StoneAxe => 5,
4016 ItemKind::StoneHoe => 5,
4017 ItemKind::StonePickaxe => 5,
4018 ItemKind::StoneShovel => 5,
4019 ItemKind::StoneSpear => 5,
4020 ItemKind::StoneSword => 5,
4021 ItemKind::Trident => 1,
4022 ItemKind::TurtleHelmet => 9,
4023 ItemKind::WoodenAxe => 15,
4024 ItemKind::WoodenHoe => 15,
4025 ItemKind::WoodenPickaxe => 15,
4026 ItemKind::WoodenShovel => 15,
4027 ItemKind::WoodenSpear => 15,
4028 ItemKind::WoodenSword => 15,
4029 _ => return None,
4030 };
4031 Some(Enchantable { value: value })
4032 }
4033}
4034impl DefaultableComponent for ProvidesBannerPatterns {
4035 fn default_for_item(item: ItemKind) -> Option<Self> {
4036 let value = match item {
4037 ItemKind::BordureIndentedBannerPattern => {
4038 "#minecraft:pattern_item/bordure_indented".into()
4039 }
4040 ItemKind::CreeperBannerPattern => "#minecraft:pattern_item/creeper".into(),
4041 ItemKind::FieldMasonedBannerPattern => "#minecraft:pattern_item/field_masoned".into(),
4042 ItemKind::FlowBannerPattern => "#minecraft:pattern_item/flow".into(),
4043 ItemKind::FlowerBannerPattern => "#minecraft:pattern_item/flower".into(),
4044 ItemKind::GlobeBannerPattern => "#minecraft:pattern_item/globe".into(),
4045 ItemKind::GusterBannerPattern => "#minecraft:pattern_item/guster".into(),
4046 ItemKind::MojangBannerPattern => "#minecraft:pattern_item/mojang".into(),
4047 ItemKind::PiglinBannerPattern => "#minecraft:pattern_item/piglin".into(),
4048 ItemKind::SkullBannerPattern => "#minecraft:pattern_item/skull".into(),
4049 _ => return None,
4050 };
4051 Some(ProvidesBannerPatterns { key: value })
4052 }
4053}
4054impl DefaultableComponent for Damage {
4055 fn default_for_item(item: ItemKind) -> Option<Self> {
4056 let value = match item {
4057 ItemKind::Bow => 0,
4058 ItemKind::Brush => 0,
4059 ItemKind::CarrotOnAStick => 0,
4060 ItemKind::ChainmailBoots => 0,
4061 ItemKind::ChainmailChestplate => 0,
4062 ItemKind::ChainmailHelmet => 0,
4063 ItemKind::ChainmailLeggings => 0,
4064 ItemKind::CopperAxe => 0,
4065 ItemKind::CopperBoots => 0,
4066 ItemKind::CopperChestplate => 0,
4067 ItemKind::CopperHelmet => 0,
4068 ItemKind::CopperHoe => 0,
4069 ItemKind::CopperLeggings => 0,
4070 ItemKind::CopperPickaxe => 0,
4071 ItemKind::CopperShovel => 0,
4072 ItemKind::CopperSpear => 0,
4073 ItemKind::CopperSword => 0,
4074 ItemKind::Crossbow => 0,
4075 ItemKind::DiamondAxe => 0,
4076 ItemKind::DiamondBoots => 0,
4077 ItemKind::DiamondChestplate => 0,
4078 ItemKind::DiamondHelmet => 0,
4079 ItemKind::DiamondHoe => 0,
4080 ItemKind::DiamondLeggings => 0,
4081 ItemKind::DiamondPickaxe => 0,
4082 ItemKind::DiamondShovel => 0,
4083 ItemKind::DiamondSpear => 0,
4084 ItemKind::DiamondSword => 0,
4085 ItemKind::Elytra => 0,
4086 ItemKind::FishingRod => 0,
4087 ItemKind::FlintAndSteel => 0,
4088 ItemKind::GoldenAxe => 0,
4089 ItemKind::GoldenBoots => 0,
4090 ItemKind::GoldenChestplate => 0,
4091 ItemKind::GoldenHelmet => 0,
4092 ItemKind::GoldenHoe => 0,
4093 ItemKind::GoldenLeggings => 0,
4094 ItemKind::GoldenPickaxe => 0,
4095 ItemKind::GoldenShovel => 0,
4096 ItemKind::GoldenSpear => 0,
4097 ItemKind::GoldenSword => 0,
4098 ItemKind::IronAxe => 0,
4099 ItemKind::IronBoots => 0,
4100 ItemKind::IronChestplate => 0,
4101 ItemKind::IronHelmet => 0,
4102 ItemKind::IronHoe => 0,
4103 ItemKind::IronLeggings => 0,
4104 ItemKind::IronPickaxe => 0,
4105 ItemKind::IronShovel => 0,
4106 ItemKind::IronSpear => 0,
4107 ItemKind::IronSword => 0,
4108 ItemKind::LeatherBoots => 0,
4109 ItemKind::LeatherChestplate => 0,
4110 ItemKind::LeatherHelmet => 0,
4111 ItemKind::LeatherLeggings => 0,
4112 ItemKind::Mace => 0,
4113 ItemKind::NetheriteAxe => 0,
4114 ItemKind::NetheriteBoots => 0,
4115 ItemKind::NetheriteChestplate => 0,
4116 ItemKind::NetheriteHelmet => 0,
4117 ItemKind::NetheriteHoe => 0,
4118 ItemKind::NetheriteLeggings => 0,
4119 ItemKind::NetheritePickaxe => 0,
4120 ItemKind::NetheriteShovel => 0,
4121 ItemKind::NetheriteSpear => 0,
4122 ItemKind::NetheriteSword => 0,
4123 ItemKind::Shears => 0,
4124 ItemKind::Shield => 0,
4125 ItemKind::StoneAxe => 0,
4126 ItemKind::StoneHoe => 0,
4127 ItemKind::StonePickaxe => 0,
4128 ItemKind::StoneShovel => 0,
4129 ItemKind::StoneSpear => 0,
4130 ItemKind::StoneSword => 0,
4131 ItemKind::Trident => 0,
4132 ItemKind::TurtleHelmet => 0,
4133 ItemKind::WarpedFungusOnAStick => 0,
4134 ItemKind::WolfArmor => 0,
4135 ItemKind::WoodenAxe => 0,
4136 ItemKind::WoodenHoe => 0,
4137 ItemKind::WoodenPickaxe => 0,
4138 ItemKind::WoodenShovel => 0,
4139 ItemKind::WoodenSpear => 0,
4140 ItemKind::WoodenSword => 0,
4141 _ => return None,
4142 };
4143 Some(Damage { amount: value })
4144 }
4145}
4146impl DefaultableComponent for MaxDamage {
4147 fn default_for_item(item: ItemKind) -> Option<Self> {
4148 let value = match item {
4149 ItemKind::Bow => 384,
4150 ItemKind::Brush => 64,
4151 ItemKind::CarrotOnAStick => 25,
4152 ItemKind::ChainmailBoots => 195,
4153 ItemKind::ChainmailChestplate => 240,
4154 ItemKind::ChainmailHelmet => 165,
4155 ItemKind::ChainmailLeggings => 225,
4156 ItemKind::CopperAxe => 190,
4157 ItemKind::CopperBoots => 143,
4158 ItemKind::CopperChestplate => 176,
4159 ItemKind::CopperHelmet => 121,
4160 ItemKind::CopperHoe => 190,
4161 ItemKind::CopperLeggings => 165,
4162 ItemKind::CopperPickaxe => 190,
4163 ItemKind::CopperShovel => 190,
4164 ItemKind::CopperSpear => 190,
4165 ItemKind::CopperSword => 190,
4166 ItemKind::Crossbow => 465,
4167 ItemKind::DiamondAxe => 1561,
4168 ItemKind::DiamondBoots => 429,
4169 ItemKind::DiamondChestplate => 528,
4170 ItemKind::DiamondHelmet => 363,
4171 ItemKind::DiamondHoe => 1561,
4172 ItemKind::DiamondLeggings => 495,
4173 ItemKind::DiamondPickaxe => 1561,
4174 ItemKind::DiamondShovel => 1561,
4175 ItemKind::DiamondSpear => 1561,
4176 ItemKind::DiamondSword => 1561,
4177 ItemKind::Elytra => 432,
4178 ItemKind::FishingRod => 64,
4179 ItemKind::FlintAndSteel => 64,
4180 ItemKind::GoldenAxe => 32,
4181 ItemKind::GoldenBoots => 91,
4182 ItemKind::GoldenChestplate => 112,
4183 ItemKind::GoldenHelmet => 77,
4184 ItemKind::GoldenHoe => 32,
4185 ItemKind::GoldenLeggings => 105,
4186 ItemKind::GoldenPickaxe => 32,
4187 ItemKind::GoldenShovel => 32,
4188 ItemKind::GoldenSpear => 32,
4189 ItemKind::GoldenSword => 32,
4190 ItemKind::IronAxe => 250,
4191 ItemKind::IronBoots => 195,
4192 ItemKind::IronChestplate => 240,
4193 ItemKind::IronHelmet => 165,
4194 ItemKind::IronHoe => 250,
4195 ItemKind::IronLeggings => 225,
4196 ItemKind::IronPickaxe => 250,
4197 ItemKind::IronShovel => 250,
4198 ItemKind::IronSpear => 250,
4199 ItemKind::IronSword => 250,
4200 ItemKind::LeatherBoots => 65,
4201 ItemKind::LeatherChestplate => 80,
4202 ItemKind::LeatherHelmet => 55,
4203 ItemKind::LeatherLeggings => 75,
4204 ItemKind::Mace => 500,
4205 ItemKind::NetheriteAxe => 2031,
4206 ItemKind::NetheriteBoots => 481,
4207 ItemKind::NetheriteChestplate => 592,
4208 ItemKind::NetheriteHelmet => 407,
4209 ItemKind::NetheriteHoe => 2031,
4210 ItemKind::NetheriteLeggings => 555,
4211 ItemKind::NetheritePickaxe => 2031,
4212 ItemKind::NetheriteShovel => 2031,
4213 ItemKind::NetheriteSpear => 2031,
4214 ItemKind::NetheriteSword => 2031,
4215 ItemKind::Shears => 238,
4216 ItemKind::Shield => 336,
4217 ItemKind::StoneAxe => 131,
4218 ItemKind::StoneHoe => 131,
4219 ItemKind::StonePickaxe => 131,
4220 ItemKind::StoneShovel => 131,
4221 ItemKind::StoneSpear => 131,
4222 ItemKind::StoneSword => 131,
4223 ItemKind::Trident => 250,
4224 ItemKind::TurtleHelmet => 275,
4225 ItemKind::WarpedFungusOnAStick => 100,
4226 ItemKind::WolfArmor => 64,
4227 ItemKind::WoodenAxe => 59,
4228 ItemKind::WoodenHoe => 59,
4229 ItemKind::WoodenPickaxe => 59,
4230 ItemKind::WoodenShovel => 59,
4231 ItemKind::WoodenSpear => 59,
4232 ItemKind::WoodenSword => 59,
4233 _ => return None,
4234 };
4235 Some(MaxDamage { amount: value })
4236 }
4237}
4238impl DefaultableComponent for Repairable {
4239 fn default_for_item(item: ItemKind) -> Option<Self> {
4240 let value = match item {
4241 ItemKind::ChainmailBoots => HolderSet::Direct {
4242 contents: azalea_registry::tags::items::REPAIRS_CHAIN_ARMOR
4243 .clone()
4244 .into_iter()
4245 .collect(),
4246 },
4247 ItemKind::ChainmailChestplate => HolderSet::Direct {
4248 contents: azalea_registry::tags::items::REPAIRS_CHAIN_ARMOR
4249 .clone()
4250 .into_iter()
4251 .collect(),
4252 },
4253 ItemKind::ChainmailHelmet => HolderSet::Direct {
4254 contents: azalea_registry::tags::items::REPAIRS_CHAIN_ARMOR
4255 .clone()
4256 .into_iter()
4257 .collect(),
4258 },
4259 ItemKind::ChainmailLeggings => HolderSet::Direct {
4260 contents: azalea_registry::tags::items::REPAIRS_CHAIN_ARMOR
4261 .clone()
4262 .into_iter()
4263 .collect(),
4264 },
4265 ItemKind::CopperAxe => HolderSet::Direct {
4266 contents: azalea_registry::tags::items::COPPER_TOOL_MATERIALS
4267 .clone()
4268 .into_iter()
4269 .collect(),
4270 },
4271 ItemKind::CopperBoots => HolderSet::Direct {
4272 contents: azalea_registry::tags::items::REPAIRS_COPPER_ARMOR
4273 .clone()
4274 .into_iter()
4275 .collect(),
4276 },
4277 ItemKind::CopperChestplate => HolderSet::Direct {
4278 contents: azalea_registry::tags::items::REPAIRS_COPPER_ARMOR
4279 .clone()
4280 .into_iter()
4281 .collect(),
4282 },
4283 ItemKind::CopperHelmet => HolderSet::Direct {
4284 contents: azalea_registry::tags::items::REPAIRS_COPPER_ARMOR
4285 .clone()
4286 .into_iter()
4287 .collect(),
4288 },
4289 ItemKind::CopperHoe => HolderSet::Direct {
4290 contents: azalea_registry::tags::items::COPPER_TOOL_MATERIALS
4291 .clone()
4292 .into_iter()
4293 .collect(),
4294 },
4295 ItemKind::CopperLeggings => HolderSet::Direct {
4296 contents: azalea_registry::tags::items::REPAIRS_COPPER_ARMOR
4297 .clone()
4298 .into_iter()
4299 .collect(),
4300 },
4301 ItemKind::CopperPickaxe => HolderSet::Direct {
4302 contents: azalea_registry::tags::items::COPPER_TOOL_MATERIALS
4303 .clone()
4304 .into_iter()
4305 .collect(),
4306 },
4307 ItemKind::CopperShovel => HolderSet::Direct {
4308 contents: azalea_registry::tags::items::COPPER_TOOL_MATERIALS
4309 .clone()
4310 .into_iter()
4311 .collect(),
4312 },
4313 ItemKind::CopperSpear => HolderSet::Direct {
4314 contents: azalea_registry::tags::items::COPPER_TOOL_MATERIALS
4315 .clone()
4316 .into_iter()
4317 .collect(),
4318 },
4319 ItemKind::CopperSword => HolderSet::Direct {
4320 contents: azalea_registry::tags::items::COPPER_TOOL_MATERIALS
4321 .clone()
4322 .into_iter()
4323 .collect(),
4324 },
4325 ItemKind::DiamondAxe => HolderSet::Direct {
4326 contents: azalea_registry::tags::items::DIAMOND_TOOL_MATERIALS
4327 .clone()
4328 .into_iter()
4329 .collect(),
4330 },
4331 ItemKind::DiamondBoots => HolderSet::Direct {
4332 contents: azalea_registry::tags::items::REPAIRS_DIAMOND_ARMOR
4333 .clone()
4334 .into_iter()
4335 .collect(),
4336 },
4337 ItemKind::DiamondChestplate => HolderSet::Direct {
4338 contents: azalea_registry::tags::items::REPAIRS_DIAMOND_ARMOR
4339 .clone()
4340 .into_iter()
4341 .collect(),
4342 },
4343 ItemKind::DiamondHelmet => HolderSet::Direct {
4344 contents: azalea_registry::tags::items::REPAIRS_DIAMOND_ARMOR
4345 .clone()
4346 .into_iter()
4347 .collect(),
4348 },
4349 ItemKind::DiamondHoe => HolderSet::Direct {
4350 contents: azalea_registry::tags::items::DIAMOND_TOOL_MATERIALS
4351 .clone()
4352 .into_iter()
4353 .collect(),
4354 },
4355 ItemKind::DiamondLeggings => HolderSet::Direct {
4356 contents: azalea_registry::tags::items::REPAIRS_DIAMOND_ARMOR
4357 .clone()
4358 .into_iter()
4359 .collect(),
4360 },
4361 ItemKind::DiamondPickaxe => HolderSet::Direct {
4362 contents: azalea_registry::tags::items::DIAMOND_TOOL_MATERIALS
4363 .clone()
4364 .into_iter()
4365 .collect(),
4366 },
4367 ItemKind::DiamondShovel => HolderSet::Direct {
4368 contents: azalea_registry::tags::items::DIAMOND_TOOL_MATERIALS
4369 .clone()
4370 .into_iter()
4371 .collect(),
4372 },
4373 ItemKind::DiamondSpear => HolderSet::Direct {
4374 contents: azalea_registry::tags::items::DIAMOND_TOOL_MATERIALS
4375 .clone()
4376 .into_iter()
4377 .collect(),
4378 },
4379 ItemKind::DiamondSword => HolderSet::Direct {
4380 contents: azalea_registry::tags::items::DIAMOND_TOOL_MATERIALS
4381 .clone()
4382 .into_iter()
4383 .collect(),
4384 },
4385 ItemKind::Elytra => HolderSet::Direct {
4386 contents: vec![ItemKind::PhantomMembrane],
4387 },
4388 ItemKind::GoldenAxe => HolderSet::Direct {
4389 contents: azalea_registry::tags::items::GOLD_TOOL_MATERIALS
4390 .clone()
4391 .into_iter()
4392 .collect(),
4393 },
4394 ItemKind::GoldenBoots => HolderSet::Direct {
4395 contents: azalea_registry::tags::items::REPAIRS_GOLD_ARMOR
4396 .clone()
4397 .into_iter()
4398 .collect(),
4399 },
4400 ItemKind::GoldenChestplate => HolderSet::Direct {
4401 contents: azalea_registry::tags::items::REPAIRS_GOLD_ARMOR
4402 .clone()
4403 .into_iter()
4404 .collect(),
4405 },
4406 ItemKind::GoldenHelmet => HolderSet::Direct {
4407 contents: azalea_registry::tags::items::REPAIRS_GOLD_ARMOR
4408 .clone()
4409 .into_iter()
4410 .collect(),
4411 },
4412 ItemKind::GoldenHoe => HolderSet::Direct {
4413 contents: azalea_registry::tags::items::GOLD_TOOL_MATERIALS
4414 .clone()
4415 .into_iter()
4416 .collect(),
4417 },
4418 ItemKind::GoldenLeggings => HolderSet::Direct {
4419 contents: azalea_registry::tags::items::REPAIRS_GOLD_ARMOR
4420 .clone()
4421 .into_iter()
4422 .collect(),
4423 },
4424 ItemKind::GoldenPickaxe => HolderSet::Direct {
4425 contents: azalea_registry::tags::items::GOLD_TOOL_MATERIALS
4426 .clone()
4427 .into_iter()
4428 .collect(),
4429 },
4430 ItemKind::GoldenShovel => HolderSet::Direct {
4431 contents: azalea_registry::tags::items::GOLD_TOOL_MATERIALS
4432 .clone()
4433 .into_iter()
4434 .collect(),
4435 },
4436 ItemKind::GoldenSpear => HolderSet::Direct {
4437 contents: azalea_registry::tags::items::GOLD_TOOL_MATERIALS
4438 .clone()
4439 .into_iter()
4440 .collect(),
4441 },
4442 ItemKind::GoldenSword => HolderSet::Direct {
4443 contents: azalea_registry::tags::items::GOLD_TOOL_MATERIALS
4444 .clone()
4445 .into_iter()
4446 .collect(),
4447 },
4448 ItemKind::IronAxe => HolderSet::Direct {
4449 contents: azalea_registry::tags::items::IRON_TOOL_MATERIALS
4450 .clone()
4451 .into_iter()
4452 .collect(),
4453 },
4454 ItemKind::IronBoots => HolderSet::Direct {
4455 contents: azalea_registry::tags::items::REPAIRS_IRON_ARMOR
4456 .clone()
4457 .into_iter()
4458 .collect(),
4459 },
4460 ItemKind::IronChestplate => HolderSet::Direct {
4461 contents: azalea_registry::tags::items::REPAIRS_IRON_ARMOR
4462 .clone()
4463 .into_iter()
4464 .collect(),
4465 },
4466 ItemKind::IronHelmet => HolderSet::Direct {
4467 contents: azalea_registry::tags::items::REPAIRS_IRON_ARMOR
4468 .clone()
4469 .into_iter()
4470 .collect(),
4471 },
4472 ItemKind::IronHoe => HolderSet::Direct {
4473 contents: azalea_registry::tags::items::IRON_TOOL_MATERIALS
4474 .clone()
4475 .into_iter()
4476 .collect(),
4477 },
4478 ItemKind::IronLeggings => HolderSet::Direct {
4479 contents: azalea_registry::tags::items::REPAIRS_IRON_ARMOR
4480 .clone()
4481 .into_iter()
4482 .collect(),
4483 },
4484 ItemKind::IronPickaxe => HolderSet::Direct {
4485 contents: azalea_registry::tags::items::IRON_TOOL_MATERIALS
4486 .clone()
4487 .into_iter()
4488 .collect(),
4489 },
4490 ItemKind::IronShovel => HolderSet::Direct {
4491 contents: azalea_registry::tags::items::IRON_TOOL_MATERIALS
4492 .clone()
4493 .into_iter()
4494 .collect(),
4495 },
4496 ItemKind::IronSpear => HolderSet::Direct {
4497 contents: azalea_registry::tags::items::IRON_TOOL_MATERIALS
4498 .clone()
4499 .into_iter()
4500 .collect(),
4501 },
4502 ItemKind::IronSword => HolderSet::Direct {
4503 contents: azalea_registry::tags::items::IRON_TOOL_MATERIALS
4504 .clone()
4505 .into_iter()
4506 .collect(),
4507 },
4508 ItemKind::LeatherBoots => HolderSet::Direct {
4509 contents: azalea_registry::tags::items::REPAIRS_LEATHER_ARMOR
4510 .clone()
4511 .into_iter()
4512 .collect(),
4513 },
4514 ItemKind::LeatherChestplate => HolderSet::Direct {
4515 contents: azalea_registry::tags::items::REPAIRS_LEATHER_ARMOR
4516 .clone()
4517 .into_iter()
4518 .collect(),
4519 },
4520 ItemKind::LeatherHelmet => HolderSet::Direct {
4521 contents: azalea_registry::tags::items::REPAIRS_LEATHER_ARMOR
4522 .clone()
4523 .into_iter()
4524 .collect(),
4525 },
4526 ItemKind::LeatherLeggings => HolderSet::Direct {
4527 contents: azalea_registry::tags::items::REPAIRS_LEATHER_ARMOR
4528 .clone()
4529 .into_iter()
4530 .collect(),
4531 },
4532 ItemKind::Mace => HolderSet::Direct {
4533 contents: vec![ItemKind::BreezeRod],
4534 },
4535 ItemKind::NetheriteAxe => HolderSet::Direct {
4536 contents: azalea_registry::tags::items::NETHERITE_TOOL_MATERIALS
4537 .clone()
4538 .into_iter()
4539 .collect(),
4540 },
4541 ItemKind::NetheriteBoots => HolderSet::Direct {
4542 contents: azalea_registry::tags::items::REPAIRS_NETHERITE_ARMOR
4543 .clone()
4544 .into_iter()
4545 .collect(),
4546 },
4547 ItemKind::NetheriteChestplate => HolderSet::Direct {
4548 contents: azalea_registry::tags::items::REPAIRS_NETHERITE_ARMOR
4549 .clone()
4550 .into_iter()
4551 .collect(),
4552 },
4553 ItemKind::NetheriteHelmet => HolderSet::Direct {
4554 contents: azalea_registry::tags::items::REPAIRS_NETHERITE_ARMOR
4555 .clone()
4556 .into_iter()
4557 .collect(),
4558 },
4559 ItemKind::NetheriteHoe => HolderSet::Direct {
4560 contents: azalea_registry::tags::items::NETHERITE_TOOL_MATERIALS
4561 .clone()
4562 .into_iter()
4563 .collect(),
4564 },
4565 ItemKind::NetheriteLeggings => HolderSet::Direct {
4566 contents: azalea_registry::tags::items::REPAIRS_NETHERITE_ARMOR
4567 .clone()
4568 .into_iter()
4569 .collect(),
4570 },
4571 ItemKind::NetheritePickaxe => HolderSet::Direct {
4572 contents: azalea_registry::tags::items::NETHERITE_TOOL_MATERIALS
4573 .clone()
4574 .into_iter()
4575 .collect(),
4576 },
4577 ItemKind::NetheriteShovel => HolderSet::Direct {
4578 contents: azalea_registry::tags::items::NETHERITE_TOOL_MATERIALS
4579 .clone()
4580 .into_iter()
4581 .collect(),
4582 },
4583 ItemKind::NetheriteSpear => HolderSet::Direct {
4584 contents: azalea_registry::tags::items::NETHERITE_TOOL_MATERIALS
4585 .clone()
4586 .into_iter()
4587 .collect(),
4588 },
4589 ItemKind::NetheriteSword => HolderSet::Direct {
4590 contents: azalea_registry::tags::items::NETHERITE_TOOL_MATERIALS
4591 .clone()
4592 .into_iter()
4593 .collect(),
4594 },
4595 ItemKind::Shield => HolderSet::Direct {
4596 contents: azalea_registry::tags::items::WOODEN_TOOL_MATERIALS
4597 .clone()
4598 .into_iter()
4599 .collect(),
4600 },
4601 ItemKind::StoneAxe => HolderSet::Direct {
4602 contents: azalea_registry::tags::items::STONE_TOOL_MATERIALS
4603 .clone()
4604 .into_iter()
4605 .collect(),
4606 },
4607 ItemKind::StoneHoe => HolderSet::Direct {
4608 contents: azalea_registry::tags::items::STONE_TOOL_MATERIALS
4609 .clone()
4610 .into_iter()
4611 .collect(),
4612 },
4613 ItemKind::StonePickaxe => HolderSet::Direct {
4614 contents: azalea_registry::tags::items::STONE_TOOL_MATERIALS
4615 .clone()
4616 .into_iter()
4617 .collect(),
4618 },
4619 ItemKind::StoneShovel => HolderSet::Direct {
4620 contents: azalea_registry::tags::items::STONE_TOOL_MATERIALS
4621 .clone()
4622 .into_iter()
4623 .collect(),
4624 },
4625 ItemKind::StoneSpear => HolderSet::Direct {
4626 contents: azalea_registry::tags::items::STONE_TOOL_MATERIALS
4627 .clone()
4628 .into_iter()
4629 .collect(),
4630 },
4631 ItemKind::StoneSword => HolderSet::Direct {
4632 contents: azalea_registry::tags::items::STONE_TOOL_MATERIALS
4633 .clone()
4634 .into_iter()
4635 .collect(),
4636 },
4637 ItemKind::TurtleHelmet => HolderSet::Direct {
4638 contents: azalea_registry::tags::items::REPAIRS_TURTLE_HELMET
4639 .clone()
4640 .into_iter()
4641 .collect(),
4642 },
4643 ItemKind::WolfArmor => HolderSet::Direct {
4644 contents: azalea_registry::tags::items::REPAIRS_WOLF_ARMOR
4645 .clone()
4646 .into_iter()
4647 .collect(),
4648 },
4649 ItemKind::WoodenAxe => HolderSet::Direct {
4650 contents: azalea_registry::tags::items::WOODEN_TOOL_MATERIALS
4651 .clone()
4652 .into_iter()
4653 .collect(),
4654 },
4655 ItemKind::WoodenHoe => HolderSet::Direct {
4656 contents: azalea_registry::tags::items::WOODEN_TOOL_MATERIALS
4657 .clone()
4658 .into_iter()
4659 .collect(),
4660 },
4661 ItemKind::WoodenPickaxe => HolderSet::Direct {
4662 contents: azalea_registry::tags::items::WOODEN_TOOL_MATERIALS
4663 .clone()
4664 .into_iter()
4665 .collect(),
4666 },
4667 ItemKind::WoodenShovel => HolderSet::Direct {
4668 contents: azalea_registry::tags::items::WOODEN_TOOL_MATERIALS
4669 .clone()
4670 .into_iter()
4671 .collect(),
4672 },
4673 ItemKind::WoodenSpear => HolderSet::Direct {
4674 contents: azalea_registry::tags::items::WOODEN_TOOL_MATERIALS
4675 .clone()
4676 .into_iter()
4677 .collect(),
4678 },
4679 ItemKind::WoodenSword => HolderSet::Direct {
4680 contents: azalea_registry::tags::items::WOODEN_TOOL_MATERIALS
4681 .clone()
4682 .into_iter()
4683 .collect(),
4684 },
4685 _ => return None,
4686 };
4687 Some(Repairable { items: value })
4688 }
4689}
4690impl DefaultableComponent for UseCooldown {
4691 fn default_for_item(item: ItemKind) -> Option<Self> {
4692 let value = match item {
4693 ItemKind::ChorusFruit => UseCooldown {
4694 seconds: 1.0,
4695 ..UseCooldown::new()
4696 },
4697 ItemKind::EnderPearl => UseCooldown {
4698 seconds: 1.0,
4699 ..UseCooldown::new()
4700 },
4701 ItemKind::WindCharge => UseCooldown {
4702 seconds: 0.5,
4703 ..UseCooldown::new()
4704 },
4705 _ => return None,
4706 };
4707 Some(value)
4708 }
4709}
4710impl DefaultableComponent for Tool {
4711 fn default_for_item(item: ItemKind) -> Option<Self> {
4712 let value = match item {
4713 ItemKind::CopperAxe => Tool {
4714 rules: vec![
4715 ToolRule {
4716 blocks: HolderSet::Direct {
4717 contents: azalea_registry::tags::blocks::INCORRECT_FOR_COPPER_TOOL
4718 .clone()
4719 .into_iter()
4720 .collect(),
4721 },
4722 correct_for_drops: Some(false),
4723 ..ToolRule::new()
4724 },
4725 ToolRule {
4726 blocks: HolderSet::Direct {
4727 contents: azalea_registry::tags::blocks::MINEABLE_AXE
4728 .clone()
4729 .into_iter()
4730 .collect(),
4731 },
4732 correct_for_drops: Some(true),
4733 speed: Some(5.0),
4734 },
4735 ],
4736 ..Tool::new()
4737 },
4738 ItemKind::CopperHoe => Tool {
4739 rules: vec![
4740 ToolRule {
4741 blocks: HolderSet::Direct {
4742 contents: azalea_registry::tags::blocks::INCORRECT_FOR_COPPER_TOOL
4743 .clone()
4744 .into_iter()
4745 .collect(),
4746 },
4747 correct_for_drops: Some(false),
4748 ..ToolRule::new()
4749 },
4750 ToolRule {
4751 blocks: HolderSet::Direct {
4752 contents: azalea_registry::tags::blocks::MINEABLE_HOE
4753 .clone()
4754 .into_iter()
4755 .collect(),
4756 },
4757 correct_for_drops: Some(true),
4758 speed: Some(5.0),
4759 },
4760 ],
4761 ..Tool::new()
4762 },
4763 ItemKind::CopperPickaxe => Tool {
4764 rules: vec![
4765 ToolRule {
4766 blocks: HolderSet::Direct {
4767 contents: azalea_registry::tags::blocks::INCORRECT_FOR_COPPER_TOOL
4768 .clone()
4769 .into_iter()
4770 .collect(),
4771 },
4772 correct_for_drops: Some(false),
4773 ..ToolRule::new()
4774 },
4775 ToolRule {
4776 blocks: HolderSet::Direct {
4777 contents: azalea_registry::tags::blocks::MINEABLE_PICKAXE
4778 .clone()
4779 .into_iter()
4780 .collect(),
4781 },
4782 correct_for_drops: Some(true),
4783 speed: Some(5.0),
4784 },
4785 ],
4786 ..Tool::new()
4787 },
4788 ItemKind::CopperShovel => Tool {
4789 rules: vec![
4790 ToolRule {
4791 blocks: HolderSet::Direct {
4792 contents: azalea_registry::tags::blocks::INCORRECT_FOR_COPPER_TOOL
4793 .clone()
4794 .into_iter()
4795 .collect(),
4796 },
4797 correct_for_drops: Some(false),
4798 ..ToolRule::new()
4799 },
4800 ToolRule {
4801 blocks: HolderSet::Direct {
4802 contents: azalea_registry::tags::blocks::MINEABLE_SHOVEL
4803 .clone()
4804 .into_iter()
4805 .collect(),
4806 },
4807 correct_for_drops: Some(true),
4808 speed: Some(5.0),
4809 },
4810 ],
4811 ..Tool::new()
4812 },
4813 ItemKind::CopperSword => Tool {
4814 can_destroy_blocks_in_creative: false,
4815 damage_per_block: 2,
4816 rules: vec![
4817 ToolRule {
4818 blocks: HolderSet::Direct {
4819 contents: vec![BlockKind::Cobweb],
4820 },
4821 correct_for_drops: Some(true),
4822 speed: Some(15.0),
4823 },
4824 ToolRule {
4825 blocks: HolderSet::Direct {
4826 contents: azalea_registry::tags::blocks::SWORD_INSTANTLY_MINES
4827 .clone()
4828 .into_iter()
4829 .collect(),
4830 },
4831 speed: Some(3.4028235e+38),
4832 ..ToolRule::new()
4833 },
4834 ToolRule {
4835 blocks: HolderSet::Direct {
4836 contents: azalea_registry::tags::blocks::SWORD_EFFICIENT
4837 .clone()
4838 .into_iter()
4839 .collect(),
4840 },
4841 speed: Some(1.5),
4842 ..ToolRule::new()
4843 },
4844 ],
4845 ..Tool::new()
4846 },
4847 ItemKind::DiamondAxe => Tool {
4848 rules: vec![
4849 ToolRule {
4850 blocks: HolderSet::Direct {
4851 contents: azalea_registry::tags::blocks::INCORRECT_FOR_DIAMOND_TOOL
4852 .clone()
4853 .into_iter()
4854 .collect(),
4855 },
4856 correct_for_drops: Some(false),
4857 ..ToolRule::new()
4858 },
4859 ToolRule {
4860 blocks: HolderSet::Direct {
4861 contents: azalea_registry::tags::blocks::MINEABLE_AXE
4862 .clone()
4863 .into_iter()
4864 .collect(),
4865 },
4866 correct_for_drops: Some(true),
4867 speed: Some(8.0),
4868 },
4869 ],
4870 ..Tool::new()
4871 },
4872 ItemKind::DiamondHoe => Tool {
4873 rules: vec![
4874 ToolRule {
4875 blocks: HolderSet::Direct {
4876 contents: azalea_registry::tags::blocks::INCORRECT_FOR_DIAMOND_TOOL
4877 .clone()
4878 .into_iter()
4879 .collect(),
4880 },
4881 correct_for_drops: Some(false),
4882 ..ToolRule::new()
4883 },
4884 ToolRule {
4885 blocks: HolderSet::Direct {
4886 contents: azalea_registry::tags::blocks::MINEABLE_HOE
4887 .clone()
4888 .into_iter()
4889 .collect(),
4890 },
4891 correct_for_drops: Some(true),
4892 speed: Some(8.0),
4893 },
4894 ],
4895 ..Tool::new()
4896 },
4897 ItemKind::DiamondPickaxe => Tool {
4898 rules: vec![
4899 ToolRule {
4900 blocks: HolderSet::Direct {
4901 contents: azalea_registry::tags::blocks::INCORRECT_FOR_DIAMOND_TOOL
4902 .clone()
4903 .into_iter()
4904 .collect(),
4905 },
4906 correct_for_drops: Some(false),
4907 ..ToolRule::new()
4908 },
4909 ToolRule {
4910 blocks: HolderSet::Direct {
4911 contents: azalea_registry::tags::blocks::MINEABLE_PICKAXE
4912 .clone()
4913 .into_iter()
4914 .collect(),
4915 },
4916 correct_for_drops: Some(true),
4917 speed: Some(8.0),
4918 },
4919 ],
4920 ..Tool::new()
4921 },
4922 ItemKind::DiamondShovel => Tool {
4923 rules: vec![
4924 ToolRule {
4925 blocks: HolderSet::Direct {
4926 contents: azalea_registry::tags::blocks::INCORRECT_FOR_DIAMOND_TOOL
4927 .clone()
4928 .into_iter()
4929 .collect(),
4930 },
4931 correct_for_drops: Some(false),
4932 ..ToolRule::new()
4933 },
4934 ToolRule {
4935 blocks: HolderSet::Direct {
4936 contents: azalea_registry::tags::blocks::MINEABLE_SHOVEL
4937 .clone()
4938 .into_iter()
4939 .collect(),
4940 },
4941 correct_for_drops: Some(true),
4942 speed: Some(8.0),
4943 },
4944 ],
4945 ..Tool::new()
4946 },
4947 ItemKind::DiamondSword => Tool {
4948 can_destroy_blocks_in_creative: false,
4949 damage_per_block: 2,
4950 rules: vec![
4951 ToolRule {
4952 blocks: HolderSet::Direct {
4953 contents: vec![BlockKind::Cobweb],
4954 },
4955 correct_for_drops: Some(true),
4956 speed: Some(15.0),
4957 },
4958 ToolRule {
4959 blocks: HolderSet::Direct {
4960 contents: azalea_registry::tags::blocks::SWORD_INSTANTLY_MINES
4961 .clone()
4962 .into_iter()
4963 .collect(),
4964 },
4965 speed: Some(3.4028235e+38),
4966 ..ToolRule::new()
4967 },
4968 ToolRule {
4969 blocks: HolderSet::Direct {
4970 contents: azalea_registry::tags::blocks::SWORD_EFFICIENT
4971 .clone()
4972 .into_iter()
4973 .collect(),
4974 },
4975 speed: Some(1.5),
4976 ..ToolRule::new()
4977 },
4978 ],
4979 ..Tool::new()
4980 },
4981 ItemKind::GoldenAxe => Tool {
4982 rules: vec![
4983 ToolRule {
4984 blocks: HolderSet::Direct {
4985 contents: azalea_registry::tags::blocks::INCORRECT_FOR_GOLD_TOOL
4986 .clone()
4987 .into_iter()
4988 .collect(),
4989 },
4990 correct_for_drops: Some(false),
4991 ..ToolRule::new()
4992 },
4993 ToolRule {
4994 blocks: HolderSet::Direct {
4995 contents: azalea_registry::tags::blocks::MINEABLE_AXE
4996 .clone()
4997 .into_iter()
4998 .collect(),
4999 },
5000 correct_for_drops: Some(true),
5001 speed: Some(12.0),
5002 },
5003 ],
5004 ..Tool::new()
5005 },
5006 ItemKind::GoldenHoe => Tool {
5007 rules: vec![
5008 ToolRule {
5009 blocks: HolderSet::Direct {
5010 contents: azalea_registry::tags::blocks::INCORRECT_FOR_GOLD_TOOL
5011 .clone()
5012 .into_iter()
5013 .collect(),
5014 },
5015 correct_for_drops: Some(false),
5016 ..ToolRule::new()
5017 },
5018 ToolRule {
5019 blocks: HolderSet::Direct {
5020 contents: azalea_registry::tags::blocks::MINEABLE_HOE
5021 .clone()
5022 .into_iter()
5023 .collect(),
5024 },
5025 correct_for_drops: Some(true),
5026 speed: Some(12.0),
5027 },
5028 ],
5029 ..Tool::new()
5030 },
5031 ItemKind::GoldenPickaxe => Tool {
5032 rules: vec![
5033 ToolRule {
5034 blocks: HolderSet::Direct {
5035 contents: azalea_registry::tags::blocks::INCORRECT_FOR_GOLD_TOOL
5036 .clone()
5037 .into_iter()
5038 .collect(),
5039 },
5040 correct_for_drops: Some(false),
5041 ..ToolRule::new()
5042 },
5043 ToolRule {
5044 blocks: HolderSet::Direct {
5045 contents: azalea_registry::tags::blocks::MINEABLE_PICKAXE
5046 .clone()
5047 .into_iter()
5048 .collect(),
5049 },
5050 correct_for_drops: Some(true),
5051 speed: Some(12.0),
5052 },
5053 ],
5054 ..Tool::new()
5055 },
5056 ItemKind::GoldenShovel => Tool {
5057 rules: vec![
5058 ToolRule {
5059 blocks: HolderSet::Direct {
5060 contents: azalea_registry::tags::blocks::INCORRECT_FOR_GOLD_TOOL
5061 .clone()
5062 .into_iter()
5063 .collect(),
5064 },
5065 correct_for_drops: Some(false),
5066 ..ToolRule::new()
5067 },
5068 ToolRule {
5069 blocks: HolderSet::Direct {
5070 contents: azalea_registry::tags::blocks::MINEABLE_SHOVEL
5071 .clone()
5072 .into_iter()
5073 .collect(),
5074 },
5075 correct_for_drops: Some(true),
5076 speed: Some(12.0),
5077 },
5078 ],
5079 ..Tool::new()
5080 },
5081 ItemKind::GoldenSword => Tool {
5082 can_destroy_blocks_in_creative: false,
5083 damage_per_block: 2,
5084 rules: vec![
5085 ToolRule {
5086 blocks: HolderSet::Direct {
5087 contents: vec![BlockKind::Cobweb],
5088 },
5089 correct_for_drops: Some(true),
5090 speed: Some(15.0),
5091 },
5092 ToolRule {
5093 blocks: HolderSet::Direct {
5094 contents: azalea_registry::tags::blocks::SWORD_INSTANTLY_MINES
5095 .clone()
5096 .into_iter()
5097 .collect(),
5098 },
5099 speed: Some(3.4028235e+38),
5100 ..ToolRule::new()
5101 },
5102 ToolRule {
5103 blocks: HolderSet::Direct {
5104 contents: azalea_registry::tags::blocks::SWORD_EFFICIENT
5105 .clone()
5106 .into_iter()
5107 .collect(),
5108 },
5109 speed: Some(1.5),
5110 ..ToolRule::new()
5111 },
5112 ],
5113 ..Tool::new()
5114 },
5115 ItemKind::IronAxe => Tool {
5116 rules: vec![
5117 ToolRule {
5118 blocks: HolderSet::Direct {
5119 contents: azalea_registry::tags::blocks::INCORRECT_FOR_IRON_TOOL
5120 .clone()
5121 .into_iter()
5122 .collect(),
5123 },
5124 correct_for_drops: Some(false),
5125 ..ToolRule::new()
5126 },
5127 ToolRule {
5128 blocks: HolderSet::Direct {
5129 contents: azalea_registry::tags::blocks::MINEABLE_AXE
5130 .clone()
5131 .into_iter()
5132 .collect(),
5133 },
5134 correct_for_drops: Some(true),
5135 speed: Some(6.0),
5136 },
5137 ],
5138 ..Tool::new()
5139 },
5140 ItemKind::IronHoe => Tool {
5141 rules: vec![
5142 ToolRule {
5143 blocks: HolderSet::Direct {
5144 contents: azalea_registry::tags::blocks::INCORRECT_FOR_IRON_TOOL
5145 .clone()
5146 .into_iter()
5147 .collect(),
5148 },
5149 correct_for_drops: Some(false),
5150 ..ToolRule::new()
5151 },
5152 ToolRule {
5153 blocks: HolderSet::Direct {
5154 contents: azalea_registry::tags::blocks::MINEABLE_HOE
5155 .clone()
5156 .into_iter()
5157 .collect(),
5158 },
5159 correct_for_drops: Some(true),
5160 speed: Some(6.0),
5161 },
5162 ],
5163 ..Tool::new()
5164 },
5165 ItemKind::IronPickaxe => Tool {
5166 rules: vec![
5167 ToolRule {
5168 blocks: HolderSet::Direct {
5169 contents: azalea_registry::tags::blocks::INCORRECT_FOR_IRON_TOOL
5170 .clone()
5171 .into_iter()
5172 .collect(),
5173 },
5174 correct_for_drops: Some(false),
5175 ..ToolRule::new()
5176 },
5177 ToolRule {
5178 blocks: HolderSet::Direct {
5179 contents: azalea_registry::tags::blocks::MINEABLE_PICKAXE
5180 .clone()
5181 .into_iter()
5182 .collect(),
5183 },
5184 correct_for_drops: Some(true),
5185 speed: Some(6.0),
5186 },
5187 ],
5188 ..Tool::new()
5189 },
5190 ItemKind::IronShovel => Tool {
5191 rules: vec![
5192 ToolRule {
5193 blocks: HolderSet::Direct {
5194 contents: azalea_registry::tags::blocks::INCORRECT_FOR_IRON_TOOL
5195 .clone()
5196 .into_iter()
5197 .collect(),
5198 },
5199 correct_for_drops: Some(false),
5200 ..ToolRule::new()
5201 },
5202 ToolRule {
5203 blocks: HolderSet::Direct {
5204 contents: azalea_registry::tags::blocks::MINEABLE_SHOVEL
5205 .clone()
5206 .into_iter()
5207 .collect(),
5208 },
5209 correct_for_drops: Some(true),
5210 speed: Some(6.0),
5211 },
5212 ],
5213 ..Tool::new()
5214 },
5215 ItemKind::IronSword => Tool {
5216 can_destroy_blocks_in_creative: false,
5217 damage_per_block: 2,
5218 rules: vec![
5219 ToolRule {
5220 blocks: HolderSet::Direct {
5221 contents: vec![BlockKind::Cobweb],
5222 },
5223 correct_for_drops: Some(true),
5224 speed: Some(15.0),
5225 },
5226 ToolRule {
5227 blocks: HolderSet::Direct {
5228 contents: azalea_registry::tags::blocks::SWORD_INSTANTLY_MINES
5229 .clone()
5230 .into_iter()
5231 .collect(),
5232 },
5233 speed: Some(3.4028235e+38),
5234 ..ToolRule::new()
5235 },
5236 ToolRule {
5237 blocks: HolderSet::Direct {
5238 contents: azalea_registry::tags::blocks::SWORD_EFFICIENT
5239 .clone()
5240 .into_iter()
5241 .collect(),
5242 },
5243 speed: Some(1.5),
5244 ..ToolRule::new()
5245 },
5246 ],
5247 ..Tool::new()
5248 },
5249 ItemKind::Mace => Tool {
5250 can_destroy_blocks_in_creative: false,
5251 damage_per_block: 2,
5252 rules: vec![],
5253 ..Tool::new()
5254 },
5255 ItemKind::NetheriteAxe => Tool {
5256 rules: vec![
5257 ToolRule {
5258 blocks: HolderSet::Direct {
5259 contents: azalea_registry::tags::blocks::INCORRECT_FOR_NETHERITE_TOOL
5260 .clone()
5261 .into_iter()
5262 .collect(),
5263 },
5264 correct_for_drops: Some(false),
5265 ..ToolRule::new()
5266 },
5267 ToolRule {
5268 blocks: HolderSet::Direct {
5269 contents: azalea_registry::tags::blocks::MINEABLE_AXE
5270 .clone()
5271 .into_iter()
5272 .collect(),
5273 },
5274 correct_for_drops: Some(true),
5275 speed: Some(9.0),
5276 },
5277 ],
5278 ..Tool::new()
5279 },
5280 ItemKind::NetheriteHoe => Tool {
5281 rules: vec![
5282 ToolRule {
5283 blocks: HolderSet::Direct {
5284 contents: azalea_registry::tags::blocks::INCORRECT_FOR_NETHERITE_TOOL
5285 .clone()
5286 .into_iter()
5287 .collect(),
5288 },
5289 correct_for_drops: Some(false),
5290 ..ToolRule::new()
5291 },
5292 ToolRule {
5293 blocks: HolderSet::Direct {
5294 contents: azalea_registry::tags::blocks::MINEABLE_HOE
5295 .clone()
5296 .into_iter()
5297 .collect(),
5298 },
5299 correct_for_drops: Some(true),
5300 speed: Some(9.0),
5301 },
5302 ],
5303 ..Tool::new()
5304 },
5305 ItemKind::NetheritePickaxe => Tool {
5306 rules: vec![
5307 ToolRule {
5308 blocks: HolderSet::Direct {
5309 contents: azalea_registry::tags::blocks::INCORRECT_FOR_NETHERITE_TOOL
5310 .clone()
5311 .into_iter()
5312 .collect(),
5313 },
5314 correct_for_drops: Some(false),
5315 ..ToolRule::new()
5316 },
5317 ToolRule {
5318 blocks: HolderSet::Direct {
5319 contents: azalea_registry::tags::blocks::MINEABLE_PICKAXE
5320 .clone()
5321 .into_iter()
5322 .collect(),
5323 },
5324 correct_for_drops: Some(true),
5325 speed: Some(9.0),
5326 },
5327 ],
5328 ..Tool::new()
5329 },
5330 ItemKind::NetheriteShovel => Tool {
5331 rules: vec![
5332 ToolRule {
5333 blocks: HolderSet::Direct {
5334 contents: azalea_registry::tags::blocks::INCORRECT_FOR_NETHERITE_TOOL
5335 .clone()
5336 .into_iter()
5337 .collect(),
5338 },
5339 correct_for_drops: Some(false),
5340 ..ToolRule::new()
5341 },
5342 ToolRule {
5343 blocks: HolderSet::Direct {
5344 contents: azalea_registry::tags::blocks::MINEABLE_SHOVEL
5345 .clone()
5346 .into_iter()
5347 .collect(),
5348 },
5349 correct_for_drops: Some(true),
5350 speed: Some(9.0),
5351 },
5352 ],
5353 ..Tool::new()
5354 },
5355 ItemKind::NetheriteSword => Tool {
5356 can_destroy_blocks_in_creative: false,
5357 damage_per_block: 2,
5358 rules: vec![
5359 ToolRule {
5360 blocks: HolderSet::Direct {
5361 contents: vec![BlockKind::Cobweb],
5362 },
5363 correct_for_drops: Some(true),
5364 speed: Some(15.0),
5365 },
5366 ToolRule {
5367 blocks: HolderSet::Direct {
5368 contents: azalea_registry::tags::blocks::SWORD_INSTANTLY_MINES
5369 .clone()
5370 .into_iter()
5371 .collect(),
5372 },
5373 speed: Some(3.4028235e+38),
5374 ..ToolRule::new()
5375 },
5376 ToolRule {
5377 blocks: HolderSet::Direct {
5378 contents: azalea_registry::tags::blocks::SWORD_EFFICIENT
5379 .clone()
5380 .into_iter()
5381 .collect(),
5382 },
5383 speed: Some(1.5),
5384 ..ToolRule::new()
5385 },
5386 ],
5387 ..Tool::new()
5388 },
5389 ItemKind::Shears => Tool {
5390 rules: vec![
5391 ToolRule {
5392 blocks: HolderSet::Direct {
5393 contents: vec![BlockKind::Cobweb],
5394 },
5395 correct_for_drops: Some(true),
5396 speed: Some(15.0),
5397 },
5398 ToolRule {
5399 blocks: HolderSet::Direct {
5400 contents: azalea_registry::tags::blocks::LEAVES
5401 .clone()
5402 .into_iter()
5403 .collect(),
5404 },
5405 speed: Some(15.0),
5406 ..ToolRule::new()
5407 },
5408 ToolRule {
5409 blocks: HolderSet::Direct {
5410 contents: azalea_registry::tags::blocks::WOOL
5411 .clone()
5412 .into_iter()
5413 .collect(),
5414 },
5415 speed: Some(5.0),
5416 ..ToolRule::new()
5417 },
5418 ToolRule {
5419 blocks: HolderSet::Direct {
5420 contents: vec![BlockKind::Vine, BlockKind::GlowLichen],
5421 },
5422 speed: Some(2.0),
5423 ..ToolRule::new()
5424 },
5425 ],
5426 ..Tool::new()
5427 },
5428 ItemKind::StoneAxe => Tool {
5429 rules: vec![
5430 ToolRule {
5431 blocks: HolderSet::Direct {
5432 contents: azalea_registry::tags::blocks::INCORRECT_FOR_STONE_TOOL
5433 .clone()
5434 .into_iter()
5435 .collect(),
5436 },
5437 correct_for_drops: Some(false),
5438 ..ToolRule::new()
5439 },
5440 ToolRule {
5441 blocks: HolderSet::Direct {
5442 contents: azalea_registry::tags::blocks::MINEABLE_AXE
5443 .clone()
5444 .into_iter()
5445 .collect(),
5446 },
5447 correct_for_drops: Some(true),
5448 speed: Some(4.0),
5449 },
5450 ],
5451 ..Tool::new()
5452 },
5453 ItemKind::StoneHoe => Tool {
5454 rules: vec![
5455 ToolRule {
5456 blocks: HolderSet::Direct {
5457 contents: azalea_registry::tags::blocks::INCORRECT_FOR_STONE_TOOL
5458 .clone()
5459 .into_iter()
5460 .collect(),
5461 },
5462 correct_for_drops: Some(false),
5463 ..ToolRule::new()
5464 },
5465 ToolRule {
5466 blocks: HolderSet::Direct {
5467 contents: azalea_registry::tags::blocks::MINEABLE_HOE
5468 .clone()
5469 .into_iter()
5470 .collect(),
5471 },
5472 correct_for_drops: Some(true),
5473 speed: Some(4.0),
5474 },
5475 ],
5476 ..Tool::new()
5477 },
5478 ItemKind::StonePickaxe => Tool {
5479 rules: vec![
5480 ToolRule {
5481 blocks: HolderSet::Direct {
5482 contents: azalea_registry::tags::blocks::INCORRECT_FOR_STONE_TOOL
5483 .clone()
5484 .into_iter()
5485 .collect(),
5486 },
5487 correct_for_drops: Some(false),
5488 ..ToolRule::new()
5489 },
5490 ToolRule {
5491 blocks: HolderSet::Direct {
5492 contents: azalea_registry::tags::blocks::MINEABLE_PICKAXE
5493 .clone()
5494 .into_iter()
5495 .collect(),
5496 },
5497 correct_for_drops: Some(true),
5498 speed: Some(4.0),
5499 },
5500 ],
5501 ..Tool::new()
5502 },
5503 ItemKind::StoneShovel => Tool {
5504 rules: vec![
5505 ToolRule {
5506 blocks: HolderSet::Direct {
5507 contents: azalea_registry::tags::blocks::INCORRECT_FOR_STONE_TOOL
5508 .clone()
5509 .into_iter()
5510 .collect(),
5511 },
5512 correct_for_drops: Some(false),
5513 ..ToolRule::new()
5514 },
5515 ToolRule {
5516 blocks: HolderSet::Direct {
5517 contents: azalea_registry::tags::blocks::MINEABLE_SHOVEL
5518 .clone()
5519 .into_iter()
5520 .collect(),
5521 },
5522 correct_for_drops: Some(true),
5523 speed: Some(4.0),
5524 },
5525 ],
5526 ..Tool::new()
5527 },
5528 ItemKind::StoneSword => Tool {
5529 can_destroy_blocks_in_creative: false,
5530 damage_per_block: 2,
5531 rules: vec![
5532 ToolRule {
5533 blocks: HolderSet::Direct {
5534 contents: vec![BlockKind::Cobweb],
5535 },
5536 correct_for_drops: Some(true),
5537 speed: Some(15.0),
5538 },
5539 ToolRule {
5540 blocks: HolderSet::Direct {
5541 contents: azalea_registry::tags::blocks::SWORD_INSTANTLY_MINES
5542 .clone()
5543 .into_iter()
5544 .collect(),
5545 },
5546 speed: Some(3.4028235e+38),
5547 ..ToolRule::new()
5548 },
5549 ToolRule {
5550 blocks: HolderSet::Direct {
5551 contents: azalea_registry::tags::blocks::SWORD_EFFICIENT
5552 .clone()
5553 .into_iter()
5554 .collect(),
5555 },
5556 speed: Some(1.5),
5557 ..ToolRule::new()
5558 },
5559 ],
5560 ..Tool::new()
5561 },
5562 ItemKind::Trident => Tool {
5563 can_destroy_blocks_in_creative: false,
5564 damage_per_block: 2,
5565 rules: vec![],
5566 ..Tool::new()
5567 },
5568 ItemKind::WoodenAxe => Tool {
5569 rules: vec![
5570 ToolRule {
5571 blocks: HolderSet::Direct {
5572 contents: azalea_registry::tags::blocks::INCORRECT_FOR_WOODEN_TOOL
5573 .clone()
5574 .into_iter()
5575 .collect(),
5576 },
5577 correct_for_drops: Some(false),
5578 ..ToolRule::new()
5579 },
5580 ToolRule {
5581 blocks: HolderSet::Direct {
5582 contents: azalea_registry::tags::blocks::MINEABLE_AXE
5583 .clone()
5584 .into_iter()
5585 .collect(),
5586 },
5587 correct_for_drops: Some(true),
5588 speed: Some(2.0),
5589 },
5590 ],
5591 ..Tool::new()
5592 },
5593 ItemKind::WoodenHoe => Tool {
5594 rules: vec![
5595 ToolRule {
5596 blocks: HolderSet::Direct {
5597 contents: azalea_registry::tags::blocks::INCORRECT_FOR_WOODEN_TOOL
5598 .clone()
5599 .into_iter()
5600 .collect(),
5601 },
5602 correct_for_drops: Some(false),
5603 ..ToolRule::new()
5604 },
5605 ToolRule {
5606 blocks: HolderSet::Direct {
5607 contents: azalea_registry::tags::blocks::MINEABLE_HOE
5608 .clone()
5609 .into_iter()
5610 .collect(),
5611 },
5612 correct_for_drops: Some(true),
5613 speed: Some(2.0),
5614 },
5615 ],
5616 ..Tool::new()
5617 },
5618 ItemKind::WoodenPickaxe => Tool {
5619 rules: vec![
5620 ToolRule {
5621 blocks: HolderSet::Direct {
5622 contents: azalea_registry::tags::blocks::INCORRECT_FOR_WOODEN_TOOL
5623 .clone()
5624 .into_iter()
5625 .collect(),
5626 },
5627 correct_for_drops: Some(false),
5628 ..ToolRule::new()
5629 },
5630 ToolRule {
5631 blocks: HolderSet::Direct {
5632 contents: azalea_registry::tags::blocks::MINEABLE_PICKAXE
5633 .clone()
5634 .into_iter()
5635 .collect(),
5636 },
5637 correct_for_drops: Some(true),
5638 speed: Some(2.0),
5639 },
5640 ],
5641 ..Tool::new()
5642 },
5643 ItemKind::WoodenShovel => Tool {
5644 rules: vec![
5645 ToolRule {
5646 blocks: HolderSet::Direct {
5647 contents: azalea_registry::tags::blocks::INCORRECT_FOR_WOODEN_TOOL
5648 .clone()
5649 .into_iter()
5650 .collect(),
5651 },
5652 correct_for_drops: Some(false),
5653 ..ToolRule::new()
5654 },
5655 ToolRule {
5656 blocks: HolderSet::Direct {
5657 contents: azalea_registry::tags::blocks::MINEABLE_SHOVEL
5658 .clone()
5659 .into_iter()
5660 .collect(),
5661 },
5662 correct_for_drops: Some(true),
5663 speed: Some(2.0),
5664 },
5665 ],
5666 ..Tool::new()
5667 },
5668 ItemKind::WoodenSword => Tool {
5669 can_destroy_blocks_in_creative: false,
5670 damage_per_block: 2,
5671 rules: vec![
5672 ToolRule {
5673 blocks: HolderSet::Direct {
5674 contents: vec![BlockKind::Cobweb],
5675 },
5676 correct_for_drops: Some(true),
5677 speed: Some(15.0),
5678 },
5679 ToolRule {
5680 blocks: HolderSet::Direct {
5681 contents: azalea_registry::tags::blocks::SWORD_INSTANTLY_MINES
5682 .clone()
5683 .into_iter()
5684 .collect(),
5685 },
5686 speed: Some(3.4028235e+38),
5687 ..ToolRule::new()
5688 },
5689 ToolRule {
5690 blocks: HolderSet::Direct {
5691 contents: azalea_registry::tags::blocks::SWORD_EFFICIENT
5692 .clone()
5693 .into_iter()
5694 .collect(),
5695 },
5696 speed: Some(1.5),
5697 ..ToolRule::new()
5698 },
5699 ],
5700 ..Tool::new()
5701 },
5702 _ => return None,
5703 };
5704 Some(value)
5705 }
5706}
5707impl DefaultableComponent for Weapon {
5708 fn default_for_item(item: ItemKind) -> Option<Self> {
5709 let value = match item {
5710 ItemKind::CopperAxe => Weapon {
5711 disable_blocking_for_seconds: 5.0,
5712 item_damage_per_attack: 2,
5713 },
5714 ItemKind::CopperHoe => Weapon {
5715 item_damage_per_attack: 2,
5716 ..Weapon::new()
5717 },
5718 ItemKind::CopperPickaxe => Weapon {
5719 item_damage_per_attack: 2,
5720 ..Weapon::new()
5721 },
5722 ItemKind::CopperShovel => Weapon {
5723 item_damage_per_attack: 2,
5724 ..Weapon::new()
5725 },
5726 ItemKind::CopperSpear => Weapon::new(),
5727 ItemKind::CopperSword => Weapon::new(),
5728 ItemKind::DiamondAxe => Weapon {
5729 disable_blocking_for_seconds: 5.0,
5730 item_damage_per_attack: 2,
5731 },
5732 ItemKind::DiamondHoe => Weapon {
5733 item_damage_per_attack: 2,
5734 ..Weapon::new()
5735 },
5736 ItemKind::DiamondPickaxe => Weapon {
5737 item_damage_per_attack: 2,
5738 ..Weapon::new()
5739 },
5740 ItemKind::DiamondShovel => Weapon {
5741 item_damage_per_attack: 2,
5742 ..Weapon::new()
5743 },
5744 ItemKind::DiamondSpear => Weapon::new(),
5745 ItemKind::DiamondSword => Weapon::new(),
5746 ItemKind::GoldenAxe => Weapon {
5747 disable_blocking_for_seconds: 5.0,
5748 item_damage_per_attack: 2,
5749 },
5750 ItemKind::GoldenHoe => Weapon {
5751 item_damage_per_attack: 2,
5752 ..Weapon::new()
5753 },
5754 ItemKind::GoldenPickaxe => Weapon {
5755 item_damage_per_attack: 2,
5756 ..Weapon::new()
5757 },
5758 ItemKind::GoldenShovel => Weapon {
5759 item_damage_per_attack: 2,
5760 ..Weapon::new()
5761 },
5762 ItemKind::GoldenSpear => Weapon::new(),
5763 ItemKind::GoldenSword => Weapon::new(),
5764 ItemKind::IronAxe => Weapon {
5765 disable_blocking_for_seconds: 5.0,
5766 item_damage_per_attack: 2,
5767 },
5768 ItemKind::IronHoe => Weapon {
5769 item_damage_per_attack: 2,
5770 ..Weapon::new()
5771 },
5772 ItemKind::IronPickaxe => Weapon {
5773 item_damage_per_attack: 2,
5774 ..Weapon::new()
5775 },
5776 ItemKind::IronShovel => Weapon {
5777 item_damage_per_attack: 2,
5778 ..Weapon::new()
5779 },
5780 ItemKind::IronSpear => Weapon::new(),
5781 ItemKind::IronSword => Weapon::new(),
5782 ItemKind::Mace => Weapon::new(),
5783 ItemKind::NetheriteAxe => Weapon {
5784 disable_blocking_for_seconds: 5.0,
5785 item_damage_per_attack: 2,
5786 },
5787 ItemKind::NetheriteHoe => Weapon {
5788 item_damage_per_attack: 2,
5789 ..Weapon::new()
5790 },
5791 ItemKind::NetheritePickaxe => Weapon {
5792 item_damage_per_attack: 2,
5793 ..Weapon::new()
5794 },
5795 ItemKind::NetheriteShovel => Weapon {
5796 item_damage_per_attack: 2,
5797 ..Weapon::new()
5798 },
5799 ItemKind::NetheriteSpear => Weapon::new(),
5800 ItemKind::NetheriteSword => Weapon::new(),
5801 ItemKind::StoneAxe => Weapon {
5802 disable_blocking_for_seconds: 5.0,
5803 item_damage_per_attack: 2,
5804 },
5805 ItemKind::StoneHoe => Weapon {
5806 item_damage_per_attack: 2,
5807 ..Weapon::new()
5808 },
5809 ItemKind::StonePickaxe => Weapon {
5810 item_damage_per_attack: 2,
5811 ..Weapon::new()
5812 },
5813 ItemKind::StoneShovel => Weapon {
5814 item_damage_per_attack: 2,
5815 ..Weapon::new()
5816 },
5817 ItemKind::StoneSpear => Weapon::new(),
5818 ItemKind::StoneSword => Weapon::new(),
5819 ItemKind::Trident => Weapon::new(),
5820 ItemKind::WoodenAxe => Weapon {
5821 disable_blocking_for_seconds: 5.0,
5822 item_damage_per_attack: 2,
5823 },
5824 ItemKind::WoodenHoe => Weapon {
5825 item_damage_per_attack: 2,
5826 ..Weapon::new()
5827 },
5828 ItemKind::WoodenPickaxe => Weapon {
5829 item_damage_per_attack: 2,
5830 ..Weapon::new()
5831 },
5832 ItemKind::WoodenShovel => Weapon {
5833 item_damage_per_attack: 2,
5834 ..Weapon::new()
5835 },
5836 ItemKind::WoodenSpear => Weapon::new(),
5837 ItemKind::WoodenSword => Weapon::new(),
5838 _ => return None,
5839 };
5840 Some(value)
5841 }
5842}
5843impl DefaultableComponent for AttackRange {
5844 fn default_for_item(item: ItemKind) -> Option<Self> {
5845 let value = match item {
5846 ItemKind::CopperSpear => AttackRange {
5847 hitbox_margin: 0.125,
5848 max_creative_reach: 6.5,
5849 max_reach: 4.5,
5850 min_creative_reach: 2.0,
5851 min_reach: 2.0,
5852 mob_factor: 0.5,
5853 },
5854 ItemKind::DiamondSpear => AttackRange {
5855 hitbox_margin: 0.125,
5856 max_creative_reach: 6.5,
5857 max_reach: 4.5,
5858 min_creative_reach: 2.0,
5859 min_reach: 2.0,
5860 mob_factor: 0.5,
5861 },
5862 ItemKind::GoldenSpear => AttackRange {
5863 hitbox_margin: 0.125,
5864 max_creative_reach: 6.5,
5865 max_reach: 4.5,
5866 min_creative_reach: 2.0,
5867 min_reach: 2.0,
5868 mob_factor: 0.5,
5869 },
5870 ItemKind::IronSpear => AttackRange {
5871 hitbox_margin: 0.125,
5872 max_creative_reach: 6.5,
5873 max_reach: 4.5,
5874 min_creative_reach: 2.0,
5875 min_reach: 2.0,
5876 mob_factor: 0.5,
5877 },
5878 ItemKind::NetheriteSpear => AttackRange {
5879 hitbox_margin: 0.125,
5880 max_creative_reach: 6.5,
5881 max_reach: 4.5,
5882 min_creative_reach: 2.0,
5883 min_reach: 2.0,
5884 mob_factor: 0.5,
5885 },
5886 ItemKind::StoneSpear => AttackRange {
5887 hitbox_margin: 0.125,
5888 max_creative_reach: 6.5,
5889 max_reach: 4.5,
5890 min_creative_reach: 2.0,
5891 min_reach: 2.0,
5892 mob_factor: 0.5,
5893 },
5894 ItemKind::WoodenSpear => AttackRange {
5895 hitbox_margin: 0.125,
5896 max_creative_reach: 6.5,
5897 max_reach: 4.5,
5898 min_creative_reach: 2.0,
5899 min_reach: 2.0,
5900 mob_factor: 0.5,
5901 },
5902 _ => return None,
5903 };
5904 Some(value)
5905 }
5906}
5907impl DefaultableComponent for DamageType {
5908 fn default_for_item(item: ItemKind) -> Option<Self> {
5909 let value = match item {
5910 ItemKind::CopperSpear => {
5911 DamageType::Registry(azalea_registry::data::DamageKind::new_raw(0))
5912 }
5913 ItemKind::DiamondSpear => {
5914 DamageType::Registry(azalea_registry::data::DamageKind::new_raw(0))
5915 }
5916 ItemKind::GoldenSpear => {
5917 DamageType::Registry(azalea_registry::data::DamageKind::new_raw(0))
5918 }
5919 ItemKind::IronSpear => {
5920 DamageType::Registry(azalea_registry::data::DamageKind::new_raw(0))
5921 }
5922 ItemKind::NetheriteSpear => {
5923 DamageType::Registry(azalea_registry::data::DamageKind::new_raw(0))
5924 }
5925 ItemKind::StoneSpear => {
5926 DamageType::Registry(azalea_registry::data::DamageKind::new_raw(0))
5927 }
5928 ItemKind::WoodenSpear => {
5929 DamageType::Registry(azalea_registry::data::DamageKind::new_raw(0))
5930 }
5931 _ => return None,
5932 };
5933 Some(value)
5934 }
5935}
5936impl DefaultableComponent for KineticWeapon {
5937 fn default_for_item(item: ItemKind) -> Option<Self> {
5938 let value = match item {
5939 ItemKind::CopperSpear => KineticWeapon {
5940 damage_conditions: Some(KineticWeaponCondition {
5941 max_duration_ticks: 250,
5942 min_relative_speed: 4.6,
5943 ..KineticWeaponCondition::new()
5944 }),
5945 damage_multiplier: 0.82,
5946 delay_ticks: 13,
5947 dismount_conditions: Some(KineticWeaponCondition {
5948 max_duration_ticks: 80,
5949 min_speed: 9.0,
5950 ..KineticWeaponCondition::new()
5951 }),
5952 forward_movement: 0.38,
5953 hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)),
5954 knockback_conditions: Some(KineticWeaponCondition {
5955 max_duration_ticks: 165,
5956 min_speed: 5.1,
5957 ..KineticWeaponCondition::new()
5958 }),
5959 sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearUse)),
5960 ..KineticWeapon::new()
5961 },
5962 ItemKind::DiamondSpear => KineticWeapon {
5963 damage_conditions: Some(KineticWeaponCondition {
5964 max_duration_ticks: 200,
5965 min_relative_speed: 4.6,
5966 ..KineticWeaponCondition::new()
5967 }),
5968 damage_multiplier: 1.075,
5969 delay_ticks: 10,
5970 dismount_conditions: Some(KineticWeaponCondition {
5971 max_duration_ticks: 60,
5972 min_speed: 7.5,
5973 ..KineticWeaponCondition::new()
5974 }),
5975 forward_movement: 0.38,
5976 hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)),
5977 knockback_conditions: Some(KineticWeaponCondition {
5978 max_duration_ticks: 130,
5979 min_speed: 5.1,
5980 ..KineticWeaponCondition::new()
5981 }),
5982 sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearUse)),
5983 ..KineticWeapon::new()
5984 },
5985 ItemKind::GoldenSpear => KineticWeapon {
5986 damage_conditions: Some(KineticWeaponCondition {
5987 max_duration_ticks: 275,
5988 min_relative_speed: 4.6,
5989 ..KineticWeaponCondition::new()
5990 }),
5991 damage_multiplier: 0.7,
5992 delay_ticks: 14,
5993 dismount_conditions: Some(KineticWeaponCondition {
5994 max_duration_ticks: 70,
5995 min_speed: 10.0,
5996 ..KineticWeaponCondition::new()
5997 }),
5998 forward_movement: 0.38,
5999 hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)),
6000 knockback_conditions: Some(KineticWeaponCondition {
6001 max_duration_ticks: 170,
6002 min_speed: 5.1,
6003 ..KineticWeaponCondition::new()
6004 }),
6005 sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearUse)),
6006 ..KineticWeapon::new()
6007 },
6008 ItemKind::IronSpear => KineticWeapon {
6009 damage_conditions: Some(KineticWeaponCondition {
6010 max_duration_ticks: 225,
6011 min_relative_speed: 4.6,
6012 ..KineticWeaponCondition::new()
6013 }),
6014 damage_multiplier: 0.95,
6015 delay_ticks: 12,
6016 dismount_conditions: Some(KineticWeaponCondition {
6017 max_duration_ticks: 50,
6018 min_speed: 8.0,
6019 ..KineticWeaponCondition::new()
6020 }),
6021 forward_movement: 0.38,
6022 hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)),
6023 knockback_conditions: Some(KineticWeaponCondition {
6024 max_duration_ticks: 135,
6025 min_speed: 5.1,
6026 ..KineticWeaponCondition::new()
6027 }),
6028 sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearUse)),
6029 ..KineticWeapon::new()
6030 },
6031 ItemKind::NetheriteSpear => KineticWeapon {
6032 damage_conditions: Some(KineticWeaponCondition {
6033 max_duration_ticks: 175,
6034 min_relative_speed: 4.6,
6035 ..KineticWeaponCondition::new()
6036 }),
6037 damage_multiplier: 1.2,
6038 delay_ticks: 8,
6039 dismount_conditions: Some(KineticWeaponCondition {
6040 max_duration_ticks: 50,
6041 min_speed: 7.0,
6042 ..KineticWeaponCondition::new()
6043 }),
6044 forward_movement: 0.38,
6045 hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)),
6046 knockback_conditions: Some(KineticWeaponCondition {
6047 max_duration_ticks: 110,
6048 min_speed: 5.1,
6049 ..KineticWeaponCondition::new()
6050 }),
6051 sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearUse)),
6052 ..KineticWeapon::new()
6053 },
6054 ItemKind::StoneSpear => KineticWeapon {
6055 damage_conditions: Some(KineticWeaponCondition {
6056 max_duration_ticks: 275,
6057 min_relative_speed: 4.6,
6058 ..KineticWeaponCondition::new()
6059 }),
6060 damage_multiplier: 0.82,
6061 delay_ticks: 14,
6062 dismount_conditions: Some(KineticWeaponCondition {
6063 max_duration_ticks: 90,
6064 min_speed: 10.0,
6065 ..KineticWeaponCondition::new()
6066 }),
6067 forward_movement: 0.38,
6068 hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)),
6069 knockback_conditions: Some(KineticWeaponCondition {
6070 max_duration_ticks: 180,
6071 min_speed: 5.1,
6072 ..KineticWeaponCondition::new()
6073 }),
6074 sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearUse)),
6075 ..KineticWeapon::new()
6076 },
6077 ItemKind::WoodenSpear => KineticWeapon {
6078 damage_conditions: Some(KineticWeaponCondition {
6079 max_duration_ticks: 300,
6080 min_relative_speed: 4.6,
6081 ..KineticWeaponCondition::new()
6082 }),
6083 damage_multiplier: 0.7,
6084 delay_ticks: 15,
6085 dismount_conditions: Some(KineticWeaponCondition {
6086 max_duration_ticks: 100,
6087 min_speed: 14.0,
6088 ..KineticWeaponCondition::new()
6089 }),
6090 forward_movement: 0.38,
6091 hit_sound: Some(azalea_registry::Holder::Reference(
6092 SoundEvent::ItemSpearWoodHit,
6093 )),
6094 knockback_conditions: Some(KineticWeaponCondition {
6095 max_duration_ticks: 200,
6096 min_speed: 5.1,
6097 ..KineticWeaponCondition::new()
6098 }),
6099 sound: Some(azalea_registry::Holder::Reference(
6100 SoundEvent::ItemSpearWoodUse,
6101 )),
6102 ..KineticWeapon::new()
6103 },
6104 _ => return None,
6105 };
6106 Some(value)
6107 }
6108}
6109impl DefaultableComponent for MinimumAttackCharge {
6110 fn default_for_item(item: ItemKind) -> Option<Self> {
6111 let value = match item {
6112 ItemKind::CopperSpear => 1.0,
6113 ItemKind::DiamondSpear => 1.0,
6114 ItemKind::GoldenSpear => 1.0,
6115 ItemKind::IronSpear => 1.0,
6116 ItemKind::NetheriteSpear => 1.0,
6117 ItemKind::StoneSpear => 1.0,
6118 ItemKind::WoodenSpear => 1.0,
6119 _ => return None,
6120 };
6121 Some(MinimumAttackCharge { value: value })
6122 }
6123}
6124impl DefaultableComponent for PiercingWeapon {
6125 fn default_for_item(item: ItemKind) -> Option<Self> {
6126 let value = match item {
6127 ItemKind::CopperSpear => PiercingWeapon {
6128 hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)),
6129 sound: Some(azalea_registry::Holder::Reference(
6130 SoundEvent::ItemSpearAttack,
6131 )),
6132 ..PiercingWeapon::new()
6133 },
6134 ItemKind::DiamondSpear => PiercingWeapon {
6135 hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)),
6136 sound: Some(azalea_registry::Holder::Reference(
6137 SoundEvent::ItemSpearAttack,
6138 )),
6139 ..PiercingWeapon::new()
6140 },
6141 ItemKind::GoldenSpear => PiercingWeapon {
6142 hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)),
6143 sound: Some(azalea_registry::Holder::Reference(
6144 SoundEvent::ItemSpearAttack,
6145 )),
6146 ..PiercingWeapon::new()
6147 },
6148 ItemKind::IronSpear => PiercingWeapon {
6149 hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)),
6150 sound: Some(azalea_registry::Holder::Reference(
6151 SoundEvent::ItemSpearAttack,
6152 )),
6153 ..PiercingWeapon::new()
6154 },
6155 ItemKind::NetheriteSpear => PiercingWeapon {
6156 hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)),
6157 sound: Some(azalea_registry::Holder::Reference(
6158 SoundEvent::ItemSpearAttack,
6159 )),
6160 ..PiercingWeapon::new()
6161 },
6162 ItemKind::StoneSpear => PiercingWeapon {
6163 hit_sound: Some(azalea_registry::Holder::Reference(SoundEvent::ItemSpearHit)),
6164 sound: Some(azalea_registry::Holder::Reference(
6165 SoundEvent::ItemSpearAttack,
6166 )),
6167 ..PiercingWeapon::new()
6168 },
6169 ItemKind::WoodenSpear => PiercingWeapon {
6170 hit_sound: Some(azalea_registry::Holder::Reference(
6171 SoundEvent::ItemSpearWoodHit,
6172 )),
6173 sound: Some(azalea_registry::Holder::Reference(
6174 SoundEvent::ItemSpearWoodAttack,
6175 )),
6176 ..PiercingWeapon::new()
6177 },
6178 _ => return None,
6179 };
6180 Some(value)
6181 }
6182}
6183impl DefaultableComponent for ChargedProjectiles {
6184 fn default_for_item(item: ItemKind) -> Option<Self> {
6185 let value = match item {
6186 ItemKind::Crossbow => vec![],
6187 _ => return None,
6188 };
6189 Some(ChargedProjectiles { items: value })
6190 }
6191}
6192impl DefaultableComponent for DebugStickState {
6193 fn default_for_item(item: ItemKind) -> Option<Self> {
6194 let value = match item {
6195 ItemKind::DebugStick => NbtCompound::from_values(vec![]),
6196 _ => return None,
6197 };
6198 Some(DebugStickState { properties: value })
6199 }
6200}
6201impl DefaultableComponent for EnchantmentGlintOverride {
6202 fn default_for_item(item: ItemKind) -> Option<Self> {
6203 let value = match item {
6204 ItemKind::DebugStick => true,
6205 ItemKind::EnchantedBook => true,
6206 ItemKind::EnchantedGoldenApple => true,
6207 ItemKind::EndCrystal => true,
6208 ItemKind::ExperienceBottle => true,
6209 ItemKind::NetherStar => true,
6210 ItemKind::WrittenBook => true,
6211 _ => return None,
6212 };
6213 Some(EnchantmentGlintOverride { show_glint: value })
6214 }
6215}
6216impl DefaultableComponent for PotDecorations {
6217 fn default_for_item(item: ItemKind) -> Option<Self> {
6218 let value = match item {
6219 ItemKind::DecoratedPot => vec![
6220 ItemKind::Brick,
6221 ItemKind::Brick,
6222 ItemKind::Brick,
6223 ItemKind::Brick,
6224 ],
6225 _ => return None,
6226 };
6227 Some(PotDecorations { items: value })
6228 }
6229}
6230impl DefaultableComponent for Glider {
6231 fn default_for_item(item: ItemKind) -> Option<Self> {
6232 let value = match item {
6233 ItemKind::Elytra => Glider,
6234 _ => return None,
6235 };
6236 Some(value)
6237 }
6238}
6239impl DefaultableComponent for StoredEnchantments {
6240 fn default_for_item(item: ItemKind) -> Option<Self> {
6241 let value = match item {
6242 ItemKind::EnchantedBook => HashMap::from_iter([]),
6243 _ => return None,
6244 };
6245 Some(StoredEnchantments {
6246 enchantments: value,
6247 })
6248 }
6249}
6250impl DefaultableComponent for MapColor {
6251 fn default_for_item(item: ItemKind) -> Option<Self> {
6252 let value = match item {
6253 ItemKind::FilledMap => 4603950,
6254 _ => return None,
6255 };
6256 Some(MapColor { color: value })
6257 }
6258}
6259impl DefaultableComponent for MapDecorations {
6260 fn default_for_item(item: ItemKind) -> Option<Self> {
6261 let value = match item {
6262 ItemKind::FilledMap => NbtCompound::from_values(vec![]),
6263 _ => return None,
6264 };
6265 Some(MapDecorations { decorations: value })
6266 }
6267}
6268impl DefaultableComponent for Fireworks {
6269 fn default_for_item(item: ItemKind) -> Option<Self> {
6270 let value = match item {
6271 ItemKind::FireworkRocket => Fireworks {
6272 flight_duration: 1,
6273 ..Fireworks::new()
6274 },
6275 _ => return None,
6276 };
6277 Some(value)
6278 }
6279}
6280impl DefaultableComponent for Instrument {
6281 fn default_for_item(item: ItemKind) -> Option<Self> {
6282 let value = match item {
6283 ItemKind::GoatHorn => {
6284 Instrument::Registry(azalea_registry::data::Instrument::new_raw(0))
6285 }
6286 _ => return None,
6287 };
6288 Some(value)
6289 }
6290}
6291impl DefaultableComponent for Recipes {
6292 fn default_for_item(item: ItemKind) -> Option<Self> {
6293 let value = match item {
6294 ItemKind::KnowledgeBook => vec![],
6295 _ => return None,
6296 };
6297 Some(Recipes { recipes: value })
6298 }
6299}
6300impl DefaultableComponent for PotionContents {
6301 fn default_for_item(item: ItemKind) -> Option<Self> {
6302 let value = match item {
6303 ItemKind::LingeringPotion => PotionContents::new(),
6304 ItemKind::Potion => PotionContents::new(),
6305 ItemKind::SplashPotion => PotionContents::new(),
6306 ItemKind::TippedArrow => PotionContents::new(),
6307 _ => return None,
6308 };
6309 Some(value)
6310 }
6311}
6312impl DefaultableComponent for PotionDurationScale {
6313 fn default_for_item(item: ItemKind) -> Option<Self> {
6314 let value = match item {
6315 ItemKind::LingeringPotion => 0.25,
6316 ItemKind::TippedArrow => 0.125,
6317 _ => return None,
6318 };
6319 Some(PotionDurationScale { value: value })
6320 }
6321}
6322impl DefaultableComponent for JukeboxPlayable {
6323 fn default_for_item(item: ItemKind) -> Option<Self> {
6324 let value = match item {
6325 ItemKind::MusicDisc11 => JukeboxPlayable::Referenced("minecraft:11".into()),
6326 ItemKind::MusicDisc13 => JukeboxPlayable::Referenced("minecraft:13".into()),
6327 ItemKind::MusicDisc5 => JukeboxPlayable::Referenced("minecraft:5".into()),
6328 ItemKind::MusicDiscBlocks => JukeboxPlayable::Referenced("minecraft:blocks".into()),
6329 ItemKind::MusicDiscCat => JukeboxPlayable::Referenced("minecraft:cat".into()),
6330 ItemKind::MusicDiscChirp => JukeboxPlayable::Referenced("minecraft:chirp".into()),
6331 ItemKind::MusicDiscCreator => JukeboxPlayable::Referenced("minecraft:creator".into()),
6332 ItemKind::MusicDiscCreatorMusicBox => {
6333 JukeboxPlayable::Referenced("minecraft:creator_music_box".into())
6334 }
6335 ItemKind::MusicDiscFar => JukeboxPlayable::Referenced("minecraft:far".into()),
6336 ItemKind::MusicDiscLavaChicken => {
6337 JukeboxPlayable::Referenced("minecraft:lava_chicken".into())
6338 }
6339 ItemKind::MusicDiscMall => JukeboxPlayable::Referenced("minecraft:mall".into()),
6340 ItemKind::MusicDiscMellohi => JukeboxPlayable::Referenced("minecraft:mellohi".into()),
6341 ItemKind::MusicDiscOtherside => {
6342 JukeboxPlayable::Referenced("minecraft:otherside".into())
6343 }
6344 ItemKind::MusicDiscPigstep => JukeboxPlayable::Referenced("minecraft:pigstep".into()),
6345 ItemKind::MusicDiscPrecipice => {
6346 JukeboxPlayable::Referenced("minecraft:precipice".into())
6347 }
6348 ItemKind::MusicDiscRelic => JukeboxPlayable::Referenced("minecraft:relic".into()),
6349 ItemKind::MusicDiscStal => JukeboxPlayable::Referenced("minecraft:stal".into()),
6350 ItemKind::MusicDiscStrad => JukeboxPlayable::Referenced("minecraft:strad".into()),
6351 ItemKind::MusicDiscTears => JukeboxPlayable::Referenced("minecraft:tears".into()),
6352 ItemKind::MusicDiscWait => JukeboxPlayable::Referenced("minecraft:wait".into()),
6353 ItemKind::MusicDiscWard => JukeboxPlayable::Referenced("minecraft:ward".into()),
6354 _ => return None,
6355 };
6356 Some(value)
6357 }
6358}
6359impl DefaultableComponent for OminousBottleAmplifier {
6360 fn default_for_item(item: ItemKind) -> Option<Self> {
6361 let value = match item {
6362 ItemKind::OminousBottle => 0,
6363 _ => return None,
6364 };
6365 Some(OminousBottleAmplifier { amplifier: value })
6366 }
6367}
6368impl DefaultableComponent for BlocksAttacks {
6369 fn default_for_item(item: ItemKind) -> Option<Self> {
6370 let value = match item {
6371 ItemKind::Shield => BlocksAttacks {
6372 block_delay_seconds: 0.25,
6373 block_sound: Some(azalea_registry::Holder::Reference(
6374 SoundEvent::ItemShieldBlock,
6375 )),
6376 bypassed_by: Some("#minecraft:bypasses_shield".into()),
6377 disabled_sound: Some(azalea_registry::Holder::Reference(
6378 SoundEvent::ItemShieldBreak,
6379 )),
6380 item_damage: ItemDamageFunction {
6381 base: 1.0,
6382 factor: 1.0,
6383 threshold: 3.0,
6384 },
6385 ..BlocksAttacks::new()
6386 },
6387 _ => return None,
6388 };
6389 Some(value)
6390 }
6391}
6392impl DefaultableComponent for SuspiciousStewEffects {
6393 fn default_for_item(item: ItemKind) -> Option<Self> {
6394 let value = match item {
6395 ItemKind::SuspiciousStew => vec![],
6396 _ => return None,
6397 };
6398 Some(SuspiciousStewEffects { effects: value })
6399 }
6400}
6401impl DefaultableComponent for DeathProtection {
6402 fn default_for_item(item: ItemKind) -> Option<Self> {
6403 let value = match item {
6404 ItemKind::TotemOfUndying => vec![
6405 ConsumeEffect::ClearAllEffects {},
6406 ConsumeEffect::ApplyEffects {
6407 effects: vec![
6408 MobEffectInstance {
6409 id: MobEffect::Regeneration,
6410 details: MobEffectDetails {
6411 amplifier: 1,
6412 duration: 900,
6413 show_icon: true,
6414 ..MobEffectDetails::new()
6415 },
6416 },
6417 MobEffectInstance {
6418 id: MobEffect::Absorption,
6419 details: MobEffectDetails {
6420 amplifier: 1,
6421 duration: 100,
6422 show_icon: true,
6423 ..MobEffectDetails::new()
6424 },
6425 },
6426 MobEffectInstance {
6427 id: MobEffect::FireResistance,
6428 details: MobEffectDetails {
6429 duration: 800,
6430 show_icon: true,
6431 ..MobEffectDetails::new()
6432 },
6433 },
6434 ],
6435 probability: 1.0,
6436 },
6437 ],
6438 _ => return None,
6439 };
6440 Some(DeathProtection {
6441 death_effects: value,
6442 })
6443 }
6444}
6445impl DefaultableComponent for WritableBookContent {
6446 fn default_for_item(item: ItemKind) -> Option<Self> {
6447 let value = match item {
6448 ItemKind::WritableBook => Vec::new(),
6449 _ => return None,
6450 };
6451 Some(WritableBookContent { pages: value })
6452 }
6453}