From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Aikar Date: Wed, 15 Aug 2018 01:04:58 -0400 Subject: [PATCH] Ability to get Tile Entities from a chunk without snapshots diff --git a/src/main/java/org/bukkit/Chunk.java b/src/main/java/org/bukkit/Chunk.java index fa576096e908f8fbdbef53e1bd91215ac9e73ed6..98263d896f316983609432c45b85401a2692432d 100644 --- a/src/main/java/org/bukkit/Chunk.java +++ b/src/main/java/org/bukkit/Chunk.java @@ -1,6 +1,8 @@ package org.bukkit; import java.util.Collection; +import java.util.function.Predicate; + import org.bukkit.block.Block; import org.bukkit.block.BlockState; import org.bukkit.block.data.BlockData; @@ -103,13 +105,36 @@ public interface Chunk extends PersistentDataHolder { @NotNull Entity[] getEntities(); + // Paper start /** * Get a list of all tile entities in the chunk. * * @return The tile entities. */ @NotNull - BlockState[] getTileEntities(); + default BlockState[] getTileEntities() { + return getTileEntities(true); + } + + /** + * Get a list of all tile entities in the chunk. + * + * @param useSnapshot Take snapshots or direct references + * @return The tile entities. + */ + @NotNull + BlockState[] getTileEntities(boolean useSnapshot); + + /** + * Get a list of all tile entities that match a given predicate in the chunk. + * + * @param blockPredicate The predicate of blocks to return tile entities for + * @param useSnapshot Take snapshots or direct references + * @return The tile entities. + */ + @NotNull + Collection getTileEntities(@NotNull Predicate blockPredicate, boolean useSnapshot); + // Paper end /** * Checks if the chunk is loaded.