跳转至

📮 方块实体对象 API

在脚本引擎中,使用「方块实体对象」来操作和获取与特定方块关联的附加数据。
注意:方块实体对象 不是一种 实体!他们之间并没有特别的关系

获取一个方块实体对象

通过方块获取

对于已存在的方块对象bl,有

bl.getBlockEntity()

  • 返回值:此方块对象对应的方块实体对象
  • 返回值类型:BlockEntity
  • 如返回值为 Null 则表示获取方块实体对象失败,或者此方块没有对应的实体对象

注意:不要长期保存一个方块实体对象
当方块对象对应的方块被销毁时,对应的方块实体对象将同时释放。因此,如果有长期操作某个方块实体的需要,请通过上述途径获取实时的方块实体对象

方块实体对象 - 属性

每一个方块实体对象都包含一些固定的对象属性。对于某个特定的方块实体对象be,有以下这些属性

属性 含义 类型
be.name The block entity name (example: container.chest) String
be.pos 方块实体对应方块所在的坐标 IntPos
be.type 方块实体对象的类型ID Integer

这些对象属性都是只读的,无法被修改

方块实体对象 - 函数

每一个方块实体对象都包含一些可以执行的成员函数(成员方法)。对于某个特定的方块实体对象be,可以通过以下这些函数对这个方块实体进行一些操作

获取方块实体对应的NBT对象

be.getNbt()

  • 返回值:方块实体的NBT对象
  • 返回值类型:NbtCompound

写入方块实体对应的NBT对象

be.setNbt(nbt)

  • 参数:
  • nbt : NbtCompound
    NBT对象
  • 返回值:是否成功写入
  • 返回值类型:Boolean

关于NBT对象的更多使用,请参考 NBT接口文档

获取方块实体对应的方块对象

be.getBlock()

  • 返回值:方块实体对应的方块对象
  • 返回值类型:Block