/[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 1538 - (hide annotations) (download)
Wed Jun 29 18:16:51 2011 UTC (12 years, 11 months ago) by torben
Original Path: miscJava/bukkit-minecraft-plugins/HoerupUtils/src/dk/thoerup/bukkit/hoeruputils/secretdoor/DoorOpenListener.java
File size: 1349 byte(s)
encapsulation
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     import org.bukkit.event.player.PlayerListener;
10     import org.bukkit.plugin.Plugin;
11    
12    
13    
14     public class DoorOpenListener extends PlayerListener{
15    
16 torben 1538 private DoorStorage store;
17 torben 1530
18 torben 1538 private Plugin plugin;
19 torben 1530
20     public DoorOpenListener(DoorStorage store, Plugin plugin) {
21     super();
22     this.store = store;
23     this.plugin = plugin;
24     }
25    
26     @Override
27     public void onPlayerInteract(PlayerInteractEvent event) {
28    
29     Player player = event.getPlayer();
30    
31 torben 1532 if ( player.getItemInHand().getType() != Material.AIR ) {
32 torben 1530 return;
33 torben 1532 }
34 torben 1530
35     if ( event.hasBlock() == false ) {
36     return;
37     }
38    
39     final Door door = store.findDoor( event.getClickedBlock().getLocation() );
40    
41     if (door == null) {
42     return;
43     }
44    
45     final World world = player.getWorld();
46     final Location loc = event.getClickedBlock().getLocation();
47    
48     door.open( player.getWorld() );
49    
50     world.playEffect( loc, Effect.DOOR_TOGGLE, 0);
51    
52     Runnable doorCloser = new Runnable() {
53     public void run() {
54     door.close( world );
55     world.playEffect( loc, Effect.DOOR_TOGGLE, 0);
56     }
57     };
58    
59     player.getServer().getScheduler().scheduleSyncDelayedTask(plugin, doorCloser, 4*20);
60    
61     }
62     }

  ViewVC Help
Powered by ViewVC 1.1.20