1
mirror of https://github.com/StarWishsama/Slimefun4.git synced 2024-09-20 03:35:51 +00:00

Fix for players getting stuck in elevator books/teleporter guis

This commit is contained in:
VoidAngel 2018-04-19 14:11:23 -07:00
parent 19f4666235
commit f595cb06a8
2 changed files with 18 additions and 1 deletions

View File

@ -24,5 +24,6 @@ public class Variables {
public static List<UUID> cancelPlace = new ArrayList<UUID>(); public static List<UUID> cancelPlace = new ArrayList<UUID>();
public static Map<UUID, ItemStack> arrows = new HashMap<UUID, ItemStack>(); public static Map<UUID, ItemStack> arrows = new HashMap<UUID, ItemStack>();
public static List<UUID> usingGuide = new ArrayList<UUID>(); public static List<UUID> usingGuide = new ArrayList<UUID>();
public static Map<UUID, String> dialogueCooldown = new HashMap<UUID, String>();
} }

View File

@ -1,6 +1,7 @@
package me.mrCookieSlime.Slimefun.listeners; package me.mrCookieSlime.Slimefun.listeners;
import me.mrCookieSlime.Slimefun.SlimefunStartup; import me.mrCookieSlime.Slimefun.SlimefunStartup;
import me.mrCookieSlime.Slimefun.Variables;
import me.mrCookieSlime.Slimefun.GPS.Elevator; import me.mrCookieSlime.Slimefun.GPS.Elevator;
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.Teleporter; 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.Listener;
import org.bukkit.event.block.Action; import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.event.player.PlayerMoveEvent;
public class TeleporterListener implements Listener { public class TeleporterListener implements Listener {
@ -38,6 +40,8 @@ public class TeleporterListener implements Listener {
} }
try { 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)); ((Teleporter) teleporter).onInteract(e.getPlayer(), e.getClickedBlock().getRelative(BlockFace.DOWN));
} catch (Exception x) { } catch (Exception x) {
x.printStackTrace(); x.printStackTrace();
@ -54,6 +58,8 @@ public class TeleporterListener implements Listener {
} }
try { 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)); ((Teleporter) teleporter).onInteract(e.getPlayer(), e.getClickedBlock().getRelative(BlockFace.DOWN));
} catch (Exception x) { } catch (Exception x) {
x.printStackTrace(); x.printStackTrace();
@ -63,8 +69,18 @@ public class TeleporterListener implements Listener {
else e.setCancelled(true); else e.setCancelled(true);
} }
else if (item.getID().equals("ELEVATOR_PLATE")) { 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()); 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());
}
}
}
} }