diff --git a/src/main/java/me/ryanhamshire/GriefPrevention/PlayerEventHandler.java b/src/main/java/me/ryanhamshire/GriefPrevention/PlayerEventHandler.java index 4ceacb6..29c2999 100644 --- a/src/main/java/me/ryanhamshire/GriefPrevention/PlayerEventHandler.java +++ b/src/main/java/me/ryanhamshire/GriefPrevention/PlayerEventHandler.java @@ -59,6 +59,7 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.block.Action; +import org.bukkit.event.block.CauldronLevelChangeEvent; import org.bukkit.event.entity.EntityDamageByEntityEvent; import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.PlayerDeathEvent; @@ -999,6 +1000,29 @@ class PlayerEventHandler implements Listener } } + @EventHandler(ignoreCancelled = true, priority = EventPriority.LOWEST) + public void onPlayerBucketatCauldron(CauldronLevelChangeEvent event) + { + if (!instance.claimsEnabledForWorld(event.getBlock().getWorld())) return; + Entity entity = event.getEntity(); + Block block = event.getBlock(); + if (entity == null) return; + if (entity instanceof Player player) { + Claim claim = dataStore.getClaimAt(block.getLocation(), false, null); + if (claim == null) + return; + + Supplier allowContainer = claim.checkPermission(player, ClaimPermission.Inventory, event); + + if (allowContainer != null) + { + event.setCancelled(true); + GriefPrevention.sendMessage(player, TextMode.Err, allowContainer.get()); + return; + } + } + } + //when a player interacts with the world @EventHandler(priority = EventPriority.LOWEST) void onPlayerInteract(PlayerInteractEvent event) diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index cd0ce07..feea7fd 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -207,13 +207,13 @@ commands: aliases: [kfc] permission: griefprevention.kickfromclaim permissions: - griefprevention.createclaims: + griefprevention.createclaims: description: Grants permission to create claims. default: true griefprevention.admin.*: description: Grants all administrative functionality. children: - griefprevention.restorenature: true + griefprevention.restorenature: true griefprevention.restorenatureaggressive: true griefprevention.ignoreclaims: true griefprevention.adminclaims: true @@ -242,7 +242,7 @@ permissions: griefprevention.kickfromclaim: true griefprevention.kickfromclaimexempt: true griefprevention.petkick: true - griefprevention.siegeimmune: + griefprevention.siegeimmune: description: Makes a player immune to /Siege. default: op griefprevention.givepet: @@ -342,11 +342,11 @@ permissions: description: Players with this permission can teleport into and out of besieged areas. default: op griefprevention.kickfromclaim: - default: op - description: Allows the use of /kickfromclaim + default: op + description: Allows the use of /kickfromclaim griefprevention.kickfromclaimexempt: - default: op - description: Players with this perm cannot be kicked out of claims. + default: op + description: Players with this perm cannot be kicked out of claims. griefprevention.petkick: - default: op - description: Grants access to /petkick + default: op + description: Grants access to /petkick