/[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 1912 by torben, Sun Jan 13 13:05:16 2013 UTC revision 3133 by torben, Fri Nov 18 13:14:07 2016 UTC
# Line 1  Line 1 
1  package dk.thoerup.bukkit.hoeruputils.secretdoor;  package dk.thoerup.bukkit.hoeruputils.secretdoor;
2    
3    import java.util.Set;
4    import java.util.HashSet;
5    
6  import org.bukkit.Effect;  import org.bukkit.Effect;
7  import org.bukkit.Location;  import org.bukkit.Location;
8  import org.bukkit.Material;  import org.bukkit.Material;
# Line 14  import org.bukkit.plugin.Plugin; Line 17  import org.bukkit.plugin.Plugin;
17    
18    
19    
20    
21  public class DoorOpenListener implements Listener{  public class DoorOpenListener implements Listener{
22                    
23          private DoorStorage store;          private DoorStorage store;
# Line 31  public class DoorOpenListener implements Line 35  public class DoorOpenListener implements
35    
36                  Player player = event.getPlayer();                  Player player = event.getPlayer();
37    
38                  if ( player.getItemInHand().getType() != Material.AIR ) {                  if ( player.getInventory().getItemInMainHand().getType() != Material.AIR ) {
39                          return;                          return;
40                  }                  }
41    
# Line 49  public class DoorOpenListener implements Line 53  public class DoorOpenListener implements
53                          return;                          return;
54                  }                  }
55    
56                  openDoor(door, player);                  openDoor(door, player,false );
57    
58          }          }
59                    
60          private void openDoor(final Door door, Player player) {          private void openDoor(final Door door, Player player, boolean longDelay ) {
61                  final World world = player.getWorld();                            final World world = player.getWorld();          
62                    
63                  //final Location loc = event.getClickedBlock().getLocation();                  //final Location loc = event.getClickedBlock().getLocation();
64                  final Location loc = door.getLeftUpper();                  final Location loc = door.getLeftUpper();
65    
# Line 68  public class DoorOpenListener implements Line 73  public class DoorOpenListener implements
73                                  world.playEffect( loc, Effect.DOOR_TOGGLE, 0);                                  world.playEffect( loc, Effect.DOOR_TOGGLE, 0);
74                          }                          }
75                  };                  };
76                    
77                    int delay = (longDelay == true) ? 8*20 : 4*20;
78    
79                  player.getServer().getScheduler().scheduleSyncDelayedTask(plugin, doorCloser, 4*20);                              player.getServer().getScheduler().scheduleSyncDelayedTask(plugin, doorCloser, delay);
80                    
81          }          }
82                    
83            
84            @EventHandler
85          public void onPlayerChat(AsyncPlayerChatEvent evt) {          public void onPlayerChat(AsyncPlayerChatEvent evt) {
86                  if (evt.isCancelled())                  if (evt.isCancelled())
87                          return;                          return;
88                  Runnable r = new DooOpenOnChat( evt );  
89                  plugin.getServer().getScheduler().runTask(plugin, r); //force sync handling og this                  String parts[] = evt.getMessage().split(" ");
90                    if (parts.length == 1) {                        
91                            Runnable r = new DooOpenOnChat( evt );
92                            r.run();
93                            //plugin.getServer().getScheduler().runTask(plugin, r); //force sync handling of this
94                    }
95                    
96          }          }
97                    
98          class DooOpenOnChat implements Runnable {          class DooOpenOnChat implements Runnable {
# Line 84  public class DoorOpenListener implements Line 100  public class DoorOpenListener implements
100                  public DooOpenOnChat(AsyncPlayerChatEvent evt) {                  public DooOpenOnChat(AsyncPlayerChatEvent evt) {
101                          this.evt = evt;                                          this.evt = evt;                
102                  }                  }
103                    
104    
105                  @Override                  @Override
106                  public void run() {                  public void run() {
107                          Player p = evt.getPlayer();                          Player p = evt.getPlayer();
108                          Block target = p.getTargetBlock(null, 40);                          Block target = p.getTargetBlock( (Set<Material>)null, 40);
109                                                    
110                          if (target == null || target.getType() == Material.AIR) {                          if (target == null || target.getType() == Material.AIR) {
111                                  return;                                  return;
# Line 104  public class DoorOpenListener implements Line 121  public class DoorOpenListener implements
121                                  return;                                  return;
122                          }                                                }                      
123                                                    
124                          if (door.getPassword().equals(  evt.getMessage() )); {                          if (door.getPassword().equals(  evt.getMessage() )) {
125                                  openDoor(door, p);                                  openDoor(door, p, true);
126                                  evt.setCancelled(true);                                  evt.setCancelled(true);
127                          }                          }
128                  }                  }              
                   
129          }          }
130  }  }

Legend:
Removed from v.1912  
changed lines
  Added in v.3133

  ViewVC Help
Powered by ViewVC 1.1.20