geforkt von Mirrors/Paper
58 Zeilen
1.8 KiB
Diff
58 Zeilen
1.8 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Aikar <aikar@aikar.co>
|
|
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 1a4b6922c0a881b60ddf305b1e2b3af0dfde46c3..049c36807d2a970842442c1b7517c06f3f150041 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<BlockState> getTileEntities(@NotNull Predicate<Block> blockPredicate, boolean useSnapshot);
|
|
+ // Paper end
|
|
|
|
/**
|
|
* Checks if the chunk is loaded.
|