Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Помогите Как получить блок, на который смотрит игрок?

Тема в разделе "Разработка плагинов для новичков", создана пользователем Veritange, 19 июн 2014.

  1. Автор темы
    Veritange

    Veritange Новичок Пользователь

    Баллы:
    21
    Я хотел бы узнать, как мне получить блок, на который смотрит игрок, даже если тот далеко. Такое есть в плагие WorldEdit (farwand).
     
  2. Хостинг MineCraft
    <
  3. WCRAFT

    WCRAFT Старожил Пользователь

    Баллы:
    173
    Skype:
    worldplaytv
    Имя в Minecraft:
    World
    Установить worldedit, раз в нём такое есть.
     
  4. BeYkeR

    BeYkeR Старожил Девелопер Пользователь

    Баллы:
    173
    Код:
    int maxDistance = 200; //Максимальная дистанция
    player.getTargetBlock(null, maxDistance);
     
  5. Автор темы
    Veritange

    Veritange Новичок Пользователь

    Баллы:
    21
    @BeYkeR, спасибо большое!
     
  6. Mr_RoboMan

    Mr_RoboMan Старожил Пользователь

    Баллы:
    123
    Да-да, я некропостер.
    А можете объяснить простому смертному, за что отвечает первый параметр (который у Вас null)?
     
  7. Code

    Code Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    _Gizmo
    3 минуты гугла (не сразу нашел доки по этому методу) говорят, что это список материалов, которые считаюся прозначными при вычислении таргет блока (по умолчанию только воздух)
     
  8. Mr_RoboMan

    Mr_RoboMan Старожил Пользователь

    Баллы:
    123
    То-есть которые не будут учтены, и будет считаться блок который за ним?
     
  9. DPOH-VAR

    DPOH-VAR Старожил Пользователь

    Баллы:
    153
    Skype:
    dpohvar
    Да, все верно. Если мы передаем туда null - "прозрачным" считается только AIR. Вот два метода:
    https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/entity/LivingEntity.html#getTargetBlock(java.util.HashSet, int)
    https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/entity/LivingEntity.html#getTargetBlock(java.util.Set, int)
    Один из них принимает HashSet<Byte>, другой Set<Material>.
    Если у вас в API присутствуют сразу два метода, то нужно уточнить выбор, например:
    getTargetBlock( (HashSet<Byte>) null, 128 )
    Я столкнулся с такой проблемой, что в Spigot 1.8 отсутствует метод getTargetBlock(Set<Material>, int), хотя в реализации API он есть. Приходится использовать первый метод, но он @Deprecated
     
  10. Mr_RoboMan

    Mr_RoboMan Старожил Пользователь

    Баллы:
    123
    Сенкью :D
     

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