Fix mixin issue (#209)

This commit is contained in:
Soda5601
2023-01-22 19:56:39 +08:00
committed by GitHub
parent 6a3a8b6d58
commit 4bd7c97189
3 changed files with 14 additions and 4 deletions

View File

@@ -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")) @Inject(method = "lambda$new$1", at = @At("HEAD"))
private void onStealChanged(Boolean b, CallbackInfo info) { private void onStealChanged(Boolean b, CallbackInfo info) {
callback = null; callback = null;

View File

@@ -1,5 +1,5 @@
package anticope.rejects.mixininterface; package anticope.rejects.mixininterface;
public interface IInventoryTweaks { public interface IInventoryTweaks {
void afterSteal(Runnable callback); void stealCallback(Runnable callback);
} }

View File

@@ -12,6 +12,7 @@ import meteordevelopment.meteorclient.systems.modules.Modules;
import meteordevelopment.meteorclient.systems.modules.misc.InventoryTweaks; import meteordevelopment.meteorclient.systems.modules.misc.InventoryTweaks;
import meteordevelopment.meteorclient.utils.Utils; import meteordevelopment.meteorclient.utils.Utils;
import meteordevelopment.meteorclient.utils.player.Rotations; import meteordevelopment.meteorclient.utils.player.Rotations;
import meteordevelopment.meteorclient.utils.player.SlotUtils;
import meteordevelopment.orbit.EventHandler; import meteordevelopment.orbit.EventHandler;
import meteordevelopment.orbit.EventPriority; import meteordevelopment.orbit.EventPriority;
import net.minecraft.block.BlockState; import net.minecraft.block.BlockState;
@@ -20,7 +21,9 @@ import net.minecraft.block.entity.BlockEntity;
import net.minecraft.block.entity.BlockEntityType; import net.minecraft.block.entity.BlockEntityType;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.screen.ScreenHandler; import net.minecraft.screen.ScreenHandler;
import net.minecraft.screen.slot.Slot;
import net.minecraft.util.Hand; import net.minecraft.util.Hand;
import net.minecraft.util.collection.DefaultedList;
import net.minecraft.util.hit.BlockHitResult; import net.minecraft.util.hit.BlockHitResult;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Direction; import net.minecraft.util.math.Direction;
@@ -29,6 +32,7 @@ import net.minecraft.util.math.Vec3d;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.IntStream;
public class ChestAura extends Module { public class ChestAura extends Module {
private final SettingGroup sgGeneral = settings.getDefaultGroup(); private final SettingGroup sgGeneral = settings.getDefaultGroup();
@@ -142,12 +146,13 @@ public class ChestAura extends Module {
if (event.packet.getSyncId() == handler.syncId) { if (event.packet.getSyncId() == handler.syncId) {
switch (closeCondition.get()) { switch (closeCondition.get()) {
case IfEmpty -> { case IfEmpty -> {
if (handler.getStacks().stream().allMatch(ItemStack::isEmpty)) DefaultedList<ItemStack> stacks = DefaultedList.of();
mc.player.closeHandledScreen(); 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 Always -> mc.player.closeHandledScreen();
case AfterSteal -> 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); MeteorClient.EVENT_BUS.unsubscribe(this);