/[projects]/miscJava/bukkit-minecraft-plugins/HoerupUtils/src/main/java/dk/thoerup/bukkit/hoeruputils/secretdoor/DoorOpenListener.java
ViewVC logotype

Annotation of /miscJava/bukkit-minecraft-plugins/HoerupUtils/src/main/java/dk/thoerup/bukkit/hoeruputils/secretdoor/DoorOpenListener.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1684 - (hide annotations) (download)
Fri Jan 27 12:21:27 2012 UTC (12 years, 4 months ago) by torben
File size: 1447 byte(s)
move source to mvn structure
1 torben 1530 package dk.thoerup.bukkit.hoeruputils.secretdoor;
2    
3     import org.bukkit.Effect;
4     import org.bukkit.Location;
5 torben 1532 import org.bukkit.Material;
6 torben 1530 import org.bukkit.World;
7     import org.bukkit.entity.Player;
8     import org.bukkit.event.player.PlayerInteractEvent;
9 torben 1680 import org.bukkit.event.Listener;
10     import org.bukkit.event.EventHandler;
11 torben 1530 import org.bukkit.plugin.Plugin;
12    
13    
14    
15 torben 1680 public class DoorOpenListener implements Listener{
16 torben 1530
17 torben 1538 private DoorStorage store;
18 torben 1530
19 torben 1538 private Plugin plugin;
20 torben 1530
21     public DoorOpenListener(DoorStorage store, Plugin plugin) {
22     super();
23     this.store = store;
24     this.plugin = plugin;
25     }
26    
27 torben 1680 @EventHandler
28 torben 1530 public void onPlayerInteract(PlayerInteractEvent event) {
29    
30     Player player = event.getPlayer();
31    
32 torben 1532 if ( player.getItemInHand().getType() != Material.AIR ) {
33 torben 1530 return;
34 torben 1532 }
35 torben 1530
36     if ( event.hasBlock() == false ) {
37     return;
38     }
39    
40     final Door door = store.findDoor( event.getClickedBlock().getLocation() );
41    
42     if (door == null) {
43     return;
44     }
45    
46 torben 1605 if (door.isPrivate() == true && !door.getOwner().equals(player.getName() ) ) {
47     return;
48     }
49    
50 torben 1530 final World world = player.getWorld();
51     final Location loc = event.getClickedBlock().getLocation();
52    
53 torben 1579 door.open();
54 torben 1530
55     world.playEffect( loc, Effect.DOOR_TOGGLE, 0);
56    
57     Runnable doorCloser = new Runnable() {
58     public void run() {
59 torben 1579 door.close( );
60 torben 1530 world.playEffect( loc, Effect.DOOR_TOGGLE, 0);
61     }
62     };
63    
64     player.getServer().getScheduler().scheduleSyncDelayedTask(plugin, doorCloser, 4*20);
65    
66     }
67     }

  ViewVC Help
Powered by ViewVC 1.1.20