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 40ddeb7abd49eeece531a8e90b4508f3831cc3e9..5a4884db36d448c885e49c965ae329a0638dd628 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; @@ -111,13 +113,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.