From 8da3c7bcf712d2150f159ccf2949e9eeed3c62dd Mon Sep 17 00:00:00 2001 From: yoyosource Date: Sun, 24 Sep 2023 18:10:09 +0200 Subject: [PATCH] Hotfix SignEditFrom20 Signed-off-by: yoyosource --- .../bausystem/features/world/SignEditFrom20.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) 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; }