diff options
author | snowleo <schneeleo@gmail.com> | 2011-10-09 17:06:32 +0200 |
---|---|---|
committer | snowleo <schneeleo@gmail.com> | 2011-10-09 17:06:32 +0200 |
commit | 9524cd0543db75c6be0f9ed88c3c40c715bc8341 (patch) | |
tree | 2b266675a379adc06fa5b795e3db07ca5c62c55d | |
parent | d075b14e4f1f63fda7df54fe7076312506e81587 (diff) | |
download | Essentials-9524cd0543db75c6be0f9ed88c3c40c715bc8341.tar Essentials-9524cd0543db75c6be0f9ed88c3c40c715bc8341.tar.gz Essentials-9524cd0543db75c6be0f9ed88c3c40c715bc8341.tar.lz Essentials-9524cd0543db75c6be0f9ed88c3c40c715bc8341.tar.xz Essentials-9524cd0543db75c6be0f9ed88c3c40c715bc8341.zip |
Allow players with essentials.signs.trade.override permission break invalid trade signs.
-rw-r--r-- | Essentials/src/com/earth2me/essentials/signs/SignTrade.java | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/Essentials/src/com/earth2me/essentials/signs/SignTrade.java b/Essentials/src/com/earth2me/essentials/signs/SignTrade.java index bf85d827c..c19d19178 100644 --- a/Essentials/src/com/earth2me/essentials/signs/SignTrade.java +++ b/Essentials/src/com/earth2me/essentials/signs/SignTrade.java @@ -10,7 +10,6 @@ import org.bukkit.inventory.ItemStack; public class SignTrade extends EssentialsSign { - public SignTrade() { super("Trade"); @@ -40,11 +39,11 @@ public class SignTrade extends EssentialsSign substractAmount(sign, 1, stored, ess); stored.pay(player); Trade.log("Sign", "Trade", "OwnerInteract", username, null, username, stored, sign.getBlock().getLocation(), ess); - } + } catch (SignException e) { throw new SignException(Util.i18n("tradeSignEmptyOwner")); - } + } } else { @@ -67,11 +66,22 @@ public class SignTrade extends EssentialsSign if ((sign.getLine(3).length() > 3 && sign.getLine(3).substring(2).equalsIgnoreCase(username)) || player.isAuthorized("essentials.signs.trade.override")) { - final Trade stored1 = getTrade(sign, 1, true, false, ess); - final Trade stored2 = getTrade(sign, 2, true, false, ess); - stored1.pay(player); - stored2.pay(player); - Trade.log("Sign", "Trade", "Break", username, stored2, username, stored1, sign.getBlock().getLocation(), ess); + try + { + final Trade stored1 = getTrade(sign, 1, true, false, ess); + final Trade stored2 = getTrade(sign, 2, true, false, ess); + stored1.pay(player); + stored2.pay(player); + Trade.log("Sign", "Trade", "Break", username, stored2, username, stored1, sign.getBlock().getLocation(), ess); + } + catch (SignException e) + { + if (player.isAuthorized("essentials.signs.trade.override")) + { + return true; + } + throw e; + } return true; } else |