diff --git a/BauSystem_Main/src/de/steamwar/bausystem/commands/CommandFreeze.java b/BauSystem_Main/src/de/steamwar/bausystem/commands/CommandFreeze.java index d456416..9c2ddac 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/commands/CommandFreeze.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/commands/CommandFreeze.java @@ -60,24 +60,30 @@ public class CommandFreeze extends RegionToggleCommand { @EventHandler public void onEntitySpawn(EntitySpawnEvent e) { Region.getRegion(e.getLocation(), region -> { + if (region.isFreeze()) e.setCancelled(true); + }, () -> { + if (Region.NoRegion.freeze) e.setCancelled(true); + }); + } + + @EventHandler + public void onBlockCanBuild(BlockCanBuildEvent e) { + if (!e.isBuildable()) return; + Region.getRegion(e.getBlock().getLocation(), region -> { if (!region.isFreeze()) { return; } - e.setCancelled(true); - if (e.getEntityType() == EntityType.PRIMED_TNT) { - Bukkit.getScheduler().runTaskLater(BauSystem.getPlugin(), () -> { - e.getLocation().getBlock().setType(Material.TNT, false); - }, 1); + if (e.getMaterial() == Material.TNT) { + e.setBuildable(false); + e.getBlock().setType(Material.TNT, false); } }, () -> { if (!Region.NoRegion.freeze) { return; } - e.setCancelled(true); - if (e.getEntityType() == EntityType.PRIMED_TNT) { - Bukkit.getScheduler().runTaskLater(BauSystem.getPlugin(), () -> { - e.getLocation().getBlock().setType(Material.TNT, false); - }, 1); + if (e.getMaterial() == Material.TNT) { + e.setBuildable(false); + e.getBlock().setType(Material.TNT, false); } }); }