From 94ec002810a2f770229c56c0d09f83f28d89f86c Mon Sep 17 00:00:00 2001 From: Teriuihi Date: Wed, 21 Feb 2024 19:10:45 +0100 Subject: [PATCH] Prevent teleporting while riding a vehicle The TeleportEvent has been updated to prevent players from teleporting while riding or seated in a vehicle. Instead of dismounting the player and adjusting the destination's coordinates, the request is now simply cancelled and a message is sent to the player, explaining why the teleportation was not completed. This change improves the clarity of the situation for the player and fixed the glitch that lets players teleport into places they shouldn't be. --- .../alttd/playerutils/event_listeners/TeleportEvent.java | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/alttd/playerutils/event_listeners/TeleportEvent.java b/src/main/java/com/alttd/playerutils/event_listeners/TeleportEvent.java index 58620b3..c671b3c 100644 --- a/src/main/java/com/alttd/playerutils/event_listeners/TeleportEvent.java +++ b/src/main/java/com/alttd/playerutils/event_listeners/TeleportEvent.java @@ -1,6 +1,5 @@ package com.alttd.playerutils.event_listeners; -import org.bukkit.Location; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; @@ -15,13 +14,11 @@ public class TeleportEvent implements Listener { * @param event the PlayerTeleportEvent being triggered */ @EventHandler() - public void modifyTeleportForMountedPlayers(PlayerTeleportEvent event) { + public void preventTeleportForMountedPlayers(PlayerTeleportEvent event) { Player player = event.getPlayer(); if (player.getVehicle() == null) return; - player.getVehicle().removePassenger(player); - Location eventTo = event.getTo(); - eventTo.setY(eventTo.getBlockY() + 1); - event.setTo(eventTo); + event.setCancelled(true); + player.sendRichMessage("Teleporting was cancelled. You can not be sitting, or mounted while teleporting."); } }