博主头像
7024w的自留地

觉宇宙之无穷,识盈虚之有数

Bukkit获取玩家此时面对的方块

public static Entity getNearestEntityInSight(Player player, int range) {

ArrayList<Entity> entities = (ArrayList<Entity>) player.getNearbyEntities(range, range, range);
ArrayList<Block> sightBlock = (ArrayList<Block>) player.getLineOfSight( (Set<Material>) null, range);
ArrayList<Location> sight = new ArrayList<Location>();
for (int i = 0;i<sightBlock.size();i++)
    sight.add(sightBlock.get(i).getLocation());
for (int i = 0;i<sight.size();i++) {
    for (int k = 0;k<entities.size();k++) {
        if (Math.abs(entities.get(k).getLocation().getX()-sight.get(i).getX())<1.3) {
            if (Math.abs(entities.get(k).getLocation().getY()-sight.get(i).getY())<1.5) {
                if (Math.abs(entities.get(k).getLocation().getZ()-sight.get(i).getZ())<1.3) {
                    return entities.get(k);
                }
            }
        }
    }
}
return null; //Return null/nothing if no entity was found

}

发表新评论