From 4bd7c97189da987ada81c1ab3de831dbf3623446 Mon Sep 17 00:00:00 2001 From: Soda5601 <62250232+ThebestkillerTBK@users.noreply.github.com> Date: Sun, 22 Jan 2023 19:56:39 +0800 Subject: [PATCH] Fix mixin issue (#209) --- .../mixin/meteor/modules/InventoryTweaksMixin.java | 5 +++++ .../rejects/mixininterface/IInventoryTweaks.java | 2 +- src/main/java/anticope/rejects/modules/ChestAura.java | 11 ++++++++--- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/main/java/anticope/rejects/mixin/meteor/modules/InventoryTweaksMixin.java b/src/main/java/anticope/rejects/mixin/meteor/modules/InventoryTweaksMixin.java index e1731cc..48ba5e4 100644 --- a/src/main/java/anticope/rejects/mixin/meteor/modules/InventoryTweaksMixin.java +++ b/src/main/java/anticope/rejects/mixin/meteor/modules/InventoryTweaksMixin.java @@ -20,6 +20,11 @@ public abstract class InventoryTweaksMixin implements IInventoryTweaks { } } + @Override + public void stealCallback(Runnable callback) { + this.callback = callback; + } + @Inject(method = "lambda$new$1", at = @At("HEAD")) private void onStealChanged(Boolean b, CallbackInfo info) { callback = null; diff --git a/src/main/java/anticope/rejects/mixininterface/IInventoryTweaks.java b/src/main/java/anticope/rejects/mixininterface/IInventoryTweaks.java index b01649e..d5c7fbe 100644 --- a/src/main/java/anticope/rejects/mixininterface/IInventoryTweaks.java +++ b/src/main/java/anticope/rejects/mixininterface/IInventoryTweaks.java @@ -1,5 +1,5 @@ package anticope.rejects.mixininterface; public interface IInventoryTweaks { - void afterSteal(Runnable callback); + void stealCallback(Runnable callback); } diff --git a/src/main/java/anticope/rejects/modules/ChestAura.java b/src/main/java/anticope/rejects/modules/ChestAura.java index 9d2124a..435f6b7 100644 --- a/src/main/java/anticope/rejects/modules/ChestAura.java +++ b/src/main/java/anticope/rejects/modules/ChestAura.java @@ -12,6 +12,7 @@ import meteordevelopment.meteorclient.systems.modules.Modules; import meteordevelopment.meteorclient.systems.modules.misc.InventoryTweaks; import meteordevelopment.meteorclient.utils.Utils; import meteordevelopment.meteorclient.utils.player.Rotations; +import meteordevelopment.meteorclient.utils.player.SlotUtils; import meteordevelopment.orbit.EventHandler; import meteordevelopment.orbit.EventPriority; import net.minecraft.block.BlockState; @@ -20,7 +21,9 @@ import net.minecraft.block.entity.BlockEntity; import net.minecraft.block.entity.BlockEntityType; import net.minecraft.item.ItemStack; import net.minecraft.screen.ScreenHandler; +import net.minecraft.screen.slot.Slot; import net.minecraft.util.Hand; +import net.minecraft.util.collection.DefaultedList; import net.minecraft.util.hit.BlockHitResult; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; @@ -29,6 +32,7 @@ import net.minecraft.util.math.Vec3d; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.IntStream; public class ChestAura extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); @@ -142,12 +146,13 @@ public class ChestAura extends Module { if (event.packet.getSyncId() == handler.syncId) { switch (closeCondition.get()) { case IfEmpty -> { - if (handler.getStacks().stream().allMatch(ItemStack::isEmpty)) - mc.player.closeHandledScreen(); + DefaultedList stacks = DefaultedList.of(); + IntStream.range(0, SlotUtils.indexToId(SlotUtils.MAIN_START)).mapToObj(handler.slots::get).map(Slot::getStack).forEach(stacks::add); + if (stacks.stream().allMatch(ItemStack::isEmpty)) mc.player.closeHandledScreen(); } case Always -> mc.player.closeHandledScreen(); case AfterSteal -> - ((IInventoryTweaks) Modules.get().get(InventoryTweaks.class)).afterSteal(() -> RenderSystem.recordRenderCall(() -> mc.player.closeHandledScreen())); + ((IInventoryTweaks) Modules.get().get(InventoryTweaks.class)).stealCallback(() -> RenderSystem.recordRenderCall(() -> mc.player.closeHandledScreen())); } } MeteorClient.EVENT_BUS.unsubscribe(this);