PlayerChangedWorldEvent#getFrom is the same as PlayerChangedWorldEvent#getPlayer#getWorld, wheras previous behaviour was not so.
I have attached a plugin in which listens to PlayerChangedWorldEvent:
@EventHandler public void onPlayerChangeWorld(final PlayerChangedWorldEvent event) { getLogger().log(Level.INFO, "From: " + event.getFrom().getName()); getLogger().log(Level.INFO, "Current: " + event.getPlayer().getWorld().getName()); }
The expected output of "from" should be that of the origin world.