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

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

Discussion in 'Разработка плагинов для новичков' started by Veritange, Jun 19, 2014.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Trophy Points:
    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 Старожил Пользователь

    Trophy Points:
    123
    Сенкью :D
     

Share This Page