Skip to content

API Changes in 1.21.3

All API Changes
All API Additions
  • ClientOption.PARTICLE_VISIBILITY: ClientOption<ParticleVisibility>
  • PlayerClientOptionsChangeEvent#getParticleVisibility(): ParticleVisibility
  • PlayerClientOptionsChangeEvent#hasParticleVisibilityChanged(): boolean
  • Bukkit.isOwnedByCurrentRegion(World world, int minChunkX, int minChunkZ, int maxChunkX, int maxChunkZ): boolean
  • Bukkit.isGlobalTickThread(): boolean
  • Server#isOwnedByCurrentRegion(World world, int minChunkX, int minChunkZ, int maxChunkX, int maxChunkZ): boolean
  • Server#isGlobalTickThread(): boolean
  • BannerPatternTagKeys
  • BiomeTagKeys
  • BlockTypeTagKeys
  • CatVariantTagKeys
  • DamageTypeTagKeys
  • FluidTagKeys
  • GameEventTagKeys
  • InstrumentTagKeys
  • PaintingVariantTagKeys
  • StructureTagKeys
  • PaintingVariantRegistryEntry
  • RegistryEvents.PAINTING_VARIANT: RegistryEventProvider<Art, PaintingVariantRegistryEntry.Builder>
  • Art#title(): Component
  • Art#author(): Component
  • Art#assetId(): Key
  • Server#allowPausing(Plugin plugin, boolean value)
  • Server#isPaused(): boolean
  • PlayerItemCooldownEvent extends PlayerItemGroupCooldownEvent
  • BlockPredicate
  • BuildableDataComponent<C extends BuildableDataComponent<C, B>, B extends DataComponentBuilder<C>>
  • DataComponentBuilder<C>
  • DataComponentType
  • DataComponentTypes
  • BannerPatternLayers
  • BlockItemDataProperties
  • BundleContents
  • ChargedProjectiles
  • Consumable extends BuildableDataComponent<Consumable, Consumable.Builder>
  • CustomModelData
  • DamageResistant
  • DeathProtection
  • DyedItemColor extends ShownInTooltip<DyedItemColor>
  • Enchantable
  • Equippable extends BuildableDataComponent<Equippable, Equippable.Builder>
  • Fireworks
  • FoodProperties extends BuildableDataComponent<FoodProperties, FoodProperties.Builder>
  • ItemAdventurePredicate extends ShownInTooltip<ItemAdventurePredicate>
  • ItemArmorTrim extends ShownInTooltip<ItemArmorTrim>
  • ItemAttributeModifiers extends ShownInTooltip<ItemAttributeModifiers>
  • ItemComponentTypesBridge
  • ItemContainerContents
  • ItemEnchantments extends ShownInTooltip<ItemEnchantments>
  • ItemLore
  • JukeboxPlayable extends ShownInTooltip<JukeboxPlayable>
  • LodestoneTracker
  • MapDecorations
  • MapId
  • MapItemColor
  • OminousBottleAmplifier
  • PotDecorations
  • PotionContents
  • Repairable
  • ResolvableProfile
  • SeededContainerLoot
  • ShownInTooltip<T>
  • SuspiciousStewEffects
  • Tool
  • Unbreakable extends ShownInTooltip<Unbreakable>
  • UseCooldown
  • UseRemainder
  • WritableBookContent
  • WrittenBookContent
  • ConsumeEffect
  • ItemUseAnimation
  • MapPostProcessing
  • Filtered<T>
  • Material#getDefaultData(DataComponentType.Value<T> type): T
  • Material#hasDefaultData(DataComponentType type): boolean
  • Material#getDefaultDataTypes(): Set<DataComponentType>
  • ItemStack#getData(DataComponentType.Value<T> type): T
  • ItemStack#getDataOrDefault(DataComponentType.Value<T> type, T fallback): T
  • ItemStack#hasData(DataComponentType type): boolean
  • ItemStack#getDataTypes(): Set<DataComponentType>
  • ItemStack#setData(DataComponentType.Valued<T> type, DataComponentBuilder<T> valueBuilder)
  • ItemStack#setData(DataComponentType.Valued<T>, T value)
  • ItemStack#setData(DataComponentType.NonValued)
  • ItemStack#unsetData(DataComponentType)
  • ItemStack#resetData(DataComponentType)
  • ItemStack#isDataOverridden(DataComponentType): boolean
  • ItemStack#matchesWithoutData(ItemStack, Set<DataComponentType> excludeTypes): boolean
  • ItemStack#matchesWithoutData(ItemStack, Set<DataComponentType> excludeTypes, boolean ignoreCount): boolean
  • ItemStack#editData(DataComponentType.Valued<T> type, Function<T, T>)
  • Registry.DATA_COMPONENT_TYPE: Registry<DataComponentType>
  • RegistryKey.DATA_COMPONENT_TYPE: RegistryKey<DataComponentType>
  • ItemType#getDefaultData(DataComponentType.Valued<T> type): T
  • ItemType#hasDefaultData(DataComponentType type): boolean
  • ItemType#getDefaultDataTypes(): Set<DataComponentType>
  • All API Deprecations
  • ClientOption.UNKNOWN
  • Art#key(): Key
  • MusicInstrument#key(): Key
  • Sound#key(): Key
  • PatternType#key(): Key
  • PatternType#getKey(): NamespacedKey
  • Structure#key(): Key
  • TrimMaterial#key(): Key
  • TrimPattern#key(): Key
  • All Class Inheritance Changes
  • TypedKey<T> now extends Key (extended Keyed before)
  • All Renamed Classes
  • PlayerItemCooldownEvent to PlayerItemGroupCooldownEvent
  • No Longer Internal
  • BlockType
  • #74 Deprecate ChatVisibility#UNKNOWN

    Deprecations:

    • ClientOption.UNKNOWN

    #69 deprecate adventure key() methods where applicable

    Deprecations:

    • Art#key(): Key
    • MusicInstrument#key(): Key
    • Sound#key(): Key
    • PatternType#key(): Key
    • PatternType#getKey(): NamespacedKey
    • Structure#key(): Key
    • TrimMaterial#key(): Key
    • TrimPattern#key(): Key

    #64 Expose particle status client option

    Additions:

    • ClientOption.PARTICLE_VISIBILITY: ClientOption<ParticleVisibility>
    • PlayerClientOptionsChangeEvent#getParticleVisibility(): ParticleVisibility
    • PlayerClientOptionsChangeEvent#hasParticleVisibilityChanged(): boolean

    #63 Add Server#isGlobalTickThread

    Additions:

    • Bukkit.isOwnedByCurrentRegion(World world, int minChunkX, int minChunkZ, int maxChunkX, int maxChunkZ): boolean
    • Bukkit.isGlobalTickThread(): boolean
    • Server#isOwnedByCurrentRegion(World world, int minChunkX, int minChunkZ, int maxChunkX, int maxChunkZ): boolean
    • Server#isGlobalTickThread(): boolean

    #60 Add all missing TagKey constants files

    Additions:

    • BannerPatternTagKeys
    • BiomeTagKeys
    • BlockTypeTagKeys
    • CatVariantTagKeys
    • DamageTypeTagKeys
    • FluidTagKeys
    • GameEventTagKeys
    • InstrumentTagKeys
    • PaintingVariantTagKeys
    • StructureTagKeys

    #56 Painting variant registry modification API

    Additions:

    • PaintingVariantRegistryEntry
    • RegistryEvents.PAINTING_VARIANT: RegistryEventProvider<Art, PaintingVariantRegistryEntry.Builder>
    • Art#title(): Component
    • Art#author(): Component
    • Art#assetId(): Key

    #51 Make TypedKey an actual Key

    Extensions:

    • TypedKey<T> now extends Key (extended Keyed before)

    #48 Add API to allow/disallow tick sleeping

    Additions:

    • Server#allowPausing(Plugin plugin, boolean value)

    #47 Added API to check if the server is sleeping

    Additions:

    • Server#isPaused(): boolean

    #42 Add PlayerItemGroupCooldownEvent

    Additions:

    • PlayerItemCooldownEvent extends PlayerItemGroupCooldownEvent

    Renamed:

    • PlayerItemCooldownEvent to PlayerItemGroupCooldownEvent

    #38 Item datacomponent api

    The contents of this PR have been documented in the Paper docs: Data Component API.

    Additions:

    • BlockPredicate
    • BuildableDataComponent<C extends BuildableDataComponent<C, B>, B extends DataComponentBuilder<C>>
    • DataComponentBuilder<C>
    • DataComponentType
    • DataComponentTypes
    • BannerPatternLayers
    • BlockItemDataProperties
    • BundleContents
    • ChargedProjectiles
    • Consumable extends BuildableDataComponent<Consumable, Consumable.Builder>
    • CustomModelData
    • DamageResistant
    • DeathProtection
    • DyedItemColor extends ShownInTooltip<DyedItemColor>
    • Enchantable
    • Equippable extends BuildableDataComponent<Equippable, Equippable.Builder>
    • Fireworks
    • FoodProperties extends BuildableDataComponent<FoodProperties, FoodProperties.Builder>
    • ItemAdventurePredicate extends ShownInTooltip<ItemAdventurePredicate>
    • ItemArmorTrim extends ShownInTooltip<ItemArmorTrim>
    • ItemAttributeModifiers extends ShownInTooltip<ItemAttributeModifiers>
    • ItemComponentTypesBridge
    • ItemContainerContents
    • ItemEnchantments extends ShownInTooltip<ItemEnchantments>
    • ItemLore
    • JukeboxPlayable extends ShownInTooltip<JukeboxPlayable>
    • LodestoneTracker
    • MapDecorations
    • MapId
    • MapItemColor
    • OminousBottleAmplifier
    • PotDecorations
    • PotionContents
    • Repairable
    • ResolvableProfile
    • SeededContainerLoot
    • ShownInTooltip<T>
    • SuspiciousStewEffects
    • Tool
    • Unbreakable extends ShownInTooltip<Unbreakable>
    • UseCooldown
    • UseRemainder
    • WritableBookContent
    • WrittenBookContent
    • ConsumeEffect
    • ItemUseAnimation
    • MapPostProcessing
    • Filtered<T>
    • Material#getDefaultData(DataComponentType.Value<T> type): T
    • Material#hasDefaultData(DataComponentType type): boolean
    • Material#getDefaultDataTypes(): Set<DataComponentType>
    • ItemStack#getData(DataComponentType.Value<T> type): T
    • ItemStack#getDataOrDefault(DataComponentType.Value<T> type, T fallback): T
    • ItemStack#hasData(DataComponentType type): boolean
    • ItemStack#getDataTypes(): Set<DataComponentType>
    • ItemStack#setData(DataComponentType.Valued<T> type, DataComponentBuilder<T> valueBuilder)
    • ItemStack#setData(DataComponentType.Valued<T>, T value)
    • ItemStack#setData(DataComponentType.NonValued)
    • ItemStack#unsetData(DataComponentType)
    • ItemStack#resetData(DataComponentType)
    • ItemStack#isDataOverridden(DataComponentType): boolean
    • ItemStack#matchesWithoutData(ItemStack, Set<DataComponentType> excludeTypes): boolean
    • ItemStack#matchesWithoutData(ItemStack, Set<DataComponentType> excludeTypes, boolean ignoreCount): boolean
    • ItemStack#editData(DataComponentType.Valued<T> type, Function<T, T>)
    • Registry.DATA_COMPONENT_TYPE: Registry<DataComponentType>
    • RegistryKey.DATA_COMPONENT_TYPE: RegistryKey<DataComponentType>
    • ItemType#getDefaultData(DataComponentType.Valued<T> type): T
    • ItemType#hasDefaultData(DataComponentType type): boolean
    • ItemType#getDefaultDataTypes(): Set<DataComponentType>

    No longer internal:

    • BlockType

    Learn Paper Dev is licensed under CC BY-NC-SA 4.0