Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Сейчас гляну...getLineOfSight() не подходит?
UPD: Насколько я понял, это направление по линии взгляда - что-то вроде стрельбы, кидания эндерперла и яйца. Полезно, это тоже искал.getLineOfSight() не подходит?
Так и попробовал, зачёркивается. Нашёл тему с решением, пробую.getTargetBlock
getTargetBlock
@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;
}
}
}
Если без указания, то не получается. Об этом написано тут.Попробуй-ка (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());
}
}
}
targetBlock.getLocation() ?вОтлично. Всё пашет.
Код:@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() ?
UPD: Да ё* твою мать, ща бы в написании сделать ошибку. Красава, шо сказать 🙂targetBlock.getLocation() ?