diff --git a/Essentials/src/com/earth2me/essentials/signs/SignWarp.java b/Essentials/src/com/earth2me/essentials/signs/SignWarp.java index 47af8228b..2bdc5afdb 100644 --- a/Essentials/src/com/earth2me/essentials/signs/SignWarp.java +++ b/Essentials/src/com/earth2me/essentials/signs/SignWarp.java @@ -40,16 +40,24 @@ public class SignWarp extends EssentialsSign { protected boolean onSignInteract(final ISign sign, final User player, final String username, final IEssentials ess) throws SignException, ChargeException { final String warpName = sign.getLine(1); final String group = sign.getLine(2); - if ((!group.isEmpty() && ("§2Everyone".equals(group) || player.inGroup(group))) || (group.isEmpty() && (!ess.getSettings().getPerWarpPermission() || player.isAuthorized("essentials.warps." + warpName)))) { - final Trade charge = getTrade(sign, 3, ess); - try { - player.getTeleport().warp(player, warpName, charge, TeleportCause.PLUGIN); - Trade.log("Sign", "Warp", "Interact", username, null, username, charge, sign.getBlock().getLocation(), ess); - } catch (Exception ex) { - throw new SignException(ex.getMessage(), ex); + + if (!group.isEmpty()) { + if (!"§2Everyone".equals(group) && !player.inGroup(group)) { + throw new SignException(tl("warpUsePermission")); + } + } else { + if (ess.getSettings().getPerWarpPermission() && !player.isAuthorized("essentials.warps." + warpName)) { + throw new SignException(tl("warpUsePermission")); } - return true; } - return false; + + final Trade charge = getTrade(sign, 3, ess); + try { + player.getTeleport().warp(player, warpName, charge, TeleportCause.PLUGIN); + Trade.log("Sign", "Warp", "Interact", username, null, username, charge, sign.getBlock().getLocation(), ess); + } catch (Exception ex) { + throw new SignException(ex.getMessage(), ex); + } + return true; } }