Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,11 @@
import baritone.utils.player.BaritonePlayerContext;
import com.lambda.interaction.BaritoneManager;
import com.lambda.interaction.managers.rotating.RotationManager;
import com.llamalad7.mixinextras.injector.ModifyReturnValue;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;

@Mixin(value = BaritonePlayerContext.class, remap = false) // fix compileJava warning
public class BaritonePlayerContextMixin {
Expand All @@ -36,13 +35,11 @@ public class BaritonePlayerContextMixin {
private Baritone baritone;

// Let baritone know the actual rotation
@Inject(method = "playerRotations", at = @At("HEAD"), cancellable = true, remap = false)
void syncRotationWithBaritone(CallbackInfoReturnable<Rotation> cir) {
if (baritone != BaritoneManager.getPrimary()) return;
@ModifyReturnValue(method = "playerRotations", at = @At("RETURN"), remap = false)
Rotation syncRotationWithBaritone(Rotation original) {
if (baritone != BaritoneManager.getPrimary())
return original;

RotationManager rm = RotationManager.INSTANCE;
cir.setReturnValue(new Rotation(
(float) rm.getActiveRotation().getYaw(), (float) rm.getActiveRotation().getPitch())
);
return new Rotation((float) RotationManager.getActiveRotation().getYaw(), (float) RotationManager.getActiveRotation().getPitch());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;

@Mixin(SoundSystem.class)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
import com.llamalad7.mixinextras.expression.Definition;
import com.llamalad7.mixinextras.expression.Expression;
import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
import com.llamalad7.mixinextras.injector.ModifyReturnValue;
import com.llamalad7.mixinextras.injector.wrapmethod.WrapMethod;
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
Expand All @@ -46,13 +47,13 @@
import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket;
import net.minecraft.util.Hand;
import net.minecraft.util.math.Vec3d;
import org.objectweb.asm.Opcodes;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.Unique;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
import org.spongepowered.asm.mixin.injection.callback.LocalCapture;

import java.util.Objects;
Expand Down Expand Up @@ -140,13 +141,13 @@ boolean modifyIsSprinting(boolean original) {
return EventFlow.post(new MovementEvent.Sprint(original)).getSprint();
}

@Inject(method = "isSneaking", at = @At(value = "HEAD"), cancellable = true)
void injectSneakingInput(CallbackInfoReturnable<Boolean> cir) {
@ModifyReturnValue(method = "isSneaking", at = @At("RETURN"))
boolean injectSneakingInput(boolean original) {
ClientPlayerEntity self = (ClientPlayerEntity) (Object) this;
if (self != Lambda.getMc().player) return;
if (self != Lambda.getMc().player ||
self.input == null) return original;

if (self.input == null) return;
cir.setReturnValue(EventFlow.post(new MovementEvent.Sneak(self.input.playerInput.sneak())).getSneak());
return EventFlow.post(new MovementEvent.Sneak(self.input.playerInput.sneak())).getSneak();
}

@WrapMethod(method = "tick")
Expand Down Expand Up @@ -204,7 +205,7 @@ public void injectUpdateHealth(float health, CallbackInfo ci) {
* }
* }</pre>
*/
@ModifyExpressionValue(method = "tickNausea", at = @At(value = "FIELD", target = "Lnet/minecraft/client/MinecraftClient;currentScreen:Lnet/minecraft/client/gui/screen/Screen;"))
@ModifyExpressionValue(method = "tickNausea", at = @At(value = "FIELD", target = "Lnet/minecraft/client/MinecraftClient;currentScreen:Lnet/minecraft/client/gui/screen/Screen;", opcode = Opcodes.GETFIELD))
Screen modifyCurrentScreen(Screen original) {
if (PortalGui.INSTANCE.isEnabled()) return null;
else return original;
Expand Down
29 changes: 18 additions & 11 deletions src/main/java/com/lambda/mixin/entity/EntityMixin.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,10 @@
import com.lambda.module.modules.render.NoRender;
import com.lambda.util.math.Vec2d;
import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
import com.llamalad7.mixinextras.injector.ModifyReturnValue;
import com.llamalad7.mixinextras.injector.v2.WrapWithCondition;
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
import net.minecraft.client.network.ClientPlayerEntity;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityPose;
import net.minecraft.entity.MovementType;
Expand All @@ -39,7 +39,6 @@
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;

import static com.lambda.Lambda.getMc;

Expand Down Expand Up @@ -160,18 +159,26 @@ private boolean wrapSetPitch(Entity instance, float yaw) {
return RotationManager.getLockPitch() == null;
}

@Inject(method = "isSprinting()Z", at = @At("HEAD"), cancellable = true)
private void injectIsSprinting(CallbackInfoReturnable<Boolean> cir) {
@ModifyReturnValue(method = "isSprinting()Z", at = @At("RETURN"))
private boolean injectIsSprinting(boolean original) {
var player = getMc().player;
if ((Object) this != getMc().player) return;
if (ElytraFly.INSTANCE.isEnabled() && ElytraFly.getMode() == ElytraFly.FlyMode.Bounce && player.isGliding()) cir.setReturnValue(true);
if ((Object) this != getMc().player) return original;

if (ElytraFly.INSTANCE.isEnabled() && ElytraFly.getMode() == ElytraFly.FlyMode.Bounce && player.isGliding())
return true;

return original;
}

@Inject(method = "getPose", at = @At("HEAD"), cancellable = true)
private void injectGetPose(CallbackInfoReturnable<EntityPose> cir) {
var entity = (Entity) (Object) this;
if (!(entity instanceof ClientPlayerEntity player)) return;
if (ElytraFly.INSTANCE.isEnabled() && ElytraFly.getMode() == ElytraFly.FlyMode.Bounce && player.isGliding()) cir.setReturnValue(EntityPose.GLIDING);
@ModifyReturnValue(method = "getPose", at = @At("RETURN"))
private EntityPose injectGetPose(EntityPose original) {
var player = getMc().player;
if ((Object) this != getMc().player) return original;

if (ElytraFly.INSTANCE.isDisabled() ||
ElytraFly.getMode() != ElytraFly.FlyMode.Bounce || !player.isGliding()) return original;

return EntityPose.GLIDING;
}

@ModifyExpressionValue(method = "getHorizontalFacing", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/Entity;getYaw()F"))
Expand Down
12 changes: 7 additions & 5 deletions src/main/java/com/lambda/mixin/entity/LivingEntityMixin.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import com.lambda.module.modules.movement.ElytraFly;
import com.lambda.module.modules.movement.Velocity;
import com.lambda.module.modules.render.ViewModel;
import com.llamalad7.mixinextras.injector.ModifyReturnValue;
import com.llamalad7.mixinextras.injector.wrapmethod.WrapMethod;
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
Expand All @@ -38,7 +39,6 @@
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.Slice;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;

@Mixin(LivingEntity.class)
public abstract class LivingEntityMixin extends EntityMixin {
Expand Down Expand Up @@ -185,9 +185,11 @@ private void wrapPushAwayFrom(Entity entity, Operation<Void> original) {
original.call(entity);
}

@Inject(method = "isGliding", at = @At("HEAD"), cancellable = true)
private void injectIsGliding(CallbackInfoReturnable<Boolean> cir) {
if (lambda$instance != Lambda.getMc().player) return;
cir.setReturnValue(ElytraFly.isGliding());
@SuppressWarnings("ConstantConditions")
@ModifyReturnValue(method = "isGliding", at = @At("RETURN"))
private boolean injectIsGliding(boolean original) {
if (lambda$instance != Lambda.getMc().player) return original;

return ElytraFly.isGliding();
}
}
10 changes: 0 additions & 10 deletions src/main/java/com/lambda/mixin/entity/PlayerEntityMixin.java
Original file line number Diff line number Diff line change
Expand Up @@ -46,14 +46,4 @@ private float wrapHeadYaw(PlayerEntity instance, Operation<Float> original) {
Float yaw = RotationManager.getHeadYaw();
return (yaw != null) ? yaw : original.call(instance);
}

// @WrapOperation(method = "attack", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/player/PlayerEntity;getYaw()F"))
// private float wrapAttackYaw(PlayerEntity instance, Operation<Float> original) {
// if ((Object) this != Lambda.getMc().player) {
// return original.call(instance);
// }
//
// Float yaw = RotationManager.getMovementYaw();
// return (yaw != null) ? yaw : original.call(instance);
// }
}
14 changes: 0 additions & 14 deletions src/main/java/com/lambda/mixin/input/KeyboardMixin.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,27 +28,13 @@
import net.minecraft.client.option.KeyBinding;
import net.minecraft.client.util.InputUtil;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

/**
* Mixin to intercept keyboard input events.
*
* Note: In 1.21.11, onKey/onChar methods were refactored to use KeyInput/CharInput records.
* - onKey(long window, int action, KeyInput input) where KeyInput has key, scancode, modifiers
* - onChar(long window, CharInput input) where CharInput has codepoint, modifiers
*/
@Mixin(Keyboard.class)
public class KeyboardMixin {
@WrapMethod(method = "onKey")
private void onKey(long window, int action, KeyInput input, Operation<Void> original) {
EventFlow.post(new ButtonEvent.Keyboard.Press(input.key(), input.scancode(), action, input.modifiers()));
original.call(window, action, input);
}

@Inject(method = "onKey", at = @At("RETURN"))
private void onKeyTail(long window, int action, KeyInput input, CallbackInfo ci) {
int key = input.key();
if (!InventoryMove.getShouldMove() || !InventoryMove.isKeyMovementRelated(key)) return;
InputUtil.Key fromCode = InputUtil.fromKeyCode(input);
Expand Down
3 changes: 2 additions & 1 deletion src/main/java/com/lambda/mixin/input/MouseMixin.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
import net.minecraft.client.Mouse;
import net.minecraft.client.input.MouseInput;
import org.objectweb.asm.Opcodes;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
Expand Down Expand Up @@ -60,7 +61,7 @@ private void onCursorPos(long window, double x, double y, Operation<Void> origin
original.call(window, x, y);
}

@ModifyExpressionValue(method = "updateMouse", at = @At(value = "FIELD", target = "Lnet/minecraft/client/option/GameOptions;smoothCameraEnabled:Z"))
@ModifyExpressionValue(method = "updateMouse", at = @At(value = "FIELD", target = "Lnet/minecraft/client/option/GameOptions;smoothCameraEnabled:Z", opcode = Opcodes.GETFIELD))
private boolean modifySmoothCameraEnabled(boolean original) {
if (Zoom.INSTANCE.isEnabled() && Zoom.getSmoothMovement()) return true;
else return original;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.Unique;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@

@Mixin(ClientLoginNetworkHandler.class)
public class ClientLoginNetworkMixin {

@Inject(method = "onSuccess(Lnet/minecraft/network/packet/s2c/login/LoginSuccessS2CPacket;)V", at = @At("HEAD"))
private void onSuccess(LoginSuccessS2CPacket packet, CallbackInfo ci) {
EventFlow.post(new ConnectionEvent.Connect.Post(packet.profile()));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,8 +74,6 @@ private void onScreenHandlerSlotUpdate(ScreenHandlerSlotUpdateS2CPacket packet,
* this.seenInsecureChatWarning = true;
* }
* }</pre>
*
* Note: In 1.21.11, displayedUnsecureChatWarning was renamed to seenInsecureChatWarning.
*/
@ModifyExpressionValue(method = "onGameJoin(Lnet/minecraft/network/packet/s2c/play/GameJoinS2CPacket;)V", at = @At(value = "FIELD", target = "Lnet/minecraft/client/network/ClientPlayNetworkHandler;seenInsecureChatWarning:Z", ordinal = 0))
public boolean onServerMetadata(boolean original) {
Expand Down Expand Up @@ -107,7 +105,7 @@ public boolean onServerMetadata(boolean original) {
*/
@Inject(method = "onExplosion(Lnet/minecraft/network/packet/s2c/play/ExplosionS2CPacket;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/network/packet/s2c/play/ExplosionS2CPacket;playerKnockback()Ljava/util/Optional;"), cancellable = true)
void injectVelocity(ExplosionS2CPacket packet, CallbackInfo ci) {
if (Velocity.getExplosion() && Velocity.INSTANCE.isEnabled()) ci.cancel();
if (Velocity.INSTANCE.isEnabled() && Velocity.getExplosion()) ci.cancel();
}

@WrapMethod(method = "onScreenHandlerSlotUpdate")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,8 @@
package com.lambda.mixin.render;

import com.lambda.module.modules.render.NoRender;
import net.minecraft.client.render.VertexConsumerProvider;
import net.minecraft.client.render.command.OrderedRenderCommandQueue;
import net.minecraft.client.render.entity.feature.ArmorFeatureRenderer;
import net.minecraft.client.render.entity.state.BipedEntityRenderState;
import net.minecraft.client.render.entity.state.EntityRenderState;
import net.minecraft.client.util.math.MatrixStack;
import org.spongepowered.asm.mixin.Mixin;
Expand Down
46 changes: 0 additions & 46 deletions src/main/java/com/lambda/mixin/render/BackgroundRendererMixin.java

This file was deleted.

4 changes: 2 additions & 2 deletions src/main/java/com/lambda/mixin/render/CameraMixin.java
Original file line number Diff line number Diff line change
Expand Up @@ -48,10 +48,10 @@ public abstract class CameraMixin {
public abstract float getYaw();

@Shadow
public float yaw;
private float yaw;

@Shadow
public float pitch;
private float pitch;

@Inject(method = "update", at = @At("TAIL"))
private void onUpdate(World area, Entity focusedEntity, boolean thirdPerson, boolean inverseView, float tickProgress, CallbackInfo ci) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,6 @@

/**
* Mixin to override cape textures with Lambda capes.
*
* Note: In 1.21.11, render method uses OrderedRenderCommandQueue instead of VertexConsumerProvider.
* Cape texture is now accessed via skinTextures.cape().texturePath() instead of capeTexture().
*/
@Mixin(CapeFeatureRenderer.class)
public class CapeFeatureRendererMixin {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,13 @@
package com.lambda.mixin.render;

import com.lambda.command.CommandManager;
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
import com.mojang.brigadier.CommandDispatcher;
import net.minecraft.client.gui.screen.ChatInputSuggestor;
import net.minecraft.client.gui.widget.TextFieldWidget;
import net.minecraft.client.network.ClientPlayNetworkHandler;
import net.minecraft.command.CommandSource;
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
Expand Down
Loading