API Changes in 1.21.1
All API Changes
All API Additions
OfflinePlayer#getPersistentDataContainer()
PlayerInsertLecternBookEvent extends PlayerEvent implements Cancellable
org.jspecify` annotations are now included in the api
BrewingStand#setRecipeBrewTime(int recipeBrewTime)
BrewingStand#getRecipeBrewTime(): int
BrewingStartEvent#getRecipeBrewTime(): int
BrewingStartEvent#setRecipeBrewTime(int recipeBrewTime)
BrewingStartEvent#getBrewingTime(): int
BrewingStartEvent#setBrewingTime(int brewingTime)
BrewingStandView#getRecipeBrewTime(): int
BrewingStandView#setRecipeBrewTime(int recipeBrewTime)
EntityEffect.TAMING_FAILED
EntityEffect.TAMING_SUCCEEDED
EntityEffect.ARMADILLO_PEEK
EntityEffect.BODY_BREAK
Entity#broadcastHurtAnimation(Collection<Player> players)
Player#sendEntityEffect(EntityEffect effect, Entity target)
ItemFactory#enchantWithLevels(ItemStack itemStack, int levels, RegistryKeySet<Enchantment> keySet, Random random): ItemStack
ItemStack#enchantWithLevels(int levels, RegistryKeySet<Enchantment> keySet, Random random): ItemStack
Datapack#getTitle(): Component
Datapack#getDescription(): Component
Datapack#isRequired(): boolean
Datapack#getRequiredFeatures(): Set<FeatureFlag>
Datapack#getSource(): DatapackSource
Datapack#computeDisplayName(): Component
DatapackManager#refreshPacks()
DatapackManager#getPack(String name): Datapack
DatapackSource
ItemStack.serializeItemsAsBytes(Collection<ItemStack> items): byte[]
ItemStack.serializeItemsAsBytes(ItemStack[] items): byte[]
ItemStack#deserializeItemsFromBytes(byte[] bytes): ItemStack[]
<T extends Projectile> ProjectileSource#launchProjective(Class<? extends T> projectile, Vector velocity, Consumer<? super T> function): T
TileStateInventoryHolder extends TileState, BlockInventoryHolder
Bed#setOccupied(boolean occupied)
DecoratedPot#isCracked(): boolean
DecoratedPot#setCracked(boolean cracked)
UnsafeValues#serializeItemAsJson(ItemStack itemStack): JsonObject
UnsafeValues#deserializeItemFromJson(JsonObject data): ItemStack
TagEventTypeProvider
PreFlattenTagRegistrar<T> extends Registrar
PostFlattenTagRegistrar<T> extends Registrar
TagEntry<T> extends Keyed
LifecycleEvents.TAGS: TagEventTypeProvider
FeatureDependant
FeatureFlagSetHolder
FeatureFlag.ALL_FLAGS: Index<Key, FeatureFlag>
EnchantmentView#setEnchantmentSeed(int seed)
CompassMeta#isLodestoneCompass(): boolean
CompassMeta#clearLodestone()
Bukkit.getWorld(Key worldKey): World
Server#getWorld(Key worldKey): World
Sign#getAllowedEditorUniqueId(): UUID
Sign#setAllowedEditorUniqueId(UUID uuid)
Leashable
Enchantment#description: Component
Enchantment#getSupportedItems(): RegistryKeySet<ItemType>
Enchantment#getPrimaryItems(): RegistryKeySet<ItemType>
Enchantment#getWeight(): int
Enchantment#getExclusiveWith(): RegistryKeySet<Enchantment>
FireworkMeta#hasPower(): boolean
All API Deprecations
BrewingStartEvent#getTotalBrewTime(): int
BrewingStartEvent#setTotalBrewTime(int brewTime)
EntityEffect.WORLD_SMOKE
EntityEffect.WOLF_HEARTS
EntityEffect.THORNS_HURT
EntityEffect.HURT_DROWN
EntityEffect.HURT_EXPLOSION
EntityEffect.PLAYER_BAD_OMEN_RAID
EntityEffect.HURT_BERRY_BUSH
Block#isValidTool(ItemStack itemStack): boolean
BukkitObjectInputStream
BukkitObjectOutputStream
BlockType#isInteractable(): boolean
BlockType#isEnabledByFeature(World world): boolean
ItemType#isEnabledByFeature(World world): boolean
InventoryView#getOriginalTitle(): String
InventoryView:setTitle(String title)
All Class Inheritance Changes
OfflinePlayer
now extends PersistentDataViewHolder
MenuType
now extends FeatureDependant
ChiseledBookshelf
no longer extends TileState & BlockInventoryHolder
and now extends TileStateInventoryHolder
Container
no longer extends BlockInventoryHolder
and now extends TileStateInventoryHolder
DecoratedPot
no longer extends TileState & BlockInventoryHolder
and now extends TileStateInventoryHolder
Jukebox
no longer extends TileState & BlockInventoryHolder
and now extends TileStateInventoryHolder
Lectern
no longer extends TileState & BlockInventoryHolder
and now extends TileStateInventoryHolder
Enchantment
no longer extends FeatureDependant
RegionAccessor
now extends FeatureFlagSetHolder
WorldInfo
now extends FeatureFlagSetHolder
PotionEffectType
now extends FeatureDependant
Enchantment
now extends FeatureDependant
PotionType
now extends FeatureDependant
EntityType
now extends FeatureDependant
BlockType
now extends FeatureDependant
Boat
now extends Leashable
Mob
now extends Leashable
All API Removals
UnsafeValues#getFeatureFlag(NamespacedKey key): FeatureFlag
#125
Updated Upstream (Bukkit/CraftBukkit)
There have been minor API changes. View them in the PR description.
#121
Add offline PDC API
Additions:
-
OfflinePlayer#getPersistentDataContainer()
Extensions:
OfflinePlayer
now extendsPersistentDataViewHolder
#112
Add PlayerInsertLecternBookEvent [1.20 port]
Additions:
-
PlayerInsertLecternBookEvent extends PlayerEvent implements Cancellable
#111
Begin switching to JSpecify annotations
Additions:
-
org.jspecify` annotations are now included in the api
#109
Add API for explosions to damage the explosion cause
Added a new parameter to World#explode
#108
Add startingBrewTime
Additions:
-
BrewingStand#setRecipeBrewTime(int recipeBrewTime)
-
BrewingStand#getRecipeBrewTime(): int
-
BrewingStartEvent#getRecipeBrewTime(): int
-
BrewingStartEvent#setRecipeBrewTime(int recipeBrewTime)
-
BrewingStartEvent#getBrewingTime(): int
-
BrewingStartEvent#setBrewingTime(int brewingTime)
-
BrewingStandView#getRecipeBrewTime(): int
-
BrewingStandView#setRecipeBrewTime(int recipeBrewTime)
Deprecations:
-
BrewingStartEvent#getTotalBrewTime(): int
-
BrewingStartEvent#setTotalBrewTime(int brewTime)
#107
Improve entity effect API
Additions:
-
EntityEffect.TAMING_FAILED
-
EntityEffect.TAMING_SUCCEEDED
-
EntityEffect.ARMADILLO_PEEK
-
EntityEffect.BODY_BREAK
-
Entity#broadcastHurtAnimation(Collection<Player> players)
-
Player#sendEntityEffect(EntityEffect effect, Entity target)
Deprecations:
-
EntityEffect.WORLD_SMOKE
-
EntityEffect.WOLF_HEARTS
-
EntityEffect.THORNS_HURT
-
EntityEffect.HURT_DROWN
-
EntityEffect.HURT_EXPLOSION
-
EntityEffect.PLAYER_BAD_OMEN_RAID
-
EntityEffect.HURT_BERRY_BUSH
#105
Add enchantWithLevels with tag specification
Additions:
-
ItemFactory#enchantWithLevels(ItemStack itemStack, int levels, RegistryKeySet<Enchantment> keySet, Random random): ItemStack
-
ItemStack#enchantWithLevels(int levels, RegistryKeySet<Enchantment> keySet, Random random): ItemStack
#102
deprecate for removal Block#isValidTool
Deprecations:
-
Block#isValidTool(ItemStack itemStack): boolean
#97
make MenuType implement FeatureDependant
Extensions:
MenuType
now extendsFeatureDependant
#95
Expand out datapack API
Additions:
-
Datapack#getTitle(): Component
-
Datapack#getDescription(): Component
-
Datapack#isRequired(): boolean
-
Datapack#getRequiredFeatures(): Set<FeatureFlag>
-
Datapack#getSource(): DatapackSource
-
Datapack#computeDisplayName(): Component
-
DatapackManager#refreshPacks()
-
DatapackManager#getPack(String name): Datapack
-
DatapackSource
#92
Add ItemStack array serialization methods
Additions:
-
ItemStack.serializeItemsAsBytes(Collection<ItemStack> items): byte[]
-
ItemStack.serializeItemsAsBytes(ItemStack[] items): byte[]
-
ItemStack#deserializeItemsFromBytes(byte[] bytes): ItemStack[]
Deprecations:
-
BukkitObjectInputStream
-
BukkitObjectOutputStream
#90
Deprecate BlockType#isInteractable
Deprecations:
-
BlockType#isInteractable(): boolean
#89
Update launchProjectile API
Additions:
-
<T extends Projectile> ProjectileSource#launchProjective(Class<? extends T> projectile, Vector velocity, Consumer<? super T> function): T
#88
create TileStateInventoryHolder
Additions:
-
TileStateInventoryHolder extends TileState, BlockInventoryHolder
Extensions:
ChiseledBookshelf
no longer extendsTileState & BlockInventoryHolder
and now extendsTileStateInventoryHolder
Container
no longer extendsBlockInventoryHolder
and now extendsTileStateInventoryHolder
DecoratedPot
no longer extendsTileState & BlockInventoryHolder
and now extendsTileStateInventoryHolder
Jukebox
no longer extendsTileState & BlockInventoryHolder
and now extendsTileStateInventoryHolder
Lectern
no longer extendsTileState & BlockInventoryHolder
and now extendsTileStateInventoryHolder
#78
Updated Upstream (Bukkit/CraftBukkit/Spigot)
A lot of API changes were merged in this build. Check the PR description for details.
#75
deprecate isEnabledByFeature in Item/BlockType
Deprecations:
-
BlockType#isEnabledByFeature(World world): boolean
-
ItemType#isEnabledByFeature(World world): boolean
#74
Add Decorated Pot Cracked API
Additions:
-
Bed#setOccupied(boolean occupied)
-
DecoratedPot#isCracked(): boolean
-
DecoratedPot#setCracked(boolean cracked)
#73
Add Item serialization as json api
Additions:
-
UnsafeValues#serializeItemAsJson(ItemStack itemStack): JsonObject
-
UnsafeValues#deserializeItemFromJson(JsonObject data): ItemStack
#72
Tag Lifecycle Events
Additions:
-
TagEventTypeProvider
-
PreFlattenTagRegistrar<T> extends Registrar
-
PostFlattenTagRegistrar<T> extends Registrar
-
TagEntry<T> extends Keyed
-
LifecycleEvents.TAGS: TagEventTypeProvider
#70
Enchantment is data-driven, so not FeatureDependant
Extensions:
Enchantment
no longer extendsFeatureDependant
#69
Add FeatureFlag API
Additions:
-
FeatureDependant
-
FeatureFlagSetHolder
-
FeatureFlag.ALL_FLAGS: Index<Key, FeatureFlag>
Extensions:
RegionAccessor
now extendsFeatureFlagSetHolder
WorldInfo
now extendsFeatureFlagSetHolder
PotionEffectType
now extendsFeatureDependant
Enchantment
now extendsFeatureDependant
PotionType
now extendsFeatureDependant
EntityType
now extendsFeatureDependant
BlockType
now extendsFeatureDependant
Removed:
-
UnsafeValues#getFeatureFlag(NamespacedKey key): FeatureFlag
#50
Add enchantment seed update API
Additions:
-
EnchantmentView#setEnchantmentSeed(int seed)
#49
Add a method to reset Lodestone compasses back to normal ones
Additions:
-
CompassMeta#isLodestoneCompass(): boolean
-
CompassMeta#clearLodestone()
#47
Deprecate API relating to menu title changes
Deprecations:
-
InventoryView#getOriginalTitle(): String
-
InventoryView:setTitle(String title)
#36
Add getWorld method that uses adventure Key
Additions:
-
Bukkit.getWorld(Key worldKey): World
-
Server#getWorld(Key worldKey): World
#33
Allow getting/setting the sign's editor uuid
Additions:
-
Sign#getAllowedEditorUniqueId(): UUID
-
Sign#setAllowedEditorUniqueId(UUID uuid)
#31
Leashable API
Additions:
-
Leashable
Extensions:
Boat
now extendsLeashable
Mob
now extendsLeashable
#30
Add even more Enchantment API
Additions:
-
Enchantment#description: Component
-
Enchantment#getSupportedItems(): RegistryKeySet<ItemType>
-
Enchantment#getPrimaryItems(): RegistryKeySet<ItemType>
-
Enchantment#getWeight(): int
-
Enchantment#getExclusiveWith(): RegistryKeySet<Enchantment>
#28
Updated Upstream (Bukkit/CraftBukkit/Spigot)
Additions:
-
FireworkMeta#hasPower(): boolean
Learn Paper Dev is licensed under CC BY-NC-SA 4.0