Skip to content
Merged
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
import baritone.api.utils.Rotation;
import baritone.utils.player.BaritonePlayerContext;
import com.lambda.interaction.BaritoneManager;
import com.lambda.interaction.request.rotating.RotationManager;
import com.lambda.interaction.managers.rotating.RotationManager;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
import baritone.api.utils.Rotation;
import baritone.behavior.LookBehavior;
import com.lambda.interaction.BaritoneManager;
import com.lambda.interaction.request.rotating.RotationManager;
import com.lambda.interaction.managers.rotating.RotationManager;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,18 @@
import com.lambda.event.EventFlow;
import com.lambda.event.events.InventoryEvent;
import com.lambda.event.events.PlayerEvent;
import com.lambda.interaction.managers.inventory.InventoryManager;
import com.llamalad7.mixinextras.injector.wrapmethod.WrapMethod;
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
import net.minecraft.client.network.ClientPlayerEntity;
import net.minecraft.client.network.ClientPlayerInteractionManager;
import net.minecraft.client.recipebook.ClientRecipeBook;
import net.minecraft.client.world.ClientWorld;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.entity.player.PlayerInventory;
import net.minecraft.screen.slot.SlotActionType;
import net.minecraft.stat.StatHandler;
import net.minecraft.util.ActionResult;
import net.minecraft.util.Hand;
import net.minecraft.util.hit.BlockHitResult;
Expand All @@ -42,7 +48,6 @@

@Mixin(ClientPlayerInteractionManager.class)
public class ClientPlayInteractionManagerMixin {

@Shadow
public float currentBreakingProgress;

Expand Down Expand Up @@ -115,4 +120,11 @@ private void updateBlockBreakingProgressPre(BlockPos pos, Direction side, Callba
private void cancelBlockBreakingPre(CallbackInfo ci) {
if (EventFlow.post(new PlayerEvent.Breaking.Cancel(currentBreakingProgress)).isCanceled()) ci.cancel();
}

@WrapMethod(method = "createPlayer(Lnet/minecraft/client/world/ClientWorld;Lnet/minecraft/stat/StatHandler;Lnet/minecraft/client/recipebook/ClientRecipeBook;ZZ)Lnet/minecraft/client/network/ClientPlayerEntity;")
private ClientPlayerEntity injectCreatePlayer(ClientWorld world, StatHandler statHandler, ClientRecipeBook recipeBook, boolean lastSneaking, boolean lastSprinting, Operation<ClientPlayerEntity> original) {
var player = original.call(world, statHandler, recipeBook, lastSneaking, lastSprinting);
InventoryManager.INSTANCE.setScreenHandler(player.playerScreenHandler);
return player;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@
import com.lambda.event.events.MovementEvent;
import com.lambda.event.events.PlayerEvent;
import com.lambda.event.events.TickEvent;
import com.lambda.interaction.PlayerPacketManager;
import com.lambda.interaction.request.rotating.RotationManager;
import com.lambda.interaction.PlayerPacketHandler;
import com.lambda.interaction.managers.rotating.RotationManager;
import com.lambda.module.modules.player.PortalGui;
import com.lambda.module.modules.render.ViewModel;
import com.llamalad7.mixinextras.injector.wrapmethod.WrapMethod;
Expand Down Expand Up @@ -80,13 +80,13 @@ void processMovement(Input input) {
@Inject(method = "sendMovementPackets", at = @At(value = "HEAD"), cancellable = true)
void sendLambdaMovement(CallbackInfo ci) {
ci.cancel();
PlayerPacketManager.sendPlayerPackets();
PlayerPacketHandler.sendPlayerPackets();
autoJumpEnabled = Lambda.getMc().options.getAutoJump().getValue();
}

@Redirect(method = "tick", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/network/ClientPlayerEntity;sendSneakingPacket()V"))
void sendSneakingPacket(ClientPlayerEntity entity) {
PlayerPacketManager.sendSneakPackets();
PlayerPacketHandler.sendSneakPackets();
}

@Redirect(method = "tickMovement", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/network/ClientPlayerEntity;isSprinting()Z"))
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/com/lambda/mixin/entity/EntityMixin.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@
import com.lambda.event.EventFlow;
import com.lambda.event.events.EntityEvent;
import com.lambda.event.events.PlayerEvent;
import com.lambda.interaction.request.rotating.RotationManager;
import com.lambda.interaction.request.rotating.RotationMode;
import com.lambda.interaction.managers.rotating.RotationManager;
import com.lambda.interaction.managers.rotating.RotationMode;
import com.lambda.module.modules.player.RotationLock;
import com.lambda.module.modules.render.NoRender;
import com.lambda.util.math.Vec2d;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@

package com.lambda.mixin.entity;

import com.lambda.interaction.request.inventory.InventoryManager;
import com.lambda.interaction.managers.inventory.InventoryManager;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.screen.ingame.HandledScreens;
import net.minecraft.screen.ScreenHandler;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
import com.lambda.Lambda;
import com.lambda.event.EventFlow;
import com.lambda.event.events.MovementEvent;
import com.lambda.interaction.request.rotating.RotationManager;
import com.lambda.interaction.managers.rotating.RotationManager;
import com.lambda.module.modules.movement.Velocity;
import com.lambda.module.modules.render.ViewModel;
import com.llamalad7.mixinextras.injector.wrapmethod.WrapMethod;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
import com.lambda.Lambda;
import com.lambda.event.EventFlow;
import com.lambda.event.events.MovementEvent;
import com.lambda.interaction.request.rotating.RotationManager;
import com.lambda.interaction.managers.rotating.RotationManager;
import net.minecraft.entity.player.PlayerEntity;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
package com.lambda.mixin.entity;

import com.lambda.Lambda;
import com.lambda.interaction.request.hotbar.HotbarManager;
import com.lambda.interaction.managers.hotbar.HotbarManager;
import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
import net.minecraft.entity.player.PlayerInventory;
import org.objectweb.asm.Opcodes;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
import com.lambda.event.EventFlow;
import com.lambda.event.events.InventoryEvent;
import com.lambda.event.events.WorldEvent;
import com.lambda.interaction.request.inventory.InventoryManager;
import com.lambda.interaction.managers.inventory.InventoryManager;
import com.lambda.module.modules.movement.Velocity;
import com.lambda.module.modules.render.NoRender;
import com.llamalad7.mixinextras.injector.wrapmethod.WrapMethod;
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/lambda/mixin/render/CameraMixin.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@

package com.lambda.mixin.render;

import com.lambda.interaction.request.rotating.RotationManager;
import com.lambda.interaction.managers.rotating.RotationManager;
import com.lambda.module.modules.player.Freecam;
import com.lambda.module.modules.render.CameraTweaks;
import com.lambda.module.modules.render.FreeLook;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
package com.lambda.mixin.render;

import com.lambda.Lambda;
import com.lambda.interaction.request.rotating.RotationManager;
import com.lambda.interaction.managers.rotating.RotationManager;
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
import net.minecraft.client.render.entity.LivingEntityRenderer;
Expand Down
5 changes: 1 addition & 4 deletions src/main/kotlin/com/lambda/config/AutomationConfig.kt
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,10 @@ import com.lambda.config.groups.EatSettings
import com.lambda.config.groups.HotbarSettings
import com.lambda.config.groups.InteractSettings
import com.lambda.config.groups.InventorySettings
import com.lambda.config.groups.PlaceSettings
import com.lambda.config.groups.RotationSettings
import com.lambda.context.Automated
import com.lambda.event.events.onStaticRender
import com.lambda.interaction.construction.result.Drawable
import com.lambda.interaction.construction.simulation.result.Drawable
import com.lambda.module.Module
import com.lambda.util.NamedEnum

Expand All @@ -40,7 +39,6 @@ open class AutomationConfig(
enum class Group(override val displayName: String) : NamedEnum {
Build("Build"),
Break("Break"),
Place("Place"),
Interact("Interact"),
Rotation("Rotation"),
Inventory("Inventory"),
Expand All @@ -52,7 +50,6 @@ open class AutomationConfig(

override val buildConfig = BuildSettings(this, Group.Build)
override val breakConfig = BreakSettings(this, Group.Break)
override val placeConfig = PlaceSettings(this, Group.Place)
override val interactConfig = InteractSettings(this, Group.Interact)
override val rotationConfig = RotationSettings(this, Group.Rotation)
override val inventoryConfig = InventorySettings(this, Group.Inventory)
Expand Down
12 changes: 5 additions & 7 deletions src/main/kotlin/com/lambda/config/MutableAutomationConfig.kt
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,11 @@ package com.lambda.config
import com.lambda.config.groups.BuildConfig
import com.lambda.config.groups.EatConfig
import com.lambda.context.Automated
import com.lambda.interaction.request.breaking.BreakConfig
import com.lambda.interaction.request.hotbar.HotbarConfig
import com.lambda.interaction.request.interacting.InteractConfig
import com.lambda.interaction.request.inventory.InventoryConfig
import com.lambda.interaction.request.placing.PlaceConfig
import com.lambda.interaction.request.rotating.RotationConfig
import com.lambda.interaction.managers.breaking.BreakConfig
import com.lambda.interaction.managers.hotbar.HotbarConfig
import com.lambda.interaction.managers.interacting.InteractConfig
import com.lambda.interaction.managers.inventory.InventoryConfig
import com.lambda.interaction.managers.rotating.RotationConfig

interface MutableAutomationConfig : Automated {
var defaultAutomationConfig: AutomationConfig
Expand All @@ -34,7 +33,6 @@ interface MutableAutomationConfig : Automated {

override val buildConfig: BuildConfig get() = automationConfig.buildConfig
override val breakConfig: BreakConfig get() = automationConfig.breakConfig
override val placeConfig: PlaceConfig get() = automationConfig.placeConfig
override val interactConfig: InteractConfig get() = automationConfig.interactConfig
override val rotationConfig: RotationConfig get() = automationConfig.rotationConfig
override val inventoryConfig: InventoryConfig get() = automationConfig.inventoryConfig
Expand Down
14 changes: 7 additions & 7 deletions src/main/kotlin/com/lambda/config/groups/BreakSettings.kt
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,11 @@ import com.lambda.config.Configurable
import com.lambda.config.SettingGroup
import com.lambda.event.events.TickEvent
import com.lambda.event.events.TickEvent.Companion.ALL_STAGES
import com.lambda.interaction.request.breaking.BreakConfig
import com.lambda.interaction.request.breaking.BreakConfig.AnimationMode
import com.lambda.interaction.request.breaking.BreakConfig.BreakConfirmationMode
import com.lambda.interaction.request.breaking.BreakConfig.BreakMode
import com.lambda.interaction.request.breaking.BreakConfig.SwingMode
import com.lambda.interaction.managers.breaking.BreakConfig
import com.lambda.interaction.managers.breaking.BreakConfig.AnimationMode
import com.lambda.interaction.managers.breaking.BreakConfig.BreakConfirmationMode
import com.lambda.interaction.managers.breaking.BreakConfig.BreakMode
import com.lambda.interaction.managers.breaking.BreakConfig.SwingMode
import com.lambda.util.BlockUtils.allSigns
import com.lambda.util.NamedEnum
import java.awt.Color
Expand Down Expand Up @@ -54,7 +54,7 @@ open class BreakSettings(
override val serverSwapTicks by c.setting("Server Swap", 0, 0..5, 1, "The number of ticks to give the server time to recognize the player attributes on the swapped item", " tick(s)").group(baseGroup, Group.General).index()

// override val desyncFix by c.setting("Desync Fix", false, "Predicts if the players breaking will be slowed next tick as block break packets are processed using the players next position") { vis() && page == Page.General }
override val breakDelay by c.setting("Break Delay", 0, 0..6, 1, "The delay between breaking blocks", " tick(s)").group(baseGroup, Group.General).index()
override val breakDelay by c.setting("Break Delay", 0, 0..5, 1, "The delay between breaking blocks", " tick(s)").group(baseGroup, Group.General).index()

// Timing
override val tickStageMask by c.setting("Break Stage Mask", setOf(TickEvent.Input.Post), ALL_STAGES.toSet(), description = "The sub-tick timing at which break actions can be performed").group(baseGroup, Group.General).index()
Expand All @@ -67,7 +67,7 @@ open class BreakSettings(
override val swingType by c.setting("Break Swing Type", BuildConfig.SwingType.Vanilla, "The style of swing") { swing != SwingMode.None }.group(baseGroup, Group.General).index()

// Rotate
override val rotateForBreak by c.setting("Rotate For Break", false, "Rotate towards block while breaking").group(baseGroup, Group.General).index()
override val rotate by c.setting("Rotate For Break", false, "Rotate towards block while breaking").group(baseGroup, Group.General).index()

// Pending / Post
override val breakConfirmation by c.setting("Break Confirmation", BreakConfirmationMode.BreakThenAwait, "The style of confirmation used when breaking").group(baseGroup, Group.General).index()
Expand Down
8 changes: 4 additions & 4 deletions src/main/kotlin/com/lambda/config/groups/BuildConfig.kt
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
package com.lambda.config.groups

import com.lambda.config.ISettingGroup
import com.lambda.interaction.request.rotating.visibilty.PointSelection
import com.lambda.interaction.managers.rotating.visibilty.PointSelection
import com.lambda.util.Describable
import com.lambda.util.NamedEnum

Expand All @@ -28,9 +28,9 @@ interface BuildConfig : ISettingGroup {
val stayInRange: Boolean
val collectDrops: Boolean
val spleefEntities: Boolean
val interactionsPerTick: Int
val maxPendingInteractions: Int
val interactionTimeout: Int
val actionsPerTick: Int
val maxPendingActions: Int
val actionTimeout: Int
val maxBuildDependencies: Int

val useDefaultReach: Boolean
Expand Down
8 changes: 4 additions & 4 deletions src/main/kotlin/com/lambda/config/groups/BuildSettings.kt
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ package com.lambda.config.groups

import com.lambda.config.Configurable
import com.lambda.config.SettingGroup
import com.lambda.interaction.request.rotating.visibilty.PointSelection
import com.lambda.interaction.managers.rotating.visibilty.PointSelection
import com.lambda.util.NamedEnum
import kotlin.math.max

Expand All @@ -38,9 +38,9 @@ class BuildSettings(
override val stayInRange by c.setting("Stay In Range", true, "Stay in range of blocks").group(baseGroup, Group.General).index()
override val collectDrops by c.setting("Collect All Drops", false, "Collect all drops when breaking blocks").group(baseGroup, Group.General).index()
override val spleefEntities by c.setting("Spleef Entities", false, "Breaks blocks beneath entities blocking placements to get them out of the way").group(baseGroup, Group.General).index()
override val interactionsPerTick by c.setting("Interactions Per Tick", 5, 1..30, 1, "The amount of interactions that can happen per tick").group(baseGroup, Group.General).index()
override val maxPendingInteractions by c.setting("Max Pending Interactions", 15, 1..30, 1, "The maximum count of pending interactions to allow before pausing future interactions").group(baseGroup, Group.General).index()
override val interactionTimeout by c.setting("Interaction Timeout", 10, 1..30, 1, "Timeout for block breaks in ticks", unit = " ticks").group(baseGroup, Group.General).index()
override val actionsPerTick by c.setting("Actions Per Tick", 5, 1..30, 1, "The amount of interactions that can happen per tick").group(baseGroup, Group.General).index()
override val maxPendingActions by c.setting("Max Pending Actions", 15, 1..30, 1, "The maximum count of pending interactions to allow before pausing future interactions").group(baseGroup, Group.General).index()
override val actionTimeout by c.setting("Action Timeout", 10, 1..30, 1, "Timeout for block breaks in ticks", unit = " ticks").group(baseGroup, Group.General).index()
override val maxBuildDependencies by c.setting("Max Sim Dependencies", 3, 0..10, 1, "Maximum dependency build results").group(baseGroup, Group.General).index()

override val useDefaultReach by c.setting("Default Reach", true, "Whether to use vanilla interaction ranges").group(baseGroup, Group.Reach).index()
Expand Down
2 changes: 1 addition & 1 deletion src/main/kotlin/com/lambda/config/groups/HotbarSettings.kt
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ import com.lambda.config.Configurable
import com.lambda.config.SettingGroup
import com.lambda.event.events.TickEvent
import com.lambda.event.events.TickEvent.Companion.ALL_STAGES
import com.lambda.interaction.request.hotbar.HotbarConfig
import com.lambda.interaction.managers.hotbar.HotbarConfig
import com.lambda.util.NamedEnum

class HotbarSettings(
Expand Down
21 changes: 14 additions & 7 deletions src/main/kotlin/com/lambda/config/groups/InteractSettings.kt
Original file line number Diff line number Diff line change
Expand Up @@ -21,17 +21,24 @@ import com.lambda.config.Configurable
import com.lambda.config.SettingGroup
import com.lambda.event.events.TickEvent
import com.lambda.event.events.TickEvent.Companion.ALL_STAGES
import com.lambda.interaction.request.interacting.InteractConfig
import com.lambda.interaction.managers.interacting.InteractConfig
import com.lambda.interaction.managers.interacting.InteractConfig.AirPlaceMode
import com.lambda.interaction.managers.interacting.InteractConfig.InteractConfirmationMode
import com.lambda.util.NamedEnum

class InteractSettings(
c: Configurable,
baseGroup: NamedEnum
) : SettingGroup(c), InteractConfig {
override val rotate by c.setting("Rotate For Interact", true, "Rotates the player to look at the block when interacting").group(baseGroup).index()
override val sorter by c.setting("Interact Sorter", ActionConfig.SortMode.Tool, "The order in which interactions are performed").group(baseGroup).index()
override val swingHand by c.setting("Swing On Interact", true, "Swings the players hand after interacting").group(baseGroup).index()
override val tickStageMask by c.setting("Interact Stage Mask", setOf(TickEvent.Input.Post), ALL_STAGES.toSet(), description = "The sub-tick timing at which interact actions are performed").group(baseGroup).index()
override val interactSwingType by c.setting("Interact Swing Type", BuildConfig.SwingType.Vanilla, "The style of swing") { swingHand }.group(baseGroup).index()
override val interactConfirmationMode by c.setting("Interact Confirmation Mode", InteractConfig.InteractConfirmationMode.InteractThenAwait, "The style of confirmation for interactions").group(baseGroup).index()
override val rotate by c.setting("Rotate For Interact", true, "Rotate towards block while placing").group(baseGroup).index()
override val airPlace by c.setting("Air Place", AirPlaceMode.None, "Allows for placing blocks without adjacent faces").group(baseGroup).index()
override val axisRotateSetting by c.setting("Axis Rotate", true, "Overrides the Rotate For Place setting and rotates the player on each axis to air place rotational blocks") { airPlace.isEnabled }.group(baseGroup).index()
override val sorter by c.setting("Interaction Sorter", ActionConfig.SortMode.Tool, "The order in which placements are performed").group(baseGroup).index()
override val tickStageMask by c.setting("Interaction Stage Mask", setOf(TickEvent.Input.Post), ALL_STAGES.toSet(), description = "The sub-tick timing at which place actions are performed").group(baseGroup).index()
override val interactConfirmationMode by c.setting("Interact Confirmation", InteractConfirmationMode.PlaceThenAwait, "Wait for block placement confirmation").group(baseGroup).index()
override val maxPendingInteractions by c.setting("Max Pending Interactions", 5, 0..30, 1, "The maximum amount of pending placements").group(baseGroup).index()
override val interactionsPerTick by c.setting("Interactions Per Tick", 1, 1..30, 1, "Maximum instant block places per tick").group(baseGroup).index()
override val swing by c.setting("Swing On Interact", true, "Swings the players hand when placing").group(baseGroup).index()
override val swingType by c.setting("Interact Swing Type", BuildConfig.SwingType.Vanilla, "The style of swing") { swing }.group(baseGroup).index()
override val sounds by c.setting("Place Sounds", true, "Plays the placing sounds").group(baseGroup).index()
}
Loading
Loading