From 86117967db2f13c041145dffa6258ee39f07da5d Mon Sep 17 00:00:00 2001 From: booky10 <53302036+booky10@users.noreply.github.com> Date: Sun, 19 Nov 2023 02:05:34 +0100 Subject: [PATCH] Fix missing event call for entity teleport API (#9937) * Fix missing event call for entity teleport API Previously a plugin couldn't cancel or modify an entity-teleport from another plugin. * rebase --- ...g-event-call-for-entity-teleport-API.patch | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 patches/server/1052-Fix-missing-event-call-for-entity-teleport-API.patch diff --git a/patches/server/1052-Fix-missing-event-call-for-entity-teleport-API.patch b/patches/server/1052-Fix-missing-event-call-for-entity-teleport-API.patch new file mode 100644 index 000000000..188fe7cb4 --- /dev/null +++ b/patches/server/1052-Fix-missing-event-call-for-entity-teleport-API.patch @@ -0,0 +1,28 @@ +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 0e6c7284b9aee6c5f2454a3a095ebf349f887740..9f843b89dc20b91bf7243facee8486d525e4a1b3 100644 +--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java ++++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +@@ -603,6 +603,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()) { ++ 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 +