diff options
author | KHobbits <rob@khobbits.co.uk> | 2014-05-25 17:03:23 +0100 |
---|---|---|
committer | KHobbits <rob@khobbits.co.uk> | 2014-05-25 17:03:23 +0100 |
commit | 889dde75492710d997c09869d561882a2e98f7f0 (patch) | |
tree | dd5db0d300fa6b6855afa386ad2cbafb8ac877e6 | |
parent | ada2fe01a234327fbc28ce456009b5048194d9a3 (diff) | |
download | Essentials-889dde75492710d997c09869d561882a2e98f7f0.tar Essentials-889dde75492710d997c09869d561882a2e98f7f0.tar.gz Essentials-889dde75492710d997c09869d561882a2e98f7f0.tar.lz Essentials-889dde75492710d997c09869d561882a2e98f7f0.tar.xz Essentials-889dde75492710d997c09869d561882a2e98f7f0.zip |
Abort transaction before updating funds on balance overflow.
-rw-r--r-- | Essentials/src/com/earth2me/essentials/UserData.java | 12 | ||||
-rw-r--r-- | Essentials/src/com/earth2me/essentials/commands/Commandeco.java | 4 |
2 files changed, 10 insertions, 6 deletions
diff --git a/Essentials/src/com/earth2me/essentials/UserData.java b/Essentials/src/com/earth2me/essentials/UserData.java index c312fbe84..ee0650388 100644 --- a/Essentials/src/com/earth2me/essentials/UserData.java +++ b/Essentials/src/com/earth2me/essentials/UserData.java @@ -115,17 +115,19 @@ public abstract class UserData extends PlayerExtension implements IConf } public void setMoney(BigDecimal value, boolean throwError) throws MaxMoneyException - { - money = value; + { BigDecimal maxMoney = ess.getSettings().getMaxMoney(); BigDecimal minMoney = ess.getSettings().getMinMoney(); - if (money.compareTo(maxMoney) > 0) - { - money = maxMoney; + if (value.compareTo(maxMoney) > 0) + { if (throwError) { throw new MaxMoneyException(); } + money = maxMoney; + } + else { + money = value; } if (money.compareTo(minMoney) < 0) { diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandeco.java b/Essentials/src/com/earth2me/essentials/commands/Commandeco.java index 5efe54818..f589dcfed 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandeco.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandeco.java @@ -105,8 +105,10 @@ public class Commandeco extends EssentialsLoopCommand private void set(BigDecimal amount, final User player, final CommandSource sender) throws MaxMoneyException { BigDecimal minBalance = ess.getSettings().getMinMoney(); + BigDecimal maxBalance = ess.getSettings().getMaxMoney(); boolean underMinimum = (amount.compareTo(minBalance) < 0); - player.setMoney(underMinimum ? minBalance : amount); + boolean aboveMax = (amount.compareTo(maxBalance) > 0); + player.setMoney(underMinimum ? minBalance : aboveMax ? maxBalance : amount); player.sendMessage(tl("setBal", NumberUtil.displayCurrency(player.getMoney(), ess))); if (sender != null) { |