Подведи собственные итоги года совместно с YOUGAME и забери ценные призы! Перейти

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

  • Автор темы Автор темы aeghed
  • Дата начала Дата начала
Забаненный
Забаненный
Статус
Оффлайн
Регистрация
2 Фев 2024
Сообщения
829
Реакции
7
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
код:
Код:
Expand Collapse Copy
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
 
код:
Код:
Expand Collapse Copy
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:
 
код:
Код:
Expand Collapse Copy
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
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
понятно это простой визуал в стиле анциент

если так хочешь не буду сливать больше
так мне то че, я щас все свое пишу, мне бы найти ток шрифт как у некстгена
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
бро продолжай в том же духе
 
код:
Код:
Expand Collapse Copy
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
Прикольно
 
код:
Код:
Expand Collapse Copy
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
сам функционал - норм а как выглядит - плохо.
 
код:
Код:
Expand Collapse Copy
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
Слей свой крутой таргет есп
 
код:
Код:
Expand Collapse Copy
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
неплохо
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
вообще то я про отправку в чат корд и получения их
бля можешь мне это дать пж я смогу сделать такую хуйню я просто софт под фт пишу и есть идея типо если нашёл базу внизу то сразу друзьям корды отпровлялись
 

Похожие темы

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