From e4a0d6c451dc21accfbd275f4226948fda06575e Mon Sep 17 00:00:00 2001 From: Esophose Date: Thu, 7 Mar 2019 21:22:42 -0700 Subject: [PATCH] Remove debug message, add EntityCreatePortalEvent specifically for 1.8 --- .../goodandevil/skyblock/listeners/Block.java | 29 ++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/src/main/java/me/goodandevil/skyblock/listeners/Block.java b/src/main/java/me/goodandevil/skyblock/listeners/Block.java index 66f8438b..d662ba65 100644 --- a/src/main/java/me/goodandevil/skyblock/listeners/Block.java +++ b/src/main/java/me/goodandevil/skyblock/listeners/Block.java @@ -22,6 +22,7 @@ import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.block.*; +import org.bukkit.event.entity.EntityCreatePortalEvent; import org.bukkit.event.world.PortalCreateEvent; import org.bukkit.event.world.StructureGrowEvent; import org.bukkit.inventory.ItemStack; @@ -551,7 +552,6 @@ public class Block implements Listener { @EventHandler public void onStructureCreate(StructureGrowEvent event) { - Bukkit.broadcastMessage(event.getEventName()); WorldManager worldManager = skyblock.getWorldManager(); IslandManager islandManager = skyblock.getIslandManager(); @@ -604,6 +604,33 @@ public class Block implements Listener { } } + @EventHandler + public void onEntityCreatePortal(EntityCreatePortalEvent event) { + WorldManager worldManager = skyblock.getWorldManager(); + IslandManager islandManager = skyblock.getIslandManager(); + + if (!skyblock.getFileManager().getConfig(new File(skyblock.getDataFolder(), "config.yml")).getFileConfiguration().getBoolean("Island.Spawn.Protection")) + return; + + if (event.getBlocks().isEmpty()) + return; + + Island island = islandManager.getIslandAtLocation(event.getBlocks().get(0).getLocation()); + if (island == null) + return; + + // Check spawn block protection + IslandWorld world = worldManager.getIslandWorld(event.getBlocks().get(0).getWorld()); + Location islandLocation = island.getLocation(world, IslandEnvironment.Main); + + for (org.bukkit.block.BlockState block : event.getBlocks()) { + if (LocationUtil.isLocationAffectingLocation(block.getLocation(), islandLocation)) { + event.setCancelled(true); + return; + } + } + } + @EventHandler public void onDispenserDispenseBlock(BlockDispenseEvent event) { WorldManager worldManager = skyblock.getWorldManager();