Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Визуальная часть NedoSkid Nursultan / watermark / evaware v3

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
15 Ноя 2025
Сообщения
47
Реакции
0
Выберите загрузчик игры
  1. Fabric
1774511978002.png

говно:
Expand Collapse Copy
package sweetie.evaware.client.ui.widget.overlay;
//артем хочет дилдо
import net.minecraft.client.network.PlayerListEntry;
import net.minecraft.client.util.math.MatrixStack;
import sweetie.evaware.api.system.backend.ClientInfo;
import sweetie.evaware.api.utils.math.MathUtil;
import sweetie.evaware.api.utils.color.UIColors;
import sweetie.evaware.api.utils.render.RenderUtil;
import sweetie.evaware.api.utils.render.fonts.Font;
import sweetie.evaware.client.ui.widget.Widget;

import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;

public class WatermarkWidget extends Widget {
    private static final DateTimeFormatter TIME_FORMATTER = DateTimeFormatter.ofPattern("HH:mm:ss");

    @Override
    public String getName() {
        return "Watermark";
    }

    public WatermarkWidget() {
        super(3f, 3f);
    }

    @Override
    public void render(MatrixStack matrixStack) {
        float x = getDraggable().getX();
        float y = getDraggable().getY();

        float rowHeight = scaled(14.5f);
        float betweenRows = scaled(2f);
        float radius = scaled(3.5f);
        float totalHeight = rowHeight * 2f + betweenRows;
        boolean right = x > mc.getWindow().getScaledWidth() / 2f;

        List<String> topRow = new ArrayList<>();
        topRow.add(getClientName() + getClientVersion());
        topRow.add(getFps() + " FPS");
        topRow.add(LocalTime.now().format(TIME_FORMATTER));

        List<String> bottomRow = new ArrayList<>();
        bottomRow.add(getCoords());
        bottomRow.add(getPing() + " MS");
        bottomRow.add(String.format("%.1f", getBps()) + " BPS");

        float topWidth = calcRowWidth(topRow, rowHeight);
        float bottomWidth = calcRowWidth(bottomRow, rowHeight);
        float maxWidth = Math.max(topWidth, bottomWidth);

        float topY = y;
        float bottomY = y + rowHeight + betweenRows;

        float topX = right ? x + maxWidth - topWidth : x;
        float bottomX = right ? x + maxWidth - bottomWidth : x;

        drawRow(matrixStack, topRow, topX, topY, rowHeight, radius);
        drawRow(matrixStack, bottomRow, bottomX, bottomY, rowHeight, radius);

        getDraggable().setWidth(maxWidth);
        getDraggable().setHeight(totalHeight);
    }

    private void drawRow(MatrixStack matrixStack, List<String> segments, float x, float y, float rowHeight, float radius) {
        float currentX = x;
        for (String segment : segments) {
            boolean watermark = segment.startsWith(ClientInfo.NAME);
            Font font = watermark ? getSemiBoldFont() : getMediumFont();
            float fontSize = scaled(7f);
            float contentWidth = font.getWidth(segment, fontSize);
            float paddingX = scaled(5f);
            float segWidth = contentWidth + paddingX * 2f;

            RenderUtil.BLUR_RECT.draw(matrixStack, currentX, y, segWidth, rowHeight, radius, UIColors.widgetBlur());

            float textY = y + rowHeight / 2f - fontSize / 2f;
            float textX = currentX + paddingX;

            if (watermark) {
                String name = getClientName();
                String version = getClientVersion();
                float nameWidth = font.getWidth(name, fontSize);
                font.drawGradientText(matrixStack, name, textX, textY, fontSize, UIColors.primary(), UIColors.secondary(), nameWidth / 4f);
                font.drawText(matrixStack, version, textX + nameWidth, textY, fontSize, UIColors.inactiveTextColor());
            } else {
                font.drawText(matrixStack, segment, textX, textY, fontSize, UIColors.textColor());
            }
            currentX += segWidth + scaled(2f);
        }
    }

    private float calcRowWidth(List<String> segments, float rowHeight) {
        float width = 0f;
        float fontSize = scaled(7f);
        for (int i = 0; i < segments.size(); i++) {
            String segment = segments.get(i);
            Font font = segment.startsWith(ClientInfo.NAME) ? getSemiBoldFont() : getMediumFont();
            width += font.getWidth(segment, fontSize) + scaled(10f);
            if (i < segments.size() - 1) width += scaled(2f);
        }
        return Math.max(width, rowHeight * 2f);
    }

    private String getClientVersion() {
        return " " + ClientInfo.VERSION;
    }

    private String getClientName() {
        return ClientInfo.NAME;
    }

    private int getFps() {
        return mc.getCurrentFps();
    }

    private String getCoords() {
        if (mc.player == null) return "0, 0, 0";
        return (int) mc.player.getX() + ", " + (int) mc.player.getY() + ", " + (int) mc.player.getZ();
    }

    private int getPing() {
        if (mc.player == null || mc.getNetworkHandler() == null) return 0;
        PlayerListEntry entry = mc.getNetworkHandler().getPlayerListEntry(mc.player.getUuid());
        return entry != null ? entry.getLatency() : 0;
    }

    private double getBps() {
        if (mc.player == null) return 0;
        return MathUtil.getEntityBPS(mc.player);
    }
}
ss
я знаю что пиздец убого но как по мне вроде норм, иконок добавить и все какбудто .
можете меня срать разрешаю :)
 
Посмотреть вложение 331404
говно:
Expand Collapse Copy
package sweetie.evaware.client.ui.widget.overlay;
//артем хочет дилдо
import net.minecraft.client.network.PlayerListEntry;
import net.minecraft.client.util.math.MatrixStack;
import sweetie.evaware.api.system.backend.ClientInfo;
import sweetie.evaware.api.utils.math.MathUtil;
import sweetie.evaware.api.utils.color.UIColors;
import sweetie.evaware.api.utils.render.RenderUtil;
import sweetie.evaware.api.utils.render.fonts.Font;
import sweetie.evaware.client.ui.widget.Widget;

import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;

public class WatermarkWidget extends Widget {
    private static final DateTimeFormatter TIME_FORMATTER = DateTimeFormatter.ofPattern("HH:mm:ss");

    @Override
    public String getName() {
        return "Watermark";
    }

    public WatermarkWidget() {
        super(3f, 3f);
    }

    @Override
    public void render(MatrixStack matrixStack) {
        float x = getDraggable().getX();
        float y = getDraggable().getY();

        float rowHeight = scaled(14.5f);
        float betweenRows = scaled(2f);
        float radius = scaled(3.5f);
        float totalHeight = rowHeight * 2f + betweenRows;
        boolean right = x > mc.getWindow().getScaledWidth() / 2f;

        List<String> topRow = new ArrayList<>();
        topRow.add(getClientName() + getClientVersion());
        topRow.add(getFps() + " FPS");
        topRow.add(LocalTime.now().format(TIME_FORMATTER));

        List<String> bottomRow = new ArrayList<>();
        bottomRow.add(getCoords());
        bottomRow.add(getPing() + " MS");
        bottomRow.add(String.format("%.1f", getBps()) + " BPS");

        float topWidth = calcRowWidth(topRow, rowHeight);
        float bottomWidth = calcRowWidth(bottomRow, rowHeight);
        float maxWidth = Math.max(topWidth, bottomWidth);

        float topY = y;
        float bottomY = y + rowHeight + betweenRows;

        float topX = right ? x + maxWidth - topWidth : x;
        float bottomX = right ? x + maxWidth - bottomWidth : x;

        drawRow(matrixStack, topRow, topX, topY, rowHeight, radius);
        drawRow(matrixStack, bottomRow, bottomX, bottomY, rowHeight, radius);

        getDraggable().setWidth(maxWidth);
        getDraggable().setHeight(totalHeight);
    }

    private void drawRow(MatrixStack matrixStack, List<String> segments, float x, float y, float rowHeight, float radius) {
        float currentX = x;
        for (String segment : segments) {
            boolean watermark = segment.startsWith(ClientInfo.NAME);
            Font font = watermark ? getSemiBoldFont() : getMediumFont();
            float fontSize = scaled(7f);
            float contentWidth = font.getWidth(segment, fontSize);
            float paddingX = scaled(5f);
            float segWidth = contentWidth + paddingX * 2f;

            RenderUtil.BLUR_RECT.draw(matrixStack, currentX, y, segWidth, rowHeight, radius, UIColors.widgetBlur());

            float textY = y + rowHeight / 2f - fontSize / 2f;
            float textX = currentX + paddingX;

            if (watermark) {
                String name = getClientName();
                String version = getClientVersion();
                float nameWidth = font.getWidth(name, fontSize);
                font.drawGradientText(matrixStack, name, textX, textY, fontSize, UIColors.primary(), UIColors.secondary(), nameWidth / 4f);
                font.drawText(matrixStack, version, textX + nameWidth, textY, fontSize, UIColors.inactiveTextColor());
            } else {
                font.drawText(matrixStack, segment, textX, textY, fontSize, UIColors.textColor());
            }
            currentX += segWidth + scaled(2f);
        }
    }

    private float calcRowWidth(List<String> segments, float rowHeight) {
        float width = 0f;
        float fontSize = scaled(7f);
        for (int i = 0; i < segments.size(); i++) {
            String segment = segments.get(i);
            Font font = segment.startsWith(ClientInfo.NAME) ? getSemiBoldFont() : getMediumFont();
            width += font.getWidth(segment, fontSize) + scaled(10f);
            if (i < segments.size() - 1) width += scaled(2f);
        }
        return Math.max(width, rowHeight * 2f);
    }

    private String getClientVersion() {
        return " " + ClientInfo.VERSION;
    }

    private String getClientName() {
        return ClientInfo.NAME;
    }

    private int getFps() {
        return mc.getCurrentFps();
    }

    private String getCoords() {
        if (mc.player == null) return "0, 0, 0";
        return (int) mc.player.getX() + ", " + (int) mc.player.getY() + ", " + (int) mc.player.getZ();
    }

    private int getPing() {
        if (mc.player == null || mc.getNetworkHandler() == null) return 0;
        PlayerListEntry entry = mc.getNetworkHandler().getPlayerListEntry(mc.player.getUuid());
        return entry != null ? entry.getLatency() : 0;
    }

    private double getBps() {
        if (mc.player == null) return 0;
        return MathUtil.getEntityBPS(mc.player);
    }
}
ss
я знаю что пиздец убого но как по мне вроде норм, иконок добавить и все какбудто .
можете меня срать разрешаю :)
блять чел, а че ты изменил кроме того как чисто вырезал голову и расставил иконки? /del
 
Посмотреть вложение 331404
говно:
Expand Collapse Copy
package sweetie.evaware.client.ui.widget.overlay;
//артем хочет дилдо
import net.minecraft.client.network.PlayerListEntry;
import net.minecraft.client.util.math.MatrixStack;
import sweetie.evaware.api.system.backend.ClientInfo;
import sweetie.evaware.api.utils.math.MathUtil;
import sweetie.evaware.api.utils.color.UIColors;
import sweetie.evaware.api.utils.render.RenderUtil;
import sweetie.evaware.api.utils.render.fonts.Font;
import sweetie.evaware.client.ui.widget.Widget;

import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;

public class WatermarkWidget extends Widget {
    private static final DateTimeFormatter TIME_FORMATTER = DateTimeFormatter.ofPattern("HH:mm:ss");

    @Override
    public String getName() {
        return "Watermark";
    }

    public WatermarkWidget() {
        super(3f, 3f);
    }

    @Override
    public void render(MatrixStack matrixStack) {
        float x = getDraggable().getX();
        float y = getDraggable().getY();

        float rowHeight = scaled(14.5f);
        float betweenRows = scaled(2f);
        float radius = scaled(3.5f);
        float totalHeight = rowHeight * 2f + betweenRows;
        boolean right = x > mc.getWindow().getScaledWidth() / 2f;

        List<String> topRow = new ArrayList<>();
        topRow.add(getClientName() + getClientVersion());
        topRow.add(getFps() + " FPS");
        topRow.add(LocalTime.now().format(TIME_FORMATTER));

        List<String> bottomRow = new ArrayList<>();
        bottomRow.add(getCoords());
        bottomRow.add(getPing() + " MS");
        bottomRow.add(String.format("%.1f", getBps()) + " BPS");

        float topWidth = calcRowWidth(topRow, rowHeight);
        float bottomWidth = calcRowWidth(bottomRow, rowHeight);
        float maxWidth = Math.max(topWidth, bottomWidth);

        float topY = y;
        float bottomY = y + rowHeight + betweenRows;

        float topX = right ? x + maxWidth - topWidth : x;
        float bottomX = right ? x + maxWidth - bottomWidth : x;

        drawRow(matrixStack, topRow, topX, topY, rowHeight, radius);
        drawRow(matrixStack, bottomRow, bottomX, bottomY, rowHeight, radius);

        getDraggable().setWidth(maxWidth);
        getDraggable().setHeight(totalHeight);
    }

    private void drawRow(MatrixStack matrixStack, List<String> segments, float x, float y, float rowHeight, float radius) {
        float currentX = x;
        for (String segment : segments) {
            boolean watermark = segment.startsWith(ClientInfo.NAME);
            Font font = watermark ? getSemiBoldFont() : getMediumFont();
            float fontSize = scaled(7f);
            float contentWidth = font.getWidth(segment, fontSize);
            float paddingX = scaled(5f);
            float segWidth = contentWidth + paddingX * 2f;

            RenderUtil.BLUR_RECT.draw(matrixStack, currentX, y, segWidth, rowHeight, radius, UIColors.widgetBlur());

            float textY = y + rowHeight / 2f - fontSize / 2f;
            float textX = currentX + paddingX;

            if (watermark) {
                String name = getClientName();
                String version = getClientVersion();
                float nameWidth = font.getWidth(name, fontSize);
                font.drawGradientText(matrixStack, name, textX, textY, fontSize, UIColors.primary(), UIColors.secondary(), nameWidth / 4f);
                font.drawText(matrixStack, version, textX + nameWidth, textY, fontSize, UIColors.inactiveTextColor());
            } else {
                font.drawText(matrixStack, segment, textX, textY, fontSize, UIColors.textColor());
            }
            currentX += segWidth + scaled(2f);
        }
    }

    private float calcRowWidth(List<String> segments, float rowHeight) {
        float width = 0f;
        float fontSize = scaled(7f);
        for (int i = 0; i < segments.size(); i++) {
            String segment = segments.get(i);
            Font font = segment.startsWith(ClientInfo.NAME) ? getSemiBoldFont() : getMediumFont();
            width += font.getWidth(segment, fontSize) + scaled(10f);
            if (i < segments.size() - 1) width += scaled(2f);
        }
        return Math.max(width, rowHeight * 2f);
    }

    private String getClientVersion() {
        return " " + ClientInfo.VERSION;
    }

    private String getClientName() {
        return ClientInfo.NAME;
    }

    private int getFps() {
        return mc.getCurrentFps();
    }

    private String getCoords() {
        if (mc.player == null) return "0, 0, 0";
        return (int) mc.player.getX() + ", " + (int) mc.player.getY() + ", " + (int) mc.player.getZ();
    }

    private int getPing() {
        if (mc.player == null || mc.getNetworkHandler() == null) return 0;
        PlayerListEntry entry = mc.getNetworkHandler().getPlayerListEntry(mc.player.getUuid());
        return entry != null ? entry.getLatency() : 0;
    }

    private double getBps() {
        if (mc.player == null) return 0;
        return MathUtil.getEntityBPS(mc.player);
    }
}
ss
я знаю что пиздец убого но как по мне вроде норм, иконок добавить и все какбудто .
можете меня срать разрешаю :)
интересно ну 50 на 50 я закинул в нейронку и вот как она сделала
Gemini_Generated_Image_8ttz478ttz478ttz.png
 
Посмотреть вложение 331404
говно:
Expand Collapse Copy
package sweetie.evaware.client.ui.widget.overlay;
//артем хочет дилдо
import net.minecraft.client.network.PlayerListEntry;
import net.minecraft.client.util.math.MatrixStack;
import sweetie.evaware.api.system.backend.ClientInfo;
import sweetie.evaware.api.utils.math.MathUtil;
import sweetie.evaware.api.utils.color.UIColors;
import sweetie.evaware.api.utils.render.RenderUtil;
import sweetie.evaware.api.utils.render.fonts.Font;
import sweetie.evaware.client.ui.widget.Widget;

import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;

public class WatermarkWidget extends Widget {
    private static final DateTimeFormatter TIME_FORMATTER = DateTimeFormatter.ofPattern("HH:mm:ss");

    @Override
    public String getName() {
        return "Watermark";
    }

    public WatermarkWidget() {
        super(3f, 3f);
    }

    @Override
    public void render(MatrixStack matrixStack) {
        float x = getDraggable().getX();
        float y = getDraggable().getY();

        float rowHeight = scaled(14.5f);
        float betweenRows = scaled(2f);
        float radius = scaled(3.5f);
        float totalHeight = rowHeight * 2f + betweenRows;
        boolean right = x > mc.getWindow().getScaledWidth() / 2f;

        List<String> topRow = new ArrayList<>();
        topRow.add(getClientName() + getClientVersion());
        topRow.add(getFps() + " FPS");
        topRow.add(LocalTime.now().format(TIME_FORMATTER));

        List<String> bottomRow = new ArrayList<>();
        bottomRow.add(getCoords());
        bottomRow.add(getPing() + " MS");
        bottomRow.add(String.format("%.1f", getBps()) + " BPS");

        float topWidth = calcRowWidth(topRow, rowHeight);
        float bottomWidth = calcRowWidth(bottomRow, rowHeight);
        float maxWidth = Math.max(topWidth, bottomWidth);

        float topY = y;
        float bottomY = y + rowHeight + betweenRows;

        float topX = right ? x + maxWidth - topWidth : x;
        float bottomX = right ? x + maxWidth - bottomWidth : x;

        drawRow(matrixStack, topRow, topX, topY, rowHeight, radius);
        drawRow(matrixStack, bottomRow, bottomX, bottomY, rowHeight, radius);

        getDraggable().setWidth(maxWidth);
        getDraggable().setHeight(totalHeight);
    }

    private void drawRow(MatrixStack matrixStack, List<String> segments, float x, float y, float rowHeight, float radius) {
        float currentX = x;
        for (String segment : segments) {
            boolean watermark = segment.startsWith(ClientInfo.NAME);
            Font font = watermark ? getSemiBoldFont() : getMediumFont();
            float fontSize = scaled(7f);
            float contentWidth = font.getWidth(segment, fontSize);
            float paddingX = scaled(5f);
            float segWidth = contentWidth + paddingX * 2f;

            RenderUtil.BLUR_RECT.draw(matrixStack, currentX, y, segWidth, rowHeight, radius, UIColors.widgetBlur());

            float textY = y + rowHeight / 2f - fontSize / 2f;
            float textX = currentX + paddingX;

            if (watermark) {
                String name = getClientName();
                String version = getClientVersion();
                float nameWidth = font.getWidth(name, fontSize);
                font.drawGradientText(matrixStack, name, textX, textY, fontSize, UIColors.primary(), UIColors.secondary(), nameWidth / 4f);
                font.drawText(matrixStack, version, textX + nameWidth, textY, fontSize, UIColors.inactiveTextColor());
            } else {
                font.drawText(matrixStack, segment, textX, textY, fontSize, UIColors.textColor());
            }
            currentX += segWidth + scaled(2f);
        }
    }

    private float calcRowWidth(List<String> segments, float rowHeight) {
        float width = 0f;
        float fontSize = scaled(7f);
        for (int i = 0; i < segments.size(); i++) {
            String segment = segments.get(i);
            Font font = segment.startsWith(ClientInfo.NAME) ? getSemiBoldFont() : getMediumFont();
            width += font.getWidth(segment, fontSize) + scaled(10f);
            if (i < segments.size() - 1) width += scaled(2f);
        }
        return Math.max(width, rowHeight * 2f);
    }

    private String getClientVersion() {
        return " " + ClientInfo.VERSION;
    }

    private String getClientName() {
        return ClientInfo.NAME;
    }

    private int getFps() {
        return mc.getCurrentFps();
    }

    private String getCoords() {
        if (mc.player == null) return "0, 0, 0";
        return (int) mc.player.getX() + ", " + (int) mc.player.getY() + ", " + (int) mc.player.getZ();
    }

    private int getPing() {
        if (mc.player == null || mc.getNetworkHandler() == null) return 0;
        PlayerListEntry entry = mc.getNetworkHandler().getPlayerListEntry(mc.player.getUuid());
        return entry != null ? entry.getLatency() : 0;
    }

    private double getBps() {
        if (mc.player == null) return 0;
        return MathUtil.getEntityBPS(mc.player);
    }
}
ss
я знаю что пиздец убого но как по мне вроде норм, иконок добавить и все какбудто .
можете меня срать разрешаю :)
Где ник? Мог бы хотябы для приличия иконки поставить, а не попросить иишку и сразу же сюда слить
 
Посмотреть вложение 331404
говно:
Expand Collapse Copy
package sweetie.evaware.client.ui.widget.overlay;
//артем хочет дилдо
import net.minecraft.client.network.PlayerListEntry;
import net.minecraft.client.util.math.MatrixStack;
import sweetie.evaware.api.system.backend.ClientInfo;
import sweetie.evaware.api.utils.math.MathUtil;
import sweetie.evaware.api.utils.color.UIColors;
import sweetie.evaware.api.utils.render.RenderUtil;
import sweetie.evaware.api.utils.render.fonts.Font;
import sweetie.evaware.client.ui.widget.Widget;

import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;

public class WatermarkWidget extends Widget {
    private static final DateTimeFormatter TIME_FORMATTER = DateTimeFormatter.ofPattern("HH:mm:ss");

    @Override
    public String getName() {
        return "Watermark";
    }

    public WatermarkWidget() {
        super(3f, 3f);
    }

    @Override
    public void render(MatrixStack matrixStack) {
        float x = getDraggable().getX();
        float y = getDraggable().getY();

        float rowHeight = scaled(14.5f);
        float betweenRows = scaled(2f);
        float radius = scaled(3.5f);
        float totalHeight = rowHeight * 2f + betweenRows;
        boolean right = x > mc.getWindow().getScaledWidth() / 2f;

        List<String> topRow = new ArrayList<>();
        topRow.add(getClientName() + getClientVersion());
        topRow.add(getFps() + " FPS");
        topRow.add(LocalTime.now().format(TIME_FORMATTER));

        List<String> bottomRow = new ArrayList<>();
        bottomRow.add(getCoords());
        bottomRow.add(getPing() + " MS");
        bottomRow.add(String.format("%.1f", getBps()) + " BPS");

        float topWidth = calcRowWidth(topRow, rowHeight);
        float bottomWidth = calcRowWidth(bottomRow, rowHeight);
        float maxWidth = Math.max(topWidth, bottomWidth);

        float topY = y;
        float bottomY = y + rowHeight + betweenRows;

        float topX = right ? x + maxWidth - topWidth : x;
        float bottomX = right ? x + maxWidth - bottomWidth : x;

        drawRow(matrixStack, topRow, topX, topY, rowHeight, radius);
        drawRow(matrixStack, bottomRow, bottomX, bottomY, rowHeight, radius);

        getDraggable().setWidth(maxWidth);
        getDraggable().setHeight(totalHeight);
    }

    private void drawRow(MatrixStack matrixStack, List<String> segments, float x, float y, float rowHeight, float radius) {
        float currentX = x;
        for (String segment : segments) {
            boolean watermark = segment.startsWith(ClientInfo.NAME);
            Font font = watermark ? getSemiBoldFont() : getMediumFont();
            float fontSize = scaled(7f);
            float contentWidth = font.getWidth(segment, fontSize);
            float paddingX = scaled(5f);
            float segWidth = contentWidth + paddingX * 2f;

            RenderUtil.BLUR_RECT.draw(matrixStack, currentX, y, segWidth, rowHeight, radius, UIColors.widgetBlur());

            float textY = y + rowHeight / 2f - fontSize / 2f;
            float textX = currentX + paddingX;

            if (watermark) {
                String name = getClientName();
                String version = getClientVersion();
                float nameWidth = font.getWidth(name, fontSize);
                font.drawGradientText(matrixStack, name, textX, textY, fontSize, UIColors.primary(), UIColors.secondary(), nameWidth / 4f);
                font.drawText(matrixStack, version, textX + nameWidth, textY, fontSize, UIColors.inactiveTextColor());
            } else {
                font.drawText(matrixStack, segment, textX, textY, fontSize, UIColors.textColor());
            }
            currentX += segWidth + scaled(2f);
        }
    }

    private float calcRowWidth(List<String> segments, float rowHeight) {
        float width = 0f;
        float fontSize = scaled(7f);
        for (int i = 0; i < segments.size(); i++) {
            String segment = segments.get(i);
            Font font = segment.startsWith(ClientInfo.NAME) ? getSemiBoldFont() : getMediumFont();
            width += font.getWidth(segment, fontSize) + scaled(10f);
            if (i < segments.size() - 1) width += scaled(2f);
        }
        return Math.max(width, rowHeight * 2f);
    }

    private String getClientVersion() {
        return " " + ClientInfo.VERSION;
    }

    private String getClientName() {
        return ClientInfo.NAME;
    }

    private int getFps() {
        return mc.getCurrentFps();
    }

    private String getCoords() {
        if (mc.player == null) return "0, 0, 0";
        return (int) mc.player.getX() + ", " + (int) mc.player.getY() + ", " + (int) mc.player.getZ();
    }

    private int getPing() {
        if (mc.player == null || mc.getNetworkHandler() == null) return 0;
        PlayerListEntry entry = mc.getNetworkHandler().getPlayerListEntry(mc.player.getUuid());
        return entry != null ? entry.getLatency() : 0;
    }

    private double getBps() {
        if (mc.player == null) return 0;
        return MathUtil.getEntityBPS(mc.player);
    }
}
ss
я знаю что пиздец убого но как по мне вроде норм, иконок добавить и все какбудто .
можете меня срать разрешаю :)
Кароче я как пастер тебе говорю, удали инталку.
 
Назад
Сверху Снизу