Interface ChangeBlockEvent.Post

  • All Superinterfaces:
    ChangeBlockEvent, Event
    Enclosing interface:
    ChangeBlockEvent

    public static interface ChangeBlockEvent.Post
    extends ChangeBlockEvent
    Called when there are multiple block changes due to a BlockType having "ticked", in which the Cause will have a BlockSnapshot, or, in the case that an Entity has "ticked", in which the Cause will have an Entity, or, in the case that a BlockEntity "ticked", the Cause will have the BlockEntity.

    The Cause may contain Events, such as ChangeBlockEvent.All, NotifyNeighborBlockEvent, and ChangeBlockEvent.Pre. These events may be cancelled, or have their transactions modified, just like normal events, but this event is set in stone (pun intended) with regards to the representative state the world is in. Any Post is considered the "truth" of what happened, after all ChangeBlockEvent.All events may have been thrown for a particular cause, during some logic, so as to simplify how many batched events need to be thrown compared to the work being performed.

    For example, a piston extension would cause this event to be fired. A piston extension involves multiple distinct transactions - the piston head moving, and the adjacent block being set in a new position.

    Note: This event is fired after processing all other ChangeBlockEvent's.