From df6b5bede06ccd6596196b97cbc7025e74485afe Mon Sep 17 00:00:00 2001 From: Etienne Dx Date: Fri, 14 Jan 2022 13:04:57 +0100 Subject: [PATCH] feat: updated to spigot 1.18.1 and GP 16.18-RC1 as a native dependency --- CHANGELOG.md | 5 +- pom.xml | 6 +- .../RealEstate/ClaimPermissionListener.java | 49 ++++++++++ .../RealEstate/GP_RealEstateHook.java | 93 ------------------- src/me/EtienneDx/RealEstate/Messages.java | 15 +++ src/me/EtienneDx/RealEstate/RealEstate.java | 3 +- .../RealEstate/Transactions/ClaimLease.java | 2 +- .../RealEstate/Transactions/ClaimRent.java | 2 +- 8 files changed, 73 insertions(+), 102 deletions(-) create mode 100644 src/me/EtienneDx/RealEstate/ClaimPermissionListener.java delete mode 100644 src/me/EtienneDx/RealEstate/GP_RealEstateHook.java diff --git a/CHANGELOG.md b/CHANGELOG.md index fb125e4..8e4c667 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,11 +6,12 @@ * Readme and changelog files * Error messages to *messages.yml* * List messages to *messages.yml* -* Fixed build pipeline to build with GP +* Support of [GriefPrevention v16.18-RC1](https://github.com/TechFortress/GriefPrevention/releases/tag/16.18-RC1) ### Modified * Changed java version to java 16 -* Changed spigot version to 1.17.1 +* Changed spigot version to 1.18.1 +* Removed requirement for custom GP jar file ### Fixed * Sign header color formatting being lost on server restart \ No newline at end of file diff --git a/pom.xml b/pom.xml index a06d862..4030e1c 100644 --- a/pom.xml +++ b/pom.xml @@ -127,7 +127,7 @@ org.spigotmc spigot-api - 1.17.1-R0.1-SNAPSHOT + 1.18.1-R0.1-SNAPSHOT provided @@ -148,9 +148,9 @@ provided - com.github.EtienneDx + com.github.TechFortress GriefPrevention - 1a4b2ea0b639c90f3858316fc4655478b5f0cdbc + 16.18-RC1 provided diff --git a/src/me/EtienneDx/RealEstate/ClaimPermissionListener.java b/src/me/EtienneDx/RealEstate/ClaimPermissionListener.java new file mode 100644 index 0000000..8accc72 --- /dev/null +++ b/src/me/EtienneDx/RealEstate/ClaimPermissionListener.java @@ -0,0 +1,49 @@ +package me.EtienneDx.RealEstate; + +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.plugin.PluginManager; + +import me.EtienneDx.RealEstate.Transactions.BoughtTransaction; +import me.EtienneDx.RealEstate.Transactions.Transaction; +import me.ryanhamshire.GriefPrevention.events.ClaimPermissionCheckEvent; + +public class ClaimPermissionListener implements Listener { + void registerEvents() + { + PluginManager pm = RealEstate.instance.getServer().getPluginManager(); + + pm.registerEvents(this, RealEstate.instance); + } + + @EventHandler + public void onClaimPermission(ClaimPermissionCheckEvent event) { + Transaction b = RealEstate.transactionsStore.getTransaction(event.getClaim()); + if( + b != null && + event.getCheckedUUID().equals(b.getOwner()) && + b instanceof BoughtTransaction && + ((BoughtTransaction)b).getBuyer() != null + ) { + switch(event.getRequiredPermission()) { + case Edit: + event.setDenialReason(() -> RealEstate.instance.messages.msgErrorClaimInTransactionCantEdit); + break; + case Access: + event.setDenialReason(() -> RealEstate.instance.messages.msgErrorClaimInTransactionCantAccess); + break; + case Build: + event.setDenialReason(() -> RealEstate.instance.messages.msgErrorClaimInTransactionCantBuild); + break; + case Inventory: + event.setDenialReason(() -> RealEstate.instance.messages.msgErrorClaimInTransactionCantInventory); + break; + case Manage: + event.setDenialReason(() -> RealEstate.instance.messages.msgErrorClaimInTransactionCantManage); + break; + default: + break; + } + } + } +} diff --git a/src/me/EtienneDx/RealEstate/GP_RealEstateHook.java b/src/me/EtienneDx/RealEstate/GP_RealEstateHook.java deleted file mode 100644 index 39b25bd..0000000 --- a/src/me/EtienneDx/RealEstate/GP_RealEstateHook.java +++ /dev/null @@ -1,93 +0,0 @@ -package me.EtienneDx.RealEstate; - -import org.bukkit.Material; -import org.bukkit.entity.Player; - -import me.EtienneDx.RealEstate.Transactions.BoughtTransaction; -import me.EtienneDx.RealEstate.Transactions.Transaction; -import me.ryanhamshire.GriefPrevention.Claim; -import me.ryanhamshire.GriefPrevention.IAddonPlugin; - -public class GP_RealEstateHook implements IAddonPlugin -{ - @Override - public String allowEdit(Claim claim, Player player) - { - Transaction b = RealEstate.transactionsStore.getTransaction(claim); - if(b != null && player.getUniqueId().equals(b.getOwner()) && b instanceof BoughtTransaction) - { - if(((BoughtTransaction)b).getBuyer() != null) - return "This claim is currently involved in a transaction, you can't edit it!"; - } - return null; - } - - @Override - public String allowBuild(Claim claim, Player player, Material material) - { - Transaction b = RealEstate.transactionsStore.getTransaction(claim); - if(b != null && player.getUniqueId().equals(b.getOwner()) && b instanceof BoughtTransaction)// ?? - { - if(((BoughtTransaction)b).getBuyer() != null) - return "This claim is currently involved in a transaction, you can't build on it!"; - } - return null; - } - - @Override - public String allowAccess(Claim claim, Player player) - { - Transaction b = RealEstate.transactionsStore.getTransaction(claim); - if(b != null && player.getUniqueId().equals(b.getOwner()) && b instanceof BoughtTransaction) - { - if(((BoughtTransaction)b).getBuyer() != null) - return "This claim is currently involved in a transaction, you can't access it!"; - } - return null; - } - - @Override - public String allowContainers(Claim claim, Player player) - { - Transaction b = RealEstate.transactionsStore.getTransaction(claim); - if(b != null && player.getUniqueId().equals(b.getOwner()) && b instanceof BoughtTransaction) - { - if(((BoughtTransaction)b).getBuyer() != null) - return "This claim is currently involved in a transaction, you can't access it's containers!"; - } - return null; - } - - @Override - public String allowGrantPermission(Claim claim, Player player) - { - Transaction b = RealEstate.transactionsStore.getTransaction(claim); - if(b != null && b instanceof BoughtTransaction) - { - if(((BoughtTransaction)b).getBuyer() != null && !((BoughtTransaction)b).getBuyer().equals(player.getUniqueId())) - return "This claim is currently involved in a transaction, you can't change any permission!"; - } - return null; - } - - @Override - public String mayResizeClaim(Claim claim, Player player, int newx1, int newx2, int newy1, int newy2, int newz1, - int newz2) - { - if(RealEstate.transactionsStore.anyTransaction(claim)) - { - return "This claim is currently involved in a transaction, you can't resize it!"; - } - return null; - } - - @Override - public String mayAbandonClaim(Claim claim, Player player) - { - if(RealEstate.transactionsStore.anyTransaction(claim)) - { - return "This claim is currently involved in a transaction, you can't abandon it!"; - } - return null; - } -} diff --git a/src/me/EtienneDx/RealEstate/Messages.java b/src/me/EtienneDx/RealEstate/Messages.java index 189e073..9a66097 100644 --- a/src/me/EtienneDx/RealEstate/Messages.java +++ b/src/me/EtienneDx/RealEstate/Messages.java @@ -60,6 +60,21 @@ public class Messages extends AnnotationConfig @ConfigField(name="RealEstate.List.NextPage", comment="0: all|sell|rent|lease; 1: next page number") public String msgListNextPage = "$6To see the next page, type $a/re list {0} {1}"; + @ConfigField(name="RealEstate.Errors.ClaimInTransaction.CantEdit") + public String msgErrorClaimInTransactionCantEdit = "$cThis claim is currently involved in a transaction, you can't edit it!"; + + @ConfigField(name="RealEstate.Errors.ClaimInTransaction.CantAccess") + public String msgErrorClaimInTransactionCantAccess = "$cThis claim is currently involved in a transaction, you can't access it!"; + + @ConfigField(name="RealEstate.Errors.ClaimInTransaction.CantBuild") + public String msgErrorClaimInTransactionCantBuild = "$cThis claim is currently involved in a transaction, you can't build on it!"; + + @ConfigField(name="RealEstate.Errors.ClaimInTransaction.CantInventory") + public String msgErrorClaimInTransactionCantInventory = "$cThis claim is currently involved in a transaction, you can't access its containers!"; + + @ConfigField(name="RealEstate.Errors.ClaimInTransaction.CantManage") + public String msgErrorClaimInTransactionCantManage = "$cThis claim is currently involved in a transaction, you can't manage it!"; + public Messages() { this.pdf = RealEstate.instance.getDescription(); diff --git a/src/me/EtienneDx/RealEstate/RealEstate.java b/src/me/EtienneDx/RealEstate/RealEstate.java index ada18f3..cdec591 100644 --- a/src/me/EtienneDx/RealEstate/RealEstate.java +++ b/src/me/EtienneDx/RealEstate/RealEstate.java @@ -96,13 +96,12 @@ public class RealEstate extends JavaPlugin RealEstate.transactionsStore = new TransactionsStore(); new REListener().registerEvents(); + new ClaimPermissionListener().registerEvents(); manager = new BukkitCommandManager(this); manager.enableUnstableAPI("help"); registerConditions(); manager.registerCommand(new RECommand()); - - GriefPrevention.addonPlugins.add(new GP_RealEstateHook()); } private void registerConditions() diff --git a/src/me/EtienneDx/RealEstate/Transactions/ClaimLease.java b/src/me/EtienneDx/RealEstate/Transactions/ClaimLease.java index af8f20a..b59e57a 100644 --- a/src/me/EtienneDx/RealEstate/Transactions/ClaimLease.java +++ b/src/me/EtienneDx/RealEstate/Transactions/ClaimLease.java @@ -355,7 +355,7 @@ public class ClaimLease extends BoughtTransaction lastPayment = LocalDateTime.now(); paymentsLeft--; claim.setPermission(buyer.toString(), ClaimPermission.Build); - claim.allowGrantPermission(player); + claim.setPermission(player.getUniqueId().toString(), ClaimPermission.Manage); GriefPrevention.instance.dataStore.saveClaim(claim); getHolder().breakNaturally();// leases don't have signs indicating the remaining time update(); diff --git a/src/me/EtienneDx/RealEstate/Transactions/ClaimRent.java b/src/me/EtienneDx/RealEstate/Transactions/ClaimRent.java index d288039..c5f148d 100644 --- a/src/me/EtienneDx/RealEstate/Transactions/ClaimRent.java +++ b/src/me/EtienneDx/RealEstate/Transactions/ClaimRent.java @@ -329,7 +329,7 @@ public class ClaimRent extends BoughtTransaction startDate = LocalDateTime.now(); autoRenew = false; claim.setPermission(buyer.toString(), buildTrust ? ClaimPermission.Build : ClaimPermission.Inventory); - claim.allowGrantPermission(player); + claim.setPermission(player.getUniqueId().toString(), ClaimPermission.Manage); claim.managers.add(player.getUniqueId().toString()); claim.setSubclaimRestrictions(true); GriefPrevention.instance.dataStore.saveClaim(claim);