diff --git a/src/me/EtienneDx/RealEstate/Config.java b/src/me/EtienneDx/RealEstate/Config.java index 8313120..e1c5a9b 100644 --- a/src/me/EtienneDx/RealEstate/Config.java +++ b/src/me/EtienneDx/RealEstate/Config.java @@ -37,6 +37,8 @@ public class Config extends AnnotationConfig public String cfgReplaceRent = "FOR RENT"; @ConfigField(name="RealEstate.Keywords.Replace.Lease", comment = "What is displayed on signs for preoperties to lease") public String cfgReplaceLease = "FOR LEASE"; + @ConfigField(name="RealEstate.Keywords.Replace.Ongoing.Rent", comment = "What is displayed on the first line of the sign once someone rents a claim.") + public String cfgReplaceOngoingRent = "[Rented]"; @ConfigField(name="RealEstate.Rules.Sell", comment = "Is selling claims enabled?") public boolean cfgEnableSell = true; @@ -61,6 +63,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 void onSignChange(SignChangeEvent event) 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 @@ else if(RealEstate.instance.config.cfgRentKeywords.contains(event.getLine(0).toL 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 @@ else if(RealEstate.instance.config.cfgLeaseKeywords.contains(event.getLine(0).to 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 boolean update() //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 49cbab8..e57cfeb 100644 --- a/src/me/EtienneDx/RealEstate/Transactions/ClaimRent.java +++ b/src/me/EtienneDx/RealEstate/Transactions/ClaimRent.java @@ -76,11 +76,26 @@ public boolean update() //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); @@ -107,8 +122,8 @@ public boolean update() else if(sign.getBlock().getState() instanceof Sign) { Sign s = (Sign) sign.getBlock().getState(); - s.setLine(0, RealEstate.instance.config.cfgSignsHeader); - s.setLine(1, Utils.getSignString("Rented by " + Bukkit.getOfflinePlayer(buyer).getName())); + s.setLine(0, ChatColor.GOLD + RealEstate.instance.config.cfgReplaceOngoingRent); //Changed the header to "[Rented]" so that it won't waste space on the next line and allow the name of the player to show underneath. + s.setLine(1, Utils.getSignString(Bukkit.getOfflinePlayer(buyer).getName()));//remove "Rented by" s.setLine(2, "Time remaining : "); int daysLeft = duration - days - 1;// we need to remove the current day 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 boolean update() 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); }