Я знаю, что как только мне скажут ответ, я почувствую себя идиотом, но это что мне удалось сделать на данный момент.
Код: Выделить всё
LivingEntity livingEntity = (LivingEntity) event.getPlayer();
World world = livingEntity.getWorld();
Vector lookDir = livingEntity.getEyeLocation().getDirection();
Vector leftDir = lookDir.clone();
Vector rightDir = lookDir.clone();
float hookDirectionFromEyeDirection = 45f / 100f;
if(lookDir.getX() >= 0) {
leftDir.add(new Vector(-hookDirectionFromEyeDirection, 0, 0));
rightDir.add(new Vector(hookDirectionFromEyeDirection, 0, 0));
} else if(lookDir.getX() < 0){
leftDir.add(new Vector(hookDirectionFromEyeDirection, 0, 0));
rightDir.add(new Vector(-hookDirectionFromEyeDirection, 0, 0));
}
RayTraceResult rayTraceResult = world.rayTraceBlocks(livingEntity.getEyeLocation(), leftDir, MAX_DISTANCE, FluidCollisionMode.NEVER, true);
MyPlugin.getLoggerInstance().info("LookDir: " + lookDir + " | " + leftDir);
if(rayTraceResult != null) {
livingEntity.sendMessage("You just hit a: " + rayTraceResult.getHitBlock().getType());
ArmorStand hook = world.createEntity(rayTraceResult.getHitPosition().toLocation(world), ArmorStand.class);
hook.setGravity(false);
livingEntity.getWorld().addEntity(hook);
return;
} else {
livingEntity.sendMessage("You didn't just hit a block...");
return;
}
Подробнее здесь: https://stackoverflow.com/questions/785 ... yer-is-fac