diff --git a/src/me/mrCookieSlime/Slimefun/Variables.java b/src/me/mrCookieSlime/Slimefun/Variables.java index 39088468e..da8771212 100644 --- a/src/me/mrCookieSlime/Slimefun/Variables.java +++ b/src/me/mrCookieSlime/Slimefun/Variables.java @@ -24,5 +24,6 @@ public class Variables { public static List cancelPlace = new ArrayList(); public static Map arrows = new HashMap(); public static List usingGuide = new ArrayList(); + public static Map dialogueCooldown = new HashMap(); } diff --git a/src/me/mrCookieSlime/Slimefun/listeners/TeleporterListener.java b/src/me/mrCookieSlime/Slimefun/listeners/TeleporterListener.java index df886f5e7..c96af16f6 100644 --- a/src/me/mrCookieSlime/Slimefun/listeners/TeleporterListener.java +++ b/src/me/mrCookieSlime/Slimefun/listeners/TeleporterListener.java @@ -1,6 +1,7 @@ package me.mrCookieSlime.Slimefun.listeners; import me.mrCookieSlime.Slimefun.SlimefunStartup; +import me.mrCookieSlime.Slimefun.Variables; import me.mrCookieSlime.Slimefun.GPS.Elevator; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.Teleporter; @@ -12,6 +13,7 @@ import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.block.Action; import org.bukkit.event.player.PlayerInteractEvent; +import org.bukkit.event.player.PlayerMoveEvent; public class TeleporterListener implements Listener { @@ -38,6 +40,8 @@ public class TeleporterListener implements Listener { } try { + if(Variables.dialogueCooldown.containsKey(e.getPlayer().getUniqueId())) return; + else Variables.dialogueCooldown.put(e.getPlayer().getUniqueId(), e.getClickedBlock().getLocation().toString()); ((Teleporter) teleporter).onInteract(e.getPlayer(), e.getClickedBlock().getRelative(BlockFace.DOWN)); } catch (Exception x) { x.printStackTrace(); @@ -54,6 +58,8 @@ public class TeleporterListener implements Listener { } try { + if(Variables.dialogueCooldown.containsKey(e.getPlayer().getUniqueId())) return; + else Variables.dialogueCooldown.put(e.getPlayer().getUniqueId(), e.getClickedBlock().getLocation().toString()); ((Teleporter) teleporter).onInteract(e.getPlayer(), e.getClickedBlock().getRelative(BlockFace.DOWN)); } catch (Exception x) { x.printStackTrace(); @@ -63,8 +69,18 @@ public class TeleporterListener implements Listener { else e.setCancelled(true); } else if (item.getID().equals("ELEVATOR_PLATE")) { + if(Variables.dialogueCooldown.containsKey(e.getPlayer().getUniqueId())) return; + else Variables.dialogueCooldown.put(e.getPlayer().getUniqueId(), e.getClickedBlock().getLocation().toString()); Elevator.openDialogue(e.getPlayer(), e.getClickedBlock()); } } - + + @EventHandler + public void onPlayerMove(PlayerMoveEvent e) { + if(Variables.dialogueCooldown.containsKey(e.getPlayer().getUniqueId())) { + if(!e.getPlayer().getLocation().toString().equals(Variables.dialogueCooldown.get(e.getPlayer().getUniqueId()))) { + Variables.dialogueCooldown.remove(e.getPlayer().getUniqueId()); + } + } + } }