Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

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

Veritange

Новичок
Пользователь
Баллы
21
Я хотел бы узнать, как мне получить блок, на который смотрит игрок, даже если тот далеко. Такое есть в плагие WorldEdit (farwand).
 
Установить worldedit, раз в нём такое есть.
 
Код:
int maxDistance = 200; //Максимальная дистанция
player.getTargetBlock(null, maxDistance);
 
Да-да, я некропостер.

А можете объяснить простому смертному, за что отвечает первый параметр (который у Вас null)?
3 минуты гугла (не сразу нашел доки по этому методу) говорят, что это список материалов, которые считаюся прозначными при вычислении таргет блока (по умолчанию только воздух)
 
3 минуты гугла (не сразу нашел доки по этому методу) говорят, что это список материалов, которые считаюся прозначными при вычислении таргет блока (по умолчанию только воздух)
То-есть которые не будут учтены, и будет считаться блок который за ним?
 
То-есть которые не будут учтены, и будет считаться блок который за ним?
Да, все верно. Если мы передаем туда 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
 
Да, все верно. Если мы передаем туда 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
Сенкью :D
 

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

Назад
Верх