Require trust to blow up tnt with arrows

This commit is contained in:
destro174 2022-02-14 09:50:09 +01:00
parent 675c5b5b14
commit f99d17f5c5

View File

@ -18,6 +18,7 @@
package me.ryanhamshire.GriefPrevention;
import com.destroystokyo.paper.event.block.TNTPrimeEvent;
import me.ryanhamshire.GriefPrevention.events.ClaimInspectionEvent;
import me.ryanhamshire.GriefPrevention.events.VisualizationEvent;
import org.bukkit.BanList;
@ -40,6 +41,7 @@ import org.bukkit.block.data.Waterlogged;
import org.bukkit.command.Command;
import org.bukkit.entity.AbstractHorse;
import org.bukkit.entity.Animals;
import org.bukkit.entity.Arrow;
import org.bukkit.entity.Creature;
import org.bukkit.entity.Donkey;
import org.bukkit.entity.Entity;
@ -2326,4 +2328,23 @@ class PlayerEventHandler implements Listener
return result;
}
@EventHandler(ignoreCancelled = true, priority = EventPriority.HIGHEST)
public void onTNTPrime(TNTPrimeEvent event) {
if(event.getReason() == TNTPrimeEvent.PrimeReason.PROJECTILE) {
Entity entity = event.getPrimerEntity();
if(entity instanceof Arrow) {
Arrow arrow = (Arrow) entity;
if(arrow.getShooter() instanceof Player) {
Player player = (Player) arrow.getShooter();
Claim claim = GriefPrevention.instance.dataStore.getClaimAt(event.getBlock().getLocation(), true, null);
if (claim != null) {
if (claim.allowAccess(player) != null) {
event.setCancelled(true);
}
}
}
}
}
}
}