Исходник Сливаю вам простой friend list (в стиле expensive ancient 3.1)

Забаненный
Статус
Оффлайн
Регистрация
2 Фев 2024
Сообщения
852
Реакции[?]
7
Поинты[?]
4K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.

Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:

  • бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
  • маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
  • приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
  • обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.

Спасибо!

код:
Код:
package hvh.cheat.ui.display.impl;

import com.mojang.blaze3d.matrix.MatrixStack;
import hvh.cheat.HvH;
import hvh.cheat.command.friends.FriendStorage;
import hvh.cheat.events.EventDisplay;
import hvh.cheat.events.EventUpdate;
import hvh.cheat.functions.impl.visual.HUD;
import hvh.cheat.ui.display.ElementRenderer;
import hvh.cheat.ui.display.ElementUpdater;
import hvh.cheat.utils.drag.Dragging;
import hvh.cheat.utils.math.Vector4i;
import hvh.cheat.utils.render.ColorUtils;
import hvh.cheat.utils.render.DisplayUtils;
import hvh.cheat.utils.render.font.Fonts;
import hvh.cheat.utils.text.GradientUtil;
import hvh.cheat.ui.styles.Style;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.RequiredArgsConstructor;
import lombok.experimental.FieldDefaults;
import net.minecraft.client.network.play.NetworkPlayerInfo;
import net.minecraft.util.math.vector.Vector4f;
import net.minecraft.util.text.ITextComponent;
import ru.hogoshi.Animation;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Locale;
import java.util.regex.Pattern;

@FieldDefaults(level = AccessLevel.PRIVATE)
@RequiredArgsConstructor
public class FriendListRenderer implements ElementRenderer, ElementUpdater {
    final Dragging dragging;

    private final List<Friend> friendPlayers = new ArrayList<>();
    private final Pattern namePattern = Pattern.compile("^\\w{3,16}$");

    @Override
    public void update(EventUpdate e) {
        friendPlayers.clear();

        for (String name : FriendStorage.getFriends()) {
            if (namePattern.matcher(name).matches() && !name.equals(mc.player.getName().getString())) {
                boolean isOnline = mc.getConnection().getPlayerInfoMap().stream()
                        .anyMatch(info -> info.getGameProfile().getName().equals(name));
                Friend friend = new Friend(name, isOnline ? Status.ONLINE : Status.OFFLINE);
                friendPlayers.add(friend);
            }
        }
    }

    float width;
    float height;

    @Override
    public void tick() {

    }

    @Override
    public void render(EventDisplay eventDisplay) {
        float posX = dragging.getX();
        float posY = dragging.getY();
        float padding = 5;
        float fontSize = 6.5f;
        MatrixStack ms = eventDisplay.getMatrixStack();
        ITextComponent name = GradientUtil.gradient("Friend List");

        Style style = HvH.getInstance().getStyleManager().getCurrentStyle();

        DisplayUtils.drawShadow(posX - 2, posY, 3, height, 7, ColorUtils.getColor(0));
        drawStyledRect(posX, posY, width, height, 4);
        Fonts.sfui.drawCenteredText(ms, name, posX + width / 2, posY + padding + 1f, fontSize);

        posY += fontSize + padding * 2;

        float maxWidth = Fonts.sfMedium.getWidth(name, fontSize) + padding * 2;
        float localHeight = fontSize + padding * 2;

        posY += 3.5f;
        for (FriendListRenderer.Friend f : friendPlayers) {
            String friendName = f.getName();
            float nameWidth = Fonts.sfMedium.getWidth(friendName, fontSize);

            float localWidth = nameWidth + Fonts.sfMedium.getWidth(f.getStatus().string, fontSize) + padding * 2;

            DisplayUtils.drawRoundedRect(posX, posY - 3, 2.5f, 13.5f, new Vector4f(0.0F, 0.0F, 0.0F, 0.0F), new Vector4i(HUD.getColor(0, 1.0F), HUD.getColor(0, 1.0F), HUD.getColor(90, 1.0F), HUD.getColor(90, 1.0F)));
            Fonts.sfMedium.drawText(ms, friendName, posX + padding, posY, ColorUtils.rgb(255, 255, 255), fontSize);
            Fonts.sfMedium.drawText(ms, f.getStatus().string, posX + width - padding - Fonts.sfMedium.getWidth(f.getStatus().string, fontSize), posY, f.getStatus().color, fontSize);

            if (localWidth > maxWidth) {
                maxWidth = localWidth;
            }

            posY += fontSize + padding;
            localHeight += fontSize + padding;
        }

        width = Math.max(maxWidth, 80);
        height = localHeight + 2.5f;
        dragging.setWidth(width);
        dragging.setHeight(height);
    }

    @AllArgsConstructor
    @Data
    public static class Friend {
        String name;
        Status status;

        public void updateStatus() {
            boolean isOnline = mc.getConnection().getPlayerInfoMap().stream()
                    .anyMatch(info -> info.getGameProfile().getName().equals(name));
            status = isOnline ? Status.ONLINE : Status.OFFLINE;
        }
    }

    public enum Status {
        ONLINE("Online", ColorUtils.rgb(0, 255, 0)),
        OFFLINE("Offline", ColorUtils.rgb(255, 0, 0));
        public final String string;
        public final int color;

        Status(String string, int color) {
            this.string = string;
            this.color = color;
        }
    }

    private void drawStyledRect(float x,
                                float y,
                                float width,
                                float height,
                                float radius) {

        DisplayUtils.drawRoundedRect(x, y, width, height, 0, ColorUtils.rgba(0, 0, 0, 255));
        DisplayUtils.drawRoundedRect(x, y, 2.5f, 18.8f, new Vector4f(0.0F, 0.0F, 0.0F, 0.0F), new Vector4i(HUD.getColor(0, 1.0F), HUD.getColor(0, 1.0F), HUD.getColor(90, 1.0F), HUD.getColor(90, 1.0F)));
    }
}
ss:
1720101291441.png
 
Начинающий
Статус
Оффлайн
Регистрация
3 Май 2024
Сообщения
182
Реакции[?]
0
Поинты[?]
0
код:
Код:
package hvh.cheat.ui.display.impl;

import com.mojang.blaze3d.matrix.MatrixStack;
import hvh.cheat.HvH;
import hvh.cheat.command.friends.FriendStorage;
import hvh.cheat.events.EventDisplay;
import hvh.cheat.events.EventUpdate;
import hvh.cheat.functions.impl.visual.HUD;
import hvh.cheat.ui.display.ElementRenderer;
import hvh.cheat.ui.display.ElementUpdater;
import hvh.cheat.utils.drag.Dragging;
import hvh.cheat.utils.math.Vector4i;
import hvh.cheat.utils.render.ColorUtils;
import hvh.cheat.utils.render.DisplayUtils;
import hvh.cheat.utils.render.font.Fonts;
import hvh.cheat.utils.text.GradientUtil;
import hvh.cheat.ui.styles.Style;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.RequiredArgsConstructor;
import lombok.experimental.FieldDefaults;
import net.minecraft.client.network.play.NetworkPlayerInfo;
import net.minecraft.util.math.vector.Vector4f;
import net.minecraft.util.text.ITextComponent;
import ru.hogoshi.Animation;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Locale;
import java.util.regex.Pattern;

@FieldDefaults(level = AccessLevel.PRIVATE)
@RequiredArgsConstructor
public class FriendListRenderer implements ElementRenderer, ElementUpdater {
    final Dragging dragging;

    private final List<Friend> friendPlayers = new ArrayList<>();
    private final Pattern namePattern = Pattern.compile("^\\w{3,16}$");

    @Override
    public void update(EventUpdate e) {
        friendPlayers.clear();

        for (String name : FriendStorage.getFriends()) {
            if (namePattern.matcher(name).matches() && !name.equals(mc.player.getName().getString())) {
                boolean isOnline = mc.getConnection().getPlayerInfoMap().stream()
                        .anyMatch(info -> info.getGameProfile().getName().equals(name));
                Friend friend = new Friend(name, isOnline ? Status.ONLINE : Status.OFFLINE);
                friendPlayers.add(friend);
            }
        }
    }

    float width;
    float height;

    @Override
    public void tick() {

    }

    @Override
    public void render(EventDisplay eventDisplay) {
        float posX = dragging.getX();
        float posY = dragging.getY();
        float padding = 5;
        float fontSize = 6.5f;
        MatrixStack ms = eventDisplay.getMatrixStack();
        ITextComponent name = GradientUtil.gradient("Friend List");

        Style style = HvH.getInstance().getStyleManager().getCurrentStyle();

        DisplayUtils.drawShadow(posX - 2, posY, 3, height, 7, ColorUtils.getColor(0));
        drawStyledRect(posX, posY, width, height, 4);
        Fonts.sfui.drawCenteredText(ms, name, posX + width / 2, posY + padding + 1f, fontSize);

        posY += fontSize + padding * 2;

        float maxWidth = Fonts.sfMedium.getWidth(name, fontSize) + padding * 2;
        float localHeight = fontSize + padding * 2;

        posY += 3.5f;
        for (FriendListRenderer.Friend f : friendPlayers) {
            String friendName = f.getName();
            float nameWidth = Fonts.sfMedium.getWidth(friendName, fontSize);

            float localWidth = nameWidth + Fonts.sfMedium.getWidth(f.getStatus().string, fontSize) + padding * 2;

            DisplayUtils.drawRoundedRect(posX, posY - 3, 2.5f, 13.5f, new Vector4f(0.0F, 0.0F, 0.0F, 0.0F), new Vector4i(HUD.getColor(0, 1.0F), HUD.getColor(0, 1.0F), HUD.getColor(90, 1.0F), HUD.getColor(90, 1.0F)));
            Fonts.sfMedium.drawText(ms, friendName, posX + padding, posY, ColorUtils.rgb(255, 255, 255), fontSize);
            Fonts.sfMedium.drawText(ms, f.getStatus().string, posX + width - padding - Fonts.sfMedium.getWidth(f.getStatus().string, fontSize), posY, f.getStatus().color, fontSize);

            if (localWidth > maxWidth) {
                maxWidth = localWidth;
            }

            posY += fontSize + padding;
            localHeight += fontSize + padding;
        }

        width = Math.max(maxWidth, 80);
        height = localHeight + 2.5f;
        dragging.setWidth(width);
        dragging.setHeight(height);
    }

    @AllArgsConstructor
    @Data
    public static class Friend {
        String name;
        Status status;

        public void updateStatus() {
            boolean isOnline = mc.getConnection().getPlayerInfoMap().stream()
                    .anyMatch(info -> info.getGameProfile().getName().equals(name));
            status = isOnline ? Status.ONLINE : Status.OFFLINE;
        }
    }

    public enum Status {
        ONLINE("Online", ColorUtils.rgb(0, 255, 0)),
        OFFLINE("Offline", ColorUtils.rgb(255, 0, 0));
        public final String string;
        public final int color;

        Status(String string, int color) {
            this.string = string;
            this.color = color;
        }
    }

    private void drawStyledRect(float x,
                                float y,
                                float width,
                                float height,
                                float radius) {

        DisplayUtils.drawRoundedRect(x, y, width, height, 0, ColorUtils.rgba(0, 0, 0, 255));
        DisplayUtils.drawRoundedRect(x, y, 2.5f, 18.8f, new Vector4f(0.0F, 0.0F, 0.0F, 0.0F), new Vector4i(HUD.getColor(0, 1.0F), HUD.getColor(0, 1.0F), HUD.getColor(90, 1.0F), HUD.getColor(90, 1.0F)));
    }
}
ss:
Посмотреть вложение 280471
очень даже хорошо :seemsgood:
 
Забаненный
Статус
Оффлайн
Регистрация
2 Фев 2024
Сообщения
852
Реакции[?]
7
Поинты[?]
4K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Начинающий
Статус
Оффлайн
Регистрация
6 Апр 2024
Сообщения
190
Реакции[?]
5
Поинты[?]
4K
код:
Код:
package hvh.cheat.ui.display.impl;

import com.mojang.blaze3d.matrix.MatrixStack;
import hvh.cheat.HvH;
import hvh.cheat.command.friends.FriendStorage;
import hvh.cheat.events.EventDisplay;
import hvh.cheat.events.EventUpdate;
import hvh.cheat.functions.impl.visual.HUD;
import hvh.cheat.ui.display.ElementRenderer;
import hvh.cheat.ui.display.ElementUpdater;
import hvh.cheat.utils.drag.Dragging;
import hvh.cheat.utils.math.Vector4i;
import hvh.cheat.utils.render.ColorUtils;
import hvh.cheat.utils.render.DisplayUtils;
import hvh.cheat.utils.render.font.Fonts;
import hvh.cheat.utils.text.GradientUtil;
import hvh.cheat.ui.styles.Style;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.RequiredArgsConstructor;
import lombok.experimental.FieldDefaults;
import net.minecraft.client.network.play.NetworkPlayerInfo;
import net.minecraft.util.math.vector.Vector4f;
import net.minecraft.util.text.ITextComponent;
import ru.hogoshi.Animation;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Locale;
import java.util.regex.Pattern;

@FieldDefaults(level = AccessLevel.PRIVATE)
@RequiredArgsConstructor
public class FriendListRenderer implements ElementRenderer, ElementUpdater {
    final Dragging dragging;

    private final List<Friend> friendPlayers = new ArrayList<>();
    private final Pattern namePattern = Pattern.compile("^\\w{3,16}$");

    @Override
    public void update(EventUpdate e) {
        friendPlayers.clear();

        for (String name : FriendStorage.getFriends()) {
            if (namePattern.matcher(name).matches() && !name.equals(mc.player.getName().getString())) {
                boolean isOnline = mc.getConnection().getPlayerInfoMap().stream()
                        .anyMatch(info -> info.getGameProfile().getName().equals(name));
                Friend friend = new Friend(name, isOnline ? Status.ONLINE : Status.OFFLINE);
                friendPlayers.add(friend);
            }
        }
    }

    float width;
    float height;

    @Override
    public void tick() {

    }

    @Override
    public void render(EventDisplay eventDisplay) {
        float posX = dragging.getX();
        float posY = dragging.getY();
        float padding = 5;
        float fontSize = 6.5f;
        MatrixStack ms = eventDisplay.getMatrixStack();
        ITextComponent name = GradientUtil.gradient("Friend List");

        Style style = HvH.getInstance().getStyleManager().getCurrentStyle();

        DisplayUtils.drawShadow(posX - 2, posY, 3, height, 7, ColorUtils.getColor(0));
        drawStyledRect(posX, posY, width, height, 4);
        Fonts.sfui.drawCenteredText(ms, name, posX + width / 2, posY + padding + 1f, fontSize);

        posY += fontSize + padding * 2;

        float maxWidth = Fonts.sfMedium.getWidth(name, fontSize) + padding * 2;
        float localHeight = fontSize + padding * 2;

        posY += 3.5f;
        for (FriendListRenderer.Friend f : friendPlayers) {
            String friendName = f.getName();
            float nameWidth = Fonts.sfMedium.getWidth(friendName, fontSize);

            float localWidth = nameWidth + Fonts.sfMedium.getWidth(f.getStatus().string, fontSize) + padding * 2;

            DisplayUtils.drawRoundedRect(posX, posY - 3, 2.5f, 13.5f, new Vector4f(0.0F, 0.0F, 0.0F, 0.0F), new Vector4i(HUD.getColor(0, 1.0F), HUD.getColor(0, 1.0F), HUD.getColor(90, 1.0F), HUD.getColor(90, 1.0F)));
            Fonts.sfMedium.drawText(ms, friendName, posX + padding, posY, ColorUtils.rgb(255, 255, 255), fontSize);
            Fonts.sfMedium.drawText(ms, f.getStatus().string, posX + width - padding - Fonts.sfMedium.getWidth(f.getStatus().string, fontSize), posY, f.getStatus().color, fontSize);

            if (localWidth > maxWidth) {
                maxWidth = localWidth;
            }

            posY += fontSize + padding;
            localHeight += fontSize + padding;
        }

        width = Math.max(maxWidth, 80);
        height = localHeight + 2.5f;
        dragging.setWidth(width);
        dragging.setHeight(height);
    }

    @AllArgsConstructor
    @Data
    public static class Friend {
        String name;
        Status status;

        public void updateStatus() {
            boolean isOnline = mc.getConnection().getPlayerInfoMap().stream()
                    .anyMatch(info -> info.getGameProfile().getName().equals(name));
            status = isOnline ? Status.ONLINE : Status.OFFLINE;
        }
    }

    public enum Status {
        ONLINE("Online", ColorUtils.rgb(0, 255, 0)),
        OFFLINE("Offline", ColorUtils.rgb(255, 0, 0));
        public final String string;
        public final int color;

        Status(String string, int color) {
            this.string = string;
            this.color = color;
        }
    }

    private void drawStyledRect(float x,
                                float y,
                                float width,
                                float height,
                                float radius) {

        DisplayUtils.drawRoundedRect(x, y, width, height, 0, ColorUtils.rgba(0, 0, 0, 255));
        DisplayUtils.drawRoundedRect(x, y, 2.5f, 18.8f, new Vector4f(0.0F, 0.0F, 0.0F, 0.0F), new Vector4i(HUD.getColor(0, 1.0F), HUD.getColor(0, 1.0F), HUD.getColor(90, 1.0F), HUD.getColor(90, 1.0F)));
    }
}
ss:
Посмотреть вложение 280471
потом будет рассказывать что анциент крякнул как и 3.1
 
Забаненный
Статус
Оффлайн
Регистрация
2 Фев 2024
Сообщения
852
Реакции[?]
7
Поинты[?]
4K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Начинающий
Статус
Оффлайн
Регистрация
6 Апр 2024
Сообщения
190
Реакции[?]
5
Поинты[?]
4K
понятно это простой визуал в стиле анциент

если так хочешь не буду сливать больше
так мне то че, я щас все свое пишу, мне бы найти ток шрифт как у некстгена
 
Забаненный
Статус
Оффлайн
Регистрация
2 Фев 2024
Сообщения
852
Реакции[?]
7
Поинты[?]
4K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Начинающий
Статус
Оффлайн
Регистрация
18 Июн 2022
Сообщения
285
Реакции[?]
13
Поинты[?]
4K
код:
Код:
package hvh.cheat.ui.display.impl;

import com.mojang.blaze3d.matrix.MatrixStack;
import hvh.cheat.HvH;
import hvh.cheat.command.friends.FriendStorage;
import hvh.cheat.events.EventDisplay;
import hvh.cheat.events.EventUpdate;
import hvh.cheat.functions.impl.visual.HUD;
import hvh.cheat.ui.display.ElementRenderer;
import hvh.cheat.ui.display.ElementUpdater;
import hvh.cheat.utils.drag.Dragging;
import hvh.cheat.utils.math.Vector4i;
import hvh.cheat.utils.render.ColorUtils;
import hvh.cheat.utils.render.DisplayUtils;
import hvh.cheat.utils.render.font.Fonts;
import hvh.cheat.utils.text.GradientUtil;
import hvh.cheat.ui.styles.Style;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.RequiredArgsConstructor;
import lombok.experimental.FieldDefaults;
import net.minecraft.client.network.play.NetworkPlayerInfo;
import net.minecraft.util.math.vector.Vector4f;
import net.minecraft.util.text.ITextComponent;
import ru.hogoshi.Animation;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Locale;
import java.util.regex.Pattern;

@FieldDefaults(level = AccessLevel.PRIVATE)
@RequiredArgsConstructor
public class FriendListRenderer implements ElementRenderer, ElementUpdater {
    final Dragging dragging;

    private final List<Friend> friendPlayers = new ArrayList<>();
    private final Pattern namePattern = Pattern.compile("^\\w{3,16}$");

    @Override
    public void update(EventUpdate e) {
        friendPlayers.clear();

        for (String name : FriendStorage.getFriends()) {
            if (namePattern.matcher(name).matches() && !name.equals(mc.player.getName().getString())) {
                boolean isOnline = mc.getConnection().getPlayerInfoMap().stream()
                        .anyMatch(info -> info.getGameProfile().getName().equals(name));
                Friend friend = new Friend(name, isOnline ? Status.ONLINE : Status.OFFLINE);
                friendPlayers.add(friend);
            }
        }
    }

    float width;
    float height;

    @Override
    public void tick() {

    }

    @Override
    public void render(EventDisplay eventDisplay) {
        float posX = dragging.getX();
        float posY = dragging.getY();
        float padding = 5;
        float fontSize = 6.5f;
        MatrixStack ms = eventDisplay.getMatrixStack();
        ITextComponent name = GradientUtil.gradient("Friend List");

        Style style = HvH.getInstance().getStyleManager().getCurrentStyle();

        DisplayUtils.drawShadow(posX - 2, posY, 3, height, 7, ColorUtils.getColor(0));
        drawStyledRect(posX, posY, width, height, 4);
        Fonts.sfui.drawCenteredText(ms, name, posX + width / 2, posY + padding + 1f, fontSize);

        posY += fontSize + padding * 2;

        float maxWidth = Fonts.sfMedium.getWidth(name, fontSize) + padding * 2;
        float localHeight = fontSize + padding * 2;

        posY += 3.5f;
        for (FriendListRenderer.Friend f : friendPlayers) {
            String friendName = f.getName();
            float nameWidth = Fonts.sfMedium.getWidth(friendName, fontSize);

            float localWidth = nameWidth + Fonts.sfMedium.getWidth(f.getStatus().string, fontSize) + padding * 2;

            DisplayUtils.drawRoundedRect(posX, posY - 3, 2.5f, 13.5f, new Vector4f(0.0F, 0.0F, 0.0F, 0.0F), new Vector4i(HUD.getColor(0, 1.0F), HUD.getColor(0, 1.0F), HUD.getColor(90, 1.0F), HUD.getColor(90, 1.0F)));
            Fonts.sfMedium.drawText(ms, friendName, posX + padding, posY, ColorUtils.rgb(255, 255, 255), fontSize);
            Fonts.sfMedium.drawText(ms, f.getStatus().string, posX + width - padding - Fonts.sfMedium.getWidth(f.getStatus().string, fontSize), posY, f.getStatus().color, fontSize);

            if (localWidth > maxWidth) {
                maxWidth = localWidth;
            }

            posY += fontSize + padding;
            localHeight += fontSize + padding;
        }

        width = Math.max(maxWidth, 80);
        height = localHeight + 2.5f;
        dragging.setWidth(width);
        dragging.setHeight(height);
    }

    @AllArgsConstructor
    @Data
    public static class Friend {
        String name;
        Status status;

        public void updateStatus() {
            boolean isOnline = mc.getConnection().getPlayerInfoMap().stream()
                    .anyMatch(info -> info.getGameProfile().getName().equals(name));
            status = isOnline ? Status.ONLINE : Status.OFFLINE;
        }
    }

    public enum Status {
        ONLINE("Online", ColorUtils.rgb(0, 255, 0)),
        OFFLINE("Offline", ColorUtils.rgb(255, 0, 0));
        public final String string;
        public final int color;

        Status(String string, int color) {
            this.string = string;
            this.color = color;
        }
    }

    private void drawStyledRect(float x,
                                float y,
                                float width,
                                float height,
                                float radius) {

        DisplayUtils.drawRoundedRect(x, y, width, height, 0, ColorUtils.rgba(0, 0, 0, 255));
        DisplayUtils.drawRoundedRect(x, y, 2.5f, 18.8f, new Vector4f(0.0F, 0.0F, 0.0F, 0.0F), new Vector4i(HUD.getColor(0, 1.0F), HUD.getColor(0, 1.0F), HUD.getColor(90, 1.0F), HUD.getColor(90, 1.0F)));
    }
}
ss:
Посмотреть вложение 280471
Прикольно
 
Начинающий
Статус
Оффлайн
Регистрация
16 Май 2024
Сообщения
137
Реакции[?]
1
Поинты[?]
1K
код:
Код:
package hvh.cheat.ui.display.impl;

import com.mojang.blaze3d.matrix.MatrixStack;
import hvh.cheat.HvH;
import hvh.cheat.command.friends.FriendStorage;
import hvh.cheat.events.EventDisplay;
import hvh.cheat.events.EventUpdate;
import hvh.cheat.functions.impl.visual.HUD;
import hvh.cheat.ui.display.ElementRenderer;
import hvh.cheat.ui.display.ElementUpdater;
import hvh.cheat.utils.drag.Dragging;
import hvh.cheat.utils.math.Vector4i;
import hvh.cheat.utils.render.ColorUtils;
import hvh.cheat.utils.render.DisplayUtils;
import hvh.cheat.utils.render.font.Fonts;
import hvh.cheat.utils.text.GradientUtil;
import hvh.cheat.ui.styles.Style;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.RequiredArgsConstructor;
import lombok.experimental.FieldDefaults;
import net.minecraft.client.network.play.NetworkPlayerInfo;
import net.minecraft.util.math.vector.Vector4f;
import net.minecraft.util.text.ITextComponent;
import ru.hogoshi.Animation;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Locale;
import java.util.regex.Pattern;

@FieldDefaults(level = AccessLevel.PRIVATE)
@RequiredArgsConstructor
public class FriendListRenderer implements ElementRenderer, ElementUpdater {
    final Dragging dragging;

    private final List<Friend> friendPlayers = new ArrayList<>();
    private final Pattern namePattern = Pattern.compile("^\\w{3,16}$");

    @Override
    public void update(EventUpdate e) {
        friendPlayers.clear();

        for (String name : FriendStorage.getFriends()) {
            if (namePattern.matcher(name).matches() && !name.equals(mc.player.getName().getString())) {
                boolean isOnline = mc.getConnection().getPlayerInfoMap().stream()
                        .anyMatch(info -> info.getGameProfile().getName().equals(name));
                Friend friend = new Friend(name, isOnline ? Status.ONLINE : Status.OFFLINE);
                friendPlayers.add(friend);
            }
        }
    }

    float width;
    float height;

    @Override
    public void tick() {

    }

    @Override
    public void render(EventDisplay eventDisplay) {
        float posX = dragging.getX();
        float posY = dragging.getY();
        float padding = 5;
        float fontSize = 6.5f;
        MatrixStack ms = eventDisplay.getMatrixStack();
        ITextComponent name = GradientUtil.gradient("Friend List");

        Style style = HvH.getInstance().getStyleManager().getCurrentStyle();

        DisplayUtils.drawShadow(posX - 2, posY, 3, height, 7, ColorUtils.getColor(0));
        drawStyledRect(posX, posY, width, height, 4);
        Fonts.sfui.drawCenteredText(ms, name, posX + width / 2, posY + padding + 1f, fontSize);

        posY += fontSize + padding * 2;

        float maxWidth = Fonts.sfMedium.getWidth(name, fontSize) + padding * 2;
        float localHeight = fontSize + padding * 2;

        posY += 3.5f;
        for (FriendListRenderer.Friend f : friendPlayers) {
            String friendName = f.getName();
            float nameWidth = Fonts.sfMedium.getWidth(friendName, fontSize);

            float localWidth = nameWidth + Fonts.sfMedium.getWidth(f.getStatus().string, fontSize) + padding * 2;

            DisplayUtils.drawRoundedRect(posX, posY - 3, 2.5f, 13.5f, new Vector4f(0.0F, 0.0F, 0.0F, 0.0F), new Vector4i(HUD.getColor(0, 1.0F), HUD.getColor(0, 1.0F), HUD.getColor(90, 1.0F), HUD.getColor(90, 1.0F)));
            Fonts.sfMedium.drawText(ms, friendName, posX + padding, posY, ColorUtils.rgb(255, 255, 255), fontSize);
            Fonts.sfMedium.drawText(ms, f.getStatus().string, posX + width - padding - Fonts.sfMedium.getWidth(f.getStatus().string, fontSize), posY, f.getStatus().color, fontSize);

            if (localWidth > maxWidth) {
                maxWidth = localWidth;
            }

            posY += fontSize + padding;
            localHeight += fontSize + padding;
        }

        width = Math.max(maxWidth, 80);
        height = localHeight + 2.5f;
        dragging.setWidth(width);
        dragging.setHeight(height);
    }

    @AllArgsConstructor
    @Data
    public static class Friend {
        String name;
        Status status;

        public void updateStatus() {
            boolean isOnline = mc.getConnection().getPlayerInfoMap().stream()
                    .anyMatch(info -> info.getGameProfile().getName().equals(name));
            status = isOnline ? Status.ONLINE : Status.OFFLINE;
        }
    }

    public enum Status {
        ONLINE("Online", ColorUtils.rgb(0, 255, 0)),
        OFFLINE("Offline", ColorUtils.rgb(255, 0, 0));
        public final String string;
        public final int color;

        Status(String string, int color) {
            this.string = string;
            this.color = color;
        }
    }

    private void drawStyledRect(float x,
                                float y,
                                float width,
                                float height,
                                float radius) {

        DisplayUtils.drawRoundedRect(x, y, width, height, 0, ColorUtils.rgba(0, 0, 0, 255));
        DisplayUtils.drawRoundedRect(x, y, 2.5f, 18.8f, new Vector4f(0.0F, 0.0F, 0.0F, 0.0F), new Vector4i(HUD.getColor(0, 1.0F), HUD.getColor(0, 1.0F), HUD.getColor(90, 1.0F), HUD.getColor(90, 1.0F)));
    }
}
ss:
Посмотреть вложение 280471
сам функционал - норм а как выглядит - плохо.
 
Начинающий
Статус
Оффлайн
Регистрация
4 Янв 2022
Сообщения
122
Реакции[?]
0
Поинты[?]
0
код:
Код:
package hvh.cheat.ui.display.impl;

import com.mojang.blaze3d.matrix.MatrixStack;
import hvh.cheat.HvH;
import hvh.cheat.command.friends.FriendStorage;
import hvh.cheat.events.EventDisplay;
import hvh.cheat.events.EventUpdate;
import hvh.cheat.functions.impl.visual.HUD;
import hvh.cheat.ui.display.ElementRenderer;
import hvh.cheat.ui.display.ElementUpdater;
import hvh.cheat.utils.drag.Dragging;
import hvh.cheat.utils.math.Vector4i;
import hvh.cheat.utils.render.ColorUtils;
import hvh.cheat.utils.render.DisplayUtils;
import hvh.cheat.utils.render.font.Fonts;
import hvh.cheat.utils.text.GradientUtil;
import hvh.cheat.ui.styles.Style;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.RequiredArgsConstructor;
import lombok.experimental.FieldDefaults;
import net.minecraft.client.network.play.NetworkPlayerInfo;
import net.minecraft.util.math.vector.Vector4f;
import net.minecraft.util.text.ITextComponent;
import ru.hogoshi.Animation;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Locale;
import java.util.regex.Pattern;

@FieldDefaults(level = AccessLevel.PRIVATE)
@RequiredArgsConstructor
public class FriendListRenderer implements ElementRenderer, ElementUpdater {
    final Dragging dragging;

    private final List<Friend> friendPlayers = new ArrayList<>();
    private final Pattern namePattern = Pattern.compile("^\\w{3,16}$");

    @Override
    public void update(EventUpdate e) {
        friendPlayers.clear();

        for (String name : FriendStorage.getFriends()) {
            if (namePattern.matcher(name).matches() && !name.equals(mc.player.getName().getString())) {
                boolean isOnline = mc.getConnection().getPlayerInfoMap().stream()
                        .anyMatch(info -> info.getGameProfile().getName().equals(name));
                Friend friend = new Friend(name, isOnline ? Status.ONLINE : Status.OFFLINE);
                friendPlayers.add(friend);
            }
        }
    }

    float width;
    float height;

    @Override
    public void tick() {

    }

    @Override
    public void render(EventDisplay eventDisplay) {
        float posX = dragging.getX();
        float posY = dragging.getY();
        float padding = 5;
        float fontSize = 6.5f;
        MatrixStack ms = eventDisplay.getMatrixStack();
        ITextComponent name = GradientUtil.gradient("Friend List");

        Style style = HvH.getInstance().getStyleManager().getCurrentStyle();

        DisplayUtils.drawShadow(posX - 2, posY, 3, height, 7, ColorUtils.getColor(0));
        drawStyledRect(posX, posY, width, height, 4);
        Fonts.sfui.drawCenteredText(ms, name, posX + width / 2, posY + padding + 1f, fontSize);

        posY += fontSize + padding * 2;

        float maxWidth = Fonts.sfMedium.getWidth(name, fontSize) + padding * 2;
        float localHeight = fontSize + padding * 2;

        posY += 3.5f;
        for (FriendListRenderer.Friend f : friendPlayers) {
            String friendName = f.getName();
            float nameWidth = Fonts.sfMedium.getWidth(friendName, fontSize);

            float localWidth = nameWidth + Fonts.sfMedium.getWidth(f.getStatus().string, fontSize) + padding * 2;

            DisplayUtils.drawRoundedRect(posX, posY - 3, 2.5f, 13.5f, new Vector4f(0.0F, 0.0F, 0.0F, 0.0F), new Vector4i(HUD.getColor(0, 1.0F), HUD.getColor(0, 1.0F), HUD.getColor(90, 1.0F), HUD.getColor(90, 1.0F)));
            Fonts.sfMedium.drawText(ms, friendName, posX + padding, posY, ColorUtils.rgb(255, 255, 255), fontSize);
            Fonts.sfMedium.drawText(ms, f.getStatus().string, posX + width - padding - Fonts.sfMedium.getWidth(f.getStatus().string, fontSize), posY, f.getStatus().color, fontSize);

            if (localWidth > maxWidth) {
                maxWidth = localWidth;
            }

            posY += fontSize + padding;
            localHeight += fontSize + padding;
        }

        width = Math.max(maxWidth, 80);
        height = localHeight + 2.5f;
        dragging.setWidth(width);
        dragging.setHeight(height);
    }

    @AllArgsConstructor
    @Data
    public static class Friend {
        String name;
        Status status;

        public void updateStatus() {
            boolean isOnline = mc.getConnection().getPlayerInfoMap().stream()
                    .anyMatch(info -> info.getGameProfile().getName().equals(name));
            status = isOnline ? Status.ONLINE : Status.OFFLINE;
        }
    }

    public enum Status {
        ONLINE("Online", ColorUtils.rgb(0, 255, 0)),
        OFFLINE("Offline", ColorUtils.rgb(255, 0, 0));
        public final String string;
        public final int color;

        Status(String string, int color) {
            this.string = string;
            this.color = color;
        }
    }

    private void drawStyledRect(float x,
                                float y,
                                float width,
                                float height,
                                float radius) {

        DisplayUtils.drawRoundedRect(x, y, width, height, 0, ColorUtils.rgba(0, 0, 0, 255));
        DisplayUtils.drawRoundedRect(x, y, 2.5f, 18.8f, new Vector4f(0.0F, 0.0F, 0.0F, 0.0F), new Vector4i(HUD.getColor(0, 1.0F), HUD.getColor(0, 1.0F), HUD.getColor(90, 1.0F), HUD.getColor(90, 1.0F)));
    }
}
ss:
Посмотреть вложение 280471
Слей свой крутой таргет есп
 
Начинающий
Статус
Оффлайн
Регистрация
3 Авг 2022
Сообщения
261
Реакции[?]
2
Поинты[?]
2K
код:
Код:
package hvh.cheat.ui.display.impl;

import com.mojang.blaze3d.matrix.MatrixStack;
import hvh.cheat.HvH;
import hvh.cheat.command.friends.FriendStorage;
import hvh.cheat.events.EventDisplay;
import hvh.cheat.events.EventUpdate;
import hvh.cheat.functions.impl.visual.HUD;
import hvh.cheat.ui.display.ElementRenderer;
import hvh.cheat.ui.display.ElementUpdater;
import hvh.cheat.utils.drag.Dragging;
import hvh.cheat.utils.math.Vector4i;
import hvh.cheat.utils.render.ColorUtils;
import hvh.cheat.utils.render.DisplayUtils;
import hvh.cheat.utils.render.font.Fonts;
import hvh.cheat.utils.text.GradientUtil;
import hvh.cheat.ui.styles.Style;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.RequiredArgsConstructor;
import lombok.experimental.FieldDefaults;
import net.minecraft.client.network.play.NetworkPlayerInfo;
import net.minecraft.util.math.vector.Vector4f;
import net.minecraft.util.text.ITextComponent;
import ru.hogoshi.Animation;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Locale;
import java.util.regex.Pattern;

@FieldDefaults(level = AccessLevel.PRIVATE)
@RequiredArgsConstructor
public class FriendListRenderer implements ElementRenderer, ElementUpdater {
    final Dragging dragging;

    private final List<Friend> friendPlayers = new ArrayList<>();
    private final Pattern namePattern = Pattern.compile("^\\w{3,16}$");

    @Override
    public void update(EventUpdate e) {
        friendPlayers.clear();

        for (String name : FriendStorage.getFriends()) {
            if (namePattern.matcher(name).matches() && !name.equals(mc.player.getName().getString())) {
                boolean isOnline = mc.getConnection().getPlayerInfoMap().stream()
                        .anyMatch(info -> info.getGameProfile().getName().equals(name));
                Friend friend = new Friend(name, isOnline ? Status.ONLINE : Status.OFFLINE);
                friendPlayers.add(friend);
            }
        }
    }

    float width;
    float height;

    @Override
    public void tick() {

    }

    @Override
    public void render(EventDisplay eventDisplay) {
        float posX = dragging.getX();
        float posY = dragging.getY();
        float padding = 5;
        float fontSize = 6.5f;
        MatrixStack ms = eventDisplay.getMatrixStack();
        ITextComponent name = GradientUtil.gradient("Friend List");

        Style style = HvH.getInstance().getStyleManager().getCurrentStyle();

        DisplayUtils.drawShadow(posX - 2, posY, 3, height, 7, ColorUtils.getColor(0));
        drawStyledRect(posX, posY, width, height, 4);
        Fonts.sfui.drawCenteredText(ms, name, posX + width / 2, posY + padding + 1f, fontSize);

        posY += fontSize + padding * 2;

        float maxWidth = Fonts.sfMedium.getWidth(name, fontSize) + padding * 2;
        float localHeight = fontSize + padding * 2;

        posY += 3.5f;
        for (FriendListRenderer.Friend f : friendPlayers) {
            String friendName = f.getName();
            float nameWidth = Fonts.sfMedium.getWidth(friendName, fontSize);

            float localWidth = nameWidth + Fonts.sfMedium.getWidth(f.getStatus().string, fontSize) + padding * 2;

            DisplayUtils.drawRoundedRect(posX, posY - 3, 2.5f, 13.5f, new Vector4f(0.0F, 0.0F, 0.0F, 0.0F), new Vector4i(HUD.getColor(0, 1.0F), HUD.getColor(0, 1.0F), HUD.getColor(90, 1.0F), HUD.getColor(90, 1.0F)));
            Fonts.sfMedium.drawText(ms, friendName, posX + padding, posY, ColorUtils.rgb(255, 255, 255), fontSize);
            Fonts.sfMedium.drawText(ms, f.getStatus().string, posX + width - padding - Fonts.sfMedium.getWidth(f.getStatus().string, fontSize), posY, f.getStatus().color, fontSize);

            if (localWidth > maxWidth) {
                maxWidth = localWidth;
            }

            posY += fontSize + padding;
            localHeight += fontSize + padding;
        }

        width = Math.max(maxWidth, 80);
        height = localHeight + 2.5f;
        dragging.setWidth(width);
        dragging.setHeight(height);
    }

    @AllArgsConstructor
    @Data
    public static class Friend {
        String name;
        Status status;

        public void updateStatus() {
            boolean isOnline = mc.getConnection().getPlayerInfoMap().stream()
                    .anyMatch(info -> info.getGameProfile().getName().equals(name));
            status = isOnline ? Status.ONLINE : Status.OFFLINE;
        }
    }

    public enum Status {
        ONLINE("Online", ColorUtils.rgb(0, 255, 0)),
        OFFLINE("Offline", ColorUtils.rgb(255, 0, 0));
        public final String string;
        public final int color;

        Status(String string, int color) {
            this.string = string;
            this.color = color;
        }
    }

    private void drawStyledRect(float x,
                                float y,
                                float width,
                                float height,
                                float radius) {

        DisplayUtils.drawRoundedRect(x, y, width, height, 0, ColorUtils.rgba(0, 0, 0, 255));
        DisplayUtils.drawRoundedRect(x, y, 2.5f, 18.8f, new Vector4f(0.0F, 0.0F, 0.0F, 0.0F), new Vector4i(HUD.getColor(0, 1.0F), HUD.getColor(0, 1.0F), HUD.getColor(90, 1.0F), HUD.getColor(90, 1.0F)));
    }
}
ss:
Посмотреть вложение 280471
неплохо
 
Забаненный
Статус
Оффлайн
Регистрация
2 Фев 2024
Сообщения
852
Реакции[?]
7
Поинты[?]
4K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Забаненный
Статус
Оффлайн
Регистрация
2 Фев 2024
Сообщения
852
Реакции[?]
7
Поинты[?]
4K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Начинающий
Статус
Оффлайн
Регистрация
6 Апр 2024
Сообщения
190
Реакции[?]
5
Поинты[?]
4K
Забаненный
Статус
Оффлайн
Регистрация
2 Фев 2024
Сообщения
852
Реакции[?]
7
Поинты[?]
4K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Сверху Снизу