Обход античита NoSlow Grim bypass

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
24 Май 2023
Сообщения
53
Реакции
3
Выберите загрузчик игры
  1. Vanilla

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

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

Спасибо!

Всем привет, это ноуслоу с луком и арбалетом, работает на серваках с гримом. Нужно положить лук/арбалет в хотбар. excellent ready
ss -
Пожалуйста, авторизуйтесь для просмотра ссылки.



noslow:
Expand Collapse Copy
package xyz.pub.client.managers.module.impl.movement;

import lombok.AccessLevel;
import lombok.Getter;
import lombok.experimental.Accessors;
import lombok.experimental.FieldDefaults;
import net.minecraft.inventory.container.ClickType;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.item.UseAction;
import net.minecraft.network.play.client.CClickWindowPacket;
import net.minecraft.network.play.client.CPlayerDiggingPacket;
import net.minecraft.network.play.client.CPlayerTryUseItemPacket;
import net.minecraft.util.Direction;
import net.minecraft.util.Hand;
import net.minecraft.util.math.AxisAlignedBB;
import xyz.pub.client.api.events.orbit.EventHandler;
import xyz.pub.client.managers.events.other.SlowWalkingEvent;
import xyz.pub.client.managers.events.player.UpdateEvent;
import xyz.pub.client.managers.module.Category;
import xyz.pub.client.managers.module.Module;
import xyz.pub.client.managers.module.ModuleInfo;
import xyz.pub.client.managers.module.settings.impl.BooleanSetting;
import xyz.pub.client.managers.module.settings.impl.ModeSetting;
import xyz.pub.client.utils.other.Instance;
import xyz.pub.client.utils.player.MoveUtil;
import xyz.pub.lib.util.time.StopWatch;

import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;

@Getter
@Accessors(fluent = true)
@FieldDefaults(level = AccessLevel.PRIVATE)
@ModuleInfo(name = "NoSlow", category = Category.MOVEMENT)
public class NoSlow extends Module {
    public static NoSlow getInstance() {
        return Instance.get(NoSlow.class);
    }

    private final ModeSetting mode = new ModeSetting(this, "Mode", "GrimOld", "Test", "GrimBow", "GrimCrossbow");
    private final BooleanSetting onlyOnGround = new BooleanSetting(this, "Только на земле", false)
            .setVisible(() -> mode.is("GrimBow") || mode.is("GrimCrossbow"));

    private final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
    private final StopWatch stopWatch = new StopWatch();

    private ItemStack originalOffhandItem = ItemStack.EMPTY;
    private boolean isSwapping = false;
    private final StopWatch bowSwapTimer = new StopWatch();
    private final StopWatch crossbowSwapTimer = new StopWatch();

    @EventHandler
    public void onUpdate(UpdateEvent e) {
        if (mode.is("GrimBow") && mc.player != null) {
            handleGrimBowUpdate();
        }

        if (mode.is("GrimCrossbow") && mc.player != null) {
            handleGrimCrossbowUpdate();
        }
    }

    @EventHandler
    public void onSlowWalk(SlowWalkingEvent e) {
        if (mc.player == null || mc.player.isElytraFlying()) return;

        switch (mode.getValue()) {
            case "GrimOld" -> {
                mc.player.connection.sendPacket(new CPlayerDiggingPacket(CPlayerDiggingPacket.Action.ABORT_DESTROY_BLOCK, mc.player.getPosition().up(), Direction.NORTH));
                e.cancel();
            }
            case "Test" -> handleTestMode(e);
            case "GrimBow" -> handleGrimBowMode(e);
            case "GrimCrossbow" -> handleGrimCrossbowMode(e);
        }
    }

    private void handleTestMode(SlowWalkingEvent event) {
        if (mc.player == null || mc.player.isElytraFlying()) return;

        if ((mc.player.getHeldItemOffhand().getUseAction() == UseAction.BLOCK ||
                mc.player.getHeldItemOffhand().getUseAction() == UseAction.EAT) &&
                mc.player.getActiveHand() == Hand.MAIN_HAND) {
            return;
        }

        mc.player.connection.sendPacket(new CPlayerTryUseItemPacket(mc.player.getActiveHand()));
        mc.player.connection.sendPacket(new CPlayerTryUseItemPacket(
                mc.player.getActiveHand() == Hand.MAIN_HAND ? Hand.OFF_HAND : Hand.MAIN_HAND));
        event.cancel();
    }

    private void handleGrimBowMode(SlowWalkingEvent event) {
        if (mc.player == null) return;
        if (!mc.player.isHandActive() || !MoveUtil.isMoving()) return;

        if (onlyOnGround.getValue() && !mc.player.isOnGround()) return;

        event.cancel();

        if (bowSwapTimer.elapsed(30)) {
            performBowSwap();
            bowSwapTimer.reset();
        }
    }

    private void handleGrimCrossbowMode(SlowWalkingEvent event) {
        if (mc.player == null) return;
        if (!mc.player.isHandActive() || !MoveUtil.isMoving()) return;

        if (onlyOnGround.getValue() && !mc.player.isOnGround()) return;

        event.cancel();

        if (crossbowSwapTimer.elapsed(30)) {
            performCrossbowSwap();
            crossbowSwapTimer.reset();
        }
    }

    private void handleGrimBowUpdate() {
        if (!mc.player.isHandActive() && isSwapping) {
            isSwapping = false;
        }
    }

    private void handleGrimCrossbowUpdate() {
        if (!mc.player.isHandActive() && isSwapping) {
            isSwapping = false;
        }
    }

    private void performBowSwap() {
        ItemStack currentOffhandItem = mc.player.getHeldItemOffhand();

        int bowSlot = findBowInInventory();

        if (bowSlot != -1) {
            if (!isSwapping) {
                originalOffhandItem = currentOffhandItem.copy();
                isSwapping = true;
            }

            swapItemToOffhand(bowSlot);

            mc.player.connection.sendPacket(new CPlayerTryUseItemPacket(Hand.OFF_HAND));

            if (!originalOffhandItem.isEmpty()) {
                int originalItemSlot = findItemInInventory(originalOffhandItem);
                if (originalItemSlot != -1) {
                    swapItemToOffhand(originalItemSlot);
                }
            }
        }
    }

    private void performCrossbowSwap() {
        ItemStack currentOffhandItem = mc.player.getHeldItemOffhand();

        int crossbowSlot = findCrossbowInInventory();

        if (crossbowSlot != -1) {
            if (!isSwapping) {
                originalOffhandItem = currentOffhandItem.copy();
                isSwapping = true;
            }

            swapItemToOffhand(crossbowSlot);

            mc.player.connection.sendPacket(new CPlayerTryUseItemPacket(Hand.OFF_HAND));

            if (!originalOffhandItem.isEmpty()) {
                int originalItemSlot = findItemInInventory(originalOffhandItem);
                if (originalItemSlot != -1) {
                    swapItemToOffhand(originalItemSlot);
                }
            }
        }
    }

    private int findBowInInventory() {
        for (int i = 0; i < 9; i++) {
            ItemStack stack = mc.player.inventory.getStackInSlot(i);
            if (stack.getItem() == Items.BOW) {
                return i;
            }
        }

        for (int i = 9; i < 36; i++) {
            ItemStack stack = mc.player.inventory.getStackInSlot(i);
            if (stack.getItem() == Items.BOW) {
                return i;
            }
        }

        return -1;
    }

    private int findCrossbowInInventory() {
        for (int i = 0; i < 9; i++) {
            ItemStack stack = mc.player.inventory.getStackInSlot(i);
            if (stack.getItem() == Items.CROSSBOW) {
                return i;
            }
        }

        for (int i = 9; i < 36; i++) {
            ItemStack stack = mc.player.inventory.getStackInSlot(i);
            if (stack.getItem() == Items.CROSSBOW) {
                return i;
            }
        }

        return -1;
    }

    private int findItemInInventory(ItemStack itemToFind) {
        for (int i = 0; i < 9; i++) {
            ItemStack stack = mc.player.inventory.getStackInSlot(i);
            if (ItemStack.areItemsEqual(stack, itemToFind)) {
                return i;
            }
        }

        for (int i = 9; i < 36; i++) {
            ItemStack stack = mc.player.inventory.getStackInSlot(i);
            if (ItemStack.areItemsEqual(stack, itemToFind)) {
                return i;
            }
        }

        return -1;
    }

    private void swapItemToOffhand(int inventorySlot) {
        int containerSlot = inventorySlot < 9 ? inventorySlot + 36 : inventorySlot;

        int offhandSlot = 45;

        mc.player.connection.sendPacket(new CClickWindowPacket(
                0,
                containerSlot,
                0,
                ClickType.SWAP,
                mc.player.inventory.getStackInSlot(inventorySlot),
                mc.player.openContainer.getNextTransactionID(mc.player.inventory)
        ));

        mc.player.connection.sendPacket(new CClickWindowPacket(
                0,
                offhandSlot,
                0,
                ClickType.SWAP,
                mc.player.getHeldItemOffhand(),
                mc.player.openContainer.getNextTransactionID(mc.player.inventory)
        ));
    }

    public boolean isBlockUnderWithMotion() {
        AxisAlignedBB aab = mc.player.getBoundingBox().offset(mc.player.getMotion().x, -0.1, mc.player.getMotion().z);
        return mc.world.getCollisionShapes(mc.player, aab).toList().isEmpty();
    }

    @Override
    public void toggle() {
        super.toggle();
        originalOffhandItem = ItemStack.EMPTY;
        isSwapping = false;
    }
}
 
Последнее редактирование:
На некоторых серваках нужно что-бы лук/арбалет был в левой руке
 
Java:
Expand Collapse Copy
private void handleGrimACMode(NoSlowEvent e) {
        if (ticks % 2 == 0) {
            e.cancel();
        }
    }

и всё
 
/del нахуя?
 
Ебать, оно частично на фт работает. мб если дописать будет работать
 
ну и говнокод
 

Похожие темы

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