# Deprecated API

## Contents

- Terminally Deprecated
- Interfaces
- Classes
- Enum Classes
- Annotation Interfaces
- Fields
- Methods
- Constructors
- Enum Constants

Terminally Deprecated Elements
Element
Description
com.destroystokyo.paper.block.BlockSoundGroup
use `SoundGroup`
com.destroystokyo.paper.block.BlockSoundGroup.getBreakSound()
use `SoundGroup.getBreakSound()`
com.destroystokyo.paper.block.BlockSoundGroup.getFallSound()
use `SoundGroup.getFallSound()`
com.destroystokyo.paper.block.BlockSoundGroup.getHitSound()
use `SoundGroup.getHitSound()`
com.destroystokyo.paper.block.BlockSoundGroup.getPlaceSound()
use `SoundGroup.getPlaceSound()`
com.destroystokyo.paper.block.BlockSoundGroup.getStepSound()
use `SoundGroup.getStepSound()`
com.destroystokyo.paper.profile.PlayerProfile.setId(UUID)
com.destroystokyo.paper.profile.PlayerProfile.setName(String)
io.papermc.paper.event.world.StructureLocateEvent
no longer used, see `StructuresLocateEvent`
io.papermc.paper.text.PaperComponents.colorDownsamplingGsonSerializer()
use `GsonComponentSerializer.colorDownsamplingGson()`
io.papermc.paper.text.PaperComponents.gsonSerializer()
use `GsonComponentSerializer.gson()`
io.papermc.paper.text.PaperComponents.legacySectionSerializer()
use `LegacyComponentSerializer.legacySection()`
io.papermc.paper.text.PaperComponents.plainSerializer()
will be removed in adventure 5.0.0, use `PlainTextComponentSerializer.plainText()`
io.papermc.paper.text.PaperComponents.plainTextSerializer()
use `PlainTextComponentSerializer.plainText()`
org.bukkit.advancement.AdvancementDisplay
use `AdvancementDisplay`
org.bukkit.block.Block.getSoundGroup()
use `Block.getBlockSoundGroup()`
org.bukkit.Bukkit.createVanillaChunkData(World, int, int)
The new multi-stage worldgen API allows a similar effect by overriding all of the "shouldGenerate..." methods to return true, and then modifying the chunkdata in a later stage such as surface or bedrock generation.
org.bukkit.Effect.BOOK_PAGE_TURNED
use `Effect.BOOK_PAGE_TURN`
org.bukkit.Effect.COMPOSTER_COMPOSTS
use `Effect.COMPOSTER_FILL_ATTEMPT`
org.bukkit.Effect.ENDER_DRAGON_DESTROYS_BLOCK
use `Effect.ENDER_DRAGON_DESTROY_BLOCK`
org.bukkit.Effect.ENDER_EYE_PLACED
use `Effect.END_PORTAL_FRAME_FILL`
org.bukkit.Effect.GRINDSTONE_USED
use `Effect.GRINDSTONE_USE`
org.bukkit.Effect.HUSK_CONVERTS_TO_ZOMBIE
use `Effect.HUSK_CONVERTED_TO_ZOMBIE`
org.bukkit.Effect.LAVA_CONVERTS_BLOCK
use `Effect.LAVA_INTERACT`
org.bukkit.Effect.PHANTOM_BITES
use `Effect.PHANTOM_BITE`
org.bukkit.Effect.REDSTONE_TORCH_BURNS_OUT
use `Effect.REDSTONE_TORCH_BURNOUT`
org.bukkit.Effect.WET_SPONGE_VAPORIZES_IN_NETHER
use `Effect.SPONGE_DRY`
org.bukkit.Effect.ZOMBIE_CONVERTS_TO_DROWNED
use `Effect.ZOMBIE_CONVERTED_TO_DROWNED`
org.bukkit.entity.Panda.setIsSitting(boolean)
use `Panda.setSitting(boolean)`
org.bukkit.entity.Projectile.doesBounce()
Does not do anything
org.bukkit.entity.Projectile.setBounce(boolean)
Does not do anything
org.bukkit.plugin.PluginLoader.disablePlugin(Plugin, boolean)
Classloader is always closed by upstream now.
org.bukkit.plugin.PluginManager.disablePlugin(Plugin, boolean)
Classloader is always closed by upstream now.
org.bukkit.plugin.SimplePluginManager.disablePlugins(boolean)
Classloader is always closed by upstream now.
org.bukkit.Server.createVanillaChunkData(World, int, int)
The new multi-stage worldgen API allows a similar effect by overriding all of the "shouldGenerate..." methods to return true, and then modifying the chunkdata in a later stage such as surface or bedrock generation.
org.bukkit.Tag.ARROWS
use `Tag.ENTITY_TYPES_ARROWS`
org.bukkit.Tag.BEEHIVE_INHABITORS
use `Tag.ENTITY_TYPES_BEEHIVE_INHABITORS`
org.bukkit.Tag.IMPACT_PROJECTILES
use `Tag.ENTITY_TYPES_IMPACT_PROJECTILES`
org.bukkit.Tag.RAIDERS
use `Tag.ENTITY_TYPES_RAIDERS`
org.bukkit.Tag.REGISTRY_ENTITIES
use `Tag.REGISTRY_ENTITY_TYPES`
org.bukkit.Tag.SKELETONS
use `Tag.ENTITY_TYPES_SKELETONS`
org.bukkit.UnsafeValues.colorDownsamplingGsonComponentSerializer()
org.bukkit.UnsafeValues.gsonComponentSerializer()
org.bukkit.UnsafeValues.legacyComponentSerializer()
org.bukkit.UnsafeValues.plainComponentSerializer()
org.bukkit.UnsafeValues.plainTextSerializer()

Deprecated Interfaces
Interface
Description
com.destroystokyo.paper.block.BlockSoundGroup
use `SoundGroup`
org.bukkit.advancement.AdvancementDisplay
use `AdvancementDisplay`
org.bukkit.block.Bed
does not provide useful information beyond the material itself
org.bukkit.entity.LingeringPotion
lingering status depends on only on the potion item.
org.bukkit.entity.SplashPotion
splash status depends on only on the potion item.
org.bukkit.entity.TippedArrow
tipped status depends only on base potion type not being UNCRAFTABLE and effects being empty.
org.bukkit.generator.ChunkGenerator.BiomeGrid
Biomes are now set with `BiomeProvider`
org.bukkit.inventory.meta.tags.CustomItemTagContainer
this API part has been replaced by the `PersistentDataHolder` API. Please use `PersistentDataHolder` instead of this.
org.bukkit.inventory.meta.tags.ItemTagAdapterContext
this API part has been replaced by `PersistentDataHolder`. Please use `PersistentDataAdapterContext` instead of this.
org.bukkit.inventory.meta.tags.ItemTagType
please use `PersistentDataType` as this part of the api is being replaced
org.bukkit.profile.PlayerProfile
see `PlayerProfile`
org.bukkit.UnsafeValues
org.bukkit.World.ChunkLoadCallback
Use either the Future or the Consumer based methods

Deprecated Classes
Class
Description
com.destroystokyo.paper.event.entity.EntityTransformedEvent
Bukkit has added `EntityTransformEvent`, you should start using that
com.destroystokyo.paper.event.inventory.PrepareGrindstoneEvent
com.destroystokyo.paper.event.player.IllegalPacketEvent
Not used
com.destroystokyo.paper.event.player.PlayerInitialSpawnEvent
Use `PlayerSpawnLocationEvent`, Duplicate API
com.destroystokyo.paper.event.player.PlayerLocaleChangeEvent
Replaced by `PlayerLocaleChangeEvent` upstream
com.destroystokyo.paper.inventory.ItemStackRecipeChoice
Draft API
com.destroystokyo.paper.Title
use `Title`
io.papermc.paper.event.player.ChatEvent
Listening to this event forces chat to wait for the main thread, delaying chat messages. It is recommended to use `AsyncChatEvent` instead, wherever possible.
io.papermc.paper.event.world.StructureLocateEvent
no longer used, see `StructuresLocateEvent`
org.bukkit.event.entity.EntityCreatePortalEvent
Use `PortalCreateEvent`
org.bukkit.event.player.AsyncPlayerChatEvent
use `AsyncChatEvent` instead
org.bukkit.event.player.PlayerBucketFishEvent
Use the more generic `PlayerBucketEntityEvent`
org.bukkit.event.player.PlayerChatEvent
This event will fire from the main thread and allows the use of all of the Bukkit API, unlike the `AsyncPlayerChatEvent`.

Listening to this event forces chat to wait for the main thread which causes delays for chat. `AsyncPlayerChatEvent` is the encouraged alternative for thread safe implementations.

org.bukkit.event.player.PlayerChatTabCompleteEvent
This event is no longer fired due to client changes
org.bukkit.event.player.PlayerPickupItemEvent
`EntityPickupItemEvent`
org.bukkit.event.player.PlayerPreLoginEvent
This event causes synchronization from the login thread; `AsyncPlayerPreLoginEvent` is preferred to keep the secondary threads asynchronous.
org.bukkit.material.Banner
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.material.Bed
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.material.Button
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.material.Cake
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.material.Cauldron
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.material.Chest
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.material.Coal
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.material.CocoaPlant
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.material.Command
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.material.Comparator
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.material.Crops
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.material.DetectorRail
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.material.Diode
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.material.DirectionalContainer
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.material.Dispenser
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.material.Door
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.material.Dye
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.material.EnderChest
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.material.ExtendedRails
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.material.FlowerPot
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.material.Furnace
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.material.FurnaceAndDispenser
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.material.Gate
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.material.Hopper
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.material.Ladder
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.material.Leaves
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.material.Lever
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.material.LongGrass
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.material.MaterialData
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.material.MonsterEggs
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.material.Mushroom
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.material.NetherWarts
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.material.Observer
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.material.PistonBaseMaterial
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.material.PistonExtensionMaterial
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.material.PoweredRail
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.material.PressurePlate
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.material.Pumpkin
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.material.Rails
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.material.RedstoneTorch
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.material.RedstoneWire
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.material.Sandstone
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.material.Sapling
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.material.Sign
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.material.SimpleAttachableMaterialData
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.material.Skull
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.material.SmoothBrick
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.material.SpawnEgg
use `SpawnEggMeta`
org.bukkit.material.Stairs
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.material.Step
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.material.TexturedMaterial
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.material.Torch
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.material.TrapDoor
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.material.Tree
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.material.Tripwire
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.material.TripwireHook
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.material.Vine
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.material.Wood
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.material.WoodenStep
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.material.Wool
all usage of MaterialData is deprecated and subject to removal. Use `BlockData`.
org.bukkit.potion.Potion
org.spigotmc.CustomTimingsHandler

Deprecated Enum Classes
Enum Class
Description
com.destroystokyo.paper.HeightmapType
Upstream has added their own API for using the game heightmaps. See `HeightMap` and the non-deprecated getHighestBlock methods on World such as `World.getHighestBlockAt(Location, HeightMap)`.
org.bukkit.block.data.type.Switch.Face
use `FaceAttachable.AttachedFace`
org.bukkit.entity.AbstractArrow.PickupRule
org.bukkit.entity.Evoker.Spell
future versions of Minecraft have additional spell casting entities.
org.bukkit.entity.Horse.Variant
different variants are differing classes
org.bukkit.entity.Ocelot.Type
Cats are now a separate entity.
org.bukkit.entity.Skeleton.SkeletonType
classes are different types. This interface only remains in the Skeleton interface to preserve backwards compatibility.
org.bukkit.event.entity.EntityDamageEvent.DamageModifier
This API is responsible for a large number of implementation problems and is in general unsustainable to maintain. It is likely to be removed very soon in a subsequent release. Please see https://www.spigotmc.org/threads/194446/ for more information.
org.bukkit.GrassSpecies
use `BlockData`
org.bukkit.material.types.MushroomBlockTexture
use BlockData
org.bukkit.NetherWartsState
use `BlockData` and `Ageable`
org.bukkit.SandstoneType
use `BlockData`
org.bukkit.scoreboard.NameTagVisibility
replaced by `Team.OptionStatus`
org.bukkit.SkullType
check `Material` instead

Deprecated Annotation Interfaces
Annotation Interface
Description
org.bukkit.UndefinedNullability
This should generally not be used in any new API code as it suggests a bad API design.

Deprecated Fields
Field
Description
com.destroystokyo.paper.entity.ai.VanillaGoal.ANGER
removed in 1.16
com.destroystokyo.paper.entity.ai.VanillaGoal.ANGER_OTHER
removed in 1.16
com.destroystokyo.paper.entity.ai.VanillaGoal.ARROW_ATTACK
com.destroystokyo.paper.entity.ai.VanillaGoal.AVOID_TARGET
com.destroystokyo.paper.entity.ai.VanillaGoal.BLAZE_FIREBALL
com.destroystokyo.paper.entity.ai.VanillaGoal.BOW_SHOOT
com.destroystokyo.paper.entity.ai.VanillaGoal.BREATH
com.destroystokyo.paper.entity.ai.VanillaGoal.CAT_SIT_ON_BED
com.destroystokyo.paper.entity.ai.VanillaGoal.CROSSBOW_ATTACK
com.destroystokyo.paper.entity.ai.VanillaGoal.DOLPHIN_PLAY_WITH_ITEMS
com.destroystokyo.paper.entity.ai.VanillaGoal.DOOR_OPEN
com.destroystokyo.paper.entity.ai.VanillaGoal.DROWNED_GOTO_BEACH
com.destroystokyo.paper.entity.ai.VanillaGoal.DROWNED_GOTO_WATER
com.destroystokyo.paper.entity.ai.VanillaGoal.EAT_CARROTS
com.destroystokyo.paper.entity.ai.VanillaGoal.EAT_TILE
com.destroystokyo.paper.entity.ai.VanillaGoal.ENDERMAN_PICKUP_BLOCK
com.destroystokyo.paper.entity.ai.VanillaGoal.ENDERMAN_PLACE_BLOCK
com.destroystokyo.paper.entity.ai.VanillaGoal.EVOKER_CAST_SPELL
com.destroystokyo.paper.entity.ai.VanillaGoal.FISH_SCHOOL
com.destroystokyo.paper.entity.ai.VanillaGoal.FOLLOW_ENTITY
com.destroystokyo.paper.entity.ai.VanillaGoal.FOX_DEFEND_TRUSTED
com.destroystokyo.paper.entity.ai.VanillaGoal.FOX_FACEPLANT
com.destroystokyo.paper.entity.ai.VanillaGoal.FOX_PERCH_AND_SEARCH
com.destroystokyo.paper.entity.ai.VanillaGoal.FOX_SEEK_SHELTER
com.destroystokyo.paper.entity.ai.VanillaGoal.FOX_SLEEP
com.destroystokyo.paper.entity.ai.VanillaGoal.FOX_STALK_PREY
com.destroystokyo.paper.entity.ai.VanillaGoal.GHAST_ATTACK_TARGET
com.destroystokyo.paper.entity.ai.VanillaGoal.GHAST_IDLE_MOVE
com.destroystokyo.paper.entity.ai.VanillaGoal.GHAST_MOVE_TOWARDS_TARGET
com.destroystokyo.paper.entity.ai.VanillaGoal.HORSE_TRAP
com.destroystokyo.paper.entity.ai.VanillaGoal.HURT_BY_TARGET
com.destroystokyo.paper.entity.ai.VanillaGoal.JUMP_ON_BLOCK
com.destroystokyo.paper.entity.ai.VanillaGoal.KILLER_RABBIT_MELEE_ATTACK
com.destroystokyo.paper.entity.ai.VanillaGoal.LEAP_AT_TARGET
com.destroystokyo.paper.entity.ai.VanillaGoal.LLAMA_FOLLOW
com.destroystokyo.paper.entity.ai.VanillaGoal.LLAMATRADER_DEFENDED_WANDERING_TRADER
com.destroystokyo.paper.entity.ai.VanillaGoal.MOVE_TOWARDS_TARGET
com.destroystokyo.paper.entity.ai.VanillaGoal.NEAREST_ATTACKABLE_TARGET
com.destroystokyo.paper.entity.ai.VanillaGoal.NEAREST_ATTACKABLE_TARGET_WITCH
com.destroystokyo.paper.entity.ai.VanillaGoal.NEAREST_VILLAGE
com.destroystokyo.paper.entity.ai.VanillaGoal.OWNER_HURT_BY_TARGET
com.destroystokyo.paper.entity.ai.VanillaGoal.OWNER_HURT_TARGET
com.destroystokyo.paper.entity.ai.VanillaGoal.PANDA_HURT_BY_TARGET
com.destroystokyo.paper.entity.ai.VanillaGoal.PERCH
com.destroystokyo.paper.entity.ai.VanillaGoal.PLAYER_WHO_LOOKED_AT_TARGET
com.destroystokyo.paper.entity.ai.VanillaGoal.POLARBEAR_ATTACK_PLAYERS
com.destroystokyo.paper.entity.ai.VanillaGoal.POLARBEAR_HURT_BY
com.destroystokyo.paper.entity.ai.VanillaGoal.POLARBEAR_MELEE
com.destroystokyo.paper.entity.ai.VanillaGoal.POLARBEAR_PANIC
com.destroystokyo.paper.entity.ai.VanillaGoal.RABBIT_AVOID_TARGET
com.destroystokyo.paper.entity.ai.VanillaGoal.RAID
com.destroystokyo.paper.entity.ai.VanillaGoal.RAIDER_HOLD_GROUND
com.destroystokyo.paper.entity.ai.VanillaGoal.RAIDER_OBTAIN_BANNER
com.destroystokyo.paper.entity.ai.VanillaGoal.RANDOM_FLY
com.destroystokyo.paper.entity.ai.VanillaGoal.RANDOM_LOOKAROUND
com.destroystokyo.paper.entity.ai.VanillaGoal.RANDOM_STROLL_LAND
com.destroystokyo.paper.entity.ai.VanillaGoal.RANDOM_SWIM
com.destroystokyo.paper.entity.ai.VanillaGoal.RANDOM_TARGET_NON_TAMED
com.destroystokyo.paper.entity.ai.VanillaGoal.SHULKER_DEFENSE
com.destroystokyo.paper.entity.ai.VanillaGoal.SHULKER_NEAREST
com.destroystokyo.paper.entity.ai.VanillaGoal.SILVERFISH_HIDE_IN_BLOCK
com.destroystokyo.paper.entity.ai.VanillaGoal.SILVERFISH_WAKE_OTHERS
com.destroystokyo.paper.entity.ai.VanillaGoal.SIT
com.destroystokyo.paper.entity.ai.VanillaGoal.SLIME_IDLE
com.destroystokyo.paper.entity.ai.VanillaGoal.SLIME_NEAREST_PLAYER
com.destroystokyo.paper.entity.ai.VanillaGoal.SLIME_RANDOM_JUMP
com.destroystokyo.paper.entity.ai.VanillaGoal.SPELLCASTER_CAST_SPELL
com.destroystokyo.paper.entity.ai.VanillaGoal.SPIDER_MELEE_ATTACK
com.destroystokyo.paper.entity.ai.VanillaGoal.SPIDER_NEAREST_ATTACKABLE_TARGET
com.destroystokyo.paper.entity.ai.VanillaGoal.SQUID
com.destroystokyo.paper.entity.ai.VanillaGoal.STROLL_VILLAGE
com.destroystokyo.paper.entity.ai.VanillaGoal.STROLL_VILLAGE_GOLEM
com.destroystokyo.paper.entity.ai.VanillaGoal.TAME
com.destroystokyo.paper.entity.ai.VanillaGoal.TEMPT_CHANCE
com.destroystokyo.paper.entity.ai.VanillaGoal.TURTLE_GOTO_WATER
com.destroystokyo.paper.entity.ai.VanillaGoal.TURTLE_TEMPT
com.destroystokyo.paper.entity.ai.VanillaGoal.UNIVERSAL_ANGER_RESET
com.destroystokyo.paper.entity.ai.VanillaGoal.VEX_COPY_TARGET_OF_OWNER
com.destroystokyo.paper.entity.ai.VanillaGoal.VILLAGERTRADER_WANDER_TO_POSITION
com.destroystokyo.paper.entity.ai.VanillaGoal.WATER
com.destroystokyo.paper.entity.ai.VanillaGoal.WATER_JUMP
org.bukkit.configuration.file.YamlConfiguration.BLANK_CONFIG
unused, not intended to be API
org.bukkit.configuration.file.YamlConfiguration.COMMENT_PREFIX
unused, not intended to be API
org.bukkit.map.MapPalette.BLUE
Magic value
org.bukkit.map.MapPalette.BROWN
Magic value
org.bukkit.map.MapPalette.DARK_BROWN
Magic value
org.bukkit.map.MapPalette.DARK_GRAY
Magic value
org.bukkit.map.MapPalette.DARK_GREEN
Magic value
org.bukkit.map.MapPalette.GRAY_1
Magic value
org.bukkit.map.MapPalette.GRAY_2
Magic value
org.bukkit.map.MapPalette.LIGHT_BROWN
Magic value
org.bukkit.map.MapPalette.LIGHT_GRAY
Magic value
org.bukkit.map.MapPalette.LIGHT_GREEN
Magic value
org.bukkit.map.MapPalette.PALE_BLUE
Magic value
org.bukkit.map.MapPalette.RED
Magic value
org.bukkit.map.MapPalette.TRANSPARENT
Magic value
org.bukkit.map.MapPalette.WHITE
Magic value
org.bukkit.Material.LEGACY_PREFIX
org.bukkit.Tag.ARROWS
use `Tag.ENTITY_TYPES_ARROWS`
org.bukkit.Tag.BEEHIVE_INHABITORS
use `Tag.ENTITY_TYPES_BEEHIVE_INHABITORS`
org.bukkit.Tag.IMPACT_PROJECTILES
use `Tag.ENTITY_TYPES_IMPACT_PROJECTILES`
org.bukkit.Tag.RAIDERS
use `Tag.ENTITY_TYPES_RAIDERS`
org.bukkit.Tag.REGISTRY_ENTITIES
use `Tag.REGISTRY_ENTITY_TYPES`
org.bukkit.Tag.SKELETONS
use `Tag.ENTITY_TYPES_SKELETONS`

Deprecated Methods
Method
Description
co.aikar.timings.Timing.abort()
Doesn't do anything - Removed
com.destroystokyo.paper.block.BlockSoundGroup.getBreakSound()
use `SoundGroup.getBreakSound()`
com.destroystokyo.paper.block.BlockSoundGroup.getFallSound()
use `SoundGroup.getFallSound()`
com.destroystokyo.paper.block.BlockSoundGroup.getHitSound()
use `SoundGroup.getHitSound()`
com.destroystokyo.paper.block.BlockSoundGroup.getPlaceSound()
use `SoundGroup.getPlaceSound()`
com.destroystokyo.paper.block.BlockSoundGroup.getStepSound()
use `SoundGroup.getStepSound()`
com.destroystokyo.paper.event.entity.EntityTransformedEvent.getReason()
see `EntityTransformEvent.getTransformReason()`
com.destroystokyo.paper.event.entity.EntityTransformedEvent.getTransformed()
see `EntityTransformEvent.getTransformedEntity()`
com.destroystokyo.paper.event.player.PlayerHandshakeEvent.getFailMessage()
use `PlayerHandshakeEvent.failMessage()`
com.destroystokyo.paper.event.player.PlayerHandshakeEvent.setFailMessage(String)
use `PlayerHandshakeEvent.failMessage(Component)`
com.destroystokyo.paper.event.profile.ProfileWhitelistVerifyEvent.getKickMessage()
use `ProfileWhitelistVerifyEvent.kickMessage()`
com.destroystokyo.paper.event.profile.ProfileWhitelistVerifyEvent.setKickMessage(String)
Use `ProfileWhitelistVerifyEvent.kickMessage(Component)`
com.destroystokyo.paper.NamespacedTag.randomKey()
should never be used by plugins, for internal use only!!
com.destroystokyo.paper.profile.PlayerProfile.setId(UUID)
com.destroystokyo.paper.profile.PlayerProfile.setName(String)
io.papermc.paper.text.PaperComponents.colorDownsamplingGsonSerializer()
use `GsonComponentSerializer.colorDownsamplingGson()`
io.papermc.paper.text.PaperComponents.gsonSerializer()
use `GsonComponentSerializer.gson()`
io.papermc.paper.text.PaperComponents.legacySectionSerializer()
use `LegacyComponentSerializer.legacySection()`
io.papermc.paper.text.PaperComponents.plainSerializer()
will be removed in adventure 5.0.0, use `PlainTextComponentSerializer.plainText()`
io.papermc.paper.text.PaperComponents.plainTextSerializer()
use `PlainTextComponentSerializer.plainText()`
org.bukkit.Art.getById(int)
Magic value
org.bukkit.Art.getId()
Magic value
org.bukkit.block.Block.getBlockKey()
see `Block.getBlockKey(int, int, int)`
org.bukkit.block.Block.getBlockKey(int, int, int)
only encodes y block ranges from -512 to 511 and represents an already changed implementation detail
org.bukkit.block.Block.getBlockKeyX(long)
see `Block.getBlockKey(int, int, int)`
org.bukkit.block.Block.getBlockKeyY(long)
see `Block.getBlockKey(int, int, int)`
org.bukkit.block.Block.getBlockKeyZ(long)
see `Block.getBlockKey(int, int, int)`
org.bukkit.block.Block.getData()
Magic value
org.bukkit.block.Block.getSoundGroup()
use `Block.getBlockSoundGroup()`
org.bukkit.block.Block.getTranslationKey()
use `Translatable.translationKey()`
org.bukkit.block.BlockState.getData()
use `BlockState.getBlockData()`
org.bukkit.block.BlockState.getRawData()
Magic value
org.bukkit.block.BlockState.setData(MaterialData)
use `BlockState.setBlockData(BlockData)`
org.bukkit.block.BlockState.setRawData(byte)
Magic value
org.bukkit.block.CommandBlock.getName()
in favour of `CommandBlock.name()`
org.bukkit.block.CommandBlock.setName(String)
in favour of `CommandBlock.name(net.kyori.adventure.text.Component)`
org.bukkit.block.CreatureSpawner.getCreatureTypeName()
magic value, use `CreatureSpawner.getSpawnedType()`.
org.bukkit.block.CreatureSpawner.setCreatureTypeByName(String)
magic value, use `CreatureSpawner.setSpawnedType(org.bukkit.entity.EntityType)`.
org.bukkit.block.data.type.Switch.getFace()
use `FaceAttachable.getAttachedFace()`
org.bukkit.block.data.type.Switch.setFace(Switch.Face)
use `FaceAttachable.getAttachedFace()`
org.bukkit.block.PistonMoveReaction.getById(int)
Magic value
org.bukkit.block.PistonMoveReaction.getId()
Magic value
org.bukkit.block.Sign.getLine(int)
in favour of `Sign.line(int)`
org.bukkit.block.Sign.getLines()
in favour of `Sign.lines()`
org.bukkit.block.Sign.setLine(int, String)
in favour of `Sign.line(int, net.kyori.adventure.text.Component)`
org.bukkit.block.Skull.getOwner()
See `Skull.getOwningPlayer()`.
org.bukkit.block.Skull.getOwnerProfile()
org.bukkit.block.Skull.getRotation()
use `BlockData`
org.bukkit.block.Skull.getSkullType()
check `Material` instead
org.bukkit.block.Skull.setOwner(String)
see `Skull.setOwningPlayer(org.bukkit.OfflinePlayer)`.
org.bukkit.block.Skull.setOwnerProfile(PlayerProfile)
org.bukkit.block.Skull.setRotation(BlockFace)
use `BlockData`
org.bukkit.block.Skull.setSkullType(SkullType)
check `Material` instead
org.bukkit.boss.BossBar.hide()
`BossBar.setVisible(boolean)`
org.bukkit.boss.BossBar.show()
`BossBar.setVisible(boolean)`
org.bukkit.Bukkit.broadcast(String, String)
in favour of `Bukkit.broadcast(net.kyori.adventure.text.Component, String)`
org.bukkit.Bukkit.broadcast(BaseComponent...)
use `sendMessage` methods on `Bukkit.getServer()` that accept `Component`
org.bukkit.Bukkit.broadcast(BaseComponent)
use `sendMessage` methods on `Bukkit.getServer()` that accept `Component`
org.bukkit.Bukkit.broadcastMessage(String)
in favour of `Server.broadcast(net.kyori.adventure.text.Component)`
org.bukkit.Bukkit.createInventory(InventoryHolder, int, String)
in favour of `Bukkit.createInventory(InventoryHolder, InventoryType, net.kyori.adventure.text.Component)`
org.bukkit.Bukkit.createInventory(InventoryHolder, InventoryType, String)
in favour of `Bukkit.createInventory(InventoryHolder, InventoryType, net.kyori.adventure.text.Component)`
org.bukkit.Bukkit.createMerchant(String)
in favour of `Bukkit.createMerchant(net.kyori.adventure.text.Component)`
org.bukkit.Bukkit.createPlayerProfile(String)
use `Bukkit.createProfile(String)`
org.bukkit.Bukkit.createPlayerProfile(UUID)
use `Bukkit.createProfile(UUID)`
org.bukkit.Bukkit.createPlayerProfile(UUID, String)
use `Bukkit.createProfile(UUID, String)`
org.bukkit.Bukkit.createVanillaChunkData(World, int, int)
The new multi-stage worldgen API allows a similar effect by overriding all of the "shouldGenerate..." methods to return true, and then modifying the chunkdata in a later stage such as surface or bedrock generation.
org.bukkit.Bukkit.getAmbientSpawnLimit()
Deprecated in favor of `Bukkit.getSpawnLimit(SpawnCategory)`
org.bukkit.Bukkit.getAnimalSpawnLimit()
Deprecated in favor of `Bukkit.getSpawnLimit(SpawnCategory)`
org.bukkit.Bukkit.getMap(int)
Magic value
org.bukkit.Bukkit.getMonsterSpawnLimit()
Deprecated in favor of `Bukkit.getSpawnLimit(SpawnCategory)`
org.bukkit.Bukkit.getMotd()
in favour of `Bukkit.motd()`
org.bukkit.Bukkit.getShutdownMessage()
in favour of `Bukkit.shutdownMessage()`
org.bukkit.Bukkit.getTicksPerAmbientSpawns()
Deprecated in favor of `Bukkit.getTicksPerSpawns(SpawnCategory)`
org.bukkit.Bukkit.getTicksPerAnimalSpawns()
Deprecated in favor of `Bukkit.getTicksPerSpawns(SpawnCategory)`
org.bukkit.Bukkit.getTicksPerMonsterSpawns()
Deprecated in favor of `Bukkit.getTicksPerSpawns(SpawnCategory)`
org.bukkit.Bukkit.getTicksPerWaterAmbientSpawns()
Deprecated in favor of `Bukkit.getTicksPerSpawns(SpawnCategory)`
org.bukkit.Bukkit.getTicksPerWaterSpawns()
Deprecated in favor of `Bukkit.getTicksPerSpawns(SpawnCategory)`
org.bukkit.Bukkit.getTicksPerWaterUndergroundCreatureSpawns()
Deprecated in favor of `Bukkit.getTicksPerSpawns(SpawnCategory)`
org.bukkit.Bukkit.getUnsafe()
org.bukkit.Bukkit.getWaterAmbientSpawnLimit()
Deprecated in favor of `Bukkit.getSpawnLimit(SpawnCategory)`
org.bukkit.Bukkit.getWaterAnimalSpawnLimit()
Deprecated in favor of `Bukkit.getSpawnLimit(SpawnCategory)`
org.bukkit.Bukkit.getWaterUndergroundCreatureSpawnLimit()
Deprecated in favor of `Bukkit.getSpawnLimit(SpawnCategory)`
org.bukkit.ChunkSnapshot.getBiome(int, int)
biomes are now 3-dimensional
org.bukkit.ChunkSnapshot.getData(int, int, int)
Magic value
org.bukkit.ChunkSnapshot.getRawBiomeTemperature(int, int)
biomes are now 3-dimensional
org.bukkit.CoalType.getByData(byte)
Magic value
org.bukkit.CoalType.getData()
Magic value
org.bukkit.command.Command.getPermissionMessage()
use `Command.permissionMessage()`
org.bukkit.command.Command.setPermissionMessage(String)
use `Command.permissionMessage(net.kyori.adventure.text.Component)`
org.bukkit.command.CommandSender.sendMessage(BaseComponent...)
use `CommandSender.sendMessage(Identity, Component, MessageType)` instead
org.bukkit.command.CommandSender.sendMessage(BaseComponent)
use `CommandSender.sendMessage(Identity, Component, MessageType)` instead
org.bukkit.command.CommandSender.Spigot.sendMessage(BaseComponent...)
use `sendMessage` methods that accept `Component`
org.bukkit.command.CommandSender.Spigot.sendMessage(UUID, BaseComponent...)
use `sendMessage` methods that accept `Component`
org.bukkit.command.CommandSender.Spigot.sendMessage(UUID, BaseComponent)
use `sendMessage` methods that accept `Component`
org.bukkit.command.CommandSender.Spigot.sendMessage(BaseComponent)
use `sendMessage` methods that accept `Component`
org.bukkit.configuration.file.FileConfiguration.buildHeader()
This method only exists for backwards compatibility. It will do nothing and should not be used! Please use `FileConfigurationOptions.getHeader()` instead.
org.bukkit.configuration.file.FileConfigurationOptions.copyHeader()
Call `FileConfigurationOptions.parseComments()` instead.
org.bukkit.configuration.file.FileConfigurationOptions.copyHeader(boolean)
Call `FileConfigurationOptions.parseComments(boolean)` instead.
org.bukkit.configuration.file.FileConfigurationOptions.header()
use getHeader() instead.
org.bukkit.configuration.file.FileConfigurationOptions.header(String)
use setHeader() instead
org.bukkit.configuration.file.YamlConfigurationOptions.copyHeader(boolean)
org.bukkit.configuration.file.YamlConfigurationOptions.header(String)
org.bukkit.CropState.getByData(byte)
Magic value
org.bukkit.CropState.getData()
Magic value
org.bukkit.Difficulty.getByValue(int)
Magic value
org.bukkit.Difficulty.getValue()
Magic value
org.bukkit.DyeColor.getByDyeData(byte)
Magic value
org.bukkit.DyeColor.getByWoolData(byte)
Magic value
org.bukkit.DyeColor.getDyeData()
Magic value
org.bukkit.DyeColor.getWoolData()
Magic value
org.bukkit.DyeColor.legacyValueOf(String)
legacy use only
org.bukkit.Effect.getById(int)
Magic value
org.bukkit.Effect.getId()
Magic value
org.bukkit.enchantments.Enchantment.getByName(String)
enchantments are badly named, use `Enchantment.getByKey(org.bukkit.NamespacedKey)`.
org.bukkit.enchantments.Enchantment.getName()
enchantments are badly named, use `Enchantment.getKey()`.
org.bukkit.entity.AbstractArrow.getPickupRule()
Use `AbstractArrow.getPickupStatus()` as an upstream compatible replacement for this function
org.bukkit.entity.AbstractArrow.setPickupRule(AbstractArrow.PickupRule)
Use `AbstractArrow.setPickupStatus(PickupStatus)` with `AbstractArrow.PickupStatus` as an upstream compatible replacement for this function
org.bukkit.entity.AbstractHorse.getVariant()
different variants are different classes
org.bukkit.entity.AbstractHorse.isEatingGrass()
use `AbstractHorse.isEatingHaystack()`
org.bukkit.entity.AbstractHorse.setEatingGrass(boolean)
use `AbstractHorse.setEatingHaystack(boolean)`
org.bukkit.entity.AbstractHorse.setVariant(Horse.Variant)
you are required to spawn a different entity
org.bukkit.entity.AbstractSkeleton.getSkeletonType()
should check what class instance this is.
org.bukkit.entity.AbstractSkeleton.setSkeletonType(Skeleton.SkeletonType)
Must spawn a new subtype variant
org.bukkit.entity.Ageable.canBreed()
see `Breedable.canBreed()`
org.bukkit.entity.Ageable.getAgeLock()
see `Breedable.getAgeLock()`
org.bukkit.entity.Ageable.setAgeLock(boolean)
see `Breedable.setAgeLock(boolean)`
org.bukkit.entity.Ageable.setBreed(boolean)
see `Breedable.setBreed(boolean)`
org.bukkit.entity.ArmorStand.getBoots()
prefer `EntityEquipment.getBoots()`
org.bukkit.entity.ArmorStand.getChestplate()
prefer `EntityEquipment.getChestplate()`
org.bukkit.entity.ArmorStand.getHelmet()
prefer `EntityEquipment.getHelmet()`
org.bukkit.entity.ArmorStand.getItemInHand()
prefer `ArmorStand.getItem(EquipmentSlot)` // Paper
org.bukkit.entity.ArmorStand.getLeggings()
prefer `EntityEquipment.getLeggings()`
org.bukkit.entity.ArmorStand.setBoots(ItemStack)
prefer `EntityEquipment.setBoots(org.bukkit.inventory.ItemStack)`
org.bukkit.entity.ArmorStand.setChestplate(ItemStack)
prefer `EntityEquipment.setChestplate(org.bukkit.inventory.ItemStack)`
org.bukkit.entity.ArmorStand.setHelmet(ItemStack)
prefer `EntityEquipment.setHelmet(org.bukkit.inventory.ItemStack)`
org.bukkit.entity.ArmorStand.setItemInHand(ItemStack)
prefer `ArmorStand.setItem(EquipmentSlot, ItemStack)` // Paper
org.bukkit.entity.ArmorStand.setLeggings(ItemStack)
prefer `EntityEquipment.setLeggings(org.bukkit.inventory.ItemStack)`
org.bukkit.entity.Boat.getMaxSpeed()
boats are complex and many of these methods do not work correctly across multiple versions.
org.bukkit.entity.Boat.getOccupiedDeceleration()
boats are complex and many of these methods do not work correctly across multiple versions.
org.bukkit.entity.Boat.getUnoccupiedDeceleration()
boats are complex and many of these methods do not work correctly across multiple versions.
org.bukkit.entity.Boat.getWorkOnLand()
boats are complex and many of these methods do not work correctly across multiple versions.
org.bukkit.entity.Boat.setMaxSpeed(double)
boats are complex and many of these methods do not work correctly across multiple versions.
org.bukkit.entity.Boat.setOccupiedDeceleration(double)
boats are complex and many of these methods do not work correctly across multiple versions.
org.bukkit.entity.Boat.setUnoccupiedDeceleration(double)
boats are complex and many of these methods do not work correctly across multiple versions.
org.bukkit.entity.Boat.setWorkOnLand(boolean)
boats are complex and many of these methods do not work correctly across multiple versions.
org.bukkit.entity.Damageable.getMaxHealth()
use `Attribute.GENERIC_MAX_HEALTH`.
org.bukkit.entity.Damageable.resetMaxHealth()
use `Attribute.GENERIC_MAX_HEALTH`.
org.bukkit.entity.Damageable.setMaxHealth(double)
use `Attribute.GENERIC_MAX_HEALTH`.
org.bukkit.entity.Enderman.getCarriedMaterial()
use `Enderman.getCarriedBlock()`
org.bukkit.entity.Enderman.setCarriedMaterial(MaterialData)
use `Enderman.setCarriedBlock(BlockData)`
org.bukkit.entity.Endermite.isPlayerSpawned()
this functionality no longer exists
org.bukkit.entity.Endermite.setPlayerSpawned(boolean)
this functionality no longer exists
org.bukkit.entity.Entity.getPassenger()
entities may have multiple passengers, use `Entity.getPassengers()`
org.bukkit.entity.Entity.setPassenger(Entity)
entities may have multiple passengers, use `Entity.addPassenger(org.bukkit.entity.Entity)`
org.bukkit.entity.EntityType.fromId(int)
Magic value
org.bukkit.entity.EntityType.fromName(String)
Magic value
org.bukkit.entity.EntityType.getName()
Magic value
org.bukkit.entity.EntityType.getTranslationKey()
use `EntityType.translationKey()`
org.bukkit.entity.EntityType.getTypeId()
Magic value
org.bukkit.entity.Evoker.getCurrentSpell()
future versions of Minecraft have additional spell casting entities.
org.bukkit.entity.Evoker.setCurrentSpell(Evoker.Spell)
future versions of Minecraft have additional spell casting entities.
org.bukkit.entity.ExperienceOrb.isFromBottle()
Use getSpawnReason() == EXP_BOTTLE
org.bukkit.entity.FallingBlock.getMaterial()
use `FallingBlock.getBlockData()`
org.bukkit.entity.FallingBlock.getSourceLoc()
replaced by `Entity.getOrigin()`
org.bukkit.entity.FishHook.getBiteChance()
has no effect in newer Minecraft versions
org.bukkit.entity.FishHook.setBiteChance(double)
has no effect in newer Minecraft versions
org.bukkit.entity.Guardian.isElder()
should check if instance of `ElderGuardian`.
org.bukkit.entity.Guardian.setElder(boolean)
Must spawn a new `ElderGuardian`.
org.bukkit.entity.Horse.isCarryingChest()
see `ChestedHorse`
org.bukkit.entity.Horse.setCarryingChest(boolean)
see `ChestedHorse`
org.bukkit.entity.HumanEntity.getItemInHand()
Humans may now dual wield in their off hand, use explicit methods in `PlayerInventory`.
org.bukkit.entity.HumanEntity.getShoulderEntityLeft()
There are currently no well defined semantics regarding serialized entities in Bukkit. Use with care.
org.bukkit.entity.HumanEntity.getShoulderEntityRight()
There are currently no well defined semantics regarding serialized entities in Bukkit. Use with care.
org.bukkit.entity.HumanEntity.setItemInHand(ItemStack)
Humans may now dual wield in their off hand, use explicit methods in `PlayerInventory`.
org.bukkit.entity.HumanEntity.setShoulderEntityLeft(Entity)
There are currently no well defined semantics regarding serialized entities in Bukkit. Use with care.
org.bukkit.entity.HumanEntity.setShoulderEntityRight(Entity)
There are currently no well defined semantics regarding serialized entities in Bukkit. Use with care.
org.bukkit.entity.LivingEntity.addPotionEffect(PotionEffect, boolean)
no need to force since multiple effects of the same type are now supported.
org.bukkit.entity.minecart.CommandMinecart.setName(String)
in favour of `Nameable.customName(net.kyori.adventure.text.Component)`
org.bukkit.entity.Minecart.getDisplayBlock()
use `Minecart.getDisplayBlockData()`
org.bukkit.entity.Minecart.setDisplayBlock(MaterialData)
use `Minecart.setDisplayBlockData(BlockData)`
org.bukkit.entity.Ocelot.Type.getId()
Magic value
org.bukkit.entity.Ocelot.Type.getType(int)
Magic value
org.bukkit.entity.Panda.setIsSitting(boolean)
use `Panda.setSitting(boolean)`
org.bukkit.entity.PiglinAbstract.isBaby()
see `Ageable.isAdult()`
org.bukkit.entity.PiglinAbstract.setBaby(boolean)
see `Ageable.setBaby()` and `Ageable.setAdult()`
org.bukkit.entity.Player.getDisplayName()
in favour of `Player.displayName()`
org.bukkit.entity.Player.getLocale()
in favour of `Player.locale()`
org.bukkit.entity.Player.getNoTickViewDistance()
Use `Player.getViewDistance()`
org.bukkit.entity.Player.getPlayerListFooter()
in favour of `Player.playerListFooter()`
org.bukkit.entity.Player.getPlayerListHeader()
in favour of `Player.playerListHeader()`
org.bukkit.entity.Player.getPlayerListName()
in favour of `Player.playerListName()`
org.bukkit.entity.Player.getResourcePackHash()
This is no longer sent from the client and will always be null
org.bukkit.entity.Player.hidePlayer(Player)
see `Player.hidePlayer(Plugin, Player)`
org.bukkit.entity.Player.hideTitle()
use `Audience.clearTitle()`
org.bukkit.entity.Player.isOnGround()
This value is controlled only by the client and is therefore unreliable and vulnerable to spoofing and/or desync depending on the context/time which it is accessed
org.bukkit.entity.Player.kickPlayer(String)
in favour of `Player.kick(net.kyori.adventure.text.Component)`
org.bukkit.entity.Player.playEffect(Location, Effect, int)
Magic value
org.bukkit.entity.Player.playNote(Location, byte, byte)
Magic value
org.bukkit.entity.Player.sendActionBar(char, String)
use `Audience.sendActionBar(Component)`
org.bukkit.entity.Player.sendActionBar(String)
use `Audience.sendActionBar(Component)`
org.bukkit.entity.Player.sendActionBar(BaseComponent...)
use `Audience.sendActionBar(Component)`
org.bukkit.entity.Player.sendBlockChange(Location, Material, byte)
Magic value
org.bukkit.entity.Player.sendMessage(BaseComponent...)
use `sendMessage` methods that accept `Component`
org.bukkit.entity.Player.sendMessage(BaseComponent)
use `sendMessage` methods that accept `Component`
org.bukkit.entity.Player.sendMessage(ChatMessageType, BaseComponent...)
This is unlikely the API you want to use. See `Player.sendActionBar(String)` for a more proper Action Bar API. This deprecated API may send unsafe items to the client.
org.bukkit.entity.Player.sendSignChange(Location, String[])
in favour of `Player.sendSignChange(org.bukkit.Location, java.util.List)`
org.bukkit.entity.Player.sendSignChange(Location, String[], DyeColor)
in favour of `Player.sendSignChange(org.bukkit.Location, java.util.List, org.bukkit.DyeColor)`
org.bukkit.entity.Player.sendSignChange(Location, String[], DyeColor, boolean)
Deprecated in favour of `Player.sendSignChange(Location, java.util.List, DyeColor, boolean)`
org.bukkit.entity.Player.sendTitle(Title)
Use `Audience.showTitle(net.kyori.adventure.title.Title)` or `Audience.sendTitlePart(net.kyori.adventure.title.TitlePart, Object)`
org.bukkit.entity.Player.sendTitle(String, String)
Use `Audience.showTitle(net.kyori.adventure.title.Title)` or `Audience.sendTitlePart(net.kyori.adventure.title.TitlePart, Object)`
org.bukkit.entity.Player.sendTitle(String, String, int, int, int)
Use `Audience.showTitle(net.kyori.adventure.title.Title)` or `Audience.sendTitlePart(net.kyori.adventure.title.TitlePart, Object)`
org.bukkit.entity.Player.setDisplayName(String)
in favour of `Player.displayName(net.kyori.adventure.text.Component)`
org.bukkit.entity.Player.setNoTickViewDistance(int)
Use `Player.setViewDistance(int)`
org.bukkit.entity.Player.setPlayerListFooter(String)
in favour of `Audience.sendPlayerListFooter(net.kyori.adventure.text.Component)`
org.bukkit.entity.Player.setPlayerListHeader(String)
in favour of `Audience.sendPlayerListHeader(net.kyori.adventure.text.Component)`
org.bukkit.entity.Player.setPlayerListHeaderFooter(String, String)
in favour of `Audience.sendPlayerListHeaderAndFooter(net.kyori.adventure.text.Component, net.kyori.adventure.text.Component)`
org.bukkit.entity.Player.setPlayerListHeaderFooter(BaseComponent[], BaseComponent[])
in favour of `Audience.sendPlayerListHeaderAndFooter(net.kyori.adventure.text.Component, net.kyori.adventure.text.Component)`
org.bukkit.entity.Player.setPlayerListHeaderFooter(BaseComponent, BaseComponent)
in favour of `Audience.sendPlayerListHeaderAndFooter(net.kyori.adventure.text.Component, net.kyori.adventure.text.Component)`
org.bukkit.entity.Player.setPlayerListName(String)
in favour of `Player.playerListName(net.kyori.adventure.text.Component)`
org.bukkit.entity.Player.setResourcePack(String)
use `Player.setResourcePack(String, String)`
org.bukkit.entity.Player.setResourcePack(String, byte[], String)
in favour of `Player.setResourcePack(String, byte[], Component)`
org.bukkit.entity.Player.setResourcePack(String, byte[], String, boolean)
in favour of `Player.setResourcePack(String, byte[], Component, boolean)`
org.bukkit.entity.Player.setSubtitle(BaseComponent)
Use `Audience.showTitle(net.kyori.adventure.title.Title)` or `Audience.sendTitlePart(net.kyori.adventure.title.TitlePart, Object)`
org.bukkit.entity.Player.setSubtitle(BaseComponent[])
Use `Audience.showTitle(net.kyori.adventure.title.Title)` or `Audience.sendTitlePart(net.kyori.adventure.title.TitlePart, Object)`
org.bukkit.entity.Player.setTexturePack(String)
Minecraft no longer uses textures packs. Instead you should use `Player.setResourcePack(String)`.
org.bukkit.entity.Player.setTitleTimes(int, int, int)
Use `Audience.showTitle(net.kyori.adventure.title.Title)` or `Audience.sendTitlePart(net.kyori.adventure.title.TitlePart, Object)`
org.bukkit.entity.Player.showPlayer(Player)
see `Player.showPlayer(Plugin, Player)`
org.bukkit.entity.Player.showTitle(BaseComponent[])
Use `Audience.showTitle(net.kyori.adventure.title.Title)` or `Audience.sendTitlePart(net.kyori.adventure.title.TitlePart, Object)`
org.bukkit.entity.Player.showTitle(BaseComponent[], BaseComponent[], int, int, int)
Use `Audience.showTitle(net.kyori.adventure.title.Title)` or `Audience.sendTitlePart(net.kyori.adventure.title.TitlePart, Object)`
org.bukkit.entity.Player.showTitle(BaseComponent)
Use `Audience.showTitle(net.kyori.adventure.title.Title)` or `Audience.sendTitlePart(net.kyori.adventure.title.TitlePart, Object)`
org.bukkit.entity.Player.showTitle(BaseComponent, BaseComponent, int, int, int)
Use `Audience.showTitle(net.kyori.adventure.title.Title)` or `Audience.sendTitlePart(net.kyori.adventure.title.TitlePart, Object)`
org.bukkit.entity.Player.Spigot.getCollidesWithEntities()
see `LivingEntity.isCollidable()`
org.bukkit.entity.Player.Spigot.sendMessage(BaseComponent...)
org.bukkit.entity.Player.Spigot.sendMessage(BaseComponent)
org.bukkit.entity.Player.Spigot.sendMessage(ChatMessageType, BaseComponent...)
This is unlikely the API you want to use. See `Player.sendActionBar(String)` for a more proper Action Bar API. This deprecated API may send unsafe items to the client.
org.bukkit.entity.Player.Spigot.sendMessage(ChatMessageType, UUID, BaseComponent...)
use `sendMessage` methods that accept `Component`
org.bukkit.entity.Player.Spigot.sendMessage(ChatMessageType, UUID, BaseComponent)
use `sendMessage` methods that accept `Component`
org.bukkit.entity.Player.Spigot.sendMessage(ChatMessageType, BaseComponent)
This is unlikely the API you want to use. See `Player.sendActionBar(String)` for a more proper Action Bar API. This deprecated API may send unsafe items to the client.
org.bukkit.entity.Player.Spigot.setCollidesWithEntities(boolean)
`LivingEntity.setCollidable(boolean)`
org.bukkit.entity.Player.updateTitle(Title)
Use `Audience.showTitle(net.kyori.adventure.title.Title)` or `Audience.sendTitlePart(net.kyori.adventure.title.TitlePart, Object)`
org.bukkit.entity.Projectile.doesBounce()
Does not do anything
org.bukkit.entity.Projectile.setBounce(boolean)
Does not do anything
org.bukkit.entity.SkeletonHorse.isTrap()
use `SkeletonHorse.isTrapped()`
org.bukkit.entity.SkeletonHorse.setTrap(boolean)
use `SkeletonHorse.setTrapped(boolean)`
org.bukkit.entity.TNTPrimed.getSourceLoc()
replaced by `Entity.getOrigin()`
org.bukkit.entity.Vex.getLifeTicks()
This API duplicates existing API which uses the more preferable name due to mirroring internals better
org.bukkit.entity.Vex.hasLimitedLife()
This API duplicates existing API which uses the more preferable name due to mirroring internals better
org.bukkit.entity.Vex.setLifeTicks(int)
This API duplicates existing API which uses the more preferable name due to mirroring internals better
org.bukkit.entity.Zoglin.isBaby()
see `Ageable.isAdult()`
org.bukkit.entity.Zoglin.setBaby(boolean)
see `Ageable.setBaby()` and `Ageable.setAdult()`
org.bukkit.entity.Zombie.getVillagerProfession()
org.bukkit.entity.Zombie.isBaby()
see `Ageable.isAdult()`
org.bukkit.entity.Zombie.isVillager()
check if instanceof `ZombieVillager`.
org.bukkit.entity.Zombie.setBaby(boolean)
see `Ageable.setBaby()` and `Ageable.setAdult()`
org.bukkit.entity.Zombie.setVillager(boolean)
must spawn `ZombieVillager`.
org.bukkit.entity.Zombie.setVillagerProfession(Villager.Profession)
org.bukkit.entity.Zombie.startDrowning(int)
See `Zombie.setConversionTime(int)`
org.bukkit.EntityEffect.getData()
Magic value
org.bukkit.event.block.BlockPistonExtendEvent.getLength()
slime blocks make the value of this method inaccurate due to blocks being pushed at the side
org.bukkit.event.block.BlockPistonRetractEvent.getRetractLocation()
org.bukkit.event.block.CauldronLevelChangeEvent.getNewLevel()
not all cauldron contents are Levelled
org.bukkit.event.block.CauldronLevelChangeEvent.getOldLevel()
not all cauldron contents are Levelled
org.bukkit.event.block.CauldronLevelChangeEvent.setNewLevel(int)
not all cauldron contents are Levelled
org.bukkit.event.block.SignChangeEvent.getLine(int)
in favour of `SignChangeEvent.line(int)`
org.bukkit.event.block.SignChangeEvent.getLines()
in favour of `SignChangeEvent.lines()`
org.bukkit.event.block.SignChangeEvent.setLine(int, String)
in favour of `SignChangeEvent.line(int, net.kyori.adventure.text.Component)`
org.bukkit.event.command.UnknownCommandEvent.getMessage()
use `UnknownCommandEvent.message()`
org.bukkit.event.command.UnknownCommandEvent.setMessage(String)
use `UnknownCommandEvent.message(Component)`
org.bukkit.event.enchantment.PrepareItemEnchantEvent.getExpLevelCostsOffered()
Use `PrepareItemEnchantEvent.getOffers()` instead of this method
org.bukkit.event.entity.EntityShootBowEvent.getArrowItem()
org.bukkit.event.entity.EntityShootBowEvent.getConsumeArrow()
org.bukkit.event.entity.EntityShootBowEvent.setConsumeArrow(boolean)
org.bukkit.event.entity.HorseJumpEvent.setCancelled(boolean)
horse jumping was moved client side.
org.bukkit.event.entity.HorseJumpEvent.setPower(float)
horse jumping was moved client side.
org.bukkit.event.entity.PigZapEvent.getPigZombie()
use `EntityTransformEvent.getTransformedEntity()`
org.bukkit.event.entity.PlayerDeathEvent.getDeathMessage()
in favour of `PlayerDeathEvent.deathMessage()`
org.bukkit.event.entity.PlayerDeathEvent.setDeathMessage(String)
in favour of `PlayerDeathEvent.deathMessage(net.kyori.adventure.text.Component)`
org.bukkit.event.entity.VillagerReplenishTradeEvent.getBonus()
MC 1.14 has changed how villagers restock their trades. Use `MerchantRecipe.getUses()`.
org.bukkit.event.entity.VillagerReplenishTradeEvent.setBonus(int)
MC 1.14 has changed how villagers restock their trades. This has no effect anymore.
org.bukkit.event.inventory.InventoryClickEvent.setCursor(ItemStack)
This changes the ItemStack in their hand before any calculations are applied to the Inventory, which has a tendency to create inconsistencies between the Player and the server, and to make unexpected changes in the behavior of the clicked Inventory.
org.bukkit.event.inventory.InventoryType.getDefaultTitle()
org.bukkit.event.player.AsyncPlayerPreLoginEvent.disallow(AsyncPlayerPreLoginEvent.Result, String)
in favour of `AsyncPlayerPreLoginEvent.disallow(org.bukkit.event.player.AsyncPlayerPreLoginEvent.Result, net.kyori.adventure.text.Component)`
org.bukkit.event.player.AsyncPlayerPreLoginEvent.disallow(PlayerPreLoginEvent.Result, String)
This method uses a deprecated enum from `PlayerPreLoginEvent`
org.bukkit.event.player.AsyncPlayerPreLoginEvent.disallow(PlayerPreLoginEvent.Result, Component)
This method uses a deprecated enum from `PlayerPreLoginEvent`
org.bukkit.event.player.AsyncPlayerPreLoginEvent.getKickMessage()
in favour of `AsyncPlayerPreLoginEvent.kickMessage()`
org.bukkit.event.player.AsyncPlayerPreLoginEvent.getResult()
This method uses a deprecated enum from `PlayerPreLoginEvent`
org.bukkit.event.player.AsyncPlayerPreLoginEvent.setKickMessage(String)
in favour of `AsyncPlayerPreLoginEvent.kickMessage(net.kyori.adventure.text.Component)`
org.bukkit.event.player.AsyncPlayerPreLoginEvent.setResult(PlayerPreLoginEvent.Result)
This method uses a deprecated enum from `PlayerPreLoginEvent`
org.bukkit.event.player.PlayerBucketFishEvent.getFishBucket()
Use `PlayerBucketEntityEvent.getEntityBucket()`
org.bukkit.event.player.PlayerBucketFishEvent.getWaterBucket()
Use `PlayerBucketEntityEvent.getOriginalBucket()`
org.bukkit.event.player.PlayerCommandPreprocessEvent.getRecipients()
This method is provided for backward compatibility with no guarantee to the effect of viewing or modifying the set.
org.bukkit.event.player.PlayerEditBookEvent.getSlot()
books may be signed from off hand
org.bukkit.event.player.PlayerInteractEvent.isCancelled()
This event has two possible cancellation states, one for `PlayerInteractEvent.useInteractedBlock()` and one for `PlayerInteractEvent.useItemInHand()`. It is possible a call might have the former false, but the latter true, eg in the case of using a firework whilst gliding. Callers should check the relevant methods individually.
org.bukkit.event.player.PlayerJoinEvent.getJoinMessage()
in favour of `PlayerJoinEvent.joinMessage()`
org.bukkit.event.player.PlayerJoinEvent.setJoinMessage(String)
in favour of `PlayerJoinEvent.joinMessage(net.kyori.adventure.text.Component)`
org.bukkit.event.player.PlayerKickEvent.getLeaveMessage()
in favour of `PlayerKickEvent.leaveMessage()`
org.bukkit.event.player.PlayerKickEvent.getReason()
in favour of `PlayerKickEvent.reason()`
org.bukkit.event.player.PlayerKickEvent.setLeaveMessage(String)
in favour of `PlayerKickEvent.leaveMessage(net.kyori.adventure.text.Component)`
org.bukkit.event.player.PlayerKickEvent.setReason(String)
in favour of `PlayerKickEvent.reason(net.kyori.adventure.text.Component)`
org.bukkit.event.player.PlayerLocaleChangeEvent.getLocale()
in favour of `PlayerLocaleChangeEvent.locale()`
org.bukkit.event.player.PlayerLoginEvent.disallow(PlayerLoginEvent.Result, String)
in favour of `PlayerLoginEvent.disallow(Result, net.kyori.adventure.text.Component)`
org.bukkit.event.player.PlayerLoginEvent.getKickMessage()
in favour of `PlayerLoginEvent.kickMessage()`
org.bukkit.event.player.PlayerLoginEvent.setKickMessage(String)
in favour of `PlayerLoginEvent.kickMessage(net.kyori.adventure.text.Component)`
org.bukkit.event.player.PlayerPreLoginEvent.disallow(PlayerPreLoginEvent.Result, String)
in favour of `PlayerPreLoginEvent.disallow(org.bukkit.event.player.PlayerPreLoginEvent.Result, net.kyori.adventure.text.Component)`
org.bukkit.event.player.PlayerPreLoginEvent.getKickMessage()
in favour of `PlayerPreLoginEvent.kickMessage()`
org.bukkit.event.player.PlayerPreLoginEvent.setKickMessage(String)
in favour of `PlayerPreLoginEvent.kickMessage(net.kyori.adventure.text.Component)`
org.bukkit.event.player.PlayerQuitEvent.getQuitMessage()
in favour of `PlayerQuitEvent.quitMessage()`
org.bukkit.event.player.PlayerQuitEvent.setQuitMessage(String)
in favour of `PlayerQuitEvent.quitMessage(net.kyori.adventure.text.Component)`
org.bukkit.event.player.PlayerResourcePackStatusEvent.getHash()
org.bukkit.event.server.BroadcastMessageEvent.getMessage()
in favour of `BroadcastMessageEvent.message()`
org.bukkit.event.server.BroadcastMessageEvent.setMessage(String)
in favour of `BroadcastMessageEvent.message(net.kyori.adventure.text.Component)`
org.bukkit.event.server.ServerListPingEvent.getMotd()
in favour of `ServerListPingEvent.motd()`
org.bukkit.event.server.ServerListPingEvent.setMotd(String)
in favour of `ServerListPingEvent.motd(net.kyori.adventure.text.Component)`
org.bukkit.GameMode.getByValue(int)
Magic value
org.bukkit.GameMode.getValue()
Magic value
org.bukkit.generator.BlockPopulator.populate(World, Random, Chunk)
Use `BlockPopulator.populate(WorldInfo, Random, int, int, LimitedRegion)`
org.bukkit.generator.ChunkGenerator.BiomeGrid.getBiome(int, int)
biomes are now 3-dimensional
org.bukkit.generator.ChunkGenerator.BiomeGrid.setBiome(int, int, Biome)
biomes are now 3-dimensional
org.bukkit.generator.ChunkGenerator.ChunkData.getData(int, int, int)
Uses magic values
org.bukkit.generator.ChunkGenerator.ChunkData.getTypeAndData(int, int, int)
use `ChunkGenerator.ChunkData.getBlockData(int, int, int)`
org.bukkit.generator.ChunkGenerator.ChunkData.setBlock(int, int, int, MaterialData)
use `ChunkGenerator.ChunkData.setBlock(int, int, int, BlockData)`
org.bukkit.generator.ChunkGenerator.ChunkData.setRegion(int, int, int, int, int, int, MaterialData)
use `ChunkGenerator.ChunkData.setRegion(int, int, int, int, int, int, BlockData)`
org.bukkit.generator.ChunkGenerator.createChunkData(World)
`ChunkGenerator.ChunkData` are now directly provided
org.bukkit.generator.ChunkGenerator.generateChunkData(World, Random, int, int, ChunkGenerator.BiomeGrid)
The generation is now split up and the new methods should be used, see `ChunkGenerator`
org.bukkit.generator.ChunkGenerator.isParallelCapable()
the chunk generation code should be thread safe
org.bukkit.GrassSpecies.getByData(byte)
Magic value
org.bukkit.GrassSpecies.getData()
Magic value
org.bukkit.Instrument.getByType(byte)
Magic value
org.bukkit.Instrument.getType()
Magic value
org.bukkit.inventory.EntityEquipment.getItemInHand()
entities can duel wield now use the methods for the specific hand instead
org.bukkit.inventory.EntityEquipment.getItemInHandDropChance()
entities can duel wield now use the methods for the specific hand instead
org.bukkit.inventory.EntityEquipment.setItemInHand(ItemStack)
entities can duel wield now use the methods for the specific hand instead
org.bukkit.inventory.EntityEquipment.setItemInHandDropChance(float)
entities can duel wield now use the methods for the specific hand instead
org.bukkit.inventory.FurnaceRecipe.setInput(MaterialData)
use `FurnaceRecipe.setInputChoice(RecipeChoice)`
org.bukkit.inventory.FurnaceRecipe.setInput(Material, int)
Magic value
org.bukkit.inventory.InventoryView.getTitle()
in favour of `InventoryView.title()`
org.bukkit.inventory.InventoryView.Property.getId()
Magic value
org.bukkit.inventory.ItemFactory.getI18NDisplayName(ItemStack)
`ItemStack` implements `Translatable`; use that and `Component.translatable(net.kyori.adventure.translation.Translatable)` instead.
org.bukkit.inventory.ItemFactory.hoverContentOf(Entity)
use `HoverEventSource.asHoverEvent()`
org.bukkit.inventory.ItemFactory.hoverContentOf(Entity, BaseComponent[])
use `Entity.asHoverEvent(java.util.function.UnaryOperator)`
org.bukkit.inventory.ItemFactory.hoverContentOf(Entity, String)
use `Entity.asHoverEvent(java.util.function.UnaryOperator)`
org.bukkit.inventory.ItemFactory.hoverContentOf(Entity, BaseComponent)
use `Entity.asHoverEvent(java.util.function.UnaryOperator)`
org.bukkit.inventory.ItemFactory.updateMaterial(ItemMeta, Material)
for internal use only
org.bukkit.inventory.ItemStack.getData()
cast to `BlockDataMeta` and use `BlockDataMeta.getBlockData(Material)`
org.bukkit.inventory.ItemStack.getDurability()
see `ItemStack.setDurability(short)`
org.bukkit.inventory.ItemStack.getI18NDisplayName()
`ItemStack` implements `Translatable`; use that and `Component.translatable(net.kyori.adventure.translation.Translatable)` instead.
org.bukkit.inventory.ItemStack.getLore()
in favor of `ItemStack.lore()`
org.bukkit.inventory.ItemStack.getTranslationKey()
use `ItemStack.translationKey()`
org.bukkit.inventory.ItemStack.setData(MaterialData)
cast to `BlockDataMeta` and use `BlockDataMeta.setBlockData(org.bukkit.block.data.BlockData)`
org.bukkit.inventory.ItemStack.setDurability(short)
durability is now part of ItemMeta. To avoid confusion and misuse, `ItemStack.getItemMeta()`, `ItemStack.setItemMeta(ItemMeta)` and `Damageable.setDamage(int)` should be used instead. This is because any call to this method will be overwritten by subsequent setting of ItemMeta which was created before this call.
org.bukkit.inventory.ItemStack.setLore(List<String>)
in favour of `ItemStack.lore(List)`
org.bukkit.inventory.meta.BannerMeta.getBaseColor()
banner color is now stored as the data value, not meta.
org.bukkit.inventory.meta.BannerMeta.setBaseColor(DyeColor)
banner color is now stored as the data value, not meta.
org.bukkit.inventory.meta.BookMeta.addPage(String...)
in favour of `BookMeta.addPages(net.kyori.adventure.text.Component...)`
org.bukkit.inventory.meta.BookMeta.getPage(int)
in favour of `BookMeta.page(int)`
org.bukkit.inventory.meta.BookMeta.getPages()
in favour of `Book.pages()`
org.bukkit.inventory.meta.BookMeta.setPage(int, String)
in favour of `BookMeta.page(int, net.kyori.adventure.text.Component)`
org.bukkit.inventory.meta.BookMeta.setPages(String...)
in favour of `Book.pages(net.kyori.adventure.text.Component...)`
org.bukkit.inventory.meta.BookMeta.setPages(List<String>)
in favour of `Book.pages(List)`
org.bukkit.inventory.meta.BookMeta.Spigot.addPage(BaseComponent[]...)
in favour of `BookMeta.addPages(net.kyori.adventure.text.Component...)`
org.bukkit.inventory.meta.BookMeta.Spigot.getPage(int)
in favour of `BookMeta.page(int)`
org.bukkit.inventory.meta.BookMeta.Spigot.getPages()
in favour of `Book.pages()`
org.bukkit.inventory.meta.BookMeta.Spigot.setPage(int, BaseComponent...)
in favour of `BookMeta.page(int, net.kyori.adventure.text.Component)`
org.bukkit.inventory.meta.BookMeta.Spigot.setPages(List<BaseComponent[]>)
in favour of `Book.pages(java.util.List)`
org.bukkit.inventory.meta.BookMeta.Spigot.setPages(BaseComponent[]...)
in favour of `Book.pages(net.kyori.adventure.text.Component...)`
org.bukkit.inventory.meta.ItemMeta.getCanDestroy()
Minecraft does not limit this to the material enum, Use `ItemMeta.getDestroyableKeys()` as a replacement
org.bukkit.inventory.meta.ItemMeta.getCanPlaceOn()
Minecraft does not limit this to the material enum, Use `ItemMeta.getPlaceableKeys()` as a replacement
org.bukkit.inventory.meta.ItemMeta.getCustomTagContainer()
this API part has been replaced by the `PersistentDataHolder` API. Please use `PersistentDataHolder.getPersistentDataContainer()` instead of this.
org.bukkit.inventory.meta.ItemMeta.getDisplayName()
in favour of `ItemMeta.displayName()`
org.bukkit.inventory.meta.ItemMeta.getDisplayNameComponent()
use `ItemMeta.displayName()`
org.bukkit.inventory.meta.ItemMeta.getLocalizedName()
Use `ItemMeta.displayName()` and cast it to a `TranslatableComponent`. No longer used by the client.
org.bukkit.inventory.meta.ItemMeta.getLore()
in favour of `ItemMeta.lore()`
org.bukkit.inventory.meta.ItemMeta.getLoreComponents()
use `ItemMeta.lore()`
org.bukkit.inventory.meta.ItemMeta.hasLocalizedName()
Use `ItemMeta.displayName()` and check if it is instanceof a `TranslatableComponent`.
org.bukkit.inventory.meta.ItemMeta.setCanDestroy(Set<Material>)
Minecraft does not limit this to the material enum, Use `ItemMeta.setDestroyableKeys(Collection)` as a replacement
org.bukkit.inventory.meta.ItemMeta.setCanPlaceOn(Set<Material>)
Minecraft does not limit this to the material enum, Use `ItemMeta.setPlaceableKeys(Collection)` as a replacement
org.bukkit.inventory.meta.ItemMeta.setDisplayName(String)
in favour of `ItemMeta.displayName(net.kyori.adventure.text.Component)`
org.bukkit.inventory.meta.ItemMeta.setDisplayNameComponent(BaseComponent[])
use `ItemMeta.displayName(Component)`
org.bukkit.inventory.meta.ItemMeta.setLocalizedName(String)
Use `ItemMeta.displayName(Component)` with a `TranslatableComponent`. No longer used by the client.
org.bukkit.inventory.meta.ItemMeta.setLore(List<String>)
in favour of `ItemMeta.lore(List)`
org.bukkit.inventory.meta.ItemMeta.setLoreComponents(List<BaseComponent[]>)
use `ItemMeta.lore(List)`
org.bukkit.inventory.meta.ItemMeta.setVersion(int)
internal use only
org.bukkit.inventory.meta.MapMeta.getMapId()
These methods are poor API: They rely on the caller to pass in an only an integer property, and have poorly defined implementation behavior if that integer is not a valid map (the current implementation for example will generate a new map with a different ID). The xxxMapView family of methods should be used instead.
org.bukkit.inventory.meta.MapMeta.hasMapId()
These methods are poor API: They rely on the caller to pass in an only an integer property, and have poorly defined implementation behavior if that integer is not a valid map (the current implementation for example will generate a new map with a different ID). The xxxMapView family of methods should be used instead.
org.bukkit.inventory.meta.MapMeta.setMapId(int)
These methods are poor API: They rely on the caller to pass in an only an integer property, and have poorly defined implementation behavior if that integer is not a valid map (the current implementation for example will generate a new map with a different ID). The xxxMapView family of methods should be used instead.
org.bukkit.inventory.meta.PotionMeta.setMainEffect(PotionEffectType)
use `PotionMeta.setBasePotionData(org.bukkit.potion.PotionData)`
org.bukkit.inventory.meta.SkullMeta.getOwner()
see `SkullMeta.getOwningPlayer()`.
org.bukkit.inventory.meta.SkullMeta.getOwnerProfile()
org.bukkit.inventory.meta.SkullMeta.setOwner(String)
see `SkullMeta.setOwningPlayer(org.bukkit.OfflinePlayer)`.
org.bukkit.inventory.meta.SkullMeta.setOwnerProfile(PlayerProfile)
org.bukkit.inventory.meta.SpawnEggMeta.getSpawnedType()
different types are different items
org.bukkit.inventory.meta.SpawnEggMeta.setSpawnedType(EntityType)
different types are different items
org.bukkit.inventory.PlayerInventory.getItemInHand()
players can duel wield now use the methods for the specific hand instead
org.bukkit.inventory.PlayerInventory.setItemInHand(ItemStack)
players can duel wield now use the methods for the specific hand instead
org.bukkit.inventory.RecipeChoice.getItemStack()
for compatibility only
org.bukkit.inventory.ShapedRecipe.setIngredient(char, MaterialData)
use `ShapedRecipe.setIngredient(char, RecipeChoice)`
org.bukkit.inventory.ShapedRecipe.setIngredient(char, Material, int)
Magic value
org.bukkit.inventory.ShapelessRecipe.addIngredient(int, MaterialData)
use `ShapelessRecipe.addIngredient(int, Material)`
org.bukkit.inventory.ShapelessRecipe.addIngredient(int, Material, int)
Magic value
org.bukkit.inventory.ShapelessRecipe.addIngredient(MaterialData)
use `ShapelessRecipe.addIngredient(RecipeChoice)`
org.bukkit.inventory.ShapelessRecipe.addIngredient(Material, int)
Magic value
org.bukkit.inventory.ShapelessRecipe.removeIngredient(int, MaterialData)
use `ShapelessRecipe.removeIngredient(int, Material)`
org.bukkit.inventory.ShapelessRecipe.removeIngredient(int, Material, int)
Magic value
org.bukkit.inventory.ShapelessRecipe.removeIngredient(MaterialData)
use `ShapelessRecipe.removeIngredient(Material)`
org.bukkit.inventory.ShapelessRecipe.removeIngredient(Material, int)
Magic value
org.bukkit.Location.toBlockKey()
only encodes y block ranges from -512 to 511 and represents an already changed implementation detail
org.bukkit.Location.toHighestLocation(HeightmapType)
Use `Location.toHighestLocation(HeightMap)`
org.bukkit.map.MapCursor.getCaption()
in favour of `MapCursor.caption()`
org.bukkit.map.MapCursor.getRawType()
Magic value
org.bukkit.map.MapCursor.setCaption(String)
in favour of `MapCursor.caption(net.kyori.adventure.text.Component)`
org.bukkit.map.MapCursor.setRawType(byte)
Magic value
org.bukkit.map.MapCursor.Type.byValue(byte)
Magic value
org.bukkit.map.MapCursor.Type.getValue()
Magic value
org.bukkit.map.MapCursorCollection.addCursor(int, int, byte, byte)
Magic value
org.bukkit.map.MapCursorCollection.addCursor(int, int, byte, byte, boolean)
Magic value
org.bukkit.map.MapCursorCollection.addCursor(int, int, byte, byte, boolean, String)
Magic value
org.bukkit.map.MapCursorCollection.addCursor(int, int, byte, byte, boolean, Component)
Magic value
org.bukkit.map.MapPalette.getColor(byte)
Magic value
org.bukkit.map.MapPalette.imageToBytes(Image)
Magic value
org.bukkit.map.MapPalette.matchColor(int, int, int)
Magic value
org.bukkit.map.MapPalette.matchColor(Color)
Magic value
org.bukkit.map.MapView.Scale.getValue()
Magic value
org.bukkit.map.MapView.Scale.valueOf(byte)
Magic value
org.bukkit.material.Door.getHingeCorner()
This method should not be used; use hinge and facing accessors instead.
org.bukkit.material.ExtendedRails.getConvertedData()
Magic value
org.bukkit.Material.getData()
use `Material.createBlockData()`
org.bukkit.Material.getId()
Magic value
org.bukkit.Material.getItemAttributes(EquipmentSlot)
use `Material.getDefaultAttributeModifiers(EquipmentSlot)`
org.bukkit.Material.getNewData(byte)
Magic value
org.bukkit.Material.getTranslationKey()
use `Material.translationKey()`
org.bukkit.Material.isTransparent()
currently does not have an implementation which is well linked to the underlying server. Contributions welcome.
org.bukkit.material.MaterialData.getData()
Magic value
org.bukkit.material.MaterialData.setData(byte)
Magic value
org.bukkit.material.MaterialData.toItemStack()
this method creates an ItemStack of size 0 which is not generally useful. Consider `MaterialData.toItemStack(int)`.
org.bukkit.material.Mushroom.setFacePainted(BlockFace, boolean)
Use MushroomBlockType cap options
org.bukkit.material.Mushroom.setStem()
Use `Mushroom.setBlockTexture(org.bukkit.material.types.MushroomBlockTexture)` with `MushroomBlockTexture.STEM_SIDES` or `MushroomBlockTexture.ALL_STEM`
org.bukkit.material.Rails.getConvertedData()
Magic value
org.bukkit.material.SpawnEgg.getSpawnedType()
This is now stored in `SpawnEggMeta`.
org.bukkit.material.SpawnEgg.setSpawnedType(EntityType)
This is now stored in `SpawnEggMeta`.
org.bukkit.material.Step.getTextureIndex()
Magic value
org.bukkit.material.Step.setTextureIndex(int)
Magic value
org.bukkit.material.TexturedMaterial.getTextureIndex()
Magic value
org.bukkit.material.TexturedMaterial.setTextureIndex(int)
Magic value
org.bukkit.material.types.MushroomBlockTexture.getByData(byte)
Magic value
org.bukkit.material.types.MushroomBlockTexture.getData()
Magic value
org.bukkit.Nameable.getCustomName()
in favour of `Nameable.customName()`
org.bukkit.Nameable.setCustomName(String)
in favour of `Nameable.customName(net.kyori.adventure.text.Component)`
org.bukkit.NamespacedKey.randomKey()
should never be used by plugins, for internal use only!!
org.bukkit.Note.getId()
Magic value
org.bukkit.Note.Tone.getById(byte)
Magic value
org.bukkit.Note.Tone.getId()
Magic value
org.bukkit.Note.Tone.getId(boolean)
Magic value
org.bukkit.Note.Tone.isSharped(byte)
Magic value
org.bukkit.OfflinePlayer.getLastPlayed()
The API contract is ambiguous and the implementation may or may not return the correct value given this API ambiguity. It is instead recommended use `OfflinePlayer.getLastLogin()` or `OfflinePlayer.getLastSeen()` depending on your needs.
org.bukkit.plugin.messaging.StandardMessenger.validateAndCorrectChannel(String)
not an API method
org.bukkit.plugin.messaging.StandardMessenger.validateChannel(String)
not an API method
org.bukkit.plugin.Plugin.getLog4JLogger()
use `Plugin.getSLF4JLogger()`
org.bukkit.plugin.PluginDescriptionFile.getClassLoaderOf()
unused
org.bukkit.plugin.PluginDescriptionFile.getRawName()
Internal use
org.bukkit.plugin.PluginLoader.disablePlugin(Plugin, boolean)
Classloader is always closed by upstream now.
org.bukkit.plugin.PluginManager.disablePlugin(Plugin, boolean)
Classloader is always closed by upstream now.
org.bukkit.plugin.SimplePluginManager.addPermission(Permission, boolean)
org.bukkit.plugin.SimplePluginManager.dirtyPermissibles()
org.bukkit.plugin.SimplePluginManager.disablePlugins(boolean)
Classloader is always closed by upstream now.
org.bukkit.potion.Potion.getNameId()
Non-functional
org.bukkit.potion.Potion.toDamageValue()
Non-functional
org.bukkit.potion.PotionBrewer.getEffectsFromDamage(int)
Non-Functional
org.bukkit.potion.PotionEffect.getColor()
color is not part of potion effects
org.bukkit.potion.PotionEffectType.getById(int)
Magic value
org.bukkit.potion.PotionEffectType.getDurationModifier()
unused, always 1.0
org.bukkit.potion.PotionEffectType.getId()
Magic value
org.bukkit.potion.PotionType.getByEffect(PotionEffectType)
Misleading
org.bukkit.profile.PlayerProfile.getUniqueId()
org.bukkit.SandstoneType.getByData(byte)
Magic value
org.bukkit.SandstoneType.getData()
Magic value
org.bukkit.scheduler.BukkitScheduler.runTask(Plugin, BukkitRunnable)
Use `BukkitRunnable.runTask(Plugin)`
org.bukkit.scheduler.BukkitScheduler.runTaskAsynchronously(Plugin, BukkitRunnable)
Use `BukkitRunnable.runTaskAsynchronously(Plugin)`
org.bukkit.scheduler.BukkitScheduler.runTaskLater(Plugin, BukkitRunnable, long)
Use `BukkitRunnable.runTaskLater(Plugin, long)`
org.bukkit.scheduler.BukkitScheduler.runTaskLaterAsynchronously(Plugin, BukkitRunnable, long)
Use `BukkitRunnable.runTaskLaterAsynchronously(Plugin, long)`
org.bukkit.scheduler.BukkitScheduler.runTaskTimer(Plugin, BukkitRunnable, long, long)
Use `BukkitRunnable.runTaskTimer(Plugin, long, long)`
org.bukkit.scheduler.BukkitScheduler.runTaskTimerAsynchronously(Plugin, BukkitRunnable, long, long)
Use `BukkitRunnable.runTaskTimerAsynchronously(Plugin, long, long)`
org.bukkit.scheduler.BukkitScheduler.scheduleAsyncDelayedTask(Plugin, Runnable)
This name is misleading, as it does not schedule "a sync" task, but rather, "an async" task
org.bukkit.scheduler.BukkitScheduler.scheduleAsyncDelayedTask(Plugin, Runnable, long)
This name is misleading, as it does not schedule "a sync" task, but rather, "an async" task
org.bukkit.scheduler.BukkitScheduler.scheduleAsyncRepeatingTask(Plugin, Runnable, long, long)
This name is misleading, as it does not schedule "a sync" task, but rather, "an async" task
org.bukkit.scheduler.BukkitScheduler.scheduleSyncDelayedTask(Plugin, BukkitRunnable)
Use `BukkitRunnable.runTask(Plugin)`
org.bukkit.scheduler.BukkitScheduler.scheduleSyncDelayedTask(Plugin, BukkitRunnable, long)
Use `BukkitRunnable.runTaskLater(Plugin, long)`
org.bukkit.scheduler.BukkitScheduler.scheduleSyncRepeatingTask(Plugin, BukkitRunnable, long, long)
Use `BukkitRunnable.runTaskTimer(Plugin, long, long)`
org.bukkit.scoreboard.Objective.getDisplayName()
in favour of `Objective.displayName()`
org.bukkit.scoreboard.Objective.setDisplayName(String)
in favour of `Objective.displayName(net.kyori.adventure.text.Component)`
org.bukkit.scoreboard.Score.getPlayer()
Scoreboards can contain entries that aren't players
org.bukkit.scoreboard.Scoreboard.getPlayers()
Scoreboards can contain entries that aren't players
org.bukkit.scoreboard.Scoreboard.registerNewObjective(String, String)
a displayName should be explicitly specified
org.bukkit.scoreboard.Scoreboard.registerNewObjective(String, String, String)
in favour of `Scoreboard.registerNewObjective(String, String, net.kyori.adventure.text.Component)`
org.bukkit.scoreboard.Scoreboard.registerNewObjective(String, String, String, RenderType)
in favour of `Scoreboard.registerNewObjective(String, String, net.kyori.adventure.text.Component, RenderType)`
org.bukkit.scoreboard.Team.getColor()
in favour of `Team.color()`
org.bukkit.scoreboard.Team.getDisplayName()
in favour of `Team.displayName()`
org.bukkit.scoreboard.Team.getNameTagVisibility()
see `Team.getOption(org.bukkit.scoreboard.Team.Option)`
org.bukkit.scoreboard.Team.getPlayers()
Teams can contain entries that aren't players
org.bukkit.scoreboard.Team.getPrefix()
in favour of `Team.prefix()`
org.bukkit.scoreboard.Team.getSuffix()
in favour of `Team.suffix()`
org.bukkit.scoreboard.Team.setColor(ChatColor)
in favour of `Team.color(net.kyori.adventure.text.format.NamedTextColor)`
org.bukkit.scoreboard.Team.setDisplayName(String)
in favour of `Team.displayName(net.kyori.adventure.text.Component)`
org.bukkit.scoreboard.Team.setNameTagVisibility(NameTagVisibility)
see `Team.setOption(org.bukkit.scoreboard.Team.Option, org.bukkit.scoreboard.Team.OptionStatus)`
org.bukkit.scoreboard.Team.setPrefix(String)
in favour of `Team.prefix(net.kyori.adventure.text.Component)`
org.bukkit.scoreboard.Team.setSuffix(String)
in favour of `Team.suffix(net.kyori.adventure.text.Component)`
org.bukkit.Server.broadcast(String, String)
in favour of `Server.broadcast(net.kyori.adventure.text.Component, String)`
org.bukkit.Server.broadcast(BaseComponent...)
use `sendMessage` methods that accept `Component`
org.bukkit.Server.broadcast(BaseComponent)
use `sendMessage` methods that accept `Component`
org.bukkit.Server.broadcastMessage(String)
use `Server.broadcast(net.kyori.adventure.text.Component)`
org.bukkit.Server.createInventory(InventoryHolder, int, String)
in favour of `Server.createInventory(InventoryHolder, int, net.kyori.adventure.text.Component)`
org.bukkit.Server.createInventory(InventoryHolder, InventoryType, String)
in favour of `Server.createInventory(InventoryHolder, InventoryType, net.kyori.adventure.text.Component)`
org.bukkit.Server.createMerchant(String)
in favour of `Server.createMerchant(net.kyori.adventure.text.Component)`
org.bukkit.Server.createPlayerProfile(String)
use `Server.createProfile(String)`
org.bukkit.Server.createPlayerProfile(UUID)
use `Server.createProfile(UUID)`
org.bukkit.Server.createPlayerProfile(UUID, String)
use `Server.createProfile(UUID, String)`
org.bukkit.Server.createVanillaChunkData(World, int, int)
The new multi-stage worldgen API allows a similar effect by overriding all of the "shouldGenerate..." methods to return true, and then modifying the chunkdata in a later stage such as surface or bedrock generation.
org.bukkit.Server.getAmbientSpawnLimit()
Deprecated in favor of `Server.getSpawnLimit(SpawnCategory)`
org.bukkit.Server.getAnimalSpawnLimit()
Deprecated in favor of `Server.getSpawnLimit(SpawnCategory)`
org.bukkit.Server.getMap(int)
Magic value
org.bukkit.Server.getMonsterSpawnLimit()
Deprecated in favor of `Server.getSpawnLimit(SpawnCategory)`
org.bukkit.Server.getMotd()
in favour of `Server.motd()`
org.bukkit.Server.getShutdownMessage()
in favour of `Server.shutdownMessage()`
org.bukkit.Server.getTicksPerAmbientSpawns()
Deprecated in favor of `Server.getTicksPerSpawns(SpawnCategory)`
org.bukkit.Server.getTicksPerAnimalSpawns()
Deprecated in favor of `Server.getTicksPerSpawns(SpawnCategory)`
org.bukkit.Server.getTicksPerMonsterSpawns()
Deprecated in favor of `Server.getTicksPerSpawns(SpawnCategory)`
org.bukkit.Server.getTicksPerWaterAmbientSpawns()
Deprecated in favor of `Server.getTicksPerSpawns(SpawnCategory)`
org.bukkit.Server.getTicksPerWaterSpawns()
Deprecated in favor of `Server.getTicksPerSpawns(SpawnCategory)`
org.bukkit.Server.getTicksPerWaterUndergroundCreatureSpawns()
Deprecated in favor of `Server.getTicksPerSpawns(SpawnCategory)`
org.bukkit.Server.getUnsafe()
org.bukkit.Server.getWaterAmbientSpawnLimit()
Deprecated in favor of `Server.getSpawnLimit(SpawnCategory)`
org.bukkit.Server.getWaterAnimalSpawnLimit()
Deprecated in favor of `Server.getSpawnLimit(SpawnCategory)`
org.bukkit.Server.getWaterUndergroundCreatureSpawnLimit()
Deprecated in favor of `Server.getSpawnLimit(SpawnCategory)`
org.bukkit.Server.Spigot.broadcast(BaseComponent...)
use `Server.broadcast(net.kyori.adventure.text.Component)`
org.bukkit.Server.Spigot.broadcast(BaseComponent)
use `Server.broadcast(net.kyori.adventure.text.Component)`
org.bukkit.TreeSpecies.getByData(byte)
Magic value
org.bukkit.TreeSpecies.getData()
Magic value
org.bukkit.UnsafeValues.colorDownsamplingGsonComponentSerializer()
org.bukkit.UnsafeValues.gsonComponentSerializer()
org.bukkit.UnsafeValues.legacyComponentSerializer()
org.bukkit.UnsafeValues.plainComponentSerializer()
org.bukkit.UnsafeValues.plainTextSerializer()
org.bukkit.World.doesBedWork()
use `World.isBedWorks()`
org.bukkit.World.doesRespawnAnchorWork()
use `World.isRespawnAnchorWorks()`
org.bukkit.World.Environment.getEnvironment(int)
Magic value
org.bukkit.World.Environment.getId()
Magic value
org.bukkit.World.generateTree(Location, TreeType, BlockChangeDelegate)
this method does not handle tile entities (bee nests)
org.bukkit.World.getAmbientSpawnLimit()
Deprecated in favor of `World.getSpawnLimit(SpawnCategory)`
org.bukkit.World.getAnimalSpawnLimit()
Deprecated in favor of `World.getSpawnLimit(SpawnCategory)`
org.bukkit.World.getBiome(int, int)
biomes are now 3-dimensional
org.bukkit.World.getBlockAtKey(long)
only encodes y block ranges from -512 to 511 and represents an already changed implementation detail
org.bukkit.World.getChunkAtAsync(int, int, World.ChunkLoadCallback)
Use either the Future or the Consumer based methods
org.bukkit.World.getChunkAtAsync(Block, World.ChunkLoadCallback)
Use either the Future or the Consumer based methods
org.bukkit.World.getChunkAtAsync(Location, World.ChunkLoadCallback)
Use either the Future or the Consumer based methods
org.bukkit.World.getEntitiesByClass(Class<T>...)
org.bukkit.World.getGameRuleValue(String)
use `World.getGameRuleValue(GameRule)` instead
org.bukkit.World.getHighestBlockAt(int, int, HeightmapType)
Upstream has added support for this, use `World.getHighestBlockAt(int, int, HeightMap)`
org.bukkit.World.getHighestBlockAt(Location, HeightmapType)
Upstream has added support for this, use `World.getHighestBlockAt(Location, HeightMap)`
org.bukkit.World.getHighestBlockYAt(int, int, HeightmapType)
Upstream has added support for this, use `World.getHighestBlockYAt(int, int, HeightMap)`
org.bukkit.World.getHighestBlockYAt(Location, HeightmapType)
Upstream has added support for this, use `World.getHighestBlockYAt(Location, HeightMap)`
org.bukkit.World.getHumidity(int, int)
biomes are now 3-dimensional
org.bukkit.World.getMonsterSpawnLimit()
Deprecated in favor of `World.getSpawnLimit(SpawnCategory)`
org.bukkit.World.getNoTickViewDistance()
Use `World.getViewDistance()`
org.bukkit.World.getTemperature(int, int)
biomes are now 3-dimensional
org.bukkit.World.getTicksPerAmbientSpawns()
Deprecated in favor of `World.getTicksPerSpawns(SpawnCategory)`
org.bukkit.World.getTicksPerAnimalSpawns()
Deprecated in favor of `World.getTicksPerSpawns(SpawnCategory)`
org.bukkit.World.getTicksPerMonsterSpawns()
Deprecated in favor of `World.getTicksPerSpawns(SpawnCategory)`
org.bukkit.World.getTicksPerWaterAmbientSpawns()
Deprecated in favor of `World.getTicksPerSpawns(SpawnCategory)`
org.bukkit.World.getTicksPerWaterSpawns()
Deprecated in favor of `World.getTicksPerSpawns(SpawnCategory)`
org.bukkit.World.getTicksPerWaterUndergroundCreatureSpawns()
Deprecated in favor of `World.getTicksPerSpawns(SpawnCategory)`
org.bukkit.World.getWaterAmbientSpawnLimit()
Deprecated in favor of `World.getSpawnLimit(SpawnCategory)`
org.bukkit.World.getWaterAnimalSpawnLimit()
Deprecated in favor of `World.getSpawnLimit(SpawnCategory)`
org.bukkit.World.getWaterUndergroundCreatureSpawnLimit()
Deprecated in favor of `World.getSpawnLimit(SpawnCategory)`
org.bukkit.World.getWorldType()
world type is only used to select the default word generation settings and is not stored in Vanilla worlds, making it impossible for this method to always return the correct value.
org.bukkit.World.hasBedrockCeiling()
use `World.hasCeiling()`
org.bukkit.World.hasSkylight()
use `World.hasSkyLight()`
org.bukkit.World.isChunkInUse(int, int)
This method was added to facilitate chunk garbage collection. As of the current Minecraft version chunks are now strictly managed and will not be loaded for more than 1 tick unless they are in use.
org.bukkit.World.isUltrawarm()
use `World.isUltraWarm()`
org.bukkit.World.regenerateChunk(int, int)
regenerating a single chunk is not likely to produce the same chunk as before as terrain decoration may be spread across chunks. It may or may not change blocks in the adjacent chunks as well.
org.bukkit.World.setAmbientSpawnLimit(int)
Deprecated in favor of `World.setSpawnLimit(SpawnCategory, int)`
org.bukkit.World.setAnimalSpawnLimit(int)
Deprecated in favor of `World.getSpawnLimit(SpawnCategory)`
org.bukkit.World.setBiome(int, int, Biome)
biomes are now 3-dimensional
org.bukkit.World.setGameRuleValue(String, String)
use `World.setGameRule(GameRule, Object)` instead.
org.bukkit.World.setMonsterSpawnLimit(int)
Deprecated in favor of `World.setSpawnLimit(SpawnCategory, int)`
org.bukkit.World.setNoTickViewDistance(int)
Use `World.setViewDistance(int)`
org.bukkit.World.setTicksPerAmbientSpawns(int)
Deprecated in favor of `World.setTicksPerSpawns(SpawnCategory, int)`
org.bukkit.World.setTicksPerAnimalSpawns(int)
Deprecated in favor of `World.setTicksPerSpawns(SpawnCategory, int)`
org.bukkit.World.setTicksPerMonsterSpawns(int)
Deprecated in favor of `World.setTicksPerSpawns(SpawnCategory, int)`
org.bukkit.World.setTicksPerWaterAmbientSpawns(int)
Deprecated in favor of `World.setTicksPerSpawns(SpawnCategory, int)`
org.bukkit.World.setTicksPerWaterSpawns(int)
Deprecated in favor of `World.setTicksPerSpawns(SpawnCategory, int)`
org.bukkit.World.setTicksPerWaterUndergroundCreatureSpawns(int)
Deprecated in favor of `World.setTicksPerSpawns(SpawnCategory, int)`
org.bukkit.World.setWaterAmbientSpawnLimit(int)
Deprecated in favor of `World.setSpawnLimit(SpawnCategory, int)`
org.bukkit.World.setWaterAnimalSpawnLimit(int)
Deprecated in favor of `World.setSpawnLimit(SpawnCategory, int)`
org.bukkit.World.setWaterUndergroundCreatureSpawnLimit(int)
Deprecated in favor of `World.setSpawnLimit(SpawnCategory, int)`
org.bukkit.World.spawnFallingBlock(Location, MaterialData)
use `World.spawnFallingBlock(Location, BlockData)`
org.bukkit.World.spawnFallingBlock(Location, Material, byte)
Magic value
org.bukkit.WorldBorder.isInBounds(Location)
use `WorldBorder.isInside(Location)` for an upstream compatible replacement

Deprecated Constructors
Constructor
Description
com.destroystokyo.paper.event.player.PlayerHandshakeEvent(String, boolean)
in favour of `PlayerHandshakeEvent(@org.jetbrains.annotations.NotNull java.lang.String,@org.jetbrains.annotations.NotNull java.lang.String,boolean)`
com.destroystokyo.paper.event.profile.ProfileWhitelistVerifyEvent(PlayerProfile, boolean, boolean, boolean, String)
com.destroystokyo.paper.event.server.AsyncTabCompleteEvent(CommandSender, List<String>, String, boolean, Location)
com.destroystokyo.paper.event.server.PaperServerListPingEvent(StatusClient, String, int, int, String, int, CachedServerIcon)
com.destroystokyo.paper.MaterialSetTag(Collection<Material>)
Use NamespacedKey version of constructor
com.destroystokyo.paper.MaterialSetTag(Predicate<Material>)
Use NamespacedKey version of constructor
com.destroystokyo.paper.MaterialSetTag(Material...)
Use NamespacedKey version of constructor
com.destroystokyo.paper.NamespacedTag(String, String)
should never be used by plugins, for internal use only!!
org.bukkit.event.block.BlockBurnEvent(Block)
org.bukkit.event.block.BlockCanBuildEvent(Block, BlockData, boolean)
org.bukkit.event.block.BlockCookEvent(Block, ItemStack, ItemStack)
org.bukkit.event.block.BlockMultiPlaceEvent(List<BlockState>, Block, ItemStack, Player, boolean)
org.bukkit.event.block.BlockPhysicsEvent(Block, BlockData, int, int, int)
org.bukkit.event.block.BlockPistonExtendEvent(Block, int, BlockFace)
org.bukkit.event.block.BlockPlaceEvent(Block, BlockState, Block, ItemStack, Player, boolean)
org.bukkit.event.block.SignChangeEvent(Block, Player, String[])
org.bukkit.event.command.UnknownCommandEvent(CommandSender, String, String)
org.bukkit.event.entity.EntityDamageByEntityEvent(Entity, Entity, EntityDamageEvent.DamageCause, double)
org.bukkit.event.entity.EntityDamageByEntityEvent(Entity, Entity, EntityDamageEvent.DamageCause, Map<EntityDamageEvent.DamageModifier, Double>, Map<EntityDamageEvent.DamageModifier, ? extends Function<? super Double, Double>>)
org.bukkit.event.entity.EntityShootBowEvent(LivingEntity, ItemStack, Entity, float)
org.bukkit.event.entity.EntityShootBowEvent(LivingEntity, ItemStack, ItemStack, Entity, float)
org.bukkit.event.entity.EntityUnleashEvent(Entity, EntityUnleashEvent.UnleashReason)
org.bukkit.event.entity.ItemSpawnEvent(Item, Location)
org.bukkit.event.entity.PlayerDeathEvent(Player, List<ItemStack>, int, int, int, int, String)
org.bukkit.event.entity.PlayerDeathEvent(Player, List<ItemStack>, int, int, int, int, String, boolean)
org.bukkit.event.entity.PlayerDeathEvent(Player, List<ItemStack>, int, int, String)
org.bukkit.event.entity.SheepDyeWoolEvent(Sheep, DyeColor)
org.bukkit.event.hanging.HangingPlaceEvent(Hanging, Player, Block, BlockFace)
org.bukkit.event.inventory.FurnaceSmeltEvent(Block, ItemStack, ItemStack)
org.bukkit.event.inventory.FurnaceStartSmeltEvent(Block, ItemStack, CookingRecipe<?>)
org.bukkit.event.player.AsyncPlayerPreLoginEvent(String, InetAddress)
org.bukkit.event.player.AsyncPlayerPreLoginEvent(String, InetAddress, InetAddress, UUID, PlayerProfile)
org.bukkit.event.player.AsyncPlayerPreLoginEvent(String, InetAddress, UUID, PlayerProfile)
org.bukkit.event.player.PlayerAnimationEvent(Player)
org.bukkit.event.player.PlayerAttemptPickupItemEvent(Player, Item)
org.bukkit.event.player.PlayerBedEnterEvent(Player, Block)
org.bukkit.event.player.PlayerBucketEmptyEvent(Player, Block, BlockFace, Material, ItemStack)
org.bukkit.event.player.PlayerBucketEmptyEvent(Player, Block, BlockFace, Material, ItemStack, EquipmentSlot)
org.bukkit.event.player.PlayerBucketEvent(Player, Block, BlockFace, Material, ItemStack)
org.bukkit.event.player.PlayerBucketEvent(Player, Block, BlockFace, Material, ItemStack, EquipmentSlot)
org.bukkit.event.player.PlayerBucketFillEvent(Player, Block, BlockFace, Material, ItemStack)
org.bukkit.event.player.PlayerBucketFillEvent(Player, Block, BlockFace, Material, ItemStack, EquipmentSlot)
org.bukkit.event.player.PlayerGameModeChangeEvent(Player, GameMode)
org.bukkit.event.player.PlayerItemDamageEvent(Player, ItemStack, int)
org.bukkit.event.player.PlayerJoinEvent(Player, String)
org.bukkit.event.player.PlayerKickEvent(Player, String, String)
org.bukkit.event.player.PlayerKickEvent(Player, Component, Component)
org.bukkit.event.player.PlayerLoginEvent(Player, String, InetAddress, PlayerLoginEvent.Result, String, InetAddress)
in favour of `PlayerLoginEvent(Player, String, InetAddress, Result, net.kyori.adventure.text.Component, InetAddress)`
org.bukkit.event.player.PlayerPreLoginEvent(String, InetAddress)
org.bukkit.event.player.PlayerQuitEvent(Player, String)
org.bukkit.event.player.PlayerQuitEvent(Player, String, PlayerQuitEvent.QuitReason)
org.bukkit.event.player.PlayerQuitEvent(Player, Component)
org.bukkit.event.player.PlayerResourcePackStatusEvent(Player, PlayerResourcePackStatusEvent.Status, String)
org.bukkit.event.player.PlayerRespawnEvent(Player, Location, boolean)
org.bukkit.event.player.PlayerRespawnEvent(Player, Location, boolean, boolean)
org.bukkit.event.player.PlayerShearEntityEvent(Player, Entity)
org.bukkit.event.player.PlayerUnleashEntityEvent(Entity, Player)
org.bukkit.event.server.BroadcastMessageEvent(boolean, String, Set<CommandSender>)
org.bukkit.event.server.BroadcastMessageEvent(String, Set<CommandSender>)
org.bukkit.event.server.BroadcastMessageEvent(Component, Set<CommandSender>)
org.bukkit.event.server.ServerListPingEvent(InetAddress, String, int)
in favour of `ServerListPingEvent(java.net.InetAddress, net.kyori.adventure.text.Component, int)`
org.bukkit.event.server.ServerListPingEvent(InetAddress, String, int, int)
org.bukkit.event.weather.LightningStrikeEvent(World, LightningStrike)
org.bukkit.event.weather.ThunderChangeEvent(World, boolean)
org.bukkit.event.weather.WeatherChangeEvent(World, boolean)
org.bukkit.event.world.PortalCreateEvent(List<BlockState>, World, PortalCreateEvent.CreateReason)
org.bukkit.inventory.FurnaceRecipe(ItemStack, Material)
org.bukkit.inventory.FurnaceRecipe(ItemStack, MaterialData)
org.bukkit.inventory.FurnaceRecipe(ItemStack, MaterialData, float)
org.bukkit.inventory.FurnaceRecipe(ItemStack, Material, int)
org.bukkit.inventory.FurnaceRecipe(NamespacedKey, ItemStack, Material, int, float, int)
org.bukkit.inventory.ItemStack(Material, int, short)
see `ItemStack.setDurability(short)`
org.bukkit.inventory.ItemStack(Material, int, short, Byte)
this method uses an ambiguous data byte object
org.bukkit.inventory.ShapedRecipe(ItemStack)
org.bukkit.inventory.ShapelessRecipe(ItemStack)
org.bukkit.map.MapCursor(byte, byte, byte, byte, boolean)
Magic value
org.bukkit.map.MapCursor(byte, byte, byte, byte, boolean, String)
Magic value. Use `MapCursor(byte, byte, byte, byte, boolean, net.kyori.adventure.text.Component)`
org.bukkit.map.MapCursor(byte, byte, byte, byte, boolean, Component)
Magic value
org.bukkit.material.Banner(Material, byte)
Magic value
org.bukkit.material.Bed(Material, byte)
Magic value
org.bukkit.material.Button(Material, byte)
Magic value
org.bukkit.material.Cake(Material, byte)
Magic value
org.bukkit.material.Cauldron(byte)
Magic value
org.bukkit.material.Cauldron(Material, byte)
Magic value
org.bukkit.material.Chest(Material, byte)
Magic value
org.bukkit.material.Coal(Material, byte)
Magic value
org.bukkit.material.CocoaPlant(Material, byte)
Magic value
org.bukkit.material.Command(Material, byte)
Magic value
org.bukkit.material.Comparator(Material, byte)
Magic value
org.bukkit.material.Crops(Material, byte)
Magic value
org.bukkit.material.DetectorRail(Material, byte)
Magic value
org.bukkit.material.Diode(Material, byte)
Magic value
org.bukkit.material.DirectionalContainer(Material, byte)
Magic value
org.bukkit.material.Dispenser(Material, byte)
Magic value
org.bukkit.material.Door()
Artifact of old API, equivalent to new `Door(Material.LEGACY_WOODEN_DOOR);`
org.bukkit.material.Door(Material, byte)
Magic value
org.bukkit.material.Dye(Material, byte)
Magic value
org.bukkit.material.EnderChest(Material, byte)
Magic value
org.bukkit.material.ExtendedRails(Material, byte)
Magic value
org.bukkit.material.FlowerPot(Material, byte)
Magic value
org.bukkit.material.Furnace(Material, byte)
Magic value
org.bukkit.material.FurnaceAndDispenser(Material, byte)
Magic value
org.bukkit.material.Gate(Material, byte)
Magic value
org.bukkit.material.Hopper(Material, byte)
Magic value
org.bukkit.material.Ladder(Material, byte)
Magic value
org.bukkit.material.Leaves(Material, byte)
Magic value
org.bukkit.material.Lever(Material, byte)
Magic value
org.bukkit.material.LongGrass(Material, byte)
Magic value
org.bukkit.material.MaterialData(Material, byte)
Magic value
org.bukkit.material.MonsterEggs(Material, byte)
Magic value
org.bukkit.material.Mushroom(Material, byte)
Magic value
org.bukkit.material.NetherWarts(Material, byte)
Magic value
org.bukkit.material.Observer(Material, byte)
Magic value
org.bukkit.material.PistonBaseMaterial(Material, byte)
Magic value
org.bukkit.material.PistonExtensionMaterial(Material, byte)
Magic value
org.bukkit.material.PoweredRail(Material, byte)
Magic value
org.bukkit.material.PressurePlate(Material, byte)
Magic value
org.bukkit.material.Pumpkin(Material, byte)
Magic value
org.bukkit.material.Rails(Material, byte)
Magic value
org.bukkit.material.RedstoneTorch(Material, byte)
Magic value
org.bukkit.material.RedstoneWire(Material, byte)
Magic value
org.bukkit.material.Sandstone(Material, byte)
Magic value
org.bukkit.material.Sapling(Material, byte)
Magic value
org.bukkit.material.Sign(Material, byte)
Magic value
org.bukkit.material.SimpleAttachableMaterialData(Material, byte)
Magic value
org.bukkit.material.Skull(Material, byte)
Magic value
org.bukkit.material.SmoothBrick(Material, byte)
Magic value
org.bukkit.material.SpawnEgg(byte)
Magic value
org.bukkit.material.SpawnEgg(Material, byte)
Magic value
org.bukkit.material.Stairs(Material, byte)
Magic value
org.bukkit.material.Step(Material, byte)
Magic value
org.bukkit.material.TexturedMaterial(Material, byte)
Magic value
org.bukkit.material.Torch(Material, byte)
Magic value
org.bukkit.material.TrapDoor(Material, byte)
Magic value
org.bukkit.material.Tree(Material, byte)
Magic value
org.bukkit.material.Tripwire(Material, byte)
Magic value
org.bukkit.material.TripwireHook(Material, byte)
Magic value
org.bukkit.material.Vine(byte)
Magic value
org.bukkit.material.Vine(Material, byte)
Magic value
org.bukkit.material.Wood(Material, byte)
Magic value
org.bukkit.material.WoodenStep(Material, byte)
Magic value
org.bukkit.material.Wool(Material, byte)
Magic value
org.bukkit.plugin.java.JavaPluginLoader(Server)
org.bukkit.potion.Potion(PotionType, int, boolean)
In favour of using `Potion(PotionType)` with `Potion.splash()`.
org.bukkit.potion.Potion(PotionType, int, boolean, boolean)
In favour of using `Potion(PotionType)` with `Potion.extend()` and possibly `Potion.splash()`.

Deprecated Enum Constants
Enum Constant
Description
org.bukkit.Effect.BOOK_PAGE_TURNED
use `Effect.BOOK_PAGE_TURN`
org.bukkit.Effect.COMPOSTER_COMPOSTS
use `Effect.COMPOSTER_FILL_ATTEMPT`
org.bukkit.Effect.ENDER_DRAGON_DESTROYS_BLOCK
use `Effect.ENDER_DRAGON_DESTROY_BLOCK`
org.bukkit.Effect.ENDER_EYE_PLACED
use `Effect.END_PORTAL_FRAME_FILL`
org.bukkit.Effect.GRINDSTONE_USED
use `Effect.GRINDSTONE_USE`
org.bukkit.Effect.HUSK_CONVERTS_TO_ZOMBIE
use `Effect.HUSK_CONVERTED_TO_ZOMBIE`
org.bukkit.Effect.LAVA_CONVERTS_BLOCK
use `Effect.LAVA_INTERACT`
org.bukkit.Effect.PHANTOM_BITES
use `Effect.PHANTOM_BITE`
org.bukkit.Effect.REDSTONE_TORCH_BURNS_OUT
use `Effect.REDSTONE_TORCH_BURNOUT`
org.bukkit.Effect.WET_SPONGE_VAPORIZES_IN_NETHER
use `Effect.SPONGE_DRY`
org.bukkit.Effect.ZOMBIE_CONVERTS_TO_DROWNED
use `Effect.ZOMBIE_CONVERTED_TO_DROWNED`
org.bukkit.enchantments.EnchantmentTarget.ALL
this target no longer exists in Vanilla
org.bukkit.EntityEffect.DEATH
although this effect may trigger other events on non-living entities, it's only supported usage is on living ones.
org.bukkit.EntityEffect.SHEEP_EAT
although this effect may trigger other events on non-living entities, it's only supported usage is on living ones.
org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.CHUNK_GEN
no longer called, chunks are generated with entities already existing. Consider using `ChunkLoadEvent`, `ChunkLoadEvent.isNewChunk()` and `Chunk.getEntities()` for similar effect.
org.bukkit.event.entity.EntityTargetEvent.TargetReason.PIG_ZOMBIE_TARGET
obsoleted by `EntityTargetEvent.TargetReason.TARGET_ATTACKED_NEARBY_ENTITY`
org.bukkit.Material.LEGACY_ACACIA_DOOR
org.bukkit.Material.LEGACY_ACACIA_DOOR_ITEM
org.bukkit.Material.LEGACY_ACACIA_FENCE
org.bukkit.Material.LEGACY_ACACIA_FENCE_GATE
org.bukkit.Material.LEGACY_ACACIA_STAIRS
org.bukkit.Material.LEGACY_ACTIVATOR_RAIL
org.bukkit.Material.LEGACY_AIR
org.bukkit.Material.LEGACY_ANVIL
org.bukkit.Material.LEGACY_APPLE
org.bukkit.Material.LEGACY_ARMOR_STAND
org.bukkit.Material.LEGACY_ARROW
org.bukkit.Material.LEGACY_BAKED_POTATO
org.bukkit.Material.LEGACY_BANNER
org.bukkit.Material.LEGACY_BARRIER
org.bukkit.Material.LEGACY_BEACON
org.bukkit.Material.LEGACY_BED
org.bukkit.Material.LEGACY_BED_BLOCK
org.bukkit.Material.LEGACY_BEDROCK
org.bukkit.Material.LEGACY_BEETROOT
org.bukkit.Material.LEGACY_BEETROOT_BLOCK
org.bukkit.Material.LEGACY_BEETROOT_SEEDS
org.bukkit.Material.LEGACY_BEETROOT_SOUP
org.bukkit.Material.LEGACY_BIRCH_DOOR
org.bukkit.Material.LEGACY_BIRCH_DOOR_ITEM
org.bukkit.Material.LEGACY_BIRCH_FENCE
org.bukkit.Material.LEGACY_BIRCH_FENCE_GATE
org.bukkit.Material.LEGACY_BIRCH_WOOD_STAIRS
org.bukkit.Material.LEGACY_BLACK_GLAZED_TERRACOTTA
org.bukkit.Material.LEGACY_BLACK_SHULKER_BOX
org.bukkit.Material.LEGACY_BLAZE_POWDER
org.bukkit.Material.LEGACY_BLAZE_ROD
org.bukkit.Material.LEGACY_BLUE_GLAZED_TERRACOTTA
org.bukkit.Material.LEGACY_BLUE_SHULKER_BOX
org.bukkit.Material.LEGACY_BOAT
org.bukkit.Material.LEGACY_BOAT_ACACIA
org.bukkit.Material.LEGACY_BOAT_BIRCH
org.bukkit.Material.LEGACY_BOAT_DARK_OAK
org.bukkit.Material.LEGACY_BOAT_JUNGLE
org.bukkit.Material.LEGACY_BOAT_SPRUCE
org.bukkit.Material.LEGACY_BONE
org.bukkit.Material.LEGACY_BONE_BLOCK
org.bukkit.Material.LEGACY_BOOK
org.bukkit.Material.LEGACY_BOOK_AND_QUILL
org.bukkit.Material.LEGACY_BOOKSHELF
org.bukkit.Material.LEGACY_BOW
org.bukkit.Material.LEGACY_BOWL
org.bukkit.Material.LEGACY_BREAD
org.bukkit.Material.LEGACY_BREWING_STAND
org.bukkit.Material.LEGACY_BREWING_STAND_ITEM
org.bukkit.Material.LEGACY_BRICK
org.bukkit.Material.LEGACY_BRICK_STAIRS
org.bukkit.Material.LEGACY_BROWN_GLAZED_TERRACOTTA
org.bukkit.Material.LEGACY_BROWN_MUSHROOM
org.bukkit.Material.LEGACY_BROWN_SHULKER_BOX
org.bukkit.Material.LEGACY_BUCKET
org.bukkit.Material.LEGACY_BURNING_FURNACE
org.bukkit.Material.LEGACY_CACTUS
org.bukkit.Material.LEGACY_CAKE
org.bukkit.Material.LEGACY_CAKE_BLOCK
org.bukkit.Material.LEGACY_CARPET
org.bukkit.Material.LEGACY_CARROT
org.bukkit.Material.LEGACY_CARROT_ITEM
org.bukkit.Material.LEGACY_CARROT_STICK
org.bukkit.Material.LEGACY_CAULDRON
org.bukkit.Material.LEGACY_CAULDRON_ITEM
org.bukkit.Material.LEGACY_CHAINMAIL_BOOTS
org.bukkit.Material.LEGACY_CHAINMAIL_CHESTPLATE
org.bukkit.Material.LEGACY_CHAINMAIL_HELMET
org.bukkit.Material.LEGACY_CHAINMAIL_LEGGINGS
org.bukkit.Material.LEGACY_CHEST
org.bukkit.Material.LEGACY_CHORUS_FLOWER
org.bukkit.Material.LEGACY_CHORUS_FRUIT
org.bukkit.Material.LEGACY_CHORUS_FRUIT_POPPED
org.bukkit.Material.LEGACY_CHORUS_PLANT
org.bukkit.Material.LEGACY_CLAY
org.bukkit.Material.LEGACY_CLAY_BALL
org.bukkit.Material.LEGACY_CLAY_BRICK
org.bukkit.Material.LEGACY_COAL
org.bukkit.Material.LEGACY_COAL_BLOCK
org.bukkit.Material.LEGACY_COAL_ORE
org.bukkit.Material.LEGACY_COBBLE_WALL
org.bukkit.Material.LEGACY_COBBLESTONE
org.bukkit.Material.LEGACY_COBBLESTONE_STAIRS
org.bukkit.Material.LEGACY_COCOA
org.bukkit.Material.LEGACY_COMMAND
org.bukkit.Material.LEGACY_COMMAND_CHAIN
org.bukkit.Material.LEGACY_COMMAND_MINECART
org.bukkit.Material.LEGACY_COMMAND_REPEATING
org.bukkit.Material.LEGACY_COMPASS
org.bukkit.Material.LEGACY_CONCRETE
org.bukkit.Material.LEGACY_CONCRETE_POWDER
org.bukkit.Material.LEGACY_COOKED_BEEF
org.bukkit.Material.LEGACY_COOKED_CHICKEN
org.bukkit.Material.LEGACY_COOKED_FISH
org.bukkit.Material.LEGACY_COOKED_MUTTON
org.bukkit.Material.LEGACY_COOKED_RABBIT
org.bukkit.Material.LEGACY_COOKIE
org.bukkit.Material.LEGACY_CROPS
org.bukkit.Material.LEGACY_CYAN_GLAZED_TERRACOTTA
org.bukkit.Material.LEGACY_CYAN_SHULKER_BOX
org.bukkit.Material.LEGACY_DARK_OAK_DOOR
org.bukkit.Material.LEGACY_DARK_OAK_DOOR_ITEM
org.bukkit.Material.LEGACY_DARK_OAK_FENCE
org.bukkit.Material.LEGACY_DARK_OAK_FENCE_GATE
org.bukkit.Material.LEGACY_DARK_OAK_STAIRS
org.bukkit.Material.LEGACY_DAYLIGHT_DETECTOR
org.bukkit.Material.LEGACY_DAYLIGHT_DETECTOR_INVERTED
org.bukkit.Material.LEGACY_DEAD_BUSH
org.bukkit.Material.LEGACY_DETECTOR_RAIL
org.bukkit.Material.LEGACY_DIAMOND
org.bukkit.Material.LEGACY_DIAMOND_AXE
org.bukkit.Material.LEGACY_DIAMOND_BARDING
org.bukkit.Material.LEGACY_DIAMOND_BLOCK
org.bukkit.Material.LEGACY_DIAMOND_BOOTS
org.bukkit.Material.LEGACY_DIAMOND_CHESTPLATE
org.bukkit.Material.LEGACY_DIAMOND_HELMET
org.bukkit.Material.LEGACY_DIAMOND_HOE
org.bukkit.Material.LEGACY_DIAMOND_LEGGINGS
org.bukkit.Material.LEGACY_DIAMOND_ORE
org.bukkit.Material.LEGACY_DIAMOND_PICKAXE
org.bukkit.Material.LEGACY_DIAMOND_SPADE
org.bukkit.Material.LEGACY_DIAMOND_SWORD
org.bukkit.Material.LEGACY_DIODE
org.bukkit.Material.LEGACY_DIODE_BLOCK_OFF
org.bukkit.Material.LEGACY_DIODE_BLOCK_ON
org.bukkit.Material.LEGACY_DIRT
org.bukkit.Material.LEGACY_DISPENSER
org.bukkit.Material.LEGACY_DOUBLE_PLANT
org.bukkit.Material.LEGACY_DOUBLE_STEP
org.bukkit.Material.LEGACY_DOUBLE_STONE_SLAB2
org.bukkit.Material.LEGACY_DRAGON_EGG
org.bukkit.Material.LEGACY_DRAGONS_BREATH
org.bukkit.Material.LEGACY_DROPPER
org.bukkit.Material.LEGACY_EGG
org.bukkit.Material.LEGACY_ELYTRA
org.bukkit.Material.LEGACY_EMERALD
org.bukkit.Material.LEGACY_EMERALD_BLOCK
org.bukkit.Material.LEGACY_EMERALD_ORE
org.bukkit.Material.LEGACY_EMPTY_MAP
org.bukkit.Material.LEGACY_ENCHANTED_BOOK
org.bukkit.Material.LEGACY_ENCHANTMENT_TABLE
org.bukkit.Material.LEGACY_END_BRICKS
org.bukkit.Material.LEGACY_END_CRYSTAL
org.bukkit.Material.LEGACY_END_GATEWAY
org.bukkit.Material.LEGACY_END_ROD
org.bukkit.Material.LEGACY_ENDER_CHEST
org.bukkit.Material.LEGACY_ENDER_PEARL
org.bukkit.Material.LEGACY_ENDER_PORTAL
org.bukkit.Material.LEGACY_ENDER_PORTAL_FRAME
org.bukkit.Material.LEGACY_ENDER_STONE
org.bukkit.Material.LEGACY_EXP_BOTTLE
org.bukkit.Material.LEGACY_EXPLOSIVE_MINECART
org.bukkit.Material.LEGACY_EYE_OF_ENDER
org.bukkit.Material.LEGACY_FEATHER
org.bukkit.Material.LEGACY_FENCE
org.bukkit.Material.LEGACY_FENCE_GATE
org.bukkit.Material.LEGACY_FERMENTED_SPIDER_EYE
org.bukkit.Material.LEGACY_FIRE
org.bukkit.Material.LEGACY_FIREBALL
org.bukkit.Material.LEGACY_FIREWORK
org.bukkit.Material.LEGACY_FIREWORK_CHARGE
org.bukkit.Material.LEGACY_FISHING_ROD
org.bukkit.Material.LEGACY_FLINT
org.bukkit.Material.LEGACY_FLINT_AND_STEEL
org.bukkit.Material.LEGACY_FLOWER_POT
org.bukkit.Material.LEGACY_FLOWER_POT_ITEM
org.bukkit.Material.LEGACY_FROSTED_ICE
org.bukkit.Material.LEGACY_FURNACE
org.bukkit.Material.LEGACY_GHAST_TEAR
org.bukkit.Material.LEGACY_GLASS
org.bukkit.Material.LEGACY_GLASS_BOTTLE
org.bukkit.Material.LEGACY_GLOWING_REDSTONE_ORE
org.bukkit.Material.LEGACY_GLOWSTONE
org.bukkit.Material.LEGACY_GLOWSTONE_DUST
org.bukkit.Material.LEGACY_GOLD_AXE
org.bukkit.Material.LEGACY_GOLD_BARDING
org.bukkit.Material.LEGACY_GOLD_BLOCK
org.bukkit.Material.LEGACY_GOLD_BOOTS
org.bukkit.Material.LEGACY_GOLD_CHESTPLATE
org.bukkit.Material.LEGACY_GOLD_HELMET
org.bukkit.Material.LEGACY_GOLD_HOE
org.bukkit.Material.LEGACY_GOLD_INGOT
org.bukkit.Material.LEGACY_GOLD_LEGGINGS
org.bukkit.Material.LEGACY_GOLD_NUGGET
org.bukkit.Material.LEGACY_GOLD_ORE
org.bukkit.Material.LEGACY_GOLD_PICKAXE
org.bukkit.Material.LEGACY_GOLD_PLATE
org.bukkit.Material.LEGACY_GOLD_RECORD
org.bukkit.Material.LEGACY_GOLD_SPADE
org.bukkit.Material.LEGACY_GOLD_SWORD
org.bukkit.Material.LEGACY_GOLDEN_APPLE
org.bukkit.Material.LEGACY_GOLDEN_CARROT
org.bukkit.Material.LEGACY_GRASS
org.bukkit.Material.LEGACY_GRASS_PATH
org.bukkit.Material.LEGACY_GRAVEL
org.bukkit.Material.LEGACY_GRAY_GLAZED_TERRACOTTA
org.bukkit.Material.LEGACY_GRAY_SHULKER_BOX
org.bukkit.Material.LEGACY_GREEN_GLAZED_TERRACOTTA
org.bukkit.Material.LEGACY_GREEN_RECORD
org.bukkit.Material.LEGACY_GREEN_SHULKER_BOX
org.bukkit.Material.LEGACY_GRILLED_PORK
org.bukkit.Material.LEGACY_HARD_CLAY
org.bukkit.Material.LEGACY_HAY_BLOCK
org.bukkit.Material.LEGACY_HOPPER
org.bukkit.Material.LEGACY_HOPPER_MINECART
org.bukkit.Material.LEGACY_HUGE_MUSHROOM_1
org.bukkit.Material.LEGACY_HUGE_MUSHROOM_2
org.bukkit.Material.LEGACY_ICE
org.bukkit.Material.LEGACY_INK_SACK
org.bukkit.Material.LEGACY_IRON_AXE
org.bukkit.Material.LEGACY_IRON_BARDING
org.bukkit.Material.LEGACY_IRON_BLOCK
org.bukkit.Material.LEGACY_IRON_BOOTS
org.bukkit.Material.LEGACY_IRON_CHESTPLATE
org.bukkit.Material.LEGACY_IRON_DOOR
org.bukkit.Material.LEGACY_IRON_DOOR_BLOCK
org.bukkit.Material.LEGACY_IRON_FENCE
org.bukkit.Material.LEGACY_IRON_HELMET
org.bukkit.Material.LEGACY_IRON_HOE
org.bukkit.Material.LEGACY_IRON_INGOT
org.bukkit.Material.LEGACY_IRON_LEGGINGS
org.bukkit.Material.LEGACY_IRON_NUGGET
org.bukkit.Material.LEGACY_IRON_ORE
org.bukkit.Material.LEGACY_IRON_PICKAXE
org.bukkit.Material.LEGACY_IRON_PLATE
org.bukkit.Material.LEGACY_IRON_SPADE
org.bukkit.Material.LEGACY_IRON_SWORD
org.bukkit.Material.LEGACY_IRON_TRAPDOOR
org.bukkit.Material.LEGACY_ITEM_FRAME
org.bukkit.Material.LEGACY_JACK_O_LANTERN
org.bukkit.Material.LEGACY_JUKEBOX
org.bukkit.Material.LEGACY_JUNGLE_DOOR
org.bukkit.Material.LEGACY_JUNGLE_DOOR_ITEM
org.bukkit.Material.LEGACY_JUNGLE_FENCE
org.bukkit.Material.LEGACY_JUNGLE_FENCE_GATE
org.bukkit.Material.LEGACY_JUNGLE_WOOD_STAIRS
org.bukkit.Material.LEGACY_KNOWLEDGE_BOOK
org.bukkit.Material.LEGACY_LADDER
org.bukkit.Material.LEGACY_LAPIS_BLOCK
org.bukkit.Material.LEGACY_LAPIS_ORE
org.bukkit.Material.LEGACY_LAVA
org.bukkit.Material.LEGACY_LAVA_BUCKET
org.bukkit.Material.LEGACY_LEASH
org.bukkit.Material.LEGACY_LEATHER
org.bukkit.Material.LEGACY_LEATHER_BOOTS
org.bukkit.Material.LEGACY_LEATHER_CHESTPLATE
org.bukkit.Material.LEGACY_LEATHER_HELMET
org.bukkit.Material.LEGACY_LEATHER_LEGGINGS
org.bukkit.Material.LEGACY_LEAVES
org.bukkit.Material.LEGACY_LEAVES_2
org.bukkit.Material.LEGACY_LEVER
org.bukkit.Material.LEGACY_LIGHT_BLUE_GLAZED_TERRACOTTA
org.bukkit.Material.LEGACY_LIGHT_BLUE_SHULKER_BOX
org.bukkit.Material.LEGACY_LIME_GLAZED_TERRACOTTA
org.bukkit.Material.LEGACY_LIME_SHULKER_BOX
org.bukkit.Material.LEGACY_LINGERING_POTION
org.bukkit.Material.LEGACY_LOG
org.bukkit.Material.LEGACY_LOG_2
org.bukkit.Material.LEGACY_LONG_GRASS
org.bukkit.Material.LEGACY_MAGENTA_GLAZED_TERRACOTTA
org.bukkit.Material.LEGACY_MAGENTA_SHULKER_BOX
org.bukkit.Material.LEGACY_MAGMA
org.bukkit.Material.LEGACY_MAGMA_CREAM
org.bukkit.Material.LEGACY_MAP
org.bukkit.Material.LEGACY_MELON
org.bukkit.Material.LEGACY_MELON_BLOCK
org.bukkit.Material.LEGACY_MELON_SEEDS
org.bukkit.Material.LEGACY_MELON_STEM
org.bukkit.Material.LEGACY_MILK_BUCKET
org.bukkit.Material.LEGACY_MINECART
org.bukkit.Material.LEGACY_MOB_SPAWNER
org.bukkit.Material.LEGACY_MONSTER_EGG
org.bukkit.Material.LEGACY_MONSTER_EGGS
org.bukkit.Material.LEGACY_MOSSY_COBBLESTONE
org.bukkit.Material.LEGACY_MUSHROOM_SOUP
org.bukkit.Material.LEGACY_MUTTON
org.bukkit.Material.LEGACY_MYCEL
org.bukkit.Material.LEGACY_NAME_TAG
org.bukkit.Material.LEGACY_NETHER_BRICK
org.bukkit.Material.LEGACY_NETHER_BRICK_ITEM
org.bukkit.Material.LEGACY_NETHER_BRICK_STAIRS
org.bukkit.Material.LEGACY_NETHER_FENCE
org.bukkit.Material.LEGACY_NETHER_STALK
org.bukkit.Material.LEGACY_NETHER_STAR
org.bukkit.Material.LEGACY_NETHER_WART_BLOCK
org.bukkit.Material.LEGACY_NETHER_WARTS
org.bukkit.Material.LEGACY_NETHERRACK
org.bukkit.Material.LEGACY_NOTE_BLOCK
org.bukkit.Material.LEGACY_OBSERVER
org.bukkit.Material.LEGACY_OBSIDIAN
org.bukkit.Material.LEGACY_ORANGE_GLAZED_TERRACOTTA
org.bukkit.Material.LEGACY_ORANGE_SHULKER_BOX
org.bukkit.Material.LEGACY_PACKED_ICE
org.bukkit.Material.LEGACY_PAINTING
org.bukkit.Material.LEGACY_PAPER
org.bukkit.Material.LEGACY_PINK_GLAZED_TERRACOTTA
org.bukkit.Material.LEGACY_PINK_SHULKER_BOX
org.bukkit.Material.LEGACY_PISTON_BASE
org.bukkit.Material.LEGACY_PISTON_EXTENSION
org.bukkit.Material.LEGACY_PISTON_MOVING_PIECE
org.bukkit.Material.LEGACY_PISTON_STICKY_BASE
org.bukkit.Material.LEGACY_POISONOUS_POTATO
org.bukkit.Material.LEGACY_PORK
org.bukkit.Material.LEGACY_PORTAL
org.bukkit.Material.LEGACY_POTATO
org.bukkit.Material.LEGACY_POTATO_ITEM
org.bukkit.Material.LEGACY_POTION
org.bukkit.Material.LEGACY_POWERED_MINECART
org.bukkit.Material.LEGACY_POWERED_RAIL
org.bukkit.Material.LEGACY_PRISMARINE
org.bukkit.Material.LEGACY_PRISMARINE_CRYSTALS
org.bukkit.Material.LEGACY_PRISMARINE_SHARD
org.bukkit.Material.LEGACY_PUMPKIN
org.bukkit.Material.LEGACY_PUMPKIN_PIE
org.bukkit.Material.LEGACY_PUMPKIN_SEEDS
org.bukkit.Material.LEGACY_PUMPKIN_STEM
org.bukkit.Material.LEGACY_PURPLE_GLAZED_TERRACOTTA
org.bukkit.Material.LEGACY_PURPLE_SHULKER_BOX
org.bukkit.Material.LEGACY_PURPUR_BLOCK
org.bukkit.Material.LEGACY_PURPUR_DOUBLE_SLAB
org.bukkit.Material.LEGACY_PURPUR_PILLAR
org.bukkit.Material.LEGACY_PURPUR_SLAB
org.bukkit.Material.LEGACY_PURPUR_STAIRS
org.bukkit.Material.LEGACY_QUARTZ
org.bukkit.Material.LEGACY_QUARTZ_BLOCK
org.bukkit.Material.LEGACY_QUARTZ_ORE
org.bukkit.Material.LEGACY_QUARTZ_STAIRS
org.bukkit.Material.LEGACY_RABBIT
org.bukkit.Material.LEGACY_RABBIT_FOOT
org.bukkit.Material.LEGACY_RABBIT_HIDE
org.bukkit.Material.LEGACY_RABBIT_STEW
org.bukkit.Material.LEGACY_RAILS
org.bukkit.Material.LEGACY_RAW_BEEF
org.bukkit.Material.LEGACY_RAW_CHICKEN
org.bukkit.Material.LEGACY_RAW_FISH
org.bukkit.Material.LEGACY_RECORD_10
org.bukkit.Material.LEGACY_RECORD_11
org.bukkit.Material.LEGACY_RECORD_12
org.bukkit.Material.LEGACY_RECORD_3
org.bukkit.Material.LEGACY_RECORD_4
org.bukkit.Material.LEGACY_RECORD_5
org.bukkit.Material.LEGACY_RECORD_6
org.bukkit.Material.LEGACY_RECORD_7
org.bukkit.Material.LEGACY_RECORD_8
org.bukkit.Material.LEGACY_RECORD_9
org.bukkit.Material.LEGACY_RED_GLAZED_TERRACOTTA
org.bukkit.Material.LEGACY_RED_MUSHROOM
org.bukkit.Material.LEGACY_RED_NETHER_BRICK
org.bukkit.Material.LEGACY_RED_ROSE
org.bukkit.Material.LEGACY_RED_SANDSTONE
org.bukkit.Material.LEGACY_RED_SANDSTONE_STAIRS
org.bukkit.Material.LEGACY_RED_SHULKER_BOX
org.bukkit.Material.LEGACY_REDSTONE
org.bukkit.Material.LEGACY_REDSTONE_BLOCK
org.bukkit.Material.LEGACY_REDSTONE_COMPARATOR
org.bukkit.Material.LEGACY_REDSTONE_COMPARATOR_OFF
org.bukkit.Material.LEGACY_REDSTONE_COMPARATOR_ON
org.bukkit.Material.LEGACY_REDSTONE_LAMP_OFF
org.bukkit.Material.LEGACY_REDSTONE_LAMP_ON
org.bukkit.Material.LEGACY_REDSTONE_ORE
org.bukkit.Material.LEGACY_REDSTONE_TORCH_OFF
org.bukkit.Material.LEGACY_REDSTONE_TORCH_ON
org.bukkit.Material.LEGACY_REDSTONE_WIRE
org.bukkit.Material.LEGACY_ROTTEN_FLESH
org.bukkit.Material.LEGACY_SADDLE
org.bukkit.Material.LEGACY_SAND
org.bukkit.Material.LEGACY_SANDSTONE
org.bukkit.Material.LEGACY_SANDSTONE_STAIRS
org.bukkit.Material.LEGACY_SAPLING
org.bukkit.Material.LEGACY_SEA_LANTERN
org.bukkit.Material.LEGACY_SEEDS
org.bukkit.Material.LEGACY_SHEARS
org.bukkit.Material.LEGACY_SHIELD
org.bukkit.Material.LEGACY_SHULKER_SHELL
org.bukkit.Material.LEGACY_SIGN
org.bukkit.Material.LEGACY_SIGN_POST
org.bukkit.Material.LEGACY_SILVER_GLAZED_TERRACOTTA
org.bukkit.Material.LEGACY_SILVER_SHULKER_BOX
org.bukkit.Material.LEGACY_SKULL
org.bukkit.Material.LEGACY_SKULL_ITEM
org.bukkit.Material.LEGACY_SLIME_BALL
org.bukkit.Material.LEGACY_SLIME_BLOCK
org.bukkit.Material.LEGACY_SMOOTH_BRICK
org.bukkit.Material.LEGACY_SMOOTH_STAIRS
org.bukkit.Material.LEGACY_SNOW
org.bukkit.Material.LEGACY_SNOW_BALL
org.bukkit.Material.LEGACY_SNOW_BLOCK
org.bukkit.Material.LEGACY_SOIL
org.bukkit.Material.LEGACY_SOUL_SAND
org.bukkit.Material.LEGACY_SPECKLED_MELON
org.bukkit.Material.LEGACY_SPECTRAL_ARROW
org.bukkit.Material.LEGACY_SPIDER_EYE
org.bukkit.Material.LEGACY_SPLASH_POTION
org.bukkit.Material.LEGACY_SPONGE
org.bukkit.Material.LEGACY_SPRUCE_DOOR
org.bukkit.Material.LEGACY_SPRUCE_DOOR_ITEM
org.bukkit.Material.LEGACY_SPRUCE_FENCE
org.bukkit.Material.LEGACY_SPRUCE_FENCE_GATE
org.bukkit.Material.LEGACY_SPRUCE_WOOD_STAIRS
org.bukkit.Material.LEGACY_STAINED_CLAY
org.bukkit.Material.LEGACY_STAINED_GLASS
org.bukkit.Material.LEGACY_STAINED_GLASS_PANE
org.bukkit.Material.LEGACY_STANDING_BANNER
org.bukkit.Material.LEGACY_STATIONARY_LAVA
org.bukkit.Material.LEGACY_STATIONARY_WATER
org.bukkit.Material.LEGACY_STEP
org.bukkit.Material.LEGACY_STICK
org.bukkit.Material.LEGACY_STONE
org.bukkit.Material.LEGACY_STONE_AXE
org.bukkit.Material.LEGACY_STONE_BUTTON
org.bukkit.Material.LEGACY_STONE_HOE
org.bukkit.Material.LEGACY_STONE_PICKAXE
org.bukkit.Material.LEGACY_STONE_PLATE
org.bukkit.Material.LEGACY_STONE_SLAB2
org.bukkit.Material.LEGACY_STONE_SPADE
org.bukkit.Material.LEGACY_STONE_SWORD
org.bukkit.Material.LEGACY_STORAGE_MINECART
org.bukkit.Material.LEGACY_STRING
org.bukkit.Material.LEGACY_STRUCTURE_BLOCK
org.bukkit.Material.LEGACY_STRUCTURE_VOID
org.bukkit.Material.LEGACY_SUGAR
org.bukkit.Material.LEGACY_SUGAR_CANE
org.bukkit.Material.LEGACY_SUGAR_CANE_BLOCK
org.bukkit.Material.LEGACY_SULPHUR
org.bukkit.Material.LEGACY_THIN_GLASS
org.bukkit.Material.LEGACY_TIPPED_ARROW
org.bukkit.Material.LEGACY_TNT
org.bukkit.Material.LEGACY_TORCH
org.bukkit.Material.LEGACY_TOTEM
org.bukkit.Material.LEGACY_TRAP_DOOR
org.bukkit.Material.LEGACY_TRAPPED_CHEST
org.bukkit.Material.LEGACY_TRIPWIRE
org.bukkit.Material.LEGACY_TRIPWIRE_HOOK
org.bukkit.Material.LEGACY_VINE
org.bukkit.Material.LEGACY_WALL_BANNER
org.bukkit.Material.LEGACY_WALL_SIGN
org.bukkit.Material.LEGACY_WATCH
org.bukkit.Material.LEGACY_WATER
org.bukkit.Material.LEGACY_WATER_BUCKET
org.bukkit.Material.LEGACY_WATER_LILY
org.bukkit.Material.LEGACY_WEB
org.bukkit.Material.LEGACY_WHEAT
org.bukkit.Material.LEGACY_WHITE_GLAZED_TERRACOTTA
org.bukkit.Material.LEGACY_WHITE_SHULKER_BOX
org.bukkit.Material.LEGACY_WOOD
org.bukkit.Material.LEGACY_WOOD_AXE
org.bukkit.Material.LEGACY_WOOD_BUTTON
org.bukkit.Material.LEGACY_WOOD_DOOR
org.bukkit.Material.LEGACY_WOOD_DOUBLE_STEP
org.bukkit.Material.LEGACY_WOOD_HOE
org.bukkit.Material.LEGACY_WOOD_PICKAXE
org.bukkit.Material.LEGACY_WOOD_PLATE
org.bukkit.Material.LEGACY_WOOD_SPADE
org.bukkit.Material.LEGACY_WOOD_STAIRS
org.bukkit.Material.LEGACY_WOOD_STEP
org.bukkit.Material.LEGACY_WOOD_SWORD
org.bukkit.Material.LEGACY_WOODEN_DOOR
org.bukkit.Material.LEGACY_WOOL
org.bukkit.Material.LEGACY_WORKBENCH
org.bukkit.Material.LEGACY_WRITTEN_BOOK
org.bukkit.Material.LEGACY_YELLOW_FLOWER
org.bukkit.Material.LEGACY_YELLOW_GLAZED_TERRACOTTA
org.bukkit.Material.LEGACY_YELLOW_SHULKER_BOX
org.bukkit.plugin.PluginAwareness.Flags.UTF8
all plugins are now assumed to be UTF-8 aware.