Interface BlockEntity

All Superinterfaces:
CopyableDataHolder, DataHolder, DataHolder.Mutable, DataSerializable, Locatable, SerializableDataHolder, SerializableDataHolder.Mutable, ValueContainer
All Known Subinterfaces:
Banner, Barrel, Beacon, Bed, Beehive, Bell, BlastFurnace, BrewingStand, Campfire, CarrierBlockEntity, Chest, CommandBlock, Comparator, Conduit, Crafter, DaylightDetector, Dispenser, Dropper, EnchantmentTable, EnderChest, EndGateway, EndPortal, Furnace, FurnaceBlockEntity, Hopper, Jigsaw, Jukebox, Lectern, MobSpawner, NameableBlockEntity, NameableCarrierBlockEntity, Piston, SculkSensor, ShulkerBox, Sign, Skull, Smoker, StructureBlock, TrappedChest, TrialSpawner

@DoNotStore public interface BlockEntity extends SerializableDataHolder.Mutable, Locatable
Represents a block entity. It is a functional block that is continuously updated while residing in a world. It can perform specific functions based on the data that it contains.

A BlockEntity is contained within a ServerLocation and will continue to exists so long as the ServerLocation is of the correct block type.

Since a BlockEntity is performing various actions, all methods that are purely functional methods reside in the BlockEntity, whereas customizable data associated with a BlockEntity is represented by Values.

  • Method Details

    • isRemoved

      boolean isRemoved()
      Returns whether this block entity has been removed.
      Returns:
      True if this block entity has been removed
    • remove

      void remove()
      Removes this block entity from the world and its corresponding block.
    • canTick

      boolean canTick()
      Returns whether this block entity can tick.
      Returns:
      True if this block entity can tick
    • isTicking

      boolean isTicking()
      Returns whether this block entity is ticking.
      Returns:
      True if this block entity is ticking
    • setTicking

      boolean setTicking(boolean ticking)
      Attempts to set if this block entity will naturally tick.

      This will return false if isRemoved() returns true or canTick() returns false

      Parameters:
      ticking - The ticking state
      Returns:
      True if ticking state was successfully set
    • type

      Gets the type of BlockEntity this is.
      Returns:
      The type of block entity
    • block

      BlockState block()
      Gets the BlockState that this BlockEntity represents.
      Returns:
      The blockstate
    • rotate

      BlockEntity rotate(Rotation rotation)
      Rotates this BlockEntity for the desired Rotation.
      Parameters:
      rotation - The rotation
      Returns:
      The rotated state if not this state
    • rotate

      default BlockEntity rotate(Supplier<? extends Rotation> rotation)
      Rotates this BlockEntity for the desired Rotation.
      Parameters:
      rotation - The rotation
      Returns:
      The rotated state if not this state
    • mirror

      BlockEntity mirror(Mirror mirror)
      Gets the appropriate BlockEntity for the desired Mirror.
      Parameters:
      mirror - The mirror
      Returns:
      The mirrored BlockEntity
    • mirror

      default BlockEntity mirror(Supplier<? extends Mirror> mirror)
      Gets the appropriate BlockEntity for the desired Mirror.
      Parameters:
      mirror - The mirror
      Returns:
      The mirrored BlockEntity
    • createArchetype

      BlockEntityArchetype createArchetype()
      Creates a new BlockEntityArchetype for use with Schematics and placing the archetype in multiple locations.
      Returns:
      The created archetype for re-creating this block entity
    • locatableBlock

      LocatableBlock locatableBlock()
      Creates a LocatableBlock for this BlockEntity. Can be used as a simpler method of making them. Since this does not persist the data of this BlockEntity, it should not be used in place of a BlockSnapshot where data is being safely cloned.
      Returns:
      The created locatable block, not as a block snapshot
    • copy

      BlockEntity copy()
      Creates a new BlockEntityArchetype for use with Schematics and placing the archetype in multiple locations.
      Specified by:
      copy in interface CopyableDataHolder
      Specified by:
      copy in interface SerializableDataHolder
      Specified by:
      copy in interface SerializableDataHolder.Mutable
      Returns:
      The created archetype for re-creating this block entity