Skip to content

Commit cf89417

Browse files
committed
ease rotation restrictions when baritone is active for locking rotation requests. Requests now check for a valid player rotation if baritone is active, and baritones freelook allows us to lock the cameras yaw and pitch to whatever we want without messing it up so things like rotation lock wont ever slip up for things like bounce efly
1 parent 133281d commit cf89417

8 files changed

Lines changed: 25 additions & 153 deletions

File tree

src/main/java/com/lambda/mixin/baritone/BaritonePlayerContextMixin.java

Lines changed: 0 additions & 60 deletions
This file was deleted.

src/main/java/com/lambda/mixin/baritone/LookBehaviourMixin.java

Lines changed: 0 additions & 56 deletions
This file was deleted.

src/main/java/com/lambda/mixin/entity/ClientPlayerEntityMixin.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@
2121
import com.lambda.event.events.*;
2222
import com.lambda.interaction.BaritoneHandler;
2323
import com.lambda.interaction.managers.rotating.RotationManager;
24-
import com.lambda.module.modules.movement.elytrafly.ElytraFly;
2524
import com.lambda.module.modules.movement.NoJumpCooldown;
25+
import com.lambda.module.modules.movement.elytrafly.ElytraFly;
2626
import com.lambda.module.modules.player.PortalGui;
2727
import com.lambda.module.modules.render.ViewModel;
2828
import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
@@ -96,8 +96,8 @@ private void wrapMove(ClientPlayerEntity instance, MovementType movementType, Ve
9696
@WrapOperation(method = "tickMovement", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/input/Input;tick()V"))
9797
void wrapTick(Input input, Operation<Void> original) {
9898
original.call(input);
99+
RotationManager.processRotations();
99100
if (!BaritoneHandler.isActive()) {
100-
RotationManager.processRotations();
101101
RotationManager.redirectStrafeInputs(input);
102102
}
103103
EventFlow.post(new MovementEvent.InputUpdate(input));
@@ -125,7 +125,7 @@ private float modifyGetPitch(float original) {
125125
}
126126

127127
@WrapOperation(method = "sendMovementPackets", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/network/ClientPlayNetworkHandler;sendPacket(Lnet/minecraft/network/packet/Packet;)V"))
128-
private void wrapSendPacket(ClientPlayNetworkHandler instance, Packet packet, Operation<Void> original) {
128+
private void wrapSendPacket(ClientPlayNetworkHandler instance, Packet<?> packet, Operation<Void> original) {
129129
var event = EventFlow.post(new PlayerPacketEvent.Send((PlayerMoveC2SPacket) packet));
130130
if (event.isCanceled()) return;
131131
original.call(instance, event.getPacket());

src/main/java/com/lambda/mixin/entity/EntityMixin.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -166,16 +166,12 @@ private boolean modifyGetFlagGlowing(boolean original) {
166166

167167
@WrapWithCondition(method = "changeLookDirection", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/Entity;setYaw(F)V"))
168168
private boolean wrapSetYaw(Entity instance, float yaw) {
169-
if (BaritoneHandler.isActive()) return true;
170-
171169
if ((Object) this != getMc().player) return true;
172170
return RotationManager.getLockYaw() == null;
173171
}
174172

175173
@WrapWithCondition(method = "changeLookDirection", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/Entity;setPitch(F)V"))
176174
private boolean wrapSetPitch(Entity instance, float yaw) {
177-
if (BaritoneHandler.isActive()) return true;
178-
179175
if ((Object) this != getMc().player) return true;
180176
return RotationManager.getLockPitch() == null;
181177
}

src/main/java/com/lambda/mixin/render/CameraMixin.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717

1818
package com.lambda.mixin.render;
1919

20-
import com.lambda.interaction.BaritoneHandler;
2120
import com.lambda.interaction.managers.rotating.RotationManager;
2221
import com.lambda.module.modules.render.CameraTweaks;
2322
import com.lambda.module.modules.render.FreeLook;
@@ -72,8 +71,6 @@ private void onUpdate(World area, Entity focusedEntity, boolean thirdPerson, boo
7271
*/
7372
@Inject(method = "update", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/Camera;setPos(DDD)V", shift = At.Shift.AFTER))
7473
private void injectQuickPerspectiveSwap(World area, Entity focusedEntity, boolean thirdPerson, boolean inverseView, float tickProgress, CallbackInfo ci) {
75-
if (BaritoneHandler.isActive()) return;
76-
7774
var rot = RotationManager.getLockRotation();
7875
if (rot == null) return;
7976
if (FreeLook.INSTANCE.isEnabled()) {

src/main/kotlin/com/lambda/interaction/managers/rotating/RotationManager.kt

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ import com.lambda.event.events.TickEvent
2828
import com.lambda.event.events.TickEvent.Companion.ALL_STAGES
2929
import com.lambda.event.listener.SafeListener.Companion.listen
3030
import com.lambda.event.listener.UnsafeListener.Companion.listenUnsafe
31-
import com.lambda.interaction.BaritoneHandler
3231
import com.lambda.interaction.managers.Manager
3332
import com.lambda.interaction.managers.rotating.Rotation.Companion.slerpPitch
3433
import com.lambda.interaction.managers.rotating.Rotation.Companion.slerpYaw
@@ -138,7 +137,6 @@ object RotationManager : Manager<RotationRequest>(
138137
* @see updateActiveRotation
139138
*/
140139
override fun AutomatedSafeContext.handleRequest(request: RotationRequest) {
141-
if (BaritoneHandler.isActive) return
142140
if (acceptAndSetRequests(request)) {
143141
updateActiveRotation()
144142
changedThisTick = true
@@ -202,17 +200,6 @@ object RotationManager : Manager<RotationRequest>(
202200
}
203201
}
204202

205-
@JvmStatic
206-
fun handleBaritoneRotation(yaw: Double, pitch: Double) {
207-
runSafe {
208-
val request = IRotationRequest.Full(BaritoneHandler) { Rotation(yaw, pitch) }
209-
yawRequest = request
210-
pitchRequest = request
211-
updateActiveRotation()
212-
changedThisTick = true
213-
}
214-
}
215-
216203
/**
217204
* Calculates and sets the optimal movement input for moving in the direction the player is facing. This
218205
* is not the direction the rotation manager is rotated towards, but the underlying player rotation, typically

src/main/kotlin/com/lambda/interaction/managers/rotating/RotationRequest.kt

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,11 @@ package com.lambda.interaction.managers.rotating
1919

2020
import com.lambda.context.Automated
2121
import com.lambda.context.SafeContext
22+
import com.lambda.interaction.BaritoneHandler
2223
import com.lambda.interaction.managers.Request
2324
import com.lambda.interaction.managers.rotating.IRotationRequest.Companion.requestCount
2425
import com.lambda.interaction.managers.rotating.Rotation.Companion.dist
26+
import com.lambda.interaction.managers.rotating.Rotation.Companion.rotation
2527
import com.lambda.interaction.managers.rotating.Rotation.Companion.wrap
2628
import com.lambda.threading.runSafe
2729
import com.lambda.util.collections.UpdatableLazy
@@ -62,12 +64,14 @@ interface IRotationRequest : Automated {
6264
override var decayTicks = rotationConfig.decayTicks
6365
override var age = 0
6466

65-
override val done: Boolean
66-
get() {
67-
val delta = RotationManager.activeRotation.yaw - (yaw.value ?: return false)
68-
val wrappedDelta = ((delta + 180) % 360 + 360) % 360 - 180
69-
return abs(wrappedDelta) <= 0.001
70-
}
67+
override val done
68+
get() =
69+
runSafe {
70+
val delta = (if (BaritoneHandler.isActive) player.rotation else RotationManager.activeRotation)
71+
.yaw - (yaw.value ?: return@runSafe false)
72+
val wrappedDelta = ((delta + 180) % 360 + 360) % 360 - 180
73+
abs(wrappedDelta) <= 0.001
74+
} == true
7175

7276
override fun dist(rotation: Rotation): Double {
7377
return wrap((yaw.value ?: return Double.MAX_VALUE) - rotation.yaw)
@@ -85,9 +89,12 @@ interface IRotationRequest : Automated {
8589
override var decayTicks = rotationConfig.decayTicks
8690
override var age = 0
8791

88-
override val done get(): Boolean {
89-
return abs(RotationManager.activeRotation.pitch - (pitch.value ?: return false)) <= 0.001
90-
}
92+
override val done
93+
get() =
94+
runSafe {
95+
abs((if (BaritoneHandler.isActive) player.rotation else RotationManager.activeRotation)
96+
.pitch - (pitch.value ?: return@runSafe false)) <= 0.001
97+
} == true
9198

9299
override fun dist(rotation: Rotation): Double {
93100
return wrap((pitch.value ?: return Double.MAX_VALUE) - rotation.pitch)
@@ -107,9 +114,12 @@ interface IRotationRequest : Automated {
107114
override var decayTicks = rotationConfig.decayTicks
108115
override var age = 0
109116

110-
override val done get(): Boolean {
111-
return RotationManager.activeRotation.dist(rotation.value ?: return false) <= 0.001
112-
}
117+
override val done
118+
get() =
119+
runSafe {
120+
(if (BaritoneHandler.isActive) player.rotation else RotationManager.activeRotation)
121+
.dist(rotation.value ?: return@runSafe false) <= 0.001
122+
} == true
113123

114124
override fun dist(rotation: Rotation) =
115125
this.rotation.value?.let {

src/main/resources/lambda.mixins.json

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,8 @@
66
"client": [
77
"CrashReportMixin",
88
"MinecraftClientMixin",
9-
"baritone.BaritonePlayerContextMixin",
109
"baritone.BaritonePlayerControllerMixin",
1110
"baritone.ComeCommandMixin",
12-
"baritone.LookBehaviourMixin",
1311
"client.sound.SoundSystemMixin",
1412
"entity.ClientPlayerEntityMixin",
1513
"entity.ClientPlayInteractionManagerMixin",

0 commit comments

Comments
 (0)