Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Часть функционала AutoDange (Медный) FunTime новый

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
15 Ноя 2025
Сообщения
132
Реакции
0
Выберите загрузчик игры
  1. Fabric
Ориг тема noad
Я дальше считаю что фулл безполезно но может пригодиться как-то
Пожалуйста, авторизуйтесь для просмотра ссылки.
- смотрите роботает также но для медного данжа
Работает так, под новую хуйню с кд


Лутает из сундука с табличкой инвизку, тепается на /home, там лутает бочки и ломает вазы, после того как слутал что-то после кд он тепается на /darena, потом на /clan home storage, выкладывается и все повторяется заново. Настройки лута нету, лутает все чё найдет.


сиси:
Expand Collapse Copy
package baritone.helper;
//ай хуесосы ебаные ооо валтер вайт
import baritone.api.BaritoneAPI;
import baritone.api.pathing.goals.GoalRunAway;
import net.fabricmc.api.ClientModInitializer;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
import net.minecraft.block.Blocks;
import net.minecraft.block.entity.ChestBlockEntity;
import net.minecraft.block.entity.SignBlockEntity;
import net.minecraft.block.entity.BlockEntity;
import net.minecraft.client.MinecraftClient;
import net.minecraft.item.Items;
import net.minecraft.item.ItemStack;
import net.minecraft.screen.ChestScreenHandler;
import net.minecraft.screen.slot.SlotActionType;
import net.minecraft.util.Hand;
import net.minecraft.util.hit.BlockHitResult;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Direction;
import net.minecraft.util.math.Vec3d;

import java.util.ArrayList;
import java.util.List;

public class AutoLooter implements ClientModInitializer {
    private static final MinecraftClient mc = MinecraftClient.getInstance();
    private static final int ESCAPE_DISTANCE = 50;
    private enum State {
        GET_INVIS, WAIT_HOME, LOOTING,
        WAIT_COOLDOWN,
        ESCAPE,         
        WAIT_ESCAPE, 
        USE_DARENA, WAIT_DARENA, CLAN_HOME, WAIT_CLAN_STORAGE, DEPOSIT
    }
    private State currentState = State.GET_INVIS;
    private int timer = 0;
    private boolean running = true;
    private BlockPos targetChest = null;
    private BlockPos lootPos = null;
    private int noLootCounter = 0;
    @Override
    public void onInitializeClient() {
        ClientTickEvents.END_CLIENT_TICK.register(client -> {
            if (mc.player == null || mc.world == null || !running) return;
            switch (currentState) {
                case GET_INVIS -> getInvisibilityPotions();
                case WAIT_HOME -> {
                    if (--timer <= 0) {
                        mc.player.sendChatMessage("/home");
                        currentState = State.LOOTING;
                    }
                }
                case LOOTING -> lootEverything();
                case WAIT_COOLDOWN -> {
                    if (--timer <= 0) {
                        currentState = State.ESCAPE;
                    }
                }
                case ESCAPE -> {
                    BlockPos from = lootPos != null ? lootPos : mc.player.getBlockPos();
                    BaritoneAPI.getProvider().getPrimaryBaritone()
                        .getCustomGoalProcess()
                        .setGoalAndPath(new GoalRunAway(ESCAPE_DISTANCE, from));
                    currentState = State.WAIT_ESCAPE;
                }
                case WAIT_ESCAPE -> {
                    boolean arrived = !BaritoneAPI.getProvider()
                        .getPrimaryBaritone().getCustomGoalProcess().isActive();
                    if (arrived) {
                        BaritoneAPI.getProvider().getPrimaryBaritone()
                            .getPathingBehavior().cancelEverything();
                        currentState = State.USE_DARENA;
                    }
                }
                case USE_DARENA -> {
                    mc.player.sendChatMessage("/darena");
                    currentState = State.WAIT_DARENA;
                    timer = 20;
                }
                case WAIT_DARENA -> {
                    if (--timer <= 0) {
                        clickPufferfish();
                        currentState = State.CLAN_HOME;
                        timer = 60;
                    }
                }
                case CLAN_HOME -> {
                    if (--timer <= 0) {
                        mc.player.sendChatMessage("/clan home storage");
                        currentState = State.WAIT_CLAN_STORAGE;
                        timer = 160;
                    }
                }
                case WAIT_CLAN_STORAGE -> {
                    if (--timer <= 0) {
                        timer = 30;
                        currentState = State.DEPOSIT;
                    }
                }
                case DEPOSIT -> depositAllItems();
            }
        });
    }
    private void getInvisibilityPotions() {
        if (targetChest == null) {
            for (BlockEntity entity : mc.world.blockEntities) {
                if (entity instanceof ChestBlockEntity) {
                    BlockPos pos = entity.getPos();
                    for (BlockEntity signEntity : mc.world.blockEntities) {
                        if (signEntity instanceof SignBlockEntity sign && sign.getPos().equals(pos.up())) {
                            String text = sign.getTextOnRow(0, false).getString().toLowerCase();
                            if (text.contains("inv") || text.contains("инвиз")) {
                                targetChest = pos;
                                break;
                            }
                        }
                    }
                }
            }
        }
        if (targetChest != null && mc.player.currentScreenHandler instanceof ChestScreenHandler chest) {
            for (int i = 0; i < chest.getInventory().size(); i++) {
                ItemStack stack = chest.getInventory().getStack(i);
                if (!stack.isEmpty() && (stack.getItem() == Items.POTION || stack.getItem() == Items.SPLASH_POTION)) {
                    String name = stack.getName().getString().toLowerCase();
                    if (name.contains("invis") || name.contains("невидимости")) {
                        mc.interactionManager.clickSlot(chest.syncId, i, 0, SlotActionType.QUICK_MOVE, mc.player);
                        currentState = State.WAIT_HOME;
                        timer = 160;
                        return;
                    }
                }
            }
            if (isInventoryFull()) running = false;
        } else if (targetChest != null) {
            Vec3d hitVec = new Vec3d(targetChest.getX() + 0.5, targetChest.getY() + 0.5, targetChest.getZ() + 0.5);
            mc.interactionManager.interactBlock(mc.player, Hand.MAIN_HAND,
                new BlockHitResult(hitVec, Direction.UP, targetChest, false));
        } else {
            running = false;
        }
    }
    private void lootEverything() {
        boolean looted = false;
        for (BlockEntity entity : mc.world.blockEntities) {
            if (entity instanceof ChestBlockEntity && !entity.getPos().equals(targetChest)) {
                if (lootChestAt(entity.getPos())) looted = true;
            }
        }
        if (!looted) {
            for (BlockPos pos : findVases()) {
                if (breakVase(pos)) looted = true;
            }
        }
        if (looted) {
            noLootCounter = 0;
            lootPos = mc.player.getBlockPos();
            currentState = State.WAIT_COOLDOWN;
            timer = 600;
        } else {
            if (++noLootCounter > 5) running = false;
        }
    }
    private boolean lootChestAt(BlockPos pos) {
        if (mc.player.squaredDistanceTo(pos.getX(), pos.getY(), pos.getZ()) > 625) return false;
        Vec3d hitVec = new Vec3d(pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5);
        mc.interactionManager.interactBlock(mc.player, Hand.MAIN_HAND,
            new BlockHitResult(hitVec, Direction.UP, pos, false));
        if (mc.player.currentScreenHandler instanceof ChestScreenHandler chest) {
            for (int i = 0; i < chest.getInventory().size(); i++) {
                if (!chest.getInventory().getStack(i).isEmpty())
                    mc.interactionManager.clickSlot(chest.syncId, i, 0, SlotActionType.QUICK_MOVE, mc.player);
            }
            mc.player.closeHandledScreen();
            return true;
        }
        return false;
    }
    private List<BlockPos> findVases() {
        List<BlockPos> list = new ArrayList<>();
        BlockPos p = mc.player.getBlockPos();
        for (int x = -10; x <= 10; x++)
            for (int z = -10; z <= 10; z++)
                for (int y = -5; y <= 5; y++) {
                    BlockPos pos = p.add(x, y, z);
                    if (mc.world.getBlockState(pos).getBlock() == Blocks.FLOWER_POT)
                        list.add(pos);
                }
        return list;
    }
    private boolean breakVase(BlockPos pos) {
        if (mc.player.squaredDistanceTo(pos.getX(), pos.getY(), pos.getZ()) > 100) return false;
        mc.interactionManager.attackBlock(pos, mc.player);
        mc.player.swingHand(Hand.MAIN_HAND);
        return true;
    }
    private void clickPufferfish() {
        if (mc.player.currentScreenHandler instanceof ChestScreenHandler chest) {
            for (int i = 0; i < chest.getInventory().size(); i++) {
                ItemStack stack = chest.getInventory().getStack(i);
                if (!stack.isEmpty() && stack.getItem() == Items.PUFFERFISH) {
                    mc.interactionManager.clickSlot(chest.syncId, i, 0, SlotActionType.PICKUP, mc.player);
                    mc.interactionManager.clickSlot(chest.syncId, i, 0, SlotActionType.PICKUP, mc.player);
                    break;
                }
            }
            mc.player.closeHandledScreen();
        }
    }
    private void depositAllItems() {
        boolean deposited = false;
        for (BlockEntity entity : mc.world.blockEntities) {
            if (entity instanceof ChestBlockEntity && !entity.getPos().equals(targetChest))
                if (depositToContainer(entity.getPos())) deposited = true;
        }
        if (deposited || --timer <= 0) {
            currentState = State.GET_INVIS;
            timer = 0;
        }
    }
    private boolean depositToContainer(BlockPos pos) {
        if (mc.player.squaredDistanceTo(pos.getX(), pos.getY(), pos.getZ()) > 100) return false;
        Vec3d hitVec = new Vec3d(pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5);
        mc.interactionManager.interactBlock(mc.player, Hand.MAIN_HAND,
            new BlockHitResult(hitVec, Direction.UP, pos, false));
        if (mc.player.currentScreenHandler instanceof ChestScreenHandler chest) {
            for (int i = 0; i < chest.getInventory().size(); i++) {
                if (chest.getInventory().getStack(i).isEmpty()) {
                    for (int j = 9; j < 36; j++) {
                        ItemStack inv = mc.player.getInventory().getStack(j);
                        if (!inv.isEmpty() && !isExcludedItem(inv)) {
                            mc.interactionManager.clickSlot(chest.syncId, i, 0, SlotActionType.QUICK_MOVE, mc.player);
                            break;
                        }
                    }
                }
            }
            mc.player.closeHandledScreen();
            return true;
        }
        return false;
    }
    private boolean isExcludedItem(ItemStack stack) {
        return stack.getItem() == Items.POTION ||
               (stack.getItem() == Items.SPLASH_POTION &&
                stack.getName().getString().toLowerCase().contains("invis"));
    }
    private boolean isInventoryFull() {
        for (int i = 9; i < 36; i++)
            if (mc.player.getInventory().getStack(i).isEmpty()) return false;
        return true;
    }
}
 
Ориг тема noad
Я дальше считаю что фулл безполезно но может пригодиться как-то
Пожалуйста, авторизуйтесь для просмотра ссылки.
- смотрите роботает также но для медного данжа
Работает так, под новую хуйню с кд


Лутает из сундука с табличкой инвизку, тепается на /home, там лутает бочки и ломает вазы, после того как слутал что-то после кд он тепается на /darena, потом на /clan home storage, выкладывается и все повторяется заново. Настройки лута нету, лутает все чё найдет.


сиси:
Expand Collapse Copy
package baritone.helper;
//ай хуесосы ебаные ооо валтер вайт
import baritone.api.BaritoneAPI;
import baritone.api.pathing.goals.GoalRunAway;
import net.fabricmc.api.ClientModInitializer;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
import net.minecraft.block.Blocks;
import net.minecraft.block.entity.ChestBlockEntity;
import net.minecraft.block.entity.SignBlockEntity;
import net.minecraft.block.entity.BlockEntity;
import net.minecraft.client.MinecraftClient;
import net.minecraft.item.Items;
import net.minecraft.item.ItemStack;
import net.minecraft.screen.ChestScreenHandler;
import net.minecraft.screen.slot.SlotActionType;
import net.minecraft.util.Hand;
import net.minecraft.util.hit.BlockHitResult;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Direction;
import net.minecraft.util.math.Vec3d;

import java.util.ArrayList;
import java.util.List;

public class AutoLooter implements ClientModInitializer {
    private static final MinecraftClient mc = MinecraftClient.getInstance();
    private static final int ESCAPE_DISTANCE = 50;
    private enum State {
        GET_INVIS, WAIT_HOME, LOOTING,
        WAIT_COOLDOWN,
        ESCAPE,        
        WAIT_ESCAPE,
        USE_DARENA, WAIT_DARENA, CLAN_HOME, WAIT_CLAN_STORAGE, DEPOSIT
    }
    private State currentState = State.GET_INVIS;
    private int timer = 0;
    private boolean running = true;
    private BlockPos targetChest = null;
    private BlockPos lootPos = null;
    private int noLootCounter = 0;
    @Override
    public void onInitializeClient() {
        ClientTickEvents.END_CLIENT_TICK.register(client -> {
            if (mc.player == null || mc.world == null || !running) return;
            switch (currentState) {
                case GET_INVIS -> getInvisibilityPotions();
                case WAIT_HOME -> {
                    if (--timer <= 0) {
                        mc.player.sendChatMessage("/home");
                        currentState = State.LOOTING;
                    }
                }
                case LOOTING -> lootEverything();
                case WAIT_COOLDOWN -> {
                    if (--timer <= 0) {
                        currentState = State.ESCAPE;
                    }
                }
                case ESCAPE -> {
                    BlockPos from = lootPos != null ? lootPos : mc.player.getBlockPos();
                    BaritoneAPI.getProvider().getPrimaryBaritone()
                        .getCustomGoalProcess()
                        .setGoalAndPath(new GoalRunAway(ESCAPE_DISTANCE, from));
                    currentState = State.WAIT_ESCAPE;
                }
                case WAIT_ESCAPE -> {
                    boolean arrived = !BaritoneAPI.getProvider()
                        .getPrimaryBaritone().getCustomGoalProcess().isActive();
                    if (arrived) {
                        BaritoneAPI.getProvider().getPrimaryBaritone()
                            .getPathingBehavior().cancelEverything();
                        currentState = State.USE_DARENA;
                    }
                }
                case USE_DARENA -> {
                    mc.player.sendChatMessage("/darena");
                    currentState = State.WAIT_DARENA;
                    timer = 20;
                }
                case WAIT_DARENA -> {
                    if (--timer <= 0) {
                        clickPufferfish();
                        currentState = State.CLAN_HOME;
                        timer = 60;
                    }
                }
                case CLAN_HOME -> {
                    if (--timer <= 0) {
                        mc.player.sendChatMessage("/clan home storage");
                        currentState = State.WAIT_CLAN_STORAGE;
                        timer = 160;
                    }
                }
                case WAIT_CLAN_STORAGE -> {
                    if (--timer <= 0) {
                        timer = 30;
                        currentState = State.DEPOSIT;
                    }
                }
                case DEPOSIT -> depositAllItems();
            }
        });
    }
    private void getInvisibilityPotions() {
        if (targetChest == null) {
            for (BlockEntity entity : mc.world.blockEntities) {
                if (entity instanceof ChestBlockEntity) {
                    BlockPos pos = entity.getPos();
                    for (BlockEntity signEntity : mc.world.blockEntities) {
                        if (signEntity instanceof SignBlockEntity sign && sign.getPos().equals(pos.up())) {
                            String text = sign.getTextOnRow(0, false).getString().toLowerCase();
                            if (text.contains("inv") || text.contains("инвиз")) {
                                targetChest = pos;
                                break;
                            }
                        }
                    }
                }
            }
        }
        if (targetChest != null && mc.player.currentScreenHandler instanceof ChestScreenHandler chest) {
            for (int i = 0; i < chest.getInventory().size(); i++) {
                ItemStack stack = chest.getInventory().getStack(i);
                if (!stack.isEmpty() && (stack.getItem() == Items.POTION || stack.getItem() == Items.SPLASH_POTION)) {
                    String name = stack.getName().getString().toLowerCase();
                    if (name.contains("invis") || name.contains("невидимости")) {
                        mc.interactionManager.clickSlot(chest.syncId, i, 0, SlotActionType.QUICK_MOVE, mc.player);
                        currentState = State.WAIT_HOME;
                        timer = 160;
                        return;
                    }
                }
            }
            if (isInventoryFull()) running = false;
        } else if (targetChest != null) {
            Vec3d hitVec = new Vec3d(targetChest.getX() + 0.5, targetChest.getY() + 0.5, targetChest.getZ() + 0.5);
            mc.interactionManager.interactBlock(mc.player, Hand.MAIN_HAND,
                new BlockHitResult(hitVec, Direction.UP, targetChest, false));
        } else {
            running = false;
        }
    }
    private void lootEverything() {
        boolean looted = false;
        for (BlockEntity entity : mc.world.blockEntities) {
            if (entity instanceof ChestBlockEntity && !entity.getPos().equals(targetChest)) {
                if (lootChestAt(entity.getPos())) looted = true;
            }
        }
        if (!looted) {
            for (BlockPos pos : findVases()) {
                if (breakVase(pos)) looted = true;
            }
        }
        if (looted) {
            noLootCounter = 0;
            lootPos = mc.player.getBlockPos();
            currentState = State.WAIT_COOLDOWN;
            timer = 600;
        } else {
            if (++noLootCounter > 5) running = false;
        }
    }
    private boolean lootChestAt(BlockPos pos) {
        if (mc.player.squaredDistanceTo(pos.getX(), pos.getY(), pos.getZ()) > 625) return false;
        Vec3d hitVec = new Vec3d(pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5);
        mc.interactionManager.interactBlock(mc.player, Hand.MAIN_HAND,
            new BlockHitResult(hitVec, Direction.UP, pos, false));
        if (mc.player.currentScreenHandler instanceof ChestScreenHandler chest) {
            for (int i = 0; i < chest.getInventory().size(); i++) {
                if (!chest.getInventory().getStack(i).isEmpty())
                    mc.interactionManager.clickSlot(chest.syncId, i, 0, SlotActionType.QUICK_MOVE, mc.player);
            }
            mc.player.closeHandledScreen();
            return true;
        }
        return false;
    }
    private List<BlockPos> findVases() {
        List<BlockPos> list = new ArrayList<>();
        BlockPos p = mc.player.getBlockPos();
        for (int x = -10; x <= 10; x++)
            for (int z = -10; z <= 10; z++)
                for (int y = -5; y <= 5; y++) {
                    BlockPos pos = p.add(x, y, z);
                    if (mc.world.getBlockState(pos).getBlock() == Blocks.FLOWER_POT)
                        list.add(pos);
                }
        return list;
    }
    private boolean breakVase(BlockPos pos) {
        if (mc.player.squaredDistanceTo(pos.getX(), pos.getY(), pos.getZ()) > 100) return false;
        mc.interactionManager.attackBlock(pos, mc.player);
        mc.player.swingHand(Hand.MAIN_HAND);
        return true;
    }
    private void clickPufferfish() {
        if (mc.player.currentScreenHandler instanceof ChestScreenHandler chest) {
            for (int i = 0; i < chest.getInventory().size(); i++) {
                ItemStack stack = chest.getInventory().getStack(i);
                if (!stack.isEmpty() && stack.getItem() == Items.PUFFERFISH) {
                    mc.interactionManager.clickSlot(chest.syncId, i, 0, SlotActionType.PICKUP, mc.player);
                    mc.interactionManager.clickSlot(chest.syncId, i, 0, SlotActionType.PICKUP, mc.player);
                    break;
                }
            }
            mc.player.closeHandledScreen();
        }
    }
    private void depositAllItems() {
        boolean deposited = false;
        for (BlockEntity entity : mc.world.blockEntities) {
            if (entity instanceof ChestBlockEntity && !entity.getPos().equals(targetChest))
                if (depositToContainer(entity.getPos())) deposited = true;
        }
        if (deposited || --timer <= 0) {
            currentState = State.GET_INVIS;
            timer = 0;
        }
    }
    private boolean depositToContainer(BlockPos pos) {
        if (mc.player.squaredDistanceTo(pos.getX(), pos.getY(), pos.getZ()) > 100) return false;
        Vec3d hitVec = new Vec3d(pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5);
        mc.interactionManager.interactBlock(mc.player, Hand.MAIN_HAND,
            new BlockHitResult(hitVec, Direction.UP, pos, false));
        if (mc.player.currentScreenHandler instanceof ChestScreenHandler chest) {
            for (int i = 0; i < chest.getInventory().size(); i++) {
                if (chest.getInventory().getStack(i).isEmpty()) {
                    for (int j = 9; j < 36; j++) {
                        ItemStack inv = mc.player.getInventory().getStack(j);
                        if (!inv.isEmpty() && !isExcludedItem(inv)) {
                            mc.interactionManager.clickSlot(chest.syncId, i, 0, SlotActionType.QUICK_MOVE, mc.player);
                            break;
                        }
                    }
                }
            }
            mc.player.closeHandledScreen();
            return true;
        }
        return false;
    }
    private boolean isExcludedItem(ItemStack stack) {
        return stack.getItem() == Items.POTION ||
               (stack.getItem() == Items.SPLASH_POTION &&
                stack.getName().getString().toLowerCase().contains("invis"));
    }
    private boolean isInventoryFull() {
        for (int i = 9; i < 36; i++)
            if (mc.player.getInventory().getStack(i).isEmpty()) return false;
        return true;
    }
}
Как обход работает? лень видео школьника смотреть
 
Как обход работает? лень видео школьника смотреть
Когда залутал убегает от игроков в протеположную сторону а если нету игроков стоит там где стоял
 
Назад
Сверху Снизу