From f1b20038c5b8d58ae8c8a2c0a68982837e62213b Mon Sep 17 00:00:00 2001 From: Famous_Longwing Date: Mon, 19 Feb 2024 01:05:47 -0500 Subject: [PATCH] Signs now update quicker when updated, as opposed to waiting for the next update --- src/me/EtienneDx/RealEstate/REListener.java | 15 +++++++++++++-- .../RealEstate/Transactions/ClaimRent.java | 2 ++ .../Transactions/TransactionsStore.java | 17 +++++++++++++++++ 3 files changed, 32 insertions(+), 2 deletions(-) diff --git a/src/me/EtienneDx/RealEstate/REListener.java b/src/me/EtienneDx/RealEstate/REListener.java index decec38..45d1b8f 100644 --- a/src/me/EtienneDx/RealEstate/REListener.java +++ b/src/me/EtienneDx/RealEstate/REListener.java @@ -6,6 +6,7 @@ import java.util.regex.Pattern; import org.bukkit.ChatColor; import org.bukkit.Location; import org.bukkit.block.Sign; +import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; @@ -29,7 +30,6 @@ public class REListener implements Listener pm.registerEvents(this, RealEstate.instance); //RealEstate.instance.getCommand("re").setExecutor(this); } - @EventHandler public void onSignChange(SignChangeEvent event) { @@ -40,7 +40,6 @@ public class REListener implements Listener { Player player = event.getPlayer(); Location loc = event.getBlock().getLocation(); - Claim claim = GriefPrevention.instance.dataStore.getClaimAt(loc, false, null); if(claim == null)// must have something to sell { @@ -259,6 +258,7 @@ public class REListener implements Listener event.setCancelled(true); RealEstate.transactionsStore.rent(claim, player, price, event.getBlock().getLocation(), duration, rentPeriods, RealEstate.instance.config.cfgRentKeywords.contains(event.getLine(0).toLowerCase())); + } else if(RealEstate.instance.config.cfgLeaseKeywords.contains(event.getLine(0).toLowerCase()))// we want to rent it { @@ -364,6 +364,17 @@ public class REListener implements Listener event.setCancelled(true); RealEstate.transactionsStore.lease(claim, player, price, event.getBlock().getLocation(), frequency, paymentsCount); } + RealEstate.instance.getServer().getScheduler().scheduleSyncDelayedTask(RealEstate.instance, new Runnable() { + @Override + public void run() { + //in short we want to have the transaction update here... + // + Transaction tr = RealEstate.transactionsStore.getTransaction(claim); + RealEstate.transactionsStore.kickTransaction(tr); + + } + + }); } } diff --git a/src/me/EtienneDx/RealEstate/Transactions/ClaimRent.java b/src/me/EtienneDx/RealEstate/Transactions/ClaimRent.java index 1d1c1f6..68541a2 100644 --- a/src/me/EtienneDx/RealEstate/Transactions/ClaimRent.java +++ b/src/me/EtienneDx/RealEstate/Transactions/ClaimRent.java @@ -7,6 +7,8 @@ import java.time.LocalTime; import java.time.Period; import java.time.format.DateTimeFormatter; import java.util.Map; + + import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.OfflinePlayer; diff --git a/src/me/EtienneDx/RealEstate/Transactions/TransactionsStore.java b/src/me/EtienneDx/RealEstate/Transactions/TransactionsStore.java index 4385385..9698af6 100644 --- a/src/me/EtienneDx/RealEstate/Transactions/TransactionsStore.java +++ b/src/me/EtienneDx/RealEstate/Transactions/TransactionsStore.java @@ -175,7 +175,23 @@ public class TransactionsStore } saveData(); } + public void kickTransaction (Transaction tr) + { + if(tr instanceof ClaimSell) + { + tr.update(); + } + if(tr instanceof ClaimRent) + { + tr.update(); + } + if(tr instanceof ClaimLease) + { + tr.update(); + } + + } public boolean canCancelTransaction(Transaction tr) { return tr instanceof ClaimSell || (tr instanceof ClaimRent && ((ClaimRent)tr).buyer == null) || @@ -227,6 +243,7 @@ public class TransactionsStore public void rent(Claim claim, Player player, double price, Location sign, int duration, int rentPeriods, boolean buildTrust) { + ClaimRent cr = new ClaimRent(claim, claim.isAdminClaim() ? null : player, price, sign, duration, rentPeriods, buildTrust); claimRent.put(claim.getID().toString(), cr); cr.update();