diff --git a/src/main/java/world/bentobox/warps/managers/WarpSignsManager.java b/src/main/java/world/bentobox/warps/managers/WarpSignsManager.java index 2e67d54..2978d8d 100644 --- a/src/main/java/world/bentobox/warps/managers/WarpSignsManager.java +++ b/src/main/java/world/bentobox/warps/managers/WarpSignsManager.java @@ -21,6 +21,7 @@ import org.bukkit.ChatColor; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.Sound; +import org.bukkit.Tag; import org.bukkit.World; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; @@ -423,7 +424,7 @@ public class WarpSignsManager { } // Find out which direction the warp is facing Block b = warpSpot.getBlock(); - if (b.getType().name().contains("WALL_SIGN")) { + if (Tag.WALL_SIGNS.isTagged(b.getType())) { org.bukkit.block.data.type.WallSign s = (org.bukkit.block.data.type.WallSign) b.getBlockData(); BlockFace directionFacing = s.getFacing(); Location inFront = b.getRelative(directionFacing).getLocation(); @@ -436,7 +437,13 @@ public class WarpSignsManager { warpPlayer(user, oneDown, owner, directionFacing, pvp); return; } - } else if (b.getType().name().contains("SIGN")) { + } else if (Tag.ALL_HANGING_SIGNS.isTagged(b.getType())) { + Location below = b.getRelative(BlockFace.DOWN).getRelative(BlockFace.DOWN).getLocation(); + if ((addon.getIslands().isSafeLocation(below))) { + warpPlayer(user, below, owner, BlockFace.DOWN, pvp); + return; + } + } else if (Tag.STANDING_SIGNS.isTagged(b.getType())) { org.bukkit.block.data.type.Sign s = (org.bukkit.block.data.type.Sign) b.getBlockData(); BlockFace directionFacing = s.getRotation(); Location inFront = b.getRelative(directionFacing).getLocation(); diff --git a/src/test/java/world/bentobox/warps/WarpSignsManagerTest.java b/src/test/java/world/bentobox/warps/WarpSignsManagerTest.java index 8a53f70..ea51cb0 100644 --- a/src/test/java/world/bentobox/warps/WarpSignsManagerTest.java +++ b/src/test/java/world/bentobox/warps/WarpSignsManagerTest.java @@ -25,6 +25,7 @@ import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.OfflinePlayer; import org.bukkit.Server; +import org.bukkit.Tag; import org.bukkit.World; import org.bukkit.World.Environment; import org.bukkit.block.Block; @@ -203,6 +204,9 @@ public class WarpSignsManagerTest { PowerMockito.mockStatic(Bukkit.class, Mockito.RETURNS_MOCKS); when(Bukkit.getPluginManager()).thenReturn(pim); + // Tags + when(Tag.STANDING_SIGNS.isTagged(Material.ACACIA_SIGN)).thenReturn(true); + // Players Manager when(plugin.getPlayers()).thenReturn(pm); when(pm.getName(uuid)).thenReturn("tastybento");