diff --git a/src/nl/Steffion/BlockHunt/Listeners/OnPlayerInteractEvent.java b/src/nl/Steffion/BlockHunt/Listeners/OnPlayerInteractEvent.java index 2dff080..154ded7 100644 --- a/src/nl/Steffion/BlockHunt/Listeners/OnPlayerInteractEvent.java +++ b/src/nl/Steffion/BlockHunt/Listeners/OnPlayerInteractEvent.java @@ -2,6 +2,7 @@ package nl.Steffion.BlockHunt.Listeners; import nl.Steffion.BlockHunt.Arena; import nl.Steffion.BlockHunt.ArenaHandler; +import nl.Steffion.BlockHunt.SignsHandler; import nl.Steffion.BlockHunt.W; import nl.Steffion.BlockHunt.Managers.ConfigC; import nl.Steffion.BlockHunt.Managers.MessageM; @@ -86,21 +87,25 @@ public class OnPlayerInteractEvent implements Listener { .equals(Material.SIGN_POST) || event.getClickedBlock().getType() .equals(Material.WALL_SIGN)) { - Sign sign = (Sign) event.getClickedBlock().getState(); - if (sign.getLine(1) != null) { - if (sign.getLine(1).contains("LEAVE")) { - if (PlayerM.hasPerm(player, PermsC.joinsign, true)) { - ArenaHandler.playerLeaveArena(player, true, - true); - } - } else { - for (Arena arena : W.arenaList) { - if (sign.getLines()[1] - .contains(arena.arenaName)) { - if (PlayerM.hasPerm(player, - PermsC.joinsign, true)) { - ArenaHandler.playerJoinArena(player, - arena.arenaName); + if (SignsHandler.isSign(new LocationSerializable(event + .getClickedBlock().getLocation()))) { + Sign sign = (Sign) event.getClickedBlock().getState(); + if (sign.getLine(1) != null) { + if (sign.getLine(1).contains("LEAVE")) { + if (PlayerM.hasPerm(player, PermsC.joinsign, + true)) { + ArenaHandler.playerLeaveArena(player, true, + true); + } + } else { + for (Arena arena : W.arenaList) { + if (sign.getLines()[1] + .contains(arena.arenaName)) { + if (PlayerM.hasPerm(player, + PermsC.joinsign, true)) { + ArenaHandler.playerJoinArena( + player, arena.arenaName); + } } } } diff --git a/src/nl/Steffion/BlockHunt/SignsHandler.java b/src/nl/Steffion/BlockHunt/SignsHandler.java index 316dc37..baf9a32 100644 --- a/src/nl/Steffion/BlockHunt/SignsHandler.java +++ b/src/nl/Steffion/BlockHunt/SignsHandler.java @@ -68,6 +68,19 @@ public class SignsHandler { } } + public static boolean isSign(LocationSerializable location) { + for (String sign : W.signs.getFile().getKeys(false)) { + LocationSerializable loc = new LocationSerializable( + (LocationSerializable) W.signs.getFile().get( + sign + ".location")); + if (loc.equals(location)) { + return true; + } + } + + return false; + } + @SuppressWarnings("unchecked") public static void updateSigns() { W.signs.load();