# 已过时的 API

## 目录

- Terminally Deprecated
- 接口
- 类
- 枚举
- Annotation Interfaces
- 字段
- 方法
- 构造器
- 枚举常量

- Terminally Deprecated Elements
  元素
  说明
  org.bukkit.block.banner.PatternType.getByIdentifier(String)
  org.bukkit.block.banner.PatternType.getIdentifier()
  魔法值
  org.bukkit.entity.Entity.setLastDamageCause(EntityDamageEvent)
  此方法仅供内部使用, 将被移除
  org.bukkit.event.entity.EntityCombustEvent.setDuration(int)
  duration 现在为浮点数
  org.bukkit.event.entity.EntityDamageByBlockEvent(Block, Entity, EntityDamageEvent.DamageCause, double)
  org.bukkit.event.entity.EntityDamageByBlockEvent(Block, Entity, EntityDamageEvent.DamageCause, Map<EntityDamageEvent.DamageModifier, Double>, Map<EntityDamageEvent.DamageModifier, ? extends Function<? super Double, Double>>)
  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.EntityDamageEvent(Entity, EntityDamageEvent.DamageCause, double)
  org.bukkit.event.entity.EntityDamageEvent(Entity, EntityDamageEvent.DamageCause, Map<EntityDamageEvent.DamageModifier, Double>, Map<EntityDamageEvent.DamageModifier, ? extends Function<? super Double, Double>>)
  org.bukkit.inventory.meta.ItemMeta.getLocalizedName()
  属性不再存在
  org.bukkit.inventory.meta.ItemMeta.hasLocalizedName()
  属性不再存在
  org.bukkit.inventory.meta.ItemMeta.setLocalizedName(String)
  属性不再存在
  org.bukkit.potion.PotionData
  Upgraded / extended potions are now their own `PotionType` use them instead.
  org.bukkit.Registry.SimpleRegistry.getType()
  org.bukkit.Tag.ITEMS_TOOLS
  removed in Minecraft 1.20.5. Do not use. Will be removed at a later date. Until then, this constant now acts as a reference to `Tag.ITEMS_BREAKS_DECORATED_POTS` which largely shares the same contents of the old "minecraft:tools" tag.
  org.bukkit.UnsafeValues.getBlockTranslationKey(Material)
  org.bukkit.UnsafeValues.getCreativeCategory(Material)
  org.bukkit.UnsafeValues.getDefaultAttributeModifiers(Material, EquipmentSlot)
  org.bukkit.UnsafeValues.getInternalPotionData(NamespacedKey)
  org.bukkit.UnsafeValues.getItemTranslationKey(Material)

- Deprecated 接口
  接口
  说明
  org.bukkit.block.Bed
  除材质本身之外, 本状态未提供有用的信息
  org.bukkit.block.SuspiciousSand
  org.bukkit.entity.Fish
  赞成使用 `FishHook`
  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
  现在使用 `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.potion.PotionType.InternalPotionData
  请勿使用, 该接口将被移除, 插件将无法运作
  org.bukkit.UnsafeValues
  org.bukkit.util.Consumer
  请使用 `Consumer`
  org.bukkit.util.OldEnum
  only for backwards compatibility.

- Deprecated 类
  类
  说明
  org.bukkit.enchantments.EnchantmentWrapper
  仅为保障向后兼容性, EnchantmentWrapper 已不再使用
  org.bukkit.event.entity.EntityCreatePortalEvent
  请使用 `PortalCreateEvent`
  org.bukkit.event.player.AsyncPlayerChatPreviewEvent
  chat previews have been removed
  org.bukkit.event.player.PlayerBucketFishEvent
  Use the more generic `PlayerBucketEntityEvent`
  org.bukkit.event.player.PlayerChatEvent
  这个事件将被主线程触发，允许使用所有的 Bukkit API，不像`AsyncPlayerChatEvent`.

  监听这个事件迫使聊天等待主线程，会导致聊天消息延迟展现。建议使用线程安全的`AsyncPlayerChatEvent`

  org.bukkit.event.player.PlayerChatTabCompleteEvent
  因客户端的改变(1.13更新较大幅度改善了命令输入的体验), 该事件不再触发. 1.13+版本可以参考:`PlayerCommandSendEvent`
  org.bukkit.event.player.PlayerPickupItemEvent
  `EntityPickupItemEvent`
  org.bukkit.event.player.PlayerPreLoginEvent
  这个事件使登录线程同步; 建议使用`AsyncPlayerPreLoginEvent`.
  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
  所有关于MaterialData的用法已过时，并且将来会被移除. 请使用 `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
  请使用 `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.PotionData
  Upgraded / extended potions are now their own `PotionType` use them instead.
  org.bukkit.potion.PotionEffectTypeWrapper
  仅为保障向后兼容性, PotionEffectTypeWrapper 已不再使用.
  org.bukkit.scoreboard.Criterias
  应使用 `Criteria` 内定义的常量
  org.bukkit.StructureType
  This class does not represent the structures of a world well. Use `Structure` or `StructureType` instead.

- Deprecated 枚举
  枚举
  说明
  org.bukkit.block.data.type.Switch.Face
  请使用 `FaceAttachable.AttachedFace`
  org.bukkit.entity.Evoker.Spell
  将来 Minecraft 会有更多的可施法的生物
  org.bukkit.entity.Horse.Variant
  不同的种类对应不同的类.
  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
  这个API被废弃了，具体见后面的网址，很快就要被移除了，就不深入解释了.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 this thread for more information.
  org.bukkit.scoreboard.NameTagVisibility
  被 `Team.OptionStatus` 取代
  org.bukkit.SkullType
  现在(Bukkit 1.13版本及以上)不同种类的头颅都有他们自己的常量了.
  org.bukkit.TreeSpecies
  已弃用, see usage methods for replacement(s)

- Deprecated Annotation Interfaces
  注解
  说明
  org.bukkit.UndefinedNullability
  This should generally not be used in any new API code as it suggests a bad API design.

- Deprecated 字段
  字段
  说明
  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.FeatureFlag.UPDATE_1_20
  not available since 1.20
  org.bukkit.FeatureFlag.UPDATE_121
  not available since 1.21
  org.bukkit.GameEvent.BLOCK_PRESS
  org.bukkit.GameEvent.BLOCK_SWITCH
  org.bukkit.GameEvent.BLOCK_UNPRESS
  org.bukkit.GameEvent.BLOCK_UNSWITCH
  org.bukkit.GameEvent.DISPENSE_FAIL
  org.bukkit.GameEvent.DRINKING_FINISH
  org.bukkit.GameEvent.ELYTRA_FREE_FALL
  org.bukkit.GameEvent.ENTITY_DAMAGED
  org.bukkit.GameEvent.ENTITY_DYING
  org.bukkit.GameEvent.ENTITY_KILLED
  org.bukkit.GameEvent.ENTITY_ROAR
  org.bukkit.GameEvent.ENTITY_SHAKE
  org.bukkit.GameEvent.MOB_INTERACT
  org.bukkit.GameEvent.PISTON_CONTRACT
  org.bukkit.GameEvent.PISTON_EXTEND
  org.bukkit.GameEvent.RAVAGER_ROAR
  org.bukkit.GameEvent.RING_BELL
  org.bukkit.GameEvent.SHULKER_CLOSE
  org.bukkit.GameEvent.SHULKER_OPEN
  org.bukkit.GameEvent.WOLF_SHAKING
  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.persistence.PersistentDataType.TAG_CONTAINER_ARRAY
  Use `PersistentDataType.LIST`'s `ListPersistentDataTypeProvider.dataContainers()` instead as `ListPersistentDataType`s offer full support for primitive types, such as the `PersistentDataContainer`.
  org.bukkit.Tag.AXOLOTL_TEMPT_ITEMS
  use `Tag.ITEMS_AXOLOTL_FOOD`
  org.bukkit.Tag.CARPETS
  `Tag.WOOL_CARPETS`.
  org.bukkit.Tag.ENTITY_TYPES_DEFLECTS_ARROWS
  use `Tag.ENTITY_TYPES_DEFLECTS_PROJECTILES`
  org.bukkit.Tag.FOX_FOOD
  use `Tag.ITEMS_FOX_FOOD`
  org.bukkit.Tag.ITEMS_TOOLS
  removed in Minecraft 1.20.5. Do not use. Will be removed at a later date. Until then, this constant now acts as a reference to `Tag.ITEMS_BREAKS_DECORATED_POTS` which largely shares the same contents of the old "minecraft:tools" tag.
  org.bukkit.Tag.PIGLIN_FOOD
  use `Tag.ITEMS_PIGLIN_FOOD`

- Deprecated 方法
  方法
  说明
  net.md_5.bungee.api.chat.BaseComponent.duplicateWithoutFormatting()
  不鼓励使用本 API, 建议使用传统克隆副本
  net.md_5.bungee.api.chat.HoverEvent.getValue()
  net.md_5.bungee.api.ChatColor.name()
  holdover from when this class was an enum
  net.md_5.bungee.api.ChatColor.ordinal()
  holdover from when this class was an enum
  net.md_5.bungee.api.ChatColor.valueOf(String)
  holdover from when this class was an enum
  net.md_5.bungee.api.ChatColor.values()
  holdover from when this class was an enum
  org.bukkit.Art.getById(int)
  Magic value
  org.bukkit.Art.getId()
  Magic value
  org.bukkit.attribute.AttributeModifier.getSlot()
  请使用 `AttributeModifier.getSlotGroup()`
  org.bukkit.attribute.AttributeModifier.getUniqueId()
  属性现通过 key 区分
  org.bukkit.BanEntry.getTarget()
  参见 `BanEntry.getBanTarget()`
  org.bukkit.BanList.addBan(String, String, Date, String)
  参见 `BanList.addBan(Object, String, Date, String)`
  org.bukkit.BanList.getBanEntries()
  该方法返回了一个形参化类的原始使用, 推荐使用带泛型参数的 `BanList.getEntries()`
  org.bukkit.BanList.getBanEntry(String)
  参见 `BanList.getBanEntry(Object)`
  org.bukkit.BanList.isBanned(String)
  参见 `BanList.isBanned(Object)`
  org.bukkit.BanList.pardon(String)
  参见 `BanList.pardon(Object)`
  org.bukkit.block.banner.PatternType.getByIdentifier(String)
  org.bukkit.block.banner.PatternType.getIdentifier()
  魔法值
  org.bukkit.block.Block.getData()
  不安全的参数
  org.bukkit.block.BlockState.getRawData()
  不安全的参数
  org.bukkit.block.BlockState.setRawData(byte)
  不安全的参数
  org.bukkit.block.BlockType.asMaterial()
  only for internal use
  org.bukkit.block.CreatureSpawner.getCreatureTypeName()
  不安全的参数，请使用`BaseSpawner.getSpawnedType()`.
  org.bukkit.block.CreatureSpawner.setCreatureTypeByName(String)
  不安全的参数，请使用 `BaseSpawner.setSpawnedType(org.bukkit.entity.EntityType)`.
  org.bukkit.block.data.type.Switch.getFace()
  请使用 `FaceAttachable.getAttachedFace()`
  org.bukkit.block.data.type.Switch.setFace(Switch.Face)
  请使用 `FaceAttachable.getAttachedFace()`
  org.bukkit.block.DecoratedPot.getShards()
  in favor of `DecoratedPot.getSherds()`
  org.bukkit.block.PistonMoveReaction.getById(int)
  不安全的参数
  org.bukkit.block.PistonMoveReaction.getId()
  不安全的参数
  org.bukkit.block.Sign.getColor()
  A sign may have multiple writable sides now. Use `Sign.getSide(Side)` and `Colorable.getColor()`.
  org.bukkit.block.Sign.getLine(int)
  告示牌现在多面可写. 请使用 `Sign.getSide(Side)` 和 `SignSide.getLines()`.
  org.bukkit.block.Sign.getLines()
  告示牌现在多面可写. 请使用 `Sign.getSide(Side)` 和 `SignSide.getLines()`.
  org.bukkit.block.Sign.isEditable()
  请使用 `Sign.isWaxed()`
  org.bukkit.block.Sign.isGlowingText()
  A sign may have multiple writable sides now. Use `Sign.getSide(Side)` and `SignSide.isGlowingText()`.
  org.bukkit.block.Sign.setColor(DyeColor)
  A sign may have multiple writable sides now. Use `Sign.getSide(Side)` and `Colorable.setColor(org.bukkit.DyeColor)`.
  org.bukkit.block.Sign.setEditable(boolean)
  请使用 `Sign.isWaxed()`
  org.bukkit.block.Sign.setGlowingText(boolean)
  A sign may have multiple writable sides now. Use `Sign.getSide(Side)` and `SignSide.setGlowingText(boolean)`.
  org.bukkit.block.Sign.setLine(int, String)
  告示牌现在多面可写. 请使用 `Sign.getSide(Side)` 和 `SignSide.getLines()`.
  org.bukkit.block.Skull.getOwner()
  请查阅 `Skull.getOwningPlayer()`.
  org.bukkit.block.Skull.getRotation()
  请使用 `BlockData`
  org.bukkit.block.Skull.getSkullType()
  请检查 `Material` 类型
  org.bukkit.block.Skull.setOwner(String)
  请查阅 `Skull.setOwningPlayer(org.bukkit.OfflinePlayer)`.
  org.bukkit.block.Skull.setRotation(BlockFace)
  请使用 `BlockData`
  org.bukkit.block.Skull.setSkullType(SkullType)
  请检查 `Material` 类型
  org.bukkit.boss.BossBar.hide()
  请使用`BossBar.setVisible(boolean)`
  org.bukkit.boss.BossBar.show()
  请使用`BossBar.setVisible(boolean)`
  org.bukkit.Bukkit.banIP(String)
  参见 `Bukkit.banIP(InetAddress)`
  org.bukkit.Bukkit.getAmbientSpawnLimit()
  建议使用 `Bukkit.getSpawnLimit(SpawnCategory)`
  org.bukkit.Bukkit.getAnimalSpawnLimit()
  建议使用 `Bukkit.getSpawnLimit(SpawnCategory)`
  org.bukkit.Bukkit.getMap(int)
  不安全的参数
  org.bukkit.Bukkit.getMonsterSpawnLimit()
  建议使用 `Bukkit.getSpawnLimit(SpawnCategory)`
  org.bukkit.Bukkit.getOfflinePlayer(String)
  由于玩家名在某个会话后(某次游戏后)不再唯一, 应使用uuid作为唯一标识来持久化存储用户. (译注:正版玩家更改它们的玩家名后,其uuid不会改变,其他正版玩家可以使用这些玩家的曾用名, 可能会出现同一玩家名对应两个或多个不同玩家的情况)
  org.bukkit.Bukkit.getTicksPerAmbientSpawns()
  建议使用 `Bukkit.getTicksPerSpawns(SpawnCategory)`
  org.bukkit.Bukkit.getTicksPerAnimalSpawns()
  建议使用 `Bukkit.getTicksPerSpawns(SpawnCategory)`
  org.bukkit.Bukkit.getTicksPerMonsterSpawns()
  建议使用 `Bukkit.getTicksPerSpawns(SpawnCategory)`
  org.bukkit.Bukkit.getTicksPerWaterAmbientSpawns()
  建议使用 `Bukkit.getTicksPerSpawns(SpawnCategory)`
  org.bukkit.Bukkit.getTicksPerWaterSpawns()
  建议使用 `Bukkit.getTicksPerSpawns(SpawnCategory)`
  org.bukkit.Bukkit.getTicksPerWaterUndergroundCreatureSpawns()
  建议使用 `Bukkit.getTicksPerSpawns(SpawnCategory)`
  org.bukkit.Bukkit.getUnsafe()
  org.bukkit.Bukkit.getWaterAmbientSpawnLimit()
  建议使用 `Bukkit.getSpawnLimit(SpawnCategory)`
  org.bukkit.Bukkit.getWaterAnimalSpawnLimit()
  建议使用 `Bukkit.getSpawnLimit(SpawnCategory)`
  org.bukkit.Bukkit.getWaterUndergroundCreatureSpawnLimit()
  Deprecated in favor of `Bukkit.getSpawnLimit(SpawnCategory)`
  org.bukkit.Bukkit.shouldSendChatPreviews()
  chat previews have been removed
  org.bukkit.Bukkit.unbanIP(String)
  参见 `Bukkit.banIP(InetAddress)`
  org.bukkit.ChunkSnapshot.getBiome(int, int)
  biomes are now 3-dimensional
  org.bukkit.ChunkSnapshot.getData(int, int, int)
  不安全的参数
  org.bukkit.ChunkSnapshot.getRawBiomeTemperature(int, int)
  biomes are now 3-dimensional
  org.bukkit.CoalType.getByData(byte)
  魔法值
  org.bukkit.CoalType.getData()
  魔法值
  org.bukkit.command.Command.getPermissionMessage()
  自1.13版本, 权限消息对玩家执行的命令已不再可用, 因为没有执行相关命令的权限的客户端不知晓其存在性, 因此不会向服务端发送执行的命令. 此消息将只能在控制台上看到, 或命令使用 `Bukkit.dispatchCommand(CommandSender, String)` 执行时也能看到.
  org.bukkit.command.Command.setPermissionMessage(String)
  自1.13版本, 权限消息对玩家执行的命令已不再可用, 因为没有执行相关命令的权限的客户端不知晓其存在性, 因此不会向服务端发送执行的命令. 此消息将只能在控制台上看到, 或命令使用 `Bukkit.dispatchCommand(CommandSender, String)` 执行时也能看到.
  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)
  不安全的参数
  org.bukkit.CropState.getData()
  不安全的参数
  org.bukkit.Difficulty.getByValue(int)
  不安全的参数
  org.bukkit.Difficulty.getValue()
  不安全的参数
  org.bukkit.DyeColor.getByDyeData(byte)
  不安全的参数
  org.bukkit.DyeColor.getByWoolData(byte)
  魔法值
  org.bukkit.DyeColor.getDyeData()
  魔法值
  org.bukkit.DyeColor.getWoolData()
  不安全的参数
  org.bukkit.DyeColor.legacyValueOf(String)
  legacy use only
  org.bukkit.Effect.getById(int)
  不安全的参数
  org.bukkit.Effect.getId()
  不安全的参数
  org.bukkit.enchantments.Enchantment.getByKey(NamespacedKey)
  仅为保障作向后兼容性, 请使用 `Registry.get(NamespacedKey)` instead
  org.bukkit.enchantments.Enchantment.getByName(String)
  这些附魔的命名简直糟透了，建议使用 `Enchantment.getByKey(org.bukkit.NamespacedKey)`.
  org.bukkit.enchantments.Enchantment.getItemTarget()
  附魔分组现由标签管理, 而非分类
  org.bukkit.enchantments.Enchantment.getName()
  这些附魔的命名简直糟透了, 建议使用 `Keyed.getKey()`.
  org.bukkit.enchantments.Enchantment.isCursed()
  诅咒附魔不再是特殊的. 当且仅当附魔为`Enchantment.BINDING_CURSE` 或 `Enchantment.VANISHING_CURSE` 时才会返回true
  org.bukkit.enchantments.Enchantment.isTreasure()
  附魔类型现由标签管理
  org.bukkit.enchantments.Enchantment.values()
  请使用 `Registry.ENCHANTMENT.iterator()`
  org.bukkit.entity.AbstractArrow.getKnockbackStrength()
  a function of the firing weapon
  org.bukkit.entity.AbstractArrow.setKnockbackStrength(int)
  a function of the firing weapon
  org.bukkit.entity.AbstractArrow.setShotFromCrossbow(boolean)
  a function of the firing weapon instead
  org.bukkit.entity.AbstractHorse.getVariant()
  different variants are different classes
  org.bukkit.entity.AbstractHorse.setVariant(Horse.Variant)
  you are required to spawn a different entity
  org.bukkit.entity.AbstractSkeleton.getSkeletonType()
  应检查这是什么类实例
  org.bukkit.entity.AbstractSkeleton.setSkeletonType(Skeleton.SkeletonType)
  Must spawn a new subtype variant
  org.bukkit.entity.Ageable.canBreed()
  另请参阅 `Breedable.canBreed()`
  org.bukkit.entity.Ageable.getAgeLock()
  另请参阅 `Breedable.getAgeLock()`
  org.bukkit.entity.Ageable.setAgeLock(boolean)
  另请参阅 `Breedable.setAgeLock(boolean)`
  org.bukkit.entity.Ageable.setBreed(boolean)
  另请参阅 `Breedable.canBreed()`
  org.bukkit.entity.AreaEffectCloud.getBasePotionData()
  Upgraded / extended potions are now their own `PotionType` use `AreaEffectCloud.getBasePotionType()` instead.
  org.bukkit.entity.AreaEffectCloud.setBasePotionData(PotionData)
  Upgraded / extended potions are now their own `PotionType` use `AreaEffectCloud.setBasePotionType(org.bukkit.potion.PotionType)` instead.
  org.bukkit.entity.ArmorStand.getBoots()
  建议使用 `EntityEquipment.getBoots()`
  org.bukkit.entity.ArmorStand.getChestplate()
  建议使用 `EntityEquipment.getChestplate()`
  org.bukkit.entity.ArmorStand.getHelmet()
  建议使用 `EntityEquipment.getHelmet()`
  org.bukkit.entity.ArmorStand.getItemInHand()
  建议使用 `EntityEquipment.getItemInHand()`
  org.bukkit.entity.ArmorStand.getLeggings()
  建议使用 `EntityEquipment.getLeggings()`
  org.bukkit.entity.ArmorStand.setBoots(ItemStack)
  建议使用 `EntityEquipment.setBoots(org.bukkit.inventory.ItemStack)`
  org.bukkit.entity.ArmorStand.setChestplate(ItemStack)
  建议使用 `EntityEquipment.setChestplate(org.bukkit.inventory.ItemStack)`
  org.bukkit.entity.ArmorStand.setHelmet(ItemStack)
  建议使用 `EntityEquipment.setHelmet(org.bukkit.inventory.ItemStack)`
  org.bukkit.entity.ArmorStand.setItemInHand(ItemStack)
  建议使用 `EntityEquipment.setItemInHand(org.bukkit.inventory.ItemStack)`
  org.bukkit.entity.ArmorStand.setLeggings(ItemStack)
  建议使用 `EntityEquipment.setLeggings(org.bukkit.inventory.ItemStack)`
  org.bukkit.entity.Arrow.getBasePotionData()
  Upgraded / extended potions are now their own `PotionType` use `Arrow.getBasePotionType()` instead.
  org.bukkit.entity.Arrow.setBasePotionData(PotionData)
  Upgraded / extended potions are now their own `PotionType` use `Arrow.setBasePotionType(org.bukkit.potion.PotionType)` instead.
  org.bukkit.entity.Boat.getMaxSpeed()
  船是复杂的,其中许多方法不能在多个版本中正常的工作.
  org.bukkit.entity.Boat.getOccupiedDeceleration()
  船是复杂的,其中许多方法不能在多个版本中正常的工作.
  org.bukkit.entity.Boat.getUnoccupiedDeceleration()
  船是复杂的,其中许多方法不能在多个版本中正常的工作.
  org.bukkit.entity.Boat.getWoodType()
  建议使用 `Boat.getBoatType()`
  org.bukkit.entity.Boat.getWorkOnLand()
  船是复杂的,其中许多方法不能在多个版本中正常的工作.
  org.bukkit.entity.Boat.setMaxSpeed(double)
  船是复杂的,其中许多方法不能在多个版本中正常的工作.
  org.bukkit.entity.Boat.setOccupiedDeceleration(double)
  船是复杂的,其中许多方法不能在多个版本中正常的工作.
  org.bukkit.entity.Boat.setUnoccupiedDeceleration(double)
  船是复杂的,其中许多方法不能在多个版本中正常的工作.
  org.bukkit.entity.Boat.setWoodType(TreeSpecies)
  建议使用 `Boat.setBoatType(Type)`
  org.bukkit.entity.Boat.setWorkOnLand(boolean)
  船是复杂的,其中许多方法不能在多个版本中正常的工作.
  org.bukkit.entity.Cat.Type.valueOf(String)
  only for backwards compatibility, use `Registry.get(NamespacedKey)` instead.
  org.bukkit.entity.Cat.Type.values()
  use `Iterable.iterator()`.
  org.bukkit.entity.Damageable.getMaxHealth()
  请使用 `Attribute.GENERIC_MAX_HEALTH`.
  org.bukkit.entity.Damageable.resetMaxHealth()
  请使用 `Attribute.GENERIC_MAX_HEALTH`.
  org.bukkit.entity.Damageable.setMaxHealth(double)
  请使用 `Attribute.GENERIC_MAX_HEALTH`.
  org.bukkit.entity.Endermite.isPlayerSpawned()
  本功能不再存在(自1.17版本起)
  org.bukkit.entity.Endermite.setPlayerSpawned(boolean)
  本功能不再存在(自1.17版本起)
  org.bukkit.entity.Entity.getPassenger()
  实体可能有多名乘客. 请使用 `Entity.getPassengers()`
  org.bukkit.entity.Entity.setLastDamageCause(EntityDamageEvent)
  此方法仅供内部使用, 将被移除
  org.bukkit.entity.Entity.setPassenger(Entity)
  实体可能有多名乘客. 请使用 `Entity.addPassenger(org.bukkit.entity.Entity)`
  org.bukkit.entity.EntityType.fromId(int)
  不安全的参数
  org.bukkit.entity.EntityType.fromName(String)
  不安全的参数
  org.bukkit.entity.EntityType.getName()
  不安全的参数
  org.bukkit.entity.EntityType.getTypeId()
  不安全的参数
  org.bukkit.entity.Evoker.getCurrentSpell()
  将来 Minecraft 会有更多的可施法的生物
  org.bukkit.entity.Evoker.setCurrentSpell(Evoker.Spell)
  将来 Minecraft 会有更多的可施法的生物
  org.bukkit.entity.FallingBlock.getMaterial()
  请使用 `FallingBlock.getBlockData()`
  org.bukkit.entity.Fireball.getDirection()
  badly named method, returns the value of `Fireball.getAcceleration()`
  org.bukkit.entity.FishHook.getBiteChance()
  Minecraft新版本中已无效果
  org.bukkit.entity.FishHook.setBiteChance(double)
  has no effect in newer Minecraft versions
  org.bukkit.entity.Frog.Variant.valueOf(String)
  only for backwards compatibility, use `Registry.get(NamespacedKey)` instead.
  org.bukkit.entity.Frog.Variant.values()
  use `Iterable.iterator()`.
  org.bukkit.entity.Guardian.isElder()
  应检测此实例是否为`ElderGuardian` (entity instanceof ElderGuardian)
  org.bukkit.entity.Guardian.setElder(boolean)
  必须生成新的 `ElderGuardian`
  org.bukkit.entity.Horse.isCarryingChest()
  请参阅 `ChestedHorse`
  org.bukkit.entity.Horse.setCarryingChest(boolean)
  请参阅 `ChestedHorse`
  org.bukkit.entity.HumanEntity.getItemInHand()
  人类现能双持, 请使用 `PlayerInventory` 中更明确的方法
  org.bukkit.entity.HumanEntity.getShoulderEntityLeft()
  Bukkit中目前还没有关于序列化实体的语义(格式)的良好定义. 请谨慎使用.
  org.bukkit.entity.HumanEntity.getShoulderEntityRight()
  Bukkit中目前还没有关于序列化实体的语义(格式)的良好定义. 请谨慎使用.
  org.bukkit.entity.HumanEntity.setItemInHand(ItemStack)
  人类现能双持, 请使用 `PlayerInventory` 中更明确的方法
  org.bukkit.entity.HumanEntity.setShoulderEntityLeft(Entity)
  Bukkit中目前还没有关于序列化实体的语义(格式)的良好定义. 请谨慎使用.
  org.bukkit.entity.HumanEntity.setShoulderEntityRight(Entity)
  Bukkit中目前还没有关于序列化实体的语义(格式)的良好定义. 请谨慎使用.
  org.bukkit.entity.LightningStrike.Spigot.isSilent()
  org.bukkit.entity.LivingEntity.addPotionEffect(PotionEffect, boolean)
  由于现已支持多个同种类型的药水效果, 没必要强制添加.

  译注:在某次版本更新后, Minecraft 自身支持了多个同种药水效果, 效果弱的会被隐藏; 但为兼容性考虑, 如确有覆盖效果需求的, 还是指定force为true

  org.bukkit.entity.LivingEntity.getCategory()
  实体分组现在由标签管理，而不是类别
  org.bukkit.entity.Ocelot.getCatType()
  猫现在是单独的实体
  org.bukkit.entity.Ocelot.setCatType(Ocelot.Type)
  猫现在是单独的实体
  org.bukkit.entity.Ocelot.Type.getId()
  不安全的参数
  org.bukkit.entity.Ocelot.Type.getType(int)
  不安全的参数
  org.bukkit.entity.PiglinAbstract.isBaby()
  see `Ageable.isAdult()`
  org.bukkit.entity.PiglinAbstract.setBaby(boolean)
  see `Ageable.setBaby()` and `Ageable.setAdult()`
  org.bukkit.entity.Player.getBedSpawnLocation()
  Misleading name. This method also returns the location of respawn anchors.
  org.bukkit.entity.Player.hidePlayer(Player)
  另请参阅 `Player.hidePlayer(Plugin, Player)`
  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.playEffect(Location, Effect, int)
  不安全的参数
  org.bukkit.entity.Player.playNote(Location, byte, byte)
  不安全的参数
  org.bukkit.entity.Player.sendBlockChange(Location, Material, byte)
  不安全的参数
  org.bukkit.entity.Player.sendBlockChanges(Collection<BlockState>, boolean)
  suppressLightUpdates is not functional in versions greater than 1.19.4
  org.bukkit.entity.Player.sendTitle(String, String)
  API行为有所改变
  org.bukkit.entity.Player.setBedSpawnLocation(Location)
  Misleading name. This method sets the player's respawn location more generally and is not limited to beds.
  org.bukkit.entity.Player.setBedSpawnLocation(Location, boolean)
  Misleading name. This method sets the player's respawn location more generally and is not limited to beds.
  org.bukkit.entity.Player.setTexturePack(String)
  Minecraft已经不使用材质包了,应该用`Player.setResourcePack(String)`设置资源包(额这不是一个意思么..).
  org.bukkit.entity.Player.showPlayer(Player)
  另请参阅 `Player.showPlayer(Plugin, Player)`
  org.bukkit.entity.Projectile.doesBounce()
  不起任何作用
  org.bukkit.entity.Projectile.setBounce(boolean)
  不起任何作用
  org.bukkit.entity.Villager.Profession.valueOf(String)
  only for backwards compatibility, use `Registry.get(NamespacedKey)` instead.
  org.bukkit.entity.Villager.Profession.values()
  use `Iterable.iterator()`.
  org.bukkit.entity.Villager.Type.valueOf(String)
  only for backwards compatibility, use `Registry.get(NamespacedKey)` instead.
  org.bukkit.entity.Villager.Type.values()
  use `Iterable.iterator()`.
  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()
  另请参阅 `Ageable.isAdult()`
  org.bukkit.entity.Zombie.isVillager()
  检查 instanceof `ZombieVillager` 的是与否.
  org.bukkit.entity.Zombie.setBaby(boolean)
  另请参阅 `Ageable.setBaby()` 和 `Ageable.setAdult()`
  org.bukkit.entity.Zombie.setVillager(boolean)
  must spawn `ZombieVillager`.
  org.bukkit.entity.Zombie.setVillagerProfession(Villager.Profession)
  org.bukkit.EntityEffect.getData()
  不安全的参数
  org.bukkit.event.block.BlockPistonExtendEvent.getLength()
  由于史莱姆方块的特性, 这个方法是不准确的因为它不包含史莱姆方块粘走的方块, 如MC版本低于1.8请无视此句.
  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.NotePlayEvent.setInstrument(Instrument)
  在较新版本的Minecraft(1.13及以上)无效
  org.bukkit.event.block.NotePlayEvent.setNote(Note)
  在较新版本的Minecraft(1.13及以上)无效
  org.bukkit.event.enchantment.PrepareItemEnchantEvent.getExpLevelCostsOffered()
  请换用 `PrepareItemEnchantEvent.getOffers()` 方法
  org.bukkit.event.entity.EntityCombustEvent.setDuration(int)
  duration 现在为浮点数
  org.bukkit.event.entity.EntityShootBowEvent.setConsumeItem(boolean)
  not currently functional
  org.bukkit.event.entity.HorseJumpEvent.setCancelled(boolean)
  马的跳跃行为被移动到了客户端
  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.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.player.AsyncPlayerPreLoginEvent.disallow(PlayerPreLoginEvent.Result, String)
  这个方法使用了来自 `PlayerPreLoginEvent` 的已弃用的枚举
  org.bukkit.event.player.AsyncPlayerPreLoginEvent.getResult()
  这个方法使用了来自 `PlayerPreLoginEvent` 的已弃用的枚举
  org.bukkit.event.player.AsyncPlayerPreLoginEvent.setResult(PlayerPreLoginEvent.Result)
  这个方法使用了来自 `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()
  该方法无法保证在每个版本上的效果
  org.bukkit.event.player.PlayerEditBookEvent.getSlot()
  书可能被副手签名
  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.server.ServerListPingEvent.shouldSendChatPreviews()
  chat previews have been removed
  org.bukkit.GameEvent.getByKey(NamespacedKey)
  请使用 `Registry.get(NamespacedKey)`
  org.bukkit.GameEvent.values()
  请使用 `Iterable.iterator()`
  org.bukkit.GameMode.getByValue(int)
  魔法值
  org.bukkit.GameMode.getValue()
  魔法值
  org.bukkit.generator.BlockPopulator.populate(World, Random, Chunk)
  建议使用 `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.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.generator.ChunkGenerator.shouldGenerateBedrock()
  has no effect, bedrock generation is part of the surface step, see `ChunkGenerator.shouldGenerateSurface()`
  org.bukkit.GrassSpecies.getByData(byte)
  魔法值
  org.bukkit.GrassSpecies.getData()
  魔法值
  org.bukkit.Instrument.getByType(byte)
  不安全的参数
  org.bukkit.Instrument.getType()
  不安全的参数
  org.bukkit.inventory.EntityEquipment.getItemInHand()
  现在实体可以双持, 所以需要特定的方法来获取指定的手
  org.bukkit.inventory.EntityEquipment.getItemInHandDropChance()
  现在实体可以双持, 所以需要特定的方法来设置指定的手
  org.bukkit.inventory.EntityEquipment.setItemInHand(ItemStack)
  现在实体可以双持, 所以需要特定的方法来获取指定的手
  org.bukkit.inventory.EntityEquipment.setItemInHandDropChance(float)
  现在实体可以双持, 所以需要特定的方法来设置指定的手
  org.bukkit.inventory.EquipmentSlotGroup.getExample()
  for internal compatibility use only
  org.bukkit.inventory.FurnaceRecipe.setInput(Material, int)
  Magic value
  org.bukkit.inventory.InventoryView.Property.getId()
  不安全的参数
  org.bukkit.inventory.ItemStack.getDurability()
  另请参阅 `ItemStack.setDurability(short)`
  org.bukkit.inventory.ItemStack.setDurability(short)
  耐久度现在是 ItemMeta 的一部分. 为避免疑虑和误用, 请使用 `ItemStack.getItemMeta()`, `ItemStack.setItemMeta(ItemMeta)` 和 `Damageable.setDamage(int)`. 这是因为在调用此方法之前创建的 ItemMeta 的后续变动将覆盖调用此方法设置的物品元数据.
  org.bukkit.inventory.ItemType.asMaterial()
  only for internal use
  org.bukkit.inventory.ItemType.getCreativeCategory()
  creative categories no longer exist on the server
  org.bukkit.inventory.meta.ItemMeta.getCustomTagContainer()
  该 API 已被 `PersistentDataHolder` API 取代. 请使用 `PersistentDataHolder.getPersistentDataContainer()`.
  org.bukkit.inventory.meta.ItemMeta.getLocalizedName()
  属性不再存在
  org.bukkit.inventory.meta.ItemMeta.hasLocalizedName()
  属性不再存在
  org.bukkit.inventory.meta.ItemMeta.setLocalizedName(String)
  属性不再存在
  org.bukkit.inventory.meta.MapMeta.getLocationName()
  本方法没有预期效果, 这实际上是 `ItemMeta.getLocalizedName()` 的别名
  org.bukkit.inventory.meta.MapMeta.getMapId()
  这些方法是设计糟糕的API:它们依赖调用者, 仅传递一个整数属性值, 并且曾经有着糟糕的实现 - 未判断地图 id 是否合法(是否存在). 现代的实现 - 例如, 服务器会生成一个不同 id 的新地图. 开发者应使用 xxxMapView 家族的方法.
  org.bukkit.inventory.meta.MapMeta.hasLocationName()
  本方法没有预期效果, 这实际上是 `ItemMeta.hasLocalizedName()` 的别名
  org.bukkit.inventory.meta.MapMeta.hasMapId()
  这些方法是设计糟糕的API:它们依赖调用者, 仅传递一个整数属性值, 并且曾经有着糟糕的实现 - 未判断地图 id 是否合法(是否存在). 现代的实现 - 例如, 服务器会生成一个不同 id 的新地图. 开发者应使用 xxxMapView 家族的方法.
  org.bukkit.inventory.meta.MapMeta.setLocationName(String)
  本方法没有预期效果, 这实际上是 `ItemMeta.setLocalizedName(String)` 的别名
  org.bukkit.inventory.meta.MapMeta.setMapId(int)
  这些方法是设计糟糕的API:它们依赖调用者, 仅传递一个整数属性值, 并且曾经有着糟糕的实现 - 未判断地图 id 是否合法(是否存在). 现代的实现 - 例如, 服务器会生成一个不同 id 的新地图. 开发者应使用 xxxMapView 家族的方法.
  org.bukkit.inventory.meta.PotionMeta.getBasePotionData()
  Upgraded / extended potions are now their own `PotionType` use `PotionMeta.getBasePotionType()` instead.
  org.bukkit.inventory.meta.PotionMeta.setBasePotionData(PotionData)
  Upgraded / extended potions are now their own `PotionType` use `PotionMeta.setBasePotionType(org.bukkit.potion.PotionType)` instead.
  org.bukkit.inventory.meta.PotionMeta.setMainEffect(PotionEffectType)
  请使用 `PotionMeta.setBasePotionType(org.bukkit.potion.PotionType)`
  org.bukkit.inventory.meta.SkullMeta.getOwner()
  另请参阅 `SkullMeta.getOwningPlayer()`..
  org.bukkit.inventory.meta.SkullMeta.setOwner(String)
  另请参阅 `SkullMeta.setOwningPlayer(org.bukkit.OfflinePlayer)`.
  org.bukkit.inventory.meta.SpawnEggMeta.getSpawnedType()
  不同实体类型对应不同的刷怪蛋物品
  org.bukkit.inventory.meta.SpawnEggMeta.setSpawnedType(EntityType)
  不同实体类型对应不同的刷怪蛋物品
  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, Material, int)
  Magic value
  org.bukkit.inventory.ShapelessRecipe.addIngredient(int, Material, int)
  Magic value
  org.bukkit.inventory.ShapelessRecipe.addIngredient(Material, int)
  Magic value
  org.bukkit.inventory.ShapelessRecipe.removeIngredient(int, Material, int)
  Magic value
  org.bukkit.inventory.ShapelessRecipe.removeIngredient(Material, int)
  Magic value
  org.bukkit.loot.LootContext.Builder.lootingModifier(int)
  no longer functional
  org.bukkit.loot.LootContext.getLootingModifier()
  no longer functional
  org.bukkit.map.MapCanvas.getBasePixel(int, int)
  魔法值, 请使用 `MapCanvas.getBasePixelColor(int, int)`
  org.bukkit.map.MapCanvas.getPixel(int, int)
  魔法值, 请使用 `MapCanvas.getPixelColor(int, int)`
  org.bukkit.map.MapCanvas.setPixel(int, int, byte)
  魔法值, 请使用 `MapCanvas.setPixelColor(int, int, Color)`
  org.bukkit.map.MapCursor.getRawType()
  不安全的参数
  org.bukkit.map.MapCursor.setRawType(byte)
  不安全的参数
  org.bukkit.map.MapCursor.Type.byValue(byte)
  Magic value
  org.bukkit.map.MapCursor.Type.getValue()
  Magic value
  org.bukkit.map.MapCursor.Type.valueOf(String)
  only for backwards compatibility, use `Registry.get(NamespacedKey)` instead.
  org.bukkit.map.MapCursor.Type.values()
  use `Iterable.iterator()`.
  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.MapPalette.getColor(byte)
  Magic value
  org.bukkit.map.MapPalette.imageToBytes(Image)
  Magic value
  org.bukkit.map.MapPalette.MapColorCache.matchColor(Color)
  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()
  不应使用此方法;请使用hinge/facing对应的getter
  org.bukkit.material.ExtendedRails.getConvertedData()
  Magic value
  org.bukkit.Material.getId()
  不安全的参数
  org.bukkit.Material.getNewData(byte)
  不安全的参数
  org.bukkit.Material.isLegacy()
  org.bukkit.Material.isTransparent()
  目前还没有一个与底层服务器联系紧密的 实现。欢迎贡献.(如果你有idea，请左转Spigot Stash贡献你的代码)
  org.bukkit.material.MaterialData.getData()
  不安全的参数
  org.bukkit.material.MaterialData.setData(byte)
  不安全的参数
  org.bukkit.material.MaterialData.toItemStack()
  该方法创建了一个堆叠数为0的物品堆，一般没什么用. 请考虑 `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()
  现存储在 `SpawnEggMeta`.
  org.bukkit.material.SpawnEgg.setSpawnedType(EntityType)
  现存储在 `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)
  不安全的参数
  org.bukkit.material.types.MushroomBlockTexture.getData()
  不安全的参数
  org.bukkit.MusicInstrument.getByKey(NamespacedKey)
  Use `Registry.get(NamespacedKey)` instead.
  org.bukkit.MusicInstrument.values()
  use `Iterable.iterator()`.
  org.bukkit.NamespacedKey.randomKey()
  插件应永不使用此方法, 仅供内部使用!!
  org.bukkit.Note.getId()
  不安全的参数
  org.bukkit.Note.Tone.getById(byte)
  不安全的参数
  org.bukkit.Note.Tone.getId()
  不安全的参数
  org.bukkit.Note.Tone.getId(boolean)
  不安全的参数
  org.bukkit.Note.Tone.isSharped(byte)
  不安全的参数
  org.bukkit.OfflinePlayer.getBedSpawnLocation()
  误导性的方法名称. 此方法也同时返回复活锚点的位置
  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.PluginDescriptionFile.getClassLoaderOf()
  unused
  org.bukkit.plugin.SimplePluginManager.addPermission(Permission, boolean)
  org.bukkit.plugin.SimplePluginManager.dirtyPermissibles()
  org.bukkit.potion.PotionBrewer.getEffects(PotionType, boolean, boolean)
  时长延长/升阶的药水已经有其专属的 `PotionType`. 请使用 `PotionType.getPotionEffects()`
  org.bukkit.potion.PotionBrewer.getEffectsFromDamage(int)
  无任何作用
  org.bukkit.potion.PotionEffect.getColor()
  现在粒子效果颜色不属于药水效果的一部分
  org.bukkit.potion.PotionEffectType.getById(int)
  魔法值
  org.bukkit.potion.PotionEffectType.getByKey(NamespacedKey)
  仅为保障向后兼容性, 请使用 `Registry.get(NamespacedKey)`
  org.bukkit.potion.PotionEffectType.getByName(String)
  仅为保障向后兼容性, 请使用 `Registry.get(NamespacedKey)`
  org.bukkit.potion.PotionEffectType.getDurationModifier()
  未被使用, 总是 1.0
  org.bukkit.potion.PotionEffectType.getId()
  魔法值
  org.bukkit.potion.PotionEffectType.getName()
  仅为保障向后兼容性, 请使用 `Keyed.getKey()`
  org.bukkit.potion.PotionEffectType.values()
  请使用 `Iterable.iterator()`.
  org.bukkit.potion.PotionType.getByEffect(PotionEffectType)
  有误导性
  org.bukkit.potion.PotionType.getEffectType()
  Potions can have multiple effects use `PotionType.getPotionEffects()`
  org.bukkit.potion.PotionType.isInstant()
  PotionType can have multiple effects, some of which can be instant and others not. Use `PotionEffectType.isInstant()` in combination with `PotionType.getPotionEffects()` and `PotionEffect.getType()`
  org.bukkit.Registry.SimpleRegistry.getType()
  org.bukkit.SandstoneType.getByData(byte)
  魔法值
  org.bukkit.SandstoneType.getData()
  魔法值
  org.bukkit.scheduler.BukkitScheduler.runTask(Plugin, BukkitRunnable)
  建议使用`BukkitRunnable.runTask(Plugin)`
  org.bukkit.scheduler.BukkitScheduler.runTaskAsynchronously(Plugin, BukkitRunnable)
  建议使用`BukkitRunnable.runTaskAsynchronously(Plugin)`
  org.bukkit.scheduler.BukkitScheduler.runTaskLater(Plugin, BukkitRunnable, long)
  建议使用`BukkitRunnable.runTaskLater(Plugin, long)`
  org.bukkit.scheduler.BukkitScheduler.runTaskLaterAsynchronously(Plugin, BukkitRunnable, long)
  建议使用`BukkitRunnable.runTaskLaterAsynchronously(Plugin, long)`
  org.bukkit.scheduler.BukkitScheduler.runTaskTimer(Plugin, BukkitRunnable, long, long)
  建议使用`BukkitRunnable.runTaskTimer(Plugin, long, long)`
  org.bukkit.scheduler.BukkitScheduler.runTaskTimerAsynchronously(Plugin, BukkitRunnable, long, long)
  建议使用 `BukkitRunnable.runTaskTimerAsynchronously(Plugin, long, long)`
  org.bukkit.scheduler.BukkitScheduler.scheduleAsyncDelayedTask(Plugin, Runnable)
  这个名称具有误导性.因为它没有执行“同步”任务.而是“异步”任务
  org.bukkit.scheduler.BukkitScheduler.scheduleAsyncDelayedTask(Plugin, Runnable, long)
  这个名称具有误导性.因为它没有执行“同步”任务.而是“异步”任务
  org.bukkit.scheduler.BukkitScheduler.scheduleAsyncRepeatingTask(Plugin, Runnable, long, long)
  这个名称具有误导性.因为它没有执行“同步”任务.而是“异步”任务
  org.bukkit.scheduler.BukkitScheduler.scheduleSyncDelayedTask(Plugin, BukkitRunnable)
  推荐使用`BukkitRunnable.runTask(Plugin)`
  org.bukkit.scheduler.BukkitScheduler.scheduleSyncDelayedTask(Plugin, BukkitRunnable, long)
  推荐使用`BukkitRunnable.runTaskLater(Plugin, long)`
  org.bukkit.scheduler.BukkitScheduler.scheduleSyncRepeatingTask(Plugin, BukkitRunnable, long, long)
  推荐使用`BukkitRunnable.runTaskTimer(Plugin, long, long)`
  org.bukkit.scoreboard.Objective.getCriteria()
  请使用 `Objective.getTrackedCriteria()`
  org.bukkit.scoreboard.Objective.getScore(OfflinePlayer)
  计分板可包含非玩家项目
  org.bukkit.scoreboard.Score.getPlayer()
  计分板可包含非玩家项目
  org.bukkit.scoreboard.Scoreboard.getObjectivesByCriteria(String)
  请使用 `Scoreboard.getObjectivesByCriteria(Criteria)`
  org.bukkit.scoreboard.Scoreboard.getPlayers()
  计分板可包含非玩家项目
  org.bukkit.scoreboard.Scoreboard.getPlayerTeam(OfflinePlayer)
  计分板可包含非玩家项目
  org.bukkit.scoreboard.Scoreboard.getScores(OfflinePlayer)
  计分板可包含非玩家项目
  org.bukkit.scoreboard.Scoreboard.registerNewObjective(String, String)
  应明确指定计分项的显示名
  org.bukkit.scoreboard.Scoreboard.registerNewObjective(String, String, String)
  请使用 `Scoreboard.registerNewObjective(String, Criteria, String)`
  org.bukkit.scoreboard.Scoreboard.registerNewObjective(String, String, String, RenderType)
  请使用 `Scoreboard.registerNewObjective(String, Criteria, String, RenderType)`
  org.bukkit.scoreboard.Scoreboard.resetScores(OfflinePlayer)
  计分板可包含非玩家项目
  org.bukkit.scoreboard.Team.addPlayer(OfflinePlayer)
  队伍可包含非玩家项目
  org.bukkit.scoreboard.Team.getNameTagVisibility()
  另请参阅 `Team.getOption(Team.Option)`
  org.bukkit.scoreboard.Team.getPlayers()
  队伍可包含非玩家项目
  org.bukkit.scoreboard.Team.hasPlayer(OfflinePlayer)
  队伍可包含非玩家项目
  org.bukkit.scoreboard.Team.removePlayer(OfflinePlayer)
  队伍可包含非玩家项目
  org.bukkit.scoreboard.Team.setNameTagVisibility(NameTagVisibility)
  另请参阅 `Team.setOption(Team.Option, Team.OptionStatus)`
  org.bukkit.Server.banIP(String)
  参见 `Server.banIP(InetAddress)`
  org.bukkit.Server.getAmbientSpawnLimit()
  建议使用 `Server.getSpawnLimit(SpawnCategory)`
  org.bukkit.Server.getAnimalSpawnLimit()
  建议使用 `Server.getSpawnLimit(SpawnCategory)`
  org.bukkit.Server.getMap(int)
  不安全的参数
  org.bukkit.Server.getMonsterSpawnLimit()
  建议使用 `Server.getSpawnLimit(SpawnCategory)`
  org.bukkit.Server.getOfflinePlayer(String)
  由于玩家名在某个会话后(某次游戏后)不再唯一, 应使用uuid作为唯一标识来持久化存储用户. (译注:正版玩家更改它们的玩家名后,其uuid不会改变,其他正版玩家可以使用这些玩家的曾用名, 可能会出现同一玩家名对应两个或多个不同玩家的情况)
  org.bukkit.Server.getTicksPerAmbientSpawns()
  建议使用 `Server.getTicksPerSpawns(SpawnCategory)`
  org.bukkit.Server.getTicksPerAnimalSpawns()
  建议使用 `Server.getTicksPerSpawns(SpawnCategory)`
  org.bukkit.Server.getTicksPerMonsterSpawns()
  建议使用 `Server.getTicksPerSpawns(SpawnCategory)`
  org.bukkit.Server.getTicksPerWaterAmbientSpawns()
  建议使用 `Server.getTicksPerSpawns(SpawnCategory)`
  org.bukkit.Server.getTicksPerWaterSpawns()
  建议使用 `Server.getTicksPerSpawns(SpawnCategory)`
  org.bukkit.Server.getTicksPerWaterUndergroundCreatureSpawns()
  建议使用 `Server.getTicksPerSpawns(SpawnCategory)`
  org.bukkit.Server.getUnsafe()
  org.bukkit.Server.getWaterAmbientSpawnLimit()
  建议使用 `Server.getSpawnLimit(SpawnCategory)`
  org.bukkit.Server.getWaterAnimalSpawnLimit()
  建议使用 `Server.getSpawnLimit(SpawnCategory)`
  org.bukkit.Server.getWaterUndergroundCreatureSpawnLimit()
  建议使用 `Server.getSpawnLimit(SpawnCategory)`
  org.bukkit.Server.shouldSendChatPreviews()
  chat previews have been removed
  org.bukkit.Server.unbanIP(String)
  参见 `Server.unbanIP(InetAddress)`
  org.bukkit.TreeSpecies.getByData(byte)
  不安全的参数
  org.bukkit.TreeSpecies.getData()
  不安全的参数
  org.bukkit.UnsafeValues.getBlockTranslationKey(Material)
  org.bukkit.UnsafeValues.getCreativeCategory(Material)
  org.bukkit.UnsafeValues.getDefaultAttributeModifiers(Material, EquipmentSlot)
  org.bukkit.UnsafeValues.getInternalPotionData(NamespacedKey)
  org.bukkit.UnsafeValues.getItemTranslationKey(Material)
  org.bukkit.util.OldEnum.compareTo(T)
  only for backwards compatibility, old enums can not be compared.
  org.bukkit.util.OldEnum.name()
  only for backwards compatibility.
  org.bukkit.util.OldEnum.ordinal()
  only for backwards compatibility, it is not guaranteed that an old enum always has the same ordinal.
  org.bukkit.World.Environment.getEnvironment(int)
  不安全的参数
  org.bukkit.World.Environment.getId()
  不安全的参数
  org.bukkit.World.generateTree(Location, TreeType, BlockChangeDelegate)
  this method does not handle tile entities (bee nests)
  org.bukkit.World.getAmbientSpawnLimit()
  建议使用 `World.getSpawnLimit(SpawnCategory)`
  org.bukkit.World.getAnimalSpawnLimit()
  建议使用 `World.getSpawnLimit(SpawnCategory)`
  org.bukkit.World.getBiome(int, int)
  1.15更新后生物群系已三维化
  org.bukkit.World.getEntitiesByClass(Class<T>...)
  org.bukkit.World.getGameRuleValue(String)
  请使用 `World.getGameRuleValue(GameRule)`
  org.bukkit.World.getHumidity(int, int)
  1.15更新后生物群系已三维化
  org.bukkit.World.getKeepSpawnInMemory()
  使用 `GameRule.SPAWN_CHUNK_RADIUS` 以更好地控制
  org.bukkit.World.getMonsterSpawnLimit()
  建议使用 `World.getSpawnLimit(SpawnCategory)`
  org.bukkit.World.getTemperature(int, int)
  1.15更新后生物群系已三维化
  org.bukkit.World.getTicksPerAmbientSpawns()
  Deprecated in favor of `World.getTicksPerSpawns(SpawnCategory)`
  org.bukkit.World.getTicksPerAnimalSpawns()
  建议使用 `World.getTicksPerSpawns(SpawnCategory)`
  org.bukkit.World.getTicksPerMonsterSpawns()
  建议使用 `World.getTicksPerSpawns(SpawnCategory)`
  org.bukkit.World.getTicksPerWaterAmbientSpawns()
  Deprecated in favor of `World.getTicksPerSpawns(SpawnCategory)`
  org.bukkit.World.getTicksPerWaterSpawns()
  建议使用 `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()
  建议使用 `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.isChunkInUse(int, int)
  本方法曾被添加用于促进区块的垃圾回收. 由于当前 Minecraft 的区块被严格管理, 并且除非那些区块正被使用, 否则不会加载超过1tick时长 (意思是mc现在对区块管理更好了, 不用的区块会被及时卸载并回收)
  org.bukkit.World.locateNearestStructure(Location, StructureType, int, boolean)
  Use `World.locateNearestStructure(Location, Structure, int, boolean)` or `World.locateNearestStructure(Location, StructureType, int, boolean)` instead.
  org.bukkit.World.refreshChunk(int, int)
  这个方法不能保证在所有的客户端接口都正常地工作。
  org.bukkit.World.regenerateChunk(int, int)
  无法保证重新生成单个区块会产生与之前相同的区块, 因为地形装饰可分布在区块上. 应避免使用本方法, 由于已知本方法易产生bug
  org.bukkit.World.setAmbientSpawnLimit(int)
  建议使用 `World.setSpawnLimit(SpawnCategory, int)`
  org.bukkit.World.setAnimalSpawnLimit(int)
  建议使用 `World.getSpawnLimit(SpawnCategory)`
  org.bukkit.World.setBiome(int, int, Biome)
  1.15更新后生物群系已三维化
  org.bukkit.World.setGameRuleValue(String, String)
  请使用 `World.setGameRule(GameRule, Object)`
  org.bukkit.World.setKeepSpawnInMemory(boolean)
  使用 `GameRule.SPAWN_CHUNK_RADIUS` 以更好地控制
  org.bukkit.World.setMonsterSpawnLimit(int)
  建议使用 `World.setSpawnLimit(SpawnCategory, int)`
  org.bukkit.World.setTicksPerAmbientSpawns(int)
  Deprecated in favor of `World.setTicksPerSpawns(SpawnCategory, int)`
  org.bukkit.World.setTicksPerAnimalSpawns(int)
  建议使用 `World.setTicksPerSpawns(SpawnCategory, int)`
  org.bukkit.World.setTicksPerMonsterSpawns(int)
  建议使用 `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)
  建议使用 `World.setSpawnLimit(SpawnCategory, int)`
  org.bukkit.World.setWaterUndergroundCreatureSpawnLimit(int)
  Deprecated in favor of `World.setSpawnLimit(SpawnCategory, int)`
  org.bukkit.World.spawnFallingBlock(Location, Material, byte)
  不安全的参数
  org.bukkit.World.Spigot.strikeLightning(Location, boolean)
  sound is now client side and cannot be removed
  org.bukkit.World.Spigot.strikeLightningEffect(Location, boolean)
  sound is now client side and cannot be removed

- Deprecated 构造器
  构造器
  说明
  net.md_5.bungee.api.chat.BaseComponent()
  仅供内部使用, 将被移除
  net.md_5.bungee.api.chat.HoverEvent(HoverEvent.Action, BaseComponent[])
  `HoverEvent(Action, Content[])`
  org.bukkit.attribute.AttributeModifier(String, double, AttributeModifier.Operation)
  org.bukkit.attribute.AttributeModifier(UUID, String, double, AttributeModifier.Operation)
  org.bukkit.attribute.AttributeModifier(UUID, String, double, AttributeModifier.Operation, EquipmentSlotGroup)
  org.bukkit.attribute.AttributeModifier(UUID, String, double, AttributeModifier.Operation, EquipmentSlot)
  org.bukkit.configuration.file.YamlConstructor()
  options required
  org.bukkit.configuration.file.YamlRepresenter()
  options required
  org.bukkit.event.block.BlockBurnEvent(Block)
  org.bukkit.event.block.BlockCanBuildEvent(Block, BlockData, boolean)
  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.entity.EntityCombustByBlockEvent(Block, Entity, int)
  org.bukkit.event.entity.EntityCombustByEntityEvent(Entity, Entity, int)
  org.bukkit.event.entity.EntityCombustEvent(Entity, int)
  org.bukkit.event.entity.EntityDamageByBlockEvent(Block, Entity, EntityDamageEvent.DamageCause, double)
  org.bukkit.event.entity.EntityDamageByBlockEvent(Block, Entity, EntityDamageEvent.DamageCause, Map<EntityDamageEvent.DamageModifier, Double>, Map<EntityDamageEvent.DamageModifier, ? extends Function<? super Double, Double>>)
  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.EntityDamageEvent(Entity, EntityDamageEvent.DamageCause, double)
  org.bukkit.event.entity.EntityDamageEvent(Entity, EntityDamageEvent.DamageCause, Map<EntityDamageEvent.DamageModifier, Double>, Map<EntityDamageEvent.DamageModifier, ? extends Function<? super Double, Double>>)
  org.bukkit.event.entity.EntityPlaceEvent(Entity, Player, Block, BlockFace)
  org.bukkit.event.entity.EntityResurrectEvent(LivingEntity)
  org.bukkit.event.entity.ExpBottleEvent(ThrownExpBottle, int)
  org.bukkit.event.entity.ItemSpawnEvent(Item, Location)
  org.bukkit.event.entity.LingeringPotionSplashEvent(ThrownPotion, AreaEffectCloud)
  org.bukkit.event.entity.PlayerLeashEntityEvent(Entity, Entity, Player)
  org.bukkit.event.entity.PotionSplashEvent(ThrownPotion, Map<LivingEntity, Double>)
  org.bukkit.event.entity.SheepDyeWoolEvent(Sheep, DyeColor)
  org.bukkit.event.hanging.HangingPlaceEvent(Hanging, Player, Block, BlockFace, EquipmentSlot)
  org.bukkit.event.player.AsyncPlayerPreLoginEvent(String, InetAddress)
  org.bukkit.event.player.AsyncPlayerPreLoginEvent(String, InetAddress, UUID)
  org.bukkit.event.player.PlayerAnimationEvent(Player)
  org.bukkit.event.player.PlayerArmorStandManipulateEvent(Player, ArmorStand, ItemStack, ItemStack, EquipmentSlot)
  org.bukkit.event.player.PlayerBedEnterEvent(Player, Block)
  org.bukkit.event.player.PlayerBucketEmptyEvent(Player, Block, BlockFace, Material, ItemStack)
  org.bukkit.event.player.PlayerBucketEmptyEvent(Player, Block, Block, BlockFace, Material, ItemStack)
  org.bukkit.event.player.PlayerBucketEvent(Player, Block, BlockFace, Material, ItemStack)
  org.bukkit.event.player.PlayerBucketEvent(Player, Block, Block, BlockFace, Material, ItemStack)
  org.bukkit.event.player.PlayerBucketFillEvent(Player, Block, BlockFace, Material, ItemStack)
  org.bukkit.event.player.PlayerBucketFillEvent(Player, Block, Block, BlockFace, Material, ItemStack)
  org.bukkit.event.player.PlayerHarvestBlockEvent(Player, Block, List<ItemStack>)
  org.bukkit.event.player.PlayerItemConsumeEvent(Player, ItemStack)
  请使用 `PlayerItemConsumeEvent(Player, ItemStack, EquipmentSlot)`
  org.bukkit.event.player.PlayerItemMendEvent(Player, ItemStack, ExperienceOrb, int)
  org.bukkit.event.player.PlayerPreLoginEvent(String, InetAddress)
  org.bukkit.event.player.PlayerRespawnEvent(Player, Location, boolean)
  org.bukkit.event.player.PlayerRespawnEvent(Player, Location, boolean, boolean)
  org.bukkit.event.player.PlayerRiptideEvent(Player, ItemStack)
  org.bukkit.event.player.PlayerShearEntityEvent(Player, Entity)
  org.bukkit.event.player.PlayerUnleashEntityEvent(Entity, Player)
  org.bukkit.event.server.BroadcastMessageEvent(String, Set<CommandSender>)
  org.bukkit.event.weather.LightningStrikeEvent(World, LightningStrike)
  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)
  另请参阅 `ItemStack.setDurability(short)`
  org.bukkit.inventory.ItemStack(Material, int, short, Byte)
  该方法使用了意义不明确的data byte对象
  org.bukkit.inventory.ShapedRecipe(ItemStack)
  Recipes must have keys. Use `ShapedRecipe(NamespacedKey, ItemStack)` instead.
  org.bukkit.inventory.ShapelessRecipe(ItemStack)
  org.bukkit.inventory.SmithingRecipe(NamespacedKey, ItemStack, RecipeChoice, RecipeChoice)
  as of Minecraft 1.20, smithing recipes are now separated into two distinct recipe types, `SmithingTransformRecipe` and `SmithingTrimRecipe`. This class now acts as a base class to these two classes and will do nothing when added to the server.
  org.bukkit.map.MapCursor(byte, byte, byte, byte, boolean)
  不安全的参数
  org.bukkit.map.MapCursor(byte, byte, byte, byte, boolean, String)
  不安全的参数，请使用 `MapCursor(byte, byte, byte, Type, boolean, String)`
  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)
  不安全的参数
  org.bukkit.material.Cauldron(byte)
  Magic value
  org.bukkit.material.Cauldron(Material, byte)
  Magic value
  org.bukkit.material.Chest(Material, byte)
  不安全的参数
  org.bukkit.material.Coal(Material, byte)
  Magic value
  org.bukkit.material.CocoaPlant(Material, byte)
  Magic value
  org.bukkit.material.Command(Material, byte)
  不安全的参数
  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()
  遗留的旧API，相当于new `Door(Material.LEGACY_WOODEN_DOOR);`
  org.bukkit.material.Door(Material, byte)
  不安全的参数
  org.bukkit.material.Dye(Material, byte)
  Magic value
  org.bukkit.material.EnderChest(Material, byte)
  不安全的参数
  org.bukkit.material.ExtendedRails(Material, byte)
  Magic value
  org.bukkit.material.FlowerPot(Material, byte)
  Magic value
  org.bukkit.material.Furnace(Material, byte)
  不安全的参数
  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)
  不安全的参数
  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)
  不安全的参数
  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)
  不安全的参数
  org.bukkit.material.SpawnEgg(Material, byte)
  不安全的参数
  org.bukkit.material.Stairs(Material, byte)
  Magic value
  org.bukkit.material.Step(Material, byte)
  不安全的参数
  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)
  不安全的参数
  org.bukkit.material.Wool(Material, byte)
  不安全的参数
  org.bukkit.plugin.java.JavaPluginLoader(Server)

- Deprecated 枚举常量
  枚举常量
  说明
  net.md_5.bungee.api.chat.HoverEvent.Action.SHOW_ACHIEVEMENT
  org.bukkit.BanList.Type.NAME
  被 `BanList.Type.PROFILE` 取代
  org.bukkit.Effect.DOOR_CLOSE
  不复存在
  org.bukkit.Effect.DOOR_TOGGLE
  不复存在
  org.bukkit.Effect.FENCE_GATE_CLOSE
  不复存在
  org.bukkit.Effect.FENCE_GATE_TOGGLE
  不复存在
  org.bukkit.Effect.IRON_DOOR_CLOSE
  不复存在
  org.bukkit.Effect.IRON_DOOR_TOGGLE
  不复存在
  org.bukkit.Effect.IRON_TRAPDOOR_CLOSE
  不复存在
  org.bukkit.Effect.IRON_TRAPDOOR_TOGGLE
  不复存在
  org.bukkit.Effect.TRAPDOOR_CLOSE
  不复存在
  org.bukkit.Effect.TRAPDOOR_TOGGLE
  不复存在
  org.bukkit.enchantments.EnchantmentTarget.ALL
  原版中该适用目标不复存在
  org.bukkit.EntityEffect.DEATH
  已分为单独的效果
  org.bukkit.EntityEffect.HURT
  请使用 `LivingEntity.playHurtAnimation(float)`
  org.bukkit.EntityEffect.SHEEP_EAT
  已分为单独的效果
  org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.CHUNK_GEN
  不再调用, 区块与已经存在的实体一同生成. 请考虑使用`ChunkLoadEvent.isNewChunk()` 和 `Chunk.getEntities()` 以达到类似效果
  org.bukkit.event.entity.EntityTargetEvent.TargetReason.PIG_ZOMBIE_TARGET
  obsoleted by `EntityTargetEvent.TargetReason.TARGET_ATTACKED_NEARBY_ENTITY`
  org.bukkit.event.inventory.InventoryType.SMITHING_NEW
  use `InventoryType.SMITHING`
  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.