Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- static boolean transferPlayerToDimension(EntityPlayerMP sourcePlayer, int dimensionDestination, double x, double y, double z)
- {
- ServerConfigurationManager serverConfigurationManager = sourcePlayer.mcServer.getConfigurationManager();
- WorldServer sourceWorldServer = sourcePlayer.mcServer.worldServerForDimension(sourcePlayer.dimension);
- WorldServer destinationWorldServer = sourcePlayer.mcServer.worldServerForDimension(dimensionDestination);
- // fire player change dimension event and check that action is valid before continuing
- PlayerChangedDimensionEvent playerChangedDimensionEvent = new PlayerChangedDimensionEvent(sourcePlayer, sourcePlayer.dimension, dimensionDestination);
- if (FMLCommonHandler.instance().bus().post(playerChangedDimensionEvent) == true)
- {
- return false;
- }
- sourcePlayer.dimension = dimensionDestination;
- sourcePlayer.playerNetServerHandler.sendPacket(
- new S07PacketRespawn(
- sourcePlayer.dimension,
- sourcePlayer.worldObj.getDifficulty(), sourcePlayer.worldObj.getWorldInfo().getTerrainType(),
- sourcePlayer.theItemInWorldManager.getGameType()
- )
- );
- sourceWorldServer.removeEntity(sourcePlayer);
- sourcePlayer.isDead = false;
- sourcePlayer.mountEntity((Entity) null);
- if (sourcePlayer.riddenByEntity != null) {
- sourcePlayer.riddenByEntity.mountEntity((Entity) null);
- }
- destinationWorldServer.spawnEntityInWorld(sourcePlayer);
- destinationWorldServer.updateEntityWithOptionalForce(sourcePlayer, false);
- sourcePlayer.setWorld(destinationWorldServer);
- serverConfigurationManager.func_72375_a(sourcePlayer, destinationWorldServer);
- sourcePlayer.playerNetServerHandler.setPlayerLocation(x, y, z, sourcePlayer.rotationYaw, sourcePlayer.rotationPitch);
- sourcePlayer.theItemInWorldManager.setWorld(destinationWorldServer);
- sourcePlayer.mcServer.getConfigurationManager().updateTimeAndWeatherForPlayer(sourcePlayer, destinationWorldServer);
- sourcePlayer.mcServer.getConfigurationManager().syncPlayerInventory(sourcePlayer);
- sourcePlayer.addExperience(0);
- sourcePlayer.setPlayerHealthUpdated();
- FMLCommonHandler.instance().firePlayerChangedDimensionEvent(
- sourcePlayer,
- sourceWorldServer.provider.getDimensionId(),
- destinationWorldServer.provider.getDimensionId());
- TeleporterEntity.transferToLocation(sourcePlayer, x, y, z);
- return true;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement