Хочу реализовать оружие из которого выходит луч партиклов и что-либо делает с мобом, но проверка находится ли точка рейкаста в хитбоксе не срабатывает, хотя луч проходит через моба
Код:
Вам необходимо зарегистрироваться для просмотра изображений-вложений
Код:
Java:
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.Particle;
import org.bukkit.entity.Entity;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.util.BoundingBox;
import org.bukkit.util.Vector;
import java.util.ArrayList;
import java.util.Collection;
public class EventListener implements Listener {
private boolean isInRange(Location location, BoundingBox boundingBox) {
double x = location.getX();
double y = location.getY();
double z = location.getZ();
return boundingBox.contains(x, y, z);
}
@EventHandler
public void onItemClick(PlayerInteractEvent e) {
Player p = e.getPlayer();
p.sendMessage("Click");
Location startPosition = p.getLocation();
startPosition.setY(startPosition.getY() + 1.4);
Vector direction = p.getLocation().getDirection();
ArrayList<Location> locationList = new ArrayList<Location>();
int distance = 10;
double accuracy = 0.1;
for (double i = accuracy; i < distance; i += accuracy) {
direction.multiply(i);
startPosition.add(direction);
p.spawnParticle(Particle.VILLAGER_HAPPY, startPosition, 1);
locationList.add(startPosition);
startPosition.subtract(direction);
direction.normalize();
}
int rayDistanceCast = 10;
Collection<Entity> entityCollection = startPosition.getWorld().getNearbyEntities(startPosition, rayDistanceCast , rayDistanceCast , rayDistanceCast );
for (Entity entity : entityCollection) {
for (Location location : locationList) {
if (isInRange(location, entity.getBoundingBox()) & entity.getType() != EntityType.PLAYER){
entity.setGlowing(true);
p.sendMessage(ChatColor.BLUE + entity.getName());
}
}
}
}
}