public void transferPlayerToDimension(EntityPlayerMP par1EntityPlayerMP, int par2) {
    int var3 = par1EntityPlayerMP.dimension;
    WorldServer var4 = this.mcServer.worldServerForDimension(par1EntityPlayerMP.dimension);
    par1EntityPlayerMP.dimension = par2;
    WorldServer var5 = this.mcServer.worldServerForDimension(par1EntityPlayerMP.dimension);
    par1EntityPlayerMP.playerNetServerHandler.sendPacketToPlayer(
        new Packet9Respawn(
            par1EntityPlayerMP.dimension,
            (byte) par1EntityPlayerMP.worldObj.difficultySetting,
            var5.getWorldInfo().getTerrainType(),
            var5.getHeight(),
            par1EntityPlayerMP.theItemInWorldManager.getGameType()));
    var4.removeEntity(par1EntityPlayerMP);
    par1EntityPlayerMP.isDead = false;
    this.transferEntityToWorld(par1EntityPlayerMP, var3, var4, var5);
    this.func_72375_a(par1EntityPlayerMP, var4);
    par1EntityPlayerMP.playerNetServerHandler.setPlayerLocation(
        par1EntityPlayerMP.posX,
        par1EntityPlayerMP.posY,
        par1EntityPlayerMP.posZ,
        par1EntityPlayerMP.rotationYaw,
        par1EntityPlayerMP.rotationPitch);
    par1EntityPlayerMP.theItemInWorldManager.setWorld(var5);
    this.updateTimeAndWeatherForPlayer(par1EntityPlayerMP, var5);
    this.syncPlayerInventory(par1EntityPlayerMP);
    Iterator var6 = par1EntityPlayerMP.getActivePotionEffects().iterator();

    while (var6.hasNext()) {
      PotionEffect var7 = (PotionEffect) var6.next();
      par1EntityPlayerMP.playerNetServerHandler.sendPacketToPlayer(
          new Packet41EntityEffect(par1EntityPlayerMP.entityId, var7));
    }
  }
  @Override
  public void playerLoggedOut(EntityPlayerMP par1EntityPlayerMP) {
    if (!MinecraftForge.EVENT_BUS.post(new PlayerLogoutEvent(par1EntityPlayerMP))) {
      GameRegistry.onPlayerLogout(par1EntityPlayerMP);
      super.writePlayerData(par1EntityPlayerMP);
      WorldServer worldserver = par1EntityPlayerMP.getServerForPlayer();

      if (par1EntityPlayerMP.ridingEntity != null) {
        worldserver.removeEntity(par1EntityPlayerMP.ridingEntity);
        System.out.println("removing player mount");
      }

      worldserver.removeEntity(par1EntityPlayerMP);
      worldserver.getPlayerManager().removePlayer(par1EntityPlayerMP);
      super.playerEntityList.remove(par1EntityPlayerMP);
      super.sendPacketToAllPlayers(
          new Packet201PlayerInfo(par1EntityPlayerMP.username, false, 9999));
    }
  }
  /**
   * Called when a player disconnects from the game. Writes player data to disk and removes them
   * from the world.
   */
  public void playerLoggedOut(EntityPlayerMP playerIn) {
    playerIn.triggerAchievement(StatList.leaveGameStat);
    this.writePlayerData(playerIn);
    WorldServer var2 = playerIn.getServerForPlayer();

    if (playerIn.ridingEntity != null) {
      var2.removePlayerEntityDangerously(playerIn.ridingEntity);
      logger.debug("removing player mount");
    }

    var2.removeEntity(playerIn);
    var2.getPlayerManager().removePlayer(playerIn);
    this.playerEntityList.remove(playerIn);
    this.field_177454_f.remove(playerIn.getUniqueID());
    this.playerStatFiles.remove(playerIn.getUniqueID());
    this.sendPacketToAllPlayers(
        new S38PacketPlayerListItem(
            S38PacketPlayerListItem.Action.REMOVE_PLAYER, new EntityPlayerMP[] {playerIn}));
  }