# 接口的使用
org.bukkit.block.BlockState

使用BlockState的程序包
程序包
说明
org.bukkit
Bukkit API的顶级程序包, 包含通用的API类和接口.
org.bukkit.block
用于操作在`世界`内的三位像素(方块)，包括一些特定的状态.
org.bukkit.block.data
各种方块的 BlockData 类.
org.bukkit.entity
为在`世界`内存在的非三维像素单位(实体)提供的接口，包含玩家、怪物、抛射物等.
org.bukkit.event.block
与`方块`被改变或与`世界`进行交互等情况相关的`事件`.
org.bukkit.event.entity
与`实体`相关的`事件`，不包括 一些直接引用的更具体的实体类型.
org.bukkit.event.world
与`世界`状态和变化有关的`事件`.
org.bukkit.generator
简化`世界`生成实现的类.
org.bukkit.inventory.meta
用于操作可以存储在`物品堆`的额外数据的接口.
org.bukkit.structure
Classes related to creating or using `structures` without creating `Structure blocks` in the world.
org.bukkit.util
提供多种目的和单一目的的类以简化各种编程概念.

- ## org.bukkit中BlockState的使用

  返回BlockState的org.bukkit中的方法
  修饰符和类型
  方法
  说明
  `@NotNull BlockState`
  RegionAccessor.`getBlockState(int x, int y, int z)`
  Gets the `BlockState` at the given coordinates.
  `@NotNull BlockState`
  RegionAccessor.`getBlockState(@NotNull Location location)`
  Gets the `BlockState` at the given `Location`.
  `@NotNull BlockState[]`
  Chunk.`getTileEntities()`
  获取该区块内所有的TileEntity的列表.
  类型变量类型为BlockState的org.bukkit中的方法参数
  修饰符和类型
  方法
  说明
  `boolean`
  RegionAccessor.`generateTree(@NotNull Location location, @NotNull Random random, @NotNull TreeType type, @Nullable Consumer<? super BlockState> stateConsumer)`
  Creates a tree at the given `Location`
  `boolean`
  RegionAccessor.`generateTree(@NotNull Location location, @NotNull Random random, @NotNull TreeType type, @Nullable Predicate<? super BlockState> statePredicate)`
  Creates a tree at the given `Location`

- ## org.bukkit.block中BlockState的使用

  org.bukkit.block中BlockState的子接口
  修饰符和类型
  接口
  说明
  `interface`
  `Banner`
  代表旗帜.
  `interface`
  `Barrel`
  代表木桶.
  `interface`
  `Beacon`
  代表信标.
  `interface`
  `Bed`
  已过时。
  除材质本身之外, 本状态未提供有用的信息
  `interface`
  `Beehive`
  代表蜂巢.
  `interface`
  `Bell`
  代表钟.
  `interface`
  `BlastFurnace`
  代表高炉.
  `interface`
  `BrewingStand`
  代表酿造台.
  `interface`
  `BrushableBlock`
  Represents a captured state of suspicious sand or gravel.
  `interface`
  `CalibratedSculkSensor`
  Represents a captured state of a calibrated sculk sensor
  `interface`
  `Campfire`
  代表营火.
  `interface`
  `Chest`
  代表箱子.
  `interface`
  `ChiseledBookshelf`
  Represents a captured state of a chiseled bookshelf.
  `interface`
  `CommandBlock`
  代表命令方块.
  `interface`
  `Comparator`
  代表关闭或打开状态的红石比较器.
  `interface`
  `Conduit`
  代表潮涌核心.
  `interface`
  `Container`
  代表容器方块.
  `interface`
  `Crafter`
  Represents a captured state of a crafter.
  `interface`
  `CreatureSpawner`
  代表刷怪笼.
  `interface`
  `DaylightDetector`
  代表(反向)阳光探测器.
  `interface`
  `DecoratedPot`
  Represents a captured state of a decorated pot.
  `interface`
  `Dispenser`
  代表发射器.
  `interface`
  `Dropper`
  代表投掷器.
  `interface`
  `EnchantingTable`
  代表附魔台.
  `interface`
  `EnderChest`
  代表末影箱.
  `interface`
  `EndGateway`
  代表末地折跃门.
  `interface`
  `EntityBlockStorage<T extends Entity>`
  代表可存储实体的方块 (译注:或者称为实体容器方块).
  `interface`
  `Furnace`
  代表熔炉.
  `interface`
  `HangingSign`
  Represents a captured state of a hanging sign.
  `interface`
  `Hopper`
  代表漏斗.
  `interface`
  `Jigsaw`
  代表拼图方块.
  `interface`
  `Jukebox`
  代表唱片机.
  `interface`
  `Lectern`
  代表讲台.
  `interface`
  `SculkCatalyst`
  Represents a captured state of a sculk catalyst.
  `interface`
  `SculkSensor`
  Represents a captured state of a sculk sensor
  `interface`
  `SculkShrieker`
  Represents a captured state of a sculk shrieker.
  `interface`
  `ShulkerBox`
  代表潜影盒方块状态.
  `interface`
  `Sign`
  代表告示牌或者墙上告示牌.
  `interface`
  `Skull`
  代表头颅.
  `interface`
  `Smoker`
  代表烟熏炉.
  `interface`
  `Structure`
  代表结构方块, 其可从文件中加载方块或保存方块到文件.
  `interface`
  `SuspiciousSand`
  已过时。
  `interface`
  `TileState`
  代表持有指定位置的 tile entity 的方块状态.
  `interface`
  `TrialSpawner`
  Represents a captured state of a trial spawner.
  `interface`
  `Vault`
  Represents a captured state of a trial spawner.
  返回BlockState的org.bukkit.block中的方法
  修饰符和类型
  方法
  说明
  `@NotNull BlockState`
  BlockState.`copy()`
  Returns a copy of this BlockState as an unplaced BlockState.
  `@NotNull BlockState`
  BlockState.`copy(@NotNull Location location)`
  Copies the state to another block as an unplaced BlockState.
  `@NotNull BlockState`
  Block.`getState()`
  捕获本方块当前的状态.

- ## org.bukkit.block.data中BlockState的使用

  返回BlockState的org.bukkit.block.data中的方法
  修饰符和类型
  方法
  说明
  `@NotNull BlockState`
  BlockData.`createBlockState()`
  Creates a new default `BlockState` for this type of Block, not bound to a location.

- ## org.bukkit.entity中BlockState的使用

  类型变量类型为BlockState的org.bukkit.entity中的方法参数
  修饰符和类型
  方法
  说明
  `void`
  Player.`sendBlockChanges(@NotNull Collection<BlockState> blocks)`
  Send a multi-block change.
  `void`
  Player.`sendBlockChanges(@NotNull Collection<BlockState> blocks, boolean suppressLightUpdates)`
  已过时。
  suppressLightUpdates is not functional in versions greater than 1.19.4

- ## org.bukkit.event.block中BlockState的使用

  声明为BlockState的org.bukkit.event.block中的字段
  修饰符和类型
  字段
  说明
  `protected BlockState`
  BlockPlaceEvent.`replacedBlockState`
  返回BlockState的org.bukkit.event.block中的方法
  修饰符和类型
  方法
  说明
  `@NotNull BlockState`
  BlockPlaceEvent.`getBlockReplacedState()`
  获取被替换的方块的 BlockState.
  `@NotNull BlockState`
  BlockDropItemEvent.`getBlockState()`
  获取被破坏的方块的BlockState.
  `@NotNull BlockState`
  BlockExplodeEvent.`getExplodedBlockState()`
  返回发生爆炸的方块的已捕获状态.
  `@NotNull BlockState`
  BlockFadeEvent.`getNewState()`
  获取因为世界条件消退，融化，消失的方块的状态(`BlockState`).
  `@NotNull BlockState`
  BlockGrowEvent.`getNewState()`
  获取这个方块生长之后的新状态.
  `@NotNull BlockState`
  CauldronLevelChangeEvent.`getNewState()`
  Gets the new state of the cauldron.
  `@NotNull BlockState`
  MoistureChangeEvent.`getNewState()`
  获取受到影响的方块的新状态.
  返回变量类型为BlockState的类型的org.bukkit.event.block中的方法
  修饰符和类型
  方法
  说明
  `@NotNull List<BlockState>`
  BlockFertilizeEvent.`getBlocks()`
  返回由于施肥而产生变化的所有方块的列表.
  `@NotNull List<BlockState>`
  SpongeAbsorbEvent.`getBlocks()`
  获取因海绵吸水而被移除的方块的列表.
  `@NotNull List<BlockState>`
  BlockMultiPlaceEvent.`getReplacedBlockStates()`
  获取所有被替换的旧方块的方块状态列表.
  参数类型为BlockState的org.bukkit.event.block中的构造器
  限定符
  构造器
  说明
  ``
  `BlockDropItemEvent(@NotNull Block block, @NotNull BlockState blockState, @NotNull Player player, @NotNull List<Item> items)`
  ``
  `BlockExplodeEvent(@NotNull Block what, @NotNull BlockState blockState, @NotNull List<Block> blocks, float yield, @NotNull ExplosionResult result)`
  ``
  `BlockFadeEvent(@NotNull Block block, @NotNull BlockState newState)`
  ``
  `BlockFormEvent(@NotNull Block block, @NotNull BlockState newState)`
  ``
  `BlockGrowEvent(@NotNull Block block, @NotNull BlockState newState)`
  ``
  `BlockPlaceEvent(@NotNull Block placedBlock, @NotNull BlockState replacedBlockState, @NotNull Block placedAgainst, @NotNull ItemStack itemInHand, @NotNull Player thePlayer, boolean canBuild)`
  已过时。
  ``
  `BlockPlaceEvent(@NotNull Block placedBlock, @NotNull BlockState replacedBlockState, @NotNull Block placedAgainst, @NotNull ItemStack itemInHand, @NotNull Player thePlayer, boolean canBuild, @NotNull EquipmentSlot hand)`
  ``
  `BlockSpreadEvent(@NotNull Block block, @NotNull Block source, @NotNull BlockState newState)`
  ``
  `CauldronLevelChangeEvent(@NotNull Block block, @Nullable Entity entity, @NotNull CauldronLevelChangeEvent.ChangeReason reason, @NotNull BlockState newBlock)`
  ``
  `EntityBlockFormEvent(@NotNull Entity entity, @NotNull Block block, @NotNull BlockState blockstate)`
  ``
  `MoistureChangeEvent(@NotNull Block block, @NotNull BlockState newState)`
  类型变量类型为BlockState的org.bukkit.event.block中的构造器参数
  限定符
  构造器
  说明
  ``
  `BlockFertilizeEvent(@NotNull Block theBlock, @Nullable Player player, @NotNull List<BlockState> blocks)`
  ``
  `BlockMultiPlaceEvent(@NotNull List<BlockState> states, @NotNull Block clicked, @NotNull ItemStack itemInHand, @NotNull Player thePlayer, boolean canBuild)`
  ``
  `SpongeAbsorbEvent(@NotNull Block block, @NotNull List<BlockState> waterblocks)`

- ## org.bukkit.event.entity中BlockState的使用

  返回BlockState的org.bukkit.event.entity中的方法
  修饰符和类型
  方法
  说明
  `@Nullable BlockState`
  EntityDamageByBlockEvent.`getDamagerBlockState()`
  Returns the captured BlockState of the block that damaged the player.
  返回变量类型为BlockState的类型的org.bukkit.event.entity中的方法
  修饰符和类型
  方法
  说明
  `@NotNull List<BlockState>`
  EntityCreatePortalEvent.`getBlocks()`
  已过时。
  返回与这个传送门有关的所有方块.
  参数类型为BlockState的org.bukkit.event.entity中的构造器
  限定符
  构造器
  说明
  ``
  `EntityDamageByBlockEvent(@Nullable Block damager, @Nullable BlockState damagerState, @NotNull Entity damagee, @NotNull EntityDamageEvent.DamageCause cause, @NotNull DamageSource damageSource, double damage)`
  ``
  `EntityDamageByBlockEvent(@Nullable Block damager, @Nullable BlockState damagerState, @NotNull Entity damagee, @NotNull EntityDamageEvent.DamageCause cause, @NotNull DamageSource damageSource, @NotNull Map<EntityDamageEvent.DamageModifier,Double> modifiers, @NotNull Map<EntityDamageEvent.DamageModifier,? extends Function<? super Double,Double>> modifierFunctions)`
  类型变量类型为BlockState的org.bukkit.event.entity中的构造器参数
  限定符
  构造器
  说明
  ``
  `EntityCreatePortalEvent(@NotNull LivingEntity what, @NotNull List<BlockState> blocks, @NotNull PortalType type)`
  已过时。

- ## org.bukkit.event.world中BlockState的使用

  返回变量类型为BlockState的类型的org.bukkit.event.world中的方法
  修饰符和类型
  方法
  说明
  `@NotNull List<BlockState>`
  PortalCreateEvent.`getBlocks()`
  获取与创建的传送门相关联的所有组成方块的数组列表.
  `@NotNull List<BlockState>`
  StructureGrowEvent.`getBlocks()`
  获取与结构有关的所有方块的列表.
  类型变量类型为BlockState的org.bukkit.event.world中的构造器参数
  限定符
  构造器
  说明
  ``
  `PortalCreateEvent(@NotNull List<BlockState> blocks, @NotNull World world, @NotNull PortalCreateEvent.CreateReason reason)`
  已过时。
  ``
  `PortalCreateEvent(@NotNull List<BlockState> blocks, @NotNull World world, @Nullable Entity entity, @NotNull PortalCreateEvent.CreateReason reason)`
  ``
  `StructureGrowEvent(@NotNull Location location, @NotNull TreeType species, boolean bonemeal, @Nullable Player player, @NotNull List<BlockState> blocks)`

- ## org.bukkit.generator中BlockState的使用

  返回变量类型为BlockState的类型的org.bukkit.generator中的方法
  修饰符和类型
  方法
  说明
  `@NotNull List<BlockState>`
  LimitedRegion.`getTileEntities()`
  Gets a list of all tile entities in the limited region including the buffer zone.

- ## org.bukkit.inventory.meta中BlockState的使用

  返回BlockState的org.bukkit.inventory.meta中的方法
  修饰符和类型
  方法
  说明
  `@NotNull BlockState`
  BlockStateMeta.`getBlockState()`
  返回这个物品当前附加的BlockState，如果不存在将创建一个新的.
  参数类型为BlockState的org.bukkit.inventory.meta中的方法
  修饰符和类型
  方法
  说明
  `void`
  BlockStateMeta.`setBlockState(@NotNull BlockState blockState)`
  将BlockState副本附加到物品上(设置这个物品的BlockState).

- ## org.bukkit.structure中BlockState的使用

  返回变量类型为BlockState的类型的org.bukkit.structure中的方法
  修饰符和类型
  方法
  说明
  `@NotNull List<BlockState>`
  Palette.`getBlocks()`
  Gets a copy of the blocks this Palette is made of.

- ## org.bukkit.util中BlockState的使用

  返回BlockState的org.bukkit.util中的方法
  修饰符和类型
  方法
  说明
  `@NotNull BlockState`
  BlockTransformer.TransformationState.`getOriginal()`
  Creates a clone of the original block state that a structure wanted to place and caches it for the current transformer.
  `@NotNull BlockState`
  BlockTransformer.TransformationState.`getWorld()`
  Creates a clone of the block state that was at the location of the currently modified block at the start of the transformation process and caches it for the current transformer.
  `@NotNull BlockState`
  BlockTransformer.`transform(@NotNull LimitedRegion region, int x, int y, int z, @NotNull BlockState current, @NotNull BlockTransformer.TransformationState state)`
  Transforms a block in a structure.
  参数类型为BlockState的org.bukkit.util中的方法
  修饰符和类型
  方法
  说明
  `@NotNull BlockState`
  BlockTransformer.`transform(@NotNull LimitedRegion region, int x, int y, int z, @NotNull BlockState current, @NotNull BlockTransformer.TransformationState state)`
  Transforms a block in a structure.