I am trying to teleport a user to their own realm using the following code:
@EventHandler
public static void onPortalTravel(PlayerPortalEvent event) throws Excep
It seems like this world is not loaded yet. You have to load it first.
This snippets checks if the world is null. If it is null, it loads(if the world already exists) or creates(if the world doesn't exist yet) the world.
@EventHandler
public static void onPortalTravel(PlayerPortalEvent event) throws Exception {
if (event.getCause() == PlayerPortalEvent.TeleportCause.END_PORTAL) {
int x = event.getPlayer().getLocation().getBlockX();
int y = event.getPlayer().getLocation().getBlockY();
int z = event.getPlayer().getLocation().getBlockZ();
String[] data = getPageData("http://example.com/game.php?type=getRealm&location="+x+":"+y+":"+z).split(":"); // THIS RETURNS <username>:<oldblockid>
String realm = data[0];
int oldID = Integer.parseInt(data[1].trim());
Bukkit.getServer().getWorld("world").getBlockAt(x, y, z).setTypeId(oldID);
World world = Bukkit.getWorld("realms/" + realm);
if(world == null){
//Loads a world with the name given in the constructor
WorldCreator wc = new WorldCreator("realms/" + realm);
world = Bukkit.createWorld(wc);
}
event.getPlayer().teleport(new Location(world, 1, 65,16.5));
}
}