azalea_inventory/default_components/
generated.rs

1// This file was @generated by codegen/lib/code/components.py, don't edit it
2// manually!
3
4#![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}