Начинающий
			
			
				
					
				
			
		- Статус
 - Оффлайн
 
- Регистрация
 - 25 Янв 2024
 
- Сообщения
 - 119
 
- Реакции
 - 0
 
no ss
кароче такой-же как и в quick client
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
				
			кароче такой-же как и в quick client
			
				Код:
			
		
		
		package im.expensive.functions.impl.combat;
import com.google.common.eventbus.Subscribe;
import im.expensive.functions.api.Category;
import im.expensive.functions.api.Function;
import im.expensive.functions.api.FunctionRegister;
import net.minecraft.entity.item.EnderPearlEntity;
import net.minecraft.util.math.BlockRayTraceResult;
import net.minecraft.util.math.RayTraceContext;
import net.minecraft.util.math.RayTraceResult;
import net.minecraft.util.math.vector.Vector3d;
import java.util.ArrayList;
import java.util.List;
import net.minecraftforge.eventbus.api.Event;
@FunctionRegister(
name = "PearlTarget",
        type = Category.Combat
)
public class PearlTarget extends Function {
@Subscribe
    public void onEvent(Event event) {
}
public List<Vector3d> getPearlPositions(EnderPearlEntity entity) {
Vector3d pearlPosition = entity.getPositionVec();
        Vector3d pearlMotion = entity.getMotion();
        Vector3d lastPosition;
        List<Vector3d> positions = new ArrayList<>();
        for (int i = 0; i < 300; i++) {
lastPosition = pearlPosition;
            pearlPosition = pearlPosition.add(pearlMotion);
            pearlMotion = updatePearlMotion(entity, pearlMotion);
            if (shouldEntityHit(pearlPosition, lastPosition) || pearlPosition.y <= 0) {
break;
            }
positions.add(pearlPosition);
        }
return positions;
    }
private Vector3d updatePearlMotion(EnderPearlEntity pearl, Vector3d originalPearlMotion) {
Vector3d pearlMotion = originalPearlMotion;
        if (pearl.isInWater()) {
pearlMotion = pearlMotion.scale(0.8f);
        } else {
pearlMotion = pearlMotion.scale(0.99f);
        }
if (!pearl.hasNoGravity())
pearlMotion.y -= pearl.getGravityVelocity();
        return pearlMotion;
    }
private boolean shouldEntityHit(Vector3d pearlPosition, Vector3d lastPosition) {
final RayTraceContext rayTraceContext = new RayTraceContext(
lastPosition,
                pearlPosition,
                RayTraceContext.BlockMode.COLLIDER,
                RayTraceContext.FluidMode.NONE,
                mc.player
        );
        final BlockRayTraceResult blockHitResult = mc.world.rayTraceBlocks(rayTraceContext);
        return blockHitResult.getType() == RayTraceResult.Type.BLOCK;
    }
}
	
				
  