diff --git a/BauSystem_Main/src/de/steamwar/bausystem/features/world/SignEditFrom20.java b/BauSystem_Main/src/de/steamwar/bausystem/features/world/SignEditFrom20.java index 4f7ad67a..668a9453 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/features/world/SignEditFrom20.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/features/world/SignEditFrom20.java @@ -31,6 +31,7 @@ import org.bukkit.block.Block; import org.bukkit.block.BlockFace; import org.bukkit.block.Sign; import org.bukkit.block.data.BlockData; +import org.bukkit.block.data.Directional; import org.bukkit.block.data.Rotatable; import org.bukkit.block.sign.Side; import org.bukkit.block.sign.SignSide; @@ -96,7 +97,15 @@ public class SignEditFrom20 implements Listener { private Side signSide(Player entity, Block sign) { Vector vector = entity.getEyeLocation().toVector().subtract(sign.getLocation().add(0.5, 0.5, 0.5).toVector()); - BlockFace blockFace = ((org.bukkit.block.data.type.Sign) sign.getBlockData()).getRotation(); + BlockData blockData = sign.getBlockData(); + + BlockFace blockFace = BlockFace.NORTH; + if (blockData instanceof Directional) { + blockFace = ((Directional) blockData).getFacing(); + } else if (blockData instanceof Rotatable) { + blockFace = ((Rotatable) blockData).getRotation(); + } + Vector signDirection = new Vector(blockFace.getModX(), blockFace.getModY(), blockFace.getModZ()); return vector.dot(signDirection) > 0 ? Side.FRONT : Side.BACK; }