From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Aikar Date: Wed, 30 Dec 2020 19:43:01 -0500 Subject: [PATCH] Additional Block Material API's 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. diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java index dbb1e219be66e37829ec5be585a9881d589cf6e6..aa1ef5bb1e27e8c45710299febb2d6c6b122ff15 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java @@ -618,6 +618,25 @@ public class CraftBlock implements Block { return this.getNMS().getMaterial().isLiquid(); } + // Paper start + @Override + public boolean isBuildable() { + return getNMS().getMaterial().isSolid(); // This is in fact isSolid, despite the fact that isSolid below returns blocksMotion + } + @Override + public boolean isBurnable() { + return getNMS().getMaterial().isFlammable(); + } + @Override + public boolean isReplaceable() { + return getNMS().getMaterial().isReplaceable(); + } + @Override + public boolean isSolid() { + return getNMS().getMaterial().blocksMotion(); + } + // Paper end + @Override public PistonMoveReaction getPistonMoveReaction() { return PistonMoveReaction.getById(this.getNMS().getPistonPushReaction().ordinal());