mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-01 04:31:58 +01:00
96d5e6ca48
Currently includes generated key holder classes for types used in the Registry Modification API
54 lines
2.1 KiB
Diff
54 lines
2.1 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Aikar <aikar@aikar.co>
|
|
Date: Mon, 6 Nov 2017 21:10:01 -0500
|
|
Subject: [PATCH] API to get a BlockState without a snapshot
|
|
|
|
This allows you to get a BlockState without creating a snapshot, operating
|
|
on the real tile entity.
|
|
|
|
This is useful for where performance is needed
|
|
|
|
diff --git a/src/main/java/org/bukkit/block/Block.java b/src/main/java/org/bukkit/block/Block.java
|
|
index 870ad6cd930653e6248abcc0fce94ffafbe9ebde..9f4d383ea3d6b26d16b8b77ca4c29d2d839ad6dd 100644
|
|
--- a/src/main/java/org/bukkit/block/Block.java
|
|
+++ b/src/main/java/org/bukkit/block/Block.java
|
|
@@ -272,6 +272,16 @@ public interface Block extends Metadatable, Translatable {
|
|
@NotNull
|
|
BlockState getState();
|
|
|
|
+ // Paper start
|
|
+ /**
|
|
+ * @see #getState() optionally disables use of snapshot, to operate on real block data
|
|
+ * @param useSnapshot if this block is a TE, should we create a fully copy of the TileEntity
|
|
+ * @return BlockState with the current state of this block
|
|
+ */
|
|
+ @NotNull
|
|
+ BlockState getState(boolean useSnapshot);
|
|
+ // Paper end
|
|
+
|
|
/**
|
|
* Returns the biome that this block resides in
|
|
*
|
|
diff --git a/src/main/java/org/bukkit/block/TileState.java b/src/main/java/org/bukkit/block/TileState.java
|
|
index 3b10fcc13893403b29f0260b8605144679e89b82..5c8517c5bcae10161952c104b6a4ff7c713bcdbd 100644
|
|
--- a/src/main/java/org/bukkit/block/TileState.java
|
|
+++ b/src/main/java/org/bukkit/block/TileState.java
|
|
@@ -36,4 +36,18 @@ public interface TileState extends BlockState, PersistentDataHolder {
|
|
@NotNull
|
|
@Override
|
|
PersistentDataContainer getPersistentDataContainer();
|
|
+
|
|
+ // Paper start
|
|
+ /**
|
|
+ * Checks if this TileState is a snapshot or a live
|
|
+ * representation of the underlying tile entity.
|
|
+ * <p>
|
|
+ * NOTE: You may still have to call {@link BlockState#update()} on
|
|
+ * live representations to update any visuals on the block.
|
|
+ *
|
|
+ * @return true if this is a snapshot
|
|
+ * @see Block#getState(boolean)
|
|
+ */
|
|
+ boolean isSnapshot();
|
|
+ // Paper end
|
|
}
|