• Ищем качественного (не новичок) разработчиков Xenforo для этого форума! В идеале, чтобы ты был фулл стек программистом. Если у тебя есть что показать, то свяжись с нами по контактным данным: https://t.me/DREDD

Часть функционала Killaura VenusFree | Exp 3.1 Ready

  • Автор темы Автор темы FLOTHER
  • Дата начала Дата начала
Начинающий
Начинающий
Статус
Оффлайн
Регистрация
24 Авг 2021
Сообщения
16
Реакции
0
Выберите загрузчик игры
  1. Vanilla
  2. OptiFine
  3. Прочие моды
Слив киллауры фт вроде байпасит, играть онли с коррекцией движения иначе флагать будет, есть баг в коде что аура бьет нпс, исправьте сами.
Пожалуйста, авторизуйтесь для просмотра ссылки.

UPD: плевать что старая она работает остальное похуй
 
Последнее редактирование:
Слив киллауры фт вроде байпасит, играть онли с коррекцией движения иначе флагать будет, есть баг в коде что аура бьет нпс, исправьте сами.
Пожалуйста, авторизуйтесь для просмотра ссылки.
Братан эта килка у меня на релизе была, ты откуда это достал, из сурса который по рофлу на 7 гигов я попросил залить? Югейм тупеет поход
 
Слив киллауры фт вроде байпасит, играть онли с коррекцией движения иначе флагать будет, есть баг в коде что аура бьет нпс, исправьте сами.
Пожалуйста, авторизуйтесь для просмотра ссылки.
это пиздец аахахвхвхвкххвхввххввххвхввхж ты килку из сурсов достал которым 7-8 месяцов
 
Слив киллауры фт вроде байпасит, играть онли с коррекцией движения иначе флагать будет, есть баг в коде что аура бьет нпс, исправьте сами.
Пожалуйста, авторизуйтесь для просмотра ссылки.
мало того что код файлом скинул так еще и старая килка???
 
Братан эта килка у меня на релизе была, ты откуда это достал, из сурса который по рофлу на 7 гигов я попросил залить? Югейм тупеет поход
я сам дампил бро я че даун это качать
тебе того же
 
Слив киллауры фт вроде байпасит, играть онли с коррекцией движения иначе флагать будет, есть баг в коде что аура бьет нпс, исправьте сами.
Пожалуйста, авторизуйтесь для просмотра ссылки.
бабка селфкодера (shitcoder) лучше обходит ач чем эта килка
 
Слив киллауры фт вроде байпасит, играть онли с коррекцией движения иначе флагать будет, есть баг в коде что аура бьет нпс, исправьте сами.
Пожалуйста, авторизуйтесь для просмотра ссылки.

UPD: плевать что старая она работает остальное похуй
Хуйня
 
Слив киллауры фт вроде байпасит, играть онли с коррекцией движения иначе флагать будет, есть баг в коде что аура бьет нпс, исправьте сами.
Пожалуйста, авторизуйтесь для просмотра ссылки.

UPD: плевать что старая она работает остальное похуй
фт байпас?
 
Рофланпомойка
 
Слив киллауры фт вроде байпасит, играть онли с коррекцией движения иначе флагать будет, есть баг в коде что аура бьет нпс, исправьте сами.
Пожалуйста, авторизуйтесь для просмотра ссылки.

UPD: плевать что старая она работает остальное похуй
Модер бань эту хуйню мануалом все что экспенсив киллаура и визуалы запретить постить надо
 

Пожалуйста, зарегистрируйтесь или авторизуйтесь, чтобы увидеть содержимое.



Killaura:
Expand Collapse Copy
package im.expensive.functions.impl.combat;

import com.google.common.eventbus.Subscribe;
import im.expensive.Expensive;
import im.expensive.command.friends.FriendStorage;
import im.expensive.events.EventInput;
import im.expensive.events.EventMotion;
import im.expensive.events.EventUpdate;
import im.expensive.functions.api.Category;
import im.expensive.functions.api.Function;
import im.expensive.functions.api.FunctionRegister;
import im.expensive.functions.settings.Setting;
import im.expensive.functions.settings.impl.BooleanSetting;
import im.expensive.functions.settings.impl.ModeListSetting;
import im.expensive.functions.settings.impl.ModeSetting;
import im.expensive.functions.settings.impl.SliderSetting;
import im.expensive.utils.math.SensUtils;
import im.expensive.utils.math.StopWatch;
import im.expensive.utils.player.InventoryUtil;
import im.expensive.utils.player.MouseUtil;
import im.expensive.utils.player.MoveUtils;
import lombok.Getter;
import net.minecraft.client.Minecraft;
import net.minecraft.client.entity.player.ClientPlayerEntity;
import net.minecraft.client.network.play.ClientPlayNetHandler;
import net.minecraft.client.world.ClientWorld;
import net.minecraft.enchantment.EnchantmentHelper;
import net.minecraft.enchantment.Enchantments;
import net.minecraft.entity.Entity;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.item.ArmorStandEntity;
import net.minecraft.entity.monster.MonsterEntity;
import net.minecraft.entity.passive.AnimalEntity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.inventory.container.ClickType;
import net.minecraft.item.ArmorItem;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.network.play.client.CHeldItemChangePacket;
import net.minecraft.tags.FluidTags;
import net.minecraft.util.Hand;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.vector.Vector2f;
import net.minecraft.util.math.vector.Vector3d;
import net.minecraft.world.World;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;

import static java.lang.Math.hypot;
import static net.minecraft.util.math.MathHelper.clamp;
import static net.minecraft.util.math.MathHelper.wrapDegrees;

@FunctionRegister(name = "KillAura", type = Category.Combat)
public class KillAura extends Function {
    private final ModeSetting type = new ModeSetting("Тип", "Плавная", new String[]{"Плавная", "Резкая"});
    private final SliderSetting attackRange = new SliderSetting("Дистанция аттаки", 3.0F, 3.0F, 6.0F, 0.1F);
    final ModeListSetting targets = new ModeListSetting("Таргеты", new BooleanSetting[]{new BooleanSetting("Игроки", true), new BooleanSetting("Голые", true), new BooleanSetting("Мобы", false), new BooleanSetting("Животные", false), new BooleanSetting("Друзья", false), new BooleanSetting("Голые невидимки", true), new BooleanSetting("Невидимки", true)});
    final ModeListSetting options = new ModeListSetting("Опции", new BooleanSetting[]{new BooleanSetting("Не бить через стены", true), new BooleanSetting("Только криты", true), new BooleanSetting("Ломать щит", true), new BooleanSetting("Отжимать щит", true), new BooleanSetting("Ускорять ротацию при атаке", false), new BooleanSetting("Синхронизировать атаку с ТПС", false), new BooleanSetting("Фокусировать одну цель", true), new BooleanSetting("Коррекция движения", true)});
    final ModeSetting correctionType = (new ModeSetting("Тип коррекции", "Незаметный", new String[]{"Незаметный", "Сфокусированный"})).setVisible(() -> (Boolean) this.options.getValueByName("Коррекция движения").get());
    private final StopWatch stopWatch = new StopWatch();
    final BooleanSetting followTarget = new BooleanSetting("ElytraTarget", false);
    private ModeSetting elytraTargetType = (new ModeSetting("ElytraTargetType", "ElytraTarget | Legit", new String[]{"ElytraTarget | Legit", "ElytraTarget | Rage"})).setVisible(() -> (Boolean) this.followTarget.get());
    private final SliderSetting ggg = (new SliderSetting("Скорость привязки", 1.0F, 1.0F, 4.0F, 0.1F)).setVisible(() -> this.elytraTargetType.is("ElytraTarget | Rage"));
    private Vector2f rotateVector = new Vector2f(0.0F, 0.0F);
    private LivingEntity target;
    private Entity selected;
    int ticks = 0;
    boolean isRotated;
    final AutoPotion autoPotion;
    private final SliderSetting newSliderSetting = (new SliderSetting("Дистанция наводки", 15.0F, 3.0F, 40.0F, 0.5F)).setVisible(() -> (Boolean) this.followTarget.get());
    float lastYaw;
    float lastPitch;

    public KillAura(AutoPotion var1) {
        this.autoPotion = var1;
        this.addSettings(new Setting[]{this.type, this.attackRange, this.targets, this.options, this.correctionType, this.followTarget, this.elytraTargetType, this.newSliderSetting, this.ggg});
    }

    [USER=1474073]@Subscribe[/USER]
    public void onInput(EventInput var1) {
        if ((Boolean) this.options.getValueByName("Коррекция движения").get() && this.correctionType.is("Незаметная") && this.target != null && mc.player != null) {
            MoveUtils.fixMovement(var1, this.rotateVector.x);
        }

    }

    [USER=1474073]@Subscribe[/USER]
    public void onUpdate(EventUpdate var1) {
        if ((Boolean) this.options.getValueByName("Фокусировать одну цель").get() && (this.target == null || !this.isValid(this.target)) || !(Boolean) this.options.getValueByName("Фокусировать одну цель").get()) {
            this.updateTarget();
        }

        if (this.target != null && (!this.autoPotion.isState() || !this.autoPotion.isActive())) {
            this.isRotated = false;
            if (this.shouldPlayerFalling() && this.stopWatch.hasTimeElapsed()) {
                this.updateAttack();
                this.ticks = 2;
            }

            if (this.type.is("Резкая")) {
                if (this.ticks > 0) {
                    this.updateRotation(true, 180.0F, 90.0F);
                    int var4 = this.ticks;
                    this.ticks = var4 - 1;
                } else {
                    this.reset();
                }
            } else if (!this.isRotated) {
                this.updateRotation(false, 80.0F, 35.0F);
            }

            if ((Boolean) this.followTarget.get() && mc.player.isElytraFlying()) {
                if (this.elytraTargetType.is("ElytraTarget | Legit")) {
                    this.lookAtTarget(this.target);
                } else if (this.elytraTargetType.is("ElytraTarget | Rage")) {
                    this.flyTowardsTarget2(this.target);
                }
            }
        } else {
            this.stopWatch.setLastMS(0L);
            this.reset();
        }

    }

    private void flyTowardsTarget(LivingEntity var1) {
        if (var1 != null && mc.player != null) {
            if (this.elytraTargetType.is("ElytraTarget | Legit")) {
                this.lookAtTarget(var1);
            } else if (this.elytraTargetType.is("ElytraTarget | Rage")) {
                this.flyTowardsTarget2(var1);
            } else {
                this.lookAtTarget(var1);
            }

        }
    }

    private void flyTowardsTarget2(LivingEntity var1) {
        if (var1 != null && mc.player != null) {
            Vector3d var2 = new Vector3d(var1.getPosX(), var1.getPosY() + (double) var1.getEyeHeight(), var1.getPosZ());
            Vector3d var3 = mc.player.getPositionVec();
            double var30 = var2.x;
            double var42 = var3.x;
            double var4 = var30 - var42;
            var30 = var2.y;
            var42 = var3.y;
            double var6 = var30 - var42;
            var30 = var2.z;
            var42 = var3.z;
            double var8 = var30 - var42;
            double var10 = var3.distanceTo(var2);
            if (!(var10 < 0.1)) {
                float var12 = (Float) this.ggg.get();
                double var13 = Math.min((double) var12, var10 / (double) 2.0F);
                double var15 = var4 / var10 * var13;
                double var17 = var6 / var10 * var13;
                double var19 = var8 / var10 * var13;
                double var21 = var3.x + var15;
                double var23 = var3.y + var17;
                double var25 = var3.z + var19;
                if (!this.isPathClear(var3, new Vector3d(var21, var23, var25))) {
                    Vector3d var27 = this.adjustForObstacles(var3, new Vector3d(var15, var17, var19));
                    var15 = var27.x;
                    var17 = var27.y;
                    var19 = var27.z;
                }

                ClientPlayerEntity var33 = mc.player;
                var33.setMotion(new Vector3d(var15, var17, var19));
            }
        }
    }

    private boolean isPathClear(Vector3d var1, Vector3d var2) {
        Minecraft var3 = Minecraft.getInstance();
        ClientWorld var4 = var3.world;

        for (double var5 = (double) 0.0F; var5 < (double) 1.0F; var5 += 0.1) {
            double var14 = var1.x;
            double var19 = var2.x;
            double var22 = var1.x;
            double var7 = var14 + (var19 - var22) * var5;
            var14 = var1.y;
            var19 = var2.y;
            var22 = var1.y;
            double var9 = var14 + (var19 - var22) * var5;
            var14 = var1.z;
            var19 = var2.z;
            var22 = var1.z;
            double var11 = var14 + (var19 - var22) * var5;
            BlockPos var13 = new BlockPos(var7, var9, var11);
            if (!((World) var4).isAirBlock(var13)) {
                return false;
            }
        }

        return true;
    }

    private Vector3d adjustForObstacles(Vector3d var1, Vector3d var2) {
        Minecraft var3 = Minecraft.getInstance();
        ClientWorld var4 = var3.world;

        for (int var5 = 1; var5 <= 3; ++var5) {
            Vector3d var6 = var1.add(var2.x, var2.y + (double) var5, var2.z);
            if (this.isPathClear(var1, var6)) {
                return new Vector3d(var2.x, var2.y + (double) var5, var2.z);
            }
        }

        for (int var7 = 1; var7 <= 3; ++var7) {
            Vector3d var8 = var1.add(var2.x + (double) var7, var2.y, var2.z);
            if (this.isPathClear(var1, var8)) {
                return new Vector3d(var2.x + (double) var7, var2.y, var2.z);
            }
        }

        return var2;
    }

    private void lookAtTarget(LivingEntity var1) {
        Vector3d var2 = new Vector3d(var1.getPosX(), var1.getPosY() + (double) var1.getEyeHeight(), var1.getPosZ());
        Vector3d var3 = mc.player.getPositionVec().add((double) 0.0F, (double) mc.player.getEyeHeight(), (double) 0.0F);
        double var23 = var2.x;
        double var29 = var3.x;
        double var4 = var23 - var29;
        var23 = var2.y;
        var29 = var3.y;
        double var6 = var23 - var29;
        var23 = var2.z;
        var29 = var3.z;
        double var8 = var23 - var29;
        double var10 = Math.sqrt(var4 * var4 + var6 * var6 + var8 * var8);
        double var12 = var4 / var10;
        double var14 = var6 / var10;
        double var16 = var8 / var10;
        float var26 = (float) (Math.atan2(var8, var4) * (180D / Math.PI));
        float var18 = var26 - 90.0F;
        float var19 = (float) (-(Math.atan2(var6, Math.sqrt(var4 * var4 + var8 * var8)) * (180D / Math.PI)));
        mc.player.rotationYaw = var18;
        mc.player.rotationPitch = var19;
        Vector3d var20 = mc.player.getMotion();
        double var21 = var20.length();
        mc.player.setMotion(var12 * var21, var14 * var21, var16 * var21);
    }

    [USER=1474073]@Subscribe[/USER]
    private void onWalking(EventMotion var1) {
        if (this.target != null && (!this.autoPotion.isState() || !this.autoPotion.isActive())) {
            float var2 = this.rotateVector.x;
            float var3 = this.rotateVector.y;
            var1.setYaw(var2);
            var1.setPitch(var3);
            mc.player.rotationYawHead = var2;
            mc.player.renderYawOffset = var2;
            mc.player.rotationPitchHead = var3;
        }
    }

    private void updateTarget() {
        ArrayList var1 = new ArrayList();

        for (Entity var3 : mc.world.getAllEntities()) {
            if (var3 instanceof LivingEntity var9) {
                LivingEntity var4 = var9;
                if (this.isValid(var9)) {
                    var1.add(var4);
                }
            }
        }

        if (var1.isEmpty()) {
            this.target = null;
        } else if (var1.size() == 1) {
            this.target = (LivingEntity) var1.get(0);
        } else {
            var1.sort(Comparator.comparingDouble((var1x) -> {
                if (var1x instanceof PlayerEntity var3) {
                    return -this.getEntityArmor(var3);
                } else if (var1x instanceof LivingEntity var2) {
                    return (double) (-var2.getTotalArmorValue());
                } else {
                    return (double) 0.0F;
                }
            }).thenComparing((var1x, var2) -> {
                double var3 = this.getEntityHealth((LivingEntity) var1x);
                double var5 = this.getEntityHealth((LivingEntity) var2);
                return Double.compare(var3, var5);
            }).thenComparing((var0, var1x) -> {
                double var2 = (double) mc.player.getDistance((LivingEntity) var0);
                double var4 = (double) mc.player.getDistance((LivingEntity) var1x);
                return Double.compare(var2, var4);
            }));
            this.target = (LivingEntity) var1.get(0);
        }
    }

    private void updateRotation(boolean var1, float var2, float var3) {
        Vector3d var27 = this.target.getPositionVec();
        double var44 = mc.player.getPosYEye();
        double var10003 = this.target.getPosY();
        Vector3d var4 = var27.add((double) 0.0F, MathHelper.clamp(var44 - var10003, (double) 0.0F, (double) this.target.getHeight() * (mc.player.getDistanceEyePos(this.target) / (double) (Float) this.attackRange.get())), (double) 0.0F).subtract(mc.player.getEyePosition(1.0F));
        this.isRotated = true;
        double var28 = Math.toDegrees(Math.atan2(var4.z, var4.x));
        float var5 = (float) MathHelper.wrapDegrees(var28 - (double) 90.0F);
        float var6 = (float) (-Math.toDegrees(Math.atan2(var4.y, Math.hypot(var4.x, var4.z))));
        float var35 = this.rotateVector.x;
        float var7 = MathHelper.wrapDegrees(var5 - var35);
        var35 = this.rotateVector.y;
        float var8 = MathHelper.wrapDegrees(var6 - var35);
        int var9 = (int) var7;
        switch ((String) this.type.get()) {
            case "Плавная":
                float var18 = Math.min(Math.max(Math.abs(var7), 1.0F), var2);
                float var20 = Math.min(Math.max(Math.abs(var8), 1.0F), var3);
                float var29;
                if (var1 && this.selected != this.target && (Boolean) this.options.getValueByName("Ускорять ротацию при атаке").get()) {
                    var29 = Math.max(Math.abs(var8), 1.0F);
                } else {
                    var29 = var20 / 3.0F;
                }

                var20 = var29;
                var35 = this.lastYaw;
                if (Math.abs(var18 - var35) <= 3.0F) {
                    var18 = this.lastYaw + 3.1F;
                }

                float var22 = this.rotateVector.x + (var7 > 0.0F ? var18 : -var18);
                float var15 = MathHelper.clamp(this.rotateVector.y + (var8 > 0.0F ? var20 : -var20), -89.0F, 89.0F);
                float var16 = SensUtils.getGCDValue();
                float var49 = this.rotateVector.x;
                var35 = (var22 - var49) % var16;
                var22 -= var35;
                var49 = this.rotateVector.y;
                var35 = (var15 - var49) % var16;
                var15 -= var35;
                this.rotateVector = new Vector2f(var22, var15);
                this.lastYaw = var18;
                this.lastPitch = var20;
                if ((Boolean) this.options.getValueByName("Коррекция движения").get()) {
                    mc.player.rotationYawOffset = var22;
                }
                break;
            case "Резкая":
                float var12 = this.rotateVector.x + (float) var9;
                float var13 = MathHelper.clamp(this.rotateVector.y + var8, -90.0F, 90.0F);
                float var14 = SensUtils.getGCDValue();
                float var45 = this.rotateVector.x;
                this.rotateVector = new Vector2f(var12, var13);
                if ((Boolean) this.options.getValueByName("Коррекция движения").get()) {
                    mc.player.rotationYawOffset = var12;
                }
        }

    }

    private void updateAttack() {
        this.selected = MouseUtil.getMouseOver(this.target, this.rotateVector.x, this.rotateVector.y, (double) (Float) this.attackRange.get());
        if ((Boolean) this.options.getValueByName("Ускорять ротацию при атаке").get()) {
            this.updateRotation(true, 60.0F, 35.0F);
        }

        if ((Boolean) this.followTarget.get() && mc.player.isElytraFlying()) {
            this.selected = MouseUtil.getMouseOver(this.target, this.rotateVector.x, this.rotateVector.y, (double) (Float) this.attackRange.get());
        }

        if (this.selected != null && this.selected == this.target) {
            if (mc.player.isBlocking() && (Boolean) this.options.getValueByName("Отжимать щит").get()) {
                mc.playerController.onStoppedUsingItem(mc.player);
            }

            this.stopWatch.setLastMS(500L);
            mc.playerController.attackEntity(mc.player, this.target);
            mc.player.swingArm(Hand.MAIN_HAND);
            LivingEntity var1 = this.target;
        }
    }

    private boolean shouldPlayerFalling() {
        boolean var1 = mc.player.isInWater() && mc.player.areEyesInFluid(FluidTags.WATER) || mc.player.isInLava() || mc.player.isOnLadder() || mc.player.isPassenger() || mc.player.abilities.isFlying;
        float var2 = mc.player.getCooledAttackStrength((Boolean) this.options.getValueByName("Синхронизировать атаку с ТПС").get() ? Expensive.getInstance().getTpsCalc().getAdjustTicks() : 1.5F);
        if (var2 < 0.92F) {
            return false;
        } else if (!var1 && (Boolean) this.options.getValueByName("Только криты").get()) {
            return !mc.player.isOnGround() && mc.player.fallDistance > 0.0F;
        } else {
            return true;
        }
    }

    private boolean isValid(LivingEntity var1) {
        if (var1 instanceof ClientPlayerEntity) {
            return false;
        } else if (var1.ticksExisted < 3) {
            return false;
        } else {
            if ((Boolean) this.followTarget.get() && mc.player.isElytraFlying()) {
                if (mc.player.getDistanceEyePos(var1) > (double) (Float) this.newSliderSetting.get()) {
                    return false;
                }
            } else if (mc.player.getDistanceEyePos(var1) > (double) (Float) this.attackRange.get()) {
                return false;
            }

            if ((Boolean) this.options.getValueByName("Не бить через стены").get() && !mc.player.canEntityBeSeen(var1)) {
                return false;
            } else {
                if (var1 instanceof PlayerEntity) {
                    PlayerEntity var2 = (PlayerEntity) var1;
                    if (AntiBot.isBot(var1)) {
                        return false;
                    }

                    if (!(Boolean) this.targets.getValueByName("Друзья").get() && FriendStorage.isFriend(var2.getName().getString())) {
                        return false;
                    }

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

                if (var1 instanceof PlayerEntity) {
                    if (!(Boolean) this.targets.getValueByName("Игроки").get()) {
                        return false;
                    }

                    if (var1.getTotalArmorValue() == 0 && !(Boolean) this.targets.getValueByName("Голые").get()) {
                        return false;
                    }

                    if (var1.isInvisible() && var1.getTotalArmorValue() == 0 && !(Boolean) this.targets.getValueByName("Голые невидимки").get()) {
                        return false;
                    }

                    if (var1.isInvisible() && !(Boolean) this.targets.getValueByName("Невидимки").get()) {
                        return false;
                    }
                } else if (var1 instanceof MonsterEntity) {
                    if (!(Boolean) this.targets.getValueByName("Мобы").get()) {
                        return false;
                    }
                } else if (var1 instanceof AnimalEntity && !(Boolean) this.targets.getValueByName("Животные").get()) {
                    return false;
                }

                return !var1.isInvulnerable() && var1.isAlive() && !(var1 instanceof ArmorStandEntity);
            }
        }
    }

    private void breakShieldPlayer(PlayerEntity var1) {
        if (var1.isBlocking()) {
            int var2 = InventoryUtil.getInstance().getAxeInInventory(false);
            int var3 = InventoryUtil.getInstance().getAxeInInventory(true);
            if (var3 == -1 && var2 != -1) {
                int var4 = InventoryUtil.getInstance().findBestSlotInHotBar();
                mc.playerController.windowClick(0, var2, 0, ClickType.PICKUP, mc.player);
                mc.playerController.windowClick(0, var4 + 36, 0, ClickType.PICKUP, mc.player);
                ClientPlayNetHandler var7 = mc.player.connection;
                var7.sendPacket(new CHeldItemChangePacket(var4));
                mc.playerController.attackEntity(mc.player, var1);
                mc.player.swingArm(Hand.MAIN_HAND);
                var7 = mc.player.connection;

                var7.sendPacket(new CHeldItemChangePacket(mc.player.inventory.currentItem));
                mc.playerController.windowClick(0, var4 + 36, 0, ClickType.PICKUP, mc.player);
                mc.playerController.windowClick(0, var2, 0, ClickType.PICKUP, mc.player);
            }

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

    }

    private void reset() {
        if ((Boolean) this.options.getValueByName("Коррекция движения").get()) {
            mc.player.rotationYawOffset = (float) Integer.MIN_VALUE;
        }
        this.rotateVector = 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.stopWatch.setLastMS(0L);
        this.target = null;
    }

    private double getEntityArmor(PlayerEntity var1) {
        double var2 = (double) 0.0F;

        for (int var4 = 0; var4 < 4; ++var4) {
            ItemStack var5 = (ItemStack) var1.inventory.armorInventory.get(var4);
            if (var5.getItem() instanceof ArmorItem) {
                var2 += this.getProtectionLvl(var5);
            }
        }

        return var2;
    }

    private double getProtectionLvl(ItemStack var1) {
        Item var2 = var1.getItem();
        if (var2 instanceof ArmorItem var3) {
            double var4 = (double) var3.getDamageReduceAmount();
            if (var1.isEnchanted()) {
                var4 += (double) EnchantmentHelper.getEnchantmentLevel(Enchantments.PROTECTION, var1) * (double) 0.25F;
            }

            return var4;
        } else {
            return (double) 0.0F;
        }
    }

    private double getEntityHealth(LivingEntity var1) {
        if (var1 instanceof PlayerEntity var2) {
            return (double) (var2.getHealth() + var2.getAbsorptionAmount()) * (this.getEntityArmor(var2) / (double) 20.0F);
        } else {
            return (double) (var1.getHealth() + var1.getAbsorptionAmount());
        }
    }

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

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

    public StopWatch getStopWatch() {
        return this.stopWatch;
    }

    public LivingEntity getTarget() {
        return this.target;
    }
}
вот попробуй.
 
Назад
Сверху Снизу