Implement getters and setters in wander waypoint goal

This commit is contained in:
fullwall 2023-07-10 02:58:23 +08:00
parent 0e9dcf210f
commit d0abea6dd5
11 changed files with 70 additions and 129 deletions

View File

@ -41,10 +41,10 @@ import net.citizensnpcs.util.Util;
public class WanderWaypointProvider implements WaypointProvider { public class WanderWaypointProvider implements WaypointProvider {
private WanderGoal currentGoal; private WanderGoal currentGoal;
@Persist @Persist
public int delay = -1; private int delay = -1;
private NPC npc; private NPC npc;
@Persist @Persist
public boolean pathfind = true; private boolean pathfind = true;
private boolean paused; private boolean paused;
@Persist @Persist
private final List<Location> regionCentres = Lists.newArrayList(); private final List<Location> regionCentres = Lists.newArrayList();
@ -53,9 +53,9 @@ public class WanderWaypointProvider implements WaypointProvider {
private String worldguardRegion; private String worldguardRegion;
private Object worldguardRegionCache; private Object worldguardRegionCache;
@Persist @Persist
public int xrange = DEFAULT_XRANGE; private int xrange = DEFAULT_XRANGE;
@Persist @Persist
public int yrange = DEFAULT_YRANGE; private int yrange = DEFAULT_YRANGE;
public void addRegionCentre(Location centre) { public void addRegionCentre(Location centre) {
regionCentres.add(centre); regionCentres.add(centre);
@ -106,15 +106,12 @@ public class WanderWaypointProvider implements WaypointProvider {
range = 0; range = 0;
} }
if (message.startsWith("xrange")) { if (message.startsWith("xrange")) {
xrange = range; setXYRange(range, yrange);
} else { } else {
yrange = range; setXYRange(xrange, range);
}
if (currentGoal != null) {
currentGoal.setXYRange(xrange, yrange);
} }
recalculateTree(); recalculateTree();
} catch (Exception ex) { } catch (NumberFormatException ex) {
} }
Bukkit.getScheduler().scheduleSyncDelayedTask(CitizensAPI.getPlugin(), Bukkit.getScheduler().scheduleSyncDelayedTask(CitizensAPI.getPlugin(),
() -> Messaging.sendTr(sender, Messages.WANDER_WAYPOINTS_RANGE_SET, xrange, yrange)); () -> Messaging.sendTr(sender, Messages.WANDER_WAYPOINTS_RANGE_SET, xrange, yrange));
@ -136,17 +133,14 @@ public class WanderWaypointProvider implements WaypointProvider {
}); });
} else if (message.startsWith("delay")) { } else if (message.startsWith("delay")) {
event.setCancelled(true); event.setCancelled(true);
delay = Util.parseTicks(message.split(" ")[1]); setDelay(Util.parseTicks(message.split(" ")[1]));
if (currentGoal != null) {
currentGoal.setDelay(delay);
}
Bukkit.getScheduler().scheduleSyncDelayedTask(CitizensAPI.getPlugin(), Bukkit.getScheduler().scheduleSyncDelayedTask(CitizensAPI.getPlugin(),
() -> Messaging.sendTr(sender, Messages.WANDER_WAYPOINTS_DELAY_SET, delay)); () -> Messaging.sendTr(sender, Messages.WANDER_WAYPOINTS_DELAY_SET, delay));
} else if (message.startsWith("worldguardregion")) { } else if (message.startsWith("worldguardregion")) {
event.setCancelled(true); event.setCancelled(true);
Bukkit.getScheduler().scheduleSyncDelayedTask(CitizensAPI.getPlugin(), () -> { Bukkit.getScheduler().scheduleSyncDelayedTask(CitizensAPI.getPlugin(), () -> {
Object region = null; Object region = null;
String regionId = message.replace("worldguardregion ", ""); String regionId = message.replace("worldguardregion", "").trim();
try { try {
RegionManager manager = WorldGuard.getInstance().getPlatform().getRegionContainer() RegionManager manager = WorldGuard.getInstance().getPlatform().getRegionContainer()
.get(BukkitAdapter.adapt(npc.getStoredLocation().getWorld())); .get(BukkitAdapter.adapt(npc.getStoredLocation().getWorld()));
@ -158,7 +152,7 @@ public class WanderWaypointProvider implements WaypointProvider {
Messaging.sendErrorTr(sender, Messages.WANDER_WAYPOINTS_WORLDGUARD_REGION_NOT_FOUND); Messaging.sendErrorTr(sender, Messages.WANDER_WAYPOINTS_WORLDGUARD_REGION_NOT_FOUND);
return; return;
} }
WanderWaypointProvider.this.worldguardRegion = regionId; setWorldGuardRegion(regionId);
Messaging.sendErrorTr(sender, Messages.WANDER_WAYPOINTS_WORLDGUARD_REGION_SET, regionId); Messaging.sendErrorTr(sender, Messages.WANDER_WAYPOINTS_WORLDGUARD_REGION_SET, regionId);
}); });
} else if (message.startsWith("pathfind")) { } else if (message.startsWith("pathfind")) {
@ -212,6 +206,10 @@ public class WanderWaypointProvider implements WaypointProvider {
}; };
} }
public int getDelay() {
return delay;
}
public List<Location> getRegionCentres() { public List<Location> getRegionCentres() {
return new RecalculateList(); return new RecalculateList();
} }
@ -233,6 +231,18 @@ public class WanderWaypointProvider implements WaypointProvider {
} }
} }
public int getXRange() {
return xrange;
}
public int getYRange() {
return yrange;
}
public boolean isPathfind() {
return pathfind;
}
@Override @Override
public boolean isPaused() { public boolean isPaused() {
return paused; return paused;
@ -298,6 +308,20 @@ public class WanderWaypointProvider implements WaypointProvider {
public void save(DataKey key) { public void save(DataKey key) {
} }
public void setDelay(int delay) {
this.delay = delay;
if (currentGoal != null) {
currentGoal.setDelay(delay);
}
}
public void setPathfind(boolean pathfind) {
this.pathfind = pathfind;
if (currentGoal != null) {
currentGoal.setPathfind(pathfind);
}
}
@Override @Override
public void setPaused(boolean paused) { public void setPaused(boolean paused) {
this.paused = paused; this.paused = paused;

View File

@ -16,6 +16,7 @@ import java.util.Map;
import java.util.Random; import java.util.Random;
import java.util.Set; import java.util.Set;
import java.util.function.Consumer; import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Supplier; import java.util.function.Supplier;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
@ -55,7 +56,6 @@ import org.bukkit.inventory.meta.SkullMeta;
import org.bukkit.scoreboard.Team; import org.bukkit.scoreboard.Team;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import com.google.common.base.Function;
import com.google.common.base.Preconditions; import com.google.common.base.Preconditions;
import com.google.common.collect.Iterables; import com.google.common.collect.Iterables;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
@ -541,12 +541,7 @@ public class NMSImpl implements NMSBridge {
Entity handle = NMSImpl.getHandle(entity); Entity handle = NMSImpl.getHandle(entity);
if (handle == null || handle.passengers == null) if (handle == null || handle.passengers == null)
return Lists.newArrayList(); return Lists.newArrayList();
return Lists.transform(handle.passengers, new Function<Entity, org.bukkit.entity.Entity>() { return Lists.transform(handle.passengers, input -> input.getBukkitEntity());
@Override
public org.bukkit.entity.Entity apply(Entity input) {
return input.getBukkitEntity();
}
});
} }
@Override @Override
@ -609,19 +604,11 @@ public class NMSImpl implements NMSBridge {
@Override @Override
public MCNavigator getTargetNavigator(org.bukkit.entity.Entity entity, Iterable<Vector> dest, public MCNavigator getTargetNavigator(org.bukkit.entity.Entity entity, Iterable<Vector> dest,
final NavigatorParameters params) { final NavigatorParameters params) {
final PathEntity path = new PathEntity( final PathEntity path = new PathEntity(Iterables.toArray(
Iterables.toArray(Iterables.transform(dest, new Function<Vector, PathPoint>() { Iterables.transform(dest,
@Override input -> new PathPoint(input.getBlockX(), input.getBlockY(), input.getBlockZ())),
public PathPoint apply(Vector input) { PathPoint.class));
return new PathPoint(input.getBlockX(), input.getBlockY(), input.getBlockZ()); return getTargetNavigator(entity, params, input -> input.a(path, params.speed()));
}
}), PathPoint.class));
return getTargetNavigator(entity, params, new Function<NavigationAbstract, Boolean>() {
@Override
public Boolean apply(NavigationAbstract input) {
return input.a(path, params.speed());
}
});
} }
@Override @Override

View File

@ -55,7 +55,7 @@ import org.bukkit.inventory.meta.SkullMeta;
import org.bukkit.scoreboard.Team; import org.bukkit.scoreboard.Team;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import com.google.common.base.Function; import java.util.function.Function;
import com.google.common.base.Preconditions; import com.google.common.base.Preconditions;
import com.google.common.collect.Iterables; import com.google.common.collect.Iterables;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
@ -561,12 +561,7 @@ public class NMSImpl implements NMSBridge {
Entity handle = NMSImpl.getHandle(entity); Entity handle = NMSImpl.getHandle(entity);
if (handle == null || handle.passengers == null) if (handle == null || handle.passengers == null)
return Lists.newArrayList(); return Lists.newArrayList();
return Lists.transform(handle.passengers, new Function<Entity, org.bukkit.entity.Entity>() { return Lists.transform(handle.passengers, input->input.getBukkitEntity());
@Override
public org.bukkit.entity.Entity apply(Entity input) {
return input.getBukkitEntity();
}
});
} }
@Override @Override
@ -630,12 +625,7 @@ public class NMSImpl implements NMSBridge {
public MCNavigator getTargetNavigator(org.bukkit.entity.Entity entity, Iterable<Vector> dest, public MCNavigator getTargetNavigator(org.bukkit.entity.Entity entity, Iterable<Vector> dest,
final NavigatorParameters params) { final NavigatorParameters params) {
final PathEntity path = new PathEntity( final PathEntity path = new PathEntity(
Iterables.toArray(Iterables.transform(dest, new Function<Vector, PathPoint>() { Iterables.toArray(Iterables.transform(dest, input -> new PathPoint(input.getBlockX(), input.getBlockY(), input.getBlockZ())), PathPoint.class));
@Override
public PathPoint apply(Vector input) {
return new PathPoint(input.getBlockX(), input.getBlockY(), input.getBlockZ());
}
}), PathPoint.class));
return getTargetNavigator(entity, params, new Function<NavigationAbstract, Boolean>() { return getTargetNavigator(entity, params, new Function<NavigationAbstract, Boolean>() {
@Override @Override
public Boolean apply(NavigationAbstract input) { public Boolean apply(NavigationAbstract input) {

View File

@ -55,7 +55,7 @@ import org.bukkit.inventory.meta.SkullMeta;
import org.bukkit.scoreboard.Team; import org.bukkit.scoreboard.Team;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import com.google.common.base.Function; import java.util.function.Function;
import com.google.common.base.Preconditions; import com.google.common.base.Preconditions;
import com.google.common.collect.Iterables; import com.google.common.collect.Iterables;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
@ -630,12 +630,7 @@ public class NMSImpl implements NMSBridge {
public MCNavigator getTargetNavigator(org.bukkit.entity.Entity entity, Iterable<Vector> dest, public MCNavigator getTargetNavigator(org.bukkit.entity.Entity entity, Iterable<Vector> dest,
final NavigatorParameters params) { final NavigatorParameters params) {
final PathEntity path = new PathEntity( final PathEntity path = new PathEntity(
Iterables.toArray(Iterables.transform(dest, new Function<Vector, PathPoint>() { Iterables.toArray(Iterables.transform(dest, input -> new PathPoint(input.getBlockX(), input.getBlockY(), input.getBlockZ())), PathPoint.class));
@Override
public PathPoint apply(Vector input) {
return new PathPoint(input.getBlockX(), input.getBlockY(), input.getBlockZ());
}
}), PathPoint.class));
return getTargetNavigator(entity, params, new Function<NavigationAbstract, Boolean>() { return getTargetNavigator(entity, params, new Function<NavigationAbstract, Boolean>() {
@Override @Override
public Boolean apply(NavigationAbstract input) { public Boolean apply(NavigationAbstract input) {

View File

@ -56,7 +56,7 @@ import org.bukkit.inventory.meta.SkullMeta;
import org.bukkit.scoreboard.Team; import org.bukkit.scoreboard.Team;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import com.google.common.base.Function; import java.util.function.Function;
import com.google.common.base.Preconditions; import com.google.common.base.Preconditions;
import com.google.common.collect.Iterables; import com.google.common.collect.Iterables;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
@ -589,12 +589,7 @@ public class NMSImpl implements NMSBridge {
Entity handle = NMSImpl.getHandle(entity); Entity handle = NMSImpl.getHandle(entity);
if (handle == null || handle.passengers == null) if (handle == null || handle.passengers == null)
return Lists.newArrayList(); return Lists.newArrayList();
return Lists.transform(handle.passengers, new Function<Entity, org.bukkit.entity.Entity>() { return Lists.transform(handle.passengers, input->input.getBukkitEntity());
@Override
public org.bukkit.entity.Entity apply(Entity input) {
return input.getBukkitEntity();
}
});
} }
@Override @Override
@ -658,12 +653,7 @@ public class NMSImpl implements NMSBridge {
public MCNavigator getTargetNavigator(org.bukkit.entity.Entity entity, Iterable<Vector> dest, public MCNavigator getTargetNavigator(org.bukkit.entity.Entity entity, Iterable<Vector> dest,
final NavigatorParameters params) { final NavigatorParameters params) {
final PathEntity path = new PathEntity( final PathEntity path = new PathEntity(
Iterables.toArray(Iterables.transform(dest, new Function<Vector, PathPoint>() { Iterables.toArray(Iterables.transform(dest, input -> new PathPoint(input.getBlockX(), input.getBlockY(), input.getBlockZ())), PathPoint.class));
@Override
public PathPoint apply(Vector input) {
return new PathPoint(input.getBlockX(), input.getBlockY(), input.getBlockZ());
}
}), PathPoint.class));
return getTargetNavigator(entity, params, new Function<NavigationAbstract, Boolean>() { return getTargetNavigator(entity, params, new Function<NavigationAbstract, Boolean>() {
@Override @Override
public Boolean apply(NavigationAbstract input) { public Boolean apply(NavigationAbstract input) {

View File

@ -54,7 +54,7 @@ import org.bukkit.inventory.meta.SkullMeta;
import org.bukkit.scoreboard.Team; import org.bukkit.scoreboard.Team;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import com.google.common.base.Function; import java.util.function.Function;
import com.google.common.base.Preconditions; import com.google.common.base.Preconditions;
import com.google.common.collect.Iterables; import com.google.common.collect.Iterables;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
@ -626,12 +626,7 @@ public class NMSImpl implements NMSBridge {
Entity handle = NMSImpl.getHandle(entity); Entity handle = NMSImpl.getHandle(entity);
if (handle == null || handle.passengers == null) if (handle == null || handle.passengers == null)
return Lists.newArrayList(); return Lists.newArrayList();
return Lists.transform(handle.passengers, new Function<Entity, org.bukkit.entity.Entity>() { return Lists.transform(handle.passengers, input->input.getBukkitEntity());
@Override
public org.bukkit.entity.Entity apply(Entity input) {
return input.getBukkitEntity();
}
});
} }
@Override @Override
@ -693,12 +688,7 @@ public class NMSImpl implements NMSBridge {
public MCNavigator getTargetNavigator(org.bukkit.entity.Entity entity, Iterable<Vector> dest, public MCNavigator getTargetNavigator(org.bukkit.entity.Entity entity, Iterable<Vector> dest,
final NavigatorParameters params) { final NavigatorParameters params) {
List<PathPoint> list = Lists.<PathPoint> newArrayList( List<PathPoint> list = Lists.<PathPoint> newArrayList(
Iterables.<Vector, PathPoint> transform(dest, new Function<Vector, PathPoint>() { Iterables.<Vector, PathPoint> transform(dest, input -> new PathPoint(input.getBlockX(), input.getBlockY(), input.getBlockZ())));
@Override
public PathPoint apply(Vector input) {
return new PathPoint(input.getBlockX(), input.getBlockY(), input.getBlockZ());
}
}));
PathPoint last = list.size() > 0 ? list.get(list.size() - 1) : null; PathPoint last = list.size() > 0 ? list.get(list.size() - 1) : null;
final PathEntity path = new PathEntity(list, last != null ? new BlockPosition(last.a, last.b, last.c) : null, final PathEntity path = new PathEntity(list, last != null ? new BlockPosition(last.a, last.b, last.c) : null,
true); true);

View File

@ -54,7 +54,7 @@ import org.bukkit.inventory.meta.SkullMeta;
import org.bukkit.scoreboard.Team; import org.bukkit.scoreboard.Team;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import com.google.common.base.Function; import java.util.function.Function;
import com.google.common.base.Preconditions; import com.google.common.base.Preconditions;
import com.google.common.collect.Iterables; import com.google.common.collect.Iterables;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
@ -641,12 +641,7 @@ public class NMSImpl implements NMSBridge {
Entity handle = NMSImpl.getHandle(entity); Entity handle = NMSImpl.getHandle(entity);
if (handle == null || handle.passengers == null) if (handle == null || handle.passengers == null)
return Lists.newArrayList(); return Lists.newArrayList();
return Lists.transform(handle.passengers, new Function<Entity, org.bukkit.entity.Entity>() { return Lists.transform(handle.passengers, input->input.getBukkitEntity());
@Override
public org.bukkit.entity.Entity apply(Entity input) {
return input.getBukkitEntity();
}
});
} }
@Override @Override
@ -708,12 +703,7 @@ public class NMSImpl implements NMSBridge {
public MCNavigator getTargetNavigator(org.bukkit.entity.Entity entity, Iterable<Vector> dest, public MCNavigator getTargetNavigator(org.bukkit.entity.Entity entity, Iterable<Vector> dest,
final NavigatorParameters params) { final NavigatorParameters params) {
List<PathPoint> list = Lists.<PathPoint> newArrayList( List<PathPoint> list = Lists.<PathPoint> newArrayList(
Iterables.<Vector, PathPoint> transform(dest, new Function<Vector, PathPoint>() { Iterables.<Vector, PathPoint> transform(dest, input -> new PathPoint(input.getBlockX(), input.getBlockY(), input.getBlockZ())));
@Override
public PathPoint apply(Vector input) {
return new PathPoint(input.getBlockX(), input.getBlockY(), input.getBlockZ());
}
}));
PathPoint last = list.size() > 0 ? list.get(list.size() - 1) : null; PathPoint last = list.size() > 0 ? list.get(list.size() - 1) : null;
final PathEntity path = new PathEntity(list, last != null ? new BlockPosition(last.a, last.b, last.c) : null, final PathEntity path = new PathEntity(list, last != null ? new BlockPosition(last.a, last.b, last.c) : null,
true); true);

View File

@ -55,7 +55,7 @@ import org.bukkit.inventory.meta.SkullMeta;
import org.bukkit.scoreboard.Team; import org.bukkit.scoreboard.Team;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import com.google.common.base.Function; import java.util.function.Function;
import com.google.common.base.Preconditions; import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Iterables; import com.google.common.collect.Iterables;
@ -657,12 +657,7 @@ public class NMSImpl implements NMSBridge {
Entity handle = NMSImpl.getHandle(entity); Entity handle = NMSImpl.getHandle(entity);
if (handle == null || handle.passengers == null) if (handle == null || handle.passengers == null)
return Lists.newArrayList(); return Lists.newArrayList();
return Lists.transform(handle.passengers, new Function<Entity, org.bukkit.entity.Entity>() { return Lists.transform(handle.passengers, input->input.getBukkitEntity());
@Override
public org.bukkit.entity.Entity apply(Entity input) {
return input.getBukkitEntity();
}
});
} }
@Override @Override
@ -732,12 +727,7 @@ public class NMSImpl implements NMSBridge {
public MCNavigator getTargetNavigator(org.bukkit.entity.Entity entity, Iterable<Vector> dest, public MCNavigator getTargetNavigator(org.bukkit.entity.Entity entity, Iterable<Vector> dest,
final NavigatorParameters params) { final NavigatorParameters params) {
List<PathPoint> list = Lists.<PathPoint> newArrayList( List<PathPoint> list = Lists.<PathPoint> newArrayList(
Iterables.<Vector, PathPoint> transform(dest, new Function<Vector, PathPoint>() { Iterables.<Vector, PathPoint> transform(dest, input -> new PathPoint(input.getBlockX(), input.getBlockY(), input.getBlockZ())));
@Override
public PathPoint apply(Vector input) {
return new PathPoint(input.getBlockX(), input.getBlockY(), input.getBlockZ());
}
}));
PathPoint last = list.size() > 0 ? list.get(list.size() - 1) : null; PathPoint last = list.size() > 0 ? list.get(list.size() - 1) : null;
final PathEntity path = new PathEntity(list, last != null ? new BlockPosition(last.a, last.b, last.c) : null, final PathEntity path = new PathEntity(list, last != null ? new BlockPosition(last.a, last.b, last.c) : null,
true); true);

View File

@ -52,7 +52,7 @@ import org.bukkit.inventory.meta.SkullMeta;
import org.bukkit.scoreboard.Team; import org.bukkit.scoreboard.Team;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import com.google.common.base.Function; import java.util.function.Function;
import com.google.common.base.Preconditions; import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Iterables; import com.google.common.collect.Iterables;
@ -666,12 +666,7 @@ public class NMSImpl implements NMSBridge {
Entity handle = NMSImpl.getHandle(entity); Entity handle = NMSImpl.getHandle(entity);
if (handle == null || handle.passengers == null) if (handle == null || handle.passengers == null)
return Lists.newArrayList(); return Lists.newArrayList();
return Lists.transform(handle.passengers, new Function<Entity, org.bukkit.entity.Entity>() { return Lists.transform(handle.passengers, input->input.getBukkitEntity());
@Override
public org.bukkit.entity.Entity apply(Entity input) {
return input.getBukkitEntity();
}
});
} }
@Override @Override

View File

@ -52,7 +52,7 @@ import org.bukkit.inventory.meta.SkullMeta;
import org.bukkit.scoreboard.Team; import org.bukkit.scoreboard.Team;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import com.google.common.base.Function; import java.util.function.Function;
import com.google.common.base.Preconditions; import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Iterables; import com.google.common.collect.Iterables;
@ -672,12 +672,7 @@ public class NMSImpl implements NMSBridge {
Entity handle = NMSImpl.getHandle(entity); Entity handle = NMSImpl.getHandle(entity);
if (handle == null || handle.passengers == null) if (handle == null || handle.passengers == null)
return Lists.newArrayList(); return Lists.newArrayList();
return Lists.transform(handle.passengers, new Function<Entity, org.bukkit.entity.Entity>() { return Lists.transform(handle.passengers, input->input.getBukkitEntity());
@Override
public org.bukkit.entity.Entity apply(Entity input) {
return input.getBukkitEntity();
}
});
} }
@Override @Override

View File

@ -52,7 +52,7 @@ import org.bukkit.inventory.meta.SkullMeta;
import org.bukkit.scoreboard.Team; import org.bukkit.scoreboard.Team;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import com.google.common.base.Function; import java.util.function.Function;
import com.google.common.base.Preconditions; import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables; import com.google.common.collect.Iterables;
@ -558,12 +558,7 @@ public class NMSImpl implements NMSBridge {
public MCNavigator getTargetNavigator(org.bukkit.entity.Entity entity, Iterable<Vector> dest, public MCNavigator getTargetNavigator(org.bukkit.entity.Entity entity, Iterable<Vector> dest,
final NavigatorParameters params) { final NavigatorParameters params) {
final PathEntity path = new PathEntity( final PathEntity path = new PathEntity(
Iterables.toArray(Iterables.transform(dest, new Function<Vector, PathPoint>() { Iterables.toArray(Iterables.transform(dest, input -> new PathPoint(input.getBlockX(), input.getBlockY(), input.getBlockZ())), PathPoint.class));
@Override
public PathPoint apply(Vector input) {
return new PathPoint(input.getBlockX(), input.getBlockY(), input.getBlockZ());
}
}), PathPoint.class));
return getTargetNavigator(entity, params, new Function<NavigationAbstract, Boolean>() { return getTargetNavigator(entity, params, new Function<NavigationAbstract, Boolean>() {
@Override @Override
public Boolean apply(NavigationAbstract input) { public Boolean apply(NavigationAbstract input) {