From 9c4d436d0c863fd3839cd93ededc55bad112f11f Mon Sep 17 00:00:00 2001 From: Andrew Krieger Date: Tue, 24 Dec 2013 10:17:46 +1100 Subject: [PATCH] Use Entity.teleportTo in CraftEntity.teleport Entity.teleportTo is largely stable and correct. CraftEntity.teleport, however, still cannot properly handle cross-world teleportation. Fix it to defer to the better code in core Minecraft. diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java index 96d763b..5ff5fe4 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -205,8 +205,11 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { return false; } - entity.world = ((CraftWorld) location.getWorld()).getHandle(); - entity.setLocation(location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch()); + // Spigot Start + // entity.world = ((CraftWorld) location.getWorld()).getHandle(); + // entity.setLocation(location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch()); + entity.teleportTo( location, cause == TeleportCause.NETHER_PORTAL ); + // Spigot End // entity.setLocation() throws no event, and so cannot be cancelled return true; } -- 1.8.3.2