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

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
10 Окт 2021
Сообщения
5
Реакции
0
Выберите загрузчик игры
  1. Прочие моды

Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:

  • бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
  • маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
  • приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
  • обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.

Спасибо!

Решил залить спайдер покормить пастеров хоть я сам такой-же

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


Осторожно 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;
        }
    }
}
Если сс не грузит то вот второй сс
пиздец
 

Похожие темы

Ответы
7
Просмотры
843
Ответы
20
Просмотры
2K
Ответы
4
Просмотры
668
Назад
Сверху Снизу