From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: booky10 Date: Sun, 12 Nov 2023 05:09:47 +0100 Subject: [PATCH] Fix missing event call for entity teleport API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java index 1c035d1a9acc5f0a21169c66541d890a23bba033..44dd60c1f31b578e7630673433f3850f392b7a0d 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -255,6 +255,17 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { return false; } + // Paper start - fix teleport event not being called + org.bukkit.event.entity.EntityTeleportEvent event = new org.bukkit.event.entity.EntityTeleportEvent( + this, this.getLocation(), location); + // cancelling the event is handled differently for players and entities, + // entities just stop teleporting, players will still teleport to the "from" location of the event + if (!event.callEvent() || event.getTo() == null) { + return false; + } + location = event.getTo(); + // Paper end + // If this entity is riding another entity, we must dismount before teleporting. if (dismount) this.entity.stopRiding(); // Paper - Teleport passenger API