diff --git a/src/main/java/me/ryanhamshire/GriefPrevention/alttd/listeners/AltitudeListener.java b/src/main/java/me/ryanhamshire/GriefPrevention/alttd/listeners/AltitudeListener.java index d324b18..0579b9a 100644 --- a/src/main/java/me/ryanhamshire/GriefPrevention/alttd/listeners/AltitudeListener.java +++ b/src/main/java/me/ryanhamshire/GriefPrevention/alttd/listeners/AltitudeListener.java @@ -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); + } + } + } + } + } \ No newline at end of file