Skip to content

Commit ea9c3fc

Browse files
authored
Feature: AutoElytraSwap (#305)
1 parent ecaa51e commit ea9c3fc

80 files changed

Lines changed: 578 additions & 308 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

src/main/java/com/lambda/mixin/MinecraftClientMixin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
package com.lambda.mixin;
1919

20-
import com.lambda.core.TimerHandler;
20+
import com.lambda.interaction.handlers.TimerHandler;
2121
import com.lambda.event.EventFlow;
2222
import com.lambda.event.events.*;
2323
import com.lambda.gui.DearImGui;

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
import com.lambda.event.EventFlow;
2121
import com.lambda.event.events.InventoryEvent;
2222
import com.lambda.event.events.PlayerEvent;
23-
import com.lambda.interaction.BaritoneHandler;
23+
import com.lambda.interaction.handlers.BaritoneHandler;
2424
import com.lambda.interaction.managers.inventory.InventoryManager;
2525
import com.lambda.interaction.managers.rotating.RotationManager;
2626
import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
@@ -123,7 +123,7 @@ public void clickSlotHead(int syncId, int slotId, int button, SlotActionType act
123123
* }
124124
* }</pre>
125125
*/
126-
@Inject(method = "syncSelectedSlot", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/network/ClientPlayNetworkHandler;sendPacket(Lnet/minecraft/network/packet/Packet;)V", shift = At.Shift.BEFORE))
126+
@Inject(method = "syncSelectedSlot", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/network/ClientPlayNetworkHandler;sendPacket(Lnet/minecraft/network/packet/Packet;)V"))
127127
public void overrideSelectedSlotSync(CallbackInfo ci) {
128128
EventFlow.post(new InventoryEvent.HotbarSlot.Update(lastSelectedSlot));
129129
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020
import com.lambda.event.EventFlow;
2121
import com.lambda.event.events.*;
22-
import com.lambda.interaction.BaritoneHandler;
22+
import com.lambda.interaction.handlers.BaritoneHandler;
2323
import com.lambda.interaction.managers.rotating.RotationManager;
2424
import com.lambda.module.modules.movement.NoJumpCooldown;
2525
import com.lambda.module.modules.movement.elytrafly.ElytraFly;

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
import com.lambda.event.EventFlow;
2121
import com.lambda.event.events.EntityEvent;
2222
import com.lambda.event.events.PlayerEvent;
23-
import com.lambda.interaction.BaritoneHandler;
23+
import com.lambda.interaction.handlers.BaritoneHandler;
2424
import com.lambda.interaction.managers.rotating.RotationManager;
2525
import com.lambda.module.modules.movement.elytrafly.ElytraFly;
2626
import com.lambda.module.modules.render.NoRender;

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

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@
2020
import com.lambda.Lambda;
2121
import com.lambda.event.EventFlow;
2222
import com.lambda.event.events.MovementEvent;
23-
import com.lambda.interaction.BaritoneHandler;
23+
import com.lambda.interaction.handlers.BaritoneHandler;
24+
import com.lambda.interaction.handlers.GlideHandler;
2425
import com.lambda.interaction.managers.rotating.RotationManager;
2526
import com.lambda.module.modules.movement.Velocity;
2627
import com.lambda.module.modules.movement.elytrafly.ElytraFly;
@@ -204,13 +205,8 @@ private void injectTravelGliding(Vec3d movementInput, CallbackInfo ci) {
204205
}
205206

206207
@ModifyExpressionValue(method = "canGlide", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/LivingEntity;canGlideWith(Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/EquipmentSlot;)Z"))
207-
private boolean injectCanGlide(boolean original) {
208-
if (lambda$instance != Lambda.getMc().player) return original;
209-
if (original) return true;
210-
if (!ElytraFly.INSTANCE.getFakeFly()) return false;
211-
return Boolean.TRUE.equals(runSafe(safeContext -> {
212-
final var mode = ElytraFly.getMode().getElytraFly();
213-
return mode.isEnabled() && mode.findElytra(safeContext) != null;
214-
}));
208+
private boolean modifyCanGlideWith(boolean original) {
209+
if ((Object) this != Lambda.getMc().player) return original;
210+
return runSafe(GlideHandler::canGlide);
215211
}
216212
}

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

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -20,24 +20,21 @@
2020
import com.lambda.Lambda;
2121
import com.lambda.event.EventFlow;
2222
import com.lambda.event.events.MovementEvent;
23-
import com.lambda.interaction.BaritoneHandler;
23+
import com.lambda.interaction.handlers.BaritoneHandler;
24+
import com.lambda.interaction.handlers.GlideHandler;
2425
import com.lambda.interaction.managers.rotating.RotationManager;
25-
import com.lambda.module.modules.movement.elytrafly.ElytraFly;
2626
import com.lambda.module.modules.player.Reach;
2727
import com.llamalad7.mixinextras.injector.wrapmethod.WrapMethod;
2828
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
2929
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
30-
import kotlin.Unit;
3130
import net.minecraft.entity.player.PlayerEntity;
3231
import org.spongepowered.asm.mixin.Mixin;
3332
import org.spongepowered.asm.mixin.injection.At;
3433
import org.spongepowered.asm.mixin.injection.Inject;
3534
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
3635

37-
import static com.lambda.threading.ThreadingKt.runSafe;
38-
3936
@Mixin(PlayerEntity.class)
40-
public class PlayerEntityMixin {
37+
public abstract class PlayerEntityMixin {
4138
@Inject(method = "clipAtLedge", at = @At(value = "HEAD"), cancellable = true)
4239
private void injectSafeWalk(CallbackInfoReturnable<Boolean> cir) {
4340
MovementEvent.ClipAtLedge event = new MovementEvent.ClipAtLedge(((PlayerEntity) (Object) this).isSneaking());
@@ -70,16 +67,9 @@ private double wrapGetEntityInteractionRange(Operation<Double> original) {
7067
return original.call();
7168
}
7269

73-
@WrapOperation(method = "checkGliding", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/player/PlayerEntity;startGliding()V"))
74-
private void injectCheckGliding(PlayerEntity instance, Operation<Void> original) {
75-
final var elytraFly = ElytraFly.getMode().getElytraFly();
76-
if (!elytraFly.isEnabled() || !ElytraFly.INSTANCE.getFakeFly()) {
77-
original.call(instance);
78-
return;
79-
}
80-
runSafe(safeContext -> {
81-
elytraFly.flyOrFakeFly(safeContext, null);
82-
return Unit.INSTANCE;
83-
});
70+
@Inject(method = "checkGliding", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/player/PlayerEntity;startGliding()V"), cancellable = true)
71+
private void injectCheckGliding(CallbackInfoReturnable<Boolean> cir) {
72+
if ((Object) this != Lambda.getMc().player) return;
73+
if (GlideHandler.getOverridingGlide()) cir.setReturnValue(false);
8474
}
8575
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
package com.lambda.mixin.render;
1919

2020
import com.lambda.Lambda;
21-
import com.lambda.interaction.BaritoneHandler;
21+
import com.lambda.interaction.handlers.BaritoneHandler;
2222
import com.lambda.interaction.managers.rotating.RotationManager;
2323
import com.lambda.module.modules.render.Nametags;
2424
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
package com.lambda.mixin.render;
1919

20-
import com.lambda.friend.FriendHandler;
20+
import com.lambda.interaction.handlers.FriendHandler;
2121
import com.lambda.module.modules.render.ExtraTab;
2222
import com.lambda.util.text.TextBuilder;
2323
import com.lambda.util.text.TextDslKt;

src/main/java/com/lambda/mixin/world/DirectionMixin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
package com.lambda.mixin.world;
1919

20-
import com.lambda.interaction.BaritoneHandler;
20+
import com.lambda.interaction.handlers.BaritoneHandler;
2121
import com.lambda.interaction.managers.rotating.RotationManager;
2222
import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
2323
import net.minecraft.entity.Entity;

src/main/kotlin/com/lambda/command/commands/FriendCommand.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ import com.lambda.brigadier.executeWithResult
2929
import com.lambda.brigadier.required
3030
import com.lambda.command.LambdaCommand
3131
import com.lambda.config.categories.FriendCategory
32-
import com.lambda.friend.FriendHandler
32+
import com.lambda.interaction.handlers.FriendHandler
3333
import com.lambda.network.mojang.getProfile
3434
import com.lambda.threading.runIO
3535
import com.lambda.util.CommunicationUtils.info

0 commit comments

Comments
 (0)