From cb35296c2ca7c6bde9b6ab16f9461c8859e6ca4c Mon Sep 17 00:00:00 2001 From: Fabian Gal Date: Sun, 18 Apr 2021 01:42:06 +0100 Subject: [PATCH] Added the choice of excluding decimal numbers in the config (quick solution) --- src/me/EtienneDx/RealEstate/Config.java | 2 ++ src/me/EtienneDx/RealEstate/REListener.java | 21 +++++++++++++++++++ .../RealEstate/Transactions/ClaimLease.java | 18 ++++++++++++++-- .../RealEstate/Transactions/ClaimRent.java | 19 +++++++++++++++-- .../RealEstate/Transactions/ClaimSell.java | 18 ++++++++++++++-- 5 files changed, 72 insertions(+), 6 deletions(-) diff --git a/src/me/EtienneDx/RealEstate/Config.java b/src/me/EtienneDx/RealEstate/Config.java index 8313120..4aab32b 100644 --- a/src/me/EtienneDx/RealEstate/Config.java +++ b/src/me/EtienneDx/RealEstate/Config.java @@ -61,6 +61,8 @@ public class Config extends AnnotationConfig public boolean cfgUseCurrencySymbol = false; @ConfigField(name="RealEstate.Rules.CurrencySymbol", comment = "In case UseCurrencySymbol is true, what symbol should be used?") public String cfgCurrencySymbol = "$"; + @ConfigField(name="RealEstate.Rules.UseDecimalCurrency", comment = "Allow players to use decimal currency e.g. $10.15") + public boolean cfgUseDecimalCurrency = true; @ConfigField(name="RealEstate.Messaging.MessageOwner", comment = "Should the owner get messaged once one of his claim is rented/leased/bought and on end of contracts?") public boolean cfgMessageOwner = true; diff --git a/src/me/EtienneDx/RealEstate/REListener.java b/src/me/EtienneDx/RealEstate/REListener.java index 7314056..4c73959 100644 --- a/src/me/EtienneDx/RealEstate/REListener.java +++ b/src/me/EtienneDx/RealEstate/REListener.java @@ -114,6 +114,13 @@ public class REListener implements Listener event.getBlock().breakNaturally(); return; } + if((price%1)!=0 && !RealEstate.instance.config.cfgUseDecimalCurrency) //if the price has a decimal number AND Decimal currency is disabled + { + player.sendMessage(RealEstate.instance.config.chatPrefix + ChatColor.RED + "The price cannot have a decimal number!"); + event.setCancelled(true); + event.getBlock().breakNaturally(); + return; + } if(claim.isAdminClaim()) { @@ -175,6 +182,13 @@ public class REListener implements Listener event.getBlock().breakNaturally(); return; } + if((price%1)!=0 && !RealEstate.instance.config.cfgUseDecimalCurrency) //if the price has a decimal number AND Decimal currency is disabled + { + player.sendMessage(RealEstate.instance.config.chatPrefix + ChatColor.RED + "The price cannot have a decimal number!"); + event.setCancelled(true); + event.getBlock().breakNaturally(); + return; + } if(event.getLine(2).isEmpty()) { @@ -279,6 +293,13 @@ public class REListener implements Listener event.getBlock().breakNaturally(); return; } + if((price%1)!=0 && !RealEstate.instance.config.cfgUseDecimalCurrency) //if the price has a decimal number AND Decimal currency is disabled + { + player.sendMessage(RealEstate.instance.config.chatPrefix + ChatColor.RED + "The price cannot have a decimal number!"); + event.setCancelled(true); + event.getBlock().breakNaturally(); + return; + } if(event.getLine(2).isEmpty()) { diff --git a/src/me/EtienneDx/RealEstate/Transactions/ClaimLease.java b/src/me/EtienneDx/RealEstate/Transactions/ClaimLease.java index f7544b3..2eb7461 100644 --- a/src/me/EtienneDx/RealEstate/Transactions/ClaimLease.java +++ b/src/me/EtienneDx/RealEstate/Transactions/ClaimLease.java @@ -71,11 +71,25 @@ public class ClaimLease extends BoughtTransaction //s.setLine(2, paymentsLeft + "x " + price + " " + RealEstate.econ.currencyNamePlural()); if(RealEstate.instance.config.cfgUseCurrencySymbol) { - s.setLine(2, paymentsLeft + "x " + RealEstate.instance.config.cfgCurrencySymbol + " " + price); + if(RealEstate.instance.config.cfgUseDecimalCurrency == false) + { + s.setLine(2, paymentsLeft + "x " + RealEstate.instance.config.cfgCurrencySymbol + " " + (int)Math.round(price)); + } + else + { + s.setLine(2, paymentsLeft + "x " + RealEstate.instance.config.cfgCurrencySymbol + " " + price); + } } else { - s.setLine(2, paymentsLeft + "x " + price + " " + RealEstate.econ.currencyNamePlural()); + if(RealEstate.instance.config.cfgUseDecimalCurrency == false) + { + s.setLine(2, paymentsLeft + "x " + (int)Math.round(price) + " " + RealEstate.econ.currencyNamePlural()); + } + else + { + s.setLine(2, paymentsLeft + "x " + price + " " + RealEstate.econ.currencyNamePlural()); + } } s.setLine(3, Utils.getTime(frequency, null, false)); s.update(true); diff --git a/src/me/EtienneDx/RealEstate/Transactions/ClaimRent.java b/src/me/EtienneDx/RealEstate/Transactions/ClaimRent.java index 68a1965..2a537d4 100644 --- a/src/me/EtienneDx/RealEstate/Transactions/ClaimRent.java +++ b/src/me/EtienneDx/RealEstate/Transactions/ClaimRent.java @@ -76,11 +76,26 @@ public class ClaimRent extends BoughtTransaction //s.setLine(2, owner != null ? Bukkit.getOfflinePlayer(owner).getName() : "SERVER"); if(RealEstate.instance.config.cfgUseCurrencySymbol) { - s.setLine(2, RealEstate.instance.config.cfgCurrencySymbol + " " + price); + if(RealEstate.instance.config.cfgUseDecimalCurrency == false) + { + s.setLine(2, RealEstate.instance.config.cfgCurrencySymbol + " " + (int)Math.round(price)); + } + else + { + s.setLine(2, RealEstate.instance.config.cfgCurrencySymbol + " " + price); + } + } else { - s.setLine(2, price + " " + RealEstate.econ.currencyNamePlural()); + if(RealEstate.instance.config.cfgUseDecimalCurrency == false) + { + s.setLine(2, (int)Math.round(price) + " " + RealEstate.econ.currencyNamePlural()); + } + else + { + s.setLine(2, price + " " + RealEstate.econ.currencyNamePlural()); + } } s.setLine(3, (maxPeriod > 1 ? maxPeriod + "x " : "") + Utils.getTime(duration, null, false)); s.update(true); diff --git a/src/me/EtienneDx/RealEstate/Transactions/ClaimSell.java b/src/me/EtienneDx/RealEstate/Transactions/ClaimSell.java index 6cbc55d..38d6f94 100644 --- a/src/me/EtienneDx/RealEstate/Transactions/ClaimSell.java +++ b/src/me/EtienneDx/RealEstate/Transactions/ClaimSell.java @@ -42,11 +42,25 @@ public class ClaimSell extends ClaimTransaction s.setLine(2, owner != null ? Utils.getSignString(Bukkit.getOfflinePlayer(owner).getName()) : "SERVER"); if(RealEstate.instance.config.cfgUseCurrencySymbol) { - s.setLine(3, RealEstate.instance.config.cfgCurrencySymbol + " " + price); + if(RealEstate.instance.config.cfgUseDecimalCurrency == false) + { + s.setLine(3, RealEstate.instance.config.cfgCurrencySymbol + " " + (int)Math.round(price)); + } + else + { + s.setLine(3, RealEstate.instance.config.cfgCurrencySymbol + " " + price); + } } else { - s.setLine(3, price + " " + RealEstate.econ.currencyNamePlural()); + if(RealEstate.instance.config.cfgUseDecimalCurrency == false) + { + s.setLine(3, (int)Math.round(price) + " " + RealEstate.econ.currencyNamePlural()); + } + else + { + s.setLine(3, price + " " + RealEstate.econ.currencyNamePlural()); + } } s.update(true); }