Исходник Celestial Recode 1.16.5 Skeet ( Shield Ready )

Начинающий
Статус
Оффлайн
Регистрация
28 Авг 2023
Сообщения
175
Реакции[?]
24
Поинты[?]
24K
Я с человеком flusergame aka hwidowskiy начал скидать celestial
Я зделал Кейбинд, стафф лист, поушен, таргет худ 50% Ватермарки
Пожалуйста, авторизуйтесь для просмотра ссылки.

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

Code:
package ru.shield.modules.impl.render;

import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.platform.GlStateManager;
import com.mojang.blaze3d.systems.RenderSystem;
import lombok.Getter;
import net.minecraft.client.entity.player.AbstractClientPlayerEntity;
import net.minecraft.client.gui.AbstractGui;
import net.minecraft.client.gui.screen.ChatScreen;
import net.minecraft.client.network.play.NetworkPlayerInfo;
import net.minecraft.client.resources.I18n;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.potion.EffectInstance;
import net.minecraft.potion.EffectUtils;
import net.minecraft.scoreboard.ScorePlayerTeam;
import net.minecraft.scoreboard.Team;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.vector.Vector4f;
import net.minecraft.util.text.ITextComponent;
import net.minecraft.util.text.StringTextComponent;
import net.minecraft.util.text.TextFormatting;
import net.minecraft.world.GameType;
import org.joml.Vector2i;
import org.joml.Vector4i;
import ru.shield.util.IMinecraft;
import ru.shield.util.font.Fonts;
import ru.shield.util.render.ColorUtil;
import ru.shield.util.render.RenderUtil;
import ru.shield.Initilization;
import ru.shield.events.Event;
import ru.shield.events.impl.player.EventUpdate;
import ru.shield.events.impl.render.EventRender;
import ru.shield.managment.Managment;
import ru.shield.modules.Function;
import ru.shield.modules.FunctionAnnotation;
import ru.shield.modules.Type;
import ru.shield.modules.settings.imp.BooleanOption;
import ru.shield.modules.settings.imp.MultiBoxSetting;
import ru.shield.modules.settings.imp.SliderSetting;
import ru.shield.ui.midnight.StyleManager;
import ru.shield.util.ClientUtil;
import ru.shield.util.UserProfile;
import ru.shield.util.animations.Animation;
import ru.shield.util.animations.Direction;
import ru.shield.util.animations.impl.EaseBackIn;
import ru.shield.util.drag.Dragging;
import ru.shield.util.font.styled.StyledFont;
import ru.shield.util.math.MathUtil;
import ru.shield.util.misc.HudUtil;
import ru.shield.util.misc.TimerUtil;
import ru.shield.util.render.SmartScissor;
import ru.shield.util.render.animation.AnimationMath;

import java.awt.*;
import java.sql.Time;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.atomic.AtomicReference;
import java.util.regex.Pattern;

import static ru.shield.modules.impl.render.HudFunction.Status.*;
import static ru.shield.util.render.ColorUtil.rgba;
import static ru.shield.util.render.RenderUtil.Render2D.*;

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

    public MultiBoxSetting elements = new MultiBoxSetting("Элементы",
            new BooleanOption("Логотип", true),
            new BooleanOption("Список модулей", true),
            new BooleanOption("Список модераторов", true),
            new BooleanOption("Список зелий", true),
            new BooleanOption("Уведомления", true),
            new BooleanOption("Таймер индикатор", true),
            new BooleanOption("Расписание", false),
            new BooleanOption("Таргет Худ", true),
            new BooleanOption("Кейбинды", true),
            new BooleanOption("Корды", true),
            new BooleanOption("Броня", true));
    public MultiBoxSetting watermarkElement = new MultiBoxSetting("Элементы логотипа",
            new BooleanOption("Логин в чите", true),
            new BooleanOption("Счетчик кадров", true),
            new BooleanOption("Счетчик пинга", true)).setVisible(() -> elements.get(0));

    public MultiBoxSetting limitations = new MultiBoxSetting("Ограничения",
            new BooleanOption("Скрывать визуалы", true),
            new BooleanOption("Только бинды", false)).setVisible(() -> elements.get(1));

    public BooleanOption glow = new BooleanOption("Подсветка списка модулей", true).setVisible(() -> elements.get(1));

    public SliderSetting fontSize = new SliderSetting("Размер шрифта", 13, 13, 13, 13);
    public final BooleanOption shadow = new BooleanOption("Тень", true);

    public HudFunction() {
        addSettings(elements, watermarkElement, limitations, glow);
    }

    public final float offs = 0;

    @Override
    public void onEvent(final Event event) {
        if (event instanceof EventUpdate && elements.get(2)) {
            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(repairString(team.getPrefix().getString().toLowerCase(Locale.ROOT))).matches() || Managment.STAFF_MANAGER.isStaff(name)) {
                        staffPlayers.add(new StaffPlayer(name, team.getPrefix()));
                    }
                }
            }
        }
        if (event instanceof EventRender eventRender) {
            if (eventRender.isRender2D()) {
                handleRender(eventRender);
            }
        }
    }

    private void handleRender(EventRender renderEvent) {
        final MatrixStack stack = renderEvent.matrixStack;
        int firstColor = ColorUtil.getColorStyle(0);
        int secondColor = ColorUtil.getColorStyle(90);
        // firstcolor and secondcolor от хвидовского
        int firstColor2 = new Color(255,255,255,255).getRGB();
        int secondColor2 = new Color(255,255,255,255).getRGB();


        if (elements.get(0)) {
            {
                int colorVec = ColorUtil.getColorStyle(0);
        // watermark от w1nxovskiy
                final String title = " >> " + "Developer " + ">>" + " UID: 1" + " >> " + "fps: " + mc.debugFPS;
                final StringTextComponent gradientText = ClientUtil.gradient("CELESTIAL", firstColor2, secondColor2);



                final StyledFont medium = Fonts.celestial[15];
                final float x = 5;
                final float y = 5;
                final float titleWidth = medium.getWidth(gradientText.getString() + title) + 6;
                final float titleHeight = 12;
                RenderUtil.Render2D.drawShadow(x, y, titleWidth, titleHeight, 10, firstColor, secondColor, firstColor, secondColor);
                RenderUtil.Render2D.drawGradientRound(x, y, titleWidth, titleHeight + 1, 4, firstColor, secondColor, firstColor, secondColor);
                RenderUtil.Render2D.drawRoundedRect(x, y, titleWidth, titleHeight + 1, 4, ColorUtil.rgba(20, 20, 20, 255));

                medium.drawString(stack, gradientText, x + 3, y + medium.getFontHeight() / 2f - 0.5f, -1);
                medium.drawString(stack, title, x + medium.getWidth(gradientText.getString()) + 3.5f, y + medium.getFontHeight() / 2.5f + 0.5f, ColorUtil.rgba(255, 255, 255, 255));
            }
        }
        if (elements.get(1)) {
            renderArrayList(stack);
        }
        if (elements.get(2)) {
            onStaffListRender(stack, renderEvent);
        }
        if (elements.get(3)) {
            onPotionElementsRender(stack, renderEvent);
        }
        if (elements.get(7)) {
            onRenderTargetHUD(stack);
        }
        if (elements.get(8)) {
            onKeyBindsRender(stack);
        }
        if (elements.get(9)) {
            onInformationRender(stack, renderEvent);
        }
        if (elements.get(10)) {
            onArmorRender(renderEvent);
        }
    }

    public Dragging keyBinds = Initilization.createDrag(this, "KeyBinds", 200, 50);
    private float heightDynamic = 0;
    private int activeModules = 0;

    private void onKeyBindsRender(MatrixStack stack) {
        float posX = keyBinds.getX();
        float posY = keyBinds.getY();

        int roundDegree = 4;
        int headerHeight = 14;
        int width = 100;
        int padding = 5;
        int offset = 10;

        int headerColor = new Color(20, 20, 20, 255).getRGB();
        int backgroundColor = new Color(30, 30, 30, 255).getRGB();
        int backgroundColor1 = new Color(255, 255, 255, 255).getRGB();
        int backgroundColor2 = new Color(ColorUtil.getColorStyle(180)).getRGB();

        int firstColor = ColorUtil.getColorStyle(0);
        int secondColor = ColorUtil.getColorStyle(90);

        float height = activeModules * offset;

        this.heightDynamic = AnimationMath.fast(this.heightDynamic, height, 10);

        RenderUtil.Render2D.drawShadow(posX, posY, width, headerHeight + heightDynamic + padding / 2f, 10, firstColor, secondColor, ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270));

        //RenderUtil.Render2D.drawGradientRound(posX, posY, width, heightDynamic + headerHeight + 2.5f, roundDegree - 1, ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270), ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270));
        RenderUtil.Render2D.drawGradientRound(posX, posY, width, heightDynamic + headerHeight + 2.5f, roundDegree - 1, firstColor, secondColor, ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270));

       // RenderUtil.Render2D.drawRoundedCorner(keyBinds.getX(), posY, width, headerHeight, new Vector4f(roundDegree, 0, roundDegree, 0), ColorUtil.getColorStyle(180));
        Fonts.celestial[15].drawCenteredString(stack, ClientUtil.gradient("Keybinds", ColorUtil.rgba(255, 255, 255, 255), ColorUtil.rgba(255, 255, 255, 255)), keyBinds.getX() + width / 2f, posY + 5.5f, backgroundColor1);

        RenderUtil.Render2D.drawRoundedCorner(posX, posY + headerHeight, width, heightDynamic + padding / 2f, new Vector4f(0, roundDegree, 0, roundDegree), backgroundColor);
        SmartScissor.push();
        SmartScissor.setFromComponentCoordinates(posX, posY, width, headerHeight + heightDynamic + padding / 2f);
        int index = 0;

        for (Function f : Managment.FUNCTION_MANAGER.getFunctions()) {
            if (f.bind != 0 && f.state) {

                String text = ClientUtil.getKey(f.bind);

                if (text == null) {
                    continue;
                }


                String bindText = "[" + text.toUpperCase() + "]";
                float bindWidth = Fonts.celestial[12].getWidth(bindText);

                Fonts.celestial[12].drawString(stack, f.name, posX + padding, posY + headerHeight + padding + (index * offset), -1);
                Fonts.celestial[12].drawString(stack, bindText, posX + width - bindWidth - padding, posY + headerHeight + padding + (index * offset), -1);

                index++;
            }
        }
        SmartScissor.unset();
        SmartScissor.pop();
        activeModules = index;

        keyBinds.setWidth(width);
        keyBinds.setHeight(activeModules * offset + headerHeight);
    }

    public CopyOnWriteArrayList<net.minecraft.util.text.TextComponent> components = new CopyOnWriteArrayList<>();

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

    public Dragging staffList = Initilization.createDrag(this, "StaffList", 350, 50);

    private int activeStaff = 0;
    private float hDynam = 0;
    private float widthDynamic = 0;
    private float nameWidth = 0;
    List<StaffPlayer> staffPlayers = new ArrayList<>();

    private void onStaffListRender(MatrixStack matrixStack, EventRender render) {
        float posX = staffList.getX();
        float posY = staffList.getY();

        int roundDegree = 4;
        int headerHeight = 14;
        float width = Math.max(nameWidth + 40, 100);
        int padding = 5;
        int offset = 10;

        int headerColor = new Color(20, 20, 20, 255).getRGB();
        int backgroundColor = new Color(30, 30, 30, 255).getRGB();

        int firstColor = ColorUtil.getColorStyle(0);
        int secondColor = ColorUtil.getColorStyle(90);
        float height = activeStaff * offset;

        this.hDynam = AnimationMath.fast(this.hDynam, height, 10);
        this.widthDynamic = AnimationMath.fast(this.widthDynamic, width, 10);
        RenderUtil.Render2D.drawShadow(posX, posY, widthDynamic, headerHeight + hDynam + padding / 2f, 10, firstColor, secondColor, ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270));

        RenderUtil.Render2D.drawGradientRound(posX, posY, widthDynamic, hDynam + headerHeight + 2.5f, roundDegree - 1, firstColor, secondColor, ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270));

       // RenderUtil.Render2D.drawRoundedCorner(posX, posY, widthDynamic, headerHeight, new Vector4f(roundDegree, 0, roundDegree, 0), headerColor);
        Fonts.celestial[15].drawCenteredString(matrixStack, ClientUtil.gradient("Staff List", ColorUtil.rgba(255, 255, 255, 255), ColorUtil.rgba(255, 255, 255, 255)), posX + widthDynamic / 2f, posY + 5.5f, -1);

        RenderUtil.Render2D.drawRoundedCorner(posX, posY + headerHeight, widthDynamic, hDynam + padding / 2f, new Vector4f(0, roundDegree, 0, roundDegree), backgroundColor);

        int index = 0;

        SmartScissor.push();
        SmartScissor.setFromComponentCoordinates(posX, posY, widthDynamic, headerHeight + hDynam + padding / 2f);
        if (!staffPlayers.isEmpty()) {
            for (StaffPlayer staff : staffPlayers) {
                String name = staff.getName();
                ITextComponent prefix = staff.getPrefix();
                String status;
                status = staff.getStatus().getString();

                Fonts.celestial[12].drawString(matrixStack, prefix, posX + padding, posY + headerHeight + padding + (index * offset), -1);
                Fonts.celestial[12].drawString(matrixStack, name + status, posX + padding + Fonts.celestial[12].getWidth(prefix.getString()), posY + headerHeight + padding + (index * offset), -1);
                nameWidth = Fonts.celestial[12].getWidth(prefix.getString() + name + status);
                index++;
            }
        } else {
            nameWidth = 0;
        }
        SmartScissor.unset();
        SmartScissor.pop();

        activeStaff = index;
        staffList.setWidth(widthDynamic);
        staffList.setHeight(hDynam + headerHeight);
    }

    private String repairString(String input) {
        StringBuilder sb = new StringBuilder(input.length());
        for (char c : input.toCharArray()) {
            if (c >= 65281 && c <= 65374) {
                sb.append((char) (c - 65248));
            } else {
                sb.append(c);
            }
        }
        return sb.toString();
    }

    private class StaffPlayer {

        [USER=270918]@Getter[/USER]
        String name;
        [USER=270918]@Getter[/USER]
        ITextComponent prefix;
        [USER=270918]@Getter[/USER]
        Status status;

        private StaffPlayer(String name, ITextComponent prefix) {
            this.name = name;
            this.prefix = prefix;

            updateStatus();
        }

        private void updateStatus() {
            for (AbstractClientPlayerEntity player : mc.world.getPlayers()) {
                if (player.getNameClear().equals(name)) {
                    status = NEAR;
                    return;
                }
            }

            for (NetworkPlayerInfo info : mc.getConnection().getPlayerInfoMap()) {
                if (info.getGameProfile().getName().equals(name)) {
                    if (info.getGameType() == GameType.SPECTATOR) {
                        status = SPEC;
                        return;
                    }

                    status = NONE;
                    return;
                }
            }

            status = VANISHED;
        }
    }

    public enum Status {
        NONE(""),
        NEAR(" §e[Near]"),
        SPEC(" §c[Spec]"),
        VANISHED(" §6[Vanish]");

        [USER=270918]@Getter[/USER]
        final String string;

        Status(String string) {
            this.string = string;
        }
    }

    public Dragging events = Initilization.createDrag(this, "events", 213.0f, 8.0f + 100);


    private void onInformationRender(final MatrixStack stack, final EventRender renderEvent) {
        float y = renderEvent.scaledResolution.scaledHeight() - Fonts.celestial[15].getFontHeight() - (mc.currentScreen instanceof ChatScreen ? 8 * mc.gameSettings.guiScale : 0);
        String pos = (int) mc.player.getPosX() + ", " + (int) mc.player.getPosY() + ", " + (int) mc.player.getPosZ();

        Fonts.celestial[15].drawString(stack, ClientUtil.gradient("Coords: ", ColorUtil.getColorStyle(0), ColorUtil.getColorStyle(150)), 4, y, -1);
        Fonts.celestial[15].drawString(stack, pos, 4 + Fonts.celestial[15].getWidth("Coords: "), y, new Color(230, 230, 230).getRGB());
    }


    private void onArmorRender(final EventRender renderEvent) {
        int count = 0;
        for (int i = 0; i < mc.player.inventory.getSizeInventory(); i++) {
            ItemStack s = mc.player.inventory.getStackInSlot(i);
            if (s.getItem() == Items.TOTEM_OF_UNDYING) {
                count++;
            }
        }
        float xPos = renderEvent.scaledResolution.scaledWidth() / 2f;
        float yPos = renderEvent.scaledResolution.scaledHeight();

        boolean totemInInv = mc.player.inventory.mainInventory.stream().map(ItemStack::getItem).toList().contains(Items.TOTEM_OF_UNDYING);
        int off = totemInInv ? +5 : 0;
        if (mc.player.isCreative()) {
            yPos += 17;
        }

        for (ItemStack s : mc.player.inventory.armorInventory) {
            off += 15;
        }
        if (totemInInv);



    }

    public Dragging potionStatus = Initilization.createDrag(this, "PotionStatus", 200, 50);
    private float hDynamic = 0;
    private int activePotions = 0;

    private void onPotionElementsRender(final MatrixStack matrixStack, final EventRender renderEvent) {
        float posX = potionStatus.getX();
        float posY = potionStatus.getY();

        int roundDegree = 4;
        int headerHeight = 14;
        int width = 100;
        int padding = 5;
        int offset = 10;

        int headerColor = new Color(20, 20, 20, 255).getRGB();
        int backgroundColor = new Color(30, 30, 30, 255).getRGB();

        int firstColor = ColorUtil.getColorStyle(0);
        int secondColor = ColorUtil.getColorStyle(90);

        float height = activePotions * offset;

        this.hDynamic = AnimationMath.fast(this.hDynamic, height, 10);

        RenderUtil.Render2D.drawShadow(posX, posY, width, headerHeight + hDynamic + padding / 2f, 10, firstColor, secondColor, ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270));

        RenderUtil.Render2D.drawGradientRound(posX, posY, width, hDynamic + headerHeight + 2.5f, roundDegree - 1, firstColor, secondColor, ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270));

        Fonts.celestial[15].drawCenteredString(matrixStack, ClientUtil.gradient("Potions", ColorUtil.rgba(255, 255, 255, 255), ColorUtil.rgba(255, 255, 255, 255)), potionStatus.getX() + width / 2f, posY + 5.5f, firstColor);

        RenderUtil.Render2D.drawRoundedCorner(posX, posY + headerHeight, width, hDynamic + padding / 2f, new Vector4f(0, roundDegree, 0, roundDegree), backgroundColor);
        SmartScissor.push();
        SmartScissor.setFromComponentCoordinates(posX, posY, width, headerHeight + hDynamic + padding / 2f);
        int index = 0;

        for (EffectInstance p : mc.player.getActivePotionEffects()) {
            if (p.isShowIcon()) {

                String durationText = EffectUtils.getPotionDurationString(p, 1);
                float durationWidth = Fonts.celestial[12].getWidth(durationText);

                Fonts.celestial[12].drawString(matrixStack, I18n.format(p.getEffectName()), posX + padding, posY + headerHeight + padding + (index * offset), -1);
                Fonts.celestial[12].drawString(matrixStack, durationText, posX + width - durationWidth - padding, posY + headerHeight + padding + (index * offset), -1);

                index++;
            }
        }
        SmartScissor.unset();
        SmartScissor.pop();
        activePotions = index;

        potionStatus.setWidth(width);
        potionStatus.setHeight(activePotions * offset + headerHeight);
    }

    private void onTitleRender(final MatrixStack stack) {
        UserProfile profile = Managment.USER_PROFILE;

        StringBuilder titleText = new StringBuilder();
        int counter = 0;


        titleText.append("star");
        counter++;

        if (watermarkElement.get(0)) {
            if (counter > 0) {
                titleText.append(TextFormatting.GRAY + " | " + TextFormatting.WHITE);
            }
            titleText.append(profile.getName());
            counter++;
        }
        if (watermarkElement.get(1)) {
            if (counter > 0) {
                titleText.append(TextFormatting.GRAY + " | " + TextFormatting.WHITE);
            }
            titleText.append(mc.debugFPS + "fps");
            counter++;
        }
        if (watermarkElement.get(2)) {
            if (counter > 0) {
                titleText.append(TextFormatting.GRAY + " | " + TextFormatting.WHITE);
            }
            titleText.append(HudUtil.calculatePing() + "ms");
        }


        final float x = 5, y = 5, titleWidth = Fonts.gilroyBold[12].getWidth(titleText.toString()) + 6, titleHeight = 12;


        int firstColor = ColorUtil.getColorStyle(0);
        int secondColor = ColorUtil.getColorStyle(90);


        RenderUtil.Render2D.drawShadow(x, y, titleWidth, titleHeight, 10, firstColor, secondColor, ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270));

        RenderUtil.Render2D.drawGradientRound(x, y, titleWidth, titleHeight, 3, firstColor, secondColor, ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270));


        RenderUtil.Render2D.drawRoundedRect(x, y, titleWidth, titleHeight, 2.5f, ColorUtil.rgba(21, 21, 21, 200));

        Fonts.gilroyBold[12].drawString(stack, titleText.toString(), x + 3, y + Fonts.gilroyBold[12].getFontHeight() / 2f + 1, -1);
    }

    List<Function> sortedFunctions = new ArrayList<>();
    TimerUtil delay = new TimerUtil();


    private void renderArrayList(MatrixStack stack) {
        float x = 5;
        float y = 25;
        float height = 10;
        float yOffset = 0;

        final StyledFont font = Fonts.celestial[fontSize.getValue().intValue()];
        StyleManager styleManager = Managment.STYLE_MANAGER;

        if (delay.hasTimeElapsed(10000)) {
            sortedFunctions = HudUtil.getSorted(font);
            delay.reset();
        }

        float gradientForce = 1;
        int fontOffset = (fontSize.getValue().intValue() > 14 ? -14 + fontSize.getValue().intValue()
                - (fontSize.getValue().intValue() > 14 ? 1 : 0) : 0);
        int firstColor;
        int secondColor;

        if (glow.get()) {
            for (Function function : sortedFunctions) {
                if ((limitations.get(0) && function.category == Type.Render) || (limitations.get(1) && function.bind == 0)) {
                    continue;
                }

                function.animation = AnimationMath.lerp(function.animation, function.state ? 1 : 0, 15);

                if (function.animation >= 0.01) {
                    float width = font.getWidth(function.name) + 5;
                    firstColor = styleManager.getCurrentStyle()
                            .getColor((int) ((yOffset + height * function.animation) * gradientForce));
                    secondColor = styleManager.getCurrentStyle()
                            .getColor((int) (yOffset * gradientForce));

                    RenderSystem.pushMatrix();
                    RenderSystem.translatef(x + width / 2F, y + yOffset, 0);
                    RenderSystem.scalef(1, function.animation, 1);
                    RenderSystem.translatef(-(x + width / 2F), -(y + yOffset), 0);
                    RenderUtil.Render2D.drawShadow(x, y + yOffset, width, height, 10, firstColor, secondColor);
                    RenderSystem.popMatrix();

                    yOffset += height * function.animation;
                }
            }
            yOffset = 0;
        }
        for (Function function : sortedFunctions) {
            if ((limitations.get(0) && function.category == Type.Render) || (limitations.get(1) && function.bind == 0)) {
                continue;
            }

            function.animation = AnimationMath.lerp(function.animation, function.state ? 1 : 0, 15);

            if (function.animation >= 0.01) {
                float width = font.getWidth(function.name) + 5;
                secondColor = styleManager.getCurrentStyle()
                        .getColor((int) (yOffset * gradientForce));

                RenderSystem.pushMatrix();
                RenderSystem.translatef(x + width / 2F, y + yOffset, 0);
                RenderSystem.scalef(1, function.animation, 1);
                RenderSystem.translatef(-(x + width / 2F), -(y + yOffset), 0);
                RenderUtil.Render2D.drawRect(x, y + yOffset, width, height, ColorUtil.rgba(21, 21, 21, 255));
                font.drawString(stack, function.name, x + 3,
                        y + yOffset + font.getFontHeight() / 2f - fontOffset - 1, secondColor);
                RenderSystem.popMatrix();

                yOffset += height * function.animation;
            }
        }


        yOffset = 0;
        for (Function function : sortedFunctions) {
            if ((limitations.get(0) && function.category == Type.Render) || (limitations.get(1) && function.bind == 0)) {
                continue;
            }
            function.animation = AnimationMath.lerp(function.animation, function.state ? 1 : 0, 15);
            if (function.animation >= 0.01) {
                float width = font.getWidth(function.name) + 4;
                firstColor = styleManager.getCurrentStyle()
                        .getColor((int) ((yOffset + height * function.animation) * gradientForce));
                secondColor = styleManager.getCurrentStyle()
                        .getColor((int) (yOffset * gradientForce));

                RenderSystem.pushMatrix();
                RenderSystem.translatef(x + width / 2F, y + yOffset, 0);
                RenderSystem.scalef(1, function.animation, 1);
                RenderSystem.translatef(-(x + width / 2F), -(y + yOffset), 0);
                RenderUtil.Render2D.drawShadow(x, y + yOffset, 1, height, 8, firstColor, secondColor);
                RenderUtil.Render2D.drawVertical(x, y + yOffset, 1, height, firstColor, secondColor);
                RenderSystem.popMatrix();

                yOffset += height * function.animation;
            }
        }
    }


    float health = 0;
    public final Dragging targetHUD = Initilization.createDrag(this, "TargetHUD", 500, 50);
    private final Animation targetHudAnimation = new EaseBackIn(200, 1, 1.5f);
    private PlayerEntity target = null;
    private double scale = 0.0D;
    float healthplus = 5;

    private void onRenderTargetHUD(final MatrixStack stack) {
        this.target = getTarget(this.target);
        this.targetHudAnimation.setDuration(300);
        this.scale = targetHudAnimation.getOutput();

        if (scale == 0.0F) {
            target = null;
        }

        if (target == null) {
            return;
        }

        final String targetName = this.target.getName().getString();

        String substring = targetName.substring(0, Math.min(targetName.length(), 10));
        final float nameWidth = Fonts.gilroyBold[18].getWidth(substring);
        final float xPosition = this.targetHUD.getX();
        final float yPosition = this.targetHUD.getY();
        final float maxWidth = Math.max(nameWidth + 45, 114);
        final float maxHeight = 30;

        // Обновление значения здоровья с анимацией
        this.health = AnimationMath.fast(health, target.getHealth() / target.getMaxHealth(), 5);
        this.health = MathHelper.clamp(this.health, 0, 1);
        this.healthplus = AnimationMath.fast(healthplus, target.getAbsorptionAmount() / target.getMaxHealth(), 5);
        this.healthplus = MathHelper.clamp(this.healthplus, 0, 1);

        GlStateManager.pushMatrix();
        AnimationMath.sizeAnimation(xPosition + (maxWidth / 2), yPosition + (maxHeight / 2), scale);

        Vector2i colorVec = new Vector2i(ColorUtil.getColorStyle(0), ColorUtil.getColorStyle(90));

        RenderUtil.Render2D.drawShadow(xPosition, yPosition, maxWidth, maxHeight + 10, 10, colorVec.x, colorVec.y, ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270));
        RenderUtil.Render2D.drawGradientRound(xPosition, yPosition, maxWidth , maxHeight + 10, 7.5f, ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270), ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270));
        //RenderUtil.Render2D.drawGradientRound(xPosition, yPosition, maxWidth, maxHeight + 10, 5, colorVec.x, colorVec.y, ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270));

        RenderUtil.Render2D.drawRoundedRect(xPosition, yPosition, maxWidth , maxHeight + 10, 7.5f, rgba(10, 15, 14, 255));
        RenderUtil.Render2D.drawRoundedRect(xPosition + 42, yPosition + 25, 64 , 9, 3f, rgba(21, 21, 21, 255));
        RenderUtil.Render2D.drawShadow(xPosition + 42, yPosition + 26, 64 * health, 7, 10, colorVec.x, colorVec.y, ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270));
        RenderUtil.Render2D.drawGradientRound(xPosition + 42, yPosition + 26, 64 * health, 7, 3, colorVec.x, colorVec.y, ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270));
        RenderUtil.Render2D.drawGradientRound(xPosition + 42, yPosition + 26, 40 * healthplus, 7, 3, rgba(255, 102, 0, 255), rgba(255, 255, 0, 255), rgba(255, 102, 0, 255), rgba(255, 255, 0, 255));


        RenderUtil.Render2D.drawRoundedRect(xPosition + 4, yPosition + 4, 32, 32, 6, Color.BLACK.getRGB());
        IMinecraft.mc.getTextureManager().bindTexture(((AbstractClientPlayerEntity) target).getLocationSkin());
        AbstractGui.drawScaledCustomSizeModalRect(xPosition + 4, yPosition + 4, 8F, 8F, 8F, 8F, 32, 32, 64F, 64F);





        Fonts.interhui[18].drawString(stack, substring, xPosition + 42, yPosition + 7, -1);

        String healthValue = (int) MathUtil.round(this.health * 20 + target.getAbsorptionAmount(), 0.5f) + ".00 HP";
        Fonts.interhui[12].drawCenteredString(stack, healthValue, xPosition + maxWidth - 58, yPosition + maxHeight / 1.5 - 2.2f, ColorUtil.rgba(255, 255, 255, 255));
        GlStateManager.popMatrix();
        this.targetHUD.setWidth(maxWidth);
        this.targetHUD.setHeight(maxHeight);
    }

    private void drawItemStack(float x, float y, float offset) {
        List<ItemStack> stackList = new ArrayList<>(Arrays.asList(target.getHeldItemMainhand(), target.getHeldItemOffhand()));
        stackList.addAll((Collection<? extends ItemStack>) target.getArmorInventoryList());

        final AtomicReference<Float> posX = new AtomicReference<>(x);

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


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

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

        return target;
    }
}
Потом зайдите по пути assets/minecraft/expensive/font
и киньте шрифт туда
потом заходим в Intellij Idea и заходим по пути
ru.shield.util.font.Fonts
и вставляем ето
14 строчка:
    public static volatile StyledFont[] celestial = new StyledFont[24];
44 строчка:
   for (int i = 8; i < 24;i++) {
            celestial[i] = new StyledFont("montserrat.ttf", i, 0.0f, 0.0f, 0.0f, true, Lang.ENG_RU);
        }
Туски и не хейть я только начинаю учить джаву:roflanPominki:
Я думал ты кликгуи скита сделал. А ты просто шрифт поменял и цвета (если цвета вообще изменены)
 
Начинающий
Статус
Оффлайн
Регистрация
5 Апр 2023
Сообщения
389
Реакции[?]
1
Поинты[?]
2K
Я с человеком flusergame aka hwidowskiy начал скидать celestial
Я зделал Кейбинд, стафф лист, поушен, таргет худ 50% Ватермарки
Пожалуйста, авторизуйтесь для просмотра ссылки.

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

Code:
package ru.shield.modules.impl.render;

import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.platform.GlStateManager;
import com.mojang.blaze3d.systems.RenderSystem;
import lombok.Getter;
import net.minecraft.client.entity.player.AbstractClientPlayerEntity;
import net.minecraft.client.gui.AbstractGui;
import net.minecraft.client.gui.screen.ChatScreen;
import net.minecraft.client.network.play.NetworkPlayerInfo;
import net.minecraft.client.resources.I18n;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.potion.EffectInstance;
import net.minecraft.potion.EffectUtils;
import net.minecraft.scoreboard.ScorePlayerTeam;
import net.minecraft.scoreboard.Team;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.vector.Vector4f;
import net.minecraft.util.text.ITextComponent;
import net.minecraft.util.text.StringTextComponent;
import net.minecraft.util.text.TextFormatting;
import net.minecraft.world.GameType;
import org.joml.Vector2i;
import org.joml.Vector4i;
import ru.shield.util.IMinecraft;
import ru.shield.util.font.Fonts;
import ru.shield.util.render.ColorUtil;
import ru.shield.util.render.RenderUtil;
import ru.shield.Initilization;
import ru.shield.events.Event;
import ru.shield.events.impl.player.EventUpdate;
import ru.shield.events.impl.render.EventRender;
import ru.shield.managment.Managment;
import ru.shield.modules.Function;
import ru.shield.modules.FunctionAnnotation;
import ru.shield.modules.Type;
import ru.shield.modules.settings.imp.BooleanOption;
import ru.shield.modules.settings.imp.MultiBoxSetting;
import ru.shield.modules.settings.imp.SliderSetting;
import ru.shield.ui.midnight.StyleManager;
import ru.shield.util.ClientUtil;
import ru.shield.util.UserProfile;
import ru.shield.util.animations.Animation;
import ru.shield.util.animations.Direction;
import ru.shield.util.animations.impl.EaseBackIn;
import ru.shield.util.drag.Dragging;
import ru.shield.util.font.styled.StyledFont;
import ru.shield.util.math.MathUtil;
import ru.shield.util.misc.HudUtil;
import ru.shield.util.misc.TimerUtil;
import ru.shield.util.render.SmartScissor;
import ru.shield.util.render.animation.AnimationMath;

import java.awt.*;
import java.sql.Time;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.atomic.AtomicReference;
import java.util.regex.Pattern;

import static ru.shield.modules.impl.render.HudFunction.Status.*;
import static ru.shield.util.render.ColorUtil.rgba;
import static ru.shield.util.render.RenderUtil.Render2D.*;

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

    public MultiBoxSetting elements = new MultiBoxSetting("Элементы",
            new BooleanOption("Логотип", true),
            new BooleanOption("Список модулей", true),
            new BooleanOption("Список модераторов", true),
            new BooleanOption("Список зелий", true),
            new BooleanOption("Уведомления", true),
            new BooleanOption("Таймер индикатор", true),
            new BooleanOption("Расписание", false),
            new BooleanOption("Таргет Худ", true),
            new BooleanOption("Кейбинды", true),
            new BooleanOption("Корды", true),
            new BooleanOption("Броня", true));
    public MultiBoxSetting watermarkElement = new MultiBoxSetting("Элементы логотипа",
            new BooleanOption("Логин в чите", true),
            new BooleanOption("Счетчик кадров", true),
            new BooleanOption("Счетчик пинга", true)).setVisible(() -> elements.get(0));

    public MultiBoxSetting limitations = new MultiBoxSetting("Ограничения",
            new BooleanOption("Скрывать визуалы", true),
            new BooleanOption("Только бинды", false)).setVisible(() -> elements.get(1));

    public BooleanOption glow = new BooleanOption("Подсветка списка модулей", true).setVisible(() -> elements.get(1));

    public SliderSetting fontSize = new SliderSetting("Размер шрифта", 13, 13, 13, 13);
    public final BooleanOption shadow = new BooleanOption("Тень", true);

    public HudFunction() {
        addSettings(elements, watermarkElement, limitations, glow);
    }

    public final float offs = 0;

    @Override
    public void onEvent(final Event event) {
        if (event instanceof EventUpdate && elements.get(2)) {
            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(repairString(team.getPrefix().getString().toLowerCase(Locale.ROOT))).matches() || Managment.STAFF_MANAGER.isStaff(name)) {
                        staffPlayers.add(new StaffPlayer(name, team.getPrefix()));
                    }
                }
            }
        }
        if (event instanceof EventRender eventRender) {
            if (eventRender.isRender2D()) {
                handleRender(eventRender);
            }
        }
    }

    private void handleRender(EventRender renderEvent) {
        final MatrixStack stack = renderEvent.matrixStack;
        int firstColor = ColorUtil.getColorStyle(0);
        int secondColor = ColorUtil.getColorStyle(90);
        // firstcolor and secondcolor от хвидовского
        int firstColor2 = new Color(255,255,255,255).getRGB();
        int secondColor2 = new Color(255,255,255,255).getRGB();


        if (elements.get(0)) {
            {
                int colorVec = ColorUtil.getColorStyle(0);
        // watermark от w1nxovskiy
                final String title = " >> " + "Developer " + ">>" + " UID: 1" + " >> " + "fps: " + mc.debugFPS;
                final StringTextComponent gradientText = ClientUtil.gradient("CELESTIAL", firstColor2, secondColor2);



                final StyledFont medium = Fonts.celestial[15];
                final float x = 5;
                final float y = 5;
                final float titleWidth = medium.getWidth(gradientText.getString() + title) + 6;
                final float titleHeight = 12;
                RenderUtil.Render2D.drawShadow(x, y, titleWidth, titleHeight, 10, firstColor, secondColor, firstColor, secondColor);
                RenderUtil.Render2D.drawGradientRound(x, y, titleWidth, titleHeight + 1, 4, firstColor, secondColor, firstColor, secondColor);
                RenderUtil.Render2D.drawRoundedRect(x, y, titleWidth, titleHeight + 1, 4, ColorUtil.rgba(20, 20, 20, 255));

                medium.drawString(stack, gradientText, x + 3, y + medium.getFontHeight() / 2f - 0.5f, -1);
                medium.drawString(stack, title, x + medium.getWidth(gradientText.getString()) + 3.5f, y + medium.getFontHeight() / 2.5f + 0.5f, ColorUtil.rgba(255, 255, 255, 255));
            }
        }
        if (elements.get(1)) {
            renderArrayList(stack);
        }
        if (elements.get(2)) {
            onStaffListRender(stack, renderEvent);
        }
        if (elements.get(3)) {
            onPotionElementsRender(stack, renderEvent);
        }
        if (elements.get(7)) {
            onRenderTargetHUD(stack);
        }
        if (elements.get(8)) {
            onKeyBindsRender(stack);
        }
        if (elements.get(9)) {
            onInformationRender(stack, renderEvent);
        }
        if (elements.get(10)) {
            onArmorRender(renderEvent);
        }
    }

    public Dragging keyBinds = Initilization.createDrag(this, "KeyBinds", 200, 50);
    private float heightDynamic = 0;
    private int activeModules = 0;

    private void onKeyBindsRender(MatrixStack stack) {
        float posX = keyBinds.getX();
        float posY = keyBinds.getY();

        int roundDegree = 4;
        int headerHeight = 14;
        int width = 100;
        int padding = 5;
        int offset = 10;

        int headerColor = new Color(20, 20, 20, 255).getRGB();
        int backgroundColor = new Color(30, 30, 30, 255).getRGB();
        int backgroundColor1 = new Color(255, 255, 255, 255).getRGB();
        int backgroundColor2 = new Color(ColorUtil.getColorStyle(180)).getRGB();

        int firstColor = ColorUtil.getColorStyle(0);
        int secondColor = ColorUtil.getColorStyle(90);

        float height = activeModules * offset;

        this.heightDynamic = AnimationMath.fast(this.heightDynamic, height, 10);

        RenderUtil.Render2D.drawShadow(posX, posY, width, headerHeight + heightDynamic + padding / 2f, 10, firstColor, secondColor, ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270));

        //RenderUtil.Render2D.drawGradientRound(posX, posY, width, heightDynamic + headerHeight + 2.5f, roundDegree - 1, ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270), ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270));
        RenderUtil.Render2D.drawGradientRound(posX, posY, width, heightDynamic + headerHeight + 2.5f, roundDegree - 1, firstColor, secondColor, ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270));

       // RenderUtil.Render2D.drawRoundedCorner(keyBinds.getX(), posY, width, headerHeight, new Vector4f(roundDegree, 0, roundDegree, 0), ColorUtil.getColorStyle(180));
        Fonts.celestial[15].drawCenteredString(stack, ClientUtil.gradient("Keybinds", ColorUtil.rgba(255, 255, 255, 255), ColorUtil.rgba(255, 255, 255, 255)), keyBinds.getX() + width / 2f, posY + 5.5f, backgroundColor1);

        RenderUtil.Render2D.drawRoundedCorner(posX, posY + headerHeight, width, heightDynamic + padding / 2f, new Vector4f(0, roundDegree, 0, roundDegree), backgroundColor);
        SmartScissor.push();
        SmartScissor.setFromComponentCoordinates(posX, posY, width, headerHeight + heightDynamic + padding / 2f);
        int index = 0;

        for (Function f : Managment.FUNCTION_MANAGER.getFunctions()) {
            if (f.bind != 0 && f.state) {

                String text = ClientUtil.getKey(f.bind);

                if (text == null) {
                    continue;
                }


                String bindText = "[" + text.toUpperCase() + "]";
                float bindWidth = Fonts.celestial[12].getWidth(bindText);

                Fonts.celestial[12].drawString(stack, f.name, posX + padding, posY + headerHeight + padding + (index * offset), -1);
                Fonts.celestial[12].drawString(stack, bindText, posX + width - bindWidth - padding, posY + headerHeight + padding + (index * offset), -1);

                index++;
            }
        }
        SmartScissor.unset();
        SmartScissor.pop();
        activeModules = index;

        keyBinds.setWidth(width);
        keyBinds.setHeight(activeModules * offset + headerHeight);
    }

    public CopyOnWriteArrayList<net.minecraft.util.text.TextComponent> components = new CopyOnWriteArrayList<>();

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

    public Dragging staffList = Initilization.createDrag(this, "StaffList", 350, 50);

    private int activeStaff = 0;
    private float hDynam = 0;
    private float widthDynamic = 0;
    private float nameWidth = 0;
    List<StaffPlayer> staffPlayers = new ArrayList<>();

    private void onStaffListRender(MatrixStack matrixStack, EventRender render) {
        float posX = staffList.getX();
        float posY = staffList.getY();

        int roundDegree = 4;
        int headerHeight = 14;
        float width = Math.max(nameWidth + 40, 100);
        int padding = 5;
        int offset = 10;

        int headerColor = new Color(20, 20, 20, 255).getRGB();
        int backgroundColor = new Color(30, 30, 30, 255).getRGB();

        int firstColor = ColorUtil.getColorStyle(0);
        int secondColor = ColorUtil.getColorStyle(90);
        float height = activeStaff * offset;

        this.hDynam = AnimationMath.fast(this.hDynam, height, 10);
        this.widthDynamic = AnimationMath.fast(this.widthDynamic, width, 10);
        RenderUtil.Render2D.drawShadow(posX, posY, widthDynamic, headerHeight + hDynam + padding / 2f, 10, firstColor, secondColor, ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270));

        RenderUtil.Render2D.drawGradientRound(posX, posY, widthDynamic, hDynam + headerHeight + 2.5f, roundDegree - 1, firstColor, secondColor, ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270));

       // RenderUtil.Render2D.drawRoundedCorner(posX, posY, widthDynamic, headerHeight, new Vector4f(roundDegree, 0, roundDegree, 0), headerColor);
        Fonts.celestial[15].drawCenteredString(matrixStack, ClientUtil.gradient("Staff List", ColorUtil.rgba(255, 255, 255, 255), ColorUtil.rgba(255, 255, 255, 255)), posX + widthDynamic / 2f, posY + 5.5f, -1);

        RenderUtil.Render2D.drawRoundedCorner(posX, posY + headerHeight, widthDynamic, hDynam + padding / 2f, new Vector4f(0, roundDegree, 0, roundDegree), backgroundColor);

        int index = 0;

        SmartScissor.push();
        SmartScissor.setFromComponentCoordinates(posX, posY, widthDynamic, headerHeight + hDynam + padding / 2f);
        if (!staffPlayers.isEmpty()) {
            for (StaffPlayer staff : staffPlayers) {
                String name = staff.getName();
                ITextComponent prefix = staff.getPrefix();
                String status;
                status = staff.getStatus().getString();

                Fonts.celestial[12].drawString(matrixStack, prefix, posX + padding, posY + headerHeight + padding + (index * offset), -1);
                Fonts.celestial[12].drawString(matrixStack, name + status, posX + padding + Fonts.celestial[12].getWidth(prefix.getString()), posY + headerHeight + padding + (index * offset), -1);
                nameWidth = Fonts.celestial[12].getWidth(prefix.getString() + name + status);
                index++;
            }
        } else {
            nameWidth = 0;
        }
        SmartScissor.unset();
        SmartScissor.pop();

        activeStaff = index;
        staffList.setWidth(widthDynamic);
        staffList.setHeight(hDynam + headerHeight);
    }

    private String repairString(String input) {
        StringBuilder sb = new StringBuilder(input.length());
        for (char c : input.toCharArray()) {
            if (c >= 65281 && c <= 65374) {
                sb.append((char) (c - 65248));
            } else {
                sb.append(c);
            }
        }
        return sb.toString();
    }

    private class StaffPlayer {

        [USER=270918]@Getter[/USER]
        String name;
        [USER=270918]@Getter[/USER]
        ITextComponent prefix;
        [USER=270918]@Getter[/USER]
        Status status;

        private StaffPlayer(String name, ITextComponent prefix) {
            this.name = name;
            this.prefix = prefix;

            updateStatus();
        }

        private void updateStatus() {
            for (AbstractClientPlayerEntity player : mc.world.getPlayers()) {
                if (player.getNameClear().equals(name)) {
                    status = NEAR;
                    return;
                }
            }

            for (NetworkPlayerInfo info : mc.getConnection().getPlayerInfoMap()) {
                if (info.getGameProfile().getName().equals(name)) {
                    if (info.getGameType() == GameType.SPECTATOR) {
                        status = SPEC;
                        return;
                    }

                    status = NONE;
                    return;
                }
            }

            status = VANISHED;
        }
    }

    public enum Status {
        NONE(""),
        NEAR(" §e[Near]"),
        SPEC(" §c[Spec]"),
        VANISHED(" §6[Vanish]");

        [USER=270918]@Getter[/USER]
        final String string;

        Status(String string) {
            this.string = string;
        }
    }

    public Dragging events = Initilization.createDrag(this, "events", 213.0f, 8.0f + 100);


    private void onInformationRender(final MatrixStack stack, final EventRender renderEvent) {
        float y = renderEvent.scaledResolution.scaledHeight() - Fonts.celestial[15].getFontHeight() - (mc.currentScreen instanceof ChatScreen ? 8 * mc.gameSettings.guiScale : 0);
        String pos = (int) mc.player.getPosX() + ", " + (int) mc.player.getPosY() + ", " + (int) mc.player.getPosZ();

        Fonts.celestial[15].drawString(stack, ClientUtil.gradient("Coords: ", ColorUtil.getColorStyle(0), ColorUtil.getColorStyle(150)), 4, y, -1);
        Fonts.celestial[15].drawString(stack, pos, 4 + Fonts.celestial[15].getWidth("Coords: "), y, new Color(230, 230, 230).getRGB());
    }


    private void onArmorRender(final EventRender renderEvent) {
        int count = 0;
        for (int i = 0; i < mc.player.inventory.getSizeInventory(); i++) {
            ItemStack s = mc.player.inventory.getStackInSlot(i);
            if (s.getItem() == Items.TOTEM_OF_UNDYING) {
                count++;
            }
        }
        float xPos = renderEvent.scaledResolution.scaledWidth() / 2f;
        float yPos = renderEvent.scaledResolution.scaledHeight();

        boolean totemInInv = mc.player.inventory.mainInventory.stream().map(ItemStack::getItem).toList().contains(Items.TOTEM_OF_UNDYING);
        int off = totemInInv ? +5 : 0;
        if (mc.player.isCreative()) {
            yPos += 17;
        }

        for (ItemStack s : mc.player.inventory.armorInventory) {
            off += 15;
        }
        if (totemInInv);



    }

    public Dragging potionStatus = Initilization.createDrag(this, "PotionStatus", 200, 50);
    private float hDynamic = 0;
    private int activePotions = 0;

    private void onPotionElementsRender(final MatrixStack matrixStack, final EventRender renderEvent) {
        float posX = potionStatus.getX();
        float posY = potionStatus.getY();

        int roundDegree = 4;
        int headerHeight = 14;
        int width = 100;
        int padding = 5;
        int offset = 10;

        int headerColor = new Color(20, 20, 20, 255).getRGB();
        int backgroundColor = new Color(30, 30, 30, 255).getRGB();

        int firstColor = ColorUtil.getColorStyle(0);
        int secondColor = ColorUtil.getColorStyle(90);

        float height = activePotions * offset;

        this.hDynamic = AnimationMath.fast(this.hDynamic, height, 10);

        RenderUtil.Render2D.drawShadow(posX, posY, width, headerHeight + hDynamic + padding / 2f, 10, firstColor, secondColor, ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270));

        RenderUtil.Render2D.drawGradientRound(posX, posY, width, hDynamic + headerHeight + 2.5f, roundDegree - 1, firstColor, secondColor, ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270));

        Fonts.celestial[15].drawCenteredString(matrixStack, ClientUtil.gradient("Potions", ColorUtil.rgba(255, 255, 255, 255), ColorUtil.rgba(255, 255, 255, 255)), potionStatus.getX() + width / 2f, posY + 5.5f, firstColor);

        RenderUtil.Render2D.drawRoundedCorner(posX, posY + headerHeight, width, hDynamic + padding / 2f, new Vector4f(0, roundDegree, 0, roundDegree), backgroundColor);
        SmartScissor.push();
        SmartScissor.setFromComponentCoordinates(posX, posY, width, headerHeight + hDynamic + padding / 2f);
        int index = 0;

        for (EffectInstance p : mc.player.getActivePotionEffects()) {
            if (p.isShowIcon()) {

                String durationText = EffectUtils.getPotionDurationString(p, 1);
                float durationWidth = Fonts.celestial[12].getWidth(durationText);

                Fonts.celestial[12].drawString(matrixStack, I18n.format(p.getEffectName()), posX + padding, posY + headerHeight + padding + (index * offset), -1);
                Fonts.celestial[12].drawString(matrixStack, durationText, posX + width - durationWidth - padding, posY + headerHeight + padding + (index * offset), -1);

                index++;
            }
        }
        SmartScissor.unset();
        SmartScissor.pop();
        activePotions = index;

        potionStatus.setWidth(width);
        potionStatus.setHeight(activePotions * offset + headerHeight);
    }

    private void onTitleRender(final MatrixStack stack) {
        UserProfile profile = Managment.USER_PROFILE;

        StringBuilder titleText = new StringBuilder();
        int counter = 0;


        titleText.append("star");
        counter++;

        if (watermarkElement.get(0)) {
            if (counter > 0) {
                titleText.append(TextFormatting.GRAY + " | " + TextFormatting.WHITE);
            }
            titleText.append(profile.getName());
            counter++;
        }
        if (watermarkElement.get(1)) {
            if (counter > 0) {
                titleText.append(TextFormatting.GRAY + " | " + TextFormatting.WHITE);
            }
            titleText.append(mc.debugFPS + "fps");
            counter++;
        }
        if (watermarkElement.get(2)) {
            if (counter > 0) {
                titleText.append(TextFormatting.GRAY + " | " + TextFormatting.WHITE);
            }
            titleText.append(HudUtil.calculatePing() + "ms");
        }


        final float x = 5, y = 5, titleWidth = Fonts.gilroyBold[12].getWidth(titleText.toString()) + 6, titleHeight = 12;


        int firstColor = ColorUtil.getColorStyle(0);
        int secondColor = ColorUtil.getColorStyle(90);


        RenderUtil.Render2D.drawShadow(x, y, titleWidth, titleHeight, 10, firstColor, secondColor, ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270));

        RenderUtil.Render2D.drawGradientRound(x, y, titleWidth, titleHeight, 3, firstColor, secondColor, ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270));


        RenderUtil.Render2D.drawRoundedRect(x, y, titleWidth, titleHeight, 2.5f, ColorUtil.rgba(21, 21, 21, 200));

        Fonts.gilroyBold[12].drawString(stack, titleText.toString(), x + 3, y + Fonts.gilroyBold[12].getFontHeight() / 2f + 1, -1);
    }

    List<Function> sortedFunctions = new ArrayList<>();
    TimerUtil delay = new TimerUtil();


    private void renderArrayList(MatrixStack stack) {
        float x = 5;
        float y = 25;
        float height = 10;
        float yOffset = 0;

        final StyledFont font = Fonts.celestial[fontSize.getValue().intValue()];
        StyleManager styleManager = Managment.STYLE_MANAGER;

        if (delay.hasTimeElapsed(10000)) {
            sortedFunctions = HudUtil.getSorted(font);
            delay.reset();
        }

        float gradientForce = 1;
        int fontOffset = (fontSize.getValue().intValue() > 14 ? -14 + fontSize.getValue().intValue()
                - (fontSize.getValue().intValue() > 14 ? 1 : 0) : 0);
        int firstColor;
        int secondColor;

        if (glow.get()) {
            for (Function function : sortedFunctions) {
                if ((limitations.get(0) && function.category == Type.Render) || (limitations.get(1) && function.bind == 0)) {
                    continue;
                }

                function.animation = AnimationMath.lerp(function.animation, function.state ? 1 : 0, 15);

                if (function.animation >= 0.01) {
                    float width = font.getWidth(function.name) + 5;
                    firstColor = styleManager.getCurrentStyle()
                            .getColor((int) ((yOffset + height * function.animation) * gradientForce));
                    secondColor = styleManager.getCurrentStyle()
                            .getColor((int) (yOffset * gradientForce));

                    RenderSystem.pushMatrix();
                    RenderSystem.translatef(x + width / 2F, y + yOffset, 0);
                    RenderSystem.scalef(1, function.animation, 1);
                    RenderSystem.translatef(-(x + width / 2F), -(y + yOffset), 0);
                    RenderUtil.Render2D.drawShadow(x, y + yOffset, width, height, 10, firstColor, secondColor);
                    RenderSystem.popMatrix();

                    yOffset += height * function.animation;
                }
            }
            yOffset = 0;
        }
        for (Function function : sortedFunctions) {
            if ((limitations.get(0) && function.category == Type.Render) || (limitations.get(1) && function.bind == 0)) {
                continue;
            }

            function.animation = AnimationMath.lerp(function.animation, function.state ? 1 : 0, 15);

            if (function.animation >= 0.01) {
                float width = font.getWidth(function.name) + 5;
                secondColor = styleManager.getCurrentStyle()
                        .getColor((int) (yOffset * gradientForce));

                RenderSystem.pushMatrix();
                RenderSystem.translatef(x + width / 2F, y + yOffset, 0);
                RenderSystem.scalef(1, function.animation, 1);
                RenderSystem.translatef(-(x + width / 2F), -(y + yOffset), 0);
                RenderUtil.Render2D.drawRect(x, y + yOffset, width, height, ColorUtil.rgba(21, 21, 21, 255));
                font.drawString(stack, function.name, x + 3,
                        y + yOffset + font.getFontHeight() / 2f - fontOffset - 1, secondColor);
                RenderSystem.popMatrix();

                yOffset += height * function.animation;
            }
        }


        yOffset = 0;
        for (Function function : sortedFunctions) {
            if ((limitations.get(0) && function.category == Type.Render) || (limitations.get(1) && function.bind == 0)) {
                continue;
            }
            function.animation = AnimationMath.lerp(function.animation, function.state ? 1 : 0, 15);
            if (function.animation >= 0.01) {
                float width = font.getWidth(function.name) + 4;
                firstColor = styleManager.getCurrentStyle()
                        .getColor((int) ((yOffset + height * function.animation) * gradientForce));
                secondColor = styleManager.getCurrentStyle()
                        .getColor((int) (yOffset * gradientForce));

                RenderSystem.pushMatrix();
                RenderSystem.translatef(x + width / 2F, y + yOffset, 0);
                RenderSystem.scalef(1, function.animation, 1);
                RenderSystem.translatef(-(x + width / 2F), -(y + yOffset), 0);
                RenderUtil.Render2D.drawShadow(x, y + yOffset, 1, height, 8, firstColor, secondColor);
                RenderUtil.Render2D.drawVertical(x, y + yOffset, 1, height, firstColor, secondColor);
                RenderSystem.popMatrix();

                yOffset += height * function.animation;
            }
        }
    }


    float health = 0;
    public final Dragging targetHUD = Initilization.createDrag(this, "TargetHUD", 500, 50);
    private final Animation targetHudAnimation = new EaseBackIn(200, 1, 1.5f);
    private PlayerEntity target = null;
    private double scale = 0.0D;
    float healthplus = 5;

    private void onRenderTargetHUD(final MatrixStack stack) {
        this.target = getTarget(this.target);
        this.targetHudAnimation.setDuration(300);
        this.scale = targetHudAnimation.getOutput();

        if (scale == 0.0F) {
            target = null;
        }

        if (target == null) {
            return;
        }

        final String targetName = this.target.getName().getString();

        String substring = targetName.substring(0, Math.min(targetName.length(), 10));
        final float nameWidth = Fonts.gilroyBold[18].getWidth(substring);
        final float xPosition = this.targetHUD.getX();
        final float yPosition = this.targetHUD.getY();
        final float maxWidth = Math.max(nameWidth + 45, 114);
        final float maxHeight = 30;

        // Обновление значения здоровья с анимацией
        this.health = AnimationMath.fast(health, target.getHealth() / target.getMaxHealth(), 5);
        this.health = MathHelper.clamp(this.health, 0, 1);
        this.healthplus = AnimationMath.fast(healthplus, target.getAbsorptionAmount() / target.getMaxHealth(), 5);
        this.healthplus = MathHelper.clamp(this.healthplus, 0, 1);

        GlStateManager.pushMatrix();
        AnimationMath.sizeAnimation(xPosition + (maxWidth / 2), yPosition + (maxHeight / 2), scale);

        Vector2i colorVec = new Vector2i(ColorUtil.getColorStyle(0), ColorUtil.getColorStyle(90));

        RenderUtil.Render2D.drawShadow(xPosition, yPosition, maxWidth, maxHeight + 10, 10, colorVec.x, colorVec.y, ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270));
        RenderUtil.Render2D.drawGradientRound(xPosition, yPosition, maxWidth , maxHeight + 10, 7.5f, ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270), ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270));
        //RenderUtil.Render2D.drawGradientRound(xPosition, yPosition, maxWidth, maxHeight + 10, 5, colorVec.x, colorVec.y, ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270));

        RenderUtil.Render2D.drawRoundedRect(xPosition, yPosition, maxWidth , maxHeight + 10, 7.5f, rgba(10, 15, 14, 255));
        RenderUtil.Render2D.drawRoundedRect(xPosition + 42, yPosition + 25, 64 , 9, 3f, rgba(21, 21, 21, 255));
        RenderUtil.Render2D.drawShadow(xPosition + 42, yPosition + 26, 64 * health, 7, 10, colorVec.x, colorVec.y, ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270));
        RenderUtil.Render2D.drawGradientRound(xPosition + 42, yPosition + 26, 64 * health, 7, 3, colorVec.x, colorVec.y, ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270));
        RenderUtil.Render2D.drawGradientRound(xPosition + 42, yPosition + 26, 40 * healthplus, 7, 3, rgba(255, 102, 0, 255), rgba(255, 255, 0, 255), rgba(255, 102, 0, 255), rgba(255, 255, 0, 255));


        RenderUtil.Render2D.drawRoundedRect(xPosition + 4, yPosition + 4, 32, 32, 6, Color.BLACK.getRGB());
        IMinecraft.mc.getTextureManager().bindTexture(((AbstractClientPlayerEntity) target).getLocationSkin());
        AbstractGui.drawScaledCustomSizeModalRect(xPosition + 4, yPosition + 4, 8F, 8F, 8F, 8F, 32, 32, 64F, 64F);





        Fonts.interhui[18].drawString(stack, substring, xPosition + 42, yPosition + 7, -1);

        String healthValue = (int) MathUtil.round(this.health * 20 + target.getAbsorptionAmount(), 0.5f) + ".00 HP";
        Fonts.interhui[12].drawCenteredString(stack, healthValue, xPosition + maxWidth - 58, yPosition + maxHeight / 1.5 - 2.2f, ColorUtil.rgba(255, 255, 255, 255));
        GlStateManager.popMatrix();
        this.targetHUD.setWidth(maxWidth);
        this.targetHUD.setHeight(maxHeight);
    }

    private void drawItemStack(float x, float y, float offset) {
        List<ItemStack> stackList = new ArrayList<>(Arrays.asList(target.getHeldItemMainhand(), target.getHeldItemOffhand()));
        stackList.addAll((Collection<? extends ItemStack>) target.getArmorInventoryList());

        final AtomicReference<Float> posX = new AtomicReference<>(x);

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


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

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

        return target;
    }
}
Потом зайдите по пути assets/minecraft/expensive/font
и киньте шрифт туда
потом заходим в Intellij Idea и заходим по пути
ru.shield.util.font.Fonts
и вставляем ето
14 строчка:
    public static volatile StyledFont[] celestial = new StyledFont[24];
44 строчка:
   for (int i = 8; i < 24;i++) {
            celestial[i] = new StyledFont("montserrat.ttf", i, 0.0f, 0.0f, 0.0f, true, Lang.ENG_RU);
        }
Туски и не хейть я только начинаю учить джаву:roflanPominki:
ну я хуй знает что они делали: flusergame aka hwidowskiy ,ватермарк из weakson client, остальное просто из шилда ,нету таймера
 
Начинающий
Статус
Оффлайн
Регистрация
16 Июл 2023
Сообщения
103
Реакции[?]
5
Поинты[?]
5K
Я с человеком flusergame aka hwidowskiy начал скидать celestial
Я зделал Кейбинд, стафф лист, поушен, таргет худ 50% Ватермарки
Пожалуйста, авторизуйтесь для просмотра ссылки.

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

Code:
package ru.shield.modules.impl.render;

import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.platform.GlStateManager;
import com.mojang.blaze3d.systems.RenderSystem;
import lombok.Getter;
import net.minecraft.client.entity.player.AbstractClientPlayerEntity;
import net.minecraft.client.gui.AbstractGui;
import net.minecraft.client.gui.screen.ChatScreen;
import net.minecraft.client.network.play.NetworkPlayerInfo;
import net.minecraft.client.resources.I18n;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.potion.EffectInstance;
import net.minecraft.potion.EffectUtils;
import net.minecraft.scoreboard.ScorePlayerTeam;
import net.minecraft.scoreboard.Team;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.vector.Vector4f;
import net.minecraft.util.text.ITextComponent;
import net.minecraft.util.text.StringTextComponent;
import net.minecraft.util.text.TextFormatting;
import net.minecraft.world.GameType;
import org.joml.Vector2i;
import org.joml.Vector4i;
import ru.shield.util.IMinecraft;
import ru.shield.util.font.Fonts;
import ru.shield.util.render.ColorUtil;
import ru.shield.util.render.RenderUtil;
import ru.shield.Initilization;
import ru.shield.events.Event;
import ru.shield.events.impl.player.EventUpdate;
import ru.shield.events.impl.render.EventRender;
import ru.shield.managment.Managment;
import ru.shield.modules.Function;
import ru.shield.modules.FunctionAnnotation;
import ru.shield.modules.Type;
import ru.shield.modules.settings.imp.BooleanOption;
import ru.shield.modules.settings.imp.MultiBoxSetting;
import ru.shield.modules.settings.imp.SliderSetting;
import ru.shield.ui.midnight.StyleManager;
import ru.shield.util.ClientUtil;
import ru.shield.util.UserProfile;
import ru.shield.util.animations.Animation;
import ru.shield.util.animations.Direction;
import ru.shield.util.animations.impl.EaseBackIn;
import ru.shield.util.drag.Dragging;
import ru.shield.util.font.styled.StyledFont;
import ru.shield.util.math.MathUtil;
import ru.shield.util.misc.HudUtil;
import ru.shield.util.misc.TimerUtil;
import ru.shield.util.render.SmartScissor;
import ru.shield.util.render.animation.AnimationMath;

import java.awt.*;
import java.sql.Time;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.atomic.AtomicReference;
import java.util.regex.Pattern;

import static ru.shield.modules.impl.render.HudFunction.Status.*;
import static ru.shield.util.render.ColorUtil.rgba;
import static ru.shield.util.render.RenderUtil.Render2D.*;

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

    public MultiBoxSetting elements = new MultiBoxSetting("Элементы",
            new BooleanOption("Логотип", true),
            new BooleanOption("Список модулей", true),
            new BooleanOption("Список модераторов", true),
            new BooleanOption("Список зелий", true),
            new BooleanOption("Уведомления", true),
            new BooleanOption("Таймер индикатор", true),
            new BooleanOption("Расписание", false),
            new BooleanOption("Таргет Худ", true),
            new BooleanOption("Кейбинды", true),
            new BooleanOption("Корды", true),
            new BooleanOption("Броня", true));
    public MultiBoxSetting watermarkElement = new MultiBoxSetting("Элементы логотипа",
            new BooleanOption("Логин в чите", true),
            new BooleanOption("Счетчик кадров", true),
            new BooleanOption("Счетчик пинга", true)).setVisible(() -> elements.get(0));

    public MultiBoxSetting limitations = new MultiBoxSetting("Ограничения",
            new BooleanOption("Скрывать визуалы", true),
            new BooleanOption("Только бинды", false)).setVisible(() -> elements.get(1));

    public BooleanOption glow = new BooleanOption("Подсветка списка модулей", true).setVisible(() -> elements.get(1));

    public SliderSetting fontSize = new SliderSetting("Размер шрифта", 13, 13, 13, 13);
    public final BooleanOption shadow = new BooleanOption("Тень", true);

    public HudFunction() {
        addSettings(elements, watermarkElement, limitations, glow);
    }

    public final float offs = 0;

    @Override
    public void onEvent(final Event event) {
        if (event instanceof EventUpdate && elements.get(2)) {
            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(repairString(team.getPrefix().getString().toLowerCase(Locale.ROOT))).matches() || Managment.STAFF_MANAGER.isStaff(name)) {
                        staffPlayers.add(new StaffPlayer(name, team.getPrefix()));
                    }
                }
            }
        }
        if (event instanceof EventRender eventRender) {
            if (eventRender.isRender2D()) {
                handleRender(eventRender);
            }
        }
    }

    private void handleRender(EventRender renderEvent) {
        final MatrixStack stack = renderEvent.matrixStack;
        int firstColor = ColorUtil.getColorStyle(0);
        int secondColor = ColorUtil.getColorStyle(90);
        // firstcolor and secondcolor от хвидовского
        int firstColor2 = new Color(255,255,255,255).getRGB();
        int secondColor2 = new Color(255,255,255,255).getRGB();


        if (elements.get(0)) {
            {
                int colorVec = ColorUtil.getColorStyle(0);
        // watermark от w1nxovskiy
                final String title = " >> " + "Developer " + ">>" + " UID: 1" + " >> " + "fps: " + mc.debugFPS;
                final StringTextComponent gradientText = ClientUtil.gradient("CELESTIAL", firstColor2, secondColor2);



                final StyledFont medium = Fonts.celestial[15];
                final float x = 5;
                final float y = 5;
                final float titleWidth = medium.getWidth(gradientText.getString() + title) + 6;
                final float titleHeight = 12;
                RenderUtil.Render2D.drawShadow(x, y, titleWidth, titleHeight, 10, firstColor, secondColor, firstColor, secondColor);
                RenderUtil.Render2D.drawGradientRound(x, y, titleWidth, titleHeight + 1, 4, firstColor, secondColor, firstColor, secondColor);
                RenderUtil.Render2D.drawRoundedRect(x, y, titleWidth, titleHeight + 1, 4, ColorUtil.rgba(20, 20, 20, 255));

                medium.drawString(stack, gradientText, x + 3, y + medium.getFontHeight() / 2f - 0.5f, -1);
                medium.drawString(stack, title, x + medium.getWidth(gradientText.getString()) + 3.5f, y + medium.getFontHeight() / 2.5f + 0.5f, ColorUtil.rgba(255, 255, 255, 255));
            }
        }
        if (elements.get(1)) {
            renderArrayList(stack);
        }
        if (elements.get(2)) {
            onStaffListRender(stack, renderEvent);
        }
        if (elements.get(3)) {
            onPotionElementsRender(stack, renderEvent);
        }
        if (elements.get(7)) {
            onRenderTargetHUD(stack);
        }
        if (elements.get(8)) {
            onKeyBindsRender(stack);
        }
        if (elements.get(9)) {
            onInformationRender(stack, renderEvent);
        }
        if (elements.get(10)) {
            onArmorRender(renderEvent);
        }
    }

    public Dragging keyBinds = Initilization.createDrag(this, "KeyBinds", 200, 50);
    private float heightDynamic = 0;
    private int activeModules = 0;

    private void onKeyBindsRender(MatrixStack stack) {
        float posX = keyBinds.getX();
        float posY = keyBinds.getY();

        int roundDegree = 4;
        int headerHeight = 14;
        int width = 100;
        int padding = 5;
        int offset = 10;

        int headerColor = new Color(20, 20, 20, 255).getRGB();
        int backgroundColor = new Color(30, 30, 30, 255).getRGB();
        int backgroundColor1 = new Color(255, 255, 255, 255).getRGB();
        int backgroundColor2 = new Color(ColorUtil.getColorStyle(180)).getRGB();

        int firstColor = ColorUtil.getColorStyle(0);
        int secondColor = ColorUtil.getColorStyle(90);

        float height = activeModules * offset;

        this.heightDynamic = AnimationMath.fast(this.heightDynamic, height, 10);

        RenderUtil.Render2D.drawShadow(posX, posY, width, headerHeight + heightDynamic + padding / 2f, 10, firstColor, secondColor, ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270));

        //RenderUtil.Render2D.drawGradientRound(posX, posY, width, heightDynamic + headerHeight + 2.5f, roundDegree - 1, ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270), ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270));
        RenderUtil.Render2D.drawGradientRound(posX, posY, width, heightDynamic + headerHeight + 2.5f, roundDegree - 1, firstColor, secondColor, ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270));

       // RenderUtil.Render2D.drawRoundedCorner(keyBinds.getX(), posY, width, headerHeight, new Vector4f(roundDegree, 0, roundDegree, 0), ColorUtil.getColorStyle(180));
        Fonts.celestial[15].drawCenteredString(stack, ClientUtil.gradient("Keybinds", ColorUtil.rgba(255, 255, 255, 255), ColorUtil.rgba(255, 255, 255, 255)), keyBinds.getX() + width / 2f, posY + 5.5f, backgroundColor1);

        RenderUtil.Render2D.drawRoundedCorner(posX, posY + headerHeight, width, heightDynamic + padding / 2f, new Vector4f(0, roundDegree, 0, roundDegree), backgroundColor);
        SmartScissor.push();
        SmartScissor.setFromComponentCoordinates(posX, posY, width, headerHeight + heightDynamic + padding / 2f);
        int index = 0;

        for (Function f : Managment.FUNCTION_MANAGER.getFunctions()) {
            if (f.bind != 0 && f.state) {

                String text = ClientUtil.getKey(f.bind);

                if (text == null) {
                    continue;
                }


                String bindText = "[" + text.toUpperCase() + "]";
                float bindWidth = Fonts.celestial[12].getWidth(bindText);

                Fonts.celestial[12].drawString(stack, f.name, posX + padding, posY + headerHeight + padding + (index * offset), -1);
                Fonts.celestial[12].drawString(stack, bindText, posX + width - bindWidth - padding, posY + headerHeight + padding + (index * offset), -1);

                index++;
            }
        }
        SmartScissor.unset();
        SmartScissor.pop();
        activeModules = index;

        keyBinds.setWidth(width);
        keyBinds.setHeight(activeModules * offset + headerHeight);
    }

    public CopyOnWriteArrayList<net.minecraft.util.text.TextComponent> components = new CopyOnWriteArrayList<>();

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

    public Dragging staffList = Initilization.createDrag(this, "StaffList", 350, 50);

    private int activeStaff = 0;
    private float hDynam = 0;
    private float widthDynamic = 0;
    private float nameWidth = 0;
    List<StaffPlayer> staffPlayers = new ArrayList<>();

    private void onStaffListRender(MatrixStack matrixStack, EventRender render) {
        float posX = staffList.getX();
        float posY = staffList.getY();

        int roundDegree = 4;
        int headerHeight = 14;
        float width = Math.max(nameWidth + 40, 100);
        int padding = 5;
        int offset = 10;

        int headerColor = new Color(20, 20, 20, 255).getRGB();
        int backgroundColor = new Color(30, 30, 30, 255).getRGB();

        int firstColor = ColorUtil.getColorStyle(0);
        int secondColor = ColorUtil.getColorStyle(90);
        float height = activeStaff * offset;

        this.hDynam = AnimationMath.fast(this.hDynam, height, 10);
        this.widthDynamic = AnimationMath.fast(this.widthDynamic, width, 10);
        RenderUtil.Render2D.drawShadow(posX, posY, widthDynamic, headerHeight + hDynam + padding / 2f, 10, firstColor, secondColor, ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270));

        RenderUtil.Render2D.drawGradientRound(posX, posY, widthDynamic, hDynam + headerHeight + 2.5f, roundDegree - 1, firstColor, secondColor, ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270));

       // RenderUtil.Render2D.drawRoundedCorner(posX, posY, widthDynamic, headerHeight, new Vector4f(roundDegree, 0, roundDegree, 0), headerColor);
        Fonts.celestial[15].drawCenteredString(matrixStack, ClientUtil.gradient("Staff List", ColorUtil.rgba(255, 255, 255, 255), ColorUtil.rgba(255, 255, 255, 255)), posX + widthDynamic / 2f, posY + 5.5f, -1);

        RenderUtil.Render2D.drawRoundedCorner(posX, posY + headerHeight, widthDynamic, hDynam + padding / 2f, new Vector4f(0, roundDegree, 0, roundDegree), backgroundColor);

        int index = 0;

        SmartScissor.push();
        SmartScissor.setFromComponentCoordinates(posX, posY, widthDynamic, headerHeight + hDynam + padding / 2f);
        if (!staffPlayers.isEmpty()) {
            for (StaffPlayer staff : staffPlayers) {
                String name = staff.getName();
                ITextComponent prefix = staff.getPrefix();
                String status;
                status = staff.getStatus().getString();

                Fonts.celestial[12].drawString(matrixStack, prefix, posX + padding, posY + headerHeight + padding + (index * offset), -1);
                Fonts.celestial[12].drawString(matrixStack, name + status, posX + padding + Fonts.celestial[12].getWidth(prefix.getString()), posY + headerHeight + padding + (index * offset), -1);
                nameWidth = Fonts.celestial[12].getWidth(prefix.getString() + name + status);
                index++;
            }
        } else {
            nameWidth = 0;
        }
        SmartScissor.unset();
        SmartScissor.pop();

        activeStaff = index;
        staffList.setWidth(widthDynamic);
        staffList.setHeight(hDynam + headerHeight);
    }

    private String repairString(String input) {
        StringBuilder sb = new StringBuilder(input.length());
        for (char c : input.toCharArray()) {
            if (c >= 65281 && c <= 65374) {
                sb.append((char) (c - 65248));
            } else {
                sb.append(c);
            }
        }
        return sb.toString();
    }

    private class StaffPlayer {

        [USER=270918]@Getter[/USER]
        String name;
        [USER=270918]@Getter[/USER]
        ITextComponent prefix;
        [USER=270918]@Getter[/USER]
        Status status;

        private StaffPlayer(String name, ITextComponent prefix) {
            this.name = name;
            this.prefix = prefix;

            updateStatus();
        }

        private void updateStatus() {
            for (AbstractClientPlayerEntity player : mc.world.getPlayers()) {
                if (player.getNameClear().equals(name)) {
                    status = NEAR;
                    return;
                }
            }

            for (NetworkPlayerInfo info : mc.getConnection().getPlayerInfoMap()) {
                if (info.getGameProfile().getName().equals(name)) {
                    if (info.getGameType() == GameType.SPECTATOR) {
                        status = SPEC;
                        return;
                    }

                    status = NONE;
                    return;
                }
            }

            status = VANISHED;
        }
    }

    public enum Status {
        NONE(""),
        NEAR(" §e[Near]"),
        SPEC(" §c[Spec]"),
        VANISHED(" §6[Vanish]");

        [USER=270918]@Getter[/USER]
        final String string;

        Status(String string) {
            this.string = string;
        }
    }

    public Dragging events = Initilization.createDrag(this, "events", 213.0f, 8.0f + 100);


    private void onInformationRender(final MatrixStack stack, final EventRender renderEvent) {
        float y = renderEvent.scaledResolution.scaledHeight() - Fonts.celestial[15].getFontHeight() - (mc.currentScreen instanceof ChatScreen ? 8 * mc.gameSettings.guiScale : 0);
        String pos = (int) mc.player.getPosX() + ", " + (int) mc.player.getPosY() + ", " + (int) mc.player.getPosZ();

        Fonts.celestial[15].drawString(stack, ClientUtil.gradient("Coords: ", ColorUtil.getColorStyle(0), ColorUtil.getColorStyle(150)), 4, y, -1);
        Fonts.celestial[15].drawString(stack, pos, 4 + Fonts.celestial[15].getWidth("Coords: "), y, new Color(230, 230, 230).getRGB());
    }


    private void onArmorRender(final EventRender renderEvent) {
        int count = 0;
        for (int i = 0; i < mc.player.inventory.getSizeInventory(); i++) {
            ItemStack s = mc.player.inventory.getStackInSlot(i);
            if (s.getItem() == Items.TOTEM_OF_UNDYING) {
                count++;
            }
        }
        float xPos = renderEvent.scaledResolution.scaledWidth() / 2f;
        float yPos = renderEvent.scaledResolution.scaledHeight();

        boolean totemInInv = mc.player.inventory.mainInventory.stream().map(ItemStack::getItem).toList().contains(Items.TOTEM_OF_UNDYING);
        int off = totemInInv ? +5 : 0;
        if (mc.player.isCreative()) {
            yPos += 17;
        }

        for (ItemStack s : mc.player.inventory.armorInventory) {
            off += 15;
        }
        if (totemInInv);



    }

    public Dragging potionStatus = Initilization.createDrag(this, "PotionStatus", 200, 50);
    private float hDynamic = 0;
    private int activePotions = 0;

    private void onPotionElementsRender(final MatrixStack matrixStack, final EventRender renderEvent) {
        float posX = potionStatus.getX();
        float posY = potionStatus.getY();

        int roundDegree = 4;
        int headerHeight = 14;
        int width = 100;
        int padding = 5;
        int offset = 10;

        int headerColor = new Color(20, 20, 20, 255).getRGB();
        int backgroundColor = new Color(30, 30, 30, 255).getRGB();

        int firstColor = ColorUtil.getColorStyle(0);
        int secondColor = ColorUtil.getColorStyle(90);

        float height = activePotions * offset;

        this.hDynamic = AnimationMath.fast(this.hDynamic, height, 10);

        RenderUtil.Render2D.drawShadow(posX, posY, width, headerHeight + hDynamic + padding / 2f, 10, firstColor, secondColor, ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270));

        RenderUtil.Render2D.drawGradientRound(posX, posY, width, hDynamic + headerHeight + 2.5f, roundDegree - 1, firstColor, secondColor, ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270));

        Fonts.celestial[15].drawCenteredString(matrixStack, ClientUtil.gradient("Potions", ColorUtil.rgba(255, 255, 255, 255), ColorUtil.rgba(255, 255, 255, 255)), potionStatus.getX() + width / 2f, posY + 5.5f, firstColor);

        RenderUtil.Render2D.drawRoundedCorner(posX, posY + headerHeight, width, hDynamic + padding / 2f, new Vector4f(0, roundDegree, 0, roundDegree), backgroundColor);
        SmartScissor.push();
        SmartScissor.setFromComponentCoordinates(posX, posY, width, headerHeight + hDynamic + padding / 2f);
        int index = 0;

        for (EffectInstance p : mc.player.getActivePotionEffects()) {
            if (p.isShowIcon()) {

                String durationText = EffectUtils.getPotionDurationString(p, 1);
                float durationWidth = Fonts.celestial[12].getWidth(durationText);

                Fonts.celestial[12].drawString(matrixStack, I18n.format(p.getEffectName()), posX + padding, posY + headerHeight + padding + (index * offset), -1);
                Fonts.celestial[12].drawString(matrixStack, durationText, posX + width - durationWidth - padding, posY + headerHeight + padding + (index * offset), -1);

                index++;
            }
        }
        SmartScissor.unset();
        SmartScissor.pop();
        activePotions = index;

        potionStatus.setWidth(width);
        potionStatus.setHeight(activePotions * offset + headerHeight);
    }

    private void onTitleRender(final MatrixStack stack) {
        UserProfile profile = Managment.USER_PROFILE;

        StringBuilder titleText = new StringBuilder();
        int counter = 0;


        titleText.append("star");
        counter++;

        if (watermarkElement.get(0)) {
            if (counter > 0) {
                titleText.append(TextFormatting.GRAY + " | " + TextFormatting.WHITE);
            }
            titleText.append(profile.getName());
            counter++;
        }
        if (watermarkElement.get(1)) {
            if (counter > 0) {
                titleText.append(TextFormatting.GRAY + " | " + TextFormatting.WHITE);
            }
            titleText.append(mc.debugFPS + "fps");
            counter++;
        }
        if (watermarkElement.get(2)) {
            if (counter > 0) {
                titleText.append(TextFormatting.GRAY + " | " + TextFormatting.WHITE);
            }
            titleText.append(HudUtil.calculatePing() + "ms");
        }


        final float x = 5, y = 5, titleWidth = Fonts.gilroyBold[12].getWidth(titleText.toString()) + 6, titleHeight = 12;


        int firstColor = ColorUtil.getColorStyle(0);
        int secondColor = ColorUtil.getColorStyle(90);


        RenderUtil.Render2D.drawShadow(x, y, titleWidth, titleHeight, 10, firstColor, secondColor, ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270));

        RenderUtil.Render2D.drawGradientRound(x, y, titleWidth, titleHeight, 3, firstColor, secondColor, ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270));


        RenderUtil.Render2D.drawRoundedRect(x, y, titleWidth, titleHeight, 2.5f, ColorUtil.rgba(21, 21, 21, 200));

        Fonts.gilroyBold[12].drawString(stack, titleText.toString(), x + 3, y + Fonts.gilroyBold[12].getFontHeight() / 2f + 1, -1);
    }

    List<Function> sortedFunctions = new ArrayList<>();
    TimerUtil delay = new TimerUtil();


    private void renderArrayList(MatrixStack stack) {
        float x = 5;
        float y = 25;
        float height = 10;
        float yOffset = 0;

        final StyledFont font = Fonts.celestial[fontSize.getValue().intValue()];
        StyleManager styleManager = Managment.STYLE_MANAGER;

        if (delay.hasTimeElapsed(10000)) {
            sortedFunctions = HudUtil.getSorted(font);
            delay.reset();
        }

        float gradientForce = 1;
        int fontOffset = (fontSize.getValue().intValue() > 14 ? -14 + fontSize.getValue().intValue()
                - (fontSize.getValue().intValue() > 14 ? 1 : 0) : 0);
        int firstColor;
        int secondColor;

        if (glow.get()) {
            for (Function function : sortedFunctions) {
                if ((limitations.get(0) && function.category == Type.Render) || (limitations.get(1) && function.bind == 0)) {
                    continue;
                }

                function.animation = AnimationMath.lerp(function.animation, function.state ? 1 : 0, 15);

                if (function.animation >= 0.01) {
                    float width = font.getWidth(function.name) + 5;
                    firstColor = styleManager.getCurrentStyle()
                            .getColor((int) ((yOffset + height * function.animation) * gradientForce));
                    secondColor = styleManager.getCurrentStyle()
                            .getColor((int) (yOffset * gradientForce));

                    RenderSystem.pushMatrix();
                    RenderSystem.translatef(x + width / 2F, y + yOffset, 0);
                    RenderSystem.scalef(1, function.animation, 1);
                    RenderSystem.translatef(-(x + width / 2F), -(y + yOffset), 0);
                    RenderUtil.Render2D.drawShadow(x, y + yOffset, width, height, 10, firstColor, secondColor);
                    RenderSystem.popMatrix();

                    yOffset += height * function.animation;
                }
            }
            yOffset = 0;
        }
        for (Function function : sortedFunctions) {
            if ((limitations.get(0) && function.category == Type.Render) || (limitations.get(1) && function.bind == 0)) {
                continue;
            }

            function.animation = AnimationMath.lerp(function.animation, function.state ? 1 : 0, 15);

            if (function.animation >= 0.01) {
                float width = font.getWidth(function.name) + 5;
                secondColor = styleManager.getCurrentStyle()
                        .getColor((int) (yOffset * gradientForce));

                RenderSystem.pushMatrix();
                RenderSystem.translatef(x + width / 2F, y + yOffset, 0);
                RenderSystem.scalef(1, function.animation, 1);
                RenderSystem.translatef(-(x + width / 2F), -(y + yOffset), 0);
                RenderUtil.Render2D.drawRect(x, y + yOffset, width, height, ColorUtil.rgba(21, 21, 21, 255));
                font.drawString(stack, function.name, x + 3,
                        y + yOffset + font.getFontHeight() / 2f - fontOffset - 1, secondColor);
                RenderSystem.popMatrix();

                yOffset += height * function.animation;
            }
        }


        yOffset = 0;
        for (Function function : sortedFunctions) {
            if ((limitations.get(0) && function.category == Type.Render) || (limitations.get(1) && function.bind == 0)) {
                continue;
            }
            function.animation = AnimationMath.lerp(function.animation, function.state ? 1 : 0, 15);
            if (function.animation >= 0.01) {
                float width = font.getWidth(function.name) + 4;
                firstColor = styleManager.getCurrentStyle()
                        .getColor((int) ((yOffset + height * function.animation) * gradientForce));
                secondColor = styleManager.getCurrentStyle()
                        .getColor((int) (yOffset * gradientForce));

                RenderSystem.pushMatrix();
                RenderSystem.translatef(x + width / 2F, y + yOffset, 0);
                RenderSystem.scalef(1, function.animation, 1);
                RenderSystem.translatef(-(x + width / 2F), -(y + yOffset), 0);
                RenderUtil.Render2D.drawShadow(x, y + yOffset, 1, height, 8, firstColor, secondColor);
                RenderUtil.Render2D.drawVertical(x, y + yOffset, 1, height, firstColor, secondColor);
                RenderSystem.popMatrix();

                yOffset += height * function.animation;
            }
        }
    }


    float health = 0;
    public final Dragging targetHUD = Initilization.createDrag(this, "TargetHUD", 500, 50);
    private final Animation targetHudAnimation = new EaseBackIn(200, 1, 1.5f);
    private PlayerEntity target = null;
    private double scale = 0.0D;
    float healthplus = 5;

    private void onRenderTargetHUD(final MatrixStack stack) {
        this.target = getTarget(this.target);
        this.targetHudAnimation.setDuration(300);
        this.scale = targetHudAnimation.getOutput();

        if (scale == 0.0F) {
            target = null;
        }

        if (target == null) {
            return;
        }

        final String targetName = this.target.getName().getString();

        String substring = targetName.substring(0, Math.min(targetName.length(), 10));
        final float nameWidth = Fonts.gilroyBold[18].getWidth(substring);
        final float xPosition = this.targetHUD.getX();
        final float yPosition = this.targetHUD.getY();
        final float maxWidth = Math.max(nameWidth + 45, 114);
        final float maxHeight = 30;

        // Обновление значения здоровья с анимацией
        this.health = AnimationMath.fast(health, target.getHealth() / target.getMaxHealth(), 5);
        this.health = MathHelper.clamp(this.health, 0, 1);
        this.healthplus = AnimationMath.fast(healthplus, target.getAbsorptionAmount() / target.getMaxHealth(), 5);
        this.healthplus = MathHelper.clamp(this.healthplus, 0, 1);

        GlStateManager.pushMatrix();
        AnimationMath.sizeAnimation(xPosition + (maxWidth / 2), yPosition + (maxHeight / 2), scale);

        Vector2i colorVec = new Vector2i(ColorUtil.getColorStyle(0), ColorUtil.getColorStyle(90));

        RenderUtil.Render2D.drawShadow(xPosition, yPosition, maxWidth, maxHeight + 10, 10, colorVec.x, colorVec.y, ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270));
        RenderUtil.Render2D.drawGradientRound(xPosition, yPosition, maxWidth , maxHeight + 10, 7.5f, ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270), ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270));
        //RenderUtil.Render2D.drawGradientRound(xPosition, yPosition, maxWidth, maxHeight + 10, 5, colorVec.x, colorVec.y, ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270));

        RenderUtil.Render2D.drawRoundedRect(xPosition, yPosition, maxWidth , maxHeight + 10, 7.5f, rgba(10, 15, 14, 255));
        RenderUtil.Render2D.drawRoundedRect(xPosition + 42, yPosition + 25, 64 , 9, 3f, rgba(21, 21, 21, 255));
        RenderUtil.Render2D.drawShadow(xPosition + 42, yPosition + 26, 64 * health, 7, 10, colorVec.x, colorVec.y, ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270));
        RenderUtil.Render2D.drawGradientRound(xPosition + 42, yPosition + 26, 64 * health, 7, 3, colorVec.x, colorVec.y, ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270));
        RenderUtil.Render2D.drawGradientRound(xPosition + 42, yPosition + 26, 40 * healthplus, 7, 3, rgba(255, 102, 0, 255), rgba(255, 255, 0, 255), rgba(255, 102, 0, 255), rgba(255, 255, 0, 255));


        RenderUtil.Render2D.drawRoundedRect(xPosition + 4, yPosition + 4, 32, 32, 6, Color.BLACK.getRGB());
        IMinecraft.mc.getTextureManager().bindTexture(((AbstractClientPlayerEntity) target).getLocationSkin());
        AbstractGui.drawScaledCustomSizeModalRect(xPosition + 4, yPosition + 4, 8F, 8F, 8F, 8F, 32, 32, 64F, 64F);





        Fonts.interhui[18].drawString(stack, substring, xPosition + 42, yPosition + 7, -1);

        String healthValue = (int) MathUtil.round(this.health * 20 + target.getAbsorptionAmount(), 0.5f) + ".00 HP";
        Fonts.interhui[12].drawCenteredString(stack, healthValue, xPosition + maxWidth - 58, yPosition + maxHeight / 1.5 - 2.2f, ColorUtil.rgba(255, 255, 255, 255));
        GlStateManager.popMatrix();
        this.targetHUD.setWidth(maxWidth);
        this.targetHUD.setHeight(maxHeight);
    }

    private void drawItemStack(float x, float y, float offset) {
        List<ItemStack> stackList = new ArrayList<>(Arrays.asList(target.getHeldItemMainhand(), target.getHeldItemOffhand()));
        stackList.addAll((Collection<? extends ItemStack>) target.getArmorInventoryList());

        final AtomicReference<Float> posX = new AtomicReference<>(x);

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


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

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

        return target;
    }
}
Потом зайдите по пути assets/minecraft/expensive/font
и киньте шрифт туда
потом заходим в Intellij Idea и заходим по пути
ru.shield.util.font.Fonts
и вставляем ето
14 строчка:
    public static volatile StyledFont[] celestial = new StyledFont[24];
44 строчка:
   for (int i = 8; i < 24;i++) {
            celestial[i] = new StyledFont("montserrat.ttf", i, 0.0f, 0.0f, 0.0f, true, Lang.ENG_RU);
        }
Туски и не хейть я только начинаю учить джаву:roflanPominki:
Зач пасту экспы заренеймил?
 
Начинающий
Статус
Оффлайн
Регистрация
30 Окт 2022
Сообщения
375
Реакции[?]
8
Поинты[?]
5K
Начинающий
Статус
Оффлайн
Регистрация
19 Ноя 2023
Сообщения
201
Реакции[?]
2
Поинты[?]
2K
УУУУУУУУУУУУУУУУУУУУУ

школьник ебаный, ты никогда не станешь девелопером, ты же в войсе орал мне НУ ГСМАР ПОМОГИ. Жалкий пидорас, который даже не может свои ебаные глаза открыть и посмотреть на худ целестиала
ВОТ ОН ДЕВЕЛОПЕР МАЙНКАРФТА
ХАХАХАХАХАХАХА Я ДАЖЕ НЕ ПРОСИЛ ПОМОЩИ ДАУН
 
Начинающий
Статус
Оффлайн
Регистрация
20 Фев 2024
Сообщения
6
Реакции[?]
0
Поинты[?]
0
Парни как быстро тут 5 сообщений набить ?
Всё время их отклоняют
Всё время берут и удаляют
 
щитпостер стат ратио 0.17
Участник
Статус
Оффлайн
Регистрация
28 Окт 2017
Сообщения
1,243
Реакции[?]
227
Поинты[?]
38K
как можно запороть градиент из трех цветов
 
read only ambassador
Пользователь
Статус
Оффлайн
Регистрация
28 Июн 2022
Сообщения
626
Реакции[?]
110
Поинты[?]
14K
Я с человеком flusergame aka hwidowskiy начал скидать celestial
Я зделал Кейбинд, стафф лист, поушен, таргет худ 50% Ватермарки
Пожалуйста, авторизуйтесь для просмотра ссылки.

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

Code:
package ru.shield.modules.impl.render;

import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.platform.GlStateManager;
import com.mojang.blaze3d.systems.RenderSystem;
import lombok.Getter;
import net.minecraft.client.entity.player.AbstractClientPlayerEntity;
import net.minecraft.client.gui.AbstractGui;
import net.minecraft.client.gui.screen.ChatScreen;
import net.minecraft.client.network.play.NetworkPlayerInfo;
import net.minecraft.client.resources.I18n;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.potion.EffectInstance;
import net.minecraft.potion.EffectUtils;
import net.minecraft.scoreboard.ScorePlayerTeam;
import net.minecraft.scoreboard.Team;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.vector.Vector4f;
import net.minecraft.util.text.ITextComponent;
import net.minecraft.util.text.StringTextComponent;
import net.minecraft.util.text.TextFormatting;
import net.minecraft.world.GameType;
import org.joml.Vector2i;
import org.joml.Vector4i;
import ru.shield.util.IMinecraft;
import ru.shield.util.font.Fonts;
import ru.shield.util.render.ColorUtil;
import ru.shield.util.render.RenderUtil;
import ru.shield.Initilization;
import ru.shield.events.Event;
import ru.shield.events.impl.player.EventUpdate;
import ru.shield.events.impl.render.EventRender;
import ru.shield.managment.Managment;
import ru.shield.modules.Function;
import ru.shield.modules.FunctionAnnotation;
import ru.shield.modules.Type;
import ru.shield.modules.settings.imp.BooleanOption;
import ru.shield.modules.settings.imp.MultiBoxSetting;
import ru.shield.modules.settings.imp.SliderSetting;
import ru.shield.ui.midnight.StyleManager;
import ru.shield.util.ClientUtil;
import ru.shield.util.UserProfile;
import ru.shield.util.animations.Animation;
import ru.shield.util.animations.Direction;
import ru.shield.util.animations.impl.EaseBackIn;
import ru.shield.util.drag.Dragging;
import ru.shield.util.font.styled.StyledFont;
import ru.shield.util.math.MathUtil;
import ru.shield.util.misc.HudUtil;
import ru.shield.util.misc.TimerUtil;
import ru.shield.util.render.SmartScissor;
import ru.shield.util.render.animation.AnimationMath;

import java.awt.*;
import java.sql.Time;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.atomic.AtomicReference;
import java.util.regex.Pattern;

import static ru.shield.modules.impl.render.HudFunction.Status.*;
import static ru.shield.util.render.ColorUtil.rgba;
import static ru.shield.util.render.RenderUtil.Render2D.*;

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

    public MultiBoxSetting elements = new MultiBoxSetting("Элементы",
            new BooleanOption("Логотип", true),
            new BooleanOption("Список модулей", true),
            new BooleanOption("Список модераторов", true),
            new BooleanOption("Список зелий", true),
            new BooleanOption("Уведомления", true),
            new BooleanOption("Таймер индикатор", true),
            new BooleanOption("Расписание", false),
            new BooleanOption("Таргет Худ", true),
            new BooleanOption("Кейбинды", true),
            new BooleanOption("Корды", true),
            new BooleanOption("Броня", true));
    public MultiBoxSetting watermarkElement = new MultiBoxSetting("Элементы логотипа",
            new BooleanOption("Логин в чите", true),
            new BooleanOption("Счетчик кадров", true),
            new BooleanOption("Счетчик пинга", true)).setVisible(() -> elements.get(0));

    public MultiBoxSetting limitations = new MultiBoxSetting("Ограничения",
            new BooleanOption("Скрывать визуалы", true),
            new BooleanOption("Только бинды", false)).setVisible(() -> elements.get(1));

    public BooleanOption glow = new BooleanOption("Подсветка списка модулей", true).setVisible(() -> elements.get(1));

    public SliderSetting fontSize = new SliderSetting("Размер шрифта", 13, 13, 13, 13);
    public final BooleanOption shadow = new BooleanOption("Тень", true);

    public HudFunction() {
        addSettings(elements, watermarkElement, limitations, glow);
    }

    public final float offs = 0;

    @Override
    public void onEvent(final Event event) {
        if (event instanceof EventUpdate && elements.get(2)) {
            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(repairString(team.getPrefix().getString().toLowerCase(Locale.ROOT))).matches() || Managment.STAFF_MANAGER.isStaff(name)) {
                        staffPlayers.add(new StaffPlayer(name, team.getPrefix()));
                    }
                }
            }
        }
        if (event instanceof EventRender eventRender) {
            if (eventRender.isRender2D()) {
                handleRender(eventRender);
            }
        }
    }

    private void handleRender(EventRender renderEvent) {
        final MatrixStack stack = renderEvent.matrixStack;
        int firstColor = ColorUtil.getColorStyle(0);
        int secondColor = ColorUtil.getColorStyle(90);
        // firstcolor and secondcolor от хвидовского
        int firstColor2 = new Color(255,255,255,255).getRGB();
        int secondColor2 = new Color(255,255,255,255).getRGB();


        if (elements.get(0)) {
            {
                int colorVec = ColorUtil.getColorStyle(0);
        // watermark от w1nxovskiy
                final String title = " >> " + "Developer " + ">>" + " UID: 1" + " >> " + "fps: " + mc.debugFPS;
                final StringTextComponent gradientText = ClientUtil.gradient("CELESTIAL", firstColor2, secondColor2);



                final StyledFont medium = Fonts.celestial[15];
                final float x = 5;
                final float y = 5;
                final float titleWidth = medium.getWidth(gradientText.getString() + title) + 6;
                final float titleHeight = 12;
                RenderUtil.Render2D.drawShadow(x, y, titleWidth, titleHeight, 10, firstColor, secondColor, firstColor, secondColor);
                RenderUtil.Render2D.drawGradientRound(x, y, titleWidth, titleHeight + 1, 4, firstColor, secondColor, firstColor, secondColor);
                RenderUtil.Render2D.drawRoundedRect(x, y, titleWidth, titleHeight + 1, 4, ColorUtil.rgba(20, 20, 20, 255));

                medium.drawString(stack, gradientText, x + 3, y + medium.getFontHeight() / 2f - 0.5f, -1);
                medium.drawString(stack, title, x + medium.getWidth(gradientText.getString()) + 3.5f, y + medium.getFontHeight() / 2.5f + 0.5f, ColorUtil.rgba(255, 255, 255, 255));
            }
        }
        if (elements.get(1)) {
            renderArrayList(stack);
        }
        if (elements.get(2)) {
            onStaffListRender(stack, renderEvent);
        }
        if (elements.get(3)) {
            onPotionElementsRender(stack, renderEvent);
        }
        if (elements.get(7)) {
            onRenderTargetHUD(stack);
        }
        if (elements.get(8)) {
            onKeyBindsRender(stack);
        }
        if (elements.get(9)) {
            onInformationRender(stack, renderEvent);
        }
        if (elements.get(10)) {
            onArmorRender(renderEvent);
        }
    }

    public Dragging keyBinds = Initilization.createDrag(this, "KeyBinds", 200, 50);
    private float heightDynamic = 0;
    private int activeModules = 0;

    private void onKeyBindsRender(MatrixStack stack) {
        float posX = keyBinds.getX();
        float posY = keyBinds.getY();

        int roundDegree = 4;
        int headerHeight = 14;
        int width = 100;
        int padding = 5;
        int offset = 10;

        int headerColor = new Color(20, 20, 20, 255).getRGB();
        int backgroundColor = new Color(30, 30, 30, 255).getRGB();
        int backgroundColor1 = new Color(255, 255, 255, 255).getRGB();
        int backgroundColor2 = new Color(ColorUtil.getColorStyle(180)).getRGB();

        int firstColor = ColorUtil.getColorStyle(0);
        int secondColor = ColorUtil.getColorStyle(90);

        float height = activeModules * offset;

        this.heightDynamic = AnimationMath.fast(this.heightDynamic, height, 10);

        RenderUtil.Render2D.drawShadow(posX, posY, width, headerHeight + heightDynamic + padding / 2f, 10, firstColor, secondColor, ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270));

        //RenderUtil.Render2D.drawGradientRound(posX, posY, width, heightDynamic + headerHeight + 2.5f, roundDegree - 1, ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270), ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270));
        RenderUtil.Render2D.drawGradientRound(posX, posY, width, heightDynamic + headerHeight + 2.5f, roundDegree - 1, firstColor, secondColor, ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270));

       // RenderUtil.Render2D.drawRoundedCorner(keyBinds.getX(), posY, width, headerHeight, new Vector4f(roundDegree, 0, roundDegree, 0), ColorUtil.getColorStyle(180));
        Fonts.celestial[15].drawCenteredString(stack, ClientUtil.gradient("Keybinds", ColorUtil.rgba(255, 255, 255, 255), ColorUtil.rgba(255, 255, 255, 255)), keyBinds.getX() + width / 2f, posY + 5.5f, backgroundColor1);

        RenderUtil.Render2D.drawRoundedCorner(posX, posY + headerHeight, width, heightDynamic + padding / 2f, new Vector4f(0, roundDegree, 0, roundDegree), backgroundColor);
        SmartScissor.push();
        SmartScissor.setFromComponentCoordinates(posX, posY, width, headerHeight + heightDynamic + padding / 2f);
        int index = 0;

        for (Function f : Managment.FUNCTION_MANAGER.getFunctions()) {
            if (f.bind != 0 && f.state) {

                String text = ClientUtil.getKey(f.bind);

                if (text == null) {
                    continue;
                }


                String bindText = "[" + text.toUpperCase() + "]";
                float bindWidth = Fonts.celestial[12].getWidth(bindText);

                Fonts.celestial[12].drawString(stack, f.name, posX + padding, posY + headerHeight + padding + (index * offset), -1);
                Fonts.celestial[12].drawString(stack, bindText, posX + width - bindWidth - padding, posY + headerHeight + padding + (index * offset), -1);

                index++;
            }
        }
        SmartScissor.unset();
        SmartScissor.pop();
        activeModules = index;

        keyBinds.setWidth(width);
        keyBinds.setHeight(activeModules * offset + headerHeight);
    }

    public CopyOnWriteArrayList<net.minecraft.util.text.TextComponent> components = new CopyOnWriteArrayList<>();

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

    public Dragging staffList = Initilization.createDrag(this, "StaffList", 350, 50);

    private int activeStaff = 0;
    private float hDynam = 0;
    private float widthDynamic = 0;
    private float nameWidth = 0;
    List<StaffPlayer> staffPlayers = new ArrayList<>();

    private void onStaffListRender(MatrixStack matrixStack, EventRender render) {
        float posX = staffList.getX();
        float posY = staffList.getY();

        int roundDegree = 4;
        int headerHeight = 14;
        float width = Math.max(nameWidth + 40, 100);
        int padding = 5;
        int offset = 10;

        int headerColor = new Color(20, 20, 20, 255).getRGB();
        int backgroundColor = new Color(30, 30, 30, 255).getRGB();

        int firstColor = ColorUtil.getColorStyle(0);
        int secondColor = ColorUtil.getColorStyle(90);
        float height = activeStaff * offset;

        this.hDynam = AnimationMath.fast(this.hDynam, height, 10);
        this.widthDynamic = AnimationMath.fast(this.widthDynamic, width, 10);
        RenderUtil.Render2D.drawShadow(posX, posY, widthDynamic, headerHeight + hDynam + padding / 2f, 10, firstColor, secondColor, ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270));

        RenderUtil.Render2D.drawGradientRound(posX, posY, widthDynamic, hDynam + headerHeight + 2.5f, roundDegree - 1, firstColor, secondColor, ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270));

       // RenderUtil.Render2D.drawRoundedCorner(posX, posY, widthDynamic, headerHeight, new Vector4f(roundDegree, 0, roundDegree, 0), headerColor);
        Fonts.celestial[15].drawCenteredString(matrixStack, ClientUtil.gradient("Staff List", ColorUtil.rgba(255, 255, 255, 255), ColorUtil.rgba(255, 255, 255, 255)), posX + widthDynamic / 2f, posY + 5.5f, -1);

        RenderUtil.Render2D.drawRoundedCorner(posX, posY + headerHeight, widthDynamic, hDynam + padding / 2f, new Vector4f(0, roundDegree, 0, roundDegree), backgroundColor);

        int index = 0;

        SmartScissor.push();
        SmartScissor.setFromComponentCoordinates(posX, posY, widthDynamic, headerHeight + hDynam + padding / 2f);
        if (!staffPlayers.isEmpty()) {
            for (StaffPlayer staff : staffPlayers) {
                String name = staff.getName();
                ITextComponent prefix = staff.getPrefix();
                String status;
                status = staff.getStatus().getString();

                Fonts.celestial[12].drawString(matrixStack, prefix, posX + padding, posY + headerHeight + padding + (index * offset), -1);
                Fonts.celestial[12].drawString(matrixStack, name + status, posX + padding + Fonts.celestial[12].getWidth(prefix.getString()), posY + headerHeight + padding + (index * offset), -1);
                nameWidth = Fonts.celestial[12].getWidth(prefix.getString() + name + status);
                index++;
            }
        } else {
            nameWidth = 0;
        }
        SmartScissor.unset();
        SmartScissor.pop();

        activeStaff = index;
        staffList.setWidth(widthDynamic);
        staffList.setHeight(hDynam + headerHeight);
    }

    private String repairString(String input) {
        StringBuilder sb = new StringBuilder(input.length());
        for (char c : input.toCharArray()) {
            if (c >= 65281 && c <= 65374) {
                sb.append((char) (c - 65248));
            } else {
                sb.append(c);
            }
        }
        return sb.toString();
    }

    private class StaffPlayer {

        [USER=270918]@Getter[/USER]
        String name;
        [USER=270918]@Getter[/USER]
        ITextComponent prefix;
        [USER=270918]@Getter[/USER]
        Status status;

        private StaffPlayer(String name, ITextComponent prefix) {
            this.name = name;
            this.prefix = prefix;

            updateStatus();
        }

        private void updateStatus() {
            for (AbstractClientPlayerEntity player : mc.world.getPlayers()) {
                if (player.getNameClear().equals(name)) {
                    status = NEAR;
                    return;
                }
            }

            for (NetworkPlayerInfo info : mc.getConnection().getPlayerInfoMap()) {
                if (info.getGameProfile().getName().equals(name)) {
                    if (info.getGameType() == GameType.SPECTATOR) {
                        status = SPEC;
                        return;
                    }

                    status = NONE;
                    return;
                }
            }

            status = VANISHED;
        }
    }

    public enum Status {
        NONE(""),
        NEAR(" §e[Near]"),
        SPEC(" §c[Spec]"),
        VANISHED(" §6[Vanish]");

        [USER=270918]@Getter[/USER]
        final String string;

        Status(String string) {
            this.string = string;
        }
    }

    public Dragging events = Initilization.createDrag(this, "events", 213.0f, 8.0f + 100);


    private void onInformationRender(final MatrixStack stack, final EventRender renderEvent) {
        float y = renderEvent.scaledResolution.scaledHeight() - Fonts.celestial[15].getFontHeight() - (mc.currentScreen instanceof ChatScreen ? 8 * mc.gameSettings.guiScale : 0);
        String pos = (int) mc.player.getPosX() + ", " + (int) mc.player.getPosY() + ", " + (int) mc.player.getPosZ();

        Fonts.celestial[15].drawString(stack, ClientUtil.gradient("Coords: ", ColorUtil.getColorStyle(0), ColorUtil.getColorStyle(150)), 4, y, -1);
        Fonts.celestial[15].drawString(stack, pos, 4 + Fonts.celestial[15].getWidth("Coords: "), y, new Color(230, 230, 230).getRGB());
    }


    private void onArmorRender(final EventRender renderEvent) {
        int count = 0;
        for (int i = 0; i < mc.player.inventory.getSizeInventory(); i++) {
            ItemStack s = mc.player.inventory.getStackInSlot(i);
            if (s.getItem() == Items.TOTEM_OF_UNDYING) {
                count++;
            }
        }
        float xPos = renderEvent.scaledResolution.scaledWidth() / 2f;
        float yPos = renderEvent.scaledResolution.scaledHeight();

        boolean totemInInv = mc.player.inventory.mainInventory.stream().map(ItemStack::getItem).toList().contains(Items.TOTEM_OF_UNDYING);
        int off = totemInInv ? +5 : 0;
        if (mc.player.isCreative()) {
            yPos += 17;
        }

        for (ItemStack s : mc.player.inventory.armorInventory) {
            off += 15;
        }
        if (totemInInv);



    }

    public Dragging potionStatus = Initilization.createDrag(this, "PotionStatus", 200, 50);
    private float hDynamic = 0;
    private int activePotions = 0;

    private void onPotionElementsRender(final MatrixStack matrixStack, final EventRender renderEvent) {
        float posX = potionStatus.getX();
        float posY = potionStatus.getY();

        int roundDegree = 4;
        int headerHeight = 14;
        int width = 100;
        int padding = 5;
        int offset = 10;

        int headerColor = new Color(20, 20, 20, 255).getRGB();
        int backgroundColor = new Color(30, 30, 30, 255).getRGB();

        int firstColor = ColorUtil.getColorStyle(0);
        int secondColor = ColorUtil.getColorStyle(90);

        float height = activePotions * offset;

        this.hDynamic = AnimationMath.fast(this.hDynamic, height, 10);

        RenderUtil.Render2D.drawShadow(posX, posY, width, headerHeight + hDynamic + padding / 2f, 10, firstColor, secondColor, ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270));

        RenderUtil.Render2D.drawGradientRound(posX, posY, width, hDynamic + headerHeight + 2.5f, roundDegree - 1, firstColor, secondColor, ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270));

        Fonts.celestial[15].drawCenteredString(matrixStack, ClientUtil.gradient("Potions", ColorUtil.rgba(255, 255, 255, 255), ColorUtil.rgba(255, 255, 255, 255)), potionStatus.getX() + width / 2f, posY + 5.5f, firstColor);

        RenderUtil.Render2D.drawRoundedCorner(posX, posY + headerHeight, width, hDynamic + padding / 2f, new Vector4f(0, roundDegree, 0, roundDegree), backgroundColor);
        SmartScissor.push();
        SmartScissor.setFromComponentCoordinates(posX, posY, width, headerHeight + hDynamic + padding / 2f);
        int index = 0;

        for (EffectInstance p : mc.player.getActivePotionEffects()) {
            if (p.isShowIcon()) {

                String durationText = EffectUtils.getPotionDurationString(p, 1);
                float durationWidth = Fonts.celestial[12].getWidth(durationText);

                Fonts.celestial[12].drawString(matrixStack, I18n.format(p.getEffectName()), posX + padding, posY + headerHeight + padding + (index * offset), -1);
                Fonts.celestial[12].drawString(matrixStack, durationText, posX + width - durationWidth - padding, posY + headerHeight + padding + (index * offset), -1);

                index++;
            }
        }
        SmartScissor.unset();
        SmartScissor.pop();
        activePotions = index;

        potionStatus.setWidth(width);
        potionStatus.setHeight(activePotions * offset + headerHeight);
    }

    private void onTitleRender(final MatrixStack stack) {
        UserProfile profile = Managment.USER_PROFILE;

        StringBuilder titleText = new StringBuilder();
        int counter = 0;


        titleText.append("star");
        counter++;

        if (watermarkElement.get(0)) {
            if (counter > 0) {
                titleText.append(TextFormatting.GRAY + " | " + TextFormatting.WHITE);
            }
            titleText.append(profile.getName());
            counter++;
        }
        if (watermarkElement.get(1)) {
            if (counter > 0) {
                titleText.append(TextFormatting.GRAY + " | " + TextFormatting.WHITE);
            }
            titleText.append(mc.debugFPS + "fps");
            counter++;
        }
        if (watermarkElement.get(2)) {
            if (counter > 0) {
                titleText.append(TextFormatting.GRAY + " | " + TextFormatting.WHITE);
            }
            titleText.append(HudUtil.calculatePing() + "ms");
        }


        final float x = 5, y = 5, titleWidth = Fonts.gilroyBold[12].getWidth(titleText.toString()) + 6, titleHeight = 12;


        int firstColor = ColorUtil.getColorStyle(0);
        int secondColor = ColorUtil.getColorStyle(90);


        RenderUtil.Render2D.drawShadow(x, y, titleWidth, titleHeight, 10, firstColor, secondColor, ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270));

        RenderUtil.Render2D.drawGradientRound(x, y, titleWidth, titleHeight, 3, firstColor, secondColor, ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270));


        RenderUtil.Render2D.drawRoundedRect(x, y, titleWidth, titleHeight, 2.5f, ColorUtil.rgba(21, 21, 21, 200));

        Fonts.gilroyBold[12].drawString(stack, titleText.toString(), x + 3, y + Fonts.gilroyBold[12].getFontHeight() / 2f + 1, -1);
    }

    List<Function> sortedFunctions = new ArrayList<>();
    TimerUtil delay = new TimerUtil();


    private void renderArrayList(MatrixStack stack) {
        float x = 5;
        float y = 25;
        float height = 10;
        float yOffset = 0;

        final StyledFont font = Fonts.celestial[fontSize.getValue().intValue()];
        StyleManager styleManager = Managment.STYLE_MANAGER;

        if (delay.hasTimeElapsed(10000)) {
            sortedFunctions = HudUtil.getSorted(font);
            delay.reset();
        }

        float gradientForce = 1;
        int fontOffset = (fontSize.getValue().intValue() > 14 ? -14 + fontSize.getValue().intValue()
                - (fontSize.getValue().intValue() > 14 ? 1 : 0) : 0);
        int firstColor;
        int secondColor;

        if (glow.get()) {
            for (Function function : sortedFunctions) {
                if ((limitations.get(0) && function.category == Type.Render) || (limitations.get(1) && function.bind == 0)) {
                    continue;
                }

                function.animation = AnimationMath.lerp(function.animation, function.state ? 1 : 0, 15);

                if (function.animation >= 0.01) {
                    float width = font.getWidth(function.name) + 5;
                    firstColor = styleManager.getCurrentStyle()
                            .getColor((int) ((yOffset + height * function.animation) * gradientForce));
                    secondColor = styleManager.getCurrentStyle()
                            .getColor((int) (yOffset * gradientForce));

                    RenderSystem.pushMatrix();
                    RenderSystem.translatef(x + width / 2F, y + yOffset, 0);
                    RenderSystem.scalef(1, function.animation, 1);
                    RenderSystem.translatef(-(x + width / 2F), -(y + yOffset), 0);
                    RenderUtil.Render2D.drawShadow(x, y + yOffset, width, height, 10, firstColor, secondColor);
                    RenderSystem.popMatrix();

                    yOffset += height * function.animation;
                }
            }
            yOffset = 0;
        }
        for (Function function : sortedFunctions) {
            if ((limitations.get(0) && function.category == Type.Render) || (limitations.get(1) && function.bind == 0)) {
                continue;
            }

            function.animation = AnimationMath.lerp(function.animation, function.state ? 1 : 0, 15);

            if (function.animation >= 0.01) {
                float width = font.getWidth(function.name) + 5;
                secondColor = styleManager.getCurrentStyle()
                        .getColor((int) (yOffset * gradientForce));

                RenderSystem.pushMatrix();
                RenderSystem.translatef(x + width / 2F, y + yOffset, 0);
                RenderSystem.scalef(1, function.animation, 1);
                RenderSystem.translatef(-(x + width / 2F), -(y + yOffset), 0);
                RenderUtil.Render2D.drawRect(x, y + yOffset, width, height, ColorUtil.rgba(21, 21, 21, 255));
                font.drawString(stack, function.name, x + 3,
                        y + yOffset + font.getFontHeight() / 2f - fontOffset - 1, secondColor);
                RenderSystem.popMatrix();

                yOffset += height * function.animation;
            }
        }


        yOffset = 0;
        for (Function function : sortedFunctions) {
            if ((limitations.get(0) && function.category == Type.Render) || (limitations.get(1) && function.bind == 0)) {
                continue;
            }
            function.animation = AnimationMath.lerp(function.animation, function.state ? 1 : 0, 15);
            if (function.animation >= 0.01) {
                float width = font.getWidth(function.name) + 4;
                firstColor = styleManager.getCurrentStyle()
                        .getColor((int) ((yOffset + height * function.animation) * gradientForce));
                secondColor = styleManager.getCurrentStyle()
                        .getColor((int) (yOffset * gradientForce));

                RenderSystem.pushMatrix();
                RenderSystem.translatef(x + width / 2F, y + yOffset, 0);
                RenderSystem.scalef(1, function.animation, 1);
                RenderSystem.translatef(-(x + width / 2F), -(y + yOffset), 0);
                RenderUtil.Render2D.drawShadow(x, y + yOffset, 1, height, 8, firstColor, secondColor);
                RenderUtil.Render2D.drawVertical(x, y + yOffset, 1, height, firstColor, secondColor);
                RenderSystem.popMatrix();

                yOffset += height * function.animation;
            }
        }
    }


    float health = 0;
    public final Dragging targetHUD = Initilization.createDrag(this, "TargetHUD", 500, 50);
    private final Animation targetHudAnimation = new EaseBackIn(200, 1, 1.5f);
    private PlayerEntity target = null;
    private double scale = 0.0D;
    float healthplus = 5;

    private void onRenderTargetHUD(final MatrixStack stack) {
        this.target = getTarget(this.target);
        this.targetHudAnimation.setDuration(300);
        this.scale = targetHudAnimation.getOutput();

        if (scale == 0.0F) {
            target = null;
        }

        if (target == null) {
            return;
        }

        final String targetName = this.target.getName().getString();

        String substring = targetName.substring(0, Math.min(targetName.length(), 10));
        final float nameWidth = Fonts.gilroyBold[18].getWidth(substring);
        final float xPosition = this.targetHUD.getX();
        final float yPosition = this.targetHUD.getY();
        final float maxWidth = Math.max(nameWidth + 45, 114);
        final float maxHeight = 30;

        // Обновление значения здоровья с анимацией
        this.health = AnimationMath.fast(health, target.getHealth() / target.getMaxHealth(), 5);
        this.health = MathHelper.clamp(this.health, 0, 1);
        this.healthplus = AnimationMath.fast(healthplus, target.getAbsorptionAmount() / target.getMaxHealth(), 5);
        this.healthplus = MathHelper.clamp(this.healthplus, 0, 1);

        GlStateManager.pushMatrix();
        AnimationMath.sizeAnimation(xPosition + (maxWidth / 2), yPosition + (maxHeight / 2), scale);

        Vector2i colorVec = new Vector2i(ColorUtil.getColorStyle(0), ColorUtil.getColorStyle(90));

        RenderUtil.Render2D.drawShadow(xPosition, yPosition, maxWidth, maxHeight + 10, 10, colorVec.x, colorVec.y, ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270));
        RenderUtil.Render2D.drawGradientRound(xPosition, yPosition, maxWidth , maxHeight + 10, 7.5f, ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270), ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270));
        //RenderUtil.Render2D.drawGradientRound(xPosition, yPosition, maxWidth, maxHeight + 10, 5, colorVec.x, colorVec.y, ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270));

        RenderUtil.Render2D.drawRoundedRect(xPosition, yPosition, maxWidth , maxHeight + 10, 7.5f, rgba(10, 15, 14, 255));
        RenderUtil.Render2D.drawRoundedRect(xPosition + 42, yPosition + 25, 64 , 9, 3f, rgba(21, 21, 21, 255));
        RenderUtil.Render2D.drawShadow(xPosition + 42, yPosition + 26, 64 * health, 7, 10, colorVec.x, colorVec.y, ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270));
        RenderUtil.Render2D.drawGradientRound(xPosition + 42, yPosition + 26, 64 * health, 7, 3, colorVec.x, colorVec.y, ColorUtil.getColorStyle(180), ColorUtil.getColorStyle(270));
        RenderUtil.Render2D.drawGradientRound(xPosition + 42, yPosition + 26, 40 * healthplus, 7, 3, rgba(255, 102, 0, 255), rgba(255, 255, 0, 255), rgba(255, 102, 0, 255), rgba(255, 255, 0, 255));


        RenderUtil.Render2D.drawRoundedRect(xPosition + 4, yPosition + 4, 32, 32, 6, Color.BLACK.getRGB());
        IMinecraft.mc.getTextureManager().bindTexture(((AbstractClientPlayerEntity) target).getLocationSkin());
        AbstractGui.drawScaledCustomSizeModalRect(xPosition + 4, yPosition + 4, 8F, 8F, 8F, 8F, 32, 32, 64F, 64F);





        Fonts.interhui[18].drawString(stack, substring, xPosition + 42, yPosition + 7, -1);

        String healthValue = (int) MathUtil.round(this.health * 20 + target.getAbsorptionAmount(), 0.5f) + ".00 HP";
        Fonts.interhui[12].drawCenteredString(stack, healthValue, xPosition + maxWidth - 58, yPosition + maxHeight / 1.5 - 2.2f, ColorUtil.rgba(255, 255, 255, 255));
        GlStateManager.popMatrix();
        this.targetHUD.setWidth(maxWidth);
        this.targetHUD.setHeight(maxHeight);
    }

    private void drawItemStack(float x, float y, float offset) {
        List<ItemStack> stackList = new ArrayList<>(Arrays.asList(target.getHeldItemMainhand(), target.getHeldItemOffhand()));
        stackList.addAll((Collection<? extends ItemStack>) target.getArmorInventoryList());

        final AtomicReference<Float> posX = new AtomicReference<>(x);

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


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

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

        return target;
    }
}
Потом зайдите по пути assets/minecraft/expensive/font
и киньте шрифт туда
потом заходим в Intellij Idea и заходим по пути
ru.shield.util.font.Fonts
и вставляем ето
14 строчка:
    public static volatile StyledFont[] celestial = new StyledFont[24];
44 строчка:
   for (int i = 8; i < 24;i++) {
            celestial[i] = new StyledFont("montserrat.ttf", i, 0.0f, 0.0f, 0.0f, true, Lang.ENG_RU);
        }
Туски и не хейть я только начинаю учить джаву:roflanPominki:
celka pena pon xd
 
Начинающий
Статус
Оффлайн
Регистрация
28 Мар 2023
Сообщения
37
Реакции[?]
0
Поинты[?]
1K
Тупой идиот живешь в этом км за чет сайлеса а так ты не кто, и то то что типо там мое лицо там фотошоп ебаный там видны обрезы, а пофатку ты толсый нмощьный школьник Посмотреть вложение 271104 ты просто
Пожалуйста, авторизуйтесь для просмотра ссылки.
настолько немощный бодже( да да ошибок много но мне похуй
Тупой идиот живешь в этом км за чет сайлеса а так ты не кто, и то то что типо там мое лицо там фотошоп ебаный там видны обрезы, а пофатку ты толсый нмощьный школьник Посмотреть вложение 271104 ты просто настолько немощный бодже( да да ошибок много но мне похуй
Пожалуйста, авторизуйтесь для просмотра ссылки.

а про твое лицо, угар, там где ты мне сигну делаешь твой ДС видно хахаха

Пожалуйста, авторизуйтесь для просмотра ссылки.
делает мне сигну что бы его не y61л1
 

Вложения

Последнее редактирование:
Сверху Снизу