- Баллы
- 21
Я хотел бы узнать, как мне получить блок, на который смотрит игрок, даже если тот далеко. Такое есть в плагие WorldEdit (farwand).
Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
int maxDistance = 200; //Максимальная дистанция
player.getTargetBlock(null, maxDistance);
А можете объяснить простому смертному, за что отвечает первый параметр (который у Вас null)?Код:int maxDistance = 200; //Максимальная дистанция player.getTargetBlock(null, maxDistance);
3 минуты гугла (не сразу нашел доки по этому методу) говорят, что это список материалов, которые считаюся прозначными при вычислении таргет блока (по умолчанию только воздух)Да-да, я некропостер.
А можете объяснить простому смертному, за что отвечает первый параметр (который у Вас null)?
То-есть которые не будут учтены, и будет считаться блок который за ним?3 минуты гугла (не сразу нашел доки по этому методу) говорят, что это список материалов, которые считаюся прозначными при вычислении таргет блока (по умолчанию только воздух)
Да, все верно. Если мы передаем туда null - "прозрачным" считается только AIR. Вот два метода:То-есть которые не будут учтены, и будет считаться блок который за ним?
СенкьюДа, все верно. Если мы передаем туда 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
