package com.example.addon.modules; import com.example.addon.QuinnAddon; import meteordevelopment.meteorclient.events.world.TickEvent; import meteordevelopment.meteorclient.settings.IntSetting; import meteordevelopment.meteorclient.settings.ItemListSetting; import meteordevelopment.meteorclient.settings.Setting; import meteordevelopment.meteorclient.settings.SettingGroup; import meteordevelopment.meteorclient.systems.modules.Module; import meteordevelopment.meteorclient.utils.player.InvUtils; import meteordevelopment.orbit.EventHandler; import net.minecraft.item.Item; import net.minecraft.item.Items; import java.util.List; /** * Throws away junk as it piles up. Supplied by Rei; the only change from the original is the * category — {@code Category} is the class, not the list of categories, so {@code Category.Misc} * does not compile. It sits in the addon's own category rather than Meteor's Misc. */ public class InventoryCleaner extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); private final Setting> items = sgGeneral.add(new ItemListSetting.Builder() .name("items") .description("Items to throw away.") .defaultValue( Items.DIRT, Items.COBBLESTONE, Items.ANDESITE, Items.DIORITE, Items.GRANITE ) .build() ); private final Setting delay = sgGeneral.add(new IntSetting.Builder() .name("delay") .description("Delay in ticks between throwing items.") .defaultValue(2) .min(0) .build() ); private int timer; public InventoryCleaner() { super(QuinnAddon.CATEGORY, "inventory-cleaner", "Automatically throws away specified items."); } @Override public void onActivate() { timer = 0; } @EventHandler private void onTick(TickEvent.Post event) { if (timer > 0) { timer--; return; } for (int i = 9; i < 36; i++) { if (checkAndDrop(i)) return; } for (int i = 0; i < 9; i++) { if (checkAndDrop(i)) return; } } private boolean checkAndDrop(int slot) { if (mc.player == null) return false; Item item = mc.player.getInventory().getStack(slot).getItem(); if (item != Items.AIR && items.get().contains(item)) { InvUtils.drop().slot(slot); timer = delay.get(); return true; } return false; } }