prevent interacting with cauldrons w/o container trust

This commit is contained in:
destro174 2022-03-05 15:30:42 +01:00
parent 6d14031a02
commit 5e8bbe75c3
2 changed files with 33 additions and 9 deletions

View File

@ -59,6 +59,7 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority; import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.bukkit.event.block.Action; import org.bukkit.event.block.Action;
import org.bukkit.event.block.CauldronLevelChangeEvent;
import org.bukkit.event.entity.EntityDamageByEntityEvent; import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.EntityDamageEvent;
import org.bukkit.event.entity.PlayerDeathEvent; 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<String> 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 //when a player interacts with the world
@EventHandler(priority = EventPriority.LOWEST) @EventHandler(priority = EventPriority.LOWEST)
void onPlayerInteract(PlayerInteractEvent event) void onPlayerInteract(PlayerInteractEvent event)

View File

@ -207,13 +207,13 @@ commands:
aliases: [kfc] aliases: [kfc]
permission: griefprevention.kickfromclaim permission: griefprevention.kickfromclaim
permissions: permissions:
griefprevention.createclaims: griefprevention.createclaims:
description: Grants permission to create claims. description: Grants permission to create claims.
default: true default: true
griefprevention.admin.*: griefprevention.admin.*:
description: Grants all administrative functionality. description: Grants all administrative functionality.
children: children:
griefprevention.restorenature: true griefprevention.restorenature: true
griefprevention.restorenatureaggressive: true griefprevention.restorenatureaggressive: true
griefprevention.ignoreclaims: true griefprevention.ignoreclaims: true
griefprevention.adminclaims: true griefprevention.adminclaims: true
@ -242,7 +242,7 @@ permissions:
griefprevention.kickfromclaim: true griefprevention.kickfromclaim: true
griefprevention.kickfromclaimexempt: true griefprevention.kickfromclaimexempt: true
griefprevention.petkick: true griefprevention.petkick: true
griefprevention.siegeimmune: griefprevention.siegeimmune:
description: Makes a player immune to /Siege. description: Makes a player immune to /Siege.
default: op default: op
griefprevention.givepet: griefprevention.givepet:
@ -342,11 +342,11 @@ permissions:
description: Players with this permission can teleport into and out of besieged areas. description: Players with this permission can teleport into and out of besieged areas.
default: op default: op
griefprevention.kickfromclaim: griefprevention.kickfromclaim:
default: op default: op
description: Allows the use of /kickfromclaim description: Allows the use of /kickfromclaim
griefprevention.kickfromclaimexempt: griefprevention.kickfromclaimexempt:
default: op default: op
description: Players with this perm cannot be kicked out of claims. description: Players with this perm cannot be kicked out of claims.
griefprevention.petkick: griefprevention.petkick:
default: op default: op
description: Grants access to /petkick description: Grants access to /petkick