Interface Conduit

All Superinterfaces:
BlockState, Metadatable, PersistentDataHolder, PersistentDataViewHolder, TileState

public interface Conduit extends TileState
Represents a captured state of a conduit.
  • Method Details

    • isActive

      boolean isActive()
      Checks whether or not this conduit is active.

      A conduit is considered active if there are at least 16 valid frame blocks surrounding it and the conduit is surrounded by a 3x3x3 area of water source blocks (or waterlogged blocks), at which point its animation will activate, start spinning, and apply effects to nearby players.

      Returns:
      true if active, false otherwise
    • isHunting

      boolean isHunting()
      Get whether or not this conduit is actively hunting for nearby hostile creatures.

      A conduit will hunt if it is active (see isActive()) and its frame is complete (it is surrounded by at least 42 valid frame blocks). While hunting, the conduit's target, if within its hunting area, will be damaged every 2 seconds.

      Returns:
      true if hunting, false otherwise
    • getFrameBlocks

      @NotNull @NotNull Collection<Block> getFrameBlocks()
      Get a Collection of all Blocks that make up the frame of this conduit. The returned collection will contain only blocks that match the types required by the conduit to make up a valid frame, not the blocks at which the conduit is searching, meaning it will be of variable size depending on how many valid frames are surrounding the conduit at the time of invocation.
      Returns:
      the frame blocks
    • getFrameBlockCount

      int getFrameBlockCount()
      Get the amount of valid frame blocks that are currently surrounding the conduit.
      Returns:
      the frame block count
    • getRange

      int getRange()
      Get the range (measured in blocks) within which players will receive the conduit's benefits.
      Returns:
      the conduit range
    • setTarget

      boolean setTarget(@Nullable @Nullable LivingEntity target)
      Set the conduit's hunting target.

      Note that the value set by this method may be overwritten by the conduit's periodic hunting logic. If the target is ever set to null, the conduit will continue to look for a new target. Additionally, if the target is set to an entity that does not meet a conduit's hunting conditions (e.g. the entity is not within the hunting area, has already been killed, etc.) then the passed entity will be ignored and the conduit will also continue to look for a new target.

      Parameters:
      target - the target entity, or null to remove the target
      Returns:
      true if the target was changed, false if the target was the same
    • getTarget

      Get the conduit's hunting target.
      Returns:
      the hunting target, or null if the conduit does not have a target
    • hasTarget

      boolean hasTarget()
      Check whether or not this conduit has an active (alive) hunting target.
      Returns:
      true if has a hunting target, false otherwise
    • getHuntingArea

      @NotNull @NotNull BoundingBox getHuntingArea()
      Get a BoundingBox (relative to real-world coordinates) in which the conduit will search for hostile entities to target.
      Returns:
      the hunting area bounding box