Исходник AutoFarm (FunTime)

Начинающий
Статус
Оффлайн
Регистрация
22 Июл 2023
Сообщения
54
Реакции[?]
0
Поинты[?]
0
Работает быстрее чем в нищей дельте в 2-4 раза.
Пожалуйста, авторизуйтесь для просмотра ссылки.

Java:
public class AutoFarm extends Module {
    private final StopWatch stopWatchMain = new StopWatch();
    private final StopWatch stopWatch = new StopWatch();
    private boolean repair, exp;

    @Override
    public void toggle() {
        super.toggle();
        repair = false;
        exp = false;
    }

    @EventHandler
    public void onUpdate(UpdateEvent e) {
        List<Item> landingItems = List.of(Items.POTATO, Items.CARROT, Items.WHEAT_SEEDS, Items.BEETROOT_SEEDS);
        Slot hoeSlot = InvUtil.getInventorySlot(Items.NETHERITE_HOE);
        Slot expSlot = InvUtil.getInventorySlot(Items.EXPERIENCE_BOTTLE);
        Slot landingSlot = InvUtil.getInventorySlot(landingItems);
        int expCount = InvUtil.getInventoryCount(Items.EXPERIENCE_BOTTLE);
        Item mainHandItem = mc.player.getHeldItemMainhand().getItem();
        Item offHandItem = mc.player.getHeldItemOffhand().getItem();
        if (hoeSlot == null || MoveUtil.isMoving() || !stopWatchMain.finished(500)) return;

        float itemStrength = 1 - MathHelper.clamp((float) hoeSlot.getStack().getDamage() / (float) hoeSlot.getStack().getMaxDamage(), 0, 1);
        if (itemStrength < 0.05) {
            repair = true;
        } else if (itemStrength > 0.99 && repair) {
            stopWatchMain.reset();
            repair = false;
            exp = false;
            return;
        }
        exp = expCount >= 320 || expCount != 0 && exp;

        RotationComponent.update(new Rotation(Rotation.cameraYaw(), 90), 360, 360, 0, 5);
        if (mc.player.inventory.getFirstEmptyStack() == -1) {
            if (!landingItems.contains(offHandItem)) {
                InvUtil.clickSlot(landingSlot, 40, ClickType.SWAP, false);
                return;
            }
            if (mc.currentScreen instanceof ContainerScreen<?> screen) {
                if (screen.getTitle().getString().equals("● Выберите секцию")) {
                    InvUtil.clickSlotId(21, 0, ClickType.PICKUP, true);
                    return;
                }
                if (screen.getTitle().getString().equals("Скупщик еды")) {
                    int slotIdSell = offHandItem.equals(Items.CARROT) ? 10 : offHandItem.equals(Items.POTATO) ? 11 : offHandItem.equals(Items.BEETROOT_SEEDS) ? 12 : 14;
                    InvUtil.clickSlotId(slotIdSell, 0, ClickType.PICKUP, true);
                    return;
                }
            }
            if (stopWatch.finished(1000)) {
                mc.player.sendChatMessage("/buyer");
                stopWatch.reset();
            }
        } else if (repair) {
            if (exp) {
                if (mc.currentScreen instanceof ContainerScreen<?>) {
                    mc.player.closeScreen();
                    stopWatchMain.reset();
                } else if (mainHandItem.equals(Items.NETHERITE_HOE) && offHandItem.equals(Items.EXPERIENCE_BOTTLE)) {
                    mc.player.connection.sendPacket(new CPlayerTryUseItemPacket(Hand.OFF_HAND));
                } else {
                    if (!offHandItem.equals(Items.EXPERIENCE_BOTTLE)) {
                        InvUtil.clickSlot(expSlot, 40, ClickType.SWAP, false);
                    }
                    if (!mainHandItem.equals(Items.NETHERITE_HOE)) {
                        InvUtil.clickSlot(hoeSlot, mc.player.inventory.currentItem, ClickType.SWAP, false);
                    }
                }
            } else if (stopWatch.finished(800)) {
                if (mc.currentScreen instanceof ContainerScreen<?> screen) {
                    if (screen.getTitle().getString().contains("Пузырек опыта")) {
                        mc.player.openContainer.inventorySlots.stream().filter(s -> s.getStack().getTag() != null && s.slotNumber < 45)
                                .min(Comparator.comparingInt(s -> AutoBuyUtil.getPrice(s.getStack()) / s.getStack().getCount()))
                                .ifPresent(s -> InvUtil.clickSlot(s, 0, ClickType.QUICK_MOVE, true));
                        stopWatch.reset();
                        return;
                    } else if (screen.getTitle().getString().contains("Подозрительная цена")) {
                        InvUtil.clickSlotId(0, 0, ClickType.QUICK_MOVE, true);
                        stopWatch.reset();
                        return;
                    }
                }
                mc.player.sendChatMessage("/ah search Пузырёк Опыта");
                stopWatch.reset();
            }
        } else {
            BlockPos pos = mc.player.getPosition();
            if (mc.world.getBlockState(pos).getBlock().equals(Blocks.FARMLAND)) {
                if (mainHandItem.equals(Items.NETHERITE_HOE) && landingItems.contains(offHandItem)) {
                    mc.player.connection.sendPacket(new CPlayerTryUseItemOnBlockPacket(Hand.OFF_HAND, new BlockRayTraceResult(mc.player.getPositionVec(), Direction.UP, pos, false)));
                    mc.player.connection.sendPacket(new CPlayerTryUseItemOnBlockPacket(Hand.MAIN_HAND, new BlockRayTraceResult(mc.player.getPositionVec(), Direction.UP, pos.up(), false)));
                    mc.player.connection.sendPacket(new CPlayerTryUseItemOnBlockPacket(Hand.MAIN_HAND, new BlockRayTraceResult(mc.player.getPositionVec(), Direction.UP, pos.up(), false)));
                    mc.player.connection.sendPacket(new CPlayerTryUseItemOnBlockPacket(Hand.MAIN_HAND, new BlockRayTraceResult(mc.player.getPositionVec(), Direction.UP, pos.up(), false)));
                    mc.player.connection.sendPacket(new CPlayerDiggingPacket(CPlayerDiggingPacket.Action.START_DESTROY_BLOCK, pos.up(), Direction.UP));
                } else {
                    if (mc.currentScreen instanceof ContainerScreen<?>) {
                        mc.player.closeScreen();
                        stopWatchMain.reset();
                        return;
                    }
                    if (!mainHandItem.equals(Items.NETHERITE_HOE)) {
                        InvUtil.clickSlot(hoeSlot, mc.player.inventory.currentItem, ClickType.SWAP, false);
                    }
                    if (!landingItems.contains(offHandItem)) {
                        InvUtil.clickSlot(landingSlot, 40, ClickType.SWAP, false);
                    }
                }
            }
        }
    }
}
фабос единственый кто делать что-то норамольное на югейме. Удалить этот форум у типов которые засоряют всё с своём скиде нурика на 3.1
 
Начинающий
Статус
Оффлайн
Регистрация
10 Фев 2024
Сообщения
181
Реакции[?]
2
Поинты[?]
2K
Работает быстрее чем в нищей дельте в 2-4 раза.
Пожалуйста, авторизуйтесь для просмотра ссылки.

Java:
public class AutoFarm extends Module {
    private final StopWatch stopWatchMain = new StopWatch();
    private final StopWatch stopWatch = new StopWatch();
    private boolean repair, exp;

    @Override
    public void toggle() {
        super.toggle();
        repair = false;
        exp = false;
    }

    @EventHandler
    public void onUpdate(UpdateEvent e) {
        List<Item> landingItems = List.of(Items.POTATO, Items.CARROT, Items.WHEAT_SEEDS, Items.BEETROOT_SEEDS);
        Slot hoeSlot = InvUtil.getInventorySlot(Items.NETHERITE_HOE);
        Slot expSlot = InvUtil.getInventorySlot(Items.EXPERIENCE_BOTTLE);
        Slot landingSlot = InvUtil.getInventorySlot(landingItems);
        int expCount = InvUtil.getInventoryCount(Items.EXPERIENCE_BOTTLE);
        Item mainHandItem = mc.player.getHeldItemMainhand().getItem();
        Item offHandItem = mc.player.getHeldItemOffhand().getItem();
        if (hoeSlot == null || MoveUtil.isMoving() || !stopWatchMain.finished(500)) return;

        float itemStrength = 1 - MathHelper.clamp((float) hoeSlot.getStack().getDamage() / (float) hoeSlot.getStack().getMaxDamage(), 0, 1);
        if (itemStrength < 0.05) {
            repair = true;
        } else if (itemStrength > 0.99 && repair) {
            stopWatchMain.reset();
            repair = false;
            exp = false;
            return;
        }
        exp = expCount >= 320 || expCount != 0 && exp;

        RotationComponent.update(new Rotation(Rotation.cameraYaw(), 90), 360, 360, 0, 5);
        if (mc.player.inventory.getFirstEmptyStack() == -1) {
            if (!landingItems.contains(offHandItem)) {
                InvUtil.clickSlot(landingSlot, 40, ClickType.SWAP, false);
                return;
            }
            if (mc.currentScreen instanceof ContainerScreen<?> screen) {
                if (screen.getTitle().getString().equals("● Выберите секцию")) {
                    InvUtil.clickSlotId(21, 0, ClickType.PICKUP, true);
                    return;
                }
                if (screen.getTitle().getString().equals("Скупщик еды")) {
                    int slotIdSell = offHandItem.equals(Items.CARROT) ? 10 : offHandItem.equals(Items.POTATO) ? 11 : offHandItem.equals(Items.BEETROOT_SEEDS) ? 12 : 14;
                    InvUtil.clickSlotId(slotIdSell, 0, ClickType.PICKUP, true);
                    return;
                }
            }
            if (stopWatch.finished(1000)) {
                mc.player.sendChatMessage("/buyer");
                stopWatch.reset();
            }
        } else if (repair) {
            if (exp) {
                if (mc.currentScreen instanceof ContainerScreen<?>) {
                    mc.player.closeScreen();
                    stopWatchMain.reset();
                } else if (mainHandItem.equals(Items.NETHERITE_HOE) && offHandItem.equals(Items.EXPERIENCE_BOTTLE)) {
                    mc.player.connection.sendPacket(new CPlayerTryUseItemPacket(Hand.OFF_HAND));
                } else {
                    if (!offHandItem.equals(Items.EXPERIENCE_BOTTLE)) {
                        InvUtil.clickSlot(expSlot, 40, ClickType.SWAP, false);
                    }
                    if (!mainHandItem.equals(Items.NETHERITE_HOE)) {
                        InvUtil.clickSlot(hoeSlot, mc.player.inventory.currentItem, ClickType.SWAP, false);
                    }
                }
            } else if (stopWatch.finished(800)) {
                if (mc.currentScreen instanceof ContainerScreen<?> screen) {
                    if (screen.getTitle().getString().contains("Пузырек опыта")) {
                        mc.player.openContainer.inventorySlots.stream().filter(s -> s.getStack().getTag() != null && s.slotNumber < 45)
                                .min(Comparator.comparingInt(s -> AutoBuyUtil.getPrice(s.getStack()) / s.getStack().getCount()))
                                .ifPresent(s -> InvUtil.clickSlot(s, 0, ClickType.QUICK_MOVE, true));
                        stopWatch.reset();
                        return;
                    } else if (screen.getTitle().getString().contains("Подозрительная цена")) {
                        InvUtil.clickSlotId(0, 0, ClickType.QUICK_MOVE, true);
                        stopWatch.reset();
                        return;
                    }
                }
                mc.player.sendChatMessage("/ah search Пузырёк Опыта");
                stopWatch.reset();
            }
        } else {
            BlockPos pos = mc.player.getPosition();
            if (mc.world.getBlockState(pos).getBlock().equals(Blocks.FARMLAND)) {
                if (mainHandItem.equals(Items.NETHERITE_HOE) && landingItems.contains(offHandItem)) {
                    mc.player.connection.sendPacket(new CPlayerTryUseItemOnBlockPacket(Hand.OFF_HAND, new BlockRayTraceResult(mc.player.getPositionVec(), Direction.UP, pos, false)));
                    mc.player.connection.sendPacket(new CPlayerTryUseItemOnBlockPacket(Hand.MAIN_HAND, new BlockRayTraceResult(mc.player.getPositionVec(), Direction.UP, pos.up(), false)));
                    mc.player.connection.sendPacket(new CPlayerTryUseItemOnBlockPacket(Hand.MAIN_HAND, new BlockRayTraceResult(mc.player.getPositionVec(), Direction.UP, pos.up(), false)));
                    mc.player.connection.sendPacket(new CPlayerTryUseItemOnBlockPacket(Hand.MAIN_HAND, new BlockRayTraceResult(mc.player.getPositionVec(), Direction.UP, pos.up(), false)));
                    mc.player.connection.sendPacket(new CPlayerDiggingPacket(CPlayerDiggingPacket.Action.START_DESTROY_BLOCK, pos.up(), Direction.UP));
                } else {
                    if (mc.currentScreen instanceof ContainerScreen<?>) {
                        mc.player.closeScreen();
                        stopWatchMain.reset();
                        return;
                    }
                    if (!mainHandItem.equals(Items.NETHERITE_HOE)) {
                        InvUtil.clickSlot(hoeSlot, mc.player.inventory.currentItem, ClickType.SWAP, false);
                    }
                    if (!landingItems.contains(offHandItem)) {
                        InvUtil.clickSlot(landingSlot, 40, ClickType.SWAP, false);
                    }
                }
            }
        }
    }
}
Только позавчера делал..
 
Начинающий
Статус
Оффлайн
Регистрация
9 Дек 2023
Сообщения
5
Реакции[?]
0
Поинты[?]
0
Работает быстрее чем в нищей дельте в 2-4 раза.
Пожалуйста, авторизуйтесь для просмотра ссылки.

Java:
public class AutoFarm extends Module {
    private final StopWatch stopWatchMain = new StopWatch();
    private final StopWatch stopWatch = new StopWatch();
    private boolean repair, exp;

    @Override
    public void toggle() {
        super.toggle();
        repair = false;
        exp = false;
    }

    @EventHandler
    public void onUpdate(UpdateEvent e) {
        List<Item> landingItems = List.of(Items.POTATO, Items.CARROT, Items.WHEAT_SEEDS, Items.BEETROOT_SEEDS);
        Slot hoeSlot = InvUtil.getInventorySlot(Items.NETHERITE_HOE);
        Slot expSlot = InvUtil.getInventorySlot(Items.EXPERIENCE_BOTTLE);
        Slot landingSlot = InvUtil.getInventorySlot(landingItems);
        int expCount = InvUtil.getInventoryCount(Items.EXPERIENCE_BOTTLE);
        Item mainHandItem = mc.player.getHeldItemMainhand().getItem();
        Item offHandItem = mc.player.getHeldItemOffhand().getItem();
        if (hoeSlot == null || MoveUtil.isMoving() || !stopWatchMain.finished(500)) return;

        float itemStrength = 1 - MathHelper.clamp((float) hoeSlot.getStack().getDamage() / (float) hoeSlot.getStack().getMaxDamage(), 0, 1);
        if (itemStrength < 0.05) {
            repair = true;
        } else if (itemStrength > 0.99 && repair) {
            stopWatchMain.reset();
            repair = false;
            exp = false;
            return;
        }
        exp = expCount >= 320 || expCount != 0 && exp;

        RotationComponent.update(new Rotation(Rotation.cameraYaw(), 90), 360, 360, 0, 5);
        if (mc.player.inventory.getFirstEmptyStack() == -1) {
            if (!landingItems.contains(offHandItem)) {
                InvUtil.clickSlot(landingSlot, 40, ClickType.SWAP, false);
                return;
            }
            if (mc.currentScreen instanceof ContainerScreen<?> screen) {
                if (screen.getTitle().getString().equals("● Выберите секцию")) {
                    InvUtil.clickSlotId(21, 0, ClickType.PICKUP, true);
                    return;
                }
                if (screen.getTitle().getString().equals("Скупщик еды")) {
                    int slotIdSell = offHandItem.equals(Items.CARROT) ? 10 : offHandItem.equals(Items.POTATO) ? 11 : offHandItem.equals(Items.BEETROOT_SEEDS) ? 12 : 14;
                    InvUtil.clickSlotId(slotIdSell, 0, ClickType.PICKUP, true);
                    return;
                }
            }
            if (stopWatch.finished(1000)) {
                mc.player.sendChatMessage("/buyer");
                stopWatch.reset();
            }
        } else if (repair) {
            if (exp) {
                if (mc.currentScreen instanceof ContainerScreen<?>) {
                    mc.player.closeScreen();
                    stopWatchMain.reset();
                } else if (mainHandItem.equals(Items.NETHERITE_HOE) && offHandItem.equals(Items.EXPERIENCE_BOTTLE)) {
                    mc.player.connection.sendPacket(new CPlayerTryUseItemPacket(Hand.OFF_HAND));
                } else {
                    if (!offHandItem.equals(Items.EXPERIENCE_BOTTLE)) {
                        InvUtil.clickSlot(expSlot, 40, ClickType.SWAP, false);
                    }
                    if (!mainHandItem.equals(Items.NETHERITE_HOE)) {
                        InvUtil.clickSlot(hoeSlot, mc.player.inventory.currentItem, ClickType.SWAP, false);
                    }
                }
            } else if (stopWatch.finished(800)) {
                if (mc.currentScreen instanceof ContainerScreen<?> screen) {
                    if (screen.getTitle().getString().contains("Пузырек опыта")) {
                        mc.player.openContainer.inventorySlots.stream().filter(s -> s.getStack().getTag() != null && s.slotNumber < 45)
                                .min(Comparator.comparingInt(s -> AutoBuyUtil.getPrice(s.getStack()) / s.getStack().getCount()))
                                .ifPresent(s -> InvUtil.clickSlot(s, 0, ClickType.QUICK_MOVE, true));
                        stopWatch.reset();
                        return;
                    } else if (screen.getTitle().getString().contains("Подозрительная цена")) {
                        InvUtil.clickSlotId(0, 0, ClickType.QUICK_MOVE, true);
                        stopWatch.reset();
                        return;
                    }
                }
                mc.player.sendChatMessage("/ah search Пузырёк Опыта");
                stopWatch.reset();
            }
        } else {
            BlockPos pos = mc.player.getPosition();
            if (mc.world.getBlockState(pos).getBlock().equals(Blocks.FARMLAND)) {
                if (mainHandItem.equals(Items.NETHERITE_HOE) && landingItems.contains(offHandItem)) {
                    mc.player.connection.sendPacket(new CPlayerTryUseItemOnBlockPacket(Hand.OFF_HAND, new BlockRayTraceResult(mc.player.getPositionVec(), Direction.UP, pos, false)));
                    mc.player.connection.sendPacket(new CPlayerTryUseItemOnBlockPacket(Hand.MAIN_HAND, new BlockRayTraceResult(mc.player.getPositionVec(), Direction.UP, pos.up(), false)));
                    mc.player.connection.sendPacket(new CPlayerTryUseItemOnBlockPacket(Hand.MAIN_HAND, new BlockRayTraceResult(mc.player.getPositionVec(), Direction.UP, pos.up(), false)));
                    mc.player.connection.sendPacket(new CPlayerTryUseItemOnBlockPacket(Hand.MAIN_HAND, new BlockRayTraceResult(mc.player.getPositionVec(), Direction.UP, pos.up(), false)));
                    mc.player.connection.sendPacket(new CPlayerDiggingPacket(CPlayerDiggingPacket.Action.START_DESTROY_BLOCK, pos.up(), Direction.UP));
                } else {
                    if (mc.currentScreen instanceof ContainerScreen<?>) {
                        mc.player.closeScreen();
                        stopWatchMain.reset();
                        return;
                    }
                    if (!mainHandItem.equals(Items.NETHERITE_HOE)) {
                        InvUtil.clickSlot(hoeSlot, mc.player.inventory.currentItem, ClickType.SWAP, false);
                    }
                    if (!landingItems.contains(offHandItem)) {
                        InvUtil.clickSlot(landingSlot, 40, ClickType.SWAP, false);
                    }
                }
            }
        }
    }
}
Имба, все работает, а также помог
 
Начинающий
Статус
Оффлайн
Регистрация
14 Июл 2024
Сообщения
279
Реакции[?]
2
Поинты[?]
1K
Начинающий
Статус
Оффлайн
Регистрация
9 Дек 2023
Сообщения
5
Реакции[?]
0
Поинты[?]
0
Ты гений? Одинаковые айди слотов просто slotId !=buttonId
У меня кароче не свмо здает морковку и стопиться на мееюшке выберете раздел, и тцпо обновлять, а и еще я не ухожу в плюч, ток в минус какото
 
Сверху Снизу