package dk.thoerup.bukkit.hoeruputils.secretdoor; import org.bukkit.Effect; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.World; import org.bukkit.entity.Player; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.Listener; import org.bukkit.event.EventHandler; import org.bukkit.plugin.Plugin; public class DoorOpenListener implements Listener{ private DoorStorage store; private Plugin plugin; public DoorOpenListener(DoorStorage store, Plugin plugin) { super(); this.store = store; this.plugin = plugin; } @EventHandler public void onPlayerInteract(PlayerInteractEvent event) { Player player = event.getPlayer(); if ( player.getItemInHand().getType() != Material.AIR ) { return; } if ( event.hasBlock() == false ) { return; } final Door door = store.findDoor( event.getClickedBlock().getLocation() ); if (door == null) { return; } if (door.isPrivate() == true && !door.getOwner().equals(player.getName() ) ) { return; } final World world = player.getWorld(); final Location loc = event.getClickedBlock().getLocation(); door.open(); world.playEffect( loc, Effect.DOOR_TOGGLE, 0); Runnable doorCloser = new Runnable() { public void run() { door.close( ); world.playEffect( loc, Effect.DOOR_TOGGLE, 0); } }; player.getServer().getScheduler().scheduleSyncDelayedTask(plugin, doorCloser, 4*20); } }