Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
788bcc9
rename material directory to inventory and rename MaterialContainer t…
beanbag44 Jul 6, 2026
be3257d
Merge branch '1.21.11' into improvement/containers-and-stack-selections
beanbag44 Jul 8, 2026
b961cf2
rework StackSelection. Uses builder dsl and the final product is immu…
beanbag44 Jul 8, 2026
3b043d9
immutable container selections with builder and general cleanup
beanbag44 Jul 9, 2026
a38c0bf
should be finished container transfer task setup. Need to finish exte…
beanbag44 Jul 12, 2026
840550a
Merge branch '1.21.11' into improvement/containers-and-stack-selections
beanbag44 Jul 14, 2026
4017227
lotta changes, still a lotta broken stuff
beanbag44 Jul 15, 2026
8b4957e
Merge branch '1.21.11' into improvement/containers-and-stack-selections
beanbag44 Jul 16, 2026
cf1c069
Merge branch '1.21.11' into improvement/containers-and-stack-selections
beanbag44 Jul 28, 2026
bc1f372
cleanup, still broken. Need to rework task chaining
beanbag44 Jul 28, 2026
678f149
Merge branch '1.21.11' into improvement/containers-and-stack-selections
beanbag44 Aug 23, 2026
4b3d4b4
initial merge
beanbag44 Aug 23, 2026
d2966cf
idk, a bunch of stuff
beanbag44 Aug 28, 2026
d008a36
cleanup. Last thing left is returning slots for picked up items or so…
beanbag44 Aug 29, 2026
9453645
fix memory leak (?) and general bugs
beanbag44 Aug 29, 2026
3dae2b6
Merge branch '1.21.11' into improvement/containers-and-stack-selections
beanbag44 Aug 29, 2026
e555c36
Merge branch '1.21.11' into improvement/containers-and-stack-selections
beanbag44 Aug 29, 2026
ccd3a08
better container caching, etc
beanbag44 Aug 31, 2026
4152230
fixes n stuff
beanbag44 Sep 1, 2026
e393250
remove inventory package and move container up
beanbag44 Sep 3, 2026
b7dfcde
checkpoint
beanbag44 Sep 8, 2026
8d0c65f
fix all syntax errors but most things are broken/could be written better
beanbag44 Sep 10, 2026
d9efa6d
improvements
beanbag44 Sep 12, 2026
6f364cf
feat: implement SilentEat module, container interactions, and UI refi…
voidgod8 Sep 13, 2026
040f386
fix(SilentEat): ensure reliable cleanup, offhand safety, and instant …
voidgod8 Sep 13, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 4 additions & 0 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -285,4 +285,8 @@ publishing {
}
}
}
}
tasks.named<JavaCompile>("compileJava") {
dependsOn(tasks.named("compileKotlin"))
classpath += files(tasks.named<org.jetbrains.kotlin.gradle.tasks.KotlinCompile>("compileKotlin").get().destinationDirectory)
}
4 changes: 2 additions & 2 deletions src/main/java/com/lambda/mixin/MinecraftClientMixin.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@

package com.lambda.mixin;

import com.lambda.interaction.handler.handlers.TimerHandler;
import com.lambda.event.EventFlow;
import com.lambda.event.events.*;
import com.lambda.gui.DearImGui;
import com.lambda.gui.components.ClickGuiLayout;
import com.lambda.interaction.handlers.TimerHandler;
import com.lambda.module.modules.movement.BetterFirework;
import com.lambda.module.modules.player.Interact;
import com.lambda.module.modules.player.InventoryMove;
Expand Down Expand Up @@ -141,7 +141,7 @@ private void onScreenOpen(@Nullable Screen screen, CallbackInfo ci) {
}
}

@Inject(method = "setScreen", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screen/Screen;removed()V", shift = At.Shift.AFTER))
@Inject(method = "setScreen", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screen/Screen;removed()V", shift = At.Shift.BEFORE))
private void onScreenRemove(@Nullable Screen screen, CallbackInfo ci) {
if (currentScreen == null) return;
if (currentScreen instanceof ScreenHandlerProvider<?> handledScreen) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@
import com.lambda.event.EventFlow;
import com.lambda.event.events.InventoryEvent;
import com.lambda.event.events.PlayerEvent;
import com.lambda.interaction.handlers.BaritoneHandler;
import com.lambda.interaction.managers.inventory.InventoryManager;
import com.lambda.interaction.managers.rotating.RotationManager;
import com.lambda.interaction.handler.handlers.BaritoneHandler;
import com.lambda.interaction.manager.managers.inventory.InventoryManager;
import com.lambda.interaction.manager.managers.rotating.RotationManager;
import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
import com.llamalad7.mixinextras.injector.wrapmethod.WrapMethod;
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@

import com.lambda.event.EventFlow;
import com.lambda.event.events.*;
import com.lambda.interaction.handlers.BaritoneHandler;
import com.lambda.interaction.managers.rotating.RotationManager;
import com.lambda.interaction.handler.handlers.BaritoneHandler;
import com.lambda.interaction.manager.managers.rotating.RotationManager;
import com.lambda.module.modules.movement.NoJumpCooldown;
import com.lambda.module.modules.movement.elytrafly.ElytraFly;
import com.lambda.module.modules.player.PortalGui;
Expand Down Expand Up @@ -56,7 +56,7 @@
import java.util.Objects;

import static com.lambda.Lambda.getMc;
import static com.lambda.interaction.managers.rotating.Rotation.dist;
import static com.lambda.interaction.manager.managers.rotating.Rotation.dist;

@Mixin(value = ClientPlayerEntity.class, priority = Integer.MAX_VALUE)
public abstract class ClientPlayerEntityMixin extends AbstractClientPlayerEntity {
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 @@ -20,8 +20,8 @@
import com.lambda.event.EventFlow;
import com.lambda.event.events.EntityEvent;
import com.lambda.event.events.PlayerEvent;
import com.lambda.interaction.handlers.BaritoneHandler;
import com.lambda.interaction.managers.rotating.RotationManager;
import com.lambda.interaction.handler.handlers.BaritoneHandler;
import com.lambda.interaction.manager.managers.rotating.RotationManager;
import com.lambda.module.modules.movement.elytrafly.ElytraFly;
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.managers.inventory.InventoryManager;
import com.lambda.interaction.manager.managers.inventory.InventoryManager;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.screen.ingame.HandledScreens;
import net.minecraft.screen.ScreenHandler;
Expand Down
7 changes: 3 additions & 4 deletions src/main/java/com/lambda/mixin/entity/LivingEntityMixin.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@
import com.lambda.Lambda;
import com.lambda.event.EventFlow;
import com.lambda.event.events.MovementEvent;
import com.lambda.interaction.handlers.BaritoneHandler;
import com.lambda.interaction.handlers.GlideHandler;
import com.lambda.interaction.managers.rotating.RotationManager;
import com.lambda.interaction.handler.handlers.BaritoneHandler;
import com.lambda.interaction.handler.handlers.GlideHandler;
import com.lambda.interaction.manager.managers.rotating.RotationManager;
import com.lambda.module.modules.movement.Velocity;
import com.lambda.module.modules.movement.elytrafly.ElytraFly;
import com.lambda.module.modules.render.ViewModel;
Expand All @@ -49,7 +49,6 @@

@Mixin(LivingEntity.class)
public abstract class LivingEntityMixin extends EntityMixin {

@Unique private final LivingEntity lambda$instance = (LivingEntity) (Object) this;

@Definition(id = "getJumpVelocity", method = "Lnet/minecraft/entity/LivingEntity;getJumpVelocity()F")
Expand Down
6 changes: 3 additions & 3 deletions src/main/java/com/lambda/mixin/entity/PlayerEntityMixin.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@
import com.lambda.Lambda;
import com.lambda.event.EventFlow;
import com.lambda.event.events.MovementEvent;
import com.lambda.interaction.handlers.BaritoneHandler;
import com.lambda.interaction.handlers.GlideHandler;
import com.lambda.interaction.managers.rotating.RotationManager;
import com.lambda.interaction.handler.handlers.BaritoneHandler;
import com.lambda.interaction.handler.handlers.GlideHandler;
import com.lambda.interaction.manager.managers.rotating.RotationManager;
import com.lambda.module.modules.player.Reach;
import com.llamalad7.mixinextras.injector.wrapmethod.WrapMethod;
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
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.managers.hotbar.HotbarManager;
import com.lambda.interaction.manager.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 @@ -23,8 +23,8 @@
import com.lambda.event.events.InventoryEvent;
import com.lambda.event.events.PlayerEvent;
import com.lambda.event.events.WorldEvent;
import com.lambda.interaction.managers.inventory.InventoryManager;
import com.lambda.interaction.managers.rotating.RotationManager;
import com.lambda.interaction.manager.managers.inventory.InventoryManager;
import com.lambda.interaction.manager.managers.rotating.RotationManager;
import com.lambda.module.modules.movement.Velocity;
import com.lambda.module.modules.render.NoRender;
import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
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.managers.rotating.RotationManager;
import com.lambda.interaction.manager.managers.rotating.RotationManager;
import com.lambda.module.modules.render.CameraTweaks;
import com.lambda.module.modules.render.FreeLook;
import com.lambda.module.modules.render.Freecam;
Expand Down
15 changes: 14 additions & 1 deletion src/main/java/com/lambda/mixin/render/HeldItemRendererMixin.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,12 @@
import com.google.common.base.MoreObjects;
import com.lambda.Lambda;
import com.lambda.module.modules.render.ViewModel;
import com.lambda.module.modules.player.SilentEat;
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
import com.llamalad7.mixinextras.sugar.Local;
import net.minecraft.entity.LivingEntity;
import net.minecraft.item.ItemDisplayContext;
import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.network.AbstractClientPlayerEntity;
Expand Down Expand Up @@ -53,7 +59,14 @@ private void injectRenderFirstPersonItem(AbstractClientPlayerEntity player, floa
private void injectRenderArmHoldingItem(AbstractClientPlayerEntity player, float tickProgress, float pitch, Hand hand, float swingProgress, ItemStack item, float equipProgress, MatrixStack matrices, OrderedRenderCommandQueue orderedRenderCommandQueue, int light, CallbackInfo ci) {
if (ViewModel.INSTANCE.isEnabled()) ViewModel.INSTANCE.transform(item, hand, matrices);
}

@WrapOperation(method = "renderFirstPersonItem", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/item/HeldItemRenderer;renderItem(Lnet/minecraft/entity/LivingEntity;Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemDisplayContext;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;I)V"))
private void wrapRenderItem(HeldItemRenderer instance, LivingEntity entity, ItemStack item, ItemDisplayContext displayContext, MatrixStack matrices, OrderedRenderCommandQueue queue, int light, Operation<Void> original, @Local(argsOnly = true) Hand hand) {
if (SilentEat.isUsingOffhand() && hand == Hand.OFF_HAND && SilentEat.INSTANCE.getSilentVisual()) {
original.call(instance, entity, SilentEat.getVisualOffhandStack(), displayContext, matrices, queue, light);
return;
}
original.call(instance, entity, item, displayContext, matrices, queue, light);
}
@ModifyArg(method = "updateHeldItems", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/math/MathHelper;clamp(FFF)F", ordinal = 2), index = 0)
private float modifyEquipProgressMainHand(float value) {
if (client.player == null || ViewModel.INSTANCE.isDisabled()) return value;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@
package com.lambda.mixin.render;

import com.lambda.Lambda;
import com.lambda.interaction.handlers.BaritoneHandler;
import com.lambda.interaction.managers.rotating.RotationManager;
import com.lambda.interaction.handler.handlers.BaritoneHandler;
import com.lambda.interaction.manager.managers.rotating.RotationManager;
import com.lambda.module.modules.render.Nametags;
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
Expand Down
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.handlers.FriendHandler;
import com.lambda.interaction.handler.handlers.FriendHandler;
import com.lambda.module.modules.render.ExtraTab;
import com.lambda.util.text.TextBuilder;
import com.lambda.util.text.TextDslKt;
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/com/lambda/mixin/world/DirectionMixin.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@

package com.lambda.mixin.world;

import com.lambda.interaction.handlers.BaritoneHandler;
import com.lambda.interaction.managers.rotating.RotationManager;
import com.lambda.interaction.handler.handlers.BaritoneHandler;
import com.lambda.interaction.manager.managers.rotating.RotationManager;
import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
import net.minecraft.entity.Entity;
import net.minecraft.util.math.Direction;
Expand Down
20 changes: 8 additions & 12 deletions src/main/kotlin/com/lambda/brigadier/argument/BlockArguments.kt
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,8 @@ import java.util.function.Predicate
* @see BlockPredicateArgumentType.getBlockPredicate
*/
@BrigadierDsl
fun DefaultArgumentReader<BlockPredicateArgumentType>.value(): Predicate<CachedBlockPosition> {
return BlockPredicateArgumentType.getBlockPredicate(context.assumeSourceNotUsed(), name)
}
fun DefaultArgumentReader<BlockPredicateArgumentType>.value(): Predicate<CachedBlockPosition> =
BlockPredicateArgumentType.getBlockPredicate(context.assumeSourceNotUsed(), name)

/**
* Reads the [BlockStateArgument] value of the argument in
Expand All @@ -48,9 +47,8 @@ fun DefaultArgumentReader<BlockPredicateArgumentType>.value(): Predicate<CachedB
* @see BlockStateArgumentType.getBlockState
*/
@BrigadierDsl
fun DefaultArgumentReader<BlockStateArgumentType>.value(): BlockStateArgument {
return BlockStateArgumentType.getBlockState(context.assumeSourceNotUsed(), name)
}
fun DefaultArgumentReader<BlockStateArgumentType>.value(): BlockStateArgument =
BlockStateArgumentType.getBlockState(context.assumeSourceNotUsed(), name)

/**
* Creates a block predicate argument with [name] as the parameter name.
Expand All @@ -62,9 +60,8 @@ fun DefaultArgumentReader<BlockStateArgumentType>.value(): BlockStateArgument {
fun <S> blockPredicate(
name: String,
registryAccess: CommandRegistryAccess,
): DefaultArgumentConstructor<S, BlockPredicateArgumentType> {
return argument(name, BlockPredicateArgumentType.blockPredicate(registryAccess))
}
): DefaultArgumentConstructor<S, BlockPredicateArgumentType> =
argument(name, BlockPredicateArgumentType.blockPredicate(registryAccess))

/**
* Creates a block state argument with [name] as the parameter name.
Expand All @@ -76,6 +73,5 @@ fun <S> blockPredicate(
fun <S> blockState(
name: String,
registryAccess: CommandRegistryAccess,
): DefaultArgumentConstructor<S, BlockStateArgumentType> {
return argument(name, BlockStateArgumentType.blockState(registryAccess))
}
): DefaultArgumentConstructor<S, BlockStateArgumentType> =
argument(name, BlockStateArgumentType.blockState(registryAccess))
25 changes: 10 additions & 15 deletions src/main/kotlin/com/lambda/brigadier/argument/GeometricArguments.kt
Original file line number Diff line number Diff line change
Expand Up @@ -167,29 +167,26 @@ fun <S> rotation(name: String): DefaultArgumentConstructor<S, RotationArgumentTy
@BrigadierDsl
fun <S> swizzle(
name: String,
): DefaultArgumentConstructor<S, SwizzleArgumentType> {
return argument(name, SwizzleArgumentType.swizzle())
}
): DefaultArgumentConstructor<S, SwizzleArgumentType> =
argument(name, SwizzleArgumentType.swizzle())

/**
* Creates a block pos argument with [name] as the parameter name.
*/
@BrigadierDsl
fun <S> blockPos(
name: String,
): DefaultArgumentConstructor<S, BlockPosArgumentType> {
return argument(name, BlockPosArgumentType.blockPos())
}
): DefaultArgumentConstructor<S, BlockPosArgumentType> =
argument(name, BlockPosArgumentType.blockPos())

/**
* Creates a column pos argument with [name] as the parameter name.
*/
@BrigadierDsl
fun <S> columnPos(
name: String,
): DefaultArgumentConstructor<S, ColumnPosArgumentType> {
return argument(name, ColumnPosArgumentType.columnPos())
}
): DefaultArgumentConstructor<S, ColumnPosArgumentType> =
argument(name, ColumnPosArgumentType.columnPos())

/**
* Creates a vec2 argument with [name] as the parameter name.
Expand All @@ -200,9 +197,8 @@ fun <S> columnPos(
fun <S> vec2(
name: String,
centerIntegers: Boolean = false,
): DefaultArgumentConstructor<S, Vec2ArgumentType> {
return argument(name, Vec2ArgumentType.vec2(centerIntegers))
}
): DefaultArgumentConstructor<S, Vec2ArgumentType> =
argument(name, Vec2ArgumentType.vec2(centerIntegers))

/**
* Creates a vec3 argument with [name] as the parameter name.
Expand All @@ -213,6 +209,5 @@ fun <S> vec2(
fun <S> vec3(
name: String,
centerIntegers: Boolean = false,
): DefaultArgumentConstructor<S, Vec3ArgumentType> {
return argument(name, Vec3ArgumentType.vec3(centerIntegers))
}
): DefaultArgumentConstructor<S, Vec3ArgumentType> =
argument(name, Vec3ArgumentType.vec3(centerIntegers))
Loading