Add getPlacementBlockData to World

This commit is contained in:
William Blake Galbreath
2019-10-19 00:37:59 -05:00
parent d8a6cbf7b4
commit 45c7cd0c4e
2 changed files with 61 additions and 0 deletions

View File

@@ -0,0 +1,33 @@
From bbeeaa0c5fb5bd58b0d4f3326c68184f16bcda1f Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sat, 19 Oct 2019 00:34:36 -0500
Subject: [PATCH] Add getPlacementBlockData to World
---
src/main/java/org/bukkit/World.java | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
index e1f25bdd1..15b3f9c7b 100644
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
@@ -3016,6 +3016,16 @@ public interface World extends PluginMessageRecipient, Metadatable {
* @param enabled True to enable
*/
void setFluidTickEventEnabled(boolean enabled);
+
+ /**
+ * Get the hypothetical BlockData that would apply if one tries to set the given BlockData
+ *
+ * @param blockData BlockData to try
+ * @param location Location to check
+ * @return Valid BlockData for location
+ */
+ @NotNull
+ BlockData getPlacementBlockData(@NotNull BlockData blockData, @NotNull Location location);
// Purpur end
/**
--
2.23.0.rc1

View File

@@ -0,0 +1,28 @@
From 332af179006a86c548ce81589eaca216fd2aacfb Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sat, 19 Oct 2019 00:34:43 -0500
Subject: [PATCH] Add getPlacementBlockData to World
---
src/main/java/org/bukkit/craftbukkit/CraftWorld.java | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 0f33688cd5..112ad300d3 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -2361,6 +2361,11 @@ public class CraftWorld implements World {
public void setFluidTickEventEnabled(boolean enabled) {
getHandle().purpurConfig.fluidTickEvent = enabled;
}
+
+ public BlockData getPlacementBlockData(BlockData blockdata, Location location) {
+ IBlockData validData = net.minecraft.server.Block.getValidBlockForPosition(((CraftBlockData) blockdata).getState(), getHandle(), net.minecraft.server.MCUtil.toBlockPosition(location));
+ return CraftBlockData.fromData(validData == null ? Blocks.AIR.getBlockData() : validData);
+ }
// Purpur end
// Paper start
--
2.23.0.rc1