1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите [РЕШЕНО] Получить окружающие рядом блоки

Тема в разделе "Разработка плагинов для новичков", создана пользователем AlbertV, 3 сен 2018.

Статус темы:
Закрыта.
  1. Автор темы
    AlbertV

    AlbertV Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    Lingue
    Всем привет! Я хочу получить блоки находящиеся рядом с Armor Stand. Метод такой не нашел.
    Нашел лишь только такие:
    - getHighestBlockAt и т.д.
     
  2. mySponge

    mySponge Ньюби

    Баллы:
    1
    Имя в Minecraft:
    mySponge
    if(armorstand.getLocation().clone().distance(локация.clone()) < 0.числоD) {
     
  3. Автор темы
    AlbertV

    AlbertV Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    Lingue
    Не работает
     
  4. Cool_boy

    Cool_boy Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    prettydude
    Ну так циклом перебираешь в радиусе от самого стенда - world.getBlockAt(). В чём проблема?
     
  5. mySponge

    mySponge Ньюби

    Баллы:
    1
    Имя в Minecraft:
    mySponge
    у меня всё отлично
     
  6. mySponge

    mySponge Ньюби

    Баллы:
    1
    Имя в Minecraft:
    mySponge
    что конкретно не работает?
     
  7. Автор темы
    AlbertV

    AlbertV Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    Lingue
    Я написал так:
    Код:
    Location standloc = stand.getLocation();
    if(stand.getLocation().getWorld().getBlockAt(standloc).getType() != Material.AIR) {
        stand.remove();
    }
    
    И нифига(
     
  8. mySponge

    mySponge Ньюби

    Баллы:
    1
    Имя в Minecraft:
    mySponge
    if(armorstand.getLocation().clone().distance(location.clone()) < 0.6D) {
     
  9. Автор темы
    AlbertV

    AlbertV Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    Lingue
    Код:
    Location standloc = stand.getLocation();
    if(stand.getLocation().clone().distance(standloc.clone()) < 0.6D) {
        stand.remove();
    }
    
    Написал так, не работает.
     
  10. mySponge

    mySponge Ньюби

    Баллы:
    1
    Имя в Minecraft:
    mySponge
    Ошибки в консоле есть?
     
  11. Автор темы
    AlbertV

    AlbertV Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    Lingue
    Нет их, все ок
     
  12. Cool_boy

    Cool_boy Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    prettydude
    Я чёт ору. Игра: заметь ошибку в коде
    Уточни, для чего именно тебе надо искать блоки?
     
  13. Автор темы
    AlbertV

    AlbertV Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    Lingue
    Чтобы армор стенд удалялся
     
  14. Cool_boy

    Cool_boy Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    prettydude
    Ну по коду выше видно :lol:
    Он летит? Падает?

    UP. Это ты плагин на летающие мечи пишешь уже несколько дней?
     
  15. Автор темы
    AlbertV

    AlbertV Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    Lingue
    Летит
     
  16. Cool_boy

    Cool_boy Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    prettydude
    PHP:
    //с расчёта что меч где-то на уровне глаз стенда
    if(stand.getEyeLocation().getBlock().getType()==Material.AIR) {
      
    stand.remove();
    }
    //методом выше стенд исчезнет когда залетит в блок, можно делать это и раньше
    //                       |Добавляем 0.5 блока по направлению движения стенда|
    if(stand.getEyeLocation().add(stand.getVelocity().normalize().multiply(0.5)).getBlock().getType()==Material.AIR) {
      
    stand.remove();
    }
     
  17. Автор темы
    AlbertV

    AlbertV Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    Lingue
    ((

    Тоже не работает(
     
  18. Cool_boy

    Cool_boy Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    prettydude
    Где ты его используешь? Дай больше кода
     
  19. Автор темы
    AlbertV

    AlbertV Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    Lingue
    PHP:
    BukkitRunnable runnable = new BukkitRunnable() {
       @
    Override
        
    public void run() {
            
    stand.setVelocity(player.getLocation().getDirection());
            List<
    Entityne = (List<org.bukkit.entity.Entity>) stand.getLocation().getWorld().getNearbyEntities(stand.getLocation(), 111);
            for (
    org.bukkit.entity.Entity all ne) {
                if (
    all instanceof Player && all.equals((Object) player) || all instanceof ArmorStand || all instanceof Item || !(all instanceof LivingEntity))
                    continue;
                ((
    LivingEntityall).damage(5);
                
    stand.remove();
                if (
    stand.getEyeLocation().add(stand.getVelocity().normalize().multiply(0.5)).getBlock().getType() != Material.AIR) {
                    
    stand.remove();
                }
            }
        }
    };
    runnable.runTaskTimer(Main.getInstance(), 0L0L);
     
  20. Cool_boy

    Cool_boy Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    prettydude
    Используй тег php для подсветки, на форуме нету для джавы.
    И вынеси код с проверкой блока с цикла, он никогда не запустится когда надо.
     
Статус темы:
Закрыта.

Поделиться этой страницей