From 5895bb259ddc9ead3b87b3b77e3820e3cad5a3a0 Mon Sep 17 00:00:00 2001 From: chri-k Date: Fri, 6 Jun 2025 18:17:23 +0300 Subject: [PATCH 1/3] inventory-tweaks: extend anti-drop to item frames --- .../systems/modules/misc/InventoryTweaks.java | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/InventoryTweaks.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/InventoryTweaks.java index 0cc86b089f..97ee97a6a4 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/InventoryTweaks.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/InventoryTweaks.java @@ -7,6 +7,8 @@ import meteordevelopment.meteorclient.MeteorClient; import meteordevelopment.meteorclient.events.entity.DropItemsEvent; +import meteordevelopment.meteorclient.events.entity.player.InteractBlockEvent; +import meteordevelopment.meteorclient.events.entity.player.InteractEntityEvent; import meteordevelopment.meteorclient.events.game.OpenScreenEvent; import meteordevelopment.meteorclient.events.meteor.KeyEvent; import meteordevelopment.meteorclient.events.meteor.MouseButtonEvent; @@ -23,7 +25,10 @@ import meteordevelopment.meteorclient.utils.network.MeteorExecutor; import meteordevelopment.meteorclient.utils.player.*; import meteordevelopment.orbit.EventHandler; +import net.minecraft.block.Block; +import net.minecraft.block.DecoratedPotBlock; import net.minecraft.client.gui.screen.ingame.HandledScreen; +import net.minecraft.entity.decoration.ItemFrameEntity; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.network.packet.c2s.play.CloseHandledScreenC2SPacket; @@ -57,6 +62,13 @@ public class InventoryTweaks extends Module { .build() ); + private final Setting antiItemFrame = sgGeneral.add(new BoolSetting.Builder() + .name("anti-drop-item-frames") + .description("Items in anti-drop list will also be prevented from being placed in item frames or pots") + .defaultValue(true) + .build() + ); + private final Setting xCarry = sgGeneral.add(new BoolSetting.Builder() .name("xcarry") .description("Allows you to store four extra item stacks in your crafting grid.") @@ -324,11 +336,32 @@ private void onTickPost(TickEvent.Post event) { } } + // Anti Drop + @EventHandler private void onDropItems(DropItemsEvent event) { if (antiDropItems.get().contains(event.itemStack.getItem())) event.cancel(); } + @EventHandler + private void onInteractEntity(InteractEntityEvent event) { + if (!antiItemFrame.get()) return; + if (!(event.entity instanceof ItemFrameEntity)) return; + + Item item = mc.player.getStackInHand(event.hand).getItem(); + if (antiDropItems.get().contains(item)) event.cancel(); + } + + @EventHandler + private void onInteractBlock(InteractBlockEvent event) { + if (!antiItemFrame.get()) return; + Block block = mc.world.getBlockState(event.result.getBlockPos()).getBlock(); + if (!(block instanceof DecoratedPotBlock)) return; + + Item item = mc.player.getStackInHand(event.hand).getItem(); + if (antiDropItems.get().contains(item)) event.cancel(); + } + // XCarry @EventHandler From 81e967abb4e6854ed9fc1663d15336cbad04ca79 Mon Sep 17 00:00:00 2001 From: chri-k Date: Fri, 6 Jun 2025 18:44:59 +0300 Subject: [PATCH 2/3] inventory-tweaks: add override keybind --- .../systems/modules/misc/InventoryTweaks.java | 40 ++++++++++++------- 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/InventoryTweaks.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/InventoryTweaks.java index 97ee97a6a4..fba6fbe312 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/InventoryTweaks.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/InventoryTweaks.java @@ -47,6 +47,7 @@ public class InventoryTweaks extends Module { private final SettingGroup sgStealDump = settings.createGroup("Steal and Dump"); private final SettingGroup sgAutoSteal = settings.createGroup("Auto Steal"); + // General private final Setting mouseDragItemMove = sgGeneral.add(new BoolSetting.Builder() @@ -56,19 +57,6 @@ public class InventoryTweaks extends Module { .build() ); - private final Setting> antiDropItems = sgGeneral.add(new ItemListSetting.Builder() - .name("anti-drop-items") - .description("Items to prevent dropping. Doesn't work in creative inventory screen.") - .build() - ); - - private final Setting antiItemFrame = sgGeneral.add(new BoolSetting.Builder() - .name("anti-drop-item-frames") - .description("Items in anti-drop list will also be prevented from being placed in item frames or pots") - .defaultValue(true) - .build() - ); - private final Setting xCarry = sgGeneral.add(new BoolSetting.Builder() .name("xcarry") .description("Allows you to store four extra item stacks in your crafting grid.") @@ -88,6 +76,27 @@ public class InventoryTweaks extends Module { .build() ); + // Anti drop (in sgGeneral to avoid breaking existing configs) + + private final Setting> antiDropItems = sgGeneral.add(new ItemListSetting.Builder() + .name("anti-drop-items") + .description("Items to prevent dropping. Doesn't work in creative inventory screen.") + .build() + ); + + private final Setting antiItemFrame = sgGeneral.add(new BoolSetting.Builder() + .name("anti-drop-item-frames") + .description("Prevent anti-drop items from being placed in item frames or pots") + .defaultValue(true) + .build() + ); + + private final Setting antiDropOverrideBind = sgGeneral.add(new KeybindSetting.Builder() + .name("anti-drop-override") + .description("Hold this bind to temporarily bypass anti-drop") + .build() + ); + // Sorting private final Setting sortingEnabled = sgSorting.add(new BoolSetting.Builder() @@ -340,12 +349,13 @@ private void onTickPost(TickEvent.Post event) { @EventHandler private void onDropItems(DropItemsEvent event) { + if (antiDropOverrideBind.get().isPressed()) return; if (antiDropItems.get().contains(event.itemStack.getItem())) event.cancel(); } @EventHandler private void onInteractEntity(InteractEntityEvent event) { - if (!antiItemFrame.get()) return; + if (!antiItemFrame.get() || antiDropOverrideBind.get().isPressed()) return; if (!(event.entity instanceof ItemFrameEntity)) return; Item item = mc.player.getStackInHand(event.hand).getItem(); @@ -354,7 +364,7 @@ private void onInteractEntity(InteractEntityEvent event) { @EventHandler private void onInteractBlock(InteractBlockEvent event) { - if (!antiItemFrame.get()) return; + if (!antiItemFrame.get() || antiDropOverrideBind.get().isPressed()) return; Block block = mc.world.getBlockState(event.result.getBlockPos()).getBlock(); if (!(block instanceof DecoratedPotBlock)) return; From 9602352138fca424dbb523f69e7b3208d824de50 Mon Sep 17 00:00:00 2001 From: chri-k Date: Fri, 6 Jun 2025 18:52:46 +0300 Subject: [PATCH 3/3] [fix] inventory-tweaks: offhand cannot use pots --- .../meteorclient/systems/modules/misc/InventoryTweaks.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/InventoryTweaks.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/InventoryTweaks.java index fba6fbe312..73dd8ef1b2 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/InventoryTweaks.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/InventoryTweaks.java @@ -35,6 +35,7 @@ import net.minecraft.screen.ScreenHandler; import net.minecraft.screen.ScreenHandlerType; import net.minecraft.screen.slot.Slot; +import net.minecraft.util.Hand; import org.lwjgl.glfw.GLFW; import java.util.List; @@ -365,6 +366,7 @@ private void onInteractEntity(InteractEntityEvent event) { @EventHandler private void onInteractBlock(InteractBlockEvent event) { if (!antiItemFrame.get() || antiDropOverrideBind.get().isPressed()) return; + if (event.hand != Hand.MAIN_HAND) return; Block block = mc.world.getBlockState(event.result.getBlockPos()).getBlock(); if (!(block instanceof DecoratedPotBlock)) return;