From d6b57bd96328eb4d11db12b8b9b309700d2fc9e6 Mon Sep 17 00:00:00 2001 From: md_5 Date: Sat, 27 Oct 2018 08:15:41 +1100 Subject: [PATCH] SPIGOT-4446: Legacy rotation methods don't work for wall mounted skulls --- .../org/bukkit/craftbukkit/block/CraftSkull.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftSkull.java b/src/main/java/org/bukkit/craftbukkit/block/CraftSkull.java index ad7a2dd170..110e04597b 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftSkull.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftSkull.java @@ -12,6 +12,8 @@ import org.bukkit.SkullType; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; import org.bukkit.block.Skull; +import org.bukkit.block.data.BlockData; +import org.bukkit.block.data.Directional; import org.bukkit.block.data.Rotatable; import org.bukkit.craftbukkit.entity.CraftPlayer; @@ -106,13 +108,18 @@ public class CraftSkull extends CraftBlockEntityState implement @Override public BlockFace getRotation() { - return ((Rotatable) getBlockData()).getRotation(); + BlockData blockData = getBlockData(); + return (blockData instanceof Rotatable) ? ((Rotatable) blockData).getRotation() : ((Directional) blockData).getFacing(); } @Override public void setRotation(BlockFace rotation) { - Rotatable blockData = (Rotatable) getBlockData(); - blockData.setRotation(rotation); + BlockData blockData = getBlockData(); + if (blockData instanceof Rotatable) { + ((Rotatable) blockData).setRotation(rotation); + } else { + ((Directional) blockData).setFacing(rotation); + } setBlockData(blockData); }