From f455fc2283b67a740eb91348eb96cd14cd8e941d Mon Sep 17 00:00:00 2001 From: TreeDB Date: Sun, 20 Sep 2015 20:45:48 -0500 Subject: [PATCH] Fix issue #106 --- .../mc/citadel/listener/BlockListener.java | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/vg/civcraft/mc/citadel/listener/BlockListener.java b/src/vg/civcraft/mc/citadel/listener/BlockListener.java index 888cd885..30c0eab5 100644 --- a/src/vg/civcraft/mc/citadel/listener/BlockListener.java +++ b/src/vg/civcraft/mc/citadel/listener/BlockListener.java @@ -43,6 +43,7 @@ import org.bukkit.material.MaterialData; import org.bukkit.material.Openable; import org.bukkit.material.PistonBaseMaterial; +import org.bukkit.material.PressureSensor; import vg.civcraft.mc.citadel.Citadel; import vg.civcraft.mc.citadel.CitadelConfigManager; @@ -575,6 +576,27 @@ public void interact(PlayerInteractEvent pie) { } } + @EventHandler + public void onPlayerInteractEvent(PlayerInteractEvent event) { + Block block = event.getClickedBlock(); + if ((event.getAction() == Action.PHYSICAL) && (block instanceof PressureSensor)) { + Player player = event.getPlayer(); + for (BlockFace face : planar_sides) { + Block bf = block.getRelative(face); + if ((bf.getState().getData() instanceof Openable)) { + Reinforcement reinforcement = rm.getReinforcement(Utility.getRealBlock(bf)); + if ((reinforcement instanceof PlayerReinforcement)) { + PlayerReinforcement playerReinforcement = (PlayerReinforcement) reinforcement; + if (!playerReinforcement.isAccessible(player, PermissionType.DOORS)) { + event.setCancelled(true); + break; + } + } + } + } + } + } + @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) public void chunkLoadEvent(ChunkLoadEvent event) { Chunk chunk = event.getChunk();