Подпишитесь на наш Telegram-канал, чтобы всегда быть в курсе важных обновлений! Перейти

Часть функционала PacketCriticals For Dick Client

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
6 Июн 2024
Сообщения
22
Реакции
0
Выберите загрузчик игры
  1. Прочие моды
Пожалуйста, авторизуйтесь для просмотра ссылки.

PacketCriticals:
Expand Collapse Copy
package DickRecode.functions.impl.combat;

import DickRecode.events.EventPacket;
import DickRecode.events.EventTarget;
import DickRecode.functions.api.Category;
import DickRecode.functions.api.Function;
import DickRecode.functions.api.FunctionRegister;
import DickRecode.functions.settings.impl.ModeSetting;
import DickRecode.utils.client.IMinecraft;
import net.minecraft.block.Blocks;
import net.minecraft.network.play.client.CPlayerPacket;
import net.minecraft.network.play.client.CUseEntityPacket;
import net.minecraft.potion.Effects;
import net.minecraft.util.math.BlockPos;
import DickRecode.events.EventTarget;
import DickRecode.events.EventUpdate;
import DickRecode.functions.api.Category;
import DickRecode.functions.api.Function;
import DickRecode.functions.api.FunctionRegister;
import DickRecode.functions.settings.Setting;
import DickRecode.functions.settings.impl.BooleanSetting;
import DickRecode.functions.settings.impl.SliderSetting;
import DickRecode.utils.math.StopWatch;
import DickRecode.utils.player.InventoryUtil;
import net.minecraft.inventory.container.ClickType;
import net.minecraft.item.AirItem;
import net.minecraft.item.Items;
import net.minecraft.potion.Effects;

@FunctionRegister(
        name = "PacketCriticals",
        description = "Отправляет пакеты для получения критов",
        type = Category.Combat
)
public class PacketCriticals extends Function implements IMinecraft {

    public ModeSetting mode = new ModeSetting("Режим", "Default", "Default", "RW");
    public static boolean cancelCrit = false;

    public PacketCriticals() {
        addSettings(mode);
    }

    @EventTarget
    public void onPacket(EventPacket e) {
        if (mc.player == null || mc.world == null) return;

        if (e.isSend()) {
            if (e.getPacket() instanceof CUseEntityPacket) {
                CUseEntityPacket packet = (CUseEntityPacket) e.getPacket();

                if (packet.getAction() == CUseEntityPacket.Action.ATTACK) {
                    if (mode.is("Default")) {
                        handleDefaultCrit(packet);
                    } else if (mode.is("RW")) {
                        handleRWCrit();
                    }
                }
            }
        }
    }

    private void handleDefaultCrit(CUseEntityPacket packet) {
        if (cancelCrit) return;

        if (!mc.player.isOnGround() && !mc.player.isElytraFlying()) {
            sendDefaultCrit();
        }
    }

    private void handleRWCrit() {
        if (canCritRW()) {
            sendRWCritPackets();
        }
    }

    private void sendDefaultCrit() {
        critPacket(-1.0E-6, false);
    }

    private void critPacket(double yDelta, boolean full) {
        double x = mc.player.getPosX();
        double y = mc.player.getPosY() + yDelta;
        double z = mc.player.getPosZ();
        float yaw = mc.player.lastReportedYaw;
        float pitch = mc.player.lastReportedPitch;

        if (full) {
            mc.player.connection.sendPacket(new CPlayerPacket.PositionPacket(x, y, z, false));
        } else {
            mc.player.connection.sendPacket(new CPlayerPacket.PositionRotationPacket(x, y, z, yaw, pitch, false));
        }
    }

    private boolean canCritRW() {
        boolean hasSlowFalling = mc.player.isPotionActive(Effects.SLOW_FALLING);
        boolean inCobweb = isInCobweb();
        return hasSlowFalling || inCobweb;
    }

    private boolean isInCobweb() {
        BlockPos pos = mc.player.getPosition();
        return mc.world.getBlockState(pos).getBlock() == Blocks.COBWEB;
    }

    private void sendRWCritPackets() {
        double x = mc.player.getPosX();
        double y = mc.player.getPosY();
        double z = mc.player.getPosZ();

        // Режим для ReallyWorld - двойной крит
        mc.player.connection.sendPacket(new CPlayerPacket.PositionPacket(x, y + 0.0625, z, false));
        mc.player.connection.sendPacket(new CPlayerPacket.PositionPacket(x, y + 0.1, z, false));
        mc.player.connection.sendPacket(new CPlayerPacket.PositionPacket(x, y + 0.15, z, false));
        mc.player.connection.sendPacket(new CPlayerPacket.PositionPacket(x, y + 0.1, z, false));
        mc.player.connection.sendPacket(new CPlayerPacket.PositionPacket(x, y + 0.0625, z, false));
        mc.player.connection.sendPacket(new CPlayerPacket.PositionPacket(x, y, z, false));
    }
}
 
PacketCriticals:
Expand Collapse Copy
        // Режим для ReallyWorld - двойной крит
        mc.player.connection.sendPacket(new CPlayerPacket.PositionPacket(x, y + 0.0625, z, false));
        mc.player.connection.sendPacket(new CPlayerPacket.PositionPacket(x, y + 0.1, z, false));
        mc.player.connection.sendPacket(new CPlayerPacket.PositionPacket(x, y + 0.15, z, false));
        mc.player.connection.sendPacket(new CPlayerPacket.PositionPacket(x, y + 0.1, z, false));
        mc.player.connection.sendPacket(new CPlayerPacket.PositionPacket(x, y + 0.0625, z, false));
        mc.player.connection.sendPacket(new CPlayerPacket.PositionPacket(x, y, z, false));
    }
}
что за хуйня
 
Последнее редактирование:
Назад
Сверху Снизу