diff --git a/src/main/java/net/knarcraft/stargate/listener/PlayerEventsListener.java b/src/main/java/net/knarcraft/stargate/listener/PlayerEventsListener.java index 705ef5c..6673fd2 100644 --- a/src/main/java/net/knarcraft/stargate/listener/PlayerEventsListener.java +++ b/src/main/java/net/knarcraft/stargate/listener/PlayerEventsListener.java @@ -80,19 +80,18 @@ public class PlayerEventsListener implements Listener { && PortalHandler.getByAdjacentEntrance(event.getFrom()) != null) { event.setCancelled(true); } - if (event.isCancelled()) { + if (event.isCancelled() || cause != PlayerTeleportEvent.TeleportCause.PLUGIN) { return; } Entity playerVehicle = event.getPlayer().getVehicle(); - Portal portal = PortalHandler.getByEntrance(event.getFrom()); - if (playerVehicle != null && PortalHandler.getByEntrance(event.getFrom()) != null && + Portal portal = PortalHandler.getByAdjacentEntrance(event.getFrom()); + if (playerVehicle != null && portal != null && !(playerVehicle instanceof Minecart) && !(playerVehicle instanceof Boat)) { Portal destinationPortal = portal.getDestination(); if (destinationPortal != null) { VehicleEventListener.teleportVehicleAfterPlayer((Vehicle) playerVehicle, destinationPortal, event.getPlayer()); - Stargate.debug("playerTeleport", "Player was driving " + playerVehicle.getName()); } } }