--- miscJava/bukkit-minecraft-plugins/HoerupUtils/src/main/java/dk/thoerup/bukkit/hoeruputils/secretdoor/DoorOpenListener.java 2013/01/13 13:05:16 1912 +++ miscJava/bukkit-minecraft-plugins/HoerupUtils/src/main/java/dk/thoerup/bukkit/hoeruputils/secretdoor/DoorOpenListener.java 2013/01/13 15:39:59 1913 @@ -1,5 +1,7 @@ package dk.thoerup.bukkit.hoeruputils.secretdoor; +import java.util.Set; + import org.bukkit.Effect; import org.bukkit.Location; import org.bukkit.Material; @@ -9,9 +11,12 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.AsyncPlayerChatEvent; +import org.bukkit.event.player.PlayerChatEvent; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.plugin.Plugin; +import com.google.common.base.Ascii; + public class DoorOpenListener implements Listener{ @@ -49,12 +54,13 @@ return; } - openDoor(door, player); + openDoor(door, player,false ); } - private void openDoor(final Door door, Player player) { + private void openDoor(final Door door, Player player, boolean longDelay ) { final World world = player.getWorld(); + //final Location loc = event.getClickedBlock().getLocation(); final Location loc = door.getLeftUpper(); @@ -68,15 +74,26 @@ world.playEffect( loc, Effect.DOOR_TOGGLE, 0); } }; + + int delay = (longDelay == true) ? 8*20 : 4*20; - player.getServer().getScheduler().scheduleSyncDelayedTask(plugin, doorCloser, 4*20); + player.getServer().getScheduler().scheduleSyncDelayedTask(plugin, doorCloser, delay); + } + + @EventHandler public void onPlayerChat(AsyncPlayerChatEvent evt) { if (evt.isCancelled()) return; - Runnable r = new DooOpenOnChat( evt ); - plugin.getServer().getScheduler().runTask(plugin, r); //force sync handling og this + + String parts[] = evt.getMessage().split(" "); + if (parts.length == 1) { + Runnable r = new DooOpenOnChat( evt ); + r.run(); + //plugin.getServer().getScheduler().runTask(plugin, r); //force sync handling of this + } + } class DooOpenOnChat implements Runnable { @@ -84,6 +101,7 @@ public DooOpenOnChat(AsyncPlayerChatEvent evt) { this.evt = evt; } + @Override public void run() { @@ -104,11 +122,10 @@ return; } - if (door.getPassword().equals( evt.getMessage() )); { - openDoor(door, p); + if (door.getPassword().equals( evt.getMessage() )) { + openDoor(door, p, true); evt.setCancelled(true); } - } - + } } }