From 94da64ee935f3710668f7dcc1aa94c74bd2bbb20 Mon Sep 17 00:00:00 2001 From: James Clarke Date: Sat, 2 Feb 2013 23:02:08 +0000 Subject: [PATCH] Use the result of EntityPortalExitEvent. Fixes BUKKIT-3559. --- .../net/minecraft/server/PortalTravelAgent.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/main/java/net/minecraft/server/PortalTravelAgent.java b/src/main/java/net/minecraft/server/PortalTravelAgent.java index 5d5774e6ed..cb5a0ada00 100644 --- a/src/main/java/net/minecraft/server/PortalTravelAgent.java +++ b/src/main/java/net/minecraft/server/PortalTravelAgent.java @@ -301,11 +301,19 @@ public class PortalTravelAgent { this.a.getServer().getPluginManager().callEvent(event); Location to = event.getTo(); if (event.isCancelled() || to == null || !entity.isAlive()) { - position = from; - velocity = before; + position.setX(from.getX()); + position.setY(from.getY()); + position.setZ(from.getZ()); + position.setYaw(from.getYaw()); + position.setPitch(from.getPitch()); + velocity.copy(before); } else { - position = to; - velocity = event.getAfter(); + position.setX(to.getX()); + position.setY(to.getY()); + position.setZ(to.getZ()); + position.setYaw(to.getYaw()); + position.setPitch(to.getPitch()); + velocity.copy(event.getAfter()); // event.getAfter() will never be null, as setAfter() will cause an NPE if null is passed in } // CraftBukkit end }