DataComponents.java

net.minecraft.core.component.DataComponents

信息

  • 全限定名:net.minecraft.core.component.DataComponents
  • 类型:public class
  • 包:net.minecraft.core.component
  • 源码路径:src/main/java/net/minecraft/core/component/DataComponents.java
  • 起始行号:L106
  • 职责:

    TODO

字段/常量

  • ENCODER_CACHE

    • 类型: EncoderCache
    • 修饰符: static final
    • 源码定位: L107
    • 说明:

      TODO

  • CUSTOM_DATA

    • 类型: DataComponentType<CustomData>
    • 修饰符: public static final
    • 源码定位: L108
    • 说明:

      TODO

  • MAX_STACK_SIZE

    • 类型: DataComponentType<Integer>
    • 修饰符: public static final
    • 源码定位: L109
    • 说明:

      TODO

  • MAX_DAMAGE

    • 类型: DataComponentType<Integer>
    • 修饰符: public static final
    • 源码定位: L112
    • 说明:

      TODO

  • DAMAGE

    • 类型: DataComponentType<Integer>
    • 修饰符: public static final
    • 源码定位: L115
    • 说明:

      TODO

  • UNBREAKABLE

    • 类型: DataComponentType<Unit>
    • 修饰符: public static final
    • 源码定位: L118
    • 说明:

      TODO

  • USE_EFFECTS

    • 类型: DataComponentType<UseEffects>
    • 修饰符: public static final
    • 源码定位: L119
    • 说明:

      TODO

  • CUSTOM_NAME

    • 类型: DataComponentType<Component>
    • 修饰符: public static final
    • 源码定位: L122
    • 说明:

      TODO

  • MINIMUM_ATTACK_CHARGE

    • 类型: DataComponentType<Float>
    • 修饰符: public static final
    • 源码定位: L125
    • 说明:

      TODO

  • DAMAGE_TYPE

    • 类型: DataComponentType<Holder<DamageType>>
    • 修饰符: public static final
    • 源码定位: L128
    • 说明:

      TODO

  • ITEM_NAME

    • 类型: DataComponentType<Component>
    • 修饰符: public static final
    • 源码定位: L131
    • 说明:

      TODO

  • ITEM_MODEL

    • 类型: DataComponentType<Identifier>
    • 修饰符: public static final
    • 源码定位: L134
    • 说明:

      TODO

  • LORE

    • 类型: DataComponentType<ItemLore>
    • 修饰符: public static final
    • 源码定位: L137
    • 说明:

      TODO

  • RARITY

    • 类型: DataComponentType<Rarity>
    • 修饰符: public static final
    • 源码定位: L140
    • 说明:

      TODO

  • ENCHANTMENTS

    • 类型: DataComponentType<ItemEnchantments>
    • 修饰符: public static final
    • 源码定位: L141
    • 说明:

      TODO

  • CAN_PLACE_ON

    • 类型: DataComponentType<AdventureModePredicate>
    • 修饰符: public static final
    • 源码定位: L144
    • 说明:

      TODO

  • CAN_BREAK

    • 类型: DataComponentType<AdventureModePredicate>
    • 修饰符: public static final
    • 源码定位: L147
    • 说明:

      TODO

  • ATTRIBUTE_MODIFIERS

    • 类型: DataComponentType<ItemAttributeModifiers>
    • 修饰符: public static final
    • 源码定位: L150
    • 说明:

      TODO

  • CUSTOM_MODEL_DATA

    • 类型: DataComponentType<CustomModelData>
    • 修饰符: public static final
    • 源码定位: L153
    • 说明:

      TODO

  • TOOLTIP_DISPLAY

    • 类型: DataComponentType<TooltipDisplay>
    • 修饰符: public static final
    • 源码定位: L156
    • 说明:

      TODO

  • REPAIR_COST

    • 类型: DataComponentType<Integer>
    • 修饰符: public static final
    • 源码定位: L159
    • 说明:

      TODO

  • CREATIVE_SLOT_LOCK

    • 类型: DataComponentType<Unit>
    • 修饰符: public static final
    • 源码定位: L162
    • 说明:

      TODO

  • ENCHANTMENT_GLINT_OVERRIDE

    • 类型: DataComponentType<Boolean>
    • 修饰符: public static final
    • 源码定位: L163
    • 说明:

      TODO

  • INTANGIBLE_PROJECTILE

    • 类型: DataComponentType<Unit>
    • 修饰符: public static final
    • 源码定位: L166
    • 说明:

      TODO

  • FOOD

    • 类型: DataComponentType<FoodProperties>
    • 修饰符: public static final
    • 源码定位: L167
    • 说明:

      TODO

  • CONSUMABLE

    • 类型: DataComponentType<Consumable>
    • 修饰符: public static final
    • 源码定位: L170
    • 说明:

      TODO

  • USE_REMAINDER

    • 类型: DataComponentType<UseRemainder>
    • 修饰符: public static final
    • 源码定位: L173
    • 说明:

      TODO

  • USE_COOLDOWN

    • 类型: DataComponentType<UseCooldown>
    • 修饰符: public static final
    • 源码定位: L176
    • 说明:

      TODO

  • DAMAGE_RESISTANT

    • 类型: DataComponentType<DamageResistant>
    • 修饰符: public static final
    • 源码定位: L179
    • 说明:

      TODO

  • TOOL

    • 类型: DataComponentType<Tool>
    • 修饰符: public static final
    • 源码定位: L182
    • 说明:

      TODO

  • WEAPON

    • 类型: DataComponentType<Weapon>
    • 修饰符: public static final
    • 源码定位: L183
    • 说明:

      TODO

  • ATTACK_RANGE

    • 类型: DataComponentType<AttackRange>
    • 修饰符: public static final
    • 源码定位: L186
    • 说明:

      TODO

  • ENCHANTABLE

    • 类型: DataComponentType<Enchantable>
    • 修饰符: public static final
    • 源码定位: L189
    • 说明:

      TODO

  • EQUIPPABLE

    • 类型: DataComponentType<Equippable>
    • 修饰符: public static final
    • 源码定位: L192
    • 说明:

      TODO

  • REPAIRABLE

    • 类型: DataComponentType<Repairable>
    • 修饰符: public static final
    • 源码定位: L195
    • 说明:

      TODO

  • GLIDER

    • 类型: DataComponentType<Unit>
    • 修饰符: public static final
    • 源码定位: L198
    • 说明:

      TODO

  • TOOLTIP_STYLE

    • 类型: DataComponentType<Identifier>
    • 修饰符: public static final
    • 源码定位: L199
    • 说明:

      TODO

  • DEATH_PROTECTION

    • 类型: DataComponentType<DeathProtection>
    • 修饰符: public static final
    • 源码定位: L202
    • 说明:

      TODO

  • BLOCKS_ATTACKS

    • 类型: DataComponentType<BlocksAttacks>
    • 修饰符: public static final
    • 源码定位: L205
    • 说明:

      TODO

  • PIERCING_WEAPON

    • 类型: DataComponentType<PiercingWeapon>
    • 修饰符: public static final
    • 源码定位: L208
    • 说明:

      TODO

  • KINETIC_WEAPON

    • 类型: DataComponentType<KineticWeapon>
    • 修饰符: public static final
    • 源码定位: L211
    • 说明:

      TODO

  • SWING_ANIMATION

    • 类型: DataComponentType<SwingAnimation>
    • 修饰符: public static final
    • 源码定位: L214
    • 说明:

      TODO

  • ADDITIONAL_TRADE_COST

    • 类型: DataComponentType<Integer>
    • 修饰符: public static final
    • 源码定位: L217
    • 说明:

      TODO

  • STORED_ENCHANTMENTS

    • 类型: DataComponentType<ItemEnchantments>
    • 修饰符: public static final
    • 源码定位: L218
    • 说明:

      TODO

  • DYE

    • 类型: DataComponentType<DyeColor>
    • 修饰符: public static final
    • 源码定位: L221
    • 说明:

      TODO

  • DYED_COLOR

    • 类型: DataComponentType<DyedItemColor>
    • 修饰符: public static final
    • 源码定位: L222
    • 说明:

      TODO

  • MAP_COLOR

    • 类型: DataComponentType<MapItemColor>
    • 修饰符: public static final
    • 源码定位: L225
    • 说明:

      TODO

  • MAP_ID

    • 类型: DataComponentType<MapId>
    • 修饰符: public static final
    • 源码定位: L228
    • 说明:

      TODO

  • MAP_DECORATIONS

    • 类型: DataComponentType<MapDecorations>
    • 修饰符: public static final
    • 源码定位: L229
    • 说明:

      TODO

  • MAP_POST_PROCESSING

    • 类型: DataComponentType<MapPostProcessing>
    • 修饰符: public static final
    • 源码定位: L230
    • 说明:

      TODO

  • CHARGED_PROJECTILES

    • 类型: DataComponentType<ChargedProjectiles>
    • 修饰符: public static final
    • 源码定位: L233
    • 说明:

      TODO

  • BUNDLE_CONTENTS

    • 类型: DataComponentType<BundleContents>
    • 修饰符: public static final
    • 源码定位: L236
    • 说明:

      TODO

  • POTION_CONTENTS

    • 类型: DataComponentType<PotionContents>
    • 修饰符: public static final
    • 源码定位: L239
    • 说明:

      TODO

  • POTION_DURATION_SCALE

    • 类型: DataComponentType<Float>
    • 修饰符: public static final
    • 源码定位: L242
    • 说明:

      TODO

  • SUSPICIOUS_STEW_EFFECTS

    • 类型: DataComponentType<SuspiciousStewEffects>
    • 修饰符: public static final
    • 源码定位: L245
    • 说明:

      TODO

  • WRITABLE_BOOK_CONTENT

    • 类型: DataComponentType<WritableBookContent>
    • 修饰符: public static final
    • 源码定位: L248
    • 说明:

      TODO

  • WRITTEN_BOOK_CONTENT

    • 类型: DataComponentType<WrittenBookContent>
    • 修饰符: public static final
    • 源码定位: L251
    • 说明:

      TODO

  • TRIM

    • 类型: DataComponentType<ArmorTrim>
    • 修饰符: public static final
    • 源码定位: L254
    • 说明:

      TODO

  • DEBUG_STICK_STATE

    • 类型: DataComponentType<DebugStickState>
    • 修饰符: public static final
    • 源码定位: L257
    • 说明:

      TODO

  • ENTITY_DATA

    • 类型: DataComponentType<TypedEntityData<EntityType<?>>>
    • 修饰符: public static final
    • 源码定位: L260
    • 说明:

      TODO

  • BUCKET_ENTITY_DATA

    • 类型: DataComponentType<CustomData>
    • 修饰符: public static final
    • 源码定位: L263
    • 说明:

      TODO

  • BLOCK_ENTITY_DATA

    • 类型: DataComponentType<TypedEntityData<BlockEntityType<?>>>
    • 修饰符: public static final
    • 源码定位: L266
    • 说明:

      TODO

  • INSTRUMENT

    • 类型: DataComponentType<InstrumentComponent>
    • 修饰符: public static final
    • 源码定位: L271
    • 说明:

      TODO

  • PROVIDES_TRIM_MATERIAL

    • 类型: DataComponentType<Holder<TrimMaterial>>
    • 修饰符: public static final
    • 源码定位: L274
    • 说明:

      TODO

  • OMINOUS_BOTTLE_AMPLIFIER

    • 类型: DataComponentType<OminousBottleAmplifier>
    • 修饰符: public static final
    • 源码定位: L277
    • 说明:

      TODO

  • JUKEBOX_PLAYABLE

    • 类型: DataComponentType<JukeboxPlayable>
    • 修饰符: public static final
    • 源码定位: L280
    • 说明:

      TODO

  • PROVIDES_BANNER_PATTERNS

    • 类型: DataComponentType<HolderSet<BannerPattern>>
    • 修饰符: public static final
    • 源码定位: L283
    • 说明:

      TODO

  • RECIPES

    • 类型: DataComponentType<List<ResourceKey<Recipe<?>>>>
    • 修饰符: public static final
    • 源码定位: L289
    • 说明:

      TODO

  • LODESTONE_TRACKER

    • 类型: DataComponentType<LodestoneTracker>
    • 修饰符: public static final
    • 源码定位: L292
    • 说明:

      TODO

  • FIREWORK_EXPLOSION

    • 类型: DataComponentType<FireworkExplosion>
    • 修饰符: public static final
    • 源码定位: L295
    • 说明:

      TODO

  • FIREWORKS

    • 类型: DataComponentType<Fireworks>
    • 修饰符: public static final
    • 源码定位: L298
    • 说明:

      TODO

  • PROFILE

    • 类型: DataComponentType<ResolvableProfile>
    • 修饰符: public static final
    • 源码定位: L301
    • 说明:

      TODO

  • NOTE_BLOCK_SOUND

    • 类型: DataComponentType<Identifier>
    • 修饰符: public static final
    • 源码定位: L304
    • 说明:

      TODO

  • BANNER_PATTERNS

    • 类型: DataComponentType<BannerPatternLayers>
    • 修饰符: public static final
    • 源码定位: L307
    • 说明:

      TODO

  • BASE_COLOR

    • 类型: DataComponentType<DyeColor>
    • 修饰符: public static final
    • 源码定位: L310
    • 说明:

      TODO

  • POT_DECORATIONS

    • 类型: DataComponentType<PotDecorations>
    • 修饰符: public static final
    • 源码定位: L313
    • 说明:

      TODO

  • CONTAINER

    • 类型: DataComponentType<ItemContainerContents>
    • 修饰符: public static final
    • 源码定位: L316
    • 说明:

      TODO

  • BLOCK_STATE

    • 类型: DataComponentType<BlockItemStateProperties>
    • 修饰符: public static final
    • 源码定位: L319
    • 说明:

      TODO

  • BEES

    • 类型: DataComponentType<Bees>
    • 修饰符: public static final
    • 源码定位: L322
    • 说明:

      TODO

  • LOCK

    • 类型: DataComponentType<LockCode>
    • 修饰符: public static final
    • 源码定位: L323
    • 说明:

      TODO

  • CONTAINER_LOOT

    • 类型: DataComponentType<SeededContainerLoot>
    • 修饰符: public static final
    • 源码定位: L324
    • 说明:

      TODO

  • BREAK_SOUND

    • 类型: DataComponentType<Holder<SoundEvent>>
    • 修饰符: public static final
    • 源码定位: L325
    • 说明:

      TODO

  • VILLAGER_VARIANT

    • 类型: DataComponentType<Holder<VillagerType>>
    • 修饰符: public static final
    • 源码定位: L328
    • 说明:

      TODO

  • WOLF_VARIANT

    • 类型: DataComponentType<Holder<WolfVariant>>
    • 修饰符: public static final
    • 源码定位: L331
    • 说明:

      TODO

  • WOLF_SOUND_VARIANT

    • 类型: DataComponentType<Holder<WolfSoundVariant>>
    • 修饰符: public static final
    • 源码定位: L334
    • 说明:

      TODO

  • WOLF_COLLAR

    • 类型: DataComponentType<DyeColor>
    • 修饰符: public static final
    • 源码定位: L337
    • 说明:

      TODO

  • FOX_VARIANT

    • 类型: DataComponentType<Fox.Variant>
    • 修饰符: public static final
    • 源码定位: L340
    • 说明:

      TODO

  • SALMON_SIZE

    • 类型: DataComponentType<Salmon.Variant>
    • 修饰符: public static final
    • 源码定位: L343
    • 说明:

      TODO

  • PARROT_VARIANT

    • 类型: DataComponentType<Parrot.Variant>
    • 修饰符: public static final
    • 源码定位: L346
    • 说明:

      TODO

  • TROPICAL_FISH_PATTERN

    • 类型: DataComponentType<TropicalFish.Pattern>
    • 修饰符: public static final
    • 源码定位: L349
    • 说明:

      TODO

  • TROPICAL_FISH_BASE_COLOR

    • 类型: DataComponentType<DyeColor>
    • 修饰符: public static final
    • 源码定位: L352
    • 说明:

      TODO

  • TROPICAL_FISH_PATTERN_COLOR

    • 类型: DataComponentType<DyeColor>
    • 修饰符: public static final
    • 源码定位: L355
    • 说明:

      TODO

  • MOOSHROOM_VARIANT

    • 类型: DataComponentType<MushroomCow.Variant>
    • 修饰符: public static final
    • 源码定位: L358
    • 说明:

      TODO

  • RABBIT_VARIANT

    • 类型: DataComponentType<Rabbit.Variant>
    • 修饰符: public static final
    • 源码定位: L361
    • 说明:

      TODO

  • PIG_VARIANT

    • 类型: DataComponentType<Holder<PigVariant>>
    • 修饰符: public static final
    • 源码定位: L364
    • 说明:

      TODO

  • PIG_SOUND_VARIANT

    • 类型: DataComponentType<Holder<PigSoundVariant>>
    • 修饰符: public static final
    • 源码定位: L367
    • 说明:

      TODO

  • COW_VARIANT

    • 类型: DataComponentType<Holder<CowVariant>>
    • 修饰符: public static final
    • 源码定位: L370
    • 说明:

      TODO

  • COW_SOUND_VARIANT

    • 类型: DataComponentType<Holder<CowSoundVariant>>
    • 修饰符: public static final
    • 源码定位: L373
    • 说明:

      TODO

  • CHICKEN_VARIANT

    • 类型: DataComponentType<Holder<ChickenVariant>>
    • 修饰符: public static final
    • 源码定位: L376
    • 说明:

      TODO

  • CHICKEN_SOUND_VARIANT

    • 类型: DataComponentType<Holder<ChickenSoundVariant>>
    • 修饰符: public static final
    • 源码定位: L379
    • 说明:

      TODO

  • ZOMBIE_NAUTILUS_VARIANT

    • 类型: DataComponentType<Holder<ZombieNautilusVariant>>
    • 修饰符: public static final
    • 源码定位: L382
    • 说明:

      TODO

  • FROG_VARIANT

    • 类型: DataComponentType<Holder<FrogVariant>>
    • 修饰符: public static final
    • 源码定位: L385
    • 说明:

      TODO

  • HORSE_VARIANT

    • 类型: DataComponentType<Variant>
    • 修饰符: public static final
    • 源码定位: L388
    • 说明:

      TODO

  • PAINTING_VARIANT

    • 类型: DataComponentType<Holder<PaintingVariant>>
    • 修饰符: public static final
    • 源码定位: L391
    • 说明:

      TODO

  • LLAMA_VARIANT

    • 类型: DataComponentType<Llama.Variant>
    • 修饰符: public static final
    • 源码定位: L394
    • 说明:

      TODO

  • AXOLOTL_VARIANT

    • 类型: DataComponentType<Axolotl.Variant>
    • 修饰符: public static final
    • 源码定位: L397
    • 说明:

      TODO

  • CAT_VARIANT

    • 类型: DataComponentType<Holder<CatVariant>>
    • 修饰符: public static final
    • 源码定位: L400
    • 说明:

      TODO

  • CAT_SOUND_VARIANT

    • 类型: DataComponentType<Holder<CatSoundVariant>>
    • 修饰符: public static final
    • 源码定位: L403
    • 说明:

      TODO

  • CAT_COLLAR

    • 类型: DataComponentType<DyeColor>
    • 修饰符: public static final
    • 源码定位: L406
    • 说明:

      TODO

  • SHEEP_COLOR

    • 类型: DataComponentType<DyeColor>
    • 修饰符: public static final
    • 源码定位: L409
    • 说明:

      TODO

  • SHULKER_COLOR

    • 类型: DataComponentType<DyeColor>
    • 修饰符: public static final
    • 源码定位: L412
    • 说明:

      TODO

  • COMMON_ITEM_COMPONENTS

    • 类型: DataComponentMap
    • 修饰符: public static final
    • 源码定位: L415
    • 说明:

      TODO

内部类/嵌套类型

构造器

方法

下面的方法块按源码顺序生成。

public static DataComponentType<?> bootstrap(Registry<DataComponentType<?>> registry) @ L428

  • 方法名:bootstrap
  • 源码定位:L428
  • 返回类型:DataComponentType<?>
  • 修饰符:public static

参数:

  • registry: Registry<DataComponentType<?>>

说明:

TODO

private static <T> DataComponentType<T> register(String id, UnaryOperator<DataComponentType.Builder<T>> builder) @ L432

  • 方法名:register
  • 源码定位:L432
  • 返回类型: DataComponentType
  • 修饰符:private static

参数:

  • id: String
  • builder: UnaryOperator<DataComponentType.Builder>

说明:

TODO

代码

public class DataComponents {
    static final EncoderCache ENCODER_CACHE = new EncoderCache(512);
    public static final DataComponentType<CustomData> CUSTOM_DATA = register("custom_data", b -> b.persistent(CustomData.CODEC));
    public static final DataComponentType<Integer> MAX_STACK_SIZE = register(
        "max_stack_size", b -> b.persistent(ExtraCodecs.intRange(1, 99)).networkSynchronized(ByteBufCodecs.VAR_INT)
    );
    public static final DataComponentType<Integer> MAX_DAMAGE = register(
        "max_damage", b -> b.persistent(ExtraCodecs.POSITIVE_INT).networkSynchronized(ByteBufCodecs.VAR_INT)
    );
    public static final DataComponentType<Integer> DAMAGE = register(
        "damage", b -> b.persistent(ExtraCodecs.NON_NEGATIVE_INT).ignoreSwapAnimation().networkSynchronized(ByteBufCodecs.VAR_INT)
    );
    public static final DataComponentType<Unit> UNBREAKABLE = register("unbreakable", b -> b.persistent(Unit.CODEC).networkSynchronized(Unit.STREAM_CODEC));
    public static final DataComponentType<UseEffects> USE_EFFECTS = register(
        "use_effects", b -> b.persistent(UseEffects.CODEC).networkSynchronized(UseEffects.STREAM_CODEC)
    );
    public static final DataComponentType<Component> CUSTOM_NAME = register(
        "custom_name", b -> b.persistent(ComponentSerialization.CODEC).networkSynchronized(ComponentSerialization.STREAM_CODEC).cacheEncoding()
    );
    public static final DataComponentType<Float> MINIMUM_ATTACK_CHARGE = register(
        "minimum_attack_charge", b -> b.persistent(ExtraCodecs.floatRange(0.0F, 1.0F)).networkSynchronized(ByteBufCodecs.FLOAT)
    );
    public static final DataComponentType<Holder<DamageType>> DAMAGE_TYPE = register(
        "damage_type", b -> b.persistent(DamageType.CODEC).networkSynchronized(DamageType.STREAM_CODEC)
    );
    public static final DataComponentType<Component> ITEM_NAME = register(
        "item_name", b -> b.persistent(ComponentSerialization.CODEC).networkSynchronized(ComponentSerialization.STREAM_CODEC).cacheEncoding()
    );
    public static final DataComponentType<Identifier> ITEM_MODEL = register(
        "item_model", b -> b.persistent(Identifier.CODEC).networkSynchronized(Identifier.STREAM_CODEC).cacheEncoding()
    );
    public static final DataComponentType<ItemLore> LORE = register(
        "lore", b -> b.persistent(ItemLore.CODEC).networkSynchronized(ItemLore.STREAM_CODEC).cacheEncoding()
    );
    public static final DataComponentType<Rarity> RARITY = register("rarity", b -> b.persistent(Rarity.CODEC).networkSynchronized(Rarity.STREAM_CODEC));
    public static final DataComponentType<ItemEnchantments> ENCHANTMENTS = register(
        "enchantments", b -> b.persistent(ItemEnchantments.CODEC).networkSynchronized(ItemEnchantments.STREAM_CODEC).cacheEncoding()
    );
    public static final DataComponentType<AdventureModePredicate> CAN_PLACE_ON = register(
        "can_place_on", b -> b.persistent(AdventureModePredicate.CODEC).networkSynchronized(AdventureModePredicate.STREAM_CODEC).cacheEncoding()
    );
    public static final DataComponentType<AdventureModePredicate> CAN_BREAK = register(
        "can_break", b -> b.persistent(AdventureModePredicate.CODEC).networkSynchronized(AdventureModePredicate.STREAM_CODEC).cacheEncoding()
    );
    public static final DataComponentType<ItemAttributeModifiers> ATTRIBUTE_MODIFIERS = register(
        "attribute_modifiers", b -> b.persistent(ItemAttributeModifiers.CODEC).networkSynchronized(ItemAttributeModifiers.STREAM_CODEC).cacheEncoding()
    );
    public static final DataComponentType<CustomModelData> CUSTOM_MODEL_DATA = register(
        "custom_model_data", b -> b.persistent(CustomModelData.CODEC).networkSynchronized(CustomModelData.STREAM_CODEC)
    );
    public static final DataComponentType<TooltipDisplay> TOOLTIP_DISPLAY = register(
        "tooltip_display", b -> b.persistent(TooltipDisplay.CODEC).networkSynchronized(TooltipDisplay.STREAM_CODEC).cacheEncoding()
    );
    public static final DataComponentType<Integer> REPAIR_COST = register(
        "repair_cost", b -> b.persistent(ExtraCodecs.NON_NEGATIVE_INT).networkSynchronized(ByteBufCodecs.VAR_INT)
    );
    public static final DataComponentType<Unit> CREATIVE_SLOT_LOCK = register("creative_slot_lock", b -> b.networkSynchronized(Unit.STREAM_CODEC));
    public static final DataComponentType<Boolean> ENCHANTMENT_GLINT_OVERRIDE = register(
        "enchantment_glint_override", b -> b.persistent(Codec.BOOL).networkSynchronized(ByteBufCodecs.BOOL)
    );
    public static final DataComponentType<Unit> INTANGIBLE_PROJECTILE = register("intangible_projectile", b -> b.persistent(Unit.CODEC));
    public static final DataComponentType<FoodProperties> FOOD = register(
        "food", b -> b.persistent(FoodProperties.DIRECT_CODEC).networkSynchronized(FoodProperties.DIRECT_STREAM_CODEC).cacheEncoding()
    );
    public static final DataComponentType<Consumable> CONSUMABLE = register(
        "consumable", b -> b.persistent(Consumable.CODEC).networkSynchronized(Consumable.STREAM_CODEC).cacheEncoding()
    );
    public static final DataComponentType<UseRemainder> USE_REMAINDER = register(
        "use_remainder", b -> b.persistent(UseRemainder.CODEC).networkSynchronized(UseRemainder.STREAM_CODEC).cacheEncoding()
    );
    public static final DataComponentType<UseCooldown> USE_COOLDOWN = register(
        "use_cooldown", b -> b.persistent(UseCooldown.CODEC).networkSynchronized(UseCooldown.STREAM_CODEC).cacheEncoding()
    );
    public static final DataComponentType<DamageResistant> DAMAGE_RESISTANT = register(
        "damage_resistant", b -> b.persistent(DamageResistant.CODEC).networkSynchronized(DamageResistant.STREAM_CODEC).cacheEncoding()
    );
    public static final DataComponentType<Tool> TOOL = register("tool", b -> b.persistent(Tool.CODEC).networkSynchronized(Tool.STREAM_CODEC).cacheEncoding());
    public static final DataComponentType<Weapon> WEAPON = register(
        "weapon", b -> b.persistent(Weapon.CODEC).networkSynchronized(Weapon.STREAM_CODEC).cacheEncoding()
    );
    public static final DataComponentType<AttackRange> ATTACK_RANGE = register(
        "attack_range", b -> b.persistent(AttackRange.CODEC).networkSynchronized(AttackRange.STREAM_CODEC).cacheEncoding()
    );
    public static final DataComponentType<Enchantable> ENCHANTABLE = register(
        "enchantable", b -> b.persistent(Enchantable.CODEC).networkSynchronized(Enchantable.STREAM_CODEC).cacheEncoding()
    );
    public static final DataComponentType<Equippable> EQUIPPABLE = register(
        "equippable", b -> b.persistent(Equippable.CODEC).networkSynchronized(Equippable.STREAM_CODEC).cacheEncoding()
    );
    public static final DataComponentType<Repairable> REPAIRABLE = register(
        "repairable", b -> b.persistent(Repairable.CODEC).networkSynchronized(Repairable.STREAM_CODEC).cacheEncoding()
    );
    public static final DataComponentType<Unit> GLIDER = register("glider", b -> b.persistent(Unit.CODEC).networkSynchronized(Unit.STREAM_CODEC));
    public static final DataComponentType<Identifier> TOOLTIP_STYLE = register(
        "tooltip_style", b -> b.persistent(Identifier.CODEC).networkSynchronized(Identifier.STREAM_CODEC).cacheEncoding()
    );
    public static final DataComponentType<DeathProtection> DEATH_PROTECTION = register(
        "death_protection", b -> b.persistent(DeathProtection.CODEC).networkSynchronized(DeathProtection.STREAM_CODEC).cacheEncoding()
    );
    public static final DataComponentType<BlocksAttacks> BLOCKS_ATTACKS = register(
        "blocks_attacks", b -> b.persistent(BlocksAttacks.CODEC).networkSynchronized(BlocksAttacks.STREAM_CODEC).cacheEncoding()
    );
    public static final DataComponentType<PiercingWeapon> PIERCING_WEAPON = register(
        "piercing_weapon", b -> b.persistent(PiercingWeapon.CODEC).networkSynchronized(PiercingWeapon.STREAM_CODEC).cacheEncoding()
    );
    public static final DataComponentType<KineticWeapon> KINETIC_WEAPON = register(
        "kinetic_weapon", b -> b.persistent(KineticWeapon.CODEC).networkSynchronized(KineticWeapon.STREAM_CODEC).cacheEncoding()
    );
    public static final DataComponentType<SwingAnimation> SWING_ANIMATION = register(
        "swing_animation", b -> b.persistent(SwingAnimation.CODEC).networkSynchronized(SwingAnimation.STREAM_CODEC)
    );
    public static final DataComponentType<Integer> ADDITIONAL_TRADE_COST = register("additional_trade_cost", b -> b.networkSynchronized(ByteBufCodecs.VAR_INT));
    public static final DataComponentType<ItemEnchantments> STORED_ENCHANTMENTS = register(
        "stored_enchantments", b -> b.persistent(ItemEnchantments.CODEC).networkSynchronized(ItemEnchantments.STREAM_CODEC).cacheEncoding()
    );
    public static final DataComponentType<DyeColor> DYE = register("dye", b -> b.persistent(DyeColor.CODEC).networkSynchronized(DyeColor.STREAM_CODEC));
    public static final DataComponentType<DyedItemColor> DYED_COLOR = register(
        "dyed_color", b -> b.persistent(DyedItemColor.CODEC).networkSynchronized(DyedItemColor.STREAM_CODEC)
    );
    public static final DataComponentType<MapItemColor> MAP_COLOR = register(
        "map_color", b -> b.persistent(MapItemColor.CODEC).networkSynchronized(MapItemColor.STREAM_CODEC)
    );
    public static final DataComponentType<MapId> MAP_ID = register("map_id", b -> b.persistent(MapId.CODEC).networkSynchronized(MapId.STREAM_CODEC));
    public static final DataComponentType<MapDecorations> MAP_DECORATIONS = register("map_decorations", b -> b.persistent(MapDecorations.CODEC).cacheEncoding());
    public static final DataComponentType<MapPostProcessing> MAP_POST_PROCESSING = register(
        "map_post_processing", b -> b.networkSynchronized(MapPostProcessing.STREAM_CODEC)
    );
    public static final DataComponentType<ChargedProjectiles> CHARGED_PROJECTILES = register(
        "charged_projectiles", b -> b.persistent(ChargedProjectiles.CODEC).networkSynchronized(ChargedProjectiles.STREAM_CODEC).cacheEncoding()
    );
    public static final DataComponentType<BundleContents> BUNDLE_CONTENTS = register(
        "bundle_contents", b -> b.persistent(BundleContents.CODEC).networkSynchronized(BundleContents.STREAM_CODEC).cacheEncoding()
    );
    public static final DataComponentType<PotionContents> POTION_CONTENTS = register(
        "potion_contents", b -> b.persistent(PotionContents.CODEC).networkSynchronized(PotionContents.STREAM_CODEC).cacheEncoding()
    );
    public static final DataComponentType<Float> POTION_DURATION_SCALE = register(
        "potion_duration_scale", b -> b.persistent(ExtraCodecs.NON_NEGATIVE_FLOAT).networkSynchronized(ByteBufCodecs.FLOAT).cacheEncoding()
    );
    public static final DataComponentType<SuspiciousStewEffects> SUSPICIOUS_STEW_EFFECTS = register(
        "suspicious_stew_effects", b -> b.persistent(SuspiciousStewEffects.CODEC).networkSynchronized(SuspiciousStewEffects.STREAM_CODEC).cacheEncoding()
    );
    public static final DataComponentType<WritableBookContent> WRITABLE_BOOK_CONTENT = register(
        "writable_book_content", b -> b.persistent(WritableBookContent.CODEC).networkSynchronized(WritableBookContent.STREAM_CODEC).cacheEncoding()
    );
    public static final DataComponentType<WrittenBookContent> WRITTEN_BOOK_CONTENT = register(
        "written_book_content", b -> b.persistent(WrittenBookContent.CODEC).networkSynchronized(WrittenBookContent.STREAM_CODEC).cacheEncoding()
    );
    public static final DataComponentType<ArmorTrim> TRIM = register(
        "trim", b -> b.persistent(ArmorTrim.CODEC).networkSynchronized(ArmorTrim.STREAM_CODEC).cacheEncoding()
    );
    public static final DataComponentType<DebugStickState> DEBUG_STICK_STATE = register(
        "debug_stick_state", b -> b.persistent(DebugStickState.CODEC).cacheEncoding()
    );
    public static final DataComponentType<TypedEntityData<EntityType<?>>> ENTITY_DATA = register(
        "entity_data", b -> b.persistent(TypedEntityData.codec(EntityType.CODEC)).networkSynchronized(TypedEntityData.streamCodec(EntityType.STREAM_CODEC))
    );
    public static final DataComponentType<CustomData> BUCKET_ENTITY_DATA = register(
        "bucket_entity_data", b -> b.persistent(CustomData.CODEC).networkSynchronized(CustomData.STREAM_CODEC)
    );
    public static final DataComponentType<TypedEntityData<BlockEntityType<?>>> BLOCK_ENTITY_DATA = register(
        "block_entity_data",
        b -> b.persistent(TypedEntityData.codec(BuiltInRegistries.BLOCK_ENTITY_TYPE.byNameCodec()))
            .networkSynchronized(TypedEntityData.streamCodec(ByteBufCodecs.registry(Registries.BLOCK_ENTITY_TYPE)))
    );
    public static final DataComponentType<InstrumentComponent> INSTRUMENT = register(
        "instrument", b -> b.persistent(InstrumentComponent.CODEC).networkSynchronized(InstrumentComponent.STREAM_CODEC).cacheEncoding()
    );
    public static final DataComponentType<Holder<TrimMaterial>> PROVIDES_TRIM_MATERIAL = register(
        "provides_trim_material", b -> b.persistent(TrimMaterial.CODEC).networkSynchronized(TrimMaterial.STREAM_CODEC).cacheEncoding()
    );
    public static final DataComponentType<OminousBottleAmplifier> OMINOUS_BOTTLE_AMPLIFIER = register(
        "ominous_bottle_amplifier", b -> b.persistent(OminousBottleAmplifier.CODEC).networkSynchronized(OminousBottleAmplifier.STREAM_CODEC)
    );
    public static final DataComponentType<JukeboxPlayable> JUKEBOX_PLAYABLE = register(
        "jukebox_playable", b -> b.persistent(JukeboxPlayable.CODEC).networkSynchronized(JukeboxPlayable.STREAM_CODEC)
    );
    public static final DataComponentType<HolderSet<BannerPattern>> PROVIDES_BANNER_PATTERNS = register(
        "provides_banner_patterns",
        b -> b.persistent(RegistryCodecs.homogeneousList(Registries.BANNER_PATTERN))
            .networkSynchronized(ByteBufCodecs.holderSet(Registries.BANNER_PATTERN))
            .cacheEncoding()
    );
    public static final DataComponentType<List<ResourceKey<Recipe<?>>>> RECIPES = register(
        "recipes", b -> b.persistent(Recipe.KEY_CODEC.listOf()).cacheEncoding()
    );
    public static final DataComponentType<LodestoneTracker> LODESTONE_TRACKER = register(
        "lodestone_tracker", b -> b.persistent(LodestoneTracker.CODEC).networkSynchronized(LodestoneTracker.STREAM_CODEC).cacheEncoding()
    );
    public static final DataComponentType<FireworkExplosion> FIREWORK_EXPLOSION = register(
        "firework_explosion", b -> b.persistent(FireworkExplosion.CODEC).networkSynchronized(FireworkExplosion.STREAM_CODEC).cacheEncoding()
    );
    public static final DataComponentType<Fireworks> FIREWORKS = register(
        "fireworks", b -> b.persistent(Fireworks.CODEC).networkSynchronized(Fireworks.STREAM_CODEC).cacheEncoding()
    );
    public static final DataComponentType<ResolvableProfile> PROFILE = register(
        "profile", b -> b.persistent(ResolvableProfile.CODEC).networkSynchronized(ResolvableProfile.STREAM_CODEC).cacheEncoding()
    );
    public static final DataComponentType<Identifier> NOTE_BLOCK_SOUND = register(
        "note_block_sound", b -> b.persistent(Identifier.CODEC).networkSynchronized(Identifier.STREAM_CODEC)
    );
    public static final DataComponentType<BannerPatternLayers> BANNER_PATTERNS = register(
        "banner_patterns", b -> b.persistent(BannerPatternLayers.CODEC).networkSynchronized(BannerPatternLayers.STREAM_CODEC).cacheEncoding()
    );
    public static final DataComponentType<DyeColor> BASE_COLOR = register(
        "base_color", b -> b.persistent(DyeColor.CODEC).networkSynchronized(DyeColor.STREAM_CODEC)
    );
    public static final DataComponentType<PotDecorations> POT_DECORATIONS = register(
        "pot_decorations", b -> b.persistent(PotDecorations.CODEC).networkSynchronized(PotDecorations.STREAM_CODEC).cacheEncoding()
    );
    public static final DataComponentType<ItemContainerContents> CONTAINER = register(
        "container", b -> b.persistent(ItemContainerContents.CODEC).networkSynchronized(ItemContainerContents.STREAM_CODEC).cacheEncoding()
    );
    public static final DataComponentType<BlockItemStateProperties> BLOCK_STATE = register(
        "block_state", b -> b.persistent(BlockItemStateProperties.CODEC).networkSynchronized(BlockItemStateProperties.STREAM_CODEC).cacheEncoding()
    );
    public static final DataComponentType<Bees> BEES = register("bees", b -> b.persistent(Bees.CODEC).networkSynchronized(Bees.STREAM_CODEC).cacheEncoding());
    public static final DataComponentType<LockCode> LOCK = register("lock", b -> b.persistent(LockCode.CODEC));
    public static final DataComponentType<SeededContainerLoot> CONTAINER_LOOT = register("container_loot", b -> b.persistent(SeededContainerLoot.CODEC));
    public static final DataComponentType<Holder<SoundEvent>> BREAK_SOUND = register(
        "break_sound", b -> b.persistent(SoundEvent.CODEC).networkSynchronized(SoundEvent.STREAM_CODEC).cacheEncoding()
    );
    public static final DataComponentType<Holder<VillagerType>> VILLAGER_VARIANT = register(
        "villager/variant", b -> b.persistent(VillagerType.CODEC).networkSynchronized(VillagerType.STREAM_CODEC)
    );
    public static final DataComponentType<Holder<WolfVariant>> WOLF_VARIANT = register(
        "wolf/variant", b -> b.persistent(WolfVariant.CODEC).networkSynchronized(WolfVariant.STREAM_CODEC)
    );
    public static final DataComponentType<Holder<WolfSoundVariant>> WOLF_SOUND_VARIANT = register(
        "wolf/sound_variant", b -> b.persistent(WolfSoundVariant.CODEC).networkSynchronized(WolfSoundVariant.STREAM_CODEC)
    );
    public static final DataComponentType<DyeColor> WOLF_COLLAR = register(
        "wolf/collar", b -> b.persistent(DyeColor.CODEC).networkSynchronized(DyeColor.STREAM_CODEC)
    );
    public static final DataComponentType<Fox.Variant> FOX_VARIANT = register(
        "fox/variant", b -> b.persistent(Fox.Variant.CODEC).networkSynchronized(Fox.Variant.STREAM_CODEC)
    );
    public static final DataComponentType<Salmon.Variant> SALMON_SIZE = register(
        "salmon/size", b -> b.persistent(Salmon.Variant.CODEC).networkSynchronized(Salmon.Variant.STREAM_CODEC)
    );
    public static final DataComponentType<Parrot.Variant> PARROT_VARIANT = register(
        "parrot/variant", b -> b.persistent(Parrot.Variant.CODEC).networkSynchronized(Parrot.Variant.STREAM_CODEC)
    );
    public static final DataComponentType<TropicalFish.Pattern> TROPICAL_FISH_PATTERN = register(
        "tropical_fish/pattern", b -> b.persistent(TropicalFish.Pattern.CODEC).networkSynchronized(TropicalFish.Pattern.STREAM_CODEC)
    );
    public static final DataComponentType<DyeColor> TROPICAL_FISH_BASE_COLOR = register(
        "tropical_fish/base_color", b -> b.persistent(DyeColor.CODEC).networkSynchronized(DyeColor.STREAM_CODEC)
    );
    public static final DataComponentType<DyeColor> TROPICAL_FISH_PATTERN_COLOR = register(
        "tropical_fish/pattern_color", b -> b.persistent(DyeColor.CODEC).networkSynchronized(DyeColor.STREAM_CODEC)
    );
    public static final DataComponentType<MushroomCow.Variant> MOOSHROOM_VARIANT = register(
        "mooshroom/variant", b -> b.persistent(MushroomCow.Variant.CODEC).networkSynchronized(MushroomCow.Variant.STREAM_CODEC)
    );
    public static final DataComponentType<Rabbit.Variant> RABBIT_VARIANT = register(
        "rabbit/variant", b -> b.persistent(Rabbit.Variant.CODEC).networkSynchronized(Rabbit.Variant.STREAM_CODEC)
    );
    public static final DataComponentType<Holder<PigVariant>> PIG_VARIANT = register(
        "pig/variant", b -> b.persistent(PigVariant.CODEC).networkSynchronized(PigVariant.STREAM_CODEC)
    );
    public static final DataComponentType<Holder<PigSoundVariant>> PIG_SOUND_VARIANT = register(
        "pig/sound_variant", b -> b.persistent(PigSoundVariant.CODEC).networkSynchronized(PigSoundVariant.STREAM_CODEC)
    );
    public static final DataComponentType<Holder<CowVariant>> COW_VARIANT = register(
        "cow/variant", b -> b.persistent(CowVariant.CODEC).networkSynchronized(CowVariant.STREAM_CODEC)
    );
    public static final DataComponentType<Holder<CowSoundVariant>> COW_SOUND_VARIANT = register(
        "cow/sound_variant", b -> b.persistent(CowSoundVariant.CODEC).networkSynchronized(CowSoundVariant.STREAM_CODEC)
    );
    public static final DataComponentType<Holder<ChickenVariant>> CHICKEN_VARIANT = register(
        "chicken/variant", b -> b.persistent(ChickenVariant.CODEC).networkSynchronized(ChickenVariant.STREAM_CODEC)
    );
    public static final DataComponentType<Holder<ChickenSoundVariant>> CHICKEN_SOUND_VARIANT = register(
        "chicken/sound_variant", b -> b.persistent(ChickenSoundVariant.CODEC).networkSynchronized(ChickenSoundVariant.STREAM_CODEC)
    );
    public static final DataComponentType<Holder<ZombieNautilusVariant>> ZOMBIE_NAUTILUS_VARIANT = register(
        "zombie_nautilus/variant", b -> b.persistent(ZombieNautilusVariant.CODEC).networkSynchronized(ZombieNautilusVariant.STREAM_CODEC)
    );
    public static final DataComponentType<Holder<FrogVariant>> FROG_VARIANT = register(
        "frog/variant", b -> b.persistent(FrogVariant.CODEC).networkSynchronized(FrogVariant.STREAM_CODEC)
    );
    public static final DataComponentType<Variant> HORSE_VARIANT = register(
        "horse/variant", b -> b.persistent(Variant.CODEC).networkSynchronized(Variant.STREAM_CODEC)
    );
    public static final DataComponentType<Holder<PaintingVariant>> PAINTING_VARIANT = register(
        "painting/variant", b -> b.persistent(PaintingVariant.CODEC).networkSynchronized(PaintingVariant.STREAM_CODEC)
    );
    public static final DataComponentType<Llama.Variant> LLAMA_VARIANT = register(
        "llama/variant", b -> b.persistent(Llama.Variant.CODEC).networkSynchronized(Llama.Variant.STREAM_CODEC)
    );
    public static final DataComponentType<Axolotl.Variant> AXOLOTL_VARIANT = register(
        "axolotl/variant", b -> b.persistent(Axolotl.Variant.CODEC).networkSynchronized(Axolotl.Variant.STREAM_CODEC)
    );
    public static final DataComponentType<Holder<CatVariant>> CAT_VARIANT = register(
        "cat/variant", b -> b.persistent(CatVariant.CODEC).networkSynchronized(CatVariant.STREAM_CODEC)
    );
    public static final DataComponentType<Holder<CatSoundVariant>> CAT_SOUND_VARIANT = register(
        "cat/sound_variant", b -> b.persistent(CatSoundVariant.CODEC).networkSynchronized(CatSoundVariant.STREAM_CODEC)
    );
    public static final DataComponentType<DyeColor> CAT_COLLAR = register(
        "cat/collar", b -> b.persistent(DyeColor.CODEC).networkSynchronized(DyeColor.STREAM_CODEC)
    );
    public static final DataComponentType<DyeColor> SHEEP_COLOR = register(
        "sheep/color", b -> b.persistent(DyeColor.CODEC).networkSynchronized(DyeColor.STREAM_CODEC)
    );
    public static final DataComponentType<DyeColor> SHULKER_COLOR = register(
        "shulker/color", b -> b.persistent(DyeColor.CODEC).networkSynchronized(DyeColor.STREAM_CODEC)
    );
    public static final DataComponentMap COMMON_ITEM_COMPONENTS = DataComponentMap.builder()
        .set(MAX_STACK_SIZE, 64)
        .set(LORE, ItemLore.EMPTY)
        .set(ENCHANTMENTS, ItemEnchantments.EMPTY)
        .set(REPAIR_COST, 0)
        .set(USE_EFFECTS, UseEffects.DEFAULT)
        .set(ATTRIBUTE_MODIFIERS, ItemAttributeModifiers.EMPTY)
        .set(RARITY, Rarity.COMMON)
        .set(BREAK_SOUND, SoundEvents.ITEM_BREAK)
        .set(TOOLTIP_DISPLAY, TooltipDisplay.DEFAULT)
        .set(SWING_ANIMATION, SwingAnimation.DEFAULT)
        .build();
 
    public static DataComponentType<?> bootstrap(Registry<DataComponentType<?>> registry) {
        return CUSTOM_DATA;
    }
 
    private static <T> DataComponentType<T> register(String id, UnaryOperator<DataComponentType.Builder<T>> builder) {
        return Registry.register(BuiltInRegistries.DATA_COMPONENT_TYPE, id, builder.apply(DataComponentType.builder()).build());
    }
}

引用的其他类