diff --git a/com/Acrobot/Breeze/Utils/NumberUtil.java b/com/Acrobot/Breeze/Utils/NumberUtil.java index 4a3f6f1..94b3f26 100644 --- a/com/Acrobot/Breeze/Utils/NumberUtil.java +++ b/com/Acrobot/Breeze/Utils/NumberUtil.java @@ -65,7 +65,7 @@ public class NumberUtil { } /** - * Rounds the number up to two digit points (Can be inaccurate due to using decimal-points) + * Rounds the number up to two decimal points (Can be inaccurate due to using decimal-points) * * @param number Number to round * @return Rounded number @@ -73,6 +73,15 @@ public class NumberUtil { public static double roundUp(double number) { return Math.ceil(number * 100) / 100; } + /** + * Rounds the number down to two decimal points + * + * @param number Number to round + * @return Rounded number + */ + public static double roundDown(double number) { + return Math.floor(number * 100) / 100; + } /** * Converts the number (in seconds) to timer-like format, like 2:00 (minutes:seconds) diff --git a/com/Acrobot/ChestShop/Economy/Economy.java b/com/Acrobot/ChestShop/Economy/Economy.java index 899756b..5d10dcd 100644 --- a/com/Acrobot/ChestShop/Economy/Economy.java +++ b/com/Acrobot/ChestShop/Economy/Economy.java @@ -17,42 +17,42 @@ public class Economy { return !p.isEmpty() && economy.hasAccount(uName.getName(p)); } + public static String getServerAccountName() { + return Config.getString(Property.SERVER_ECONOMY_ACCOUNT); + } + + public static boolean isServerAccount(String acc) { + return getServerAccountName().equals(acc); + } + public static void add(String name, double amount) { - if (!hasAccount(name)) { - return; - } + Property taxAmount = isServerAccount(name) ? Property.SERVER_TAX_AMOUNT : Property.TAX_AMOUNT; - String serverAccount = Config.getString(Property.SERVER_ECONOMY_ACCOUNT); - Property taxAmount = name.equals(serverAccount) ? Property.SERVER_TAX_AMOUNT : Property.TAX_AMOUNT; - - if (Config.getFloat(taxAmount) != 0) { - double tax = getTax(taxAmount, amount); - if (!serverAccount.isEmpty()) { - economy.add(serverAccount, tax); + double tax = getTax(taxAmount, amount); + if (tax != 0) { + if (!serverAccount().isEmpty()) { + economy.add(getServerAccountName(), tax); } amount -= tax; } - - economy.add(uName.getName(name), roundUp(amount)); + + if (name.isEmpty()) return; + economy.add(uName.getName(name), amount); } public static double getTax(Property tax, double price) { - return (Config.getFloat(tax) / 100F) * price; + return roundDown((Config.getFloat(tax) / 100F) * price); } public static void subtract(String name, double amount) { - if (!hasAccount(name)) { - return; - } - + if (name.isEmpty()) return; economy.subtract(uName.getName(name), roundUp(amount)); } public static boolean hasEnough(String name, double amount) { - if (!hasAccount(name)) { + if (isServerAccount(name)) { return true; } - return economy.hasEnough(uName.getName(name), roundUp(amount)); }