protected void onImpact(MovingObjectPosition par1MovingObjectPosition)
    {
        if (par1MovingObjectPosition.entityHit != null)
        {
            par1MovingObjectPosition.entityHit.attackEntityFrom(DamageSource.causeThrownDamage(this, thrower), 0);
        }

        for (int i = 0; i < 32; i++)
        {
            worldObj.spawnParticle("portal", posX, posY + rand.nextDouble() * 2D, posZ, rand.nextGaussian(), 0.0D, rand.nextGaussian());
        }

        if (!worldObj.isRemote)
        {
            if (thrower != null && (thrower instanceof EntityPlayerMP))
            {
                EntityPlayerMP entityplayermp = (EntityPlayerMP)thrower;

                if (!entityplayermp.field_71135_a.field_72576_c && entityplayermp.worldObj == worldObj)
                {
                    thrower.setPositionAndUpdate(posX, posY, posZ);
                    thrower.fallDistance = 0.0F;
                    thrower.attackEntityFrom(DamageSource.fall, 5);
                }
            }

            setDead();
        }
    }