From 162b28764ee7d6c406c74348df665e35e93082b7 Mon Sep 17 00:00:00 2001 From: Alexander01998 Date: Thu, 26 Sep 2024 11:59:19 +0200 Subject: [PATCH] Update to 24w39a --- .../net/wurstclient/hacks/AutoArmorHack.java | 5 ++- .../net/wurstclient/hacks/AutoTotemHack.java | 6 ++- .../net/wurstclient/hacks/BaseFinderHack.java | 1 + .../net/wurstclient/hacks/InvWalkHack.java | 5 ++- .../net/wurstclient/hacks/MobEspHack.java | 1 + .../hacks/autofarm/AutoFarmRenderer.java | 1 + .../hacks/chestesp/ChestEspRenderer.java | 1 + .../hacks/newchunks/NewChunksRenderer.java | 1 + .../hacks/portalesp/PortalEspRenderer.java | 1 + .../net/wurstclient/hacks/treebot/Tree.java | 1 + .../mixin/ClientPlayerEntityMixin.java | 41 ++++--------------- .../mixin/CreativeInventoryScreenMixin.java | 5 ++- .../PauseAttackOnContainersSetting.java | 6 ++- src/main/resources/fabric.mod.json | 2 +- 14 files changed, 32 insertions(+), 45 deletions(-) diff --git a/src/main/java/net/wurstclient/hacks/AutoArmorHack.java b/src/main/java/net/wurstclient/hacks/AutoArmorHack.java index 87117eb1ef..41e4495bab 100644 --- a/src/main/java/net/wurstclient/hacks/AutoArmorHack.java +++ b/src/main/java/net/wurstclient/hacks/AutoArmorHack.java @@ -136,8 +136,9 @@ public void onUpdate() continue; int armorValue = getArmorValue(stack); + ArmorData data = bestArmor.get(armorType); - if(armorValue > bestArmor.get(armorType).armorValue()) + if(data == null || armorValue > data.armorValue()) bestArmor.put(armorType, new ArmorData(slot, armorValue)); } @@ -147,7 +148,7 @@ public void onUpdate() { // check if better armor was found ArmorData data = bestArmor.get(type); - if(data.invSlot() == -1) + if(data == null || data.invSlot() == -1) continue; // check if armor can be swapped diff --git a/src/main/java/net/wurstclient/hacks/AutoTotemHack.java b/src/main/java/net/wurstclient/hacks/AutoTotemHack.java index ec4a42c124..a74f92747c 100644 --- a/src/main/java/net/wurstclient/hacks/AutoTotemHack.java +++ b/src/main/java/net/wurstclient/hacks/AutoTotemHack.java @@ -7,8 +7,9 @@ */ package net.wurstclient.hacks; +import net.minecraft.client.gui.screen.ingame.CreativeInventoryScreen; import net.minecraft.client.gui.screen.ingame.HandledScreen; -import net.minecraft.client.gui.screen.ingame.StatusEffectsDisplay; +import net.minecraft.client.gui.screen.ingame.InventoryScreen; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; import net.wurstclient.Category; @@ -107,7 +108,8 @@ public void onUpdate() // don't move items while a container is open if(MC.currentScreen instanceof HandledScreen - && !(MC.currentScreen instanceof StatusEffectsDisplay)) + && !(MC.currentScreen instanceof InventoryScreen + || MC.currentScreen instanceof CreativeInventoryScreen)) return; if(timer > 0) diff --git a/src/main/java/net/wurstclient/hacks/BaseFinderHack.java b/src/main/java/net/wurstclient/hacks/BaseFinderHack.java index 12d2bee67d..7958c291be 100644 --- a/src/main/java/net/wurstclient/hacks/BaseFinderHack.java +++ b/src/main/java/net/wurstclient/hacks/BaseFinderHack.java @@ -16,6 +16,7 @@ import org.lwjgl.opengl.GL11; import com.mojang.blaze3d.systems.RenderSystem; + import net.minecraft.client.gl.GlUsage; import net.minecraft.client.gl.ShaderProgram; import net.minecraft.client.gl.ShaderProgramKeys; diff --git a/src/main/java/net/wurstclient/hacks/InvWalkHack.java b/src/main/java/net/wurstclient/hacks/InvWalkHack.java index 126725efba..15ea62e176 100644 --- a/src/main/java/net/wurstclient/hacks/InvWalkHack.java +++ b/src/main/java/net/wurstclient/hacks/InvWalkHack.java @@ -13,7 +13,7 @@ import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.ingame.CreativeInventoryScreen; import net.minecraft.client.gui.screen.ingame.HandledScreen; -import net.minecraft.client.gui.screen.ingame.StatusEffectsDisplay; +import net.minecraft.client.gui.screen.ingame.InventoryScreen; import net.minecraft.client.gui.widget.TextFieldWidget; import net.minecraft.client.option.KeyBinding; import net.minecraft.item.ItemGroups; @@ -98,7 +98,8 @@ public void onUpdate() private boolean isAllowedScreen(Screen screen) { - if(screen instanceof StatusEffectsDisplay + if((screen instanceof InventoryScreen + || screen instanceof CreativeInventoryScreen) && !isCreativeSearchBarOpen(screen)) return true; diff --git a/src/main/java/net/wurstclient/hacks/MobEspHack.java b/src/main/java/net/wurstclient/hacks/MobEspHack.java index c5307cc63f..5af456775f 100644 --- a/src/main/java/net/wurstclient/hacks/MobEspHack.java +++ b/src/main/java/net/wurstclient/hacks/MobEspHack.java @@ -16,6 +16,7 @@ import org.lwjgl.opengl.GL11; import com.mojang.blaze3d.systems.RenderSystem; + import net.minecraft.client.gl.GlUsage; import net.minecraft.client.gl.ShaderProgram; import net.minecraft.client.gl.ShaderProgramKeys; diff --git a/src/main/java/net/wurstclient/hacks/autofarm/AutoFarmRenderer.java b/src/main/java/net/wurstclient/hacks/autofarm/AutoFarmRenderer.java index 97fb79259c..18470ce91f 100644 --- a/src/main/java/net/wurstclient/hacks/autofarm/AutoFarmRenderer.java +++ b/src/main/java/net/wurstclient/hacks/autofarm/AutoFarmRenderer.java @@ -16,6 +16,7 @@ import org.lwjgl.opengl.GL11; import com.mojang.blaze3d.systems.RenderSystem; + import net.minecraft.client.gl.GlUsage; import net.minecraft.client.gl.ShaderProgram; import net.minecraft.client.gl.ShaderProgramKeys; diff --git a/src/main/java/net/wurstclient/hacks/chestesp/ChestEspRenderer.java b/src/main/java/net/wurstclient/hacks/chestesp/ChestEspRenderer.java index fd5e006372..f5a3244d79 100644 --- a/src/main/java/net/wurstclient/hacks/chestesp/ChestEspRenderer.java +++ b/src/main/java/net/wurstclient/hacks/chestesp/ChestEspRenderer.java @@ -13,6 +13,7 @@ import org.joml.Matrix4f; import com.mojang.blaze3d.systems.RenderSystem; + import net.minecraft.client.gl.GlUsage; import net.minecraft.client.gl.ShaderProgram; import net.minecraft.client.gl.VertexBuffer; diff --git a/src/main/java/net/wurstclient/hacks/newchunks/NewChunksRenderer.java b/src/main/java/net/wurstclient/hacks/newchunks/NewChunksRenderer.java index abc5694b76..be4ba57140 100644 --- a/src/main/java/net/wurstclient/hacks/newchunks/NewChunksRenderer.java +++ b/src/main/java/net/wurstclient/hacks/newchunks/NewChunksRenderer.java @@ -11,6 +11,7 @@ import org.lwjgl.opengl.GL11; import com.mojang.blaze3d.systems.RenderSystem; + import net.minecraft.client.gl.GlUsage; import net.minecraft.client.gl.ShaderProgram; import net.minecraft.client.gl.ShaderProgramKeys; diff --git a/src/main/java/net/wurstclient/hacks/portalesp/PortalEspRenderer.java b/src/main/java/net/wurstclient/hacks/portalesp/PortalEspRenderer.java index 9410096265..c347d62210 100644 --- a/src/main/java/net/wurstclient/hacks/portalesp/PortalEspRenderer.java +++ b/src/main/java/net/wurstclient/hacks/portalesp/PortalEspRenderer.java @@ -13,6 +13,7 @@ import org.joml.Matrix4f; import com.mojang.blaze3d.systems.RenderSystem; + import net.minecraft.client.gl.GlUsage; import net.minecraft.client.gl.ShaderProgram; import net.minecraft.client.gl.VertexBuffer; diff --git a/src/main/java/net/wurstclient/hacks/treebot/Tree.java b/src/main/java/net/wurstclient/hacks/treebot/Tree.java index ffd7f8cd69..78653ac8bb 100644 --- a/src/main/java/net/wurstclient/hacks/treebot/Tree.java +++ b/src/main/java/net/wurstclient/hacks/treebot/Tree.java @@ -13,6 +13,7 @@ import org.lwjgl.opengl.GL11; import com.mojang.blaze3d.systems.RenderSystem; + import net.minecraft.client.gl.GlUsage; import net.minecraft.client.gl.ShaderProgram; import net.minecraft.client.gl.VertexBuffer; diff --git a/src/main/java/net/wurstclient/mixin/ClientPlayerEntityMixin.java b/src/main/java/net/wurstclient/mixin/ClientPlayerEntityMixin.java index 5800c942a3..bb40ce5cec 100644 --- a/src/main/java/net/wurstclient/mixin/ClientPlayerEntityMixin.java +++ b/src/main/java/net/wurstclient/mixin/ClientPlayerEntityMixin.java @@ -53,7 +53,6 @@ public class ClientPlayerEntityMixin extends AbstractClientPlayerEntity protected MinecraftClient client; private Screen tempCurrentScreen; - private boolean hideNextItemUse; public ClientPlayerEntityMixin(WurstClient wurst, ClientWorld world, GameProfile profile) @@ -87,45 +86,19 @@ private boolean wrapHasForwardMovement(Input input, } /** - * This mixin runs just before the tickMovement() method calls - * isUsingItem(), so that the onIsUsingItem() mixin knows which - * call to intercept. + * Allows NoSlowdown to intercept the isUsingItem() call in + * tickMovement(). */ - @Inject(at = @At(value = "INVOKE", + @WrapOperation(at = @At(value = "INVOKE", target = "Lnet/minecraft/client/network/ClientPlayerEntity;isUsingItem()Z", ordinal = 0), method = "tickMovement()V") - private void onTickMovementItemUse(CallbackInfo ci) + private boolean wrapTickMovementItemUse(ClientPlayerEntity instance, + Operation original) { if(WurstClient.INSTANCE.getHax().noSlowdownHack.isEnabled()) - hideNextItemUse = true; - } - - /** - * Pretends that the player is not using an item when instructed to do so by - * the onTickMovement() mixin. - */ - @Inject(at = @At("HEAD"), method = "isUsingItem()Z", cancellable = true) - private void onIsUsingItem(CallbackInfoReturnable cir) - { - if(!hideNextItemUse) - return; + return false; - cir.setReturnValue(false); - hideNextItemUse = false; - } - - /** - * This mixin is injected into a random field access later in the - * tickMovement() method to ensure that hideNextItemUse is always reset - * after the item use slowdown calculation. - */ - @Inject(at = @At(value = "FIELD", - target = "Lnet/minecraft/client/network/ClientPlayerEntity;ticksToNextAutojump:I", - opcode = Opcodes.GETFIELD, - ordinal = 0), method = "tickMovement()V") - private void afterIsUsingItem(CallbackInfo ci) - { - hideNextItemUse = false; + return original.call(instance); } @Inject(at = @At("HEAD"), method = "sendMovementPackets()V") diff --git a/src/main/java/net/wurstclient/mixin/CreativeInventoryScreenMixin.java b/src/main/java/net/wurstclient/mixin/CreativeInventoryScreenMixin.java index 0e914ee90c..1599b57c7d 100644 --- a/src/main/java/net/wurstclient/mixin/CreativeInventoryScreenMixin.java +++ b/src/main/java/net/wurstclient/mixin/CreativeInventoryScreenMixin.java @@ -11,9 +11,10 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + import net.minecraft.client.gui.screen.ingame.CreativeInventoryScreen; import net.minecraft.client.gui.screen.ingame.CreativeInventoryScreen.CreativeScreenHandler; -import net.minecraft.client.gui.screen.ingame.StatusEffectsDisplay; +import net.minecraft.client.gui.screen.ingame.HandledScreen; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.PlayerInventory; import net.minecraft.text.Text; @@ -21,7 +22,7 @@ @Mixin(CreativeInventoryScreen.class) public abstract class CreativeInventoryScreenMixin - extends StatusEffectsDisplay + extends HandledScreen { private CreativeInventoryScreenMixin(WurstClient wurst, CreativeScreenHandler screenHandler, PlayerInventory inventory, diff --git a/src/main/java/net/wurstclient/settings/PauseAttackOnContainersSetting.java b/src/main/java/net/wurstclient/settings/PauseAttackOnContainersSetting.java index 7733a5e7a5..49c00e7c0a 100644 --- a/src/main/java/net/wurstclient/settings/PauseAttackOnContainersSetting.java +++ b/src/main/java/net/wurstclient/settings/PauseAttackOnContainersSetting.java @@ -8,8 +8,9 @@ package net.wurstclient.settings; import net.minecraft.client.gui.screen.Screen; +import net.minecraft.client.gui.screen.ingame.CreativeInventoryScreen; import net.minecraft.client.gui.screen.ingame.HandledScreen; -import net.minecraft.client.gui.screen.ingame.StatusEffectsDisplay; +import net.minecraft.client.gui.screen.ingame.InventoryScreen; import net.wurstclient.WurstClient; public final class PauseAttackOnContainersSetting extends CheckboxSetting @@ -35,6 +36,7 @@ public boolean shouldPause() Screen screen = WurstClient.MC.currentScreen; return screen instanceof HandledScreen - && !(screen instanceof StatusEffectsDisplay); + && !(screen instanceof InventoryScreen + || screen instanceof CreativeInventoryScreen); } } diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 3254f6ef3c..9b939af68d 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -27,7 +27,7 @@ "depends": { "fabricloader": ">=0.16.3", "fabric-api": ">=0.104.2", - "minecraft": "~1.21.2-alpha.24.38.a", + "minecraft": "~1.21.2-alpha.24.39.a", "java": ">=21" }, "suggests": {