lots more status
This commit is contained in:
@@ -22,6 +22,7 @@ import baritone.api.behavior.IMemoryBehavior;
|
||||
import baritone.api.behavior.IPathingBehavior;
|
||||
import baritone.api.cache.IWorldProvider;
|
||||
import baritone.api.event.listener.IEventBus;
|
||||
import baritone.api.pathing.calc.IPathingControlManager;
|
||||
import baritone.api.process.ICustomGoalProcess;
|
||||
import baritone.api.process.IFollowProcess;
|
||||
import baritone.api.process.IGetToBlockProcess;
|
||||
@@ -59,6 +60,8 @@ public interface IBaritone {
|
||||
*/
|
||||
IMineProcess getMineProcess();
|
||||
|
||||
IPathingControlManager getPathingControlManager();
|
||||
|
||||
/**
|
||||
* @return The {@link IPathingBehavior} instance
|
||||
* @see IPathingBehavior
|
||||
|
||||
@@ -29,17 +29,59 @@ public class MessageStatus implements iMessage {
|
||||
public final double x;
|
||||
public final double y;
|
||||
public final double z;
|
||||
public final float yaw;
|
||||
public final float pitch;
|
||||
public final boolean onGround;
|
||||
public final float health;
|
||||
public final float saturation;
|
||||
public final int foodLevel;
|
||||
public final boolean hasCurrentSegment;
|
||||
public final boolean hasNextSegment;
|
||||
public final boolean calcInProgress;
|
||||
public final double ticksRemainingInCurrent;
|
||||
public final boolean calcFailedLastTick;
|
||||
public final boolean safeToCancel;
|
||||
public final String currentGoal;
|
||||
public final String currentProcess;
|
||||
|
||||
public MessageStatus(DataInputStream in) throws IOException {
|
||||
this.x = in.readDouble();
|
||||
this.y = in.readDouble();
|
||||
this.z = in.readDouble();
|
||||
this.yaw = in.readFloat();
|
||||
this.pitch = in.readFloat();
|
||||
this.onGround = in.readBoolean();
|
||||
this.health = in.readFloat();
|
||||
this.saturation = in.readFloat();
|
||||
this.foodLevel = in.readInt();
|
||||
this.hasCurrentSegment = in.readBoolean();
|
||||
this.hasNextSegment = in.readBoolean();
|
||||
this.calcInProgress = in.readBoolean();
|
||||
this.ticksRemainingInCurrent = in.readDouble();
|
||||
this.calcFailedLastTick = in.readBoolean();
|
||||
this.safeToCancel = in.readBoolean();
|
||||
this.currentGoal = in.readUTF();
|
||||
this.currentProcess = in.readUTF();
|
||||
}
|
||||
|
||||
public MessageStatus(double x, double y, double z) {
|
||||
public MessageStatus(double x, double y, double z, float yaw, float pitch, boolean onGround, float health, float saturation, int foodLevel, boolean hasCurrentSegment, boolean hasNextSegment, boolean calcInProgress, double ticksRemainingInCurrent, boolean calcFailedLastTick, boolean safeToCancel, String currentGoal, String currentProcess) {
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
this.z = z;
|
||||
this.yaw = yaw;
|
||||
this.pitch = pitch;
|
||||
this.onGround = onGround;
|
||||
this.health = health;
|
||||
this.saturation = saturation;
|
||||
this.foodLevel = foodLevel;
|
||||
this.hasCurrentSegment = hasCurrentSegment;
|
||||
this.hasNextSegment = hasNextSegment;
|
||||
this.calcInProgress = calcInProgress;
|
||||
this.ticksRemainingInCurrent = ticksRemainingInCurrent;
|
||||
this.calcFailedLastTick = calcFailedLastTick;
|
||||
this.safeToCancel = safeToCancel;
|
||||
this.currentGoal = currentGoal;
|
||||
this.currentProcess = currentProcess;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -47,6 +89,20 @@ public class MessageStatus implements iMessage {
|
||||
out.writeDouble(x);
|
||||
out.writeDouble(y);
|
||||
out.writeDouble(z);
|
||||
out.writeFloat(yaw);
|
||||
out.writeFloat(pitch);
|
||||
out.writeBoolean(onGround);
|
||||
out.writeFloat(health);
|
||||
out.writeFloat(saturation);
|
||||
out.writeInt(foodLevel);
|
||||
out.writeBoolean(hasCurrentSegment);
|
||||
out.writeBoolean(hasNextSegment);
|
||||
out.writeBoolean(calcInProgress);
|
||||
out.writeDouble(ticksRemainingInCurrent);
|
||||
out.writeBoolean(calcFailedLastTick);
|
||||
out.writeBoolean(safeToCancel);
|
||||
out.writeUTF(currentGoal);
|
||||
out.writeUTF(currentProcess);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -139,6 +139,7 @@ public class Baritone implements IBaritone {
|
||||
this.gameEventHandler.registerEventListener(behavior);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PathingControlManager getPathingControlManager() {
|
||||
return this.pathingControlManager;
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@ package baritone.behavior;
|
||||
import baritone.Baritone;
|
||||
import baritone.api.event.events.ChatEvent;
|
||||
import baritone.api.event.events.TickEvent;
|
||||
import baritone.api.process.IBaritoneProcess;
|
||||
import baritone.utils.Helper;
|
||||
import comms.BufferedConnection;
|
||||
import comms.IConnection;
|
||||
@@ -43,10 +44,33 @@ public class ControllerBehavior extends Behavior implements IMessageListener {
|
||||
if (event.getType() == TickEvent.Type.OUT) {
|
||||
return;
|
||||
}
|
||||
trySend(new MessageStatus(ctx.player().posX, ctx.player().posY, ctx.player().posZ));
|
||||
trySend(buildStatus());
|
||||
readAndHandle();
|
||||
}
|
||||
|
||||
public MessageStatus buildStatus() {
|
||||
// TODO inventory
|
||||
return new MessageStatus(
|
||||
ctx.player().posX,
|
||||
ctx.player().posY,
|
||||
ctx.player().posZ,
|
||||
ctx.player().rotationYaw,
|
||||
ctx.player().rotationPitch,
|
||||
ctx.player().onGround,
|
||||
ctx.player().getHealth(),
|
||||
ctx.player().getFoodStats().getSaturationLevel(),
|
||||
ctx.player().getFoodStats().getFoodLevel(),
|
||||
baritone.getPathingBehavior().getCurrent() != null,
|
||||
baritone.getPathingBehavior().getNext() != null,
|
||||
baritone.getPathingBehavior().getInProgress().isPresent(),
|
||||
baritone.getPathingBehavior().ticksRemainingInSegment().orElse(0D),
|
||||
baritone.getPathingBehavior().calcFailedLastTick(),
|
||||
baritone.getPathingBehavior().isSafeToCancel(),
|
||||
baritone.getPathingBehavior().getGoal() + "",
|
||||
baritone.getPathingControlManager().mostRecentInControl().map(IBaritoneProcess::displayName).orElse("")
|
||||
);
|
||||
}
|
||||
|
||||
private void readAndHandle() {
|
||||
if (conn == null) {
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user