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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1532 - (show annotations) (download)
Mon Jun 27 18:10:05 2011 UTC (12 years, 10 months ago) by torben
File size: 1333 byte(s)
add a more generic way of handling doors ( prepare for custom door sizes )
1 package dk.thoerup.bukkit.hoeruputils.secretdoor;
2
3 import org.bukkit.Effect;
4 import org.bukkit.Location;
5 import org.bukkit.Material;
6 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 DoorStorage store;
17
18 Plugin plugin;
19
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 if ( player.getItemInHand().getType() != Material.AIR ) {
32 return;
33 }
34
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