Skip to content

Commit b033a20

Browse files
authored
Rewrite: Containers and Selections (#344)
1 parent 9721c5f commit b033a20

324 files changed

Lines changed: 9562 additions & 4692 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.

‎build.gradle.kts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ dependencies {
196196
modCompileOnly("maven.modrinth:litematica:$litematicaVersion")
197197

198198
// DevLogin
199-
// modRuntimeOnly("com.ptsmods:devlogin:3.5.1:fabric")
199+
modRuntimeOnly("com.ptsmods:devlogin:3.5.1:fabric")
200200

201201
// Test implementations
202202
testImplementation(kotlin("test"))

‎gradle.properties‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ baritoneVersion=1.14.0
3535
discordIPCVersion=6f6b6cce17
3636
classGraphVersion=4.8.184
3737
ktorVersion=3.3.3
38-
jacksonVersion=3.1.1
38+
jacksonVersion=3.1.4
3939
mockkVersion=1.14.7
4040
spairVersion=1.90.0
4141

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
import com.lambda.event.events.*;
2222
import com.lambda.gui.DearImGui;
2323
import com.lambda.gui.components.ClickGuiLayout;
24-
import com.lambda.interaction.handlers.TimerHandler;
24+
import com.lambda.interaction.handler.handlers.TimerHandler;
2525
import com.lambda.module.modules.movement.BetterFirework;
2626
import com.lambda.module.modules.player.Interact;
2727
import com.lambda.module.modules.player.InventoryMove;
@@ -141,7 +141,8 @@ private void onScreenOpen(@Nullable Screen screen, CallbackInfo ci) {
141141
}
142142
}
143143

144-
@Inject(method = "setScreen", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screen/Screen;removed()V", shift = At.Shift.AFTER))
144+
@SuppressWarnings("DiscouragedShift")
145+
@Inject(method = "setScreen", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screen/Screen;removed()V", shift = At.Shift.BEFORE))
145146
private void onScreenRemove(@Nullable Screen screen, CallbackInfo ci) {
146147
if (currentScreen == null) return;
147148
if (currentScreen instanceof ScreenHandlerProvider<?> handledScreen) {

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

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,10 @@
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.handlers.BaritoneHandler;
24-
import com.lambda.interaction.managers.inventory.InventoryManager;
25-
import com.lambda.interaction.managers.rotating.RotationManager;
23+
import com.lambda.interaction.handler.handlers.BaritoneHandler;
24+
import com.lambda.interaction.manager.managers.inventory.InventoryManager;
25+
import com.lambda.interaction.manager.managers.rotating.RotationManager;
26+
import com.lambda.module.modules.client.Client;
2627
import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
2728
import com.llamalad7.mixinextras.injector.wrapmethod.WrapMethod;
2829
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
@@ -111,6 +112,17 @@ public void clickSlotHead(int syncId, int slotId, int button, SlotActionType act
111112
if (EventFlow.post(click).isCanceled()) ci.cancel();
112113
}
113114

115+
@Inject(method = "clickSlot", at = @At("TAIL"))
116+
public void clickSlotTail(int syncId, int slotId, int button, SlotActionType actionType, PlayerEntity player, CallbackInfo ci) {
117+
if (syncId != player.currentScreenHandler.syncId) return;
118+
EventFlow.post(new PlayerEvent.SlotClick.Post(syncId, slotId, button, actionType, player.currentScreenHandler));
119+
}
120+
121+
@ModifyExpressionValue(method = "clickSlot", at = @At(value = "INVOKE", target = "Lnet/minecraft/screen/ScreenHandler;getRevision()I"))
122+
private int modifyClickSlotRevision(int originalRevision) {
123+
return Client.INSTANCE.getAvoidInventoryDesync() ? -1 : originalRevision;
124+
}
125+
114126
/**
115127
* Posts {@link InventoryEvent.HotbarSlot.Update} and returns the event value as the selected slot
116128
* <pre>{@code
@@ -144,7 +156,7 @@ private void cancelBlockBreakingPre(CallbackInfo ci) {
144156
@WrapMethod(method = "createPlayer(Lnet/minecraft/client/world/ClientWorld;Lnet/minecraft/stat/StatHandler;Lnet/minecraft/client/recipebook/ClientRecipeBook;)Lnet/minecraft/client/network/ClientPlayerEntity;")
145157
private ClientPlayerEntity wrapCreatePlayer(ClientWorld world, StatHandler statHandler, ClientRecipeBook recipeBook, Operation<ClientPlayerEntity> original) {
146158
var player = original.call(world, statHandler, recipeBook);
147-
InventoryManager.INSTANCE.setScreenHandler(player.playerScreenHandler);
159+
InventoryManager.onSetScreenHandler(player.playerScreenHandler);
148160
return player;
149161
}
150162
}

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@
1919

2020
import com.lambda.event.EventFlow;
2121
import com.lambda.event.events.*;
22-
import com.lambda.interaction.handlers.BaritoneHandler;
23-
import com.lambda.interaction.managers.rotating.RotationManager;
22+
import com.lambda.interaction.handler.handlers.BaritoneHandler;
23+
import com.lambda.interaction.manager.managers.rotating.RotationManager;
2424
import com.lambda.module.modules.movement.NoJumpCooldown;
2525
import com.lambda.module.modules.movement.elytrafly.ElytraFly;
2626
import com.lambda.module.modules.player.PortalGui;
@@ -56,7 +56,7 @@
5656
import java.util.Objects;
5757

5858
import static com.lambda.Lambda.getMc;
59-
import static com.lambda.interaction.managers.rotating.Rotation.dist;
59+
import static com.lambda.interaction.manager.managers.rotating.Rotation.dist;
6060

6161
@Mixin(value = ClientPlayerEntity.class, priority = Integer.MAX_VALUE)
6262
public abstract class ClientPlayerEntityMixin extends AbstractClientPlayerEntity {

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@
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.handlers.BaritoneHandler;
24-
import com.lambda.interaction.managers.rotating.RotationManager;
23+
import com.lambda.interaction.handler.handlers.BaritoneHandler;
24+
import com.lambda.interaction.manager.managers.rotating.RotationManager;
2525
import com.lambda.module.modules.movement.elytrafly.ElytraFly;
2626
import com.lambda.module.modules.render.NoRender;
2727
import com.lambda.util.math.Vec2d;

‎src/main/java/com/lambda/mixin/entity/HandledScreensMixin.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.entity;
1919

20-
import com.lambda.interaction.managers.inventory.InventoryManager;
20+
import com.lambda.interaction.manager.managers.inventory.InventoryManager;
2121
import net.minecraft.client.MinecraftClient;
2222
import net.minecraft.client.gui.screen.ingame.HandledScreens;
2323
import net.minecraft.screen.ScreenHandler;

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

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@
2020
import com.lambda.Lambda;
2121
import com.lambda.event.EventFlow;
2222
import com.lambda.event.events.MovementEvent;
23-
import com.lambda.interaction.handlers.BaritoneHandler;
24-
import com.lambda.interaction.handlers.GlideHandler;
25-
import com.lambda.interaction.managers.rotating.RotationManager;
23+
import com.lambda.interaction.handler.handlers.BaritoneHandler;
24+
import com.lambda.interaction.handler.handlers.GlideHandler;
25+
import com.lambda.interaction.manager.managers.rotating.RotationManager;
2626
import com.lambda.module.modules.movement.Velocity;
2727
import com.lambda.module.modules.movement.elytrafly.ElytraFly;
2828
import com.lambda.module.modules.render.ViewModel;
@@ -49,7 +49,6 @@
4949

5050
@Mixin(LivingEntity.class)
5151
public abstract class LivingEntityMixin extends EntityMixin {
52-
5352
@Unique private final LivingEntity lambda$instance = (LivingEntity) (Object) this;
5453

5554
@Definition(id = "getJumpVelocity", method = "Lnet/minecraft/entity/LivingEntity;getJumpVelocity()F")

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@
2020
import com.lambda.Lambda;
2121
import com.lambda.event.EventFlow;
2222
import com.lambda.event.events.MovementEvent;
23-
import com.lambda.interaction.handlers.BaritoneHandler;
24-
import com.lambda.interaction.handlers.GlideHandler;
25-
import com.lambda.interaction.managers.rotating.RotationManager;
23+
import com.lambda.interaction.handler.handlers.BaritoneHandler;
24+
import com.lambda.interaction.handler.handlers.GlideHandler;
25+
import com.lambda.interaction.manager.managers.rotating.RotationManager;
2626
import com.lambda.module.modules.player.Reach;
2727
import com.llamalad7.mixinextras.injector.wrapmethod.WrapMethod;
2828
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;

‎src/main/java/com/lambda/mixin/entity/PlayerInventoryMixin.java‎

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

2020
import com.lambda.Lambda;
21-
import com.lambda.interaction.managers.hotbar.HotbarManager;
21+
import com.lambda.interaction.manager.managers.hotbar.HotbarManager;
2222
import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
2323
import net.minecraft.entity.player.PlayerInventory;
2424
import org.objectweb.asm.Opcodes;

0 commit comments

Comments
 (0)