/[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 1605 - (hide annotations) (download)
Sat Oct 1 15:21:07 2011 UTC (12 years, 8 months ago) by torben
Original Path: miscJava/bukkit-minecraft-plugins/HoerupUtils/src/dk/thoerup/bukkit/hoeruputils/secretdoor/DoorOpenListener.java
File size: 1421 byte(s)
add concept of a private secretdoor which only the owner can open
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 torben 1605 if (door.isPrivate() == true && !door.getOwner().equals(player.getName() ) ) {
46     return;
47     }
48    
49 torben 1530 final World world = player.getWorld();
50     final Location loc = event.getClickedBlock().getLocation();
51    
52 torben 1579 door.open();
53 torben 1530
54     world.playEffect( loc, Effect.DOOR_TOGGLE, 0);
55    
56     Runnable doorCloser = new Runnable() {
57     public void run() {
58 torben 1579 door.close( );
59 torben 1530 world.playEffect( loc, Effect.DOOR_TOGGLE, 0);
60     }
61     };
62    
63     player.getServer().getScheduler().scheduleSyncDelayedTask(plugin, doorCloser, 4*20);
64    
65     }
66     }

  ViewVC Help
Powered by ViewVC 1.1.20