Prevent players from entering vehicles w/0 accesstrust
This commit is contained in:
parent
aeec095ff8
commit
f34f0161ae
|
|
@ -1,96 +1,114 @@
|
|||
package me.ryanhamshire.GriefPrevention.alttd.listeners;
|
||||
|
||||
import com.destroystokyo.paper.event.block.TNTPrimeEvent;
|
||||
import me.ryanhamshire.GriefPrevention.Claim;
|
||||
import me.ryanhamshire.GriefPrevention.ClaimPermission;
|
||||
import me.ryanhamshire.GriefPrevention.CreateClaimResult;
|
||||
import me.ryanhamshire.GriefPrevention.DataStore;
|
||||
import me.ryanhamshire.GriefPrevention.GriefPrevention;
|
||||
import me.ryanhamshire.GriefPrevention.Messages;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.entity.Arrow;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.entity.Vehicle;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.entity.EntityChangeBlockEvent;
|
||||
|
||||
public class AltitudeListener implements Listener {
|
||||
|
||||
private final GriefPrevention plugin;
|
||||
|
||||
public AltitudeListener(DataStore dataStore, GriefPrevention plugin) {
|
||||
this.plugin = plugin;
|
||||
this.worldInit();
|
||||
}
|
||||
|
||||
private void info(String s) {
|
||||
plugin.getLogger().info(s);
|
||||
}
|
||||
|
||||
private void worldInit() {
|
||||
for(World world : Bukkit.getWorlds()) {
|
||||
// info("Scanning world " + world.getName());
|
||||
if (world.getEnvironment() == World.Environment.THE_END) {
|
||||
CreateClaimResult result = plugin.dataStore.createClaim(world,
|
||||
-250, 250,
|
||||
0, 256,
|
||||
250, -250,
|
||||
null, null, null, null);
|
||||
if (!result.succeeded) {
|
||||
if (result.claim != null) {
|
||||
// info(Messages.CreateClaimFailOverlapShort.toString());
|
||||
} else {
|
||||
// info(Messages.CreateClaimFailOverlapRegion.toString());
|
||||
}
|
||||
} else {
|
||||
Claim claim = result.claim;
|
||||
claim.setPermission("public", ClaimPermission.Build);
|
||||
GriefPrevention.instance.dataStore.saveClaim(claim);
|
||||
// info(Messages.CreateClaimSuccess.toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler(ignoreCancelled = true, priority = EventPriority.HIGHEST)
|
||||
public void onPlayerBoatBlockBreak(EntityChangeBlockEvent event)
|
||||
{
|
||||
if (event.getEntity() instanceof Vehicle && !event.getEntity().getPassengers().isEmpty())
|
||||
{
|
||||
Entity driver = event.getEntity().getPassengers().get(0);
|
||||
if (driver instanceof Player)
|
||||
{
|
||||
Block block = event.getBlock();
|
||||
if (GriefPrevention.instance.allowBreak((Player) driver, block, block.getLocation()) != null)
|
||||
{
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
package me.ryanhamshire.GriefPrevention.alttd.listeners;
|
||||
|
||||
import com.destroystokyo.paper.event.block.TNTPrimeEvent;
|
||||
import me.ryanhamshire.GriefPrevention.Claim;
|
||||
import me.ryanhamshire.GriefPrevention.ClaimPermission;
|
||||
import me.ryanhamshire.GriefPrevention.CreateClaimResult;
|
||||
import me.ryanhamshire.GriefPrevention.DataStore;
|
||||
import me.ryanhamshire.GriefPrevention.GriefPrevention;
|
||||
import me.ryanhamshire.GriefPrevention.Messages;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.entity.Arrow;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.entity.Vehicle;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.entity.EntityChangeBlockEvent;
|
||||
import org.bukkit.event.vehicle.VehicleEnterEvent;
|
||||
|
||||
public class AltitudeListener implements Listener {
|
||||
|
||||
private final GriefPrevention plugin;
|
||||
|
||||
public AltitudeListener(DataStore dataStore, GriefPrevention plugin) {
|
||||
this.plugin = plugin;
|
||||
this.worldInit();
|
||||
}
|
||||
|
||||
private void info(String s) {
|
||||
plugin.getLogger().info(s);
|
||||
}
|
||||
|
||||
private void worldInit() {
|
||||
for(World world : Bukkit.getWorlds()) {
|
||||
// info("Scanning world " + world.getName());
|
||||
if (world.getEnvironment() == World.Environment.THE_END) {
|
||||
CreateClaimResult result = plugin.dataStore.createClaim(world,
|
||||
-250, 250,
|
||||
0, 256,
|
||||
250, -250,
|
||||
null, null, null, null);
|
||||
if (!result.succeeded) {
|
||||
if (result.claim != null) {
|
||||
// info(Messages.CreateClaimFailOverlapShort.toString());
|
||||
} else {
|
||||
// info(Messages.CreateClaimFailOverlapRegion.toString());
|
||||
}
|
||||
} else {
|
||||
Claim claim = result.claim;
|
||||
claim.setPermission("public", ClaimPermission.Build);
|
||||
GriefPrevention.instance.dataStore.saveClaim(claim);
|
||||
// info(Messages.CreateClaimSuccess.toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler(ignoreCancelled = true, priority = EventPriority.HIGHEST)
|
||||
public void onPlayerBoatBlockBreak(EntityChangeBlockEvent event)
|
||||
{
|
||||
if (event.getEntity() instanceof Vehicle && !event.getEntity().getPassengers().isEmpty())
|
||||
{
|
||||
Entity driver = event.getEntity().getPassengers().get(0);
|
||||
if (driver instanceof Player)
|
||||
{
|
||||
Block block = event.getBlock();
|
||||
if (GriefPrevention.instance.allowBreak((Player) driver, block, block.getLocation()) != null)
|
||||
{
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler(ignoreCancelled = true, priority = EventPriority.HIGHEST)
|
||||
public void onVehicleEnterEvent(VehicleEnterEvent event)
|
||||
{
|
||||
if (event.getEntered() instanceof Player player)
|
||||
{
|
||||
Claim claim = GriefPrevention.instance.dataStore.getClaimAt(player.getLocation(), true, null);
|
||||
if (claim != null)
|
||||
{
|
||||
if (claim.allowAccess(player) != null)
|
||||
{
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user