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

Начинающий
Статус
Оффлайн
Регистрация
15 Мар 2021
Сообщения
15
Реакции[?]
0
Поинты[?]
0
вообще то я про отправку в чат корд и получения их
бля можешь мне это дать пж я смогу сделать такую хуйню я просто софт под фт пишу и есть идея типо если нашёл базу внизу то сразу друзьям корды отпровлялись
 
Начинающий
Статус
Оффлайн
Регистрация
12 Дек 2022
Сообщения
99
Реакции[?]
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
прикольно, добавлю в свой худ (если что это мой скид я просто этому челу его сливал
 
Начинающий
Статус
Оффлайн
Регистрация
6 Дек 2023
Сообщения
96
Реакции[?]
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
отлично, но не понимаю зачем оно, если у тебя есть тиммейты, скорее всего вы будете сидеть в дс же, а если у тебя большой френдлист то там пол экрана забито будет
 
Забаненный
Статус
Оффлайн
Регистрация
2 Фев 2024
Сообщения
852
Реакции[?]
7
Поинты[?]
4K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
отлично, но не понимаю зачем оно, если у тебя есть тиммейты, скорее всего вы будете сидеть в дс же, а если у тебя большой френдлист то там пол экрана забито будет
ну типо спрашивать ник каждного а так посмотрел и сразу тепнулся
 
Сверху Снизу