Визуальная часть Nedo skid evaware eclipse | exp 2.0

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
6 Окт 2024
Сообщения
23
Реакции
0
Выберите загрузчик игры
  1. Прочие моды
Мой первый скид
Сам шедевро код
АА $$$ELFCODE:
Expand Collapse Copy
package wtf.expensive.modules.impl.render;

import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.platform.GlStateManager;
import net.minecraft.client.MainWindow;
import net.minecraft.client.entity.player.AbstractClientPlayerEntity;
import net.minecraft.client.gui.DisplayEffectsScreen;
import net.minecraft.client.gui.screen.ChatScreen;
import net.minecraft.client.network.play.NetworkPlayerInfo;
import net.minecraft.client.renderer.texture.PotionSpriteUploader;
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
import net.minecraft.client.resources.I18n;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.AirItem;
import net.minecraft.item.ItemStack;
import net.minecraft.potion.Effect;
import net.minecraft.potion.EffectInstance;
import net.minecraft.potion.EffectUtils;
import net.minecraft.scoreboard.Score;
import net.minecraft.scoreboard.ScoreObjective;
import net.minecraft.scoreboard.ScorePlayerTeam;
import net.minecraft.scoreboard.Team;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.vector.Vector4f;
import net.minecraft.util.text.ITextComponent;
import wtf.expensive.Initilization;
import wtf.expensive.events.Event;
import wtf.expensive.events.impl.player.EventUpdate;
import wtf.expensive.events.impl.render.EventRender;
import wtf.expensive.managment.Managment;
import wtf.expensive.modules.Function;
import wtf.expensive.modules.FunctionAnnotation;
import wtf.expensive.modules.Type;
import wtf.expensive.modules.settings.imp.BooleanOption;
import wtf.expensive.modules.settings.imp.MultiBoxSetting;
import wtf.expensive.modules.settings.imp.SliderSetting;
import wtf.expensive.util.ClientUtil;
import wtf.expensive.util.animations.Animation;
import wtf.expensive.util.animations.Direction;
import wtf.expensive.util.animations.impl.EaseBackIn;
import wtf.expensive.util.drag.Dragging;
import wtf.expensive.util.font.Fonts;
import wtf.expensive.util.font.styled.StyledFont;
import wtf.expensive.util.misc.HudUtil;
import wtf.expensive.util.render.*;
import wtf.expensive.util.render.animation.AnimationMath;

import java.awt.*;
import java.util.*;
import java.util.List;
import java.util.concurrent.atomic.AtomicReference;
import java.util.regex.Pattern;

import static net.minecraft.client.Minecraft.debugFPS;
import static org.joml.Math.lerp;
import static wtf.expensive.util.render.RenderUtil.Render2D.drawFace;

@FunctionAnnotation(name = "Hud", type = Type.Render)
public class HUD2 extends Function {

    public final SliderSetting alphaslider = new SliderSetting("Прозрачность", 190f, 35f, 255f, 1f);
    public final BooleanOption blacks = new BooleanOption("Тень", false);
    public final BooleanOption blurss = new BooleanOption("Блюр", true);

    public final MultiBoxSetting elements = new MultiBoxSetting("Elements",
            new BooleanOption("Active Target", true),
            new BooleanOption("Logo", true),
            new BooleanOption("Active Binds", true),
            new BooleanOption("Active Staff", true),
            new BooleanOption("Effects", true)
    );

    public final BooleanOption hp = new BooleanOption("Хп под тему", false);

    public HUD2() {
        addSettings(alphaslider, blacks, blurss, hp, elements);
    }

    final float round_degree = 3;
    final float cWidth = 4;
    private float bpsanika;
    private float fpsanimka = 0;
    private float hpanimka = 0;
    private float pinganimka = 0;
    private int activeModules = 0;
    private float widthAnime = 0.0F;
    private float offsetbind = 10.5F;
    private float widthDynamic = 0.0F;
    private float activePotions = 0.0F;
    private float widthAnim;
    private float heightAnim;
    private float hpanimcricle = 0.0F;
    private float[] graphValues = new float[5];
    private int currentIndex = 0;
    private float smoothedBps = 0;
    private int updateInterval = 1;
    private int frameCounter = 0;

    final Vector4f left_vec = new Vector4f(round_degree, round_degree, 0, 0);
    final Vector4f right_vec = new Vector4f(0, 0, round_degree, round_degree);

    final int b_color = new Color(0, 0, 0, 128).getRGB();
    final int t_color = Color.WHITE.getRGB();

    int[] colors = new int[360];

    final StyledFont icons = Fonts.icons1[20];
    final StyledFont medium = Fonts.msMedium[16];
    final StyledFont small = Fonts.msMedium[14];

    MainWindow window;

    List<Function> modules = new ArrayList<>();

    final Dragging keyBinds = Initilization.createDrag(this, "HotKeys", mc.getMainWindow().scaledWidth() - 80, 3);
    final Dragging staffList = Initilization.createDrag(this, "Staff", mc.getMainWindow().scaledWidth() - 105, 25);
    public Dragging potionStatus = Initilization.createDrag(this, "PotionStatus", 450.0F, 50.0F);
    final Dragging targetHUD = Initilization.createDrag(this, "TH", mc.getMainWindow().scaledWidth() / 2 - 50, (float)mc.getMainWindow().scaledHeight() - 60);
    final Dragging Logo = Initilization.createDrag(this, "Logo", 5, 5);

    Animation tHudAnimation = new EaseBackIn(400, 1, 1.5f);
    Animation tpalec = new EaseBackIn(400, 1, 1.5f);
    float absorption = 0.0f;
    PlayerEntity target = null;



    private final Pattern namePattern = Pattern.compile("^\\w{3,16}$");
    private final Pattern prefixMatches = Pattern.compile(".*(mod|der|adm|help|wne|мод|хелп|помо|адм|владе|отри|таф|taf|curat|курато|dev|раз|supp|сапп|yt|ютуб).*");

    private final Map<ITextComponent, String> staffPlayers = new LinkedHashMap<>();


    @Override
    public boolean onEvent(Event event) {
        if (mc.player == null || mc.world == null) return false;

        if (event instanceof EventUpdate) {
            staffPlayers.clear();

            for (ScorePlayerTeam team : mc.world.getScoreboard().getTeams().stream().sorted(Comparator.comparing(Team::getName)).toList()) {
                String name = team.getMembershipCollection().toString();
                name = name.substring(1, name.length() - 1);
                if (namePattern.matcher(name).matches()) {
                    if (prefixMatches.matcher(team.getPrefix().getString().toLowerCase(Locale.ROOT)).matches() || Managment.STAFF_MANAGER.isStaff(name)) {
                        staffPlayers.put(team.getPrefix(), name);
                    }
                }
            }

            // Упрощенная логика BPS
            frameCounter++;
            if (frameCounter >= updateInterval) {
                String bpsString = HudUtil.calculateBPS();
                try {
                    // Заменяем запятую на точку если нужно
                    bpsString = bpsString.replace(',', '.');
                    float currentBps = Float.parseFloat(bpsString);
                    graphValues[currentIndex] = currentBps;
                    currentIndex = (currentIndex + 1) % graphValues.length;

                    float sum = 0;
                    for (float val : graphValues) {
                        sum += val;
                    }
                    smoothedBps = sum / graphValues.length;
                    frameCounter = 0;
                } catch (NumberFormatException e) {
                    smoothedBps = 0.0f;
                }
            }
            bpsanika = AnimationMath.fast(bpsanika, smoothedBps, 10.0f);
        }

        if (event instanceof EventRender e && e.isRender2D()) {
            for (int i = 0; i < colors.length; i++) {
                colors[i] = Managment.STYLE_MANAGER.getCurrentStyle().getColor(i);
            }

            window = e.scaledResolution;

            final MatrixStack matrixStack = e.matrixStack;

            if (elements.get(0)) renderTarget(matrixStack);
            if (elements.get(1)) Logo(matrixStack);
            if (elements.get(2)) renderKeyBinds(matrixStack);
            if (elements.get(3)) renderStaffList(matrixStack);
            if (elements.get(4)) renderPotions(matrixStack);
        }
        return false;
    }

    public void Logo(MatrixStack stack) {
        float x = this.Logo.getX();
        float y = this.Logo.getY();
        StyledFont font = Fonts.msSemiBold[14];
        String info = " / " + mc.debugFPS + "fps";
        float width = font.getWidth("Evaware" + info) + 8;
        int alpha = (int) alphaslider.getValue().floatValue();
        if (blurss.get()) {
            GaussianBlur.startBlur();
            RenderUtil.Render2D.drawRoundedRect(x, y, width, 13, 3.5f, new Color(24, 24, 24, 236).getRGB());
            GaussianBlur.endBlur(3.5f, 1);
        }
        if (blacks.get()) {
            RenderUtil.Render2D.drawShadow(x, y, width, 13, 10, ColorUtil.rgba(0, 0, 0, alpha));
        }
        RenderUtil.Render2D.drawRoundedRect(x, y, width, 13, 3.5f, ColorUtil.rgba(0, 0, 0, alpha));
        font.drawString(stack, "Evaware", x + 4, y + 4.5f, -1);
        font.drawString(stack, info, x + 4 + font.getWidth("Evaware"), y + 4.5f, -1);
        this.Logo.setWidth(width);
        this.Logo.setHeight(13);
    }

    private void drawItemStack(float x, float y, float offset) {
        List<ItemStack> stacks = new ArrayList<>(Arrays.asList(target.getHeldItemMainhand(), target.getHeldItemOffhand()));
        target.getArmorInventoryList().forEach(stacks::add);
        stacks.removeIf(w -> w.getItem() instanceof AirItem);
        Collections.reverse(stacks);
        final AtomicReference<Float> posX = new AtomicReference<>(x);

        stacks.stream()
                .filter(stack -> !stack.isEmpty())
                .forEach(stack -> HudUtil.drawItemStack(stack,
                        posX.getAndAccumulate(offset, Float::sum),
                        y,
                        true,
                        true, 0.6f));
    }

    private void renderPotions(MatrixStack matrixStack) {
        float posX = this.potionStatus.getX();
        float posY = this.potionStatus.getY();
        int headerHeight = 14;
        int width = mc.player.getActivePotionEffects().isEmpty() ? 80 : 98;
        int padding = 5;
        float offset = 10.5F;
        this.widthAnim = AnimationMath.fast(this.widthAnim, (float) width, 13.5F);
        this.heightAnim = AnimationMath.fast(this.heightAnim, offset, 10.0F);
        int firstColor = ColorUtil.getColorStyle(0.0F);
        int secondColor = ColorUtil.getColorStyle(90.0F);
        int alpha = (int) alphaslider.getValue().floatValue();
        if (blurss.get()) {
            GaussianBlur.startBlur();
            RenderUtil.Render2D.drawRoundedRect(posX, posY, this.widthAnim, 14.0F, 3.5F, (new Color(24, 24, 24, 236)).getRGB());
            GaussianBlur.endBlur(3.5f, 1);
        }
        if (blacks.get()) {
            RenderUtil.Render2D.drawShadow(posX, posY, this.widthAnim, 14.0F, 10, (ColorUtil.rgba(0, 0, 0, alpha)));
        }
        RenderUtil.Render2D.drawRoundedRect(posX, posY, this.widthAnim, 14.0F, 3.5F, (ColorUtil.rgba(0, 0, 0, alpha)));
        Fonts.sf_medium[15].drawString(matrixStack, "Active potions", (double) (this.potionStatus.getX() + 18.0F), (double) (posY + 5.0F), -1);
        RenderUtil.Render2D.drawRect(posX + 15.0F, posY + 3.0F, 0.3F, 7.5F, (new Color(200, 200, 200, 100)).getRGB());
        Fonts.nursultan[16].drawString(matrixStack, ClientUtil.gradient((String) "E", Managment.STYLE_MANAGER.getCurrentStyle().getColor(0), Managment.STYLE_MANAGER.getCurrentStyle().getColor(90)), (double) (posX + 4.5F), (double) (posY + 6.0F), -1);
        int index = 0;
        Iterator var9 = mc.player.getActivePotionEffects().iterator();

        while (var9.hasNext()) {
            EffectInstance p = (EffectInstance) var9.next();
            if (p.isShowIcon()) {
                String durationText = EffectUtils.getPotionDurationString(p, 1.0F);
                float durationWidth = Fonts.sf_medium[12].getWidth(durationText);
                int amplifier = p.getAmplifier();
                String amplifierText = amplifier > 0 ? "" + (amplifier + 1) : "";
                posY += offset;
                if (blurss.get()) {
                    GaussianBlur.startBlur();
                    RenderUtil.Render2D.drawRoundedRect(posX + (float) padding - 5.0F, posY + (float) headerHeight + (float) padding - 14.5F, this.widthAnim, this.heightAnim - 0.5F, 2.5f, (new Color(24, 24, 24, 236)).getRGB());
                    GaussianBlur.endBlur(2.5f, 1);
                }
                if (blacks.get()) {
                    RenderUtil.Render2D.drawShadow(posX + (float) padding - 5.0F, posY + (float) headerHeight + (float) padding - 14.5F, this.widthAnim, this.heightAnim - 0.5F, 10, (ColorUtil.rgba(0, 0, 0, alpha)));
                }
                RenderUtil.Render2D.drawRoundedRect(posX + (float) padding - 5.0F, posY + (float) headerHeight + (float) padding - 14.5F, this.widthAnim, this.heightAnim - 0.5F, 2.5f, (ColorUtil.rgba(0, 0, 0, alpha)));
                Fonts.sf_medium[13].drawString(matrixStack, I18n.format(p.getEffectName(), new Object[0]), (double) (posX + (float) padding) - 2, (double) (posY + (float) headerHeight + (float) padding - 11.0F), -1);
                int color = -1;
                if (amplifier == 1) {
                    color = (new Color(255, 255, 255, 250)).getRGB();
                } else if (amplifier >= 2) {
                    color = (new Color(255, 255, 255, 250)).getRGB();
                }

                PotionSpriteUploader potionspriteuploader = mc.getPotionSpriteUploader();
                Effect effect = p.getPotion();
                TextureAtlasSprite textureatlassprite = potionspriteuploader.getSprite(effect);
                mc.getTextureManager().bindTexture(textureatlassprite.getAtlasTexture().getTextureLocation());
                DisplayEffectsScreen.blit(matrixStack, (int) (posX + (float) width - (float) padding - 4.5F), (int) (posY + (float) headerHeight + (float) padding - 12.8F), 10, 8, 8, textureatlassprite);
                Fonts.sf_medium[13].drawString(matrixStack, amplifierText, (double) (posX + (float) padding + Fonts.sf_medium[13].getWidth(I18n.format(p.getEffectName(), new Object[0])) + -0.5F), (double) (posY + (float) headerHeight + (float) padding - 11.0F), color);
                Fonts.sf_medium[13].drawString(matrixStack, durationText, (double) (posX + (float) width - durationWidth - (float) padding - 12.0F), (double) (posY + (float) headerHeight + (float) padding - 11.0F), -1);
                RenderUtil.Render2D.drawRect(posX + (float) padding + 80.0F, posY - 12.5F + (float) headerHeight + (float) padding, 0.3F, 5.8F, (new Color(200, 200, 200, 100)).getRGB());
                ++index;
            }
        }

        this.activePotions = index;
        this.potionStatus.setWidth((float) width);
        this.potionStatus.setHeight((float) this.activePotions * offset + (float) headerHeight);
    }


    float kbHeight = 0;
    float kbWidth = 100;

    float kbWidthAnimation = 0, kbHeightAnimation = 0;

    private void renderKeyBinds(MatrixStack matrixStack) {
        float posX = this.keyBinds.getX();
        float posY = this.keyBinds.getY();
        int headerHeight = 14;
        int padding = 5;
        int firstColor = ColorUtil.getColorStyle(0.0F);
        int secondColor = ColorUtil.getColorStyle(90.0F);
        this.activeModules = 0;
        Iterator var6 = Managment.FUNCTION_MANAGER.getFunctions().iterator();

        while (var6.hasNext()) {
            Function f = (Function) var6.next();
            if (f.bind != 0 && f.state) {
                ++this.activeModules;
            }
        }

        this.keyBinds.setHeight((float) this.activeModules * this.offsetbind + (float) headerHeight);
        float maxWidth = 0.0F;
        float height = this.activeModules * offsetbind;
        Iterator var16 = Managment.FUNCTION_MANAGER.getFunctions().iterator();

        while (var16.hasNext()) {
            Function f = (Function) var16.next();
            if (f.bind != 0 && f.state) {
                String text = ClientUtil.getKey(f.bind);
                if (text != null) {
                    String bindText = text.toUpperCase();
                    float bindWidth = Fonts.sf_medium[13].getWidth(bindText);
                    float nameWidth = Fonts.sf_medium[13].getWidth(f.name);
                    maxWidth = Math.max(maxWidth, bindWidth);
                    maxWidth = Math.max(maxWidth, nameWidth);
                }
            }
        }

        float targetWidth = Math.max(60.0F, 15.5F + maxWidth + (float) (padding * 2) + 5.0F);
        this.widthAnime = AnimationMath.lerp(this.widthAnime, targetWidth, 10.5F);
        this.keyBinds.setWidth(this.widthAnime);
        int alpha = (int) alphaslider.getValue().floatValue();
        if (blurss.get()) {
            GaussianBlur.startBlur();
            RenderUtil.Render2D.drawRoundedRect(posX, posY - 2.0F, this.keyBinds.getWidth(), 14.0F, 3.5F, (new Color(0, 0, 0, 140)).getRGB());
            RenderUtil.Render2D.drawRect(posX + 16.0F, posY + 1.0F, 0.3F, 7.5F, (new Color(200, 200, 200, 100)).getRGB());
            GaussianBlur.endBlur(7.5f, 1);
        }
        if (blacks.get()) {
            RenderUtil.Render2D.drawShadow(posX, posY - 2.0F, this.keyBinds.getWidth(), 14.0F, 10, (ColorUtil.rgba(0, 0, 0, alpha)));
        }
        RenderUtil.Render2D.drawRoundedRect(posX, posY - 2.0F, this.keyBinds.getWidth(), 14.0F, 3.5F, (ColorUtil.rgba(0, 0, 0, alpha)));
        RenderUtil.Render2D.drawRect(posX + 16.0F, posY + 1.0F, 0.3F, 7.5F, (new Color(200, 200, 200, 100)).getRGB());
        Fonts.sf_medium[15].drawString(matrixStack, "Hotkeys", (double) (posX + 20.5F), (double) (posY + 3F), (new Color(255, 255, 255, 255)).getRGB());
        Fonts.nursultan[16].drawString(matrixStack, ClientUtil.gradient((String) "C", Managment.STYLE_MANAGER.getCurrentStyle().getColor(0), Managment.STYLE_MANAGER.getCurrentStyle().getColor(90)), (double) (posX + 5.0F), (double) (posY + 4.0F), -1);
        RenderUtil.SmartScissor.push();
        RenderUtil.SmartScissor.setFromComponentCoordinates((double) posX - 50, (double) posY, (double) this.keyBinds.getWidth() + 100, (double) this.keyBinds.getHeight() + 100);
        int index = 0;
        Iterator var19 = Managment.FUNCTION_MANAGER.getFunctions().iterator();

        while (var19.hasNext()) {
            Function f = (Function) var19.next();
            if (f.bind != 0 && f.state) {
                String text = ClientUtil.getKey(f.bind);
                if (text != null) {
                    String bindText = text.toUpperCase();
                    float bindWidth = Fonts.sf_medium[13].getWidth(bindText);
                    StyledFont keyname = Fonts.sf_medium[13];
                    if (blurss.get()) {
                        GaussianBlur.startBlur();
                        RenderUtil.Render2D.drawRoundedRect(posX + (float) padding - 5.0F, posY - 6.0F + (float) headerHeight + (float) padding + (float) index * this.offsetbind, this.keyBinds.getWidth(), 10.0F, 2.5F, (new Color(24, 24, 24, 236)).getRGB());
                        GaussianBlur.endBlur(2.5f, 1);
                    }
                    RenderUtil.Render2D.drawRoundedRect(posX + (float) padding - 5.0F, posY - 6.0F + (float) headerHeight + (float) padding + (float) index * this.offsetbind, this.keyBinds.getWidth(), 10.0F, 2.5F, (ColorUtil.rgba(0, 0, 0, alpha)));
                    if (blacks.get()) {
                        RenderUtil.Render2D.drawShadow(posX + (float) padding - 5.0F, posY - 6.0F + (float) headerHeight + (float) padding + (float) index * this.offsetbind, this.keyBinds.getWidth(), 10, 10, (ColorUtil.rgba(0, 0, 0, alpha)));
                    }
                    Fonts.sf_medium[13].drawString(matrixStack, bindText, (double) (posX + this.keyBinds.getWidth() - (float) padding - bindWidth + 1.5F), (double) (posY - 2.5F + (float) headerHeight + (float) padding + (float) index * this.offsetbind), -1);
                    keyname.drawString(matrixStack, f.name, (posX + -2F + (float) padding), (double) (posY - 2.5F + (float) headerHeight + (float) padding + (float) index * this.offsetbind), -1);
                    ++index;
                }
            }
        }

        RenderUtil.SmartScissor.unset();
        RenderUtil.SmartScissor.pop();
    }

    int activeStaff = 0;

    private void renderStaffList(MatrixStack matrixStack) {
        float x = this.staffList.getX();
        float y = this.staffList.getY();
        float width = 85.5F;
        float height = 14.0F;
        float offset = 10.5F;
        int headerHeight = 14;
        int padding = 5;
        float staffActive = x + 19.5F;
        if (this.activeStaff == 0) {
            width = 68.5F;
        }

        this.widthDynamic = AnimationMath.fast(this.widthDynamic, width, 10);
        int alpha = (int) alphaslider.getValue().floatValue();
        if (blurss.get()) {
            GaussianBlur.startBlur();
            RenderUtil.Render2D.drawRoundedRect(x, y, widthDynamic, height, 3.5F, (new Color(0, 0, 0, 255)).getRGB());
            GaussianBlur.endBlur(3.5f, 1);
        }
        if (blacks.get()) {
            RenderUtil.Render2D.drawShadow(x, y, widthDynamic, height, 10, (ColorUtil.rgba(0, 0, 0, alpha)));
        }
        RenderUtil.Render2D.drawRoundedRect(x, y, widthDynamic, height, 3.5F, (ColorUtil.rgba(0, 0, 0, alpha)));
        RenderUtil.Render2D.drawRect(x + 16.0F, y + 3.0F, 0.3F, 7.5F, (new Color(200, 200, 200, 100)).getRGB());
        Fonts.sf_medium[15].drawString(matrixStack, "Staff online", (double) staffActive, (double) (y + 5.0F), (new Color(255, 255, 255, 255)).getRGB());
        Fonts.nursultan[18].drawString(matrixStack, ClientUtil.gradient((String) "O", Managment.STYLE_MANAGER.getCurrentStyle().getColor(0), Managment.STYLE_MANAGER.getCurrentStyle().getColor(90)), (double) (x + 4.0F), (double) (y + 5.5F), -1);
        int i = 0;
        Iterator var10 = mc.world.getScoreboard().getTeams().stream().sorted(Comparator.comparing(Team::getName)).toList().iterator();


        while (true) {
            String name;
            boolean vanish;
            boolean near;
            boolean active;
            do {
                do {
                    if (!var10.hasNext()) {
                        this.activeStaff = i;
                        this.staffList.setWidth((int) width);
                        this.staffList.setHeight(height + offset * this.activeStaff);
                        return;
                    }

                    ScorePlayerTeam team = (ScorePlayerTeam) var10.next();
                    name = team.getMembershipCollection().toString();
                    name = name.substring(1, name.length() - 1);
                } while (!this.namePattern.matcher(name).matches());

                vanish = true;
                near = false;
                active = false;
                Iterator var16 = mc.world.getPlayers().iterator();

                while (var16.hasNext()) {
                    AbstractClientPlayerEntity player = (AbstractClientPlayerEntity) var16.next();
                    if (player.getNameClear().equals(name)) {
                        near = true;
                    }
                }

                var16 = mc.getConnection().getPlayerInfoMap().iterator();

                while (var16.hasNext()) {
                    NetworkPlayerInfo info = (NetworkPlayerInfo) var16.next();
                    if (info.getGameProfile().getName().equals(name)) {
                        vanish = false;
                        if (!near) {
                            active = true;
                        }
                    }
                }
            } while (!vanish && !Managment.STAFF_MANAGER.isStaff(name));

            String Name = name.substring(0, Math.min(name.length(), 16));
            float yText = y + 18.5F;
            StyledFont nickDraw = Fonts.sf_medium[14];
            if (blurss.get()) {
                GaussianBlur.startBlur();
                RenderUtil.Render2D.drawRoundedRect(x + (float) padding - 5.0F, yText - 4.0F, widthDynamic, 10.0F, 2.5f, (new Color(24, 24, 24, 236)).getRGB());
                GaussianBlur.endBlur(2.5f, 1);
            }
            if (blacks.get()) {
                RenderUtil.Render2D.drawShadow(x + (float) padding - 5.0F, yText - 4.0F, widthDynamic, 10.0F, 10, (ColorUtil.rgba(0, 0, 0, alpha)));
            }
            RenderUtil.Render2D.drawRoundedRect(x + (float) padding - 5.0F, yText - 4.0F, widthDynamic, 10.0F, 2.5f, (ColorUtil.rgba(0, 0, 0, alpha)));
            nickDraw.drawString(matrixStack, Name, (double) (x + 3.0F), (double) yText, (new Color(255, 255, 255, 254)).getRGB());
            if (active) {
                RenderUtil.Render2D.drawRoundCircle(x + widthDynamic - 6, y + 19.8F, 5.5F, (new Color(21, 238, 15, 255)).getRGB());
            }

            if (vanish) {
                RenderUtil.Render2D.drawRoundCircle(x + widthDynamic - 6, y + 19.8F, 5.5F, (new Color(250, 19, 45, 255)).getRGB());
            }

            if (near && !vanish) {
                RenderUtil.Render2D.drawRoundCircle(x + widthDynamic - 6, y + 19.8F, 5.5F, (new Color(255, 196, 0, 255)).getRGB());
            }

            y += offset;
            ++i;
        }
    }
    float health = 0;

    private double scale = 0.0D;

    private void renderTarget(MatrixStack matrixStack) {
        float x = this.targetHUD.getX();
        float y = this.targetHUD.getY();
        float width2 = 98.0f;
        float height2 = 34.0f;
        float widthFace = 34.0f;
        this.target = this.getTarget(this.target);
        this.tHudAnimation.setDuration(280);
        this.scale = this.tHudAnimation.getOutput();
        if (this.scale == 0.0) {
            this.target = null;
        }
        if (this.target == null) {
            return;
        }
        GlStateManager.pushMatrix();
        AnimationMath.sizeAnimation(x + width2 / 2.0f, y + 15.0f, this.scale);
        int alpha = (int) alphaslider.getValue().floatValue();
        if (blurss.get()) {
            GaussianBlur.startBlur();
            RenderUtil.Render2D.drawRoundedRect(x, y, width2 + 5, height2 + 5, 5, (ColorUtil.rgba(0, 0, 0, alpha)));
            GaussianBlur.endBlur(3, 1);
        }
        if (blacks.get()) {
            RenderUtil.Render2D.drawShadow(x, y, width2 + 5, height2 + 5, 10, (ColorUtil.rgba(0, 0, 0, alpha)));
        }
        RenderUtil.Render2D.drawRoundedRect(x, y, width2 + 5, height2 + 5, 5, (ColorUtil.rgba(0, 0, 0, alpha)));
        RenderUtil.Render2D.drawShadow(x, y, width2 + 5, height2 + 5, 10, (new Color(0, 0, 0, 0)).getRGB());
        RenderUtil.Render2D.drawRoundFace(x + 3, y + 3.5f, 32, 32, 5, 1F, (AbstractClientPlayerEntity) this.target);
        float xHP = x + widthFace + 3.8f;
        float yHP = y + 21.3f;
        float widthHP = 52.0f;
        this.health = AnimationMath.fast(this.health, this.target.getHealth() / this.target.getMaxHealth(), 6.0f);
        this.health = MathHelper.clamp(this.health, 0.0f, 1.0f);
        this.absorption = AnimationMath.fast(this.absorption, this.target.getAbsorptionAmount() / this.target.getMaxHealth(), 6.0f);
        this.absorption = MathHelper.clamp(this.absorption, 0.0f, 1.0f);
        if (ClientUtil.isConnectedToServer("reallyworld")) {
            for (Map.Entry<ScoreObjective, Score> entry : mc.world.getScoreboard().getObjectivesForEntity(this.target.getName().getString()).entrySet()) {
                ScoreObjective objective = (ScoreObjective) entry.getKey();
                Score score = (Score) entry.getValue();
                this.target.setHealth((float) score.getScorePoints());
            }
        }
        if (!hp.get()) {
            if (this.target.getHealth() >= 15.0F) {
                RenderUtil.Render2D.drawGradientRound(xHP, yHP + 6, 60, 6, 2, ColorUtil.rgba(62, 106, 36, 68), ColorUtil.rgba(62, 106, 36, 68), ColorUtil.rgba(117, 237, 47, 68), ColorUtil.rgba(117, 237, 47, 68));
                RenderUtil.Render2D.drawGradientRound(xHP, yHP + 6, 60 * this.health, 6, 2, ColorUtil.rgba(62, 106, 36, 250), ColorUtil.rgba(62, 106, 36, 250), ColorUtil.rgba(117, 237, 47, 250), ColorUtil.rgba(117, 237, 47, 250));

            } else if (this.target.getHealth() >= 5.0F) {
                RenderUtil.Render2D.drawGradientRound(xHP, yHP + 6, 60, 6, 2, ColorUtil.rgba(145, 145, 22, 68), ColorUtil.rgba(145, 145, 22, 68), ColorUtil.rgba(212, 237, 15, 68), ColorUtil.rgba(212, 237, 15, 68));
                RenderUtil.Render2D.drawGradientRound(xHP, yHP + 6, 60 * this.health, 6, 2, ColorUtil.rgba(145, 145, 22, 250), ColorUtil.rgba(145, 145, 22, 250), ColorUtil.rgba(212, 237, 15, 250), ColorUtil.rgba(212, 237, 15, 250));
            } else if (this.target.getHealth() >= 1000.0F) {
                RenderUtil.Render2D.drawGradientRound(xHP, yHP + 6, 60, 6, 2, ColorUtil.rgba(255, 255, 255, 68), ColorUtil.rgba(32, 32, 32, 68), ColorUtil.rgba(255, 255, 255, 170), ColorUtil.rgba(204, 0, 0, 68));
                RenderUtil.Render2D.drawGradientRound(xHP, yHP + 6, 60 * this.health, 6, 2, ColorUtil.rgba(255, 255, 255, 250), ColorUtil.rgba(32, 32, 32, 250), ColorUtil.rgba(255, 255, 255, 250), ColorUtil.rgba(204, 0, 0, 250));
            } else {
                RenderUtil.Render2D.drawGradientRound(xHP, yHP + 6, 60, 6, 2, ColorUtil.rgba(147, 22, 22, 68), ColorUtil.rgba(147, 22, 22, 68), ColorUtil.rgba(230, 16, 16, 68), ColorUtil.rgba(230, 16, 16, 68));
                RenderUtil.Render2D.drawGradientRound(xHP, yHP + 6, 60 * this.health, 6, 2, ColorUtil.rgba(147, 22, 22, 250), ColorUtil.rgba(147, 22, 22, 250), ColorUtil.rgba(230, 16, 16, 250), ColorUtil.rgba(230, 16, 16, 250));
            }
        } else {
            RenderUtil.Render2D.drawGradientRound(xHP, yHP + 6, 60 * this.health, 6, 2.0F, ColorUtil.getColorStyle(240), ColorUtil.getColorStyle(20), ColorUtil.getColorStyle(40), ColorUtil.getColorStyle(90));
        }
        RenderUtil.Render2D.drawGradientRound(xHP - 0.2f, yHP - 0.3f + 6, 55 * this.absorption - 2, 6.5f, 2.0F, ColorUtil.rgba(62, 71, 0, 250), ColorUtil.rgba(32, 32, 32, 250), ColorUtil.rgba(255, 255, 0, 250), ColorUtil.rgba(153, 153, 0, 250));
        String targetName = this.target.getName().getString();
        RenderUtil.SmartScissor.push();
        RenderUtil.SmartScissor.setFromComponentCoordinates(x, y, width2 - 6.0f, height2);
        Fonts.sf_medium[18].drawString(matrixStack, targetName, (double) xHP, (double) (yHP - 15.3f), new Color(255, 255, 255, 255).getRGB());
        RenderUtil.SmartScissor.unset();
        RenderUtil.SmartScissor.pop();
        String BS = String.valueOf(this.target.getAbsorptionAmount());
        String HP = String.valueOf(this.target.getHealth());
        String abbs = BS.substring(0, Math.min(BS.length(), 4));
        String StringHP = HP.substring(0, Math.min(HP.length(), 4));
        String swagsoudzafake = target.getHealth() / target.getMaxHealth() * 100 + " ";
        String swagsoudza = swagsoudzafake.substring(0, Math.min(HP.length(), 3));
        if (this.target.getHealth() + this.target.getAbsorptionAmount() < 10.0f) {
            StringHP = HP.substring(0, Math.min(HP.length(), 3));
        }
        Fonts.sf_medium[13].drawString(matrixStack, "HP: " + StringHP, (double) xHP, (double) (yHP - 0.7f), new Color(255, 255, 255, 255).getRGB());
        this.drawItemStack(x, y - 12.0f, 10.5f);
        GlStateManager.popMatrix();
        this.targetHUD.setWidth(width2);
        this.targetHUD.setHeight(height2);
    }

    private PlayerEntity getTarget(PlayerEntity nullTarget) {
        PlayerEntity target = nullTarget;

        if (Managment.FUNCTION_MANAGER.auraFunction.getTarget() instanceof PlayerEntity) {
            target = (PlayerEntity) Managment.FUNCTION_MANAGER.auraFunction.getTarget();
            tHudAnimation.setDirection(Direction.FORWARDS);
        } else if (mc.currentScreen instanceof ChatScreen) {
            target = mc.player;
            tHudAnimation.setDirection(Direction.FORWARDS);
        } else {
            tHudAnimation.setDirection(Direction.BACKWARDS);
        }

        return target;
    }

    private int getColor(int index) {
        return colors[index % colors.length];
    }
}

SS
1759770629527.png

/del принимаеться
 
Это больше на Нурик похоже
 
Мой первый скид
Сам шедевро код
АА $$$ELFCODE:
Expand Collapse Copy
package wtf.expensive.modules.impl.render;

import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.platform.GlStateManager;
import net.minecraft.client.MainWindow;
import net.minecraft.client.entity.player.AbstractClientPlayerEntity;
import net.minecraft.client.gui.DisplayEffectsScreen;
import net.minecraft.client.gui.screen.ChatScreen;
import net.minecraft.client.network.play.NetworkPlayerInfo;
import net.minecraft.client.renderer.texture.PotionSpriteUploader;
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
import net.minecraft.client.resources.I18n;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.AirItem;
import net.minecraft.item.ItemStack;
import net.minecraft.potion.Effect;
import net.minecraft.potion.EffectInstance;
import net.minecraft.potion.EffectUtils;
import net.minecraft.scoreboard.Score;
import net.minecraft.scoreboard.ScoreObjective;
import net.minecraft.scoreboard.ScorePlayerTeam;
import net.minecraft.scoreboard.Team;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.vector.Vector4f;
import net.minecraft.util.text.ITextComponent;
import wtf.expensive.Initilization;
import wtf.expensive.events.Event;
import wtf.expensive.events.impl.player.EventUpdate;
import wtf.expensive.events.impl.render.EventRender;
import wtf.expensive.managment.Managment;
import wtf.expensive.modules.Function;
import wtf.expensive.modules.FunctionAnnotation;
import wtf.expensive.modules.Type;
import wtf.expensive.modules.settings.imp.BooleanOption;
import wtf.expensive.modules.settings.imp.MultiBoxSetting;
import wtf.expensive.modules.settings.imp.SliderSetting;
import wtf.expensive.util.ClientUtil;
import wtf.expensive.util.animations.Animation;
import wtf.expensive.util.animations.Direction;
import wtf.expensive.util.animations.impl.EaseBackIn;
import wtf.expensive.util.drag.Dragging;
import wtf.expensive.util.font.Fonts;
import wtf.expensive.util.font.styled.StyledFont;
import wtf.expensive.util.misc.HudUtil;
import wtf.expensive.util.render.*;
import wtf.expensive.util.render.animation.AnimationMath;

import java.awt.*;
import java.util.*;
import java.util.List;
import java.util.concurrent.atomic.AtomicReference;
import java.util.regex.Pattern;

import static net.minecraft.client.Minecraft.debugFPS;
import static org.joml.Math.lerp;
import static wtf.expensive.util.render.RenderUtil.Render2D.drawFace;

@FunctionAnnotation(name = "Hud", type = Type.Render)
public class HUD2 extends Function {

    public final SliderSetting alphaslider = new SliderSetting("Прозрачность", 190f, 35f, 255f, 1f);
    public final BooleanOption blacks = new BooleanOption("Тень", false);
    public final BooleanOption blurss = new BooleanOption("Блюр", true);

    public final MultiBoxSetting elements = new MultiBoxSetting("Elements",
            new BooleanOption("Active Target", true),
            new BooleanOption("Logo", true),
            new BooleanOption("Active Binds", true),
            new BooleanOption("Active Staff", true),
            new BooleanOption("Effects", true)
    );

    public final BooleanOption hp = new BooleanOption("Хп под тему", false);

    public HUD2() {
        addSettings(alphaslider, blacks, blurss, hp, elements);
    }

    final float round_degree = 3;
    final float cWidth = 4;
    private float bpsanika;
    private float fpsanimka = 0;
    private float hpanimka = 0;
    private float pinganimka = 0;
    private int activeModules = 0;
    private float widthAnime = 0.0F;
    private float offsetbind = 10.5F;
    private float widthDynamic = 0.0F;
    private float activePotions = 0.0F;
    private float widthAnim;
    private float heightAnim;
    private float hpanimcricle = 0.0F;
    private float[] graphValues = new float[5];
    private int currentIndex = 0;
    private float smoothedBps = 0;
    private int updateInterval = 1;
    private int frameCounter = 0;

    final Vector4f left_vec = new Vector4f(round_degree, round_degree, 0, 0);
    final Vector4f right_vec = new Vector4f(0, 0, round_degree, round_degree);

    final int b_color = new Color(0, 0, 0, 128).getRGB();
    final int t_color = Color.WHITE.getRGB();

    int[] colors = new int[360];

    final StyledFont icons = Fonts.icons1[20];
    final StyledFont medium = Fonts.msMedium[16];
    final StyledFont small = Fonts.msMedium[14];

    MainWindow window;

    List<Function> modules = new ArrayList<>();

    final Dragging keyBinds = Initilization.createDrag(this, "HotKeys", mc.getMainWindow().scaledWidth() - 80, 3);
    final Dragging staffList = Initilization.createDrag(this, "Staff", mc.getMainWindow().scaledWidth() - 105, 25);
    public Dragging potionStatus = Initilization.createDrag(this, "PotionStatus", 450.0F, 50.0F);
    final Dragging targetHUD = Initilization.createDrag(this, "TH", mc.getMainWindow().scaledWidth() / 2 - 50, (float)mc.getMainWindow().scaledHeight() - 60);
    final Dragging Logo = Initilization.createDrag(this, "Logo", 5, 5);

    Animation tHudAnimation = new EaseBackIn(400, 1, 1.5f);
    Animation tpalec = new EaseBackIn(400, 1, 1.5f);
    float absorption = 0.0f;
    PlayerEntity target = null;



    private final Pattern namePattern = Pattern.compile("^\\w{3,16}$");
    private final Pattern prefixMatches = Pattern.compile(".*(mod|der|adm|help|wne|мод|хелп|помо|адм|владе|отри|таф|taf|curat|курато|dev|раз|supp|сапп|yt|ютуб).*");

    private final Map<ITextComponent, String> staffPlayers = new LinkedHashMap<>();


    @Override
    public boolean onEvent(Event event) {
        if (mc.player == null || mc.world == null) return false;

        if (event instanceof EventUpdate) {
            staffPlayers.clear();

            for (ScorePlayerTeam team : mc.world.getScoreboard().getTeams().stream().sorted(Comparator.comparing(Team::getName)).toList()) {
                String name = team.getMembershipCollection().toString();
                name = name.substring(1, name.length() - 1);
                if (namePattern.matcher(name).matches()) {
                    if (prefixMatches.matcher(team.getPrefix().getString().toLowerCase(Locale.ROOT)).matches() || Managment.STAFF_MANAGER.isStaff(name)) {
                        staffPlayers.put(team.getPrefix(), name);
                    }
                }
            }

            // Упрощенная логика BPS
            frameCounter++;
            if (frameCounter >= updateInterval) {
                String bpsString = HudUtil.calculateBPS();
                try {
                    // Заменяем запятую на точку если нужно
                    bpsString = bpsString.replace(',', '.');
                    float currentBps = Float.parseFloat(bpsString);
                    graphValues[currentIndex] = currentBps;
                    currentIndex = (currentIndex + 1) % graphValues.length;

                    float sum = 0;
                    for (float val : graphValues) {
                        sum += val;
                    }
                    smoothedBps = sum / graphValues.length;
                    frameCounter = 0;
                } catch (NumberFormatException e) {
                    smoothedBps = 0.0f;
                }
            }
            bpsanika = AnimationMath.fast(bpsanika, smoothedBps, 10.0f);
        }

        if (event instanceof EventRender e && e.isRender2D()) {
            for (int i = 0; i < colors.length; i++) {
                colors[i] = Managment.STYLE_MANAGER.getCurrentStyle().getColor(i);
            }

            window = e.scaledResolution;

            final MatrixStack matrixStack = e.matrixStack;

            if (elements.get(0)) renderTarget(matrixStack);
            if (elements.get(1)) Logo(matrixStack);
            if (elements.get(2)) renderKeyBinds(matrixStack);
            if (elements.get(3)) renderStaffList(matrixStack);
            if (elements.get(4)) renderPotions(matrixStack);
        }
        return false;
    }

    public void Logo(MatrixStack stack) {
        float x = this.Logo.getX();
        float y = this.Logo.getY();
        StyledFont font = Fonts.msSemiBold[14];
        String info = " / " + mc.debugFPS + "fps";
        float width = font.getWidth("Evaware" + info) + 8;
        int alpha = (int) alphaslider.getValue().floatValue();
        if (blurss.get()) {
            GaussianBlur.startBlur();
            RenderUtil.Render2D.drawRoundedRect(x, y, width, 13, 3.5f, new Color(24, 24, 24, 236).getRGB());
            GaussianBlur.endBlur(3.5f, 1);
        }
        if (blacks.get()) {
            RenderUtil.Render2D.drawShadow(x, y, width, 13, 10, ColorUtil.rgba(0, 0, 0, alpha));
        }
        RenderUtil.Render2D.drawRoundedRect(x, y, width, 13, 3.5f, ColorUtil.rgba(0, 0, 0, alpha));
        font.drawString(stack, "Evaware", x + 4, y + 4.5f, -1);
        font.drawString(stack, info, x + 4 + font.getWidth("Evaware"), y + 4.5f, -1);
        this.Logo.setWidth(width);
        this.Logo.setHeight(13);
    }

    private void drawItemStack(float x, float y, float offset) {
        List<ItemStack> stacks = new ArrayList<>(Arrays.asList(target.getHeldItemMainhand(), target.getHeldItemOffhand()));
        target.getArmorInventoryList().forEach(stacks::add);
        stacks.removeIf(w -> w.getItem() instanceof AirItem);
        Collections.reverse(stacks);
        final AtomicReference<Float> posX = new AtomicReference<>(x);

        stacks.stream()
                .filter(stack -> !stack.isEmpty())
                .forEach(stack -> HudUtil.drawItemStack(stack,
                        posX.getAndAccumulate(offset, Float::sum),
                        y,
                        true,
                        true, 0.6f));
    }

    private void renderPotions(MatrixStack matrixStack) {
        float posX = this.potionStatus.getX();
        float posY = this.potionStatus.getY();
        int headerHeight = 14;
        int width = mc.player.getActivePotionEffects().isEmpty() ? 80 : 98;
        int padding = 5;
        float offset = 10.5F;
        this.widthAnim = AnimationMath.fast(this.widthAnim, (float) width, 13.5F);
        this.heightAnim = AnimationMath.fast(this.heightAnim, offset, 10.0F);
        int firstColor = ColorUtil.getColorStyle(0.0F);
        int secondColor = ColorUtil.getColorStyle(90.0F);
        int alpha = (int) alphaslider.getValue().floatValue();
        if (blurss.get()) {
            GaussianBlur.startBlur();
            RenderUtil.Render2D.drawRoundedRect(posX, posY, this.widthAnim, 14.0F, 3.5F, (new Color(24, 24, 24, 236)).getRGB());
            GaussianBlur.endBlur(3.5f, 1);
        }
        if (blacks.get()) {
            RenderUtil.Render2D.drawShadow(posX, posY, this.widthAnim, 14.0F, 10, (ColorUtil.rgba(0, 0, 0, alpha)));
        }
        RenderUtil.Render2D.drawRoundedRect(posX, posY, this.widthAnim, 14.0F, 3.5F, (ColorUtil.rgba(0, 0, 0, alpha)));
        Fonts.sf_medium[15].drawString(matrixStack, "Active potions", (double) (this.potionStatus.getX() + 18.0F), (double) (posY + 5.0F), -1);
        RenderUtil.Render2D.drawRect(posX + 15.0F, posY + 3.0F, 0.3F, 7.5F, (new Color(200, 200, 200, 100)).getRGB());
        Fonts.nursultan[16].drawString(matrixStack, ClientUtil.gradient((String) "E", Managment.STYLE_MANAGER.getCurrentStyle().getColor(0), Managment.STYLE_MANAGER.getCurrentStyle().getColor(90)), (double) (posX + 4.5F), (double) (posY + 6.0F), -1);
        int index = 0;
        Iterator var9 = mc.player.getActivePotionEffects().iterator();

        while (var9.hasNext()) {
            EffectInstance p = (EffectInstance) var9.next();
            if (p.isShowIcon()) {
                String durationText = EffectUtils.getPotionDurationString(p, 1.0F);
                float durationWidth = Fonts.sf_medium[12].getWidth(durationText);
                int amplifier = p.getAmplifier();
                String amplifierText = amplifier > 0 ? "" + (amplifier + 1) : "";
                posY += offset;
                if (blurss.get()) {
                    GaussianBlur.startBlur();
                    RenderUtil.Render2D.drawRoundedRect(posX + (float) padding - 5.0F, posY + (float) headerHeight + (float) padding - 14.5F, this.widthAnim, this.heightAnim - 0.5F, 2.5f, (new Color(24, 24, 24, 236)).getRGB());
                    GaussianBlur.endBlur(2.5f, 1);
                }
                if (blacks.get()) {
                    RenderUtil.Render2D.drawShadow(posX + (float) padding - 5.0F, posY + (float) headerHeight + (float) padding - 14.5F, this.widthAnim, this.heightAnim - 0.5F, 10, (ColorUtil.rgba(0, 0, 0, alpha)));
                }
                RenderUtil.Render2D.drawRoundedRect(posX + (float) padding - 5.0F, posY + (float) headerHeight + (float) padding - 14.5F, this.widthAnim, this.heightAnim - 0.5F, 2.5f, (ColorUtil.rgba(0, 0, 0, alpha)));
                Fonts.sf_medium[13].drawString(matrixStack, I18n.format(p.getEffectName(), new Object[0]), (double) (posX + (float) padding) - 2, (double) (posY + (float) headerHeight + (float) padding - 11.0F), -1);
                int color = -1;
                if (amplifier == 1) {
                    color = (new Color(255, 255, 255, 250)).getRGB();
                } else if (amplifier >= 2) {
                    color = (new Color(255, 255, 255, 250)).getRGB();
                }

                PotionSpriteUploader potionspriteuploader = mc.getPotionSpriteUploader();
                Effect effect = p.getPotion();
                TextureAtlasSprite textureatlassprite = potionspriteuploader.getSprite(effect);
                mc.getTextureManager().bindTexture(textureatlassprite.getAtlasTexture().getTextureLocation());
                DisplayEffectsScreen.blit(matrixStack, (int) (posX + (float) width - (float) padding - 4.5F), (int) (posY + (float) headerHeight + (float) padding - 12.8F), 10, 8, 8, textureatlassprite);
                Fonts.sf_medium[13].drawString(matrixStack, amplifierText, (double) (posX + (float) padding + Fonts.sf_medium[13].getWidth(I18n.format(p.getEffectName(), new Object[0])) + -0.5F), (double) (posY + (float) headerHeight + (float) padding - 11.0F), color);
                Fonts.sf_medium[13].drawString(matrixStack, durationText, (double) (posX + (float) width - durationWidth - (float) padding - 12.0F), (double) (posY + (float) headerHeight + (float) padding - 11.0F), -1);
                RenderUtil.Render2D.drawRect(posX + (float) padding + 80.0F, posY - 12.5F + (float) headerHeight + (float) padding, 0.3F, 5.8F, (new Color(200, 200, 200, 100)).getRGB());
                ++index;
            }
        }

        this.activePotions = index;
        this.potionStatus.setWidth((float) width);
        this.potionStatus.setHeight((float) this.activePotions * offset + (float) headerHeight);
    }


    float kbHeight = 0;
    float kbWidth = 100;

    float kbWidthAnimation = 0, kbHeightAnimation = 0;

    private void renderKeyBinds(MatrixStack matrixStack) {
        float posX = this.keyBinds.getX();
        float posY = this.keyBinds.getY();
        int headerHeight = 14;
        int padding = 5;
        int firstColor = ColorUtil.getColorStyle(0.0F);
        int secondColor = ColorUtil.getColorStyle(90.0F);
        this.activeModules = 0;
        Iterator var6 = Managment.FUNCTION_MANAGER.getFunctions().iterator();

        while (var6.hasNext()) {
            Function f = (Function) var6.next();
            if (f.bind != 0 && f.state) {
                ++this.activeModules;
            }
        }

        this.keyBinds.setHeight((float) this.activeModules * this.offsetbind + (float) headerHeight);
        float maxWidth = 0.0F;
        float height = this.activeModules * offsetbind;
        Iterator var16 = Managment.FUNCTION_MANAGER.getFunctions().iterator();

        while (var16.hasNext()) {
            Function f = (Function) var16.next();
            if (f.bind != 0 && f.state) {
                String text = ClientUtil.getKey(f.bind);
                if (text != null) {
                    String bindText = text.toUpperCase();
                    float bindWidth = Fonts.sf_medium[13].getWidth(bindText);
                    float nameWidth = Fonts.sf_medium[13].getWidth(f.name);
                    maxWidth = Math.max(maxWidth, bindWidth);
                    maxWidth = Math.max(maxWidth, nameWidth);
                }
            }
        }

        float targetWidth = Math.max(60.0F, 15.5F + maxWidth + (float) (padding * 2) + 5.0F);
        this.widthAnime = AnimationMath.lerp(this.widthAnime, targetWidth, 10.5F);
        this.keyBinds.setWidth(this.widthAnime);
        int alpha = (int) alphaslider.getValue().floatValue();
        if (blurss.get()) {
            GaussianBlur.startBlur();
            RenderUtil.Render2D.drawRoundedRect(posX, posY - 2.0F, this.keyBinds.getWidth(), 14.0F, 3.5F, (new Color(0, 0, 0, 140)).getRGB());
            RenderUtil.Render2D.drawRect(posX + 16.0F, posY + 1.0F, 0.3F, 7.5F, (new Color(200, 200, 200, 100)).getRGB());
            GaussianBlur.endBlur(7.5f, 1);
        }
        if (blacks.get()) {
            RenderUtil.Render2D.drawShadow(posX, posY - 2.0F, this.keyBinds.getWidth(), 14.0F, 10, (ColorUtil.rgba(0, 0, 0, alpha)));
        }
        RenderUtil.Render2D.drawRoundedRect(posX, posY - 2.0F, this.keyBinds.getWidth(), 14.0F, 3.5F, (ColorUtil.rgba(0, 0, 0, alpha)));
        RenderUtil.Render2D.drawRect(posX + 16.0F, posY + 1.0F, 0.3F, 7.5F, (new Color(200, 200, 200, 100)).getRGB());
        Fonts.sf_medium[15].drawString(matrixStack, "Hotkeys", (double) (posX + 20.5F), (double) (posY + 3F), (new Color(255, 255, 255, 255)).getRGB());
        Fonts.nursultan[16].drawString(matrixStack, ClientUtil.gradient((String) "C", Managment.STYLE_MANAGER.getCurrentStyle().getColor(0), Managment.STYLE_MANAGER.getCurrentStyle().getColor(90)), (double) (posX + 5.0F), (double) (posY + 4.0F), -1);
        RenderUtil.SmartScissor.push();
        RenderUtil.SmartScissor.setFromComponentCoordinates((double) posX - 50, (double) posY, (double) this.keyBinds.getWidth() + 100, (double) this.keyBinds.getHeight() + 100);
        int index = 0;
        Iterator var19 = Managment.FUNCTION_MANAGER.getFunctions().iterator();

        while (var19.hasNext()) {
            Function f = (Function) var19.next();
            if (f.bind != 0 && f.state) {
                String text = ClientUtil.getKey(f.bind);
                if (text != null) {
                    String bindText = text.toUpperCase();
                    float bindWidth = Fonts.sf_medium[13].getWidth(bindText);
                    StyledFont keyname = Fonts.sf_medium[13];
                    if (blurss.get()) {
                        GaussianBlur.startBlur();
                        RenderUtil.Render2D.drawRoundedRect(posX + (float) padding - 5.0F, posY - 6.0F + (float) headerHeight + (float) padding + (float) index * this.offsetbind, this.keyBinds.getWidth(), 10.0F, 2.5F, (new Color(24, 24, 24, 236)).getRGB());
                        GaussianBlur.endBlur(2.5f, 1);
                    }
                    RenderUtil.Render2D.drawRoundedRect(posX + (float) padding - 5.0F, posY - 6.0F + (float) headerHeight + (float) padding + (float) index * this.offsetbind, this.keyBinds.getWidth(), 10.0F, 2.5F, (ColorUtil.rgba(0, 0, 0, alpha)));
                    if (blacks.get()) {
                        RenderUtil.Render2D.drawShadow(posX + (float) padding - 5.0F, posY - 6.0F + (float) headerHeight + (float) padding + (float) index * this.offsetbind, this.keyBinds.getWidth(), 10, 10, (ColorUtil.rgba(0, 0, 0, alpha)));
                    }
                    Fonts.sf_medium[13].drawString(matrixStack, bindText, (double) (posX + this.keyBinds.getWidth() - (float) padding - bindWidth + 1.5F), (double) (posY - 2.5F + (float) headerHeight + (float) padding + (float) index * this.offsetbind), -1);
                    keyname.drawString(matrixStack, f.name, (posX + -2F + (float) padding), (double) (posY - 2.5F + (float) headerHeight + (float) padding + (float) index * this.offsetbind), -1);
                    ++index;
                }
            }
        }

        RenderUtil.SmartScissor.unset();
        RenderUtil.SmartScissor.pop();
    }

    int activeStaff = 0;

    private void renderStaffList(MatrixStack matrixStack) {
        float x = this.staffList.getX();
        float y = this.staffList.getY();
        float width = 85.5F;
        float height = 14.0F;
        float offset = 10.5F;
        int headerHeight = 14;
        int padding = 5;
        float staffActive = x + 19.5F;
        if (this.activeStaff == 0) {
            width = 68.5F;
        }

        this.widthDynamic = AnimationMath.fast(this.widthDynamic, width, 10);
        int alpha = (int) alphaslider.getValue().floatValue();
        if (blurss.get()) {
            GaussianBlur.startBlur();
            RenderUtil.Render2D.drawRoundedRect(x, y, widthDynamic, height, 3.5F, (new Color(0, 0, 0, 255)).getRGB());
            GaussianBlur.endBlur(3.5f, 1);
        }
        if (blacks.get()) {
            RenderUtil.Render2D.drawShadow(x, y, widthDynamic, height, 10, (ColorUtil.rgba(0, 0, 0, alpha)));
        }
        RenderUtil.Render2D.drawRoundedRect(x, y, widthDynamic, height, 3.5F, (ColorUtil.rgba(0, 0, 0, alpha)));
        RenderUtil.Render2D.drawRect(x + 16.0F, y + 3.0F, 0.3F, 7.5F, (new Color(200, 200, 200, 100)).getRGB());
        Fonts.sf_medium[15].drawString(matrixStack, "Staff online", (double) staffActive, (double) (y + 5.0F), (new Color(255, 255, 255, 255)).getRGB());
        Fonts.nursultan[18].drawString(matrixStack, ClientUtil.gradient((String) "O", Managment.STYLE_MANAGER.getCurrentStyle().getColor(0), Managment.STYLE_MANAGER.getCurrentStyle().getColor(90)), (double) (x + 4.0F), (double) (y + 5.5F), -1);
        int i = 0;
        Iterator var10 = mc.world.getScoreboard().getTeams().stream().sorted(Comparator.comparing(Team::getName)).toList().iterator();


        while (true) {
            String name;
            boolean vanish;
            boolean near;
            boolean active;
            do {
                do {
                    if (!var10.hasNext()) {
                        this.activeStaff = i;
                        this.staffList.setWidth((int) width);
                        this.staffList.setHeight(height + offset * this.activeStaff);
                        return;
                    }

                    ScorePlayerTeam team = (ScorePlayerTeam) var10.next();
                    name = team.getMembershipCollection().toString();
                    name = name.substring(1, name.length() - 1);
                } while (!this.namePattern.matcher(name).matches());

                vanish = true;
                near = false;
                active = false;
                Iterator var16 = mc.world.getPlayers().iterator();

                while (var16.hasNext()) {
                    AbstractClientPlayerEntity player = (AbstractClientPlayerEntity) var16.next();
                    if (player.getNameClear().equals(name)) {
                        near = true;
                    }
                }

                var16 = mc.getConnection().getPlayerInfoMap().iterator();

                while (var16.hasNext()) {
                    NetworkPlayerInfo info = (NetworkPlayerInfo) var16.next();
                    if (info.getGameProfile().getName().equals(name)) {
                        vanish = false;
                        if (!near) {
                            active = true;
                        }
                    }
                }
            } while (!vanish && !Managment.STAFF_MANAGER.isStaff(name));

            String Name = name.substring(0, Math.min(name.length(), 16));
            float yText = y + 18.5F;
            StyledFont nickDraw = Fonts.sf_medium[14];
            if (blurss.get()) {
                GaussianBlur.startBlur();
                RenderUtil.Render2D.drawRoundedRect(x + (float) padding - 5.0F, yText - 4.0F, widthDynamic, 10.0F, 2.5f, (new Color(24, 24, 24, 236)).getRGB());
                GaussianBlur.endBlur(2.5f, 1);
            }
            if (blacks.get()) {
                RenderUtil.Render2D.drawShadow(x + (float) padding - 5.0F, yText - 4.0F, widthDynamic, 10.0F, 10, (ColorUtil.rgba(0, 0, 0, alpha)));
            }
            RenderUtil.Render2D.drawRoundedRect(x + (float) padding - 5.0F, yText - 4.0F, widthDynamic, 10.0F, 2.5f, (ColorUtil.rgba(0, 0, 0, alpha)));
            nickDraw.drawString(matrixStack, Name, (double) (x + 3.0F), (double) yText, (new Color(255, 255, 255, 254)).getRGB());
            if (active) {
                RenderUtil.Render2D.drawRoundCircle(x + widthDynamic - 6, y + 19.8F, 5.5F, (new Color(21, 238, 15, 255)).getRGB());
            }

            if (vanish) {
                RenderUtil.Render2D.drawRoundCircle(x + widthDynamic - 6, y + 19.8F, 5.5F, (new Color(250, 19, 45, 255)).getRGB());
            }

            if (near && !vanish) {
                RenderUtil.Render2D.drawRoundCircle(x + widthDynamic - 6, y + 19.8F, 5.5F, (new Color(255, 196, 0, 255)).getRGB());
            }

            y += offset;
            ++i;
        }
    }
    float health = 0;

    private double scale = 0.0D;

    private void renderTarget(MatrixStack matrixStack) {
        float x = this.targetHUD.getX();
        float y = this.targetHUD.getY();
        float width2 = 98.0f;
        float height2 = 34.0f;
        float widthFace = 34.0f;
        this.target = this.getTarget(this.target);
        this.tHudAnimation.setDuration(280);
        this.scale = this.tHudAnimation.getOutput();
        if (this.scale == 0.0) {
            this.target = null;
        }
        if (this.target == null) {
            return;
        }
        GlStateManager.pushMatrix();
        AnimationMath.sizeAnimation(x + width2 / 2.0f, y + 15.0f, this.scale);
        int alpha = (int) alphaslider.getValue().floatValue();
        if (blurss.get()) {
            GaussianBlur.startBlur();
            RenderUtil.Render2D.drawRoundedRect(x, y, width2 + 5, height2 + 5, 5, (ColorUtil.rgba(0, 0, 0, alpha)));
            GaussianBlur.endBlur(3, 1);
        }
        if (blacks.get()) {
            RenderUtil.Render2D.drawShadow(x, y, width2 + 5, height2 + 5, 10, (ColorUtil.rgba(0, 0, 0, alpha)));
        }
        RenderUtil.Render2D.drawRoundedRect(x, y, width2 + 5, height2 + 5, 5, (ColorUtil.rgba(0, 0, 0, alpha)));
        RenderUtil.Render2D.drawShadow(x, y, width2 + 5, height2 + 5, 10, (new Color(0, 0, 0, 0)).getRGB());
        RenderUtil.Render2D.drawRoundFace(x + 3, y + 3.5f, 32, 32, 5, 1F, (AbstractClientPlayerEntity) this.target);
        float xHP = x + widthFace + 3.8f;
        float yHP = y + 21.3f;
        float widthHP = 52.0f;
        this.health = AnimationMath.fast(this.health, this.target.getHealth() / this.target.getMaxHealth(), 6.0f);
        this.health = MathHelper.clamp(this.health, 0.0f, 1.0f);
        this.absorption = AnimationMath.fast(this.absorption, this.target.getAbsorptionAmount() / this.target.getMaxHealth(), 6.0f);
        this.absorption = MathHelper.clamp(this.absorption, 0.0f, 1.0f);
        if (ClientUtil.isConnectedToServer("reallyworld")) {
            for (Map.Entry<ScoreObjective, Score> entry : mc.world.getScoreboard().getObjectivesForEntity(this.target.getName().getString()).entrySet()) {
                ScoreObjective objective = (ScoreObjective) entry.getKey();
                Score score = (Score) entry.getValue();
                this.target.setHealth((float) score.getScorePoints());
            }
        }
        if (!hp.get()) {
            if (this.target.getHealth() >= 15.0F) {
                RenderUtil.Render2D.drawGradientRound(xHP, yHP + 6, 60, 6, 2, ColorUtil.rgba(62, 106, 36, 68), ColorUtil.rgba(62, 106, 36, 68), ColorUtil.rgba(117, 237, 47, 68), ColorUtil.rgba(117, 237, 47, 68));
                RenderUtil.Render2D.drawGradientRound(xHP, yHP + 6, 60 * this.health, 6, 2, ColorUtil.rgba(62, 106, 36, 250), ColorUtil.rgba(62, 106, 36, 250), ColorUtil.rgba(117, 237, 47, 250), ColorUtil.rgba(117, 237, 47, 250));

            } else if (this.target.getHealth() >= 5.0F) {
                RenderUtil.Render2D.drawGradientRound(xHP, yHP + 6, 60, 6, 2, ColorUtil.rgba(145, 145, 22, 68), ColorUtil.rgba(145, 145, 22, 68), ColorUtil.rgba(212, 237, 15, 68), ColorUtil.rgba(212, 237, 15, 68));
                RenderUtil.Render2D.drawGradientRound(xHP, yHP + 6, 60 * this.health, 6, 2, ColorUtil.rgba(145, 145, 22, 250), ColorUtil.rgba(145, 145, 22, 250), ColorUtil.rgba(212, 237, 15, 250), ColorUtil.rgba(212, 237, 15, 250));
            } else if (this.target.getHealth() >= 1000.0F) {
                RenderUtil.Render2D.drawGradientRound(xHP, yHP + 6, 60, 6, 2, ColorUtil.rgba(255, 255, 255, 68), ColorUtil.rgba(32, 32, 32, 68), ColorUtil.rgba(255, 255, 255, 170), ColorUtil.rgba(204, 0, 0, 68));
                RenderUtil.Render2D.drawGradientRound(xHP, yHP + 6, 60 * this.health, 6, 2, ColorUtil.rgba(255, 255, 255, 250), ColorUtil.rgba(32, 32, 32, 250), ColorUtil.rgba(255, 255, 255, 250), ColorUtil.rgba(204, 0, 0, 250));
            } else {
                RenderUtil.Render2D.drawGradientRound(xHP, yHP + 6, 60, 6, 2, ColorUtil.rgba(147, 22, 22, 68), ColorUtil.rgba(147, 22, 22, 68), ColorUtil.rgba(230, 16, 16, 68), ColorUtil.rgba(230, 16, 16, 68));
                RenderUtil.Render2D.drawGradientRound(xHP, yHP + 6, 60 * this.health, 6, 2, ColorUtil.rgba(147, 22, 22, 250), ColorUtil.rgba(147, 22, 22, 250), ColorUtil.rgba(230, 16, 16, 250), ColorUtil.rgba(230, 16, 16, 250));
            }
        } else {
            RenderUtil.Render2D.drawGradientRound(xHP, yHP + 6, 60 * this.health, 6, 2.0F, ColorUtil.getColorStyle(240), ColorUtil.getColorStyle(20), ColorUtil.getColorStyle(40), ColorUtil.getColorStyle(90));
        }
        RenderUtil.Render2D.drawGradientRound(xHP - 0.2f, yHP - 0.3f + 6, 55 * this.absorption - 2, 6.5f, 2.0F, ColorUtil.rgba(62, 71, 0, 250), ColorUtil.rgba(32, 32, 32, 250), ColorUtil.rgba(255, 255, 0, 250), ColorUtil.rgba(153, 153, 0, 250));
        String targetName = this.target.getName().getString();
        RenderUtil.SmartScissor.push();
        RenderUtil.SmartScissor.setFromComponentCoordinates(x, y, width2 - 6.0f, height2);
        Fonts.sf_medium[18].drawString(matrixStack, targetName, (double) xHP, (double) (yHP - 15.3f), new Color(255, 255, 255, 255).getRGB());
        RenderUtil.SmartScissor.unset();
        RenderUtil.SmartScissor.pop();
        String BS = String.valueOf(this.target.getAbsorptionAmount());
        String HP = String.valueOf(this.target.getHealth());
        String abbs = BS.substring(0, Math.min(BS.length(), 4));
        String StringHP = HP.substring(0, Math.min(HP.length(), 4));
        String swagsoudzafake = target.getHealth() / target.getMaxHealth() * 100 + " ";
        String swagsoudza = swagsoudzafake.substring(0, Math.min(HP.length(), 3));
        if (this.target.getHealth() + this.target.getAbsorptionAmount() < 10.0f) {
            StringHP = HP.substring(0, Math.min(HP.length(), 3));
        }
        Fonts.sf_medium[13].drawString(matrixStack, "HP: " + StringHP, (double) xHP, (double) (yHP - 0.7f), new Color(255, 255, 255, 255).getRGB());
        this.drawItemStack(x, y - 12.0f, 10.5f);
        GlStateManager.popMatrix();
        this.targetHUD.setWidth(width2);
        this.targetHUD.setHeight(height2);
    }

    private PlayerEntity getTarget(PlayerEntity nullTarget) {
        PlayerEntity target = nullTarget;

        if (Managment.FUNCTION_MANAGER.auraFunction.getTarget() instanceof PlayerEntity) {
            target = (PlayerEntity) Managment.FUNCTION_MANAGER.auraFunction.getTarget();
            tHudAnimation.setDirection(Direction.FORWARDS);
        } else if (mc.currentScreen instanceof ChatScreen) {
            target = mc.player;
            tHudAnimation.setDirection(Direction.FORWARDS);
        } else {
            tHudAnimation.setDirection(Direction.BACKWARDS);
        }

        return target;
    }

    private int getColor(int index) {
        return colors[index % colors.length];
    }
}

SS
Посмотреть вложение 317163
/del принимаеться
почему так криво? так еще тут от евавара только вт и то такое
 
пасаны во чо нурик скиднуть нe можeтe
 
/del прикольный худ
 
почему так криво? так еще тут от евавара только вт и то такое
ну так недоскид, я из евавара видел ток тхуд нурика и изменое лого кейбинды стаф лист и тд сам добавил с нурика :roflanPominki:
 
Мой первый скид
Сам шедевро код
АА $$$ELFCODE:
Expand Collapse Copy
package wtf.expensive.modules.impl.render;

import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.platform.GlStateManager;
import net.minecraft.client.MainWindow;
import net.minecraft.client.entity.player.AbstractClientPlayerEntity;
import net.minecraft.client.gui.DisplayEffectsScreen;
import net.minecraft.client.gui.screen.ChatScreen;
import net.minecraft.client.network.play.NetworkPlayerInfo;
import net.minecraft.client.renderer.texture.PotionSpriteUploader;
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
import net.minecraft.client.resources.I18n;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.AirItem;
import net.minecraft.item.ItemStack;
import net.minecraft.potion.Effect;
import net.minecraft.potion.EffectInstance;
import net.minecraft.potion.EffectUtils;
import net.minecraft.scoreboard.Score;
import net.minecraft.scoreboard.ScoreObjective;
import net.minecraft.scoreboard.ScorePlayerTeam;
import net.minecraft.scoreboard.Team;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.vector.Vector4f;
import net.minecraft.util.text.ITextComponent;
import wtf.expensive.Initilization;
import wtf.expensive.events.Event;
import wtf.expensive.events.impl.player.EventUpdate;
import wtf.expensive.events.impl.render.EventRender;
import wtf.expensive.managment.Managment;
import wtf.expensive.modules.Function;
import wtf.expensive.modules.FunctionAnnotation;
import wtf.expensive.modules.Type;
import wtf.expensive.modules.settings.imp.BooleanOption;
import wtf.expensive.modules.settings.imp.MultiBoxSetting;
import wtf.expensive.modules.settings.imp.SliderSetting;
import wtf.expensive.util.ClientUtil;
import wtf.expensive.util.animations.Animation;
import wtf.expensive.util.animations.Direction;
import wtf.expensive.util.animations.impl.EaseBackIn;
import wtf.expensive.util.drag.Dragging;
import wtf.expensive.util.font.Fonts;
import wtf.expensive.util.font.styled.StyledFont;
import wtf.expensive.util.misc.HudUtil;
import wtf.expensive.util.render.*;
import wtf.expensive.util.render.animation.AnimationMath;

import java.awt.*;
import java.util.*;
import java.util.List;
import java.util.concurrent.atomic.AtomicReference;
import java.util.regex.Pattern;

import static net.minecraft.client.Minecraft.debugFPS;
import static org.joml.Math.lerp;
import static wtf.expensive.util.render.RenderUtil.Render2D.drawFace;

@FunctionAnnotation(name = "Hud", type = Type.Render)
public class HUD2 extends Function {

    public final SliderSetting alphaslider = new SliderSetting("Прозрачность", 190f, 35f, 255f, 1f);
    public final BooleanOption blacks = new BooleanOption("Тень", false);
    public final BooleanOption blurss = new BooleanOption("Блюр", true);

    public final MultiBoxSetting elements = new MultiBoxSetting("Elements",
            new BooleanOption("Active Target", true),
            new BooleanOption("Logo", true),
            new BooleanOption("Active Binds", true),
            new BooleanOption("Active Staff", true),
            new BooleanOption("Effects", true)
    );

    public final BooleanOption hp = new BooleanOption("Хп под тему", false);

    public HUD2() {
        addSettings(alphaslider, blacks, blurss, hp, elements);
    }

    final float round_degree = 3;
    final float cWidth = 4;
    private float bpsanika;
    private float fpsanimka = 0;
    private float hpanimka = 0;
    private float pinganimka = 0;
    private int activeModules = 0;
    private float widthAnime = 0.0F;
    private float offsetbind = 10.5F;
    private float widthDynamic = 0.0F;
    private float activePotions = 0.0F;
    private float widthAnim;
    private float heightAnim;
    private float hpanimcricle = 0.0F;
    private float[] graphValues = new float[5];
    private int currentIndex = 0;
    private float smoothedBps = 0;
    private int updateInterval = 1;
    private int frameCounter = 0;

    final Vector4f left_vec = new Vector4f(round_degree, round_degree, 0, 0);
    final Vector4f right_vec = new Vector4f(0, 0, round_degree, round_degree);

    final int b_color = new Color(0, 0, 0, 128).getRGB();
    final int t_color = Color.WHITE.getRGB();

    int[] colors = new int[360];

    final StyledFont icons = Fonts.icons1[20];
    final StyledFont medium = Fonts.msMedium[16];
    final StyledFont small = Fonts.msMedium[14];

    MainWindow window;

    List<Function> modules = new ArrayList<>();

    final Dragging keyBinds = Initilization.createDrag(this, "HotKeys", mc.getMainWindow().scaledWidth() - 80, 3);
    final Dragging staffList = Initilization.createDrag(this, "Staff", mc.getMainWindow().scaledWidth() - 105, 25);
    public Dragging potionStatus = Initilization.createDrag(this, "PotionStatus", 450.0F, 50.0F);
    final Dragging targetHUD = Initilization.createDrag(this, "TH", mc.getMainWindow().scaledWidth() / 2 - 50, (float)mc.getMainWindow().scaledHeight() - 60);
    final Dragging Logo = Initilization.createDrag(this, "Logo", 5, 5);

    Animation tHudAnimation = new EaseBackIn(400, 1, 1.5f);
    Animation tpalec = new EaseBackIn(400, 1, 1.5f);
    float absorption = 0.0f;
    PlayerEntity target = null;



    private final Pattern namePattern = Pattern.compile("^\\w{3,16}$");
    private final Pattern prefixMatches = Pattern.compile(".*(mod|der|adm|help|wne|мод|хелп|помо|адм|владе|отри|таф|taf|curat|курато|dev|раз|supp|сапп|yt|ютуб).*");

    private final Map<ITextComponent, String> staffPlayers = new LinkedHashMap<>();


    @Override
    public boolean onEvent(Event event) {
        if (mc.player == null || mc.world == null) return false;

        if (event instanceof EventUpdate) {
            staffPlayers.clear();

            for (ScorePlayerTeam team : mc.world.getScoreboard().getTeams().stream().sorted(Comparator.comparing(Team::getName)).toList()) {
                String name = team.getMembershipCollection().toString();
                name = name.substring(1, name.length() - 1);
                if (namePattern.matcher(name).matches()) {
                    if (prefixMatches.matcher(team.getPrefix().getString().toLowerCase(Locale.ROOT)).matches() || Managment.STAFF_MANAGER.isStaff(name)) {
                        staffPlayers.put(team.getPrefix(), name);
                    }
                }
            }

            // Упрощенная логика BPS
            frameCounter++;
            if (frameCounter >= updateInterval) {
                String bpsString = HudUtil.calculateBPS();
                try {
                    // Заменяем запятую на точку если нужно
                    bpsString = bpsString.replace(',', '.');
                    float currentBps = Float.parseFloat(bpsString);
                    graphValues[currentIndex] = currentBps;
                    currentIndex = (currentIndex + 1) % graphValues.length;

                    float sum = 0;
                    for (float val : graphValues) {
                        sum += val;
                    }
                    smoothedBps = sum / graphValues.length;
                    frameCounter = 0;
                } catch (NumberFormatException e) {
                    smoothedBps = 0.0f;
                }
            }
            bpsanika = AnimationMath.fast(bpsanika, smoothedBps, 10.0f);
        }

        if (event instanceof EventRender e && e.isRender2D()) {
            for (int i = 0; i < colors.length; i++) {
                colors[i] = Managment.STYLE_MANAGER.getCurrentStyle().getColor(i);
            }

            window = e.scaledResolution;

            final MatrixStack matrixStack = e.matrixStack;

            if (elements.get(0)) renderTarget(matrixStack);
            if (elements.get(1)) Logo(matrixStack);
            if (elements.get(2)) renderKeyBinds(matrixStack);
            if (elements.get(3)) renderStaffList(matrixStack);
            if (elements.get(4)) renderPotions(matrixStack);
        }
        return false;
    }

    public void Logo(MatrixStack stack) {
        float x = this.Logo.getX();
        float y = this.Logo.getY();
        StyledFont font = Fonts.msSemiBold[14];
        String info = " / " + mc.debugFPS + "fps";
        float width = font.getWidth("Evaware" + info) + 8;
        int alpha = (int) alphaslider.getValue().floatValue();
        if (blurss.get()) {
            GaussianBlur.startBlur();
            RenderUtil.Render2D.drawRoundedRect(x, y, width, 13, 3.5f, new Color(24, 24, 24, 236).getRGB());
            GaussianBlur.endBlur(3.5f, 1);
        }
        if (blacks.get()) {
            RenderUtil.Render2D.drawShadow(x, y, width, 13, 10, ColorUtil.rgba(0, 0, 0, alpha));
        }
        RenderUtil.Render2D.drawRoundedRect(x, y, width, 13, 3.5f, ColorUtil.rgba(0, 0, 0, alpha));
        font.drawString(stack, "Evaware", x + 4, y + 4.5f, -1);
        font.drawString(stack, info, x + 4 + font.getWidth("Evaware"), y + 4.5f, -1);
        this.Logo.setWidth(width);
        this.Logo.setHeight(13);
    }

    private void drawItemStack(float x, float y, float offset) {
        List<ItemStack> stacks = new ArrayList<>(Arrays.asList(target.getHeldItemMainhand(), target.getHeldItemOffhand()));
        target.getArmorInventoryList().forEach(stacks::add);
        stacks.removeIf(w -> w.getItem() instanceof AirItem);
        Collections.reverse(stacks);
        final AtomicReference<Float> posX = new AtomicReference<>(x);

        stacks.stream()
                .filter(stack -> !stack.isEmpty())
                .forEach(stack -> HudUtil.drawItemStack(stack,
                        posX.getAndAccumulate(offset, Float::sum),
                        y,
                        true,
                        true, 0.6f));
    }

    private void renderPotions(MatrixStack matrixStack) {
        float posX = this.potionStatus.getX();
        float posY = this.potionStatus.getY();
        int headerHeight = 14;
        int width = mc.player.getActivePotionEffects().isEmpty() ? 80 : 98;
        int padding = 5;
        float offset = 10.5F;
        this.widthAnim = AnimationMath.fast(this.widthAnim, (float) width, 13.5F);
        this.heightAnim = AnimationMath.fast(this.heightAnim, offset, 10.0F);
        int firstColor = ColorUtil.getColorStyle(0.0F);
        int secondColor = ColorUtil.getColorStyle(90.0F);
        int alpha = (int) alphaslider.getValue().floatValue();
        if (blurss.get()) {
            GaussianBlur.startBlur();
            RenderUtil.Render2D.drawRoundedRect(posX, posY, this.widthAnim, 14.0F, 3.5F, (new Color(24, 24, 24, 236)).getRGB());
            GaussianBlur.endBlur(3.5f, 1);
        }
        if (blacks.get()) {
            RenderUtil.Render2D.drawShadow(posX, posY, this.widthAnim, 14.0F, 10, (ColorUtil.rgba(0, 0, 0, alpha)));
        }
        RenderUtil.Render2D.drawRoundedRect(posX, posY, this.widthAnim, 14.0F, 3.5F, (ColorUtil.rgba(0, 0, 0, alpha)));
        Fonts.sf_medium[15].drawString(matrixStack, "Active potions", (double) (this.potionStatus.getX() + 18.0F), (double) (posY + 5.0F), -1);
        RenderUtil.Render2D.drawRect(posX + 15.0F, posY + 3.0F, 0.3F, 7.5F, (new Color(200, 200, 200, 100)).getRGB());
        Fonts.nursultan[16].drawString(matrixStack, ClientUtil.gradient((String) "E", Managment.STYLE_MANAGER.getCurrentStyle().getColor(0), Managment.STYLE_MANAGER.getCurrentStyle().getColor(90)), (double) (posX + 4.5F), (double) (posY + 6.0F), -1);
        int index = 0;
        Iterator var9 = mc.player.getActivePotionEffects().iterator();

        while (var9.hasNext()) {
            EffectInstance p = (EffectInstance) var9.next();
            if (p.isShowIcon()) {
                String durationText = EffectUtils.getPotionDurationString(p, 1.0F);
                float durationWidth = Fonts.sf_medium[12].getWidth(durationText);
                int amplifier = p.getAmplifier();
                String amplifierText = amplifier > 0 ? "" + (amplifier + 1) : "";
                posY += offset;
                if (blurss.get()) {
                    GaussianBlur.startBlur();
                    RenderUtil.Render2D.drawRoundedRect(posX + (float) padding - 5.0F, posY + (float) headerHeight + (float) padding - 14.5F, this.widthAnim, this.heightAnim - 0.5F, 2.5f, (new Color(24, 24, 24, 236)).getRGB());
                    GaussianBlur.endBlur(2.5f, 1);
                }
                if (blacks.get()) {
                    RenderUtil.Render2D.drawShadow(posX + (float) padding - 5.0F, posY + (float) headerHeight + (float) padding - 14.5F, this.widthAnim, this.heightAnim - 0.5F, 10, (ColorUtil.rgba(0, 0, 0, alpha)));
                }
                RenderUtil.Render2D.drawRoundedRect(posX + (float) padding - 5.0F, posY + (float) headerHeight + (float) padding - 14.5F, this.widthAnim, this.heightAnim - 0.5F, 2.5f, (ColorUtil.rgba(0, 0, 0, alpha)));
                Fonts.sf_medium[13].drawString(matrixStack, I18n.format(p.getEffectName(), new Object[0]), (double) (posX + (float) padding) - 2, (double) (posY + (float) headerHeight + (float) padding - 11.0F), -1);
                int color = -1;
                if (amplifier == 1) {
                    color = (new Color(255, 255, 255, 250)).getRGB();
                } else if (amplifier >= 2) {
                    color = (new Color(255, 255, 255, 250)).getRGB();
                }

                PotionSpriteUploader potionspriteuploader = mc.getPotionSpriteUploader();
                Effect effect = p.getPotion();
                TextureAtlasSprite textureatlassprite = potionspriteuploader.getSprite(effect);
                mc.getTextureManager().bindTexture(textureatlassprite.getAtlasTexture().getTextureLocation());
                DisplayEffectsScreen.blit(matrixStack, (int) (posX + (float) width - (float) padding - 4.5F), (int) (posY + (float) headerHeight + (float) padding - 12.8F), 10, 8, 8, textureatlassprite);
                Fonts.sf_medium[13].drawString(matrixStack, amplifierText, (double) (posX + (float) padding + Fonts.sf_medium[13].getWidth(I18n.format(p.getEffectName(), new Object[0])) + -0.5F), (double) (posY + (float) headerHeight + (float) padding - 11.0F), color);
                Fonts.sf_medium[13].drawString(matrixStack, durationText, (double) (posX + (float) width - durationWidth - (float) padding - 12.0F), (double) (posY + (float) headerHeight + (float) padding - 11.0F), -1);
                RenderUtil.Render2D.drawRect(posX + (float) padding + 80.0F, posY - 12.5F + (float) headerHeight + (float) padding, 0.3F, 5.8F, (new Color(200, 200, 200, 100)).getRGB());
                ++index;
            }
        }

        this.activePotions = index;
        this.potionStatus.setWidth((float) width);
        this.potionStatus.setHeight((float) this.activePotions * offset + (float) headerHeight);
    }


    float kbHeight = 0;
    float kbWidth = 100;

    float kbWidthAnimation = 0, kbHeightAnimation = 0;

    private void renderKeyBinds(MatrixStack matrixStack) {
        float posX = this.keyBinds.getX();
        float posY = this.keyBinds.getY();
        int headerHeight = 14;
        int padding = 5;
        int firstColor = ColorUtil.getColorStyle(0.0F);
        int secondColor = ColorUtil.getColorStyle(90.0F);
        this.activeModules = 0;
        Iterator var6 = Managment.FUNCTION_MANAGER.getFunctions().iterator();

        while (var6.hasNext()) {
            Function f = (Function) var6.next();
            if (f.bind != 0 && f.state) {
                ++this.activeModules;
            }
        }

        this.keyBinds.setHeight((float) this.activeModules * this.offsetbind + (float) headerHeight);
        float maxWidth = 0.0F;
        float height = this.activeModules * offsetbind;
        Iterator var16 = Managment.FUNCTION_MANAGER.getFunctions().iterator();

        while (var16.hasNext()) {
            Function f = (Function) var16.next();
            if (f.bind != 0 && f.state) {
                String text = ClientUtil.getKey(f.bind);
                if (text != null) {
                    String bindText = text.toUpperCase();
                    float bindWidth = Fonts.sf_medium[13].getWidth(bindText);
                    float nameWidth = Fonts.sf_medium[13].getWidth(f.name);
                    maxWidth = Math.max(maxWidth, bindWidth);
                    maxWidth = Math.max(maxWidth, nameWidth);
                }
            }
        }

        float targetWidth = Math.max(60.0F, 15.5F + maxWidth + (float) (padding * 2) + 5.0F);
        this.widthAnime = AnimationMath.lerp(this.widthAnime, targetWidth, 10.5F);
        this.keyBinds.setWidth(this.widthAnime);
        int alpha = (int) alphaslider.getValue().floatValue();
        if (blurss.get()) {
            GaussianBlur.startBlur();
            RenderUtil.Render2D.drawRoundedRect(posX, posY - 2.0F, this.keyBinds.getWidth(), 14.0F, 3.5F, (new Color(0, 0, 0, 140)).getRGB());
            RenderUtil.Render2D.drawRect(posX + 16.0F, posY + 1.0F, 0.3F, 7.5F, (new Color(200, 200, 200, 100)).getRGB());
            GaussianBlur.endBlur(7.5f, 1);
        }
        if (blacks.get()) {
            RenderUtil.Render2D.drawShadow(posX, posY - 2.0F, this.keyBinds.getWidth(), 14.0F, 10, (ColorUtil.rgba(0, 0, 0, alpha)));
        }
        RenderUtil.Render2D.drawRoundedRect(posX, posY - 2.0F, this.keyBinds.getWidth(), 14.0F, 3.5F, (ColorUtil.rgba(0, 0, 0, alpha)));
        RenderUtil.Render2D.drawRect(posX + 16.0F, posY + 1.0F, 0.3F, 7.5F, (new Color(200, 200, 200, 100)).getRGB());
        Fonts.sf_medium[15].drawString(matrixStack, "Hotkeys", (double) (posX + 20.5F), (double) (posY + 3F), (new Color(255, 255, 255, 255)).getRGB());
        Fonts.nursultan[16].drawString(matrixStack, ClientUtil.gradient((String) "C", Managment.STYLE_MANAGER.getCurrentStyle().getColor(0), Managment.STYLE_MANAGER.getCurrentStyle().getColor(90)), (double) (posX + 5.0F), (double) (posY + 4.0F), -1);
        RenderUtil.SmartScissor.push();
        RenderUtil.SmartScissor.setFromComponentCoordinates((double) posX - 50, (double) posY, (double) this.keyBinds.getWidth() + 100, (double) this.keyBinds.getHeight() + 100);
        int index = 0;
        Iterator var19 = Managment.FUNCTION_MANAGER.getFunctions().iterator();

        while (var19.hasNext()) {
            Function f = (Function) var19.next();
            if (f.bind != 0 && f.state) {
                String text = ClientUtil.getKey(f.bind);
                if (text != null) {
                    String bindText = text.toUpperCase();
                    float bindWidth = Fonts.sf_medium[13].getWidth(bindText);
                    StyledFont keyname = Fonts.sf_medium[13];
                    if (blurss.get()) {
                        GaussianBlur.startBlur();
                        RenderUtil.Render2D.drawRoundedRect(posX + (float) padding - 5.0F, posY - 6.0F + (float) headerHeight + (float) padding + (float) index * this.offsetbind, this.keyBinds.getWidth(), 10.0F, 2.5F, (new Color(24, 24, 24, 236)).getRGB());
                        GaussianBlur.endBlur(2.5f, 1);
                    }
                    RenderUtil.Render2D.drawRoundedRect(posX + (float) padding - 5.0F, posY - 6.0F + (float) headerHeight + (float) padding + (float) index * this.offsetbind, this.keyBinds.getWidth(), 10.0F, 2.5F, (ColorUtil.rgba(0, 0, 0, alpha)));
                    if (blacks.get()) {
                        RenderUtil.Render2D.drawShadow(posX + (float) padding - 5.0F, posY - 6.0F + (float) headerHeight + (float) padding + (float) index * this.offsetbind, this.keyBinds.getWidth(), 10, 10, (ColorUtil.rgba(0, 0, 0, alpha)));
                    }
                    Fonts.sf_medium[13].drawString(matrixStack, bindText, (double) (posX + this.keyBinds.getWidth() - (float) padding - bindWidth + 1.5F), (double) (posY - 2.5F + (float) headerHeight + (float) padding + (float) index * this.offsetbind), -1);
                    keyname.drawString(matrixStack, f.name, (posX + -2F + (float) padding), (double) (posY - 2.5F + (float) headerHeight + (float) padding + (float) index * this.offsetbind), -1);
                    ++index;
                }
            }
        }

        RenderUtil.SmartScissor.unset();
        RenderUtil.SmartScissor.pop();
    }

    int activeStaff = 0;

    private void renderStaffList(MatrixStack matrixStack) {
        float x = this.staffList.getX();
        float y = this.staffList.getY();
        float width = 85.5F;
        float height = 14.0F;
        float offset = 10.5F;
        int headerHeight = 14;
        int padding = 5;
        float staffActive = x + 19.5F;
        if (this.activeStaff == 0) {
            width = 68.5F;
        }

        this.widthDynamic = AnimationMath.fast(this.widthDynamic, width, 10);
        int alpha = (int) alphaslider.getValue().floatValue();
        if (blurss.get()) {
            GaussianBlur.startBlur();
            RenderUtil.Render2D.drawRoundedRect(x, y, widthDynamic, height, 3.5F, (new Color(0, 0, 0, 255)).getRGB());
            GaussianBlur.endBlur(3.5f, 1);
        }
        if (blacks.get()) {
            RenderUtil.Render2D.drawShadow(x, y, widthDynamic, height, 10, (ColorUtil.rgba(0, 0, 0, alpha)));
        }
        RenderUtil.Render2D.drawRoundedRect(x, y, widthDynamic, height, 3.5F, (ColorUtil.rgba(0, 0, 0, alpha)));
        RenderUtil.Render2D.drawRect(x + 16.0F, y + 3.0F, 0.3F, 7.5F, (new Color(200, 200, 200, 100)).getRGB());
        Fonts.sf_medium[15].drawString(matrixStack, "Staff online", (double) staffActive, (double) (y + 5.0F), (new Color(255, 255, 255, 255)).getRGB());
        Fonts.nursultan[18].drawString(matrixStack, ClientUtil.gradient((String) "O", Managment.STYLE_MANAGER.getCurrentStyle().getColor(0), Managment.STYLE_MANAGER.getCurrentStyle().getColor(90)), (double) (x + 4.0F), (double) (y + 5.5F), -1);
        int i = 0;
        Iterator var10 = mc.world.getScoreboard().getTeams().stream().sorted(Comparator.comparing(Team::getName)).toList().iterator();


        while (true) {
            String name;
            boolean vanish;
            boolean near;
            boolean active;
            do {
                do {
                    if (!var10.hasNext()) {
                        this.activeStaff = i;
                        this.staffList.setWidth((int) width);
                        this.staffList.setHeight(height + offset * this.activeStaff);
                        return;
                    }

                    ScorePlayerTeam team = (ScorePlayerTeam) var10.next();
                    name = team.getMembershipCollection().toString();
                    name = name.substring(1, name.length() - 1);
                } while (!this.namePattern.matcher(name).matches());

                vanish = true;
                near = false;
                active = false;
                Iterator var16 = mc.world.getPlayers().iterator();

                while (var16.hasNext()) {
                    AbstractClientPlayerEntity player = (AbstractClientPlayerEntity) var16.next();
                    if (player.getNameClear().equals(name)) {
                        near = true;
                    }
                }

                var16 = mc.getConnection().getPlayerInfoMap().iterator();

                while (var16.hasNext()) {
                    NetworkPlayerInfo info = (NetworkPlayerInfo) var16.next();
                    if (info.getGameProfile().getName().equals(name)) {
                        vanish = false;
                        if (!near) {
                            active = true;
                        }
                    }
                }
            } while (!vanish && !Managment.STAFF_MANAGER.isStaff(name));

            String Name = name.substring(0, Math.min(name.length(), 16));
            float yText = y + 18.5F;
            StyledFont nickDraw = Fonts.sf_medium[14];
            if (blurss.get()) {
                GaussianBlur.startBlur();
                RenderUtil.Render2D.drawRoundedRect(x + (float) padding - 5.0F, yText - 4.0F, widthDynamic, 10.0F, 2.5f, (new Color(24, 24, 24, 236)).getRGB());
                GaussianBlur.endBlur(2.5f, 1);
            }
            if (blacks.get()) {
                RenderUtil.Render2D.drawShadow(x + (float) padding - 5.0F, yText - 4.0F, widthDynamic, 10.0F, 10, (ColorUtil.rgba(0, 0, 0, alpha)));
            }
            RenderUtil.Render2D.drawRoundedRect(x + (float) padding - 5.0F, yText - 4.0F, widthDynamic, 10.0F, 2.5f, (ColorUtil.rgba(0, 0, 0, alpha)));
            nickDraw.drawString(matrixStack, Name, (double) (x + 3.0F), (double) yText, (new Color(255, 255, 255, 254)).getRGB());
            if (active) {
                RenderUtil.Render2D.drawRoundCircle(x + widthDynamic - 6, y + 19.8F, 5.5F, (new Color(21, 238, 15, 255)).getRGB());
            }

            if (vanish) {
                RenderUtil.Render2D.drawRoundCircle(x + widthDynamic - 6, y + 19.8F, 5.5F, (new Color(250, 19, 45, 255)).getRGB());
            }

            if (near && !vanish) {
                RenderUtil.Render2D.drawRoundCircle(x + widthDynamic - 6, y + 19.8F, 5.5F, (new Color(255, 196, 0, 255)).getRGB());
            }

            y += offset;
            ++i;
        }
    }
    float health = 0;

    private double scale = 0.0D;

    private void renderTarget(MatrixStack matrixStack) {
        float x = this.targetHUD.getX();
        float y = this.targetHUD.getY();
        float width2 = 98.0f;
        float height2 = 34.0f;
        float widthFace = 34.0f;
        this.target = this.getTarget(this.target);
        this.tHudAnimation.setDuration(280);
        this.scale = this.tHudAnimation.getOutput();
        if (this.scale == 0.0) {
            this.target = null;
        }
        if (this.target == null) {
            return;
        }
        GlStateManager.pushMatrix();
        AnimationMath.sizeAnimation(x + width2 / 2.0f, y + 15.0f, this.scale);
        int alpha = (int) alphaslider.getValue().floatValue();
        if (blurss.get()) {
            GaussianBlur.startBlur();
            RenderUtil.Render2D.drawRoundedRect(x, y, width2 + 5, height2 + 5, 5, (ColorUtil.rgba(0, 0, 0, alpha)));
            GaussianBlur.endBlur(3, 1);
        }
        if (blacks.get()) {
            RenderUtil.Render2D.drawShadow(x, y, width2 + 5, height2 + 5, 10, (ColorUtil.rgba(0, 0, 0, alpha)));
        }
        RenderUtil.Render2D.drawRoundedRect(x, y, width2 + 5, height2 + 5, 5, (ColorUtil.rgba(0, 0, 0, alpha)));
        RenderUtil.Render2D.drawShadow(x, y, width2 + 5, height2 + 5, 10, (new Color(0, 0, 0, 0)).getRGB());
        RenderUtil.Render2D.drawRoundFace(x + 3, y + 3.5f, 32, 32, 5, 1F, (AbstractClientPlayerEntity) this.target);
        float xHP = x + widthFace + 3.8f;
        float yHP = y + 21.3f;
        float widthHP = 52.0f;
        this.health = AnimationMath.fast(this.health, this.target.getHealth() / this.target.getMaxHealth(), 6.0f);
        this.health = MathHelper.clamp(this.health, 0.0f, 1.0f);
        this.absorption = AnimationMath.fast(this.absorption, this.target.getAbsorptionAmount() / this.target.getMaxHealth(), 6.0f);
        this.absorption = MathHelper.clamp(this.absorption, 0.0f, 1.0f);
        if (ClientUtil.isConnectedToServer("reallyworld")) {
            for (Map.Entry<ScoreObjective, Score> entry : mc.world.getScoreboard().getObjectivesForEntity(this.target.getName().getString()).entrySet()) {
                ScoreObjective objective = (ScoreObjective) entry.getKey();
                Score score = (Score) entry.getValue();
                this.target.setHealth((float) score.getScorePoints());
            }
        }
        if (!hp.get()) {
            if (this.target.getHealth() >= 15.0F) {
                RenderUtil.Render2D.drawGradientRound(xHP, yHP + 6, 60, 6, 2, ColorUtil.rgba(62, 106, 36, 68), ColorUtil.rgba(62, 106, 36, 68), ColorUtil.rgba(117, 237, 47, 68), ColorUtil.rgba(117, 237, 47, 68));
                RenderUtil.Render2D.drawGradientRound(xHP, yHP + 6, 60 * this.health, 6, 2, ColorUtil.rgba(62, 106, 36, 250), ColorUtil.rgba(62, 106, 36, 250), ColorUtil.rgba(117, 237, 47, 250), ColorUtil.rgba(117, 237, 47, 250));

            } else if (this.target.getHealth() >= 5.0F) {
                RenderUtil.Render2D.drawGradientRound(xHP, yHP + 6, 60, 6, 2, ColorUtil.rgba(145, 145, 22, 68), ColorUtil.rgba(145, 145, 22, 68), ColorUtil.rgba(212, 237, 15, 68), ColorUtil.rgba(212, 237, 15, 68));
                RenderUtil.Render2D.drawGradientRound(xHP, yHP + 6, 60 * this.health, 6, 2, ColorUtil.rgba(145, 145, 22, 250), ColorUtil.rgba(145, 145, 22, 250), ColorUtil.rgba(212, 237, 15, 250), ColorUtil.rgba(212, 237, 15, 250));
            } else if (this.target.getHealth() >= 1000.0F) {
                RenderUtil.Render2D.drawGradientRound(xHP, yHP + 6, 60, 6, 2, ColorUtil.rgba(255, 255, 255, 68), ColorUtil.rgba(32, 32, 32, 68), ColorUtil.rgba(255, 255, 255, 170), ColorUtil.rgba(204, 0, 0, 68));
                RenderUtil.Render2D.drawGradientRound(xHP, yHP + 6, 60 * this.health, 6, 2, ColorUtil.rgba(255, 255, 255, 250), ColorUtil.rgba(32, 32, 32, 250), ColorUtil.rgba(255, 255, 255, 250), ColorUtil.rgba(204, 0, 0, 250));
            } else {
                RenderUtil.Render2D.drawGradientRound(xHP, yHP + 6, 60, 6, 2, ColorUtil.rgba(147, 22, 22, 68), ColorUtil.rgba(147, 22, 22, 68), ColorUtil.rgba(230, 16, 16, 68), ColorUtil.rgba(230, 16, 16, 68));
                RenderUtil.Render2D.drawGradientRound(xHP, yHP + 6, 60 * this.health, 6, 2, ColorUtil.rgba(147, 22, 22, 250), ColorUtil.rgba(147, 22, 22, 250), ColorUtil.rgba(230, 16, 16, 250), ColorUtil.rgba(230, 16, 16, 250));
            }
        } else {
            RenderUtil.Render2D.drawGradientRound(xHP, yHP + 6, 60 * this.health, 6, 2.0F, ColorUtil.getColorStyle(240), ColorUtil.getColorStyle(20), ColorUtil.getColorStyle(40), ColorUtil.getColorStyle(90));
        }
        RenderUtil.Render2D.drawGradientRound(xHP - 0.2f, yHP - 0.3f + 6, 55 * this.absorption - 2, 6.5f, 2.0F, ColorUtil.rgba(62, 71, 0, 250), ColorUtil.rgba(32, 32, 32, 250), ColorUtil.rgba(255, 255, 0, 250), ColorUtil.rgba(153, 153, 0, 250));
        String targetName = this.target.getName().getString();
        RenderUtil.SmartScissor.push();
        RenderUtil.SmartScissor.setFromComponentCoordinates(x, y, width2 - 6.0f, height2);
        Fonts.sf_medium[18].drawString(matrixStack, targetName, (double) xHP, (double) (yHP - 15.3f), new Color(255, 255, 255, 255).getRGB());
        RenderUtil.SmartScissor.unset();
        RenderUtil.SmartScissor.pop();
        String BS = String.valueOf(this.target.getAbsorptionAmount());
        String HP = String.valueOf(this.target.getHealth());
        String abbs = BS.substring(0, Math.min(BS.length(), 4));
        String StringHP = HP.substring(0, Math.min(HP.length(), 4));
        String swagsoudzafake = target.getHealth() / target.getMaxHealth() * 100 + " ";
        String swagsoudza = swagsoudzafake.substring(0, Math.min(HP.length(), 3));
        if (this.target.getHealth() + this.target.getAbsorptionAmount() < 10.0f) {
            StringHP = HP.substring(0, Math.min(HP.length(), 3));
        }
        Fonts.sf_medium[13].drawString(matrixStack, "HP: " + StringHP, (double) xHP, (double) (yHP - 0.7f), new Color(255, 255, 255, 255).getRGB());
        this.drawItemStack(x, y - 12.0f, 10.5f);
        GlStateManager.popMatrix();
        this.targetHUD.setWidth(width2);
        this.targetHUD.setHeight(height2);
    }

    private PlayerEntity getTarget(PlayerEntity nullTarget) {
        PlayerEntity target = nullTarget;

        if (Managment.FUNCTION_MANAGER.auraFunction.getTarget() instanceof PlayerEntity) {
            target = (PlayerEntity) Managment.FUNCTION_MANAGER.auraFunction.getTarget();
            tHudAnimation.setDirection(Direction.FORWARDS);
        } else if (mc.currentScreen instanceof ChatScreen) {
            target = mc.player;
            tHudAnimation.setDirection(Direction.FORWARDS);
        } else {
            tHudAnimation.setDirection(Direction.BACKWARDS);
        }

        return target;
    }

    private int getColor(int index) {
        return colors[index % colors.length];
    }
}

SS
Посмотреть вложение 317163
/del принимаеться
чет это больше нурик
 
я думал эра кривых скидов нурика на экспу давно прошла
 
/dell очень криво
 

Похожие темы

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