From 37cef06b939c78ab979f49b8e3d0fc4d01cada17 Mon Sep 17 00:00:00 2001 From: AlexProgrammerDE <40795980+AlexProgrammerDE@users.noreply.github.com> Date: Fri, 22 Nov 2024 08:20:27 +0100 Subject: [PATCH] Implement serverAiStep --- .../server/protocol/bot/state/entity/LivingEntity.java | 5 ++++- .../server/protocol/bot/state/entity/LocalPlayer.java | 10 ++++++++++ .../server/protocol/bot/state/entity/Player.java | 7 +++++++ 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/server/src/main/java/com/soulfiremc/server/protocol/bot/state/entity/LivingEntity.java b/server/src/main/java/com/soulfiremc/server/protocol/bot/state/entity/LivingEntity.java index a150893c8..e3bd652d6 100644 --- a/server/src/main/java/com/soulfiremc/server/protocol/bot/state/entity/LivingEntity.java +++ b/server/src/main/java/com/soulfiremc/server/protocol/bot/state/entity/LivingEntity.java @@ -126,7 +126,7 @@ public void aiStep() { this.xxa = 0.0F; this.zza = 0.0F; } else if (this.isEffectiveAi()) { - // this.serverAiStep(); // TODO + this.serverAiStep(); } if (this.jumping && this.isAffectedByFluids()) { @@ -174,6 +174,9 @@ public void aiStep() { // this.pushEntities(); // TODO } + protected void serverAiStep() { + } + protected void removeFrost() { var speedAttribute = this.attributeState().getOrCreateAttribute(AttributeType.MOVEMENT_SPEED); if (speedAttribute != null) { diff --git a/server/src/main/java/com/soulfiremc/server/protocol/bot/state/entity/LocalPlayer.java b/server/src/main/java/com/soulfiremc/server/protocol/bot/state/entity/LocalPlayer.java index a5e9b4e73..72d429153 100644 --- a/server/src/main/java/com/soulfiremc/server/protocol/bot/state/entity/LocalPlayer.java +++ b/server/src/main/java/com/soulfiremc/server/protocol/bot/state/entity/LocalPlayer.java @@ -216,6 +216,16 @@ public void aiStep() { } } + @Override + public void serverAiStep() { + super.serverAiStep(); + if (this.isControlledCamera()) { + this.xxa = this.input.leftImpulse; + this.zza = this.input.forwardImpulse; + this.jumping = this.input.keyPresses.jump(); + } + } + private boolean canStartSprinting() { return !this.isSprinting() && this.hasEnoughImpulseToStartSprinting() diff --git a/server/src/main/java/com/soulfiremc/server/protocol/bot/state/entity/Player.java b/server/src/main/java/com/soulfiremc/server/protocol/bot/state/entity/Player.java index f538afbdb..42c932eae 100644 --- a/server/src/main/java/com/soulfiremc/server/protocol/bot/state/entity/Player.java +++ b/server/src/main/java/com/soulfiremc/server/protocol/bot/state/entity/Player.java @@ -97,6 +97,13 @@ public void aiStep() { } } + @Override + protected void serverAiStep() { + super.serverAiStep(); + + // TODO: yHeadRot important here? + } + protected void updatePlayerPose() { if (this.canPlayerFitWithinBlocksAndEntitiesWhen(Pose.SWIMMING)) { Pose mainPose;