13
0
geforkt von Mirrors/Paper

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 <ed@rjump.com>
Dieser Commit ist enthalten in:
CraftBukkit/Spigot 2013-02-03 12:55:51 -07:00
Ursprung 20ddd83f9a
Commit 9250e88d04

Datei anzeigen

@ -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) {