diff --git a/src/api/java/baritone/api/behavior/IBehavior.java b/src/api/java/baritone/api/behavior/IBehavior.java index aea44ed3e..811563b93 100644 --- a/src/api/java/baritone/api/behavior/IBehavior.java +++ b/src/api/java/baritone/api/behavior/IBehavior.java @@ -27,10 +27,4 @@ import baritone.api.event.listener.IGameEventListener; * @see IGameEventListener * @since 9/23/2018 */ -public interface IBehavior extends AbstractGameEventListener { - - /** - * Called after Baritone's initialization is complete - */ - default void onLoad() {} -} +public interface IBehavior extends AbstractGameEventListener {} diff --git a/src/main/java/baritone/Baritone.java b/src/main/java/baritone/Baritone.java index 0bd6a814a..08bc6fa24 100755 --- a/src/main/java/baritone/Baritone.java +++ b/src/main/java/baritone/Baritone.java @@ -66,7 +66,6 @@ public class Baritone implements IBaritone { private final GameEventHandler gameEventHandler; - private final List behaviors; private final PathingBehavior pathingBehavior; private final LookBehavior lookBehavior; private final InventoryBehavior inventoryBehavior; @@ -93,7 +92,6 @@ public class Baritone implements IBaritone { Baritone(Minecraft mc) { this.mc = mc; - this.behaviors = new ArrayList<>(); this.gameEventHandler = new GameEventHandler(this); this.directory = mc.gameDir.toPath().resolve("baritone"); @@ -131,12 +129,9 @@ public class Baritone implements IBaritone { this.worldProvider = new WorldProvider(this); this.selectionManager = new SelectionManager(this); this.commandManager = new CommandManager(this); - - this.behaviors.forEach(IBehavior::onLoad); } public void registerBehavior(IBehavior behavior) { - this.behaviors.add(behavior); this.gameEventHandler.registerEventListener(behavior); } diff --git a/src/main/java/baritone/process/ElytraProcess.java b/src/main/java/baritone/process/ElytraProcess.java index e75fbeb81..edd0da2f6 100644 --- a/src/main/java/baritone/process/ElytraProcess.java +++ b/src/main/java/baritone/process/ElytraProcess.java @@ -42,15 +42,14 @@ import baritone.utils.PathingCommandContext; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Vec3d; - public class ElytraProcess extends BaritoneProcessHelper implements IBaritoneProcess, IElytraProcess, AbstractGameEventListener { + public State state; private Goal goal; private LegacyElytraBehavior behavior; private ElytraProcess(Baritone baritone) { super(baritone); - this.behavior = new LegacyElytraBehavior(baritone, this); baritone.getGameEventHandler().registerEventListener(this); } @@ -60,11 +59,9 @@ public class ElytraProcess extends BaritoneProcessHelper implements IBaritonePro : new NullElytraProcess(baritone)); } - - @Override public boolean isActive() { - return behavior != null; + return this.behavior != null; } @Override @@ -78,7 +75,7 @@ public class ElytraProcess extends BaritoneProcessHelper implements IBaritonePro @Override public PathingCommand onTick(boolean calcFailed, boolean isSafeToCancel) { final long seedSetting = Baritone.settings().elytraNetherSeed.value; - if (seedSetting != behavior.context.getSeed()) { + if (seedSetting != this.behavior.context.getSeed()) { logDirect("Nether seed changed, recalculating path"); this.resetState(); } @@ -232,11 +229,11 @@ public class ElytraProcess extends BaritoneProcessHelper implements IBaritonePro @Override public void pathTo(BlockPos destination) { - this.behavior = new LegacyElytraBehavior(this.baritone, this); + this.behavior = new LegacyElytraBehavior(this.baritone, this, destination); if (ctx.world() != null) { this.behavior.repackChunks(); } - this.behavior.pathTo(destination); + this.behavior.pathTo(); } @Override @@ -275,7 +272,7 @@ public class ElytraProcess extends BaritoneProcessHelper implements IBaritonePro if (event.getWorld() != null && event.getState() == EventState.POST && this.behavior != null) { // Exiting the world, just destroy this.behavior.destroy(); - this.behavior = new LegacyElytraBehavior(baritone, this); + this.behavior = null; } } diff --git a/src/main/java/baritone/process/elytra/LegacyElytraBehavior.java b/src/main/java/baritone/process/elytra/LegacyElytraBehavior.java index c7a164593..825d3087d 100644 --- a/src/main/java/baritone/process/elytra/LegacyElytraBehavior.java +++ b/src/main/java/baritone/process/elytra/LegacyElytraBehavior.java @@ -74,7 +74,7 @@ public final class LegacyElytraBehavior implements Helper { public List visiblePath; // :sunglasses: - public final NetherPathfinderContext context; // TODO: make this final + public final NetherPathfinderContext context; public final PathManager pathManager; private final ElytraProcess process; @@ -100,7 +100,7 @@ public final class LegacyElytraBehavior implements Helper { private BlockStateInterface bsi; private final BlockStateOctreeInterface boi; - public BlockPos destination; // TODO: make this final? + public final BlockPos destination; private final ExecutorService solverExecutor; private Future solver; @@ -113,13 +113,14 @@ public final class LegacyElytraBehavior implements Helper { private int invTickCountdown = 0; private final Queue invTransactionQueue = new LinkedList<>(); - public LegacyElytraBehavior(Baritone baritone, ElytraProcess process) { + public LegacyElytraBehavior(Baritone baritone, ElytraProcess process, BlockPos destination) { this.baritone = baritone; this.ctx = baritone.getPlayerContext(); this.clearLines = new CopyOnWriteArrayList<>(); this.blockedLines = new CopyOnWriteArrayList<>(); this.pathManager = this.new PathManager(); this.process = process; + this.destination = destination; this.solverExecutor = Executors.newSingleThreadExecutor(); this.nextTickBoostCounter = new int[2]; @@ -428,8 +429,7 @@ public final class LegacyElytraBehavior implements Helper { } } - public void pathTo(BlockPos destination) { - this.destination = destination; + public void pathTo() { if (!Baritone.settings().elytraAutoJump.value || ctx.player().isElytraFlying()) { this.pathManager.pathToDestination(); }