From 119c616ab98e827e0a5430d833caa2056796ef3d Mon Sep 17 00:00:00 2001 From: Aikar Date: Wed, 30 Dec 2020 19:43:01 -0500 Subject: [PATCH] Additional Block Material API Faster version for isSolid() that utilizes NMS's state for isSolid instead of the slower process to do this in the Bukkit API Adds API for buildable, replaceable, burnable too. --- .../bukkit/craftbukkit/block/CraftBlock.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java index 5f4dcf6d86..1595e877b0 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java @@ -440,6 +440,25 @@ public class CraftBlock implements Block { return this.getNMS().liquid(); } + // Paper start + @Override + public boolean isBuildable() { + return this.getNMS().isSolid(); // This is in fact isSolid, despite the fact that isSolid below returns blocksMotion + } + @Override + public boolean isBurnable() { + return this.getNMS().ignitedByLava(); + } + @Override + public boolean isReplaceable() { + return this.getNMS().canBeReplaced(); + } + @Override + public boolean isSolid() { + return this.getNMS().blocksMotion(); + } + // Paper end + @Override public PistonMoveReaction getPistonMoveReaction() { return PistonMoveReaction.getById(this.getNMS().getPistonPushReaction().ordinal());