Skip to content

Commit

Permalink
Fixed a ClassCastException when breaking a block that an Hanging Sign…
Browse files Browse the repository at this point in the history
… is placed on (#1855)
  • Loading branch information
OmerBenGera committed Sep 2, 2023
1 parent 9417807 commit 4aed7af
Showing 1 changed file with 10 additions and 6 deletions.
Expand Up @@ -14,6 +14,7 @@
import org.bukkit.Location;
import org.bukkit.block.Block;
import org.bukkit.block.BlockFace;
import org.bukkit.block.BlockState;
import org.bukkit.block.Sign;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
Expand Down Expand Up @@ -79,22 +80,25 @@ public void onSignBreak(BlockBreakEvent e) {
} else {
for (BlockFace blockFace : BlockFace.values()) {
Block faceBlock = e.getBlock().getRelative(blockFace);
if (faceBlock.getState() instanceof Sign) {
BlockState blockState = faceBlock.getState();
if (blockState instanceof Sign) {
boolean isSign;

if (ServerVersion.isLegacy()) {
org.bukkit.material.Sign sign = (org.bukkit.material.Sign) faceBlock.getState().getData();
org.bukkit.material.Sign sign = (org.bukkit.material.Sign) blockState.getData();
isSign = sign.getAttachedFace().getOppositeFace() == blockFace;
} else {
Object blockData = plugin.getNMSWorld().getBlockData(faceBlock);
if (blockData instanceof org.bukkit.block.data.type.Sign) {
isSign = ((org.bukkit.block.data.type.Sign) blockData).getRotation().getOppositeFace() == blockFace;
} else {
if (blockData instanceof org.bukkit.block.data.Rotatable) {
isSign = ((org.bukkit.block.data.Rotatable) blockData).getRotation().getOppositeFace() == blockFace;
} else if (blockData instanceof org.bukkit.block.data.Directional) {
isSign = ((org.bukkit.block.data.Directional) blockData).getFacing().getOppositeFace() == blockFace;
} else {
throw new RuntimeException("Found sign that cannot be handled: " + blockData);
}
}

if (isSign && preventSignBreak(e.getPlayer(), (Sign) faceBlock.getState()))
if (isSign && preventSignBreak(e.getPlayer(), (Sign) blockState))
e.setCancelled(true);
}
}
Expand Down

0 comments on commit 4aed7af

Please sign in to comment.