Исходник Evaware #028 SRC Ready

  • Автор темы Автор темы remulaaa
  • Дата начала Дата начала
/del, хуйня переделывай
 
Пожалуйста, авторизуйтесь для просмотра ссылки.

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

из нового:
step
crystalaura -> ставить обсидиан
Код:
Expand Collapse Copy
package eva.ware.modules.impl.combat;

import com.google.common.eventbus.Subscribe;
import eva.ware.Evaware;
import eva.ware.events.EventInput;
import eva.ware.events.EventMotion;
import eva.ware.events.EventUpdate;
import eva.ware.manager.friend.FriendManager;
import eva.ware.modules.api.Category;
import eva.ware.modules.api.Module;
import eva.ware.modules.api.ModuleRegister;
import eva.ware.modules.settings.api.Setting;
import eva.ware.modules.settings.impl.CheckBoxSetting;
import eva.ware.modules.settings.impl.ModeListSetting;
import eva.ware.modules.settings.impl.ModeSetting;
import eva.ware.modules.settings.impl.SliderSetting;
import eva.ware.ui.clickgui.ClickGuiScreen;
import eva.ware.utils.math.MathUtility;
import eva.ware.utils.math.SensUtility;
import eva.ware.utils.math.TimerUtility;
import eva.ware.utils.player.AttackUtility;
import eva.ware.utils.player.InventoryUtility;
import eva.ware.utils.player.MouseUtility;
import eva.ware.utils.player.MoveUtility;
import eva.ware.utils.player.PlayerUtility;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
import java.util.Random;
import net.minecraft.client.entity.player.ClientPlayerEntity;
import net.minecraft.client.entity.player.RemoteClientPlayerEntity;
import net.minecraft.client.gui.screen.ChatScreen;
import net.minecraft.client.gui.screen.IngameMenuScreen;
import net.minecraft.entity.Entity;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.item.ArmorStandEntity;
import net.minecraft.entity.merchant.villager.VillagerEntity;
import net.minecraft.entity.monster.MonsterEntity;
import net.minecraft.entity.monster.SlimeEntity;
import net.minecraft.entity.passive.AnimalEntity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.inventory.container.ClickType;
import net.minecraft.item.UseAction;
import net.minecraft.network.play.client.CHeldItemChangePacket;
import net.minecraft.util.Hand;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.vector.Vector2f;
import net.minecraft.util.math.vector.Vector3d;

@ModuleRegister(
        name = "HitAura",
        category = Category.Combat
)
public class HitAura extends Module {
    final ModeSetting type = new ModeSetting("Тип", "Плавная", new String[]{"Плавная", "Резкая", "HolyWorld"});
    final ModeSetting visualType = new ModeSetting("Визуальная наводка", "Обычная", new String[]{"Обычная", "Спин-бот", "Никакая"});
    final SliderSetting attackRange = new SliderSetting("Дистанция аттаки", 3.0F, 2.5F, 6.0F, 0.05F);
    final SliderSetting elytraRange = new SliderSetting("Дистанция на элитре", 6.0F, 0.0F, 16.0F, 0.05F);
    final SliderSetting preRange = (new SliderSetting("Дистанция наводки", 0.3F, 0.0F, 3.0F, 0.05F)).visibleIf(() -> {
        return !this.type.is("Резкая");
    });
    final SliderSetting tick = (new SliderSetting("Тики", 2.0F, 1.0F, 10.0F, 1.0F)).visibleIf(() -> {
        return this.type.is("Резкая");
    });
    final ModeSetting clickType = new ModeSetting("Режим кликов", "1.9", new String[]{"1.8", "1.9"});
    final SliderSetting minCPS = (new SliderSetting("Мин. CPS", 7.0F, 1.0F, 10.0F, 1.0F)).visibleIf(() -> {
        return !this.clickType.is("1.9");
    });
    final SliderSetting maxCPS = (new SliderSetting("Макс. CPS", 10.0F, 1.0F, 20.0F, 1.0F)).visibleIf(() -> {
        return !this.clickType.is("1.9");
    });
    final ModeListSetting targets = new ModeListSetting("Таргеты", new CheckBoxSetting[]{new CheckBoxSetting("Игроки", true), new CheckBoxSetting("Голые", true), new CheckBoxSetting("Мобы", false), new CheckBoxSetting("Животные", false), new CheckBoxSetting("Друзья", false), new CheckBoxSetting("Голые невидимки", true), new CheckBoxSetting("Невидимки", true)});
    final ModeListSetting consider = new ModeListSetting("Учитывать", new CheckBoxSetting[]{new CheckBoxSetting("Хп", true), new CheckBoxSetting("Броню", true), new CheckBoxSetting("Дистанцию", true), new CheckBoxSetting("Баффы", true)});
    final ModeListSetting options = new ModeListSetting("Опции", new CheckBoxSetting[]{new CheckBoxSetting("Только криты", true), new CheckBoxSetting("Ломать щит", true), new CheckBoxSetting("Отжимать щит", false), new CheckBoxSetting("Синхронизировать с TPS", false), new CheckBoxSetting("Фокусировать одну цель", true), new CheckBoxSetting("Коррекция движения", true), new CheckBoxSetting("Оптимальная дистанция", false), new CheckBoxSetting("Резольвер", true)});
    final ModeListSetting moreOptions = new ModeListSetting("Дополнительное", new CheckBoxSetting[]{new CheckBoxSetting("Проверка луча", true), new CheckBoxSetting("Перелетать противника", true), new CheckBoxSetting("Бить через стены", true), new CheckBoxSetting("Не бить если кушаешь", false), new CheckBoxSetting("Не бить если в гуи", false), new CheckBoxSetting("Рандомизация", true)});
    final SliderSetting elytraForward = (new SliderSetting("Значение перелета", 75.0F, 1.0F, 100.0F, 1.0F)).visibleIf(() -> {
        return (Boolean)this.moreOptions.is("Перелетать противника").getValue();
    });
    public CheckBoxSetting smartCrits = (new CheckBoxSetting("Умные криты", false)).visibleIf(() -> {
        return (Boolean)this.options.is("Только криты").getValue();
    });
    final ModeSetting correctionType = (new ModeSetting("Тип коррекции", "Незаметный", new String[]{"Незаметный", "Сфокусированный"})).visibleIf(() -> {
        return (Boolean)this.options.is("Коррекция движения").getValue();
    });
    final ModeSetting critType = new ModeSetting("Крит хелпер", "None", new String[]{"None", "Matrix", "NCP", "NCP+", "Grim"});
    private final TimerUtility timerUtility = new TimerUtility();
    public Vector2f rotate = new Vector2f(0.0F, 0.0F);
    public Vector2f visualRotateVector = new Vector2f(0.0F, 0.0F);
    private LivingEntity target;
    private Entity selected;
    int ticks = 0;
    boolean isRotated = false;
    boolean isAttacking = false;
    boolean crystalAuraRule = true;
    boolean elytraTargetRule;
    float lastYaw;
    float lastPitch;
    boolean isReversing = false;
    private float rotationSpeed;
    private float rotationAngle;
    final PotionThrower autoPotion;
    double moreAttackDistanceOnElytra = 0.0;

    float aimDistance() {
        return !this.type.is("Резкая") ? (Float)this.preRange.getValue() : 0.0F;
    }

    float maxRange() {
        return this.attackDistance() + (mc.player.isElytraFlying() ? (Float)this.elytraRange.getValue() : 0.0F) + this.aimDistance();
    }

    public HitAura(PotionThrower autoPotion) {
        this.autoPotion = autoPotion;
        this.addSettings(new Setting[]{this.type, this.visualType, this.attackRange, this.preRange, this.elytraRange, this.tick, this.clickType, this.minCPS, this.maxCPS, this.targets, this.consider, this.options, this.moreOptions, this.elytraForward, this.smartCrits, this.correctionType, this.critType});
    }

    @Subscribe
    public void onInput(EventInput eventInput) {
        if ((Boolean)this.options.is("Коррекция движения").getValue() && this.correctionType.is("Незаметный") && this.crystalAuraRule) {
            MoveUtility.fixMovement(eventInput, this.rotate.x);
        }

    }

    @Subscribe
    public void onUpdate(EventUpdate e) {
        if (this.crystalAuraRule) {
            if ((Boolean)this.options.is("Фокусировать одну цель").getValue() && (this.target == null || !this.isValid(this.target)) || !(Boolean)this.options.is("Фокусировать одну цель").getValue()) {
                this.updateTarget();
            }

            if ((Boolean)this.options.is("Резольвер").getValue()) {
                this.resolvePlayers();
                this.releaseResolver();
            }

            if (this.target != null && (!this.autoPotion.isEnabled() || !this.autoPotion.isActive())) {
                this.isRotated = false;
                this.visualRotationUpdate();
                this.updateRotation();
                if (this.shouldPlayerFalling() && this.timerUtility.hasTimeElapsed()) {
                    this.ticks = ((Float)this.tick.getValue()).intValue();
                    this.forceAttack();
                }

                if (!mc.player.isElytraFlying()) {
                    if (this.type.is("Резкая")) {
                        if (this.ticks > 0) {
                            this.setRotate();
                            --this.ticks;
                        } else {
                            this.reset();
                        }
                    } else if (!this.isRotated) {
                        this.setRotate();
                    }
                } else if (!this.isRotated) {
                    this.setRotate();
                }
            } else {
                this.timerUtility.setLastMS(0L);
                this.reset();
            }

            if (this.target != null && this.isRotated && !mc.player.isElytraFlying() && mc.player.getDistanceEyePos(this.target) <= (double)this.attackDistance()) {
                this.critHelper();
            }

        }
    }

    @Subscribe
    private void onWalking(EventMotion e) {
        if (this.target != null && (!this.autoPotion.isEnabled() || !this.autoPotion.isActive()) && this.crystalAuraRule) {
            float yaw = this.visualRotateVector.x;
            float pitch = this.visualRotateVector.y;
            e.setYaw(this.rotate.x);
            e.setPitch(this.rotate.y);
            mc.player.rotationYawHead = yaw;
            mc.player.renderYawOffset = PlayerUtility.calculateCorrectYawOffset(yaw);
            mc.player.rotationPitchHead = pitch;
        }
    }

    public void setRotate() {
        this.elytraTargetRule = mc.player.isElytraFlying() && this.target.isElytraFlying();
        if (this.type.is("Резкая")) {
            this.updateRotation(2.1474836E9F);
        } else {
            this.updateRotation(9999.0F);
        }

    }

    public float attackDistance() {
        if ((Boolean)this.options.is("Оптимальная дистанция").getValue() && !Evaware.getInst().getModuleManager().getTPInfluence().isEnabled()) {
            return !mc.player.isSwimming() ? (float)(3.6 + this.moreAttackDistanceOnElytra) : (float)(3.0 + this.moreAttackDistanceOnElytra);
        } else {
            return Evaware.getInst().getModuleManager().getTPInfluence().isEnabled() && !Evaware.getInst().getModuleManager().getFreeCam().isEnabled() ? (Float)Evaware.getInst().getModuleManager().getTPInfluence().range.getValue() : (float)((double)(Float)this.attackRange.getValue() + this.moreAttackDistanceOnElytra);
        }
    }

    public void resolvePlayers() {
        Iterator var1 = mc.world.getPlayers().iterator();

        while(var1.hasNext()) {
            PlayerEntity player = (PlayerEntity)var1.next();
            if (player instanceof RemoteClientPlayerEntity) {
                ((RemoteClientPlayerEntity)player).resolve();
            }
        }

    }

    public void releaseResolver() {
        Iterator var1 = mc.world.getPlayers().iterator();

        while(var1.hasNext()) {
            PlayerEntity player = (PlayerEntity)var1.next();
            if (player instanceof RemoteClientPlayerEntity) {
                ((RemoteClientPlayerEntity)player).releaseResolver();
            }
        }

    }

    private void updateTarget() {
        List<LivingEntity> targets = new ArrayList();
        Iterator var2 = mc.world.getAllEntities().iterator();

        while(var2.hasNext()) {
            Entity entity = (Entity)var2.next();
            if (entity instanceof LivingEntity living) {
                if (this.isValid(living)) {
                    targets.add(living);
                }
            }
        }

        if (targets.isEmpty()) {
            this.target = null;
        } else if (targets.size() == 1) {
            this.target = (LivingEntity)targets.get(0);
        } else {
            targets.sort(Comparator.comparingDouble((entityx) -> {
                return MathUtility.entity(entityx, (Boolean)this.consider.is("Хп").getValue(), (Boolean)this.consider.is("Броню").getValue(), (Boolean)this.consider.is("Дистанцию").getValue(), (double)this.maxRange(), (Boolean)this.consider.is("Баффы").getValue());
            }));
            this.target = (LivingEntity)targets.get(0);
        }
    }

    private void updateRotation(float rotationYawSpeed) {
        float scaleFactor = (Boolean)this.moreOptions.is("Перелетать противника").getValue() ? (PlayerUtility.getEntityBPS(this.target, false) > 8.0 ? (Float)this.elytraForward.getValue() / 20.0F : 1.0F) : 1.0F;
        Vector3d vec;
        float yawToTarget;
        float pitchToTarget;
        float yawDelta;
        float pitchDelta;
        float yaw;
        float pitch;
        float gcd;
        float clampedYaw;
        float clampedPitch;
        float randomYawFactor;
        float randomPitchFactor;
        float randomThreshold;
        float randomAddition;
        if (this.elytraTargetRule) {
            vec = this.target.getPositionVec().add(0.0, MathHelper.clamp(this.target.getPosY() - (double)this.target.getHeight(), 0.0, (double)(this.target.getHeight() / 2.0F)), 0.0).subtract(mc.player.getEyePosition(1.0F)).add(this.target.getMotion().mul(this.elytraTargetRule ? (double)scaleFactor : 1.0, mc.player.isElytraFlying() && this.target.isElytraFlying() ? (double)scaleFactor : 1.0, mc.player.isElytraFlying() && this.target.isElytraFlying() ? (double)scaleFactor : 1.0));
            yawToTarget = (float)MathHelper.wrapDegrees(Math.toDegrees(Math.atan2(vec.z, vec.x)) - 90.0);
            pitchToTarget = (float)(-Math.toDegrees(Math.atan2(vec.y, Math.hypot(vec.x, vec.z))));
            yawDelta = MathHelper.wrapDegrees(yawToTarget - this.rotate.x);
            pitchDelta = MathHelper.wrapDegrees(pitchToTarget - this.rotate.y);
            switch ((String)this.type.getValue()) {
                case "Плавная":
                    yaw = Math.min(Math.max(Math.abs(yawDelta), 1.0F), rotationYawSpeed);
                    pitch = Math.max(Math.abs(pitchDelta), 1.0F);
                    gcd = this.rotate.x + (yawDelta > 0.0F ? yaw : -yaw) + SensUtility.getSensitivity((float)(Math.cos((double)System.currentTimeMillis() / 50.0) * 7.0));
                    pitch = MathHelper.clamp(this.rotate.y + (pitchDelta > 0.0F ? pitch : -pitch), -89.0F, 89.0F) + SensUtility.getSensitivity((float)(Math.cos((double)System.currentTimeMillis() / 50.0) * 7.0));
                    gcd -= (gcd - this.rotate.x) % SensUtility.getGCDValue();
                    pitch -= (pitch - this.rotate.y) % SensUtility.getGCDValue();
                    this.rotate = new Vector2f(gcd, pitch);
                    this.lastYaw = yaw;
                    this.lastPitch = pitch;
                    break;
                case "Резкая":
                    yaw = this.rotate.x + yawDelta;
                    pitch = MathHelper.clamp(this.rotate.y + pitchDelta, -90.0F, 90.0F);
                    gcd = SensUtility.getGCDValue();
                    yaw -= (yaw - this.rotate.x) % gcd;
                    pitch -= (pitch - this.rotate.y) % gcd;
                    this.rotate = new Vector2f(yaw, pitch);
                    break;
                case "HolyWorld":
                    clampedYaw = Math.min(Math.max(Math.abs(yawDelta), 1.0E-4F), 52.0F);
                    clampedPitch = Math.min(Math.max(Math.abs(pitchDelta), 1.0E-4F), 22.0F);
                    randomYawFactor = (float)(Math.random() * 1.5 - 1.5);
                    randomPitchFactor = (float)(Math.random() * 1.5 - 1.0);
                    randomThreshold = (float)(Math.random() * 1.5);
                    randomAddition = (float)(Math.random() * 2.5 + 1.5);
                    if (this.selected != this.target) {
                        clampedPitch = Math.max(Math.abs(pitchDelta), 1.0F);
                    } else {
                        clampedPitch /= 3.0F;
                    }

                    if (Math.abs(clampedYaw - this.lastYaw) <= randomThreshold) {
                        clampedYaw = this.lastYaw + randomAddition;
                    }

                    clampedYaw += randomYawFactor;
                    clampedPitch += randomPitchFactor;
                    yaw = this.rotate.x + (yawDelta > 0.0F ? clampedYaw : -clampedYaw);
                    pitch = MathHelper.clamp(this.rotate.y + (pitchDelta > 0.0F ? clampedPitch : -clampedPitch), -90.0F, 90.0F);
                    gcd = SensUtility.getGCDValue();
                    yaw -= (yaw - this.rotate.x) % gcd;
                    pitch -= (pitch - this.rotate.y) % gcd;
                    this.rotate = new Vector2f(yaw, pitch);
                    this.lastYaw = clampedYaw;
                    this.lastPitch = clampedPitch;
            }
        } else {
            vec = this.target.getPositionVec().add(0.0, MathHelper.clamp(this.target.getPosY() - (double)this.target.getHeight(), 0.0, (double)(this.target.getHeight() / 2.0F)), 0.0).subtract(mc.player.getEyePosition(1.0F));
            yawToTarget = (float)MathHelper.wrapDegrees(Math.toDegrees(Math.atan2(vec.z, vec.x)) - 90.0);
            pitchToTarget = (float)(-Math.toDegrees(Math.atan2(vec.y, Math.hypot(vec.x, vec.z))));
            yawDelta = MathHelper.wrapDegrees(yawToTarget - this.rotate.x);
            pitchDelta = MathHelper.wrapDegrees(pitchToTarget - this.rotate.y);
            int roundedYaw = (int)yawDelta;
            switch ((String)this.type.getValue()) {
                case "Плавная":
                    yaw = Math.min(Math.max(Math.abs(yawDelta), 1.0F), rotationYawSpeed);
                    pitch = Math.max(Math.abs(pitchDelta), 1.0F);
                    gcd = this.rotate.x + (yawDelta > 0.0F ? yaw : -yaw);
                    pitch = MathHelper.clamp(this.rotate.y + (pitchDelta > 0.0F ? pitch : -pitch), -89.0F, 89.0F);
                    gcd -= (gcd - this.rotate.x) % SensUtility.getGCDValue();
                    pitch -= (pitch - this.rotate.y) % SensUtility.getGCDValue();
                    this.rotate = new Vector2f(gcd, pitch);
                    this.lastYaw = yaw;
                    this.lastPitch = pitch;
                    break;
                case "Резкая":
                    yaw = this.rotate.x + (float)roundedYaw;
                    pitch = MathHelper.clamp(this.rotate.y + pitchDelta, -90.0F, 90.0F);
                    gcd = SensUtility.getGCDValue();
                    yaw -= (yaw - this.rotate.x) % gcd;
                    pitch -= (pitch - this.rotate.y) % gcd;
                    this.rotate = new Vector2f(yaw, pitch);
                    break;
                case "HolyWorld":
                    clampedYaw = Math.min(Math.max(Math.abs(yawDelta), 1.0E-4F), 52.0F);
                    clampedPitch = Math.min(Math.max(Math.abs(pitchDelta), 1.0E-4F), 22.0F);
                    randomYawFactor = (float)(Math.random() * 1.5 - 1.5);
                    randomPitchFactor = (float)(Math.random() * 1.5 - 1.0);
                    randomThreshold = (float)(Math.random() * 1.5);
                    randomAddition = (float)(Math.random() * 2.5 + 1.5);
                    if (this.selected != this.target) {
                        clampedPitch = Math.max(Math.abs(pitchDelta), 1.0F);
                    } else {
                        clampedPitch /= 3.0F;
                    }

                    if (Math.abs(clampedYaw - this.lastYaw) <= randomThreshold) {
                        clampedYaw = this.lastYaw + randomAddition;
                    }

                    clampedYaw += randomYawFactor;
                    clampedPitch += randomPitchFactor;
                    yaw = this.rotate.x + (yawDelta > 0.0F ? clampedYaw : -clampedYaw);
                    pitch = MathHelper.clamp(this.rotate.y + (pitchDelta > 0.0F ? clampedPitch : -clampedPitch), -90.0F, 90.0F);
                    gcd = SensUtility.getGCDValue();
                    yaw -= (yaw - this.rotate.x) % gcd;
                    pitch -= (pitch - this.rotate.y) % gcd;
                    this.rotate = new Vector2f(yaw, pitch);
                    this.lastYaw = clampedYaw;
                    this.lastPitch = clampedPitch;
            }
        }

        if ((Boolean)this.options.is("Коррекция движения").getValue()) {
            mc.player.rotationYawOffset = this.rotate.x;
        }

    }

    private void visualRotationUpdate() {
        Vector3d vec = this.target.getPositionVec().add(0.0, MathHelper.clamp(mc.player.getPosYEye() - this.target.getPosY(), 0.0, (double)this.target.getHeight() * (mc.player.getDistanceEyePos(this.target) / (double)this.attackDistance())), 0.0).subtract(mc.player.getEyePosition(1.0F));
        float yawDelta = (float)MathHelper.wrapDegrees(MathHelper.wrapDegrees(Math.toDegrees(Math.atan2(vec.z, vec.x)) - 90.0) - (double)this.visualRotateVector.x);
        float pitchDelta = (float)MathHelper.wrapDegrees(-Math.toDegrees(Math.atan2(vec.y, Math.hypot(vec.x, vec.z))) - (double)this.visualRotateVector.y);
        int roundYawDelta = (int)Math.abs(yawDelta);
        int roundPitchDelta = (int)Math.abs(pitchDelta);
        float gcd = SensUtility.getGCDValue();
        float yaw = 0.0F;
        float pitch = 0.0F;
        float clampedPitch = 0.0F;
        float clampedYaw = 0.0F;
        switch ((String)this.visualType.getValue()) {
            case "Обычная":
                clampedYaw = (float)Math.min(roundYawDelta, 40);
                clampedPitch = Math.min((float)roundPitchDelta * 0.33F, 30.0F);
                yaw = this.visualRotateVector.x + (yawDelta > 0.0F ? clampedYaw : -clampedYaw);
                pitch = MathHelper.clamp(this.visualRotateVector.y + (pitchDelta > 0.0F ? clampedPitch : -clampedPitch), -89.0F, 89.0F);
                yaw -= (yaw - this.visualRotateVector.x) % gcd;
                pitch -= (pitch - this.visualRotateVector.y) % gcd;
                break;
            case "Спин-бот":
                clampedPitch = Math.min((float)roundPitchDelta * 0.33F, 30.0F);
                pitch = MathHelper.clamp(this.visualRotateVector.y + (pitchDelta > 0.0F ? clampedPitch : -clampedPitch), -89.0F, 89.0F);
                pitch -= (pitch - this.visualRotateVector.y) % gcd;
                yaw = this.rotationAngle;
                break;
            case "Никакая":
                yaw = mc.player.rotationYaw;
                pitch = mc.player.rotationPitch;
        }

        this.visualRotateVector = new Vector2f(yaw, pitch);
        this.lastYaw = clampedYaw;
        this.lastPitch = clampedPitch;
    }

    public void updateRotation() {
        float limitSpeed = 60.0F;
        float reverseSpeed = 5.0F;
        if (!this.isReversing) {
            this.rotationSpeed += reverseSpeed;
            if (this.rotationSpeed > limitSpeed) {
                this.rotationSpeed = limitSpeed;
                this.isReversing = true;
            }
        } else {
            this.rotationSpeed -= reverseSpeed;
            if (this.rotationSpeed < -limitSpeed) {
                this.rotationSpeed = -limitSpeed;
                this.isReversing = false;
            }
        }

        this.rotationAngle += this.rotationSpeed;
        this.rotationAngle = (this.rotationAngle + 360.0F) % 360.0F;
    }

    public void critHelper() {
        switch ((String)this.critType.getValue()) {
            case "None":
                return;
            case "Matrix":
                if (mc.player.isJumping && mc.player.motion.getY() < -0.1 && (double)mc.player.fallDistance > 0.5 && MoveUtility.getMotion() < 0.12) {
                    mc.player.motion.y = -1.0;
                }
                break;
            case "NCP":
                if (mc.player.isJumping && mc.player.fallDistance != 0.0F) {
                    Vector3d var10000 = mc.player.motion;
                    var10000.y -= 0.078;
                }
                break;
            case "NCP+":
                if ((double)mc.player.fallDistance > 0.7 && (double)mc.player.fallDistance < 0.8 && this.target != null) {
                    mc.timer.timerSpeed = 2.0F;
                } else {
                    mc.timer.timerSpeed = 1.0F;
                }
                break;
            case "Grim":
                if (mc.player.isJumping && mc.player.fallDistance > 0.0F && (double)mc.player.fallDistance <= 1.2 && !MoveUtility.moveKeysPressed()) {
                    mc.player.jumpTicks = 0;
                    if ((double)mc.timer.timerSpeed == 1.0) {
                        mc.timer.timerSpeed = 1.005F;
                    }
                }
        }

    }

    private void forceAttack() {
        if (this.isAttacking || this.canAttack()) {
            this.isAttacking = true;

            try {
                this.preAttack();
                this.attack();
                this.postAttack();
            } finally {
                this.isAttacking = false;
            }

        }
    }

    private boolean canAttack() {
        this.selected = MouseUtility.getMouseOver(this.target, this.rotate.x, this.rotate.y, (double)this.attackDistance());
        if (mc.player.getDistanceEyePos(this.target) > (double)this.attackDistance()) {
            return false;
        } else if ((Boolean)this.moreOptions.is("Проверка луча").getValue() && !this.elytraTargetRule && this.selected == null) {
            return false;
        } else if (!(Boolean)this.moreOptions.is("Бить через стены").getValue() && !mc.player.canEntityBeSeen(this.target)) {
            return false;
        } else if ((Boolean)this.moreOptions.is("Не бить если кушаешь").getValue() && mc.player.isHandActive() && mc.player.getHeldItemOffhand().getUseAction() == UseAction.EAT) {
            return false;
        } else {
            return !(Boolean)this.moreOptions.is("Не бить если в гуи").getValue() || mc.currentScreen == null || mc.currentScreen instanceof ClickGuiScreen || mc.currentScreen instanceof ChatScreen || mc.currentScreen instanceof IngameMenuScreen;
        }
    }

    private void preAttack() {
        Evaware.getInst().getModuleManager().getTPInfluence().hitAuraTPPRe(this.target);
        if (mc.player.isBlocking() && (Boolean)this.options.is("Отжимать щит").getValue()) {
            mc.playerController.onStoppedUsingItem(mc.player);
        }

    }

    private void attack() {
        int minCPSValue = ((Float)this.minCPS.getValue()).intValue();
        int maxCPSValue = ((Float)this.maxCPS.getValue()).intValue();
        if (minCPSValue > maxCPSValue) {
            maxCPSValue = minCPSValue;
        }

        int minMS = 1000 / maxCPSValue;
        int maxMS = 1000 / minCPSValue;
        Random random = new Random();
        int randomMS = random.nextInt(maxMS - minMS + 1) + minMS;
        this.timerUtility.setLastMS(this.clickType.is("1.9") ? 500L : (long)randomMS);
        Criticals.cancelCrit = true;
        if (Evaware.getInst().getModuleManager().getCriticals().isEnabled() && Criticals.canUseCriticals()) {
            Evaware.getInst().getModuleManager().getCriticals().sendCrit();
        }

        mc.playerController.attackEntity(mc.player, this.target);
        mc.player.swingArm(Hand.MAIN_HAND);
        Criticals.cancelCrit = false;
    }

    private void postAttack() {
        LivingEntity var2 = this.target;
        if (var2 instanceof PlayerEntity player) {
            if ((Boolean)this.options.is("Ломать щит").getValue()) {
                this.breakShieldPlayer(player);
            }
        }

        Evaware.getInst().getModuleManager().getTPInfluence().hitAuraTPPost(this.target);
    }

    public boolean shouldPlayerFalling() {
        return AttackUtility.isPlayerFalling((Boolean)this.options.is("Только криты").getValue() && !Criticals.canUseCriticals(), (Boolean)this.smartCrits.getValue(), (Boolean)this.options.is("Синхронизировать с TPS").getValue(), this.clickType.is("1.9"));
    }

    private boolean isValid(LivingEntity entity) {
        if (entity instanceof ClientPlayerEntity) {
            return false;
        } else if (entity.ticksExisted < 3) {
            return false;
        } else if (mc.player.getDistanceEyePos(entity) > (double)this.maxRange()) {
            return false;
        } else if (entity == Evaware.getInst().getModuleManager().getFreeCam().fakePlayer) {
            return false;
        } else {
            if (entity instanceof PlayerEntity) {
                PlayerEntity p = (PlayerEntity)entity;
                if (AntiBot.isBot(entity)) {
                    return false;
                }

                if (!(Boolean)this.targets.is("Друзья").getValue() && FriendManager.isFriend(p.getName().getString())) {
                    return false;
                }

                if (p.getName().getString().equalsIgnoreCase(mc.player.getName().getString())) {
                    return false;
                }
            }

            if (entity instanceof PlayerEntity && !(Boolean)this.targets.is("Игроки").getValue()) {
                return false;
            } else if (entity instanceof PlayerEntity && entity.getTotalArmorValue() == 0 && !(Boolean)this.targets.is("Голые").getValue()) {
                return false;
            } else if (entity instanceof PlayerEntity && entity.isInvisible() && entity.getTotalArmorValue() == 0 && !(Boolean)this.targets.is("Голые невидимки").getValue()) {
                return false;
            } else if (entity instanceof PlayerEntity && entity.isInvisible() && !(Boolean)this.targets.is("Невидимки").getValue()) {
                return false;
            } else if (entity instanceof PlayerEntity && ((PlayerEntity)entity).isCreative()) {
                return false;
            } else if ((entity instanceof MonsterEntity || entity instanceof SlimeEntity || entity instanceof VillagerEntity) && !(Boolean)this.targets.is("Мобы").getValue()) {
                return false;
            } else if (entity instanceof AnimalEntity && !(Boolean)this.targets.is("Животные").getValue()) {
                return false;
            } else {
                return !entity.isInvulnerable() && entity.isAlive() && !(entity instanceof ArmorStandEntity);
            }
        }
    }

    private void breakShieldPlayer(PlayerEntity entity) {
        if (entity.isBlocking()) {
            int invSlot = InventoryUtility.getInstance().getAxeInInventory(false);
            int hotBarSlot = InventoryUtility.getInstance().getAxeInInventory(true);
            if (hotBarSlot == -1 && invSlot != -1) {
                int bestSlot = InventoryUtility.getInstance().findBestSlotInHotBar();
                mc.playerController.windowClick(0, invSlot, 0, ClickType.PICKUP, mc.player);
                mc.playerController.windowClick(0, bestSlot + 36, 0, ClickType.PICKUP, mc.player);
                mc.player.connection.sendPacket(new CHeldItemChangePacket(bestSlot));
                mc.playerController.attackEntity(mc.player, entity);
                mc.player.swingArm(Hand.MAIN_HAND);
                mc.player.connection.sendPacket(new CHeldItemChangePacket(mc.player.inventory.currentItem));
                mc.playerController.windowClick(0, bestSlot + 36, 0, ClickType.PICKUP, mc.player);
                mc.playerController.windowClick(0, invSlot, 0, ClickType.PICKUP, mc.player);
            }

            if (hotBarSlot != -1) {
                mc.player.connection.sendPacket(new CHeldItemChangePacket(hotBarSlot));
                mc.playerController.attackEntity(mc.player, entity);
                mc.player.swingArm(Hand.MAIN_HAND);
                mc.player.connection.sendPacket(new CHeldItemChangePacket(mc.player.inventory.currentItem));
            }
        }

    }

    private void reset() {
        if ((Boolean)this.options.is("Коррекция движения").getValue()) {
            mc.player.rotationYawOffset = -2.1474836E9F;
        }

        this.rotate = new Vector2f(mc.player.rotationYaw, mc.player.rotationPitch);
    }

    public void onEnable() {
        super.onEnable();
        this.reset();
        this.target = null;
    }

    public void onDisable() {
        super.onDisable();
        this.reset();
        this.timerUtility.setLastMS(0L);
        this.target = null;
        mc.timer.timerSpeed = 1.0F;
    }

    public ModeSetting getType() {
        return this.type;
    }

    public ModeListSetting getOptions() {
        return this.options;
    }

    public ModeListSetting getMoreOptions() {
        return this.moreOptions;
    }

    public TimerUtility getTimerUtility() {
        return this.timerUtility;
    }

    public LivingEntity getTarget() {
        return this.target;
    }

    public void setTarget(LivingEntity target) {
        this.target = target;
    }
}
держите рабочую килку с евы
 
Сделай клик гуи норм тогда ваще топчик будет
 
Код:
Expand Collapse Copy
package eva.ware.modules.impl.combat;

import com.google.common.eventbus.Subscribe;
import eva.ware.Evaware;
import eva.ware.events.EventInput;
import eva.ware.events.EventMotion;
import eva.ware.events.EventUpdate;
import eva.ware.manager.friend.FriendManager;
import eva.ware.modules.api.Category;
import eva.ware.modules.api.Module;
import eva.ware.modules.api.ModuleRegister;
import eva.ware.modules.settings.api.Setting;
import eva.ware.modules.settings.impl.CheckBoxSetting;
import eva.ware.modules.settings.impl.ModeListSetting;
import eva.ware.modules.settings.impl.ModeSetting;
import eva.ware.modules.settings.impl.SliderSetting;
import eva.ware.ui.clickgui.ClickGuiScreen;
import eva.ware.utils.math.MathUtility;
import eva.ware.utils.math.SensUtility;
import eva.ware.utils.math.TimerUtility;
import eva.ware.utils.player.AttackUtility;
import eva.ware.utils.player.InventoryUtility;
import eva.ware.utils.player.MouseUtility;
import eva.ware.utils.player.MoveUtility;
import eva.ware.utils.player.PlayerUtility;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
import java.util.Random;
import net.minecraft.client.entity.player.ClientPlayerEntity;
import net.minecraft.client.entity.player.RemoteClientPlayerEntity;
import net.minecraft.client.gui.screen.ChatScreen;
import net.minecraft.client.gui.screen.IngameMenuScreen;
import net.minecraft.entity.Entity;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.item.ArmorStandEntity;
import net.minecraft.entity.merchant.villager.VillagerEntity;
import net.minecraft.entity.monster.MonsterEntity;
import net.minecraft.entity.monster.SlimeEntity;
import net.minecraft.entity.passive.AnimalEntity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.inventory.container.ClickType;
import net.minecraft.item.UseAction;
import net.minecraft.network.play.client.CHeldItemChangePacket;
import net.minecraft.util.Hand;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.vector.Vector2f;
import net.minecraft.util.math.vector.Vector3d;

@ModuleRegister(
        name = "HitAura",
        category = Category.Combat
)
public class HitAura extends Module {
    final ModeSetting type = new ModeSetting("Тип", "Плавная", new String[]{"Плавная", "Резкая", "HolyWorld"});
    final ModeSetting visualType = new ModeSetting("Визуальная наводка", "Обычная", new String[]{"Обычная", "Спин-бот", "Никакая"});
    final SliderSetting attackRange = new SliderSetting("Дистанция аттаки", 3.0F, 2.5F, 6.0F, 0.05F);
    final SliderSetting elytraRange = new SliderSetting("Дистанция на элитре", 6.0F, 0.0F, 16.0F, 0.05F);
    final SliderSetting preRange = (new SliderSetting("Дистанция наводки", 0.3F, 0.0F, 3.0F, 0.05F)).visibleIf(() -> {
        return !this.type.is("Резкая");
    });
    final SliderSetting tick = (new SliderSetting("Тики", 2.0F, 1.0F, 10.0F, 1.0F)).visibleIf(() -> {
        return this.type.is("Резкая");
    });
    final ModeSetting clickType = new ModeSetting("Режим кликов", "1.9", new String[]{"1.8", "1.9"});
    final SliderSetting minCPS = (new SliderSetting("Мин. CPS", 7.0F, 1.0F, 10.0F, 1.0F)).visibleIf(() -> {
        return !this.clickType.is("1.9");
    });
    final SliderSetting maxCPS = (new SliderSetting("Макс. CPS", 10.0F, 1.0F, 20.0F, 1.0F)).visibleIf(() -> {
        return !this.clickType.is("1.9");
    });
    final ModeListSetting targets = new ModeListSetting("Таргеты", new CheckBoxSetting[]{new CheckBoxSetting("Игроки", true), new CheckBoxSetting("Голые", true), new CheckBoxSetting("Мобы", false), new CheckBoxSetting("Животные", false), new CheckBoxSetting("Друзья", false), new CheckBoxSetting("Голые невидимки", true), new CheckBoxSetting("Невидимки", true)});
    final ModeListSetting consider = new ModeListSetting("Учитывать", new CheckBoxSetting[]{new CheckBoxSetting("Хп", true), new CheckBoxSetting("Броню", true), new CheckBoxSetting("Дистанцию", true), new CheckBoxSetting("Баффы", true)});
    final ModeListSetting options = new ModeListSetting("Опции", new CheckBoxSetting[]{new CheckBoxSetting("Только криты", true), new CheckBoxSetting("Ломать щит", true), new CheckBoxSetting("Отжимать щит", false), new CheckBoxSetting("Синхронизировать с TPS", false), new CheckBoxSetting("Фокусировать одну цель", true), new CheckBoxSetting("Коррекция движения", true), new CheckBoxSetting("Оптимальная дистанция", false), new CheckBoxSetting("Резольвер", true)});
    final ModeListSetting moreOptions = new ModeListSetting("Дополнительное", new CheckBoxSetting[]{new CheckBoxSetting("Проверка луча", true), new CheckBoxSetting("Перелетать противника", true), new CheckBoxSetting("Бить через стены", true), new CheckBoxSetting("Не бить если кушаешь", false), new CheckBoxSetting("Не бить если в гуи", false), new CheckBoxSetting("Рандомизация", true)});
    final SliderSetting elytraForward = (new SliderSetting("Значение перелета", 75.0F, 1.0F, 100.0F, 1.0F)).visibleIf(() -> {
        return (Boolean)this.moreOptions.is("Перелетать противника").getValue();
    });
    public CheckBoxSetting smartCrits = (new CheckBoxSetting("Умные криты", false)).visibleIf(() -> {
        return (Boolean)this.options.is("Только криты").getValue();
    });
    final ModeSetting correctionType = (new ModeSetting("Тип коррекции", "Незаметный", new String[]{"Незаметный", "Сфокусированный"})).visibleIf(() -> {
        return (Boolean)this.options.is("Коррекция движения").getValue();
    });
    final ModeSetting critType = new ModeSetting("Крит хелпер", "None", new String[]{"None", "Matrix", "NCP", "NCP+", "Grim"});
    private final TimerUtility timerUtility = new TimerUtility();
    public Vector2f rotate = new Vector2f(0.0F, 0.0F);
    public Vector2f visualRotateVector = new Vector2f(0.0F, 0.0F);
    private LivingEntity target;
    private Entity selected;
    int ticks = 0;
    boolean isRotated = false;
    boolean isAttacking = false;
    boolean crystalAuraRule = true;
    boolean elytraTargetRule;
    float lastYaw;
    float lastPitch;
    boolean isReversing = false;
    private float rotationSpeed;
    private float rotationAngle;
    final PotionThrower autoPotion;
    double moreAttackDistanceOnElytra = 0.0;

    float aimDistance() {
        return !this.type.is("Резкая") ? (Float)this.preRange.getValue() : 0.0F;
    }

    float maxRange() {
        return this.attackDistance() + (mc.player.isElytraFlying() ? (Float)this.elytraRange.getValue() : 0.0F) + this.aimDistance();
    }

    public HitAura(PotionThrower autoPotion) {
        this.autoPotion = autoPotion;
        this.addSettings(new Setting[]{this.type, this.visualType, this.attackRange, this.preRange, this.elytraRange, this.tick, this.clickType, this.minCPS, this.maxCPS, this.targets, this.consider, this.options, this.moreOptions, this.elytraForward, this.smartCrits, this.correctionType, this.critType});
    }

    @Subscribe
    public void onInput(EventInput eventInput) {
        if ((Boolean)this.options.is("Коррекция движения").getValue() && this.correctionType.is("Незаметный") && this.crystalAuraRule) {
            MoveUtility.fixMovement(eventInput, this.rotate.x);
        }

    }

    @Subscribe
    public void onUpdate(EventUpdate e) {
        if (this.crystalAuraRule) {
            if ((Boolean)this.options.is("Фокусировать одну цель").getValue() && (this.target == null || !this.isValid(this.target)) || !(Boolean)this.options.is("Фокусировать одну цель").getValue()) {
                this.updateTarget();
            }

            if ((Boolean)this.options.is("Резольвер").getValue()) {
                this.resolvePlayers();
                this.releaseResolver();
            }

            if (this.target != null && (!this.autoPotion.isEnabled() || !this.autoPotion.isActive())) {
                this.isRotated = false;
                this.visualRotationUpdate();
                this.updateRotation();
                if (this.shouldPlayerFalling() && this.timerUtility.hasTimeElapsed()) {
                    this.ticks = ((Float)this.tick.getValue()).intValue();
                    this.forceAttack();
                }

                if (!mc.player.isElytraFlying()) {
                    if (this.type.is("Резкая")) {
                        if (this.ticks > 0) {
                            this.setRotate();
                            --this.ticks;
                        } else {
                            this.reset();
                        }
                    } else if (!this.isRotated) {
                        this.setRotate();
                    }
                } else if (!this.isRotated) {
                    this.setRotate();
                }
            } else {
                this.timerUtility.setLastMS(0L);
                this.reset();
            }

            if (this.target != null && this.isRotated && !mc.player.isElytraFlying() && mc.player.getDistanceEyePos(this.target) <= (double)this.attackDistance()) {
                this.critHelper();
            }

        }
    }

    @Subscribe
    private void onWalking(EventMotion e) {
        if (this.target != null && (!this.autoPotion.isEnabled() || !this.autoPotion.isActive()) && this.crystalAuraRule) {
            float yaw = this.visualRotateVector.x;
            float pitch = this.visualRotateVector.y;
            e.setYaw(this.rotate.x);
            e.setPitch(this.rotate.y);
            mc.player.rotationYawHead = yaw;
            mc.player.renderYawOffset = PlayerUtility.calculateCorrectYawOffset(yaw);
            mc.player.rotationPitchHead = pitch;
        }
    }

    public void setRotate() {
        this.elytraTargetRule = mc.player.isElytraFlying() && this.target.isElytraFlying();
        if (this.type.is("Резкая")) {
            this.updateRotation(2.1474836E9F);
        } else {
            this.updateRotation(9999.0F);
        }

    }

    public float attackDistance() {
        if ((Boolean)this.options.is("Оптимальная дистанция").getValue() && !Evaware.getInst().getModuleManager().getTPInfluence().isEnabled()) {
            return !mc.player.isSwimming() ? (float)(3.6 + this.moreAttackDistanceOnElytra) : (float)(3.0 + this.moreAttackDistanceOnElytra);
        } else {
            return Evaware.getInst().getModuleManager().getTPInfluence().isEnabled() && !Evaware.getInst().getModuleManager().getFreeCam().isEnabled() ? (Float)Evaware.getInst().getModuleManager().getTPInfluence().range.getValue() : (float)((double)(Float)this.attackRange.getValue() + this.moreAttackDistanceOnElytra);
        }
    }

    public void resolvePlayers() {
        Iterator var1 = mc.world.getPlayers().iterator();

        while(var1.hasNext()) {
            PlayerEntity player = (PlayerEntity)var1.next();
            if (player instanceof RemoteClientPlayerEntity) {
                ((RemoteClientPlayerEntity)player).resolve();
            }
        }

    }

    public void releaseResolver() {
        Iterator var1 = mc.world.getPlayers().iterator();

        while(var1.hasNext()) {
            PlayerEntity player = (PlayerEntity)var1.next();
            if (player instanceof RemoteClientPlayerEntity) {
                ((RemoteClientPlayerEntity)player).releaseResolver();
            }
        }

    }

    private void updateTarget() {
        List<LivingEntity> targets = new ArrayList();
        Iterator var2 = mc.world.getAllEntities().iterator();

        while(var2.hasNext()) {
            Entity entity = (Entity)var2.next();
            if (entity instanceof LivingEntity living) {
                if (this.isValid(living)) {
                    targets.add(living);
                }
            }
        }

        if (targets.isEmpty()) {
            this.target = null;
        } else if (targets.size() == 1) {
            this.target = (LivingEntity)targets.get(0);
        } else {
            targets.sort(Comparator.comparingDouble((entityx) -> {
                return MathUtility.entity(entityx, (Boolean)this.consider.is("Хп").getValue(), (Boolean)this.consider.is("Броню").getValue(), (Boolean)this.consider.is("Дистанцию").getValue(), (double)this.maxRange(), (Boolean)this.consider.is("Баффы").getValue());
            }));
            this.target = (LivingEntity)targets.get(0);
        }
    }

    private void updateRotation(float rotationYawSpeed) {
        float scaleFactor = (Boolean)this.moreOptions.is("Перелетать противника").getValue() ? (PlayerUtility.getEntityBPS(this.target, false) > 8.0 ? (Float)this.elytraForward.getValue() / 20.0F : 1.0F) : 1.0F;
        Vector3d vec;
        float yawToTarget;
        float pitchToTarget;
        float yawDelta;
        float pitchDelta;
        float yaw;
        float pitch;
        float gcd;
        float clampedYaw;
        float clampedPitch;
        float randomYawFactor;
        float randomPitchFactor;
        float randomThreshold;
        float randomAddition;
        if (this.elytraTargetRule) {
            vec = this.target.getPositionVec().add(0.0, MathHelper.clamp(this.target.getPosY() - (double)this.target.getHeight(), 0.0, (double)(this.target.getHeight() / 2.0F)), 0.0).subtract(mc.player.getEyePosition(1.0F)).add(this.target.getMotion().mul(this.elytraTargetRule ? (double)scaleFactor : 1.0, mc.player.isElytraFlying() && this.target.isElytraFlying() ? (double)scaleFactor : 1.0, mc.player.isElytraFlying() && this.target.isElytraFlying() ? (double)scaleFactor : 1.0));
            yawToTarget = (float)MathHelper.wrapDegrees(Math.toDegrees(Math.atan2(vec.z, vec.x)) - 90.0);
            pitchToTarget = (float)(-Math.toDegrees(Math.atan2(vec.y, Math.hypot(vec.x, vec.z))));
            yawDelta = MathHelper.wrapDegrees(yawToTarget - this.rotate.x);
            pitchDelta = MathHelper.wrapDegrees(pitchToTarget - this.rotate.y);
            switch ((String)this.type.getValue()) {
                case "Плавная":
                    yaw = Math.min(Math.max(Math.abs(yawDelta), 1.0F), rotationYawSpeed);
                    pitch = Math.max(Math.abs(pitchDelta), 1.0F);
                    gcd = this.rotate.x + (yawDelta > 0.0F ? yaw : -yaw) + SensUtility.getSensitivity((float)(Math.cos((double)System.currentTimeMillis() / 50.0) * 7.0));
                    pitch = MathHelper.clamp(this.rotate.y + (pitchDelta > 0.0F ? pitch : -pitch), -89.0F, 89.0F) + SensUtility.getSensitivity((float)(Math.cos((double)System.currentTimeMillis() / 50.0) * 7.0));
                    gcd -= (gcd - this.rotate.x) % SensUtility.getGCDValue();
                    pitch -= (pitch - this.rotate.y) % SensUtility.getGCDValue();
                    this.rotate = new Vector2f(gcd, pitch);
                    this.lastYaw = yaw;
                    this.lastPitch = pitch;
                    break;
                case "Резкая":
                    yaw = this.rotate.x + yawDelta;
                    pitch = MathHelper.clamp(this.rotate.y + pitchDelta, -90.0F, 90.0F);
                    gcd = SensUtility.getGCDValue();
                    yaw -= (yaw - this.rotate.x) % gcd;
                    pitch -= (pitch - this.rotate.y) % gcd;
                    this.rotate = new Vector2f(yaw, pitch);
                    break;
                case "HolyWorld":
                    clampedYaw = Math.min(Math.max(Math.abs(yawDelta), 1.0E-4F), 52.0F);
                    clampedPitch = Math.min(Math.max(Math.abs(pitchDelta), 1.0E-4F), 22.0F);
                    randomYawFactor = (float)(Math.random() * 1.5 - 1.5);
                    randomPitchFactor = (float)(Math.random() * 1.5 - 1.0);
                    randomThreshold = (float)(Math.random() * 1.5);
                    randomAddition = (float)(Math.random() * 2.5 + 1.5);
                    if (this.selected != this.target) {
                        clampedPitch = Math.max(Math.abs(pitchDelta), 1.0F);
                    } else {
                        clampedPitch /= 3.0F;
                    }

                    if (Math.abs(clampedYaw - this.lastYaw) <= randomThreshold) {
                        clampedYaw = this.lastYaw + randomAddition;
                    }

                    clampedYaw += randomYawFactor;
                    clampedPitch += randomPitchFactor;
                    yaw = this.rotate.x + (yawDelta > 0.0F ? clampedYaw : -clampedYaw);
                    pitch = MathHelper.clamp(this.rotate.y + (pitchDelta > 0.0F ? clampedPitch : -clampedPitch), -90.0F, 90.0F);
                    gcd = SensUtility.getGCDValue();
                    yaw -= (yaw - this.rotate.x) % gcd;
                    pitch -= (pitch - this.rotate.y) % gcd;
                    this.rotate = new Vector2f(yaw, pitch);
                    this.lastYaw = clampedYaw;
                    this.lastPitch = clampedPitch;
            }
        } else {
            vec = this.target.getPositionVec().add(0.0, MathHelper.clamp(this.target.getPosY() - (double)this.target.getHeight(), 0.0, (double)(this.target.getHeight() / 2.0F)), 0.0).subtract(mc.player.getEyePosition(1.0F));
            yawToTarget = (float)MathHelper.wrapDegrees(Math.toDegrees(Math.atan2(vec.z, vec.x)) - 90.0);
            pitchToTarget = (float)(-Math.toDegrees(Math.atan2(vec.y, Math.hypot(vec.x, vec.z))));
            yawDelta = MathHelper.wrapDegrees(yawToTarget - this.rotate.x);
            pitchDelta = MathHelper.wrapDegrees(pitchToTarget - this.rotate.y);
            int roundedYaw = (int)yawDelta;
            switch ((String)this.type.getValue()) {
                case "Плавная":
                    yaw = Math.min(Math.max(Math.abs(yawDelta), 1.0F), rotationYawSpeed);
                    pitch = Math.max(Math.abs(pitchDelta), 1.0F);
                    gcd = this.rotate.x + (yawDelta > 0.0F ? yaw : -yaw);
                    pitch = MathHelper.clamp(this.rotate.y + (pitchDelta > 0.0F ? pitch : -pitch), -89.0F, 89.0F);
                    gcd -= (gcd - this.rotate.x) % SensUtility.getGCDValue();
                    pitch -= (pitch - this.rotate.y) % SensUtility.getGCDValue();
                    this.rotate = new Vector2f(gcd, pitch);
                    this.lastYaw = yaw;
                    this.lastPitch = pitch;
                    break;
                case "Резкая":
                    yaw = this.rotate.x + (float)roundedYaw;
                    pitch = MathHelper.clamp(this.rotate.y + pitchDelta, -90.0F, 90.0F);
                    gcd = SensUtility.getGCDValue();
                    yaw -= (yaw - this.rotate.x) % gcd;
                    pitch -= (pitch - this.rotate.y) % gcd;
                    this.rotate = new Vector2f(yaw, pitch);
                    break;
                case "HolyWorld":
                    clampedYaw = Math.min(Math.max(Math.abs(yawDelta), 1.0E-4F), 52.0F);
                    clampedPitch = Math.min(Math.max(Math.abs(pitchDelta), 1.0E-4F), 22.0F);
                    randomYawFactor = (float)(Math.random() * 1.5 - 1.5);
                    randomPitchFactor = (float)(Math.random() * 1.5 - 1.0);
                    randomThreshold = (float)(Math.random() * 1.5);
                    randomAddition = (float)(Math.random() * 2.5 + 1.5);
                    if (this.selected != this.target) {
                        clampedPitch = Math.max(Math.abs(pitchDelta), 1.0F);
                    } else {
                        clampedPitch /= 3.0F;
                    }

                    if (Math.abs(clampedYaw - this.lastYaw) <= randomThreshold) {
                        clampedYaw = this.lastYaw + randomAddition;
                    }

                    clampedYaw += randomYawFactor;
                    clampedPitch += randomPitchFactor;
                    yaw = this.rotate.x + (yawDelta > 0.0F ? clampedYaw : -clampedYaw);
                    pitch = MathHelper.clamp(this.rotate.y + (pitchDelta > 0.0F ? clampedPitch : -clampedPitch), -90.0F, 90.0F);
                    gcd = SensUtility.getGCDValue();
                    yaw -= (yaw - this.rotate.x) % gcd;
                    pitch -= (pitch - this.rotate.y) % gcd;
                    this.rotate = new Vector2f(yaw, pitch);
                    this.lastYaw = clampedYaw;
                    this.lastPitch = clampedPitch;
            }
        }

        if ((Boolean)this.options.is("Коррекция движения").getValue()) {
            mc.player.rotationYawOffset = this.rotate.x;
        }

    }

    private void visualRotationUpdate() {
        Vector3d vec = this.target.getPositionVec().add(0.0, MathHelper.clamp(mc.player.getPosYEye() - this.target.getPosY(), 0.0, (double)this.target.getHeight() * (mc.player.getDistanceEyePos(this.target) / (double)this.attackDistance())), 0.0).subtract(mc.player.getEyePosition(1.0F));
        float yawDelta = (float)MathHelper.wrapDegrees(MathHelper.wrapDegrees(Math.toDegrees(Math.atan2(vec.z, vec.x)) - 90.0) - (double)this.visualRotateVector.x);
        float pitchDelta = (float)MathHelper.wrapDegrees(-Math.toDegrees(Math.atan2(vec.y, Math.hypot(vec.x, vec.z))) - (double)this.visualRotateVector.y);
        int roundYawDelta = (int)Math.abs(yawDelta);
        int roundPitchDelta = (int)Math.abs(pitchDelta);
        float gcd = SensUtility.getGCDValue();
        float yaw = 0.0F;
        float pitch = 0.0F;
        float clampedPitch = 0.0F;
        float clampedYaw = 0.0F;
        switch ((String)this.visualType.getValue()) {
            case "Обычная":
                clampedYaw = (float)Math.min(roundYawDelta, 40);
                clampedPitch = Math.min((float)roundPitchDelta * 0.33F, 30.0F);
                yaw = this.visualRotateVector.x + (yawDelta > 0.0F ? clampedYaw : -clampedYaw);
                pitch = MathHelper.clamp(this.visualRotateVector.y + (pitchDelta > 0.0F ? clampedPitch : -clampedPitch), -89.0F, 89.0F);
                yaw -= (yaw - this.visualRotateVector.x) % gcd;
                pitch -= (pitch - this.visualRotateVector.y) % gcd;
                break;
            case "Спин-бот":
                clampedPitch = Math.min((float)roundPitchDelta * 0.33F, 30.0F);
                pitch = MathHelper.clamp(this.visualRotateVector.y + (pitchDelta > 0.0F ? clampedPitch : -clampedPitch), -89.0F, 89.0F);
                pitch -= (pitch - this.visualRotateVector.y) % gcd;
                yaw = this.rotationAngle;
                break;
            case "Никакая":
                yaw = mc.player.rotationYaw;
                pitch = mc.player.rotationPitch;
        }

        this.visualRotateVector = new Vector2f(yaw, pitch);
        this.lastYaw = clampedYaw;
        this.lastPitch = clampedPitch;
    }

    public void updateRotation() {
        float limitSpeed = 60.0F;
        float reverseSpeed = 5.0F;
        if (!this.isReversing) {
            this.rotationSpeed += reverseSpeed;
            if (this.rotationSpeed > limitSpeed) {
                this.rotationSpeed = limitSpeed;
                this.isReversing = true;
            }
        } else {
            this.rotationSpeed -= reverseSpeed;
            if (this.rotationSpeed < -limitSpeed) {
                this.rotationSpeed = -limitSpeed;
                this.isReversing = false;
            }
        }

        this.rotationAngle += this.rotationSpeed;
        this.rotationAngle = (this.rotationAngle + 360.0F) % 360.0F;
    }

    public void critHelper() {
        switch ((String)this.critType.getValue()) {
            case "None":
                return;
            case "Matrix":
                if (mc.player.isJumping && mc.player.motion.getY() < -0.1 && (double)mc.player.fallDistance > 0.5 && MoveUtility.getMotion() < 0.12) {
                    mc.player.motion.y = -1.0;
                }
                break;
            case "NCP":
                if (mc.player.isJumping && mc.player.fallDistance != 0.0F) {
                    Vector3d var10000 = mc.player.motion;
                    var10000.y -= 0.078;
                }
                break;
            case "NCP+":
                if ((double)mc.player.fallDistance > 0.7 && (double)mc.player.fallDistance < 0.8 && this.target != null) {
                    mc.timer.timerSpeed = 2.0F;
                } else {
                    mc.timer.timerSpeed = 1.0F;
                }
                break;
            case "Grim":
                if (mc.player.isJumping && mc.player.fallDistance > 0.0F && (double)mc.player.fallDistance <= 1.2 && !MoveUtility.moveKeysPressed()) {
                    mc.player.jumpTicks = 0;
                    if ((double)mc.timer.timerSpeed == 1.0) {
                        mc.timer.timerSpeed = 1.005F;
                    }
                }
        }

    }

    private void forceAttack() {
        if (this.isAttacking || this.canAttack()) {
            this.isAttacking = true;

            try {
                this.preAttack();
                this.attack();
                this.postAttack();
            } finally {
                this.isAttacking = false;
            }

        }
    }

    private boolean canAttack() {
        this.selected = MouseUtility.getMouseOver(this.target, this.rotate.x, this.rotate.y, (double)this.attackDistance());
        if (mc.player.getDistanceEyePos(this.target) > (double)this.attackDistance()) {
            return false;
        } else if ((Boolean)this.moreOptions.is("Проверка луча").getValue() && !this.elytraTargetRule && this.selected == null) {
            return false;
        } else if (!(Boolean)this.moreOptions.is("Бить через стены").getValue() && !mc.player.canEntityBeSeen(this.target)) {
            return false;
        } else if ((Boolean)this.moreOptions.is("Не бить если кушаешь").getValue() && mc.player.isHandActive() && mc.player.getHeldItemOffhand().getUseAction() == UseAction.EAT) {
            return false;
        } else {
            return !(Boolean)this.moreOptions.is("Не бить если в гуи").getValue() || mc.currentScreen == null || mc.currentScreen instanceof ClickGuiScreen || mc.currentScreen instanceof ChatScreen || mc.currentScreen instanceof IngameMenuScreen;
        }
    }

    private void preAttack() {
        Evaware.getInst().getModuleManager().getTPInfluence().hitAuraTPPRe(this.target);
        if (mc.player.isBlocking() && (Boolean)this.options.is("Отжимать щит").getValue()) {
            mc.playerController.onStoppedUsingItem(mc.player);
        }

    }

    private void attack() {
        int minCPSValue = ((Float)this.minCPS.getValue()).intValue();
        int maxCPSValue = ((Float)this.maxCPS.getValue()).intValue();
        if (minCPSValue > maxCPSValue) {
            maxCPSValue = minCPSValue;
        }

        int minMS = 1000 / maxCPSValue;
        int maxMS = 1000 / minCPSValue;
        Random random = new Random();
        int randomMS = random.nextInt(maxMS - minMS + 1) + minMS;
        this.timerUtility.setLastMS(this.clickType.is("1.9") ? 500L : (long)randomMS);
        Criticals.cancelCrit = true;
        if (Evaware.getInst().getModuleManager().getCriticals().isEnabled() && Criticals.canUseCriticals()) {
            Evaware.getInst().getModuleManager().getCriticals().sendCrit();
        }

        mc.playerController.attackEntity(mc.player, this.target);
        mc.player.swingArm(Hand.MAIN_HAND);
        Criticals.cancelCrit = false;
    }

    private void postAttack() {
        LivingEntity var2 = this.target;
        if (var2 instanceof PlayerEntity player) {
            if ((Boolean)this.options.is("Ломать щит").getValue()) {
                this.breakShieldPlayer(player);
            }
        }

        Evaware.getInst().getModuleManager().getTPInfluence().hitAuraTPPost(this.target);
    }

    public boolean shouldPlayerFalling() {
        return AttackUtility.isPlayerFalling((Boolean)this.options.is("Только криты").getValue() && !Criticals.canUseCriticals(), (Boolean)this.smartCrits.getValue(), (Boolean)this.options.is("Синхронизировать с TPS").getValue(), this.clickType.is("1.9"));
    }

    private boolean isValid(LivingEntity entity) {
        if (entity instanceof ClientPlayerEntity) {
            return false;
        } else if (entity.ticksExisted < 3) {
            return false;
        } else if (mc.player.getDistanceEyePos(entity) > (double)this.maxRange()) {
            return false;
        } else if (entity == Evaware.getInst().getModuleManager().getFreeCam().fakePlayer) {
            return false;
        } else {
            if (entity instanceof PlayerEntity) {
                PlayerEntity p = (PlayerEntity)entity;
                if (AntiBot.isBot(entity)) {
                    return false;
                }

                if (!(Boolean)this.targets.is("Друзья").getValue() && FriendManager.isFriend(p.getName().getString())) {
                    return false;
                }

                if (p.getName().getString().equalsIgnoreCase(mc.player.getName().getString())) {
                    return false;
                }
            }

            if (entity instanceof PlayerEntity && !(Boolean)this.targets.is("Игроки").getValue()) {
                return false;
            } else if (entity instanceof PlayerEntity && entity.getTotalArmorValue() == 0 && !(Boolean)this.targets.is("Голые").getValue()) {
                return false;
            } else if (entity instanceof PlayerEntity && entity.isInvisible() && entity.getTotalArmorValue() == 0 && !(Boolean)this.targets.is("Голые невидимки").getValue()) {
                return false;
            } else if (entity instanceof PlayerEntity && entity.isInvisible() && !(Boolean)this.targets.is("Невидимки").getValue()) {
                return false;
            } else if (entity instanceof PlayerEntity && ((PlayerEntity)entity).isCreative()) {
                return false;
            } else if ((entity instanceof MonsterEntity || entity instanceof SlimeEntity || entity instanceof VillagerEntity) && !(Boolean)this.targets.is("Мобы").getValue()) {
                return false;
            } else if (entity instanceof AnimalEntity && !(Boolean)this.targets.is("Животные").getValue()) {
                return false;
            } else {
                return !entity.isInvulnerable() && entity.isAlive() && !(entity instanceof ArmorStandEntity);
            }
        }
    }

    private void breakShieldPlayer(PlayerEntity entity) {
        if (entity.isBlocking()) {
            int invSlot = InventoryUtility.getInstance().getAxeInInventory(false);
            int hotBarSlot = InventoryUtility.getInstance().getAxeInInventory(true);
            if (hotBarSlot == -1 && invSlot != -1) {
                int bestSlot = InventoryUtility.getInstance().findBestSlotInHotBar();
                mc.playerController.windowClick(0, invSlot, 0, ClickType.PICKUP, mc.player);
                mc.playerController.windowClick(0, bestSlot + 36, 0, ClickType.PICKUP, mc.player);
                mc.player.connection.sendPacket(new CHeldItemChangePacket(bestSlot));
                mc.playerController.attackEntity(mc.player, entity);
                mc.player.swingArm(Hand.MAIN_HAND);
                mc.player.connection.sendPacket(new CHeldItemChangePacket(mc.player.inventory.currentItem));
                mc.playerController.windowClick(0, bestSlot + 36, 0, ClickType.PICKUP, mc.player);
                mc.playerController.windowClick(0, invSlot, 0, ClickType.PICKUP, mc.player);
            }

            if (hotBarSlot != -1) {
                mc.player.connection.sendPacket(new CHeldItemChangePacket(hotBarSlot));
                mc.playerController.attackEntity(mc.player, entity);
                mc.player.swingArm(Hand.MAIN_HAND);
                mc.player.connection.sendPacket(new CHeldItemChangePacket(mc.player.inventory.currentItem));
            }
        }

    }

    private void reset() {
        if ((Boolean)this.options.is("Коррекция движения").getValue()) {
            mc.player.rotationYawOffset = -2.1474836E9F;
        }

        this.rotate = new Vector2f(mc.player.rotationYaw, mc.player.rotationPitch);
    }

    public void onEnable() {
        super.onEnable();
        this.reset();
        this.target = null;
    }

    public void onDisable() {
        super.onDisable();
        this.reset();
        this.timerUtility.setLastMS(0L);
        this.target = null;
        mc.timer.timerSpeed = 1.0F;
    }

    public ModeSetting getType() {
        return this.type;
    }

    public ModeListSetting getOptions() {
        return this.options;
    }

    public ModeListSetting getMoreOptions() {
        return this.moreOptions;
    }

    public TimerUtility getTimerUtility() {
        return this.timerUtility;
    }

    public LivingEntity getTarget() {
        return this.target;
    }

    public void setTarget(LivingEntity target) {
        this.target = target;
    }
}
держите рабочую килку с евы
рабочую где?)
 
чит вообще не оптимизирован(
 
Как это вобще билдить?
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
как запустить ету базу
 
ето паста какова чита експы 3.1 ??????????
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Назад
Сверху Снизу