From 4590ba3ff83788c64e1fe0e3b79a0b12b444ff53 Mon Sep 17 00:00:00 2001 From: Brady Date: Thu, 29 Jun 2023 23:35:12 -0500 Subject: [PATCH] Use separate executor for solver --- src/main/java/baritone/behavior/ElytraBehavior.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/main/java/baritone/behavior/ElytraBehavior.java b/src/main/java/baritone/behavior/ElytraBehavior.java index 954755fa4..3fbe06e44 100644 --- a/src/main/java/baritone/behavior/ElytraBehavior.java +++ b/src/main/java/baritone/behavior/ElytraBehavior.java @@ -51,9 +51,7 @@ import net.minecraft.util.math.*; import net.minecraft.world.chunk.Chunk; import java.util.*; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.CopyOnWriteArrayList; -import java.util.concurrent.Future; +import java.util.concurrent.*; import java.util.function.UnaryOperator; public final class ElytraBehavior extends Behavior implements IElytraBehavior, Helper { @@ -92,13 +90,15 @@ public final class ElytraBehavior extends Behavior implements IElytraBehavior, H */ private int minimumBoostTicks; + private boolean deployedFireworkLastTick; + private final int[] nextTickBoostCounter; + private BlockStateInterface bsi; private BlockPos destination; + private final ExecutorService solverExecutor; private Future solver; private Solution pendingSolution; - private boolean deployedFireworkLastTick; - private final int[] nextTickBoostCounter; private boolean solveNextTick; public ElytraBehavior(Baritone baritone) { @@ -109,6 +109,7 @@ public final class ElytraBehavior extends Behavior implements IElytraBehavior, H this.visiblePath = Collections.emptyList(); this.pathManager = this.new PathManager(); this.process = new ElytraProcess(); + this.solverExecutor = Executors.newSingleThreadExecutor(); this.nextTickBoostCounter = new int[2]; } @@ -524,7 +525,7 @@ public final class ElytraBehavior extends Behavior implements IElytraBehavior, H this.pathManager.updatePlayerNear(); final SolverContext context = this.new SolverContext(true); - this.solver = CompletableFuture.supplyAsync(() -> this.solveAngles(context)); + this.solver = this.solverExecutor.submit(() -> this.solveAngles(context)); this.solveNextTick = false; } }