Помогите Определить координаты взгляда

  • Автор темы Автор темы Zemf4you
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

Zemf4you

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
zemf4you
Как же я, наверное, задрал...
Подскажите, как узнать координаты блока, на который направлен взгляд с помощью getEyePosition();
 
Последнее редактирование:
Код:
@EventHandler
    public void interact(PlayerInteractEvent event) {
        Action a = event.getAction();
        if(a == Action.RIGHT_CLICK_AIR || a == Action.RIGHT_CLICK_BLOCK) {
            Player p = event.getPlayer();
            ItemStack item = p.getInventory().getItemInMainHand();
            if (event.getHand() == EquipmentSlot.HAND && item.getType() == Material.STICK) {
                p.getWorld().strikeLightning(p.getTargetBlock((Set<Material>)null, 600).getEyeLocation());
                return;
            }
        }
    }
говорит, getEyeLocation() не подходит для типа "блок"
P.S. - да, знаю, руки бы мне за "a" и "e" оторвать...
 
Попробуй-ка (Set<Material>)null заменить на просто null, так получше будет.

А как извлечь локацию из блока нужно смотреть в доках, а не на форум строчить
 
Попробуй-ка (Set<Material>)null заменить на просто null, так получше будет.

А как извлечь локацию из блока нужно смотреть в доках, а не на форум строчить
Если без указания, то не получается. Об этом написано тут.
Кстати, можно было и написать, а не послать меня неопределённо куда.
 
Код:
Location playerLoc = player.getEyeLocation();
        player.sendMessage((Object)ChatColor.RED + "Your X Eye Coordinates : " + (Object)ChatColor.GOLD + playerLoc.getX());
        player.sendMessage((Object)ChatColor.RED + "Your Y Eye Coordinates : " + (Object)ChatColor.GOLD + playerLoc.getY());
        player.sendMessage((Object)ChatColor.RED + "Your Z Eye Coordinates : " + (Object)ChatColor.GOLD + playerLoc.getZ());
        player.getWorld().strikeLightningEffect(playerLoc);
вот так не работает. Ну, в смысле, работает, но бьёт почему-то именно в место, откуда я и вызываю это командой.
То есть это определяет не место взгляда, а место игрока. Как быть?
 
вОтлично. Всё пашет.
Код:
@EventHandler
    public void interact(PlayerInteractEvent event) {
        Action a = event.getAction();
        if(a == Action.RIGHT_CLICK_AIR || a == Action.RIGHT_CLICK_BLOCK) {
            Player p = event.getPlayer();
            ItemStack item = p.getInventory().getItemInMainHand();
            if (event.getHand() == EquipmentSlot.HAND && item.getType() == Material.STICK) {
                Block targetBlock = p.getTargetBlock((Set<Material>)null, 50);
                p.sendMessage((Object)ChatColor.RED + "Your X Eye Coordinates : " + (Object)ChatColor.GOLD + targetBlock.getX());
                p.sendMessage((Object)ChatColor.RED + "Your Y Eye Coordinates : " + (Object)ChatColor.GOLD + targetBlock.getY());
                p.sendMessage((Object)ChatColor.RED + "Your Z Eye Coordinates : " + (Object)ChatColor.GOLD + targetBlock.getZ());
            }
        
        }
    
    }

Теперь вопрос - как присвоить Location loc = (координаты этого блока)
 
Последнее редактирование:
вОтлично. Всё пашет.
Код:
@EventHandler
    public void interact(PlayerInteractEvent event) {
        Action a = event.getAction();
        if(a == Action.RIGHT_CLICK_AIR || a == Action.RIGHT_CLICK_BLOCK) {
            Player p = event.getPlayer();
            ItemStack item = p.getInventory().getItemInMainHand();
            if (event.getHand() == EquipmentSlot.HAND && item.getType() == Material.STICK) {
                Block targetBlock = p.getTargetBlock((Set<Material>)null, 50);
                p.sendMessage((Object)ChatColor.RED + "Your X Eye Coordinates : " + (Object)ChatColor.GOLD + targetBlock.getX());
                p.sendMessage((Object)ChatColor.RED + "Your Y Eye Coordinates : " + (Object)ChatColor.GOLD + targetBlock.getY());
                p.sendMessage((Object)ChatColor.RED + "Your Z Eye Coordinates : " + (Object)ChatColor.GOLD + targetBlock.getZ());
            }
       
        }
   
    }

Теперь вопрос - как присвоить Location loc = (координаты этого блока)
targetBlock.getLocation() ?
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх