From 9250e88d04ca25c178e41b13ab95125d5d708b6d Mon Sep 17 00:00:00 2001 From: CraftBukkit/Spigot Date: Sun, 3 Feb 2013 12:55:51 -0700 Subject: [PATCH] Always return a TravelAgent; Fixes BUKKIT-3541 Recent changes caused PlayerPortalEvent to suddenly return null unexpectedly and could end up in NPEs resulting that did not before. This commit addresses that situation by always ensuring a TravelAgent instance is returned. The TravelAgent for world 0 is returned arbitrarily in an effort to compensate for plugins that are implementation dependent and expect some form of a TravelAgent to be accessible in the event at all times. By: EdGruberman --- .../main/java/org/bukkit/craftbukkit/CraftTravelAgent.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/CraftTravelAgent.java b/paper-server/src/main/java/org/bukkit/craftbukkit/CraftTravelAgent.java index b21714e5f2..3a313e5349 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/CraftTravelAgent.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/CraftTravelAgent.java @@ -9,12 +9,17 @@ import org.bukkit.TravelAgent; public class CraftTravelAgent extends PortalTravelAgent implements TravelAgent { + public static TravelAgent DEFAULT = null; + private int searchRadius = 128; private int creationRadius = 16; private boolean canCreatePortal = true; public CraftTravelAgent(WorldServer worldserver) { super(worldserver); + if (DEFAULT == null && worldserver.dimension == 0) { + DEFAULT = (TravelAgent) worldserver.s(); + } } public Location findOrCreate(Location target) {