Spider "Блатной" | Forge Ready

Forge Api ;-;
Забаненный
Статус
Оффлайн
Регистрация
3 Май 2023
Сообщения
870
Реакции[?]
19
Поинты[?]
9K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Короче дефолтный блок спайдер, работает впринципе нормально, ротацию кому надо допишите я думаю (как бы если спайдер включен то голову повернуть возможности не будет, а без нее античит даст пизды)
Java:
    @SubscribeEvent
    public void onTick(TickEvent.PlayerTickEvent event) {
        if (!this.isEnabled() || event.phase != TickEvent.Phase.START || mc.player == null || !mc.player.horizontalCollision || mc.player.isInWater()) return;

        if (mc.player.isOnGround()) {
            mc.player.jumpFromGround();
        } else if (mc.player.fallDistance > 0 && mc.player.fallDistance < 2) {
            if (getSlot() == -1) {
                ChatUtil.addChatMessage("Для использования этого спайдера у вас должны быть блоки в хотбаре!");
                this.toggle();
                return;
            }

            int lastSlot = mc.player.inventory.selected;
            mc.player.inventory.selected = getSlot();

            mc.player.xRot = 80;
            mc.player.yRot = mc.player.getYHeadRot();
            mc.player.yBodyRot = mc.player.getYHeadRot();

            Vector3d start = mc.player.getEyePosition(1.0F);
            Vector3d look = mc.player.getViewVector(1.0F);
            Vector3d end = start.add(look.x * 4, look.y * 4, look.z * 4);

            BlockRayTraceResult rayTrace = mc.level.clip(new RayTraceContext(
                    start, end,
                    RayTraceContext.BlockMode.OUTLINE,
                    RayTraceContext.FluidMode.NONE,
                    mc.player));

            mc.player.swing(Hand.MAIN_HAND);
            mc.gameMode.useItemOn(mc.player, mc.level, Hand.MAIN_HAND, rayTrace);

            mc.player.inventory.selected = lastSlot;
            mc.player.fallDistance = 0;
        }
    }

    private int getSlot() {
        for (int i = 0; i < 9; i++) {
            ItemStack stack = mc.player.inventory.getItem(i);
            if (isValid(stack)) {
                return i;
            }
        }
        return -1;
    }

    private boolean isValid(ItemStack stack) {
        return stack.getItem() instanceof BlockItem && !(stack.getItem() == Items.TORCH)
                || stack.getItem() == Items.WATER_BUCKET;
    }
 
Забаненный
Статус
Оффлайн
Регистрация
10 Май 2023
Сообщения
823
Реакции[?]
9
Поинты[?]
3K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
норм
 
Начинающий
Статус
Онлайн
Регистрация
24 Июл 2022
Сообщения
274
Реакции[?]
2
Поинты[?]
1K
сдела так спидер что бы он цеплялся паутинкой за объекты как в чоловеки поуке🙏🙏🙏🙏🙏
 
Начинающий
Статус
Оффлайн
Регистрация
23 Июн 2023
Сообщения
401
Реакции[?]
2
Поинты[?]
0
Короче дефолтный блок спайдер, работает впринципе нормально, ротацию кому надо допишите я думаю (как бы если спайдер включен то голову повернуть возможности не будет, а без нее античит даст пизды)
Java:
    @SubscribeEvent
    public void onTick(TickEvent.PlayerTickEvent event) {
        if (!this.isEnabled() || event.phase != TickEvent.Phase.START || mc.player == null || !mc.player.horizontalCollision || mc.player.isInWater()) return;

        if (mc.player.isOnGround()) {
            mc.player.jumpFromGround();
        } else if (mc.player.fallDistance > 0 && mc.player.fallDistance < 2) {
            if (getSlot() == -1) {
                ChatUtil.addChatMessage("Для использования этого спайдера у вас должны быть блоки в хотбаре!");
                this.toggle();
                return;
            }

            int lastSlot = mc.player.inventory.selected;
            mc.player.inventory.selected = getSlot();

            mc.player.xRot = 80;
            mc.player.yRot = mc.player.getYHeadRot();
            mc.player.yBodyRot = mc.player.getYHeadRot();

            Vector3d start = mc.player.getEyePosition(1.0F);
            Vector3d look = mc.player.getViewVector(1.0F);
            Vector3d end = start.add(look.x * 4, look.y * 4, look.z * 4);

            BlockRayTraceResult rayTrace = mc.level.clip(new RayTraceContext(
                    start, end,
                    RayTraceContext.BlockMode.OUTLINE,
                    RayTraceContext.FluidMode.NONE,
                    mc.player));

            mc.player.swing(Hand.MAIN_HAND);
            mc.gameMode.useItemOn(mc.player, mc.level, Hand.MAIN_HAND, rayTrace);

            mc.player.inventory.selected = lastSlot;
            mc.player.fallDistance = 0;
        }
    }

    private int getSlot() {
        for (int i = 0; i < 9; i++) {
            ItemStack stack = mc.player.inventory.getItem(i);
            if (isValid(stack)) {
                return i;
            }
        }
        return -1;
    }

    private boolean isValid(ItemStack stack) {
        return stack.getItem() instanceof BlockItem && !(stack.getItem() == Items.TORCH)
                || stack.getItem() == Items.WATER_BUCKET;
    }
Ну и...... Х
U
Y
N
Я
 
Сверху Снизу