• Ищем качественного (не новичок) разработчиков Xenforo для этого форума! В идеале, чтобы ты был фулл стек программистом. Если у тебя есть что показать, то свяжись с нами по контактным данным: https://t.me/DREDD

Обход античита Spider FT рабочий вроде Expensive 3.1/Zovchik ready

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

Пожалуйста, авторизуйтесь для просмотра ссылки.


Осторожно Chatgpt code:
Expand Collapse Copy
package dev.zovchik.modules.impl.movement;

import com.google.common.eventbus.Subscribe;
import dev.zovchik.events.EventMotion;
import dev.zovchik.events.EventPacket;
import dev.zovchik.events.EventUpdate;
import dev.zovchik.modules.api.Category;
import dev.zovchik.modules.api.Module;
import dev.zovchik.modules.api.ModuleRegister;
import dev.zovchik.modules.settings.impl.BooleanSetting;
import dev.zovchik.modules.settings.impl.ModeSetting;
import dev.zovchik.modules.settings.impl.SliderSetting;
import dev.zovchik.utils.math.StopWatch;
import dev.zovchik.utils.player.MouseUtil;
import dev.zovchik.utils.player.MoveUtils;
import net.minecraft.inventory.container.ClickType;
import net.minecraft.item.BlockItem;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.network.IPacket;
import net.minecraft.network.play.client.CEntityActionPacket;
import net.minecraft.network.play.server.SEntityMetadataPacket;
import net.minecraft.network.play.server.SPlayerPositionLookPacket;
import net.minecraft.util.Hand;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.BlockRayTraceResult;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.vector.Vector3d;

@ModuleRegister(name = "Spider", category = Category.Movement, description = "Позволяет лазить по стенам разными способами, включая размещение бамбука")
public class Spider extends Module {
    public ModeSetting mode = new ModeSetting("Mode", "Grim", "Grim", "Grim 2", "Matrix", "Elytra", "Bamboo");
    private final SliderSetting spiderSpeed = new SliderSetting("Скорость", 2.0f, 1.0f, 10.0f, 0.05f).setVisible(() -> mode.is("Matrix") || mode.is("Bamboo"));
    private final BooleanSetting bypass = new BooleanSetting("Обход", true).setVisible(() -> mode.is("Elytra"));
    StopWatch stopWatch = new StopWatch();
    int oldItem = -1;
    int oldItem1 = -1;
    int i;
    long speed;

    public Spider() {
        addSettings(mode, bypass, spiderSpeed);
    }

    [USER=1474073]@Subscribe[/USER]
    private void onMotion(EventMotion motion) {
        switch (mode.get()) {
            case "Matrix" -> {
                if (!mc.player.collidedHorizontally) {
                    return;
                }
                long speed = MathHelper.clamp(500 - (spiderSpeed.get().longValue() / 2 * 100), 0, 500);
                if (stopWatch.isReached(speed)) {
                    motion.setOnGround(true);
                    mc.player.setOnGround(true);
                    mc.player.collidedVertically = true;
                    mc.player.collidedHorizontally = true;
                    mc.player.isAirBorne = true;
                    mc.player.jump();
                    stopWatch.reset();
                }
            }
            case "Grim" -> {
                int slot = getBambooSlot();
                if (slot == -1) {
                    slot = getSlotInInventoryOrHotbar(true);
                    if (slot == -1) {
                        print("Бамбук или блоки не найдены!");
                        toggle();
                        return;
                    }
                }
                if (!mc.player.collidedHorizontally) {
                    return;
                }
                if (mc.player.isOnGround()) {
                    motion.setOnGround(true);
                    mc.player.setOnGround(true);
                    mc.player.jump();
                }
                if (mc.player.fallDistance > 0 && mc.player.fallDistance < 2) {
                    placeBlocksOrBamboo(motion, slot);
                }
            }
            case "Grim 2" -> {
                if (!mc.player.isOnGround()) {
                    speed = (long) MathHelper.clamp(500L - spiderSpeed.get() / 2L * 100L, 0L, 500L);
                    if (this.stopWatch.isReached(speed)) {
                        mc.gameSettings.keyBindSneak.setPressed(true);
                        motion.setOnGround(true);
                        mc.player.setOnGround(true);
                        mc.player.collidedVertically = true;
                        mc.player.collidedHorizontally = true;
                        mc.player.isAirBorne = true;
                        if (mc.player.fallDistance != 0.0F) {
                            mc.gameSettings.keyBindForward.setPressed(true);
                            mc.gameSettings.keyBindForward.setPressed(false);
                        }
                        mc.player.jump();
                        mc.gameSettings.keyBindSneak.setPressed(false);
                        this.stopWatch.reset();
                    }
                }
            }
            case "Elytra" -> {
                motion.setPitch(0.0F);
                mc.player.rotationPitchHead = 0.0F;
            }
            case "Bamboo" -> {
                // Проверяем, сталкивается ли игрок со стеной
                if (!mc.player.collidedHorizontally) {
                    return;
                }
                // Ищем бамбук в инвентаре
                int bambooSlot = getBambooSlot();
                if (bambooSlot == -1) {
                    print("Бамбук не найден в инвентаре!");
                    toggle();
                    return;
                }
                // Определяем позицию игрока
                BlockPos playerPos = new BlockPos(mc.player.getPosX(), mc.player.getPosY(), mc.player.getPosZ());
                // Находим верхний блок бамбука в текущем стебле
                BlockPos bambooPos = findTopBamboo(playerPos);
                if (bambooPos == null) {
                    // Если бамбука нет, размещаем начальный блок под игроком
                    placeBamboo(motion, bambooSlot, playerPos.down());
                } else {
                    // Проверяем, насколько игрок близко к верхнему блоку бамбука
                    double distanceToTop = mc.player.getPosY() - bambooPos.getY();
                    if (distanceToTop > 0.5 && distanceToTop < 1.5) {
                        // Размещаем новый бамбук над текущим верхним блоком
                        placeBamboo(motion, bambooSlot, bambooPos.up());
                    }
                }
                // Управляем скоростью лазания
                long speed = MathHelper.clamp(300 - (spiderSpeed.get().longValue() / 2 * 100), 0, 300);
                if (stopWatch.isReached(speed)) {
                    // Имитируем лазание по лестнице
                    motion.setOnGround(true);
                    mc.player.setOnGround(true);
                    mc.player.jump();
                    mc.player.fallDistance = 0;
                    stopWatch.reset();
                }
            }
        }
    }

    [USER=1474073]@Subscribe[/USER]
    public void onUpdate(EventUpdate e) {
        if (mode.is("Elytra")) {
            if (!bypass.get()) {
                for (i = 0; i < 9; ++i) {
                    if (mc.player.inventory.getStackInSlot(i).getItem() == Items.ELYTRA && !mc.player.isOnGround() && mc.player.collidedHorizontally && mc.player.fallDistance == 0.0F) {
                        mc.playerController.windowClick(0, 6, i, ClickType.SWAP, mc.player);
                        mc.player.connection.sendPacket(new CEntityActionPacket(mc.player, CEntityActionPacket.Action.START_FALL_FLYING));
                        MoveUtils.setMotion(0.06);
                        mc.player.motion.y = 0.366;
                        mc.playerController.windowClick(0, 6, i, ClickType.SWAP, mc.player);
                        this.oldItem = i;
                    }
                }
            } else {
                if (((ItemStack)mc.player.inventory.armorInventory.get(2)).getItem() != Items.ELYTRA && mc.player.collidedHorizontally) {
                    for(i = 0; i < 9; ++i) {
                        if (mc.player.inventory.getStackInSlot(i).getItem() == Items.ELYTRA) {
                            mc.playerController.windowClick(0, 6, i, ClickType.SWAP, mc.player);
                            this.oldItem1 = i;
                            this.stopWatch.reset();
                        }
                    }
                }
                if (mc.player.collidedHorizontally) {
                    mc.gameSettings.keyBindJump.setPressed(false);
                    if (this.stopWatch.isReached(180L)) {
                        mc.gameSettings.keyBindJump.setPressed(true);
                    }
                }
                if (((ItemStack)mc.player.inventory.armorInventory.get(2)).getItem() == Items.ELYTRA && !mc.player.collidedHorizontally && this.oldItem1 != -1) {
                    mc.playerController.windowClick(0, 6, this.oldItem1, ClickType.SWAP, mc.player);
                    this.oldItem1 = -1;
                }
                if (((ItemStack)mc.player.inventory.armorInventory.get(2)).getItem() == Items.ELYTRA && !mc.player.isOnGround() && mc.player.collidedHorizontally) {
                    if (mc.player.fallDistance != 0.0F) {
                        return;
                    }
                    mc.player.connection.sendPacket(new CEntityActionPacket(mc.player, CEntityActionPacket.Action.START_FALL_FLYING));
                    MoveUtils.setMotion(0.02);
                    mc.player.motion.y = 0.36;
                }
            }
        }
    }

    [USER=1474073]@Subscribe[/USER]
    public void onPacket(EventPacket e) {
        if (mode.is("Elytra")) {
            if (!bypass.get()) {
                IPacket var4 = e.getPacket();
                if (var4 instanceof SPlayerPositionLookPacket) {
                    SPlayerPositionLookPacket p = (SPlayerPositionLookPacket) var4;
                    mc.player.func_242277_a(new Vector3d(p.getX(), p.getY(), p.getZ()));
                    mc.player.setRawPosition(p.getX(), p.getY(), p.getZ());
                    return;
                }
                if (e.getPacket() instanceof SEntityMetadataPacket && ((SEntityMetadataPacket) e.getPacket()).getEntityId() == mc.player.getEntityId()) {
                    e.cancel();
                }
            } else {
                if (e.getPacket() instanceof SEntityMetadataPacket && ((SEntityMetadataPacket) e.getPacket()).getEntityId() == mc.player.getEntityId()) {
                    e.cancel();
                }
            }
        }
    }

    private void placeBlocksOrBamboo(EventMotion motion, int slot) {
        int last = mc.player.inventory.currentItem;
        mc.player.inventory.currentItem = slot;
        motion.setPitch(80);
        motion.setYaw(mc.player.getHorizontalFacing().getHorizontalAngle());
        BlockRayTraceResult r = (BlockRayTraceResult) MouseUtil.rayTrace(4, motion.getYaw(), motion.getPitch(), mc.player);
        mc.player.swingArm(Hand.MAIN_HAND);
        mc.playerController.processRightClickBlock(mc.player, mc.world, Hand.MAIN_HAND, r);
        mc.player.inventory.currentItem = last;
        mc.player.fallDistance = 0;
    }

    private void placeBamboo(EventMotion motion, int slot, BlockPos targetPos) {
        // Сохраняем текущий выбранный слот
        int last = mc.player.inventory.currentItem;
        mc.player.inventory.currentItem = slot;
        // Вычисляем направление взгляда для точного размещения бамбука
        Vector3d target = new Vector3d(targetPos.getX() + 0.5, targetPos.getY(), targetPos.getZ() + 0.5);
        Vector3d playerPos = mc.player.getPositionVec();
        Vector3d lookVec = target.subtract(playerPos).normalize();
        float yaw = (float) Math.toDegrees(Math.atan2(lookVec.x, lookVec.z));
        float pitch = (float) Math.toDegrees(-Math.asin(lookVec.y));
        motion.setYaw(yaw);
        motion.setPitch(pitch);
        // Выполняем трассировку луча для размещения блока
        BlockRayTraceResult rayTrace = (BlockRayTraceResult) MouseUtil.rayTrace(4, yaw, pitch, mc.player);
        mc.player.swingArm(Hand.MAIN_HAND);
        mc.playerController.processRightClickBlock(mc.player, mc.world, Hand.MAIN_HAND, rayTrace);
        // Восстанавливаем исходный слот
        mc.player.inventory.currentItem = last;
    }

    private BlockPos findTopBamboo(BlockPos startPos) {
        // Начинаем с позиции игрока
        BlockPos current = startPos;
        // Ищем основание стебля бамбука, спускаясь вниз
        while (mc.world.getBlockState(current).getBlock() == net.minecraft.block.Blocks.BAMBOO && current.getY() > 0) {
            current = current.down();
        }
        // Возвращаемся на один блок вверх, чтобы найти нижний бамбук
        current = current.up();
        if (mc.world.getBlockState(current).getBlock() != net.minecraft.block.Blocks.BAMBOO) {
            return null; // Бамбук не найден
        }
        // Ищем верхний блок бамбука, поднимаясь вверх
        while (mc.world.getBlockState(current.up()).getBlock() == net.minecraft.block.Blocks.BAMBOO && current.getY() < 256) {
            current = current.up();
        }
        return current;
    }

    private int getSlotInInventoryOrHotbar(boolean inHotBar) {
        int firstSlot = inHotBar ? 0 : 9;
        int lastSlot = inHotBar ? 9 : 36;
        int finalSlot = -1;
        for (int i = firstSlot; i < lastSlot; i++) {
            if (mc.player.inventory.getStackInSlot(i).getItem() == Items.TORCH) {
                continue;
            }
            if (mc.player.inventory.getStackInSlot(i).getItem() instanceof BlockItem
                    || mc.player.inventory.getStackInSlot(i).getItem() == Items.WATER_BUCKET) {
                finalSlot = i;
            }
        }
        return finalSlot;
    }

    private int getBambooSlot() {
        // Проверяем слоты в хотбаре на наличие бамбука
        for (int i = 0; i < 9; i++) {
            ItemStack stack = mc.player.inventory.getStackInSlot(i);
            if (stack.getItem() == Items.BAMBOO) {
                return i;
            }
        }
        return -1;
    }

    [USER=1367676]@override[/USER]
    public void onDisable() {
        super.onDisable();
        mc.player.fallDistance = 0;
        mc.gameSettings.keyBindSneak.setPressed(false);
        mc.gameSettings.keyBindJump.setPressed(false);
        mc.gameSettings.keyBindForward.setPressed(false);
        if (oldItem != -1) {
            mc.player.inventory.currentItem = oldItem;
            oldItem = -1;
        }
        if (oldItem1 != -1) {
            mc.playerController.windowClick(0, 6, oldItem1, ClickType.SWAP, mc.player);
            oldItem1 = -1;
        }
    }
}
Если сс не грузит то вот второй сс
 
Последнее редактирование:
/del вообще полная какшка
 
вроде норм а вроде хуйня
 
Решил залить спайдер покормить пастеров хоть я сам такой-же

Пожалуйста, авторизуйтесь для просмотра ссылки.


Осторожно Chatgpt code:
Expand Collapse Copy
package dev.zovchik.modules.impl.movement;

import com.google.common.eventbus.Subscribe;
import dev.zovchik.events.EventMotion;
import dev.zovchik.events.EventPacket;
import dev.zovchik.events.EventUpdate;
import dev.zovchik.modules.api.Category;
import dev.zovchik.modules.api.Module;
import dev.zovchik.modules.api.ModuleRegister;
import dev.zovchik.modules.settings.impl.BooleanSetting;
import dev.zovchik.modules.settings.impl.ModeSetting;
import dev.zovchik.modules.settings.impl.SliderSetting;
import dev.zovchik.utils.math.StopWatch;
import dev.zovchik.utils.player.MouseUtil;
import dev.zovchik.utils.player.MoveUtils;
import net.minecraft.inventory.container.ClickType;
import net.minecraft.item.BlockItem;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.network.IPacket;
import net.minecraft.network.play.client.CEntityActionPacket;
import net.minecraft.network.play.server.SEntityMetadataPacket;
import net.minecraft.network.play.server.SPlayerPositionLookPacket;
import net.minecraft.util.Hand;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.BlockRayTraceResult;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.vector.Vector3d;

@ModuleRegister(name = "Spider", category = Category.Movement, description = "Позволяет лазить по стенам разными способами, включая размещение бамбука")
public class Spider extends Module {
    public ModeSetting mode = new ModeSetting("Mode", "Grim", "Grim", "Grim 2", "Matrix", "Elytra", "Bamboo");
    private final SliderSetting spiderSpeed = new SliderSetting("Скорость", 2.0f, 1.0f, 10.0f, 0.05f).setVisible(() -> mode.is("Matrix") || mode.is("Bamboo"));
    private final BooleanSetting bypass = new BooleanSetting("Обход", true).setVisible(() -> mode.is("Elytra"));
    StopWatch stopWatch = new StopWatch();
    int oldItem = -1;
    int oldItem1 = -1;
    int i;
    long speed;

    public Spider() {
        addSettings(mode, bypass, spiderSpeed);
    }

    [USER=1474073]@Subscribe[/USER]
    private void onMotion(EventMotion motion) {
        switch (mode.get()) {
            case "Matrix" -> {
                if (!mc.player.collidedHorizontally) {
                    return;
                }
                long speed = MathHelper.clamp(500 - (spiderSpeed.get().longValue() / 2 * 100), 0, 500);
                if (stopWatch.isReached(speed)) {
                    motion.setOnGround(true);
                    mc.player.setOnGround(true);
                    mc.player.collidedVertically = true;
                    mc.player.collidedHorizontally = true;
                    mc.player.isAirBorne = true;
                    mc.player.jump();
                    stopWatch.reset();
                }
            }
            case "Grim" -> {
                int slot = getBambooSlot();
                if (slot == -1) {
                    slot = getSlotInInventoryOrHotbar(true);
                    if (slot == -1) {
                        print("Бамбук или блоки не найдены!");
                        toggle();
                        return;
                    }
                }
                if (!mc.player.collidedHorizontally) {
                    return;
                }
                if (mc.player.isOnGround()) {
                    motion.setOnGround(true);
                    mc.player.setOnGround(true);
                    mc.player.jump();
                }
                if (mc.player.fallDistance > 0 && mc.player.fallDistance < 2) {
                    placeBlocksOrBamboo(motion, slot);
                }
            }
            case "Grim 2" -> {
                if (!mc.player.isOnGround()) {
                    speed = (long) MathHelper.clamp(500L - spiderSpeed.get() / 2L * 100L, 0L, 500L);
                    if (this.stopWatch.isReached(speed)) {
                        mc.gameSettings.keyBindSneak.setPressed(true);
                        motion.setOnGround(true);
                        mc.player.setOnGround(true);
                        mc.player.collidedVertically = true;
                        mc.player.collidedHorizontally = true;
                        mc.player.isAirBorne = true;
                        if (mc.player.fallDistance != 0.0F) {
                            mc.gameSettings.keyBindForward.setPressed(true);
                            mc.gameSettings.keyBindForward.setPressed(false);
                        }
                        mc.player.jump();
                        mc.gameSettings.keyBindSneak.setPressed(false);
                        this.stopWatch.reset();
                    }
                }
            }
            case "Elytra" -> {
                motion.setPitch(0.0F);
                mc.player.rotationPitchHead = 0.0F;
            }
            case "Bamboo" -> {
                // Проверяем, сталкивается ли игрок со стеной
                if (!mc.player.collidedHorizontally) {
                    return;
                }
                // Ищем бамбук в инвентаре
                int bambooSlot = getBambooSlot();
                if (bambooSlot == -1) {
                    print("Бамбук не найден в инвентаре!");
                    toggle();
                    return;
                }
                // Определяем позицию игрока
                BlockPos playerPos = new BlockPos(mc.player.getPosX(), mc.player.getPosY(), mc.player.getPosZ());
                // Находим верхний блок бамбука в текущем стебле
                BlockPos bambooPos = findTopBamboo(playerPos);
                if (bambooPos == null) {
                    // Если бамбука нет, размещаем начальный блок под игроком
                    placeBamboo(motion, bambooSlot, playerPos.down());
                } else {
                    // Проверяем, насколько игрок близко к верхнему блоку бамбука
                    double distanceToTop = mc.player.getPosY() - bambooPos.getY();
                    if (distanceToTop > 0.5 && distanceToTop < 1.5) {
                        // Размещаем новый бамбук над текущим верхним блоком
                        placeBamboo(motion, bambooSlot, bambooPos.up());
                    }
                }
                // Управляем скоростью лазания
                long speed = MathHelper.clamp(300 - (spiderSpeed.get().longValue() / 2 * 100), 0, 300);
                if (stopWatch.isReached(speed)) {
                    // Имитируем лазание по лестнице
                    motion.setOnGround(true);
                    mc.player.setOnGround(true);
                    mc.player.jump();
                    mc.player.fallDistance = 0;
                    stopWatch.reset();
                }
            }
        }
    }

    [USER=1474073]@Subscribe[/USER]
    public void onUpdate(EventUpdate e) {
        if (mode.is("Elytra")) {
            if (!bypass.get()) {
                for (i = 0; i < 9; ++i) {
                    if (mc.player.inventory.getStackInSlot(i).getItem() == Items.ELYTRA && !mc.player.isOnGround() && mc.player.collidedHorizontally && mc.player.fallDistance == 0.0F) {
                        mc.playerController.windowClick(0, 6, i, ClickType.SWAP, mc.player);
                        mc.player.connection.sendPacket(new CEntityActionPacket(mc.player, CEntityActionPacket.Action.START_FALL_FLYING));
                        MoveUtils.setMotion(0.06);
                        mc.player.motion.y = 0.366;
                        mc.playerController.windowClick(0, 6, i, ClickType.SWAP, mc.player);
                        this.oldItem = i;
                    }
                }
            } else {
                if (((ItemStack)mc.player.inventory.armorInventory.get(2)).getItem() != Items.ELYTRA && mc.player.collidedHorizontally) {
                    for(i = 0; i < 9; ++i) {
                        if (mc.player.inventory.getStackInSlot(i).getItem() == Items.ELYTRA) {
                            mc.playerController.windowClick(0, 6, i, ClickType.SWAP, mc.player);
                            this.oldItem1 = i;
                            this.stopWatch.reset();
                        }
                    }
                }
                if (mc.player.collidedHorizontally) {
                    mc.gameSettings.keyBindJump.setPressed(false);
                    if (this.stopWatch.isReached(180L)) {
                        mc.gameSettings.keyBindJump.setPressed(true);
                    }
                }
                if (((ItemStack)mc.player.inventory.armorInventory.get(2)).getItem() == Items.ELYTRA && !mc.player.collidedHorizontally && this.oldItem1 != -1) {
                    mc.playerController.windowClick(0, 6, this.oldItem1, ClickType.SWAP, mc.player);
                    this.oldItem1 = -1;
                }
                if (((ItemStack)mc.player.inventory.armorInventory.get(2)).getItem() == Items.ELYTRA && !mc.player.isOnGround() && mc.player.collidedHorizontally) {
                    if (mc.player.fallDistance != 0.0F) {
                        return;
                    }
                    mc.player.connection.sendPacket(new CEntityActionPacket(mc.player, CEntityActionPacket.Action.START_FALL_FLYING));
                    MoveUtils.setMotion(0.02);
                    mc.player.motion.y = 0.36;
                }
            }
        }
    }

    [USER=1474073]@Subscribe[/USER]
    public void onPacket(EventPacket e) {
        if (mode.is("Elytra")) {
            if (!bypass.get()) {
                IPacket var4 = e.getPacket();
                if (var4 instanceof SPlayerPositionLookPacket) {
                    SPlayerPositionLookPacket p = (SPlayerPositionLookPacket) var4;
                    mc.player.func_242277_a(new Vector3d(p.getX(), p.getY(), p.getZ()));
                    mc.player.setRawPosition(p.getX(), p.getY(), p.getZ());
                    return;
                }
                if (e.getPacket() instanceof SEntityMetadataPacket && ((SEntityMetadataPacket) e.getPacket()).getEntityId() == mc.player.getEntityId()) {
                    e.cancel();
                }
            } else {
                if (e.getPacket() instanceof SEntityMetadataPacket && ((SEntityMetadataPacket) e.getPacket()).getEntityId() == mc.player.getEntityId()) {
                    e.cancel();
                }
            }
        }
    }

    private void placeBlocksOrBamboo(EventMotion motion, int slot) {
        int last = mc.player.inventory.currentItem;
        mc.player.inventory.currentItem = slot;
        motion.setPitch(80);
        motion.setYaw(mc.player.getHorizontalFacing().getHorizontalAngle());
        BlockRayTraceResult r = (BlockRayTraceResult) MouseUtil.rayTrace(4, motion.getYaw(), motion.getPitch(), mc.player);
        mc.player.swingArm(Hand.MAIN_HAND);
        mc.playerController.processRightClickBlock(mc.player, mc.world, Hand.MAIN_HAND, r);
        mc.player.inventory.currentItem = last;
        mc.player.fallDistance = 0;
    }

    private void placeBamboo(EventMotion motion, int slot, BlockPos targetPos) {
        // Сохраняем текущий выбранный слот
        int last = mc.player.inventory.currentItem;
        mc.player.inventory.currentItem = slot;
        // Вычисляем направление взгляда для точного размещения бамбука
        Vector3d target = new Vector3d(targetPos.getX() + 0.5, targetPos.getY(), targetPos.getZ() + 0.5);
        Vector3d playerPos = mc.player.getPositionVec();
        Vector3d lookVec = target.subtract(playerPos).normalize();
        float yaw = (float) Math.toDegrees(Math.atan2(lookVec.x, lookVec.z));
        float pitch = (float) Math.toDegrees(-Math.asin(lookVec.y));
        motion.setYaw(yaw);
        motion.setPitch(pitch);
        // Выполняем трассировку луча для размещения блока
        BlockRayTraceResult rayTrace = (BlockRayTraceResult) MouseUtil.rayTrace(4, yaw, pitch, mc.player);
        mc.player.swingArm(Hand.MAIN_HAND);
        mc.playerController.processRightClickBlock(mc.player, mc.world, Hand.MAIN_HAND, rayTrace);
        // Восстанавливаем исходный слот
        mc.player.inventory.currentItem = last;
    }

    private BlockPos findTopBamboo(BlockPos startPos) {
        // Начинаем с позиции игрока
        BlockPos current = startPos;
        // Ищем основание стебля бамбука, спускаясь вниз
        while (mc.world.getBlockState(current).getBlock() == net.minecraft.block.Blocks.BAMBOO && current.getY() > 0) {
            current = current.down();
        }
        // Возвращаемся на один блок вверх, чтобы найти нижний бамбук
        current = current.up();
        if (mc.world.getBlockState(current).getBlock() != net.minecraft.block.Blocks.BAMBOO) {
            return null; // Бамбук не найден
        }
        // Ищем верхний блок бамбука, поднимаясь вверх
        while (mc.world.getBlockState(current.up()).getBlock() == net.minecraft.block.Blocks.BAMBOO && current.getY() < 256) {
            current = current.up();
        }
        return current;
    }

    private int getSlotInInventoryOrHotbar(boolean inHotBar) {
        int firstSlot = inHotBar ? 0 : 9;
        int lastSlot = inHotBar ? 9 : 36;
        int finalSlot = -1;
        for (int i = firstSlot; i < lastSlot; i++) {
            if (mc.player.inventory.getStackInSlot(i).getItem() == Items.TORCH) {
                continue;
            }
            if (mc.player.inventory.getStackInSlot(i).getItem() instanceof BlockItem
                    || mc.player.inventory.getStackInSlot(i).getItem() == Items.WATER_BUCKET) {
                finalSlot = i;
            }
        }
        return finalSlot;
    }

    private int getBambooSlot() {
        // Проверяем слоты в хотбаре на наличие бамбука
        for (int i = 0; i < 9; i++) {
            ItemStack stack = mc.player.inventory.getStackInSlot(i);
            if (stack.getItem() == Items.BAMBOO) {
                return i;
            }
        }
        return -1;
    }

    [USER=1367676]@override[/USER]
    public void onDisable() {
        super.onDisable();
        mc.player.fallDistance = 0;
        mc.gameSettings.keyBindSneak.setPressed(false);
        mc.gameSettings.keyBindJump.setPressed(false);
        mc.gameSettings.keyBindForward.setPressed(false);
        if (oldItem != -1) {
            mc.player.inventory.currentItem = oldItem;
            oldItem = -1;
        }
        if (oldItem1 != -1) {
            mc.playerController.windowClick(0, 6, oldItem1, ClickType.SWAP, mc.player);
            oldItem1 = -1;
        }
    }
}
Если сс не грузит то вот второй сс
говнище тебя убьют быстрее чем ты заберёшься
 
сука че за хуета
 
/del хуета
 
"жду пастеров", пацанчик ты че ебнулся?) ты сам посмотри на свой пиздец, а не код, а про юзабельность функции я вообще молчу
 
Точно не чат гпт отвечаю
Пранк:
Expand Collapse Copy
// Проверяем, сталкивается ли игрок со стеной

                if (!mc.player.collidedHorizontally) {

                    return;

                }

                // Ищем бамбук в инвентаре

                int bambooSlot = getBambooSlot();

                if (bambooSlot == -1) {

                    print("Бамбук не найден в инвентаре!");

                    toggle();

                    return;

                }

                // Определяем позицию игрока

                BlockPos playerPos = new BlockPos(mc.player.getPosX(), mc.player.getPosY(), mc.player.getPosZ());

                // Находим верхний блок бамбука в текущем стебле

                BlockPos bambooPos = findTopBamboo(playerPos);

                if (bambooPos == null) {

                    // Если бамбука нет, размещаем начальный блок под игроком

                    placeBamboo(motion, bambooSlot, playerPos.down());

                } else {

                    // Проверяем, насколько игрок близко к верхнему блоку бамбука

                    double distanceToTop = mc.player.getPosY() - bambooPos.getY();

                    if (distanceToTop > 0.5 && distanceToTop < 1.5) {

                        // Размещаем новый бамбук над текущим верхним блоком
Ещё в хрюкер оно было чел прост с дампа выкачал и доработал
 
Решил залить спайдер покормить пастеров хоть я сам такой-же

Пожалуйста, авторизуйтесь для просмотра ссылки.


Осторожно Chatgpt code:
Expand Collapse Copy
package dev.zovchik.modules.impl.movement;

import com.google.common.eventbus.Subscribe;
import dev.zovchik.events.EventMotion;
import dev.zovchik.events.EventPacket;
import dev.zovchik.events.EventUpdate;
import dev.zovchik.modules.api.Category;
import dev.zovchik.modules.api.Module;
import dev.zovchik.modules.api.ModuleRegister;
import dev.zovchik.modules.settings.impl.BooleanSetting;
import dev.zovchik.modules.settings.impl.ModeSetting;
import dev.zovchik.modules.settings.impl.SliderSetting;
import dev.zovchik.utils.math.StopWatch;
import dev.zovchik.utils.player.MouseUtil;
import dev.zovchik.utils.player.MoveUtils;
import net.minecraft.inventory.container.ClickType;
import net.minecraft.item.BlockItem;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.network.IPacket;
import net.minecraft.network.play.client.CEntityActionPacket;
import net.minecraft.network.play.server.SEntityMetadataPacket;
import net.minecraft.network.play.server.SPlayerPositionLookPacket;
import net.minecraft.util.Hand;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.BlockRayTraceResult;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.vector.Vector3d;

@ModuleRegister(name = "Spider", category = Category.Movement, description = "Позволяет лазить по стенам разными способами, включая размещение бамбука")
public class Spider extends Module {
    public ModeSetting mode = new ModeSetting("Mode", "Grim", "Grim", "Grim 2", "Matrix", "Elytra", "Bamboo");
    private final SliderSetting spiderSpeed = new SliderSetting("Скорость", 2.0f, 1.0f, 10.0f, 0.05f).setVisible(() -> mode.is("Matrix") || mode.is("Bamboo"));
    private final BooleanSetting bypass = new BooleanSetting("Обход", true).setVisible(() -> mode.is("Elytra"));
    StopWatch stopWatch = new StopWatch();
    int oldItem = -1;
    int oldItem1 = -1;
    int i;
    long speed;

    public Spider() {
        addSettings(mode, bypass, spiderSpeed);
    }

    [USER=1474073]@Subscribe[/USER]
    private void onMotion(EventMotion motion) {
        switch (mode.get()) {
            case "Matrix" -> {
                if (!mc.player.collidedHorizontally) {
                    return;
                }
                long speed = MathHelper.clamp(500 - (spiderSpeed.get().longValue() / 2 * 100), 0, 500);
                if (stopWatch.isReached(speed)) {
                    motion.setOnGround(true);
                    mc.player.setOnGround(true);
                    mc.player.collidedVertically = true;
                    mc.player.collidedHorizontally = true;
                    mc.player.isAirBorne = true;
                    mc.player.jump();
                    stopWatch.reset();
                }
            }
            case "Grim" -> {
                int slot = getBambooSlot();
                if (slot == -1) {
                    slot = getSlotInInventoryOrHotbar(true);
                    if (slot == -1) {
                        print("Бамбук или блоки не найдены!");
                        toggle();
                        return;
                    }
                }
                if (!mc.player.collidedHorizontally) {
                    return;
                }
                if (mc.player.isOnGround()) {
                    motion.setOnGround(true);
                    mc.player.setOnGround(true);
                    mc.player.jump();
                }
                if (mc.player.fallDistance > 0 && mc.player.fallDistance < 2) {
                    placeBlocksOrBamboo(motion, slot);
                }
            }
            case "Grim 2" -> {
                if (!mc.player.isOnGround()) {
                    speed = (long) MathHelper.clamp(500L - spiderSpeed.get() / 2L * 100L, 0L, 500L);
                    if (this.stopWatch.isReached(speed)) {
                        mc.gameSettings.keyBindSneak.setPressed(true);
                        motion.setOnGround(true);
                        mc.player.setOnGround(true);
                        mc.player.collidedVertically = true;
                        mc.player.collidedHorizontally = true;
                        mc.player.isAirBorne = true;
                        if (mc.player.fallDistance != 0.0F) {
                            mc.gameSettings.keyBindForward.setPressed(true);
                            mc.gameSettings.keyBindForward.setPressed(false);
                        }
                        mc.player.jump();
                        mc.gameSettings.keyBindSneak.setPressed(false);
                        this.stopWatch.reset();
                    }
                }
            }
            case "Elytra" -> {
                motion.setPitch(0.0F);
                mc.player.rotationPitchHead = 0.0F;
            }
            case "Bamboo" -> {
                // Проверяем, сталкивается ли игрок со стеной
                if (!mc.player.collidedHorizontally) {
                    return;
                }
                // Ищем бамбук в инвентаре
                int bambooSlot = getBambooSlot();
                if (bambooSlot == -1) {
                    print("Бамбук не найден в инвентаре!");
                    toggle();
                    return;
                }
                // Определяем позицию игрока
                BlockPos playerPos = new BlockPos(mc.player.getPosX(), mc.player.getPosY(), mc.player.getPosZ());
                // Находим верхний блок бамбука в текущем стебле
                BlockPos bambooPos = findTopBamboo(playerPos);
                if (bambooPos == null) {
                    // Если бамбука нет, размещаем начальный блок под игроком
                    placeBamboo(motion, bambooSlot, playerPos.down());
                } else {
                    // Проверяем, насколько игрок близко к верхнему блоку бамбука
                    double distanceToTop = mc.player.getPosY() - bambooPos.getY();
                    if (distanceToTop > 0.5 && distanceToTop < 1.5) {
                        // Размещаем новый бамбук над текущим верхним блоком
                        placeBamboo(motion, bambooSlot, bambooPos.up());
                    }
                }
                // Управляем скоростью лазания
                long speed = MathHelper.clamp(300 - (spiderSpeed.get().longValue() / 2 * 100), 0, 300);
                if (stopWatch.isReached(speed)) {
                    // Имитируем лазание по лестнице
                    motion.setOnGround(true);
                    mc.player.setOnGround(true);
                    mc.player.jump();
                    mc.player.fallDistance = 0;
                    stopWatch.reset();
                }
            }
        }
    }

    [USER=1474073]@Subscribe[/USER]
    public void onUpdate(EventUpdate e) {
        if (mode.is("Elytra")) {
            if (!bypass.get()) {
                for (i = 0; i < 9; ++i) {
                    if (mc.player.inventory.getStackInSlot(i).getItem() == Items.ELYTRA && !mc.player.isOnGround() && mc.player.collidedHorizontally && mc.player.fallDistance == 0.0F) {
                        mc.playerController.windowClick(0, 6, i, ClickType.SWAP, mc.player);
                        mc.player.connection.sendPacket(new CEntityActionPacket(mc.player, CEntityActionPacket.Action.START_FALL_FLYING));
                        MoveUtils.setMotion(0.06);
                        mc.player.motion.y = 0.366;
                        mc.playerController.windowClick(0, 6, i, ClickType.SWAP, mc.player);
                        this.oldItem = i;
                    }
                }
            } else {
                if (((ItemStack)mc.player.inventory.armorInventory.get(2)).getItem() != Items.ELYTRA && mc.player.collidedHorizontally) {
                    for(i = 0; i < 9; ++i) {
                        if (mc.player.inventory.getStackInSlot(i).getItem() == Items.ELYTRA) {
                            mc.playerController.windowClick(0, 6, i, ClickType.SWAP, mc.player);
                            this.oldItem1 = i;
                            this.stopWatch.reset();
                        }
                    }
                }
                if (mc.player.collidedHorizontally) {
                    mc.gameSettings.keyBindJump.setPressed(false);
                    if (this.stopWatch.isReached(180L)) {
                        mc.gameSettings.keyBindJump.setPressed(true);
                    }
                }
                if (((ItemStack)mc.player.inventory.armorInventory.get(2)).getItem() == Items.ELYTRA && !mc.player.collidedHorizontally && this.oldItem1 != -1) {
                    mc.playerController.windowClick(0, 6, this.oldItem1, ClickType.SWAP, mc.player);
                    this.oldItem1 = -1;
                }
                if (((ItemStack)mc.player.inventory.armorInventory.get(2)).getItem() == Items.ELYTRA && !mc.player.isOnGround() && mc.player.collidedHorizontally) {
                    if (mc.player.fallDistance != 0.0F) {
                        return;
                    }
                    mc.player.connection.sendPacket(new CEntityActionPacket(mc.player, CEntityActionPacket.Action.START_FALL_FLYING));
                    MoveUtils.setMotion(0.02);
                    mc.player.motion.y = 0.36;
                }
            }
        }
    }

    [USER=1474073]@Subscribe[/USER]
    public void onPacket(EventPacket e) {
        if (mode.is("Elytra")) {
            if (!bypass.get()) {
                IPacket var4 = e.getPacket();
                if (var4 instanceof SPlayerPositionLookPacket) {
                    SPlayerPositionLookPacket p = (SPlayerPositionLookPacket) var4;
                    mc.player.func_242277_a(new Vector3d(p.getX(), p.getY(), p.getZ()));
                    mc.player.setRawPosition(p.getX(), p.getY(), p.getZ());
                    return;
                }
                if (e.getPacket() instanceof SEntityMetadataPacket && ((SEntityMetadataPacket) e.getPacket()).getEntityId() == mc.player.getEntityId()) {
                    e.cancel();
                }
            } else {
                if (e.getPacket() instanceof SEntityMetadataPacket && ((SEntityMetadataPacket) e.getPacket()).getEntityId() == mc.player.getEntityId()) {
                    e.cancel();
                }
            }
        }
    }

    private void placeBlocksOrBamboo(EventMotion motion, int slot) {
        int last = mc.player.inventory.currentItem;
        mc.player.inventory.currentItem = slot;
        motion.setPitch(80);
        motion.setYaw(mc.player.getHorizontalFacing().getHorizontalAngle());
        BlockRayTraceResult r = (BlockRayTraceResult) MouseUtil.rayTrace(4, motion.getYaw(), motion.getPitch(), mc.player);
        mc.player.swingArm(Hand.MAIN_HAND);
        mc.playerController.processRightClickBlock(mc.player, mc.world, Hand.MAIN_HAND, r);
        mc.player.inventory.currentItem = last;
        mc.player.fallDistance = 0;
    }

    private void placeBamboo(EventMotion motion, int slot, BlockPos targetPos) {
        // Сохраняем текущий выбранный слот
        int last = mc.player.inventory.currentItem;
        mc.player.inventory.currentItem = slot;
        // Вычисляем направление взгляда для точного размещения бамбука
        Vector3d target = new Vector3d(targetPos.getX() + 0.5, targetPos.getY(), targetPos.getZ() + 0.5);
        Vector3d playerPos = mc.player.getPositionVec();
        Vector3d lookVec = target.subtract(playerPos).normalize();
        float yaw = (float) Math.toDegrees(Math.atan2(lookVec.x, lookVec.z));
        float pitch = (float) Math.toDegrees(-Math.asin(lookVec.y));
        motion.setYaw(yaw);
        motion.setPitch(pitch);
        // Выполняем трассировку луча для размещения блока
        BlockRayTraceResult rayTrace = (BlockRayTraceResult) MouseUtil.rayTrace(4, yaw, pitch, mc.player);
        mc.player.swingArm(Hand.MAIN_HAND);
        mc.playerController.processRightClickBlock(mc.player, mc.world, Hand.MAIN_HAND, rayTrace);
        // Восстанавливаем исходный слот
        mc.player.inventory.currentItem = last;
    }

    private BlockPos findTopBamboo(BlockPos startPos) {
        // Начинаем с позиции игрока
        BlockPos current = startPos;
        // Ищем основание стебля бамбука, спускаясь вниз
        while (mc.world.getBlockState(current).getBlock() == net.minecraft.block.Blocks.BAMBOO && current.getY() > 0) {
            current = current.down();
        }
        // Возвращаемся на один блок вверх, чтобы найти нижний бамбук
        current = current.up();
        if (mc.world.getBlockState(current).getBlock() != net.minecraft.block.Blocks.BAMBOO) {
            return null; // Бамбук не найден
        }
        // Ищем верхний блок бамбука, поднимаясь вверх
        while (mc.world.getBlockState(current.up()).getBlock() == net.minecraft.block.Blocks.BAMBOO && current.getY() < 256) {
            current = current.up();
        }
        return current;
    }

    private int getSlotInInventoryOrHotbar(boolean inHotBar) {
        int firstSlot = inHotBar ? 0 : 9;
        int lastSlot = inHotBar ? 9 : 36;
        int finalSlot = -1;
        for (int i = firstSlot; i < lastSlot; i++) {
            if (mc.player.inventory.getStackInSlot(i).getItem() == Items.TORCH) {
                continue;
            }
            if (mc.player.inventory.getStackInSlot(i).getItem() instanceof BlockItem
                    || mc.player.inventory.getStackInSlot(i).getItem() == Items.WATER_BUCKET) {
                finalSlot = i;
            }
        }
        return finalSlot;
    }

    private int getBambooSlot() {
        // Проверяем слоты в хотбаре на наличие бамбука
        for (int i = 0; i < 9; i++) {
            ItemStack stack = mc.player.inventory.getStackInSlot(i);
            if (stack.getItem() == Items.BAMBOO) {
                return i;
            }
        }
        return -1;
    }

    [USER=1367676]@override[/USER]
    public void onDisable() {
        super.onDisable();
        mc.player.fallDistance = 0;
        mc.gameSettings.keyBindSneak.setPressed(false);
        mc.gameSettings.keyBindJump.setPressed(false);
        mc.gameSettings.keyBindForward.setPressed(false);
        if (oldItem != -1) {
            mc.player.inventory.currentItem = oldItem;
            oldItem = -1;
        }
        if (oldItem1 != -1) {
            mc.playerController.windowClick(0, 6, oldItem1, ClickType.SWAP, mc.player);
            oldItem1 = -1;
        }
    }
}
Если сс не грузит то вот второй сс
деф матрикс
 
ПИЗДЕЦ ЧТО ТЫ СУДА СКИНУЛ
 
Решил залить спайдер покормить пастеров хоть я сам такой-же

Пожалуйста, авторизуйтесь для просмотра ссылки.


Осторожно Chatgpt code:
Expand Collapse Copy
package dev.zovchik.modules.impl.movement;

import com.google.common.eventbus.Subscribe;
import dev.zovchik.events.EventMotion;
import dev.zovchik.events.EventPacket;
import dev.zovchik.events.EventUpdate;
import dev.zovchik.modules.api.Category;
import dev.zovchik.modules.api.Module;
import dev.zovchik.modules.api.ModuleRegister;
import dev.zovchik.modules.settings.impl.BooleanSetting;
import dev.zovchik.modules.settings.impl.ModeSetting;
import dev.zovchik.modules.settings.impl.SliderSetting;
import dev.zovchik.utils.math.StopWatch;
import dev.zovchik.utils.player.MouseUtil;
import dev.zovchik.utils.player.MoveUtils;
import net.minecraft.inventory.container.ClickType;
import net.minecraft.item.BlockItem;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.network.IPacket;
import net.minecraft.network.play.client.CEntityActionPacket;
import net.minecraft.network.play.server.SEntityMetadataPacket;
import net.minecraft.network.play.server.SPlayerPositionLookPacket;
import net.minecraft.util.Hand;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.BlockRayTraceResult;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.vector.Vector3d;

@ModuleRegister(name = "Spider", category = Category.Movement, description = "Позволяет лазить по стенам разными способами, включая размещение бамбука")
public class Spider extends Module {
    public ModeSetting mode = new ModeSetting("Mode", "Grim", "Grim", "Grim 2", "Matrix", "Elytra", "Bamboo");
    private final SliderSetting spiderSpeed = new SliderSetting("Скорость", 2.0f, 1.0f, 10.0f, 0.05f).setVisible(() -> mode.is("Matrix") || mode.is("Bamboo"));
    private final BooleanSetting bypass = new BooleanSetting("Обход", true).setVisible(() -> mode.is("Elytra"));
    StopWatch stopWatch = new StopWatch();
    int oldItem = -1;
    int oldItem1 = -1;
    int i;
    long speed;

    public Spider() {
        addSettings(mode, bypass, spiderSpeed);
    }

    [USER=1474073]@Subscribe[/USER]
    private void onMotion(EventMotion motion) {
        switch (mode.get()) {
            case "Matrix" -> {
                if (!mc.player.collidedHorizontally) {
                    return;
                }
                long speed = MathHelper.clamp(500 - (spiderSpeed.get().longValue() / 2 * 100), 0, 500);
                if (stopWatch.isReached(speed)) {
                    motion.setOnGround(true);
                    mc.player.setOnGround(true);
                    mc.player.collidedVertically = true;
                    mc.player.collidedHorizontally = true;
                    mc.player.isAirBorne = true;
                    mc.player.jump();
                    stopWatch.reset();
                }
            }
            case "Grim" -> {
                int slot = getBambooSlot();
                if (slot == -1) {
                    slot = getSlotInInventoryOrHotbar(true);
                    if (slot == -1) {
                        print("Бамбук или блоки не найдены!");
                        toggle();
                        return;
                    }
                }
                if (!mc.player.collidedHorizontally) {
                    return;
                }
                if (mc.player.isOnGround()) {
                    motion.setOnGround(true);
                    mc.player.setOnGround(true);
                    mc.player.jump();
                }
                if (mc.player.fallDistance > 0 && mc.player.fallDistance < 2) {
                    placeBlocksOrBamboo(motion, slot);
                }
            }
            case "Grim 2" -> {
                if (!mc.player.isOnGround()) {
                    speed = (long) MathHelper.clamp(500L - spiderSpeed.get() / 2L * 100L, 0L, 500L);
                    if (this.stopWatch.isReached(speed)) {
                        mc.gameSettings.keyBindSneak.setPressed(true);
                        motion.setOnGround(true);
                        mc.player.setOnGround(true);
                        mc.player.collidedVertically = true;
                        mc.player.collidedHorizontally = true;
                        mc.player.isAirBorne = true;
                        if (mc.player.fallDistance != 0.0F) {
                            mc.gameSettings.keyBindForward.setPressed(true);
                            mc.gameSettings.keyBindForward.setPressed(false);
                        }
                        mc.player.jump();
                        mc.gameSettings.keyBindSneak.setPressed(false);
                        this.stopWatch.reset();
                    }
                }
            }
            case "Elytra" -> {
                motion.setPitch(0.0F);
                mc.player.rotationPitchHead = 0.0F;
            }
            case "Bamboo" -> {
                // Проверяем, сталкивается ли игрок со стеной
                if (!mc.player.collidedHorizontally) {
                    return;
                }
                // Ищем бамбук в инвентаре
                int bambooSlot = getBambooSlot();
                if (bambooSlot == -1) {
                    print("Бамбук не найден в инвентаре!");
                    toggle();
                    return;
                }
                // Определяем позицию игрока
                BlockPos playerPos = new BlockPos(mc.player.getPosX(), mc.player.getPosY(), mc.player.getPosZ());
                // Находим верхний блок бамбука в текущем стебле
                BlockPos bambooPos = findTopBamboo(playerPos);
                if (bambooPos == null) {
                    // Если бамбука нет, размещаем начальный блок под игроком
                    placeBamboo(motion, bambooSlot, playerPos.down());
                } else {
                    // Проверяем, насколько игрок близко к верхнему блоку бамбука
                    double distanceToTop = mc.player.getPosY() - bambooPos.getY();
                    if (distanceToTop > 0.5 && distanceToTop < 1.5) {
                        // Размещаем новый бамбук над текущим верхним блоком
                        placeBamboo(motion, bambooSlot, bambooPos.up());
                    }
                }
                // Управляем скоростью лазания
                long speed = MathHelper.clamp(300 - (spiderSpeed.get().longValue() / 2 * 100), 0, 300);
                if (stopWatch.isReached(speed)) {
                    // Имитируем лазание по лестнице
                    motion.setOnGround(true);
                    mc.player.setOnGround(true);
                    mc.player.jump();
                    mc.player.fallDistance = 0;
                    stopWatch.reset();
                }
            }
        }
    }

    [USER=1474073]@Subscribe[/USER]
    public void onUpdate(EventUpdate e) {
        if (mode.is("Elytra")) {
            if (!bypass.get()) {
                for (i = 0; i < 9; ++i) {
                    if (mc.player.inventory.getStackInSlot(i).getItem() == Items.ELYTRA && !mc.player.isOnGround() && mc.player.collidedHorizontally && mc.player.fallDistance == 0.0F) {
                        mc.playerController.windowClick(0, 6, i, ClickType.SWAP, mc.player);
                        mc.player.connection.sendPacket(new CEntityActionPacket(mc.player, CEntityActionPacket.Action.START_FALL_FLYING));
                        MoveUtils.setMotion(0.06);
                        mc.player.motion.y = 0.366;
                        mc.playerController.windowClick(0, 6, i, ClickType.SWAP, mc.player);
                        this.oldItem = i;
                    }
                }
            } else {
                if (((ItemStack)mc.player.inventory.armorInventory.get(2)).getItem() != Items.ELYTRA && mc.player.collidedHorizontally) {
                    for(i = 0; i < 9; ++i) {
                        if (mc.player.inventory.getStackInSlot(i).getItem() == Items.ELYTRA) {
                            mc.playerController.windowClick(0, 6, i, ClickType.SWAP, mc.player);
                            this.oldItem1 = i;
                            this.stopWatch.reset();
                        }
                    }
                }
                if (mc.player.collidedHorizontally) {
                    mc.gameSettings.keyBindJump.setPressed(false);
                    if (this.stopWatch.isReached(180L)) {
                        mc.gameSettings.keyBindJump.setPressed(true);
                    }
                }
                if (((ItemStack)mc.player.inventory.armorInventory.get(2)).getItem() == Items.ELYTRA && !mc.player.collidedHorizontally && this.oldItem1 != -1) {
                    mc.playerController.windowClick(0, 6, this.oldItem1, ClickType.SWAP, mc.player);
                    this.oldItem1 = -1;
                }
                if (((ItemStack)mc.player.inventory.armorInventory.get(2)).getItem() == Items.ELYTRA && !mc.player.isOnGround() && mc.player.collidedHorizontally) {
                    if (mc.player.fallDistance != 0.0F) {
                        return;
                    }
                    mc.player.connection.sendPacket(new CEntityActionPacket(mc.player, CEntityActionPacket.Action.START_FALL_FLYING));
                    MoveUtils.setMotion(0.02);
                    mc.player.motion.y = 0.36;
                }
            }
        }
    }

    [USER=1474073]@Subscribe[/USER]
    public void onPacket(EventPacket e) {
        if (mode.is("Elytra")) {
            if (!bypass.get()) {
                IPacket var4 = e.getPacket();
                if (var4 instanceof SPlayerPositionLookPacket) {
                    SPlayerPositionLookPacket p = (SPlayerPositionLookPacket) var4;
                    mc.player.func_242277_a(new Vector3d(p.getX(), p.getY(), p.getZ()));
                    mc.player.setRawPosition(p.getX(), p.getY(), p.getZ());
                    return;
                }
                if (e.getPacket() instanceof SEntityMetadataPacket && ((SEntityMetadataPacket) e.getPacket()).getEntityId() == mc.player.getEntityId()) {
                    e.cancel();
                }
            } else {
                if (e.getPacket() instanceof SEntityMetadataPacket && ((SEntityMetadataPacket) e.getPacket()).getEntityId() == mc.player.getEntityId()) {
                    e.cancel();
                }
            }
        }
    }

    private void placeBlocksOrBamboo(EventMotion motion, int slot) {
        int last = mc.player.inventory.currentItem;
        mc.player.inventory.currentItem = slot;
        motion.setPitch(80);
        motion.setYaw(mc.player.getHorizontalFacing().getHorizontalAngle());
        BlockRayTraceResult r = (BlockRayTraceResult) MouseUtil.rayTrace(4, motion.getYaw(), motion.getPitch(), mc.player);
        mc.player.swingArm(Hand.MAIN_HAND);
        mc.playerController.processRightClickBlock(mc.player, mc.world, Hand.MAIN_HAND, r);
        mc.player.inventory.currentItem = last;
        mc.player.fallDistance = 0;
    }

    private void placeBamboo(EventMotion motion, int slot, BlockPos targetPos) {
        // Сохраняем текущий выбранный слот
        int last = mc.player.inventory.currentItem;
        mc.player.inventory.currentItem = slot;
        // Вычисляем направление взгляда для точного размещения бамбука
        Vector3d target = new Vector3d(targetPos.getX() + 0.5, targetPos.getY(), targetPos.getZ() + 0.5);
        Vector3d playerPos = mc.player.getPositionVec();
        Vector3d lookVec = target.subtract(playerPos).normalize();
        float yaw = (float) Math.toDegrees(Math.atan2(lookVec.x, lookVec.z));
        float pitch = (float) Math.toDegrees(-Math.asin(lookVec.y));
        motion.setYaw(yaw);
        motion.setPitch(pitch);
        // Выполняем трассировку луча для размещения блока
        BlockRayTraceResult rayTrace = (BlockRayTraceResult) MouseUtil.rayTrace(4, yaw, pitch, mc.player);
        mc.player.swingArm(Hand.MAIN_HAND);
        mc.playerController.processRightClickBlock(mc.player, mc.world, Hand.MAIN_HAND, rayTrace);
        // Восстанавливаем исходный слот
        mc.player.inventory.currentItem = last;
    }

    private BlockPos findTopBamboo(BlockPos startPos) {
        // Начинаем с позиции игрока
        BlockPos current = startPos;
        // Ищем основание стебля бамбука, спускаясь вниз
        while (mc.world.getBlockState(current).getBlock() == net.minecraft.block.Blocks.BAMBOO && current.getY() > 0) {
            current = current.down();
        }
        // Возвращаемся на один блок вверх, чтобы найти нижний бамбук
        current = current.up();
        if (mc.world.getBlockState(current).getBlock() != net.minecraft.block.Blocks.BAMBOO) {
            return null; // Бамбук не найден
        }
        // Ищем верхний блок бамбука, поднимаясь вверх
        while (mc.world.getBlockState(current.up()).getBlock() == net.minecraft.block.Blocks.BAMBOO && current.getY() < 256) {
            current = current.up();
        }
        return current;
    }

    private int getSlotInInventoryOrHotbar(boolean inHotBar) {
        int firstSlot = inHotBar ? 0 : 9;
        int lastSlot = inHotBar ? 9 : 36;
        int finalSlot = -1;
        for (int i = firstSlot; i < lastSlot; i++) {
            if (mc.player.inventory.getStackInSlot(i).getItem() == Items.TORCH) {
                continue;
            }
            if (mc.player.inventory.getStackInSlot(i).getItem() instanceof BlockItem
                    || mc.player.inventory.getStackInSlot(i).getItem() == Items.WATER_BUCKET) {
                finalSlot = i;
            }
        }
        return finalSlot;
    }

    private int getBambooSlot() {
        // Проверяем слоты в хотбаре на наличие бамбука
        for (int i = 0; i < 9; i++) {
            ItemStack stack = mc.player.inventory.getStackInSlot(i);
            if (stack.getItem() == Items.BAMBOO) {
                return i;
            }
        }
        return -1;
    }

    [USER=1367676]@override[/USER]
    public void onDisable() {
        super.onDisable();
        mc.player.fallDistance = 0;
        mc.gameSettings.keyBindSneak.setPressed(false);
        mc.gameSettings.keyBindJump.setPressed(false);
        mc.gameSettings.keyBindForward.setPressed(false);
        if (oldItem != -1) {
            mc.player.inventory.currentItem = oldItem;
            oldItem = -1;
        }
        if (oldItem1 != -1) {
            mc.playerController.windowClick(0, 6, oldItem1, ClickType.SWAP, mc.player);
            oldItem1 = -1;
        }
    }
}
Если сс не грузит то вот второй сс
Могу слить с нюкера:)
 
Решил залить спайдер покормить пастеров хоть я сам такой-же

Пожалуйста, авторизуйтесь для просмотра ссылки.


Осторожно Chatgpt code:
Expand Collapse Copy
package dev.zovchik.modules.impl.movement;

import com.google.common.eventbus.Subscribe;
import dev.zovchik.events.EventMotion;
import dev.zovchik.events.EventPacket;
import dev.zovchik.events.EventUpdate;
import dev.zovchik.modules.api.Category;
import dev.zovchik.modules.api.Module;
import dev.zovchik.modules.api.ModuleRegister;
import dev.zovchik.modules.settings.impl.BooleanSetting;
import dev.zovchik.modules.settings.impl.ModeSetting;
import dev.zovchik.modules.settings.impl.SliderSetting;
import dev.zovchik.utils.math.StopWatch;
import dev.zovchik.utils.player.MouseUtil;
import dev.zovchik.utils.player.MoveUtils;
import net.minecraft.inventory.container.ClickType;
import net.minecraft.item.BlockItem;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.network.IPacket;
import net.minecraft.network.play.client.CEntityActionPacket;
import net.minecraft.network.play.server.SEntityMetadataPacket;
import net.minecraft.network.play.server.SPlayerPositionLookPacket;
import net.minecraft.util.Hand;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.BlockRayTraceResult;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.vector.Vector3d;

@ModuleRegister(name = "Spider", category = Category.Movement, description = "Позволяет лазить по стенам разными способами, включая размещение бамбука")
public class Spider extends Module {
    public ModeSetting mode = new ModeSetting("Mode", "Grim", "Grim", "Grim 2", "Matrix", "Elytra", "Bamboo");
    private final SliderSetting spiderSpeed = new SliderSetting("Скорость", 2.0f, 1.0f, 10.0f, 0.05f).setVisible(() -> mode.is("Matrix") || mode.is("Bamboo"));
    private final BooleanSetting bypass = new BooleanSetting("Обход", true).setVisible(() -> mode.is("Elytra"));
    StopWatch stopWatch = new StopWatch();
    int oldItem = -1;
    int oldItem1 = -1;
    int i;
    long speed;

    public Spider() {
        addSettings(mode, bypass, spiderSpeed);
    }

    [USER=1474073]@Subscribe[/USER]
    private void onMotion(EventMotion motion) {
        switch (mode.get()) {
            case "Matrix" -> {
                if (!mc.player.collidedHorizontally) {
                    return;
                }
                long speed = MathHelper.clamp(500 - (spiderSpeed.get().longValue() / 2 * 100), 0, 500);
                if (stopWatch.isReached(speed)) {
                    motion.setOnGround(true);
                    mc.player.setOnGround(true);
                    mc.player.collidedVertically = true;
                    mc.player.collidedHorizontally = true;
                    mc.player.isAirBorne = true;
                    mc.player.jump();
                    stopWatch.reset();
                }
            }
            case "Grim" -> {
                int slot = getBambooSlot();
                if (slot == -1) {
                    slot = getSlotInInventoryOrHotbar(true);
                    if (slot == -1) {
                        print("Бамбук или блоки не найдены!");
                        toggle();
                        return;
                    }
                }
                if (!mc.player.collidedHorizontally) {
                    return;
                }
                if (mc.player.isOnGround()) {
                    motion.setOnGround(true);
                    mc.player.setOnGround(true);
                    mc.player.jump();
                }
                if (mc.player.fallDistance > 0 && mc.player.fallDistance < 2) {
                    placeBlocksOrBamboo(motion, slot);
                }
            }
            case "Grim 2" -> {
                if (!mc.player.isOnGround()) {
                    speed = (long) MathHelper.clamp(500L - spiderSpeed.get() / 2L * 100L, 0L, 500L);
                    if (this.stopWatch.isReached(speed)) {
                        mc.gameSettings.keyBindSneak.setPressed(true);
                        motion.setOnGround(true);
                        mc.player.setOnGround(true);
                        mc.player.collidedVertically = true;
                        mc.player.collidedHorizontally = true;
                        mc.player.isAirBorne = true;
                        if (mc.player.fallDistance != 0.0F) {
                            mc.gameSettings.keyBindForward.setPressed(true);
                            mc.gameSettings.keyBindForward.setPressed(false);
                        }
                        mc.player.jump();
                        mc.gameSettings.keyBindSneak.setPressed(false);
                        this.stopWatch.reset();
                    }
                }
            }
            case "Elytra" -> {
                motion.setPitch(0.0F);
                mc.player.rotationPitchHead = 0.0F;
            }
            case "Bamboo" -> {
                // Проверяем, сталкивается ли игрок со стеной
                if (!mc.player.collidedHorizontally) {
                    return;
                }
                // Ищем бамбук в инвентаре
                int bambooSlot = getBambooSlot();
                if (bambooSlot == -1) {
                    print("Бамбук не найден в инвентаре!");
                    toggle();
                    return;
                }
                // Определяем позицию игрока
                BlockPos playerPos = new BlockPos(mc.player.getPosX(), mc.player.getPosY(), mc.player.getPosZ());
                // Находим верхний блок бамбука в текущем стебле
                BlockPos bambooPos = findTopBamboo(playerPos);
                if (bambooPos == null) {
                    // Если бамбука нет, размещаем начальный блок под игроком
                    placeBamboo(motion, bambooSlot, playerPos.down());
                } else {
                    // Проверяем, насколько игрок близко к верхнему блоку бамбука
                    double distanceToTop = mc.player.getPosY() - bambooPos.getY();
                    if (distanceToTop > 0.5 && distanceToTop < 1.5) {
                        // Размещаем новый бамбук над текущим верхним блоком
                        placeBamboo(motion, bambooSlot, bambooPos.up());
                    }
                }
                // Управляем скоростью лазания
                long speed = MathHelper.clamp(300 - (spiderSpeed.get().longValue() / 2 * 100), 0, 300);
                if (stopWatch.isReached(speed)) {
                    // Имитируем лазание по лестнице
                    motion.setOnGround(true);
                    mc.player.setOnGround(true);
                    mc.player.jump();
                    mc.player.fallDistance = 0;
                    stopWatch.reset();
                }
            }
        }
    }

    [USER=1474073]@Subscribe[/USER]
    public void onUpdate(EventUpdate e) {
        if (mode.is("Elytra")) {
            if (!bypass.get()) {
                for (i = 0; i < 9; ++i) {
                    if (mc.player.inventory.getStackInSlot(i).getItem() == Items.ELYTRA && !mc.player.isOnGround() && mc.player.collidedHorizontally && mc.player.fallDistance == 0.0F) {
                        mc.playerController.windowClick(0, 6, i, ClickType.SWAP, mc.player);
                        mc.player.connection.sendPacket(new CEntityActionPacket(mc.player, CEntityActionPacket.Action.START_FALL_FLYING));
                        MoveUtils.setMotion(0.06);
                        mc.player.motion.y = 0.366;
                        mc.playerController.windowClick(0, 6, i, ClickType.SWAP, mc.player);
                        this.oldItem = i;
                    }
                }
            } else {
                if (((ItemStack)mc.player.inventory.armorInventory.get(2)).getItem() != Items.ELYTRA && mc.player.collidedHorizontally) {
                    for(i = 0; i < 9; ++i) {
                        if (mc.player.inventory.getStackInSlot(i).getItem() == Items.ELYTRA) {
                            mc.playerController.windowClick(0, 6, i, ClickType.SWAP, mc.player);
                            this.oldItem1 = i;
                            this.stopWatch.reset();
                        }
                    }
                }
                if (mc.player.collidedHorizontally) {
                    mc.gameSettings.keyBindJump.setPressed(false);
                    if (this.stopWatch.isReached(180L)) {
                        mc.gameSettings.keyBindJump.setPressed(true);
                    }
                }
                if (((ItemStack)mc.player.inventory.armorInventory.get(2)).getItem() == Items.ELYTRA && !mc.player.collidedHorizontally && this.oldItem1 != -1) {
                    mc.playerController.windowClick(0, 6, this.oldItem1, ClickType.SWAP, mc.player);
                    this.oldItem1 = -1;
                }
                if (((ItemStack)mc.player.inventory.armorInventory.get(2)).getItem() == Items.ELYTRA && !mc.player.isOnGround() && mc.player.collidedHorizontally) {
                    if (mc.player.fallDistance != 0.0F) {
                        return;
                    }
                    mc.player.connection.sendPacket(new CEntityActionPacket(mc.player, CEntityActionPacket.Action.START_FALL_FLYING));
                    MoveUtils.setMotion(0.02);
                    mc.player.motion.y = 0.36;
                }
            }
        }
    }

    [USER=1474073]@Subscribe[/USER]
    public void onPacket(EventPacket e) {
        if (mode.is("Elytra")) {
            if (!bypass.get()) {
                IPacket var4 = e.getPacket();
                if (var4 instanceof SPlayerPositionLookPacket) {
                    SPlayerPositionLookPacket p = (SPlayerPositionLookPacket) var4;
                    mc.player.func_242277_a(new Vector3d(p.getX(), p.getY(), p.getZ()));
                    mc.player.setRawPosition(p.getX(), p.getY(), p.getZ());
                    return;
                }
                if (e.getPacket() instanceof SEntityMetadataPacket && ((SEntityMetadataPacket) e.getPacket()).getEntityId() == mc.player.getEntityId()) {
                    e.cancel();
                }
            } else {
                if (e.getPacket() instanceof SEntityMetadataPacket && ((SEntityMetadataPacket) e.getPacket()).getEntityId() == mc.player.getEntityId()) {
                    e.cancel();
                }
            }
        }
    }

    private void placeBlocksOrBamboo(EventMotion motion, int slot) {
        int last = mc.player.inventory.currentItem;
        mc.player.inventory.currentItem = slot;
        motion.setPitch(80);
        motion.setYaw(mc.player.getHorizontalFacing().getHorizontalAngle());
        BlockRayTraceResult r = (BlockRayTraceResult) MouseUtil.rayTrace(4, motion.getYaw(), motion.getPitch(), mc.player);
        mc.player.swingArm(Hand.MAIN_HAND);
        mc.playerController.processRightClickBlock(mc.player, mc.world, Hand.MAIN_HAND, r);
        mc.player.inventory.currentItem = last;
        mc.player.fallDistance = 0;
    }

    private void placeBamboo(EventMotion motion, int slot, BlockPos targetPos) {
        // Сохраняем текущий выбранный слот
        int last = mc.player.inventory.currentItem;
        mc.player.inventory.currentItem = slot;
        // Вычисляем направление взгляда для точного размещения бамбука
        Vector3d target = new Vector3d(targetPos.getX() + 0.5, targetPos.getY(), targetPos.getZ() + 0.5);
        Vector3d playerPos = mc.player.getPositionVec();
        Vector3d lookVec = target.subtract(playerPos).normalize();
        float yaw = (float) Math.toDegrees(Math.atan2(lookVec.x, lookVec.z));
        float pitch = (float) Math.toDegrees(-Math.asin(lookVec.y));
        motion.setYaw(yaw);
        motion.setPitch(pitch);
        // Выполняем трассировку луча для размещения блока
        BlockRayTraceResult rayTrace = (BlockRayTraceResult) MouseUtil.rayTrace(4, yaw, pitch, mc.player);
        mc.player.swingArm(Hand.MAIN_HAND);
        mc.playerController.processRightClickBlock(mc.player, mc.world, Hand.MAIN_HAND, rayTrace);
        // Восстанавливаем исходный слот
        mc.player.inventory.currentItem = last;
    }

    private BlockPos findTopBamboo(BlockPos startPos) {
        // Начинаем с позиции игрока
        BlockPos current = startPos;
        // Ищем основание стебля бамбука, спускаясь вниз
        while (mc.world.getBlockState(current).getBlock() == net.minecraft.block.Blocks.BAMBOO && current.getY() > 0) {
            current = current.down();
        }
        // Возвращаемся на один блок вверх, чтобы найти нижний бамбук
        current = current.up();
        if (mc.world.getBlockState(current).getBlock() != net.minecraft.block.Blocks.BAMBOO) {
            return null; // Бамбук не найден
        }
        // Ищем верхний блок бамбука, поднимаясь вверх
        while (mc.world.getBlockState(current.up()).getBlock() == net.minecraft.block.Blocks.BAMBOO && current.getY() < 256) {
            current = current.up();
        }
        return current;
    }

    private int getSlotInInventoryOrHotbar(boolean inHotBar) {
        int firstSlot = inHotBar ? 0 : 9;
        int lastSlot = inHotBar ? 9 : 36;
        int finalSlot = -1;
        for (int i = firstSlot; i < lastSlot; i++) {
            if (mc.player.inventory.getStackInSlot(i).getItem() == Items.TORCH) {
                continue;
            }
            if (mc.player.inventory.getStackInSlot(i).getItem() instanceof BlockItem
                    || mc.player.inventory.getStackInSlot(i).getItem() == Items.WATER_BUCKET) {
                finalSlot = i;
            }
        }
        return finalSlot;
    }

    private int getBambooSlot() {
        // Проверяем слоты в хотбаре на наличие бамбука
        for (int i = 0; i < 9; i++) {
            ItemStack stack = mc.player.inventory.getStackInSlot(i);
            if (stack.getItem() == Items.BAMBOO) {
                return i;
            }
        }
        return -1;
    }

    [USER=1367676]@override[/USER]
    public void onDisable() {
        super.onDisable();
        mc.player.fallDistance = 0;
        mc.gameSettings.keyBindSneak.setPressed(false);
        mc.gameSettings.keyBindJump.setPressed(false);
        mc.gameSettings.keyBindForward.setPressed(false);
        if (oldItem != -1) {
            mc.player.inventory.currentItem = oldItem;
            oldItem = -1;
        }
        if (oldItem1 != -1) {
            mc.playerController.windowClick(0, 6, oldItem1, ClickType.SWAP, mc.player);
            oldItem1 = -1;
        }
    }
}
Если сс не грузит то вот второй сс
пиздец
 

Похожие темы

Назад
Сверху Снизу