testserver/CraftBukkit-Patches/0111-Cross-World-Entity-Tel...

31 lines
1.4 KiB
Diff
Raw Normal View History

2016-03-12 01:39:07 +00:00
From a1e22855914ea5e8402a720e6f895971199d756f Mon Sep 17 00:00:00 2001
From: Andrew Krieger <Slizyboy@hotmail.com>
Date: Tue, 24 Dec 2013 07:55:23 -0800
Subject: [PATCH] Cross World Entity Teleportation
Use Entity.teleportTo for cross-world teleportation in CraftEntity.
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
2016-03-12 01:39:07 +00:00
index 8f65054..f80ac2c 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
2016-03-12 01:39:07 +00:00
@@ -243,7 +243,14 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
// If this entity is riding another entity, we must dismount before teleporting.
2016-02-29 21:33:06 +00:00
entity.stopRiding();
- entity.world = ((CraftWorld) location.getWorld()).getHandle();
+ // Spigot start
+ if (!location.getWorld().equals(getWorld())) {
+ entity.teleportTo(location, cause.equals(TeleportCause.NETHER_PORTAL));
+ return true;
+ }
+
+ // entity.world = ((CraftWorld) location.getWorld()).getHandle();
+ // Spigot end
entity.setLocation(location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch());
// entity.setLocation() throws no event, and so cannot be cancelled
return true;
--
2016-02-29 21:33:06 +00:00
2.5.0