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

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

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1684 by torben, Fri Jan 27 12:21:27 2012 UTC revision 2426 by torben, Sat Mar 7 20:54:11 2015 UTC
# Line 1  Line 1 
1  package dk.thoerup.bukkit.hoeruputils.secretdoor;  package dk.thoerup.bukkit.hoeruputils.secretdoor;
2    
3    import java.util.HashSet;
4    
5  import org.bukkit.Effect;  import org.bukkit.Effect;
6  import org.bukkit.Location;  import org.bukkit.Location;
7  import org.bukkit.Material;  import org.bukkit.Material;
8  import org.bukkit.World;  import org.bukkit.World;
9    import org.bukkit.block.Block;
10  import org.bukkit.entity.Player;  import org.bukkit.entity.Player;
 import org.bukkit.event.player.PlayerInteractEvent;  
 import org.bukkit.event.Listener;  
11  import org.bukkit.event.EventHandler;  import org.bukkit.event.EventHandler;
12    import org.bukkit.event.Listener;
13    import org.bukkit.event.player.AsyncPlayerChatEvent;
14    import org.bukkit.event.player.PlayerInteractEvent;
15  import org.bukkit.plugin.Plugin;  import org.bukkit.plugin.Plugin;
16    
17    
18    
19    
20  public class DoorOpenListener implements Listener{  public class DoorOpenListener implements Listener{
21                    
22          private DoorStorage store;          private DoorStorage store;
# Line 47  public class DoorOpenListener implements Line 52  public class DoorOpenListener implements
52                          return;                          return;
53                  }                  }
54    
55                  final World world = player.getWorld();                  openDoor(door, player,false );
56                  final Location loc = event.getClickedBlock().getLocation();  
57            }
58            
59            private void openDoor(final Door door, Player player, boolean longDelay ) {
60                    final World world = player.getWorld();          
61                    
62                    //final Location loc = event.getClickedBlock().getLocation();
63                    final Location loc = door.getLeftUpper();
64    
65                  door.open();                  door.open();
66    
# Line 60  public class DoorOpenListener implements Line 72  public class DoorOpenListener implements
72                                  world.playEffect( loc, Effect.DOOR_TOGGLE, 0);                                  world.playEffect( loc, Effect.DOOR_TOGGLE, 0);
73                          }                          }
74                  };                  };
75                    
76                    int delay = (longDelay == true) ? 8*20 : 4*20;
77    
78                    player.getServer().getScheduler().scheduleSyncDelayedTask(plugin, doorCloser, delay);
79                    
80            }
81            
82            
83            @EventHandler
84            public void onPlayerChat(AsyncPlayerChatEvent evt) {
85                    if (evt.isCancelled())
86                            return;
87    
88                  player.getServer().getScheduler().scheduleSyncDelayedTask(plugin, doorCloser, 4*20);                  String parts[] = evt.getMessage().split(" ");
89                    if (parts.length == 1) {                        
90                            Runnable r = new DooOpenOnChat( evt );
91                            r.run();
92                            //plugin.getServer().getScheduler().runTask(plugin, r); //force sync handling of this
93                    }
94                    
95            }
96            
97            class DooOpenOnChat implements Runnable {
98                    AsyncPlayerChatEvent evt;
99                    public DooOpenOnChat(AsyncPlayerChatEvent evt) {
100                            this.evt = evt;                
101                    }
102                    
103    
104                    @Override
105                    public void run() {
106                            Player p = evt.getPlayer();
107                            Block target = p.getTargetBlock( (HashSet<Byte>)null, 40);
108                            
109                            if (target == null || target.getType() == Material.AIR) {
110                                    return;
111                            }
112                            
113                            final Door door = store.findDoor( target.getLocation() );
114                            
115                            if (door == null) {
116                                    return;
117                            }
118                            
119                            if (door.isPrivate() == true && !door.getOwner().equals(p.getName() ) ) {
120                                    return;
121                            }                      
122                            
123                            if (door.getPassword().equals(  evt.getMessage() )) {
124                                    openDoor(door, p, true);
125                                    evt.setCancelled(true);
126                            }
127                    }              
128          }          }
129  }  }

Legend:
Removed from v.1684  
changed lines
  Added in v.2426

  ViewVC Help
Powered by ViewVC 1.1.20