daily pastebin goal
69%
SHARE
TWEET

Untitled

a guest Jan 14th, 2018 61 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. public LivingEntity getTargetedEntity(Player player, int range, boolean targetPlayers, boolean targetNonPlayers) {
  2.                 // get nearby living entities, filtered by player targeting options
  3.                 List<Entity> ne = player.getNearbyEntities(range, range, range);
  4.                 ArrayList<LivingEntity> entities = new ArrayList<LivingEntity>();
  5.                 for (Entity e : ne) {
  6.                         if (e instanceof LivingEntity) {
  7.                                 if ((targetPlayers || !(e instanceof Player)) && (targetNonPlayers || e instanceof Player)) {
  8.                                         entities.add((LivingEntity)e);
  9.                                 }
  10.                         }
  11.                 }
  12.                
  13.                 // find target
  14.                 LivingEntity target = null;
  15.                 BlockIterator bi = new BlockIterator(player, range);
  16.                 Block b;
  17.                 Location l;
  18.                 int bx, by, bz;
  19.                 double ex, ey, ez;
  20.                 // loop through player's line of sight
  21.                 while (bi.hasNext()) {
  22.                         b = bi.next();
  23.                         bx = b.getX();
  24.                         by = b.getY();
  25.                         bz = b.getZ();      
  26.                                 // check for entities near this block in the line of sight
  27.                                 for (LivingEntity e : entities) {
  28.                                         l = e.getLocation();
  29.                                         ex = l.getX();
  30.                                         ey = l.getY();
  31.                                         ez = l.getZ();
  32.                                         if ((bx-.75 <= ex && ex <= bx+1.75) && (bz-.75 <= ez && ez <= bz+1.75) && (by-1 <= ey && ey <= by+2.5)) {
  33.                                                 // entity is close enough, set target and stop
  34.                                                 target = e;
  35.                                                 break;
  36.                                         }
  37.                                 }
  38.                         }
  39.                
  40.                
  41.                 return target;
  42.         }
RAW Paste Data
Top