From 7b15b78029435869380ef852a61afb01c53a2d39 Mon Sep 17 00:00:00 2001 From: StormyBytes Date: Mon, 7 Jun 2021 05:01:46 +0700 Subject: [PATCH] Snale rewrite = Addon rewrite Downgraded to v0.4.4 meteor due to meteor 1.17 being too instable. Snale rewrote InvUtils so I had to fix all of these >:| --- build.gradle | 2 +- .../rejects/MeteorRejectsAddon.java | 1 - .../rejects/commands/BookDupeCommand.java | 59 ------------------- .../java/cloudburst/rejects/hud/AppleHud.java | 4 +- .../cloudburst/rejects/hud/CrystalHud.java | 4 +- .../java/cloudburst/rejects/hud/ExpHud.java | 4 +- .../cloudburst/rejects/modules/Auto32K.java | 30 +++++----- .../rejects/modules/AutoBedTrap.java | 16 ++--- .../rejects/modules/AutoExtinguish.java | 10 ++-- .../rejects/modules/AutoHighway.java | 32 ++-------- .../cloudburst/rejects/modules/AutoTNT.java | 18 +++--- .../rejects/modules/AutoWither.java | 36 +++++------ .../cloudburst/rejects/modules/Lavacast.java | 19 +++--- .../cloudburst/rejects/modules/Painter.java | 12 ++-- .../rejects/modules/SpawnProofer.java | 18 +++--- .../rejects/screens/InteractionScreen.java | 32 +++++----- 16 files changed, 102 insertions(+), 195 deletions(-) delete mode 100644 src/main/java/cloudburst/rejects/commands/BookDupeCommand.java diff --git a/build.gradle b/build.gradle index 1fe0c23..49fca03 100644 --- a/build.gradle +++ b/build.gradle @@ -27,7 +27,7 @@ dependencies { // PSA: Some older mods, compiled on Loom 0.2.1, might have outdated Maven POMs. // You may need to force-disable transitiveness on them. - modImplementation "com.github.MeteorDevelopment:meteor-client:master" + modImplementation "com.github.MeteorDevelopment:meteor-client:v0.4.4" } processResources { diff --git a/src/main/java/cloudburst/rejects/MeteorRejectsAddon.java b/src/main/java/cloudburst/rejects/MeteorRejectsAddon.java index d0c4027..8e1bbf7 100644 --- a/src/main/java/cloudburst/rejects/MeteorRejectsAddon.java +++ b/src/main/java/cloudburst/rejects/MeteorRejectsAddon.java @@ -53,7 +53,6 @@ public class MeteorRejectsAddon extends MeteorAddon { Commands commands = Commands.get(); commands.add(new AntiAntiXrayCommand()); - commands.add(new BookDupeCommand()); commands.add(new GiveCommand()); commands.add(new SaveSkinCommand()); commands.add(new ServerCommand()); diff --git a/src/main/java/cloudburst/rejects/commands/BookDupeCommand.java b/src/main/java/cloudburst/rejects/commands/BookDupeCommand.java deleted file mode 100644 index b51a7a2..0000000 --- a/src/main/java/cloudburst/rejects/commands/BookDupeCommand.java +++ /dev/null @@ -1,59 +0,0 @@ -package cloudburst.rejects.commands; - -import com.mojang.brigadier.builder.LiteralArgumentBuilder; -import com.mojang.brigadier.exceptions.SimpleCommandExceptionType; -import minegame159.meteorclient.systems.commands.Command; -import minegame159.meteorclient.utils.player.InvUtils; -import net.minecraft.command.CommandSource; -import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; -import net.minecraft.nbt.ListTag; -import net.minecraft.nbt.StringTag; -import net.minecraft.network.packet.c2s.play.BookUpdateC2SPacket; -import net.minecraft.text.LiteralText; -import net.minecraft.util.Hand; - -import static com.mojang.brigadier.Command.SINGLE_SUCCESS; - -//Credit to the original author (https://github.com/Gaider10/BookDupe) (i think) for some of this code. -public class BookDupeCommand extends Command { - - private final ItemStack DUPE_BOOK = new ItemStack(Items.WRITABLE_BOOK, 1); - private final static SimpleCommandExceptionType NO_BOOK_EXCEPTION = new SimpleCommandExceptionType(new LiteralText("No book found")); - - public BookDupeCommand() { - super("dupe", "Dupes using a held, writable book."); - - StringBuilder stringBuilder = new StringBuilder(); - - for(int i = 0; i < 21845; i++){ - stringBuilder.append((char) 2048); - } - - String str1 = stringBuilder.toString(); - - - - ListTag listTag = new ListTag(); - listTag.addTag(0, StringTag.of(str1)); - - for(int i = 1; i < 40; i++){ - listTag.addTag(i, StringTag.of("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")); - } - - DUPE_BOOK.putSubTag("title", StringTag.of("a")); - DUPE_BOOK.putSubTag("pages", listTag); - } - - @Override - public void build(LiteralArgumentBuilder builder) { - builder.executes(context -> { - if (InvUtils.getHand(Items.WRITABLE_BOOK) != Hand.MAIN_HAND) throw NO_BOOK_EXCEPTION.create(); - - mc.player.networkHandler.sendPacket(new BookUpdateC2SPacket(DUPE_BOOK, true, mc.player.inventory.selectedSlot)); - - return SINGLE_SUCCESS; - }); - } - -} \ No newline at end of file diff --git a/src/main/java/cloudburst/rejects/hud/AppleHud.java b/src/main/java/cloudburst/rejects/hud/AppleHud.java index 205f8fd..b214d9c 100644 --- a/src/main/java/cloudburst/rejects/hud/AppleHud.java +++ b/src/main/java/cloudburst/rejects/hud/AppleHud.java @@ -41,8 +41,8 @@ public class AppleHud extends HudElement { if (isInEditor()) { RenderUtils.drawItem(Items.GOLDEN_APPLE.getDefaultStack(), (int) x, (int) y, scale.get(), true); } else { - int count = InvUtils.findItemWithCount(Items.GOLDEN_APPLE).count; - count += InvUtils.findItemWithCount(Items.ENCHANTED_GOLDEN_APPLE).count; + int count = InvUtils.find(Items.GOLDEN_APPLE).count; + count += InvUtils.find(Items.ENCHANTED_GOLDEN_APPLE).count; if (count > 0) RenderUtils.drawItem(new ItemStack(Items.GOLDEN_APPLE, count), (int) x, (int) y, scale.get(), true); } diff --git a/src/main/java/cloudburst/rejects/hud/CrystalHud.java b/src/main/java/cloudburst/rejects/hud/CrystalHud.java index b717641..cc25b7e 100644 --- a/src/main/java/cloudburst/rejects/hud/CrystalHud.java +++ b/src/main/java/cloudburst/rejects/hud/CrystalHud.java @@ -42,8 +42,8 @@ public class CrystalHud extends HudElement { if (isInEditor()) { RenderUtils.drawItem(Items.END_CRYSTAL.getDefaultStack(), (int) x, (int) y, scale.get(), true); - } else if (InvUtils.findItemWithCount(Items.END_CRYSTAL).count > 0) { - RenderUtils.drawItem(new ItemStack(Items.END_CRYSTAL, InvUtils.findItemWithCount(Items.END_CRYSTAL).count), (int) x, (int) y, scale.get(), true); + } else if (InvUtils.find(Items.END_CRYSTAL).count > 0) { + RenderUtils.drawItem(new ItemStack(Items.END_CRYSTAL, InvUtils.find(Items.END_CRYSTAL).count), (int) x, (int) y, scale.get(), true); } } } diff --git a/src/main/java/cloudburst/rejects/hud/ExpHud.java b/src/main/java/cloudburst/rejects/hud/ExpHud.java index b4541f7..cd3f4a8 100644 --- a/src/main/java/cloudburst/rejects/hud/ExpHud.java +++ b/src/main/java/cloudburst/rejects/hud/ExpHud.java @@ -40,8 +40,8 @@ public class ExpHud extends HudElement { if (isInEditor()) { RenderUtils.drawItem(Items.EXPERIENCE_BOTTLE.getDefaultStack(), (int) x, (int) y, scale.get(), true); - } else if (InvUtils.findItemWithCount(Items.EXPERIENCE_BOTTLE).count > 0) { - RenderUtils.drawItem(new ItemStack(Items.EXPERIENCE_BOTTLE, InvUtils.findItemWithCount(Items.EXPERIENCE_BOTTLE).count), (int) x, (int) y, scale.get(), true); + } else if (InvUtils.find(Items.EXPERIENCE_BOTTLE).count > 0) { + RenderUtils.drawItem(new ItemStack(Items.EXPERIENCE_BOTTLE, InvUtils.find(Items.EXPERIENCE_BOTTLE).count), (int) x, (int) y, scale.get(), true); } } } diff --git a/src/main/java/cloudburst/rejects/modules/Auto32K.java b/src/main/java/cloudburst/rejects/modules/Auto32K.java index 1959229..fd957d9 100644 --- a/src/main/java/cloudburst/rejects/modules/Auto32K.java +++ b/src/main/java/cloudburst/rejects/modules/Auto32K.java @@ -103,9 +103,9 @@ public class Auto32K extends Module { private void onTick(TickEvent.Post event) { if (phase <= 7) { if (mode.get() == Mode.Hopper) { - int shulkerSlot = InvUtils.findItemWithCount(Items.SHULKER_BOX).slot; - int hopperSlot = InvUtils.findItemWithCount(Items.HOPPER).slot; - if (isValidSlot(shulkerSlot) || isValidSlot(hopperSlot)) return; + FindItemResult findShulker = InvUtils.findInHotbar(Items.SHULKER_BOX); + FindItemResult findHopper = InvUtils.findInHotbar(Items.HOPPER); + if (isValidSlot(findShulker) || isValidSlot(findHopper)) return; List sortedBlocks = findValidBlocksHopper(); sortedBlocks.sort(Comparator.comparingDouble(value -> mc.player.squaredDistanceTo(value.getX(), value.getY(), value.getZ()))); Iterator sortedIterator = sortedBlocks.iterator(); @@ -113,13 +113,13 @@ public class Auto32K extends Module { if(sortedIterator.hasNext()) bestBlock = sortedIterator.next(); if (bestBlock != null) { - while (!BlockUtils.place(bestBlock, Hand.MAIN_HAND,hopperSlot,true,100,false)) { + while (!BlockUtils.place(bestBlock, findHopper,true,100,false)) { if(sortedIterator.hasNext()) { bestBlock = sortedIterator.next().up(); }else break; } mc.player.setSneaking(true); - if (!BlockUtils.place(bestBlock.up(), Hand.MAIN_HAND, shulkerSlot,true,100,false)) { + if (!BlockUtils.place(bestBlock.up(), findShulker,true,100,false)) { error("Failed to place."); this.toggle(); return; @@ -129,23 +129,23 @@ public class Auto32K extends Module { phase = 8; } } else if (mode.get() == Mode.Dispenser) { - int shulkerSlot = InvUtils.findItemWithCount(Items.SHULKER_BOX).slot; - int hopperSlot = InvUtils.findItemWithCount(Items.HOPPER).slot; - int dispenserSlot = InvUtils.findItemWithCount(Items.DISPENSER).slot; - int redstoneSlot = InvUtils.findItemWithCount(Items.REDSTONE_BLOCK).slot; + FindItemResult shulkerSlot = InvUtils.find(Items.SHULKER_BOX); + FindItemResult hopperSlot = InvUtils.find(Items.HOPPER); + FindItemResult dispenserSlot = InvUtils.find(Items.DISPENSER); + FindItemResult redstoneSlot = InvUtils.find(Items.REDSTONE_BLOCK); if ((isValidSlot(shulkerSlot) && mode.get() == Mode.Hopper) || isValidSlot(hopperSlot) || isValidSlot(dispenserSlot) || isValidSlot(redstoneSlot)) return; if (phase == 0) { bestBlock = findValidBlocksDispenser(); if(bestBlock == null) return; - if (!BlockUtils.place(bestBlock.add(x, 0, z), Hand.MAIN_HAND, hopperSlot, true, 100, false)) { + if (!BlockUtils.place(bestBlock.add(x, 0, z), hopperSlot, true, 100, false)) { error("Failed to place."); this.toggle(); return; } phase += 1; } else if (phase == 1) { - mc.player.inventory.selectedSlot = dispenserSlot; + mc.player.inventory.selectedSlot = dispenserSlot.slot; if (x == -1) { mc.player.networkHandler.sendPacket(new PlayerMoveC2SPacket.LookOnly(-90f, mc.player.pitch, mc.player.isOnGround())); } else if (x == 1) { @@ -164,13 +164,13 @@ public class Auto32K extends Module { phase += 1; }else if (phase == 4 && mc.currentScreen instanceof Generic3x3ContainerScreen) { mc.player.getSpeed(); - InvUtils.move().from(shulkerSlot).toId(4); + InvUtils.move().from(shulkerSlot.slot).toId(4); phase += 1; }else if (phase == 5 && mc.currentScreen instanceof Generic3x3ContainerScreen) { mc.player.closeHandledScreen(); phase += 1; }else if (phase == 6) { - mc.player.inventory.selectedSlot = redstoneSlot; + mc.player.inventory.selectedSlot = redstoneSlot.slot; mc.player.setSneaking(true); mc.interactionManager.interactBlock(mc.player, mc.world, Hand.MAIN_HAND, new BlockHitResult(mc.player.getPos(), mc.player.getHorizontalFacing().getOpposite(), bestBlock.up(2), false)); mc.player.setSneaking(false); @@ -295,8 +295,8 @@ public class Auto32K extends Module { return allBlocks; } - private boolean isValidSlot(int slot){ - return slot == -1 || slot >= 9; + private boolean isValidSlot(FindItemResult findItemResult){ + return findItemResult.slot == -1 || findItemResult.slot >= 9; } private List setDefaultBlocks(){ diff --git a/src/main/java/cloudburst/rejects/modules/AutoBedTrap.java b/src/main/java/cloudburst/rejects/modules/AutoBedTrap.java index d00353f..610c61a 100644 --- a/src/main/java/cloudburst/rejects/modules/AutoBedTrap.java +++ b/src/main/java/cloudburst/rejects/modules/AutoBedTrap.java @@ -1,8 +1,5 @@ package cloudburst.rejects.modules; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; - import cloudburst.rejects.MeteorRejectsAddon; import meteordevelopment.orbit.EventHandler; import minegame159.meteorclient.events.world.TickEvent; @@ -11,16 +8,15 @@ import minegame159.meteorclient.settings.IntSetting; import minegame159.meteorclient.settings.Setting; import minegame159.meteorclient.settings.SettingGroup; import minegame159.meteorclient.systems.modules.Module; +import minegame159.meteorclient.utils.player.FindItemResult; import minegame159.meteorclient.utils.player.InvUtils; import minegame159.meteorclient.utils.world.BlockUtils; - -import org.lwjgl.system.CallbackI.P; - import net.minecraft.block.BedBlock; import net.minecraft.item.Items; -import net.minecraft.util.Hand; import net.minecraft.util.hit.BlockHitResult; import net.minecraft.util.hit.HitResult; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Direction; public class AutoBedTrap extends Module { @@ -95,14 +91,14 @@ public class AutoBedTrap extends Module { return; } - int block_slot = InvUtils.findItemInHotbar(Items.OBSIDIAN); - if (block_slot == -1) { + FindItemResult findBlock = InvUtils.findInHotbar(Items.OBSIDIAN); + if (findBlock.slot == -1) { error("No specified blocks found. Disabling."); toggle(); } - if (BlockUtils.place(b, Hand.MAIN_HAND, block_slot, rotate.get(), 10, false)) { + if (BlockUtils.place(b, findBlock, rotate.get(), 10, false)) { cap++; if (cap >= bpt.get()) { return; diff --git a/src/main/java/cloudburst/rejects/modules/AutoExtinguish.java b/src/main/java/cloudburst/rejects/modules/AutoExtinguish.java index a300a89..06bf93c 100644 --- a/src/main/java/cloudburst/rejects/modules/AutoExtinguish.java +++ b/src/main/java/cloudburst/rejects/modules/AutoExtinguish.java @@ -9,7 +9,7 @@ import minegame159.meteorclient.settings.Setting; import minegame159.meteorclient.settings.SettingGroup; import minegame159.meteorclient.systems.modules.Module; import minegame159.meteorclient.utils.player.PlayerUtils; -import minegame159.meteorclient.utils.player.RotationUtils; +import minegame159.meteorclient.utils.player.Rotations; import minegame159.meteorclient.utils.world.BlockIterator; import net.minecraft.block.Blocks; import net.minecraft.entity.effect.StatusEffect; @@ -123,12 +123,12 @@ public class AutoExtinguish extends Module { if (center.get()) { PlayerUtils.centerPlayer(); } - RotationUtils.packetRotate(yaw, 90); + Rotations.rotate(yaw, 90); mc.getNetworkHandler().sendPacket(new PlayerActionC2SPacket(PlayerActionC2SPacket.Action.START_DESTROY_BLOCK, blockPos, Direction.UP)); mc.player.swingHand(Hand.MAIN_HAND); mc.getNetworkHandler().sendPacket(new PlayerActionC2SPacket(PlayerActionC2SPacket.Action.STOP_DESTROY_BLOCK, blockPos, Direction.UP)); - RotationUtils.packetRotate(yaw, pitch); + Rotations.rotate(yaw, pitch); } place(slot); hasPlacedWater = true; @@ -158,10 +158,10 @@ public class AutoExtinguish extends Module { float yaw = mc.gameRenderer.getCamera().getYaw() % 360; float pitch = mc.gameRenderer.getCamera().getPitch() % 360; - RotationUtils.packetRotate(yaw, 90); + Rotations.rotate(yaw, 90); mc.interactionManager.interactItem(mc.player, mc.player.world, Hand.MAIN_HAND); mc.player.inventory.selectedSlot = preSlot; - RotationUtils.packetRotate(yaw, pitch); + Rotations.rotate(yaw, pitch); } } diff --git a/src/main/java/cloudburst/rejects/modules/AutoHighway.java b/src/main/java/cloudburst/rejects/modules/AutoHighway.java index 3928c8b..5c7f83c 100644 --- a/src/main/java/cloudburst/rejects/modules/AutoHighway.java +++ b/src/main/java/cloudburst/rejects/modules/AutoHighway.java @@ -3,22 +3,18 @@ package cloudburst.rejects.modules; import cloudburst.rejects.MeteorRejectsAddon; import meteordevelopment.orbit.EventHandler; import minegame159.meteorclient.events.world.TickEvent; -import minegame159.meteorclient.systems.modules.Categories; -import minegame159.meteorclient.systems.modules.Module; import minegame159.meteorclient.settings.BoolSetting; import minegame159.meteorclient.settings.IntSetting; import minegame159.meteorclient.settings.Setting; import minegame159.meteorclient.settings.SettingGroup; +import minegame159.meteorclient.systems.modules.Module; +import minegame159.meteorclient.utils.player.FindItemResult; import minegame159.meteorclient.utils.player.InvUtils; import minegame159.meteorclient.utils.world.BlockUtils; import net.minecraft.block.BlockState; import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.BlockItem; -import net.minecraft.item.Item; import net.minecraft.item.Items; -import net.minecraft.util.Hand; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; import net.minecraft.util.math.MathHelper; public class AutoHighway extends Module { @@ -83,7 +79,7 @@ public class AutoHighway extends Module { return; } // Check Obsidian - if(InvUtils.findItemInHotbar(Items.OBSIDIAN) == -1) return; + if(!InvUtils.findInHotbar(Items.OBSIDIAN).found()) return; // Get Size highwaySize = getSize(); // Place @@ -576,8 +572,8 @@ public class AutoHighway extends Module { if (!blockState.getMaterial().isReplaceable()) return true; - int slot = findSlot(); - if (BlockUtils.place(placePos, Hand.MAIN_HAND, slot, rotate.get(), 10, true)) { + FindItemResult slot = InvUtils.find(Items.OBSIDIAN); + if (BlockUtils.place(placePos, slot, rotate.get(), 10, true)) { return_ = true; } @@ -632,22 +628,4 @@ public class AutoHighway extends Module { if(yaw >= 112.5 && yaw < 157.5) return Direction.WEST_NORTH; return Direction.SOUTH; } - - - private int findSlot() { - for (int i = 0; i < 9; i++) { - Item item = mc.player.inventory.getStack(i).getItem(); - - if (!(item instanceof BlockItem)) continue; - - if (item == Items.OBSIDIAN) { - return i; - } - } - - return -1; - } - - - } diff --git a/src/main/java/cloudburst/rejects/modules/AutoTNT.java b/src/main/java/cloudburst/rejects/modules/AutoTNT.java index 8a4227a..07a380c 100644 --- a/src/main/java/cloudburst/rejects/modules/AutoTNT.java +++ b/src/main/java/cloudburst/rejects/modules/AutoTNT.java @@ -9,6 +9,7 @@ import minegame159.meteorclient.settings.IntSetting; import minegame159.meteorclient.settings.Setting; import minegame159.meteorclient.settings.SettingGroup; import minegame159.meteorclient.systems.modules.Module; +import minegame159.meteorclient.utils.player.FindItemResult; import minegame159.meteorclient.utils.player.InvUtils; import minegame159.meteorclient.utils.player.PlayerUtils; import net.minecraft.block.Blocks; @@ -60,7 +61,8 @@ public class AutoTNT extends Module { private final ArrayList blocks = new ArrayList<>(); private boolean ignited; private int ticks = 0; - private int preSlot, slot; + private int preSlot; + private FindItemResult findSlot; public AutoTNT() { super(MeteorRejectsAddon.CATEGORY, "auto-tnt", "Ignites TNT for you"); @@ -104,25 +106,25 @@ public class AutoTNT extends Module { blocks.sort(Comparator.comparingDouble(PlayerUtils::distanceTo)); // Get slot - slot = getFlintAndSteelSlot(); - if (slot == -1) { + findSlot = getFlintAndSteelSlot(); + if (!findSlot.found()) { error("No flint and steel in hotbar"); toggle(); return; } // Ignition - ignite(blocks.get(0), slot); + ignite(blocks.get(0), findSlot); // Reset ticks ticks = delay.get(); } else ticks--; } - private void ignite(BlockPos pos, int slot) { + private void ignite(BlockPos pos, FindItemResult item) { // Set slots preSlot = mc.player.inventory.selectedSlot; - mc.player.inventory.selectedSlot = slot; + mc.player.inventory.selectedSlot = item.slot; ActionResult result = mc.interactionManager.interactBlock(mc.player, mc.world, Hand.MAIN_HAND, new BlockHitResult(new Vec3d(pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5), Direction.UP, pos, true)); @@ -133,7 +135,7 @@ public class AutoTNT extends Module { mc.player.inventory.selectedSlot = preSlot; } - private int getFlintAndSteelSlot() { - return InvUtils.findItemInHotbar(item -> item.getItem() instanceof FlintAndSteelItem && (antiBreak.get() && (item.getMaxDamage() - item.getDamage()) > 10)); + private FindItemResult getFlintAndSteelSlot() { + return InvUtils.findInHotbar(item -> item.getItem() instanceof FlintAndSteelItem && (antiBreak.get() && (item.getMaxDamage() - item.getDamage()) > 10)); } } diff --git a/src/main/java/cloudburst/rejects/modules/AutoWither.java b/src/main/java/cloudburst/rejects/modules/AutoWither.java index db4d15c..744538a 100644 --- a/src/main/java/cloudburst/rejects/modules/AutoWither.java +++ b/src/main/java/cloudburst/rejects/modules/AutoWither.java @@ -7,12 +7,12 @@ import minegame159.meteorclient.settings.Setting; import minegame159.meteorclient.settings.SettingGroup; import minegame159.meteorclient.systems.modules.Categories; import minegame159.meteorclient.systems.modules.Module; +import minegame159.meteorclient.utils.player.FindItemResult; import minegame159.meteorclient.utils.player.InvUtils; import minegame159.meteorclient.utils.player.PlayerUtils; import minegame159.meteorclient.utils.world.BlockUtils; import net.minecraft.block.Blocks; import net.minecraft.item.Items; -import net.minecraft.util.Hand; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; @@ -70,8 +70,8 @@ public class AutoWither extends Module { } private boolean hasEnoughMaterials() { - if ((InvUtils.findItemWithCount(Items.SOUL_SAND).count < 4 && InvUtils.findItemWithCount(Items.SOUL_SOIL).count < 4) || - InvUtils.findItemWithCount(Items.WITHER_SKELETON_SKULL).count < 3) + if ((InvUtils.find(Items.SOUL_SAND).count < 4 && InvUtils.find(Items.SOUL_SOIL).count < 4) || + InvUtils.find(Items.WITHER_SKELETON_SKULL).count < 3) return false; return true; @@ -118,30 +118,30 @@ public class AutoWither extends Module { private void spawnWither(BlockPos blockPos, Direction direction) { // Soul sand/soil slot - int soulSlot = InvUtils.findItemInHotbar(Items.SOUL_SAND); - if (soulSlot == -1) InvUtils.findItemInHotbar(Items.SOUL_SOIL); + FindItemResult findSoulSand = InvUtils.findInHotbar(Items.SOUL_SAND); + if (!findSoulSand.found()) InvUtils.findInHotbar(Items.SOUL_SOIL); // Skull slot - int skullSlot = InvUtils.findItemInHotbar(Items.WITHER_SKELETON_SKULL); + FindItemResult findWitherSkull = InvUtils.findInHotbar(Items.WITHER_SKELETON_SKULL); - BlockUtils.place(blockPos, Hand.MAIN_HAND, soulSlot, rotate.get(), -50, true); - BlockUtils.place(blockPos.up(), Hand.MAIN_HAND, soulSlot, rotate.get(), -50, true); + BlockUtils.place(blockPos, findSoulSand, rotate.get(), -50, true); + BlockUtils.place(blockPos.up(), findSoulSand, rotate.get(), -50, true); if (direction == Direction.EAST || direction == Direction.WEST) { - BlockUtils.place(blockPos.up().north(), Hand.MAIN_HAND, soulSlot, rotate.get(), -50, true); - BlockUtils.place(blockPos.up().south(), Hand.MAIN_HAND, soulSlot, rotate.get(), -50, true); + BlockUtils.place(blockPos.up().north(), findSoulSand, rotate.get(), -50, true); + BlockUtils.place(blockPos.up().south(), findSoulSand, rotate.get(), -50, true); - BlockUtils.place(blockPos.up().up(), Hand.MAIN_HAND, skullSlot, rotate.get(), -50, true); - BlockUtils.place(blockPos.up().up().north(), Hand.MAIN_HAND, skullSlot, rotate.get(), -50, true); - BlockUtils.place(blockPos.up().up().south(), Hand.MAIN_HAND, skullSlot, rotate.get(), -50, true); + BlockUtils.place(blockPos.up().up(), findWitherSkull, rotate.get(), -50, true); + BlockUtils.place(blockPos.up().up().north(), findWitherSkull, rotate.get(), -50, true); + BlockUtils.place(blockPos.up().up().south(), findWitherSkull, rotate.get(), -50, true); } else if (direction == Direction.NORTH || direction == Direction.SOUTH) { - BlockUtils.place(blockPos.up().east(), Hand.MAIN_HAND, soulSlot, rotate.get(), -50, true); - BlockUtils.place(blockPos.up().west(), Hand.MAIN_HAND, soulSlot, rotate.get(), -50, true); + BlockUtils.place(blockPos.up().east(), findSoulSand, rotate.get(), -50, true); + BlockUtils.place(blockPos.up().west(), findSoulSand, rotate.get(), -50, true); - BlockUtils.place(blockPos.up().up(), Hand.MAIN_HAND, skullSlot, rotate.get(), -50, true); - BlockUtils.place(blockPos.up().up().east(), Hand.MAIN_HAND, skullSlot, rotate.get(), -50, true); - BlockUtils.place(blockPos.up().up().west(), Hand.MAIN_HAND, skullSlot, rotate.get(), -50, true); + BlockUtils.place(blockPos.up().up(), findWitherSkull, rotate.get(), -50, true); + BlockUtils.place(blockPos.up().up().east(), findWitherSkull, rotate.get(), -50, true); + BlockUtils.place(blockPos.up().up().west(), findWitherSkull, rotate.get(), -50, true); } } } diff --git a/src/main/java/cloudburst/rejects/modules/Lavacast.java b/src/main/java/cloudburst/rejects/modules/Lavacast.java index cb959ae..e21afd0 100644 --- a/src/main/java/cloudburst/rejects/modules/Lavacast.java +++ b/src/main/java/cloudburst/rejects/modules/Lavacast.java @@ -10,6 +10,7 @@ import minegame159.meteorclient.rendering.ShapeMode; import minegame159.meteorclient.settings.IntSetting; import minegame159.meteorclient.settings.Setting; import minegame159.meteorclient.settings.SettingGroup; +import minegame159.meteorclient.utils.player.FindItemResult; import minegame159.meteorclient.utils.player.InvUtils; import minegame159.meteorclient.utils.player.Rotations; import minegame159.meteorclient.utils.render.color.SettingColor; @@ -199,40 +200,40 @@ public class Lavacast extends Module { } private void placeLava() { - int slot = InvUtils.findItemInHotbar(Items.LAVA_BUCKET); - if (slot == -1) { + FindItemResult findItemResult = InvUtils.findInHotbar(Items.LAVA_BUCKET); + if (!findItemResult.found()) { error("No lava bucket found."); toggle(); return; } int prevSlot = mc.player.inventory.selectedSlot; - mc.player.inventory.selectedSlot = slot; + mc.player.inventory.selectedSlot = findItemResult.slot; mc.interactionManager.interactItem(mc.player,mc.world,Hand.MAIN_HAND); mc.player.inventory.selectedSlot = prevSlot; } private void placeWater() { - int slot = InvUtils.findItemInHotbar(Items.WATER_BUCKET); - if (slot == -1) { + FindItemResult findItemResult = InvUtils.findInHotbar(Items.WATER_BUCKET); + if (!findItemResult.found()) { error("No water bucket found."); toggle(); return; } int prevSlot = mc.player.inventory.selectedSlot; - mc.player.inventory.selectedSlot = slot; + mc.player.inventory.selectedSlot = findItemResult.slot; mc.interactionManager.interactItem(mc.player,mc.world,Hand.MAIN_HAND); mc.player.inventory.selectedSlot = prevSlot; } private void pickupLiquid() { - int slot = InvUtils.findItemInHotbar(Items.BUCKET); - if (slot == -1) { + FindItemResult findItemResult = InvUtils.findInHotbar(Items.BUCKET); + if (!findItemResult.found()) { error("No bucket found."); toggle(); return; } int prevSlot = mc.player.inventory.selectedSlot; - mc.player.inventory.selectedSlot = slot; + mc.player.inventory.selectedSlot = findItemResult.slot; mc.interactionManager.interactItem(mc.player,mc.world,Hand.MAIN_HAND); mc.player.inventory.selectedSlot = prevSlot; } diff --git a/src/main/java/cloudburst/rejects/modules/Painter.java b/src/main/java/cloudburst/rejects/modules/Painter.java index 6391c06..c36a1e9 100644 --- a/src/main/java/cloudburst/rejects/modules/Painter.java +++ b/src/main/java/cloudburst/rejects/modules/Painter.java @@ -6,12 +6,12 @@ import meteordevelopment.orbit.EventHandler; import minegame159.meteorclient.events.world.TickEvent; import minegame159.meteorclient.settings.*; import minegame159.meteorclient.systems.modules.Module; +import minegame159.meteorclient.utils.player.FindItemResult; import minegame159.meteorclient.utils.player.InvUtils; import minegame159.meteorclient.utils.world.BlockUtils; import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; -import net.minecraft.util.Hand; import net.minecraft.util.math.BlockPos; import java.util.ArrayList; @@ -94,8 +94,8 @@ public class Painter extends Module { else ticksWaited = 0; // Get slot - int slot = findSlot(block.get()); - if (slot == -1) { + FindItemResult findItemResult = InvUtils.findInHotbar(itemStack -> block.get() == Block.getBlockFromItem(itemStack.getItem())); + if (findItemResult.slot == -1) { error("No selected blocks in hotbar"); toggle(); return; @@ -108,17 +108,13 @@ public class Painter extends Module { // Place for (BlockPos blockPos : positions) { - BlockUtils.place(blockPos, Hand.MAIN_HAND, slot, rotate.get(), -100, false); + BlockUtils.place(blockPos, findItemResult, rotate.get(), -100, false); // Delay 0 if (delay.get() != 0) break; } } - private int findSlot(Block block) { - return InvUtils.findItemInHotbar(itemStack -> block == Block.getBlockFromItem(itemStack.getItem())); - } - private boolean shouldPlace(BlockPos blockPos, Block useBlock) { // Self if (!mc.world.getBlockState(blockPos).getMaterial().isReplaceable()) return false; diff --git a/src/main/java/cloudburst/rejects/modules/SpawnProofer.java b/src/main/java/cloudburst/rejects/modules/SpawnProofer.java index 9c21b51..c51c38c 100644 --- a/src/main/java/cloudburst/rejects/modules/SpawnProofer.java +++ b/src/main/java/cloudburst/rejects/modules/SpawnProofer.java @@ -6,12 +6,12 @@ import meteordevelopment.orbit.EventHandler; import minegame159.meteorclient.events.world.TickEvent; import minegame159.meteorclient.settings.*; import minegame159.meteorclient.systems.modules.Module; +import minegame159.meteorclient.utils.player.FindItemResult; import minegame159.meteorclient.utils.player.InvUtils; import minegame159.meteorclient.utils.world.BlockUtils; import net.minecraft.block.*; import net.minecraft.block.enums.BlockHalf; import net.minecraft.block.enums.SlabType; -import net.minecraft.util.Hand; import net.minecraft.util.math.BlockPos; import net.minecraft.util.registry.Registry; import net.minecraft.util.shape.VoxelShapes; @@ -87,8 +87,8 @@ public class SpawnProofer extends Module { } // Find slot - int slot = findSlot(); - if (slot == -1) { + FindItemResult findItemResult = InvUtils.findInHotbar(itemStack -> blocks.get().contains(Block.getBlockFromItem(itemStack.getItem()))); + if (!findItemResult.found()) { error("Found none of the chosen blocks in hotbar"); toggle(); return; @@ -105,12 +105,12 @@ public class SpawnProofer extends Module { // Place the blocks if (delay.get() == 0) { - for (BlockPos blockPos : positions) BlockUtils.place(blockPos, Hand.MAIN_HAND, slot, rotate.get(), -50, false); + for (BlockPos blockPos : positions) BlockUtils.place(blockPos, findItemResult, rotate.get(), -50, false); } else { // If is light source - if (isLightSource(Block.getBlockFromItem(mc.player.inventory.getStack(slot).getItem()))) { + if (isLightSource(Block.getBlockFromItem(mc.player.inventory.getStack(findItemResult.slot).getItem()))) { // Find lowest light level block int lowestLightLevel = 16; @@ -123,12 +123,12 @@ public class SpawnProofer extends Module { selectedBlockPos = blockPos; } } - BlockUtils.place(selectedBlockPos, Hand.MAIN_HAND, slot, rotate.get(), -50, false); + BlockUtils.place(selectedBlockPos, findItemResult, rotate.get(), -50, false); } else { // Place first in positions - BlockUtils.place(positions.get(0), Hand.MAIN_HAND, slot, rotate.get(), -50, false); + BlockUtils.place(positions.get(0), findItemResult, rotate.get(), -50, false); } } @@ -137,10 +137,6 @@ public class SpawnProofer extends Module { ticksWaited = 0; } - private int findSlot() { - return InvUtils.findItemInHotbar(itemStack -> blocks.get().contains(Block.getBlockFromItem(itemStack.getItem()))); - } - private boolean validSpawn(BlockPos blockPos) { // Copied from Light Overlay and modified slightly BlockState blockState = mc.world.getBlockState(blockPos); diff --git a/src/main/java/cloudburst/rejects/screens/InteractionScreen.java b/src/main/java/cloudburst/rejects/screens/InteractionScreen.java index bc99e61..bf9d690 100644 --- a/src/main/java/cloudburst/rejects/screens/InteractionScreen.java +++ b/src/main/java/cloudburst/rejects/screens/InteractionScreen.java @@ -1,38 +1,36 @@ package cloudburst.rejects.screens; -import java.awt.Point; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.function.Consumer; - import cloudburst.rejects.modules.InteractionMenu; +import com.mojang.blaze3d.platform.GlStateManager; +import com.mojang.blaze3d.systems.RenderSystem; import minegame159.meteorclient.systems.modules.Modules; import minegame159.meteorclient.utils.render.PeekScreen; - import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.screen.ChatScreen; +import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.ingame.InventoryScreen; import net.minecraft.client.options.KeyBinding; -import net.minecraft.entity.*; +import net.minecraft.client.util.InputUtil; +import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.entity.Entity; +import net.minecraft.entity.Saddleable; import net.minecraft.entity.mob.EndermanEntity; -import net.minecraft.entity.passive.*; +import net.minecraft.entity.passive.HorseBaseEntity; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.vehicle.StorageMinecartEntity; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; import net.minecraft.network.packet.c2s.play.PlayerInputC2SPacket; import net.minecraft.network.packet.c2s.play.PlayerInteractEntityC2SPacket; -import org.lwjgl.glfw.GLFW; - -import com.mojang.blaze3d.platform.GlStateManager; -import com.mojang.blaze3d.systems.RenderSystem; - -import net.minecraft.client.gui.screen.Screen; -import net.minecraft.client.util.InputUtil; -import net.minecraft.client.util.math.MatrixStack; import net.minecraft.text.LiteralText; import net.minecraft.util.Hand; import net.minecraft.util.math.MathHelper; +import org.lwjgl.glfw.GLFW; + +import java.awt.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.function.Consumer; public class InteractionScreen extends Screen { @@ -362,4 +360,4 @@ class Vector2 { private float getMag() { return (float) Math.sqrt(x * x + y * y); } -} \ No newline at end of file +}