Вопрос Помогите с ESP Expensive 4.0 1.20.1

Начинающий
Статус
Оффлайн
Регистрация
25 Июн 2024
Сообщения
29
Реакции[?]
0
Поинты[?]
0

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

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

Спасибо!

как добавить сюда рендер брони

Код:
package assets.WhiteStar.implement.features.modules.render;

import com.mojang.blaze3d.systems.RenderSystem;
import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderContext;
import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderEvents;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.font.TextRenderer;
import net.minecraft.client.render.GameRenderer;
import net.minecraft.client.render.VertexConsumerProvider;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.entity.player.PlayerEntity;
import assets.WhiteStar.api.feature.module.Module;
import assets.WhiteStar.api.feature.module.ModuleCategory;
import assets.WhiteStar.core.WhiteStar;

public class ESP extends Module {
    private final MinecraftClient mc = MinecraftClient.getInstance();

    public ESP() {
        super("ESP", ModuleCategory.RENDER);
        WorldRenderEvents.AFTER_ENTITIES.register(this::renderPlayerNames);
    }

    private void renderPlayerNames(WorldRenderContext context) {
        if (!WhiteStar.getInstance().getModuleProvider()
                .module("NameTags")
                .isState() || mc.world == null) return;

        MatrixStack matrixStack = context.matrixStack();
        float tickDelta = context.tickDelta();

        for (PlayerEntity player : mc.world.getPlayers()) {
            if (player != mc.player) {
                renderPlayerName(player, matrixStack, tickDelta);
            }
        }
    }

    private void renderPlayerName(PlayerEntity player, MatrixStack matrixStack, float tickDelta) {
        double x = player.prevX + (player.getX() - player.prevX) * tickDelta;
        double y = player.prevY + (player.getY() - player.prevY) * tickDelta;
        double z = player.prevZ + (player.getZ() - player.prevZ) * tickDelta;

        matrixStack.push();
        matrixStack.translate(
                x - mc.getEntityRenderDispatcher().camera.getPos().x,
                y - mc.getEntityRenderDispatcher().camera.getPos().y + player.getHeight() + 0.5f,
                z - mc.getEntityRenderDispatcher().camera.getPos().z
        );
        matrixStack.multiply(mc.getEntityRenderDispatcher().getRotation());
        matrixStack.scale(-0.025f, -0.025f, 0.025f);

        TextRenderer textRenderer = mc.textRenderer;
        String name = player.getName().getString();
        float width = -textRenderer.getWidth(name) / 2f;

        VertexConsumerProvider.Immediate immediate = mc.getBufferBuilders().getEntityVertexConsumers();

        RenderSystem.disableDepthTest();
        RenderSystem.enableBlend();
        RenderSystem.defaultBlendFunc();
        RenderSystem.setShader(GameRenderer::getPositionColorProgram);

        textRenderer.draw(name, width, 0, 0xFFFFFFFF, false, matrixStack.peek().getPositionMatrix(), immediate, TextRenderer.TextLayerType.SEE_THROUGH, 0, 0xF000F0);
        immediate.draw();

        RenderSystem.enableDepthTest();
        RenderSystem.disableBlend();

        matrixStack.pop();
    }

    @Override
    public void activate() {
        WorldRenderEvents.AFTER_ENTITIES.register(this::renderPlayerNames);
        super.activate();
    }

    @Override
    public void deactivate() {
        super.deactivate();
    }
}
 
Начинающий
Статус
Оффлайн
Регистрация
27 Окт 2024
Сообщения
67
Реакции[?]
0
Поинты[?]
0
как добавить сюда рендер брони

Код:
package assets.WhiteStar.implement.features.modules.render;

import com.mojang.blaze3d.systems.RenderSystem;
import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderContext;
import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderEvents;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.font.TextRenderer;
import net.minecraft.client.render.GameRenderer;
import net.minecraft.client.render.VertexConsumerProvider;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.entity.player.PlayerEntity;
import assets.WhiteStar.api.feature.module.Module;
import assets.WhiteStar.api.feature.module.ModuleCategory;
import assets.WhiteStar.core.WhiteStar;

public class ESP extends Module {
    private final MinecraftClient mc = MinecraftClient.getInstance();

    public ESP() {
        super("ESP", ModuleCategory.RENDER);
        WorldRenderEvents.AFTER_ENTITIES.register(this::renderPlayerNames);
    }

    private void renderPlayerNames(WorldRenderContext context) {
        if (!WhiteStar.getInstance().getModuleProvider()
                .module("NameTags")
                .isState() || mc.world == null) return;

        MatrixStack matrixStack = context.matrixStack();
        float tickDelta = context.tickDelta();

        for (PlayerEntity player : mc.world.getPlayers()) {
            if (player != mc.player) {
                renderPlayerName(player, matrixStack, tickDelta);
            }
        }
    }

    private void renderPlayerName(PlayerEntity player, MatrixStack matrixStack, float tickDelta) {
        double x = player.prevX + (player.getX() - player.prevX) * tickDelta;
        double y = player.prevY + (player.getY() - player.prevY) * tickDelta;
        double z = player.prevZ + (player.getZ() - player.prevZ) * tickDelta;

        matrixStack.push();
        matrixStack.translate(
                x - mc.getEntityRenderDispatcher().camera.getPos().x,
                y - mc.getEntityRenderDispatcher().camera.getPos().y + player.getHeight() + 0.5f,
                z - mc.getEntityRenderDispatcher().camera.getPos().z
        );
        matrixStack.multiply(mc.getEntityRenderDispatcher().getRotation());
        matrixStack.scale(-0.025f, -0.025f, 0.025f);

        TextRenderer textRenderer = mc.textRenderer;
        String name = player.getName().getString();
        float width = -textRenderer.getWidth(name) / 2f;

        VertexConsumerProvider.Immediate immediate = mc.getBufferBuilders().getEntityVertexConsumers();

        RenderSystem.disableDepthTest();
        RenderSystem.enableBlend();
        RenderSystem.defaultBlendFunc();
        RenderSystem.setShader(GameRenderer::getPositionColorProgram);

        textRenderer.draw(name, width, 0, 0xFFFFFFFF, false, matrixStack.peek().getPositionMatrix(), immediate, TextRenderer.TextLayerType.SEE_THROUGH, 0, 0xF000F0);
        immediate.draw();

        RenderSystem.enableDepthTest();
        RenderSystem.disableBlend();

        matrixStack.pop();
    }

    @Override
    public void activate() {
        WorldRenderEvents.AFTER_ENTITIES.register(this::renderPlayerNames);
        super.activate();
    }

    @Override
    public void deactivate() {
        super.deactivate();
    }
}
спасти с тандер хака
 
Новичок
Статус
Оффлайн
Регистрация
27 Окт 2024
Сообщения
1
Реакции[?]
0
Поинты[?]
0
как добавить сюда рендер брони

Код:
package assets.WhiteStar.implement.features.modules.render;

import com.mojang.blaze3d.systems.RenderSystem;
import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderContext;
import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderEvents;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.font.TextRenderer;
import net.minecraft.client.render.GameRenderer;
import net.minecraft.client.render.VertexConsumerProvider;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.entity.player.PlayerEntity;
import assets.WhiteStar.api.feature.module.Module;
import assets.WhiteStar.api.feature.module.ModuleCategory;
import assets.WhiteStar.core.WhiteStar;

public class ESP extends Module {
    private final MinecraftClient mc = MinecraftClient.getInstance();

    public ESP() {
        super("ESP", ModuleCategory.RENDER);
        WorldRenderEvents.AFTER_ENTITIES.register(this::renderPlayerNames);
    }

    private void renderPlayerNames(WorldRenderContext context) {
        if (!WhiteStar.getInstance().getModuleProvider()
                .module("NameTags")
                .isState() || mc.world == null) return;

        MatrixStack matrixStack = context.matrixStack();
        float tickDelta = context.tickDelta();

        for (PlayerEntity player : mc.world.getPlayers()) {
            if (player != mc.player) {
                renderPlayerName(player, matrixStack, tickDelta);
            }
        }
    }

    private void renderPlayerName(PlayerEntity player, MatrixStack matrixStack, float tickDelta) {
        double x = player.prevX + (player.getX() - player.prevX) * tickDelta;
        double y = player.prevY + (player.getY() - player.prevY) * tickDelta;
        double z = player.prevZ + (player.getZ() - player.prevZ) * tickDelta;

        matrixStack.push();
        matrixStack.translate(
                x - mc.getEntityRenderDispatcher().camera.getPos().x,
                y - mc.getEntityRenderDispatcher().camera.getPos().y + player.getHeight() + 0.5f,
                z - mc.getEntityRenderDispatcher().camera.getPos().z
        );
        matrixStack.multiply(mc.getEntityRenderDispatcher().getRotation());
        matrixStack.scale(-0.025f, -0.025f, 0.025f);

        TextRenderer textRenderer = mc.textRenderer;
        String name = player.getName().getString();
        float width = -textRenderer.getWidth(name) / 2f;

        VertexConsumerProvider.Immediate immediate = mc.getBufferBuilders().getEntityVertexConsumers();

        RenderSystem.disableDepthTest();
        RenderSystem.enableBlend();
        RenderSystem.defaultBlendFunc();
        RenderSystem.setShader(GameRenderer::getPositionColorProgram);

        textRenderer.draw(name, width, 0, 0xFFFFFFFF, false, matrixStack.peek().getPositionMatrix(), immediate, TextRenderer.TextLayerType.SEE_THROUGH, 0, 0xF000F0);
        immediate.draw();

        RenderSystem.enableDepthTest();
        RenderSystem.disableBlend();

        matrixStack.pop();
    }

    @Override
    public void activate() {
        WorldRenderEvents.AFTER_ENTITIES.register(this::renderPlayerNames);
        super.activate();
    }

    @Override
    public void deactivate() {
        super.deactivate();
    }
}
private void renderPlayerName(PlayerEntity player, MatrixStack matrixStack, float tickDelta) {
double x = player.prevX + (player.getX() - player.prevX) * tickDelta;
double y = player.prevY + (player.getY() - player.prevY) * tickDelta;
double z = player.prevZ + (player.getZ() - player.prevZ) * tickDelta;

matrixStack.push();
matrixStack.translate(
x - mc.getEntityRenderDispatcher().camera.getPos().x,
y - mc.getEntityRenderDispatcher().camera.getPos().y + player.getHeight() + 0.5f,
z - mc.getEntityRenderDispatcher().camera.getPos().z
);
matrixStack.multiply(mc.getEntityRenderDispatcher().getRotation());
matrixStack.scale(-0.025f, -0.025f, 0.025f);

TextRenderer textRenderer = mc.textRenderer;
String name = player.getName().getString();
float width = -textRenderer.getWidth(name) / 2f;

VertexConsumerProvider.Immediate immediate = mc.getBufferBuilders().getEntityVertexConsumers();

RenderSystem.disableDepthTest();
RenderSystem.enableBlend();
RenderSystem.defaultBlendFunc();
RenderSystem.setShader(GameRenderer::getPositionColorProgram);

textRenderer.draw(name, width, 0, 0xFFFFFFFF, false, matrixStack.peek().getPositionMatrix(), immediate, TextRenderer.TextLayerType.SEE_THROUGH, 0, 0xF000F0);
immediate.draw();

int yOffset = 10;
for (int i = 0; i < 4; i++) {
var armorItem = player.getInventory().armor.get(i);
if (!armorItem.isEmpty()) {
String armorName = armorItem.getName().getString();
textRenderer.draw(armorName, width, yOffset, 0xFFFFFFAA, false, matrixStack.peek().getPositionMatrix(), immediate, TextRenderer.TextLayerType.SEE_THROUGH, 0, 0xF000F0);
yOffset += 10;
}
}

RenderSystem.enableDepthTest();
RenderSystem.disableBlend();

matrixStack.pop();
}
 
Начинающий
Статус
Оффлайн
Регистрация
25 Июн 2024
Сообщения
29
Реакции[?]
0
Поинты[?]
0
private void renderPlayerName(PlayerEntity player, MatrixStack matrixStack, float tickDelta) {
double x = player.prevX + (player.getX() - player.prevX) * tickDelta;
double y = player.prevY + (player.getY() - player.prevY) * tickDelta;
double z = player.prevZ + (player.getZ() - player.prevZ) * tickDelta;

matrixStack.push();
matrixStack.translate(
x - mc.getEntityRenderDispatcher().camera.getPos().x,
y - mc.getEntityRenderDispatcher().camera.getPos().y + player.getHeight() + 0.5f,
z - mc.getEntityRenderDispatcher().camera.getPos().z
);
matrixStack.multiply(mc.getEntityRenderDispatcher().getRotation());
matrixStack.scale(-0.025f, -0.025f, 0.025f);

TextRenderer textRenderer = mc.textRenderer;
String name = player.getName().getString();
float width = -textRenderer.getWidth(name) / 2f;

VertexConsumerProvider.Immediate immediate = mc.getBufferBuilders().getEntityVertexConsumers();

RenderSystem.disableDepthTest();
RenderSystem.enableBlend();
RenderSystem.defaultBlendFunc();
RenderSystem.setShader(GameRenderer::getPositionColorProgram);

textRenderer.draw(name, width, 0, 0xFFFFFFFF, false, matrixStack.peek().getPositionMatrix(), immediate, TextRenderer.TextLayerType.SEE_THROUGH, 0, 0xF000F0);
immediate.draw();

int yOffset = 10;
for (int i = 0; i < 4; i++) {
var armorItem = player.getInventory().armor.get(i);
if (!armorItem.isEmpty()) {
String armorName = armorItem.getName().getString();
textRenderer.draw(armorName, width, yOffset, 0xFFFFFFAA, false, matrixStack.peek().getPositionMatrix(), immediate, TextRenderer.TextLayerType.SEE_THROUGH, 0, 0xF000F0);
yOffset += 10;
}
}

RenderSystem.enableDepthTest();
RenderSystem.disableBlend();

matrixStack.pop();
}
20:16:00] [Render thread/ERROR] (Minecraft) Unreported exception thrown!
assets.WhiteStar.api.feature.module.exception.ModuleException: Модуль NameTags не найден
at assets.WhiteStar.api.feature.module.ModuleProvider.lambda$module$1(ModuleProvider.java:21) ~[main/:?]
at java.util.Optional.orElseThrow(Optional.java:403) ~[?:?]
at assets.WhiteStar.api.feature.module.ModuleProvider.module(ModuleProvider.java:21) ~[main/:?]
at assets.WhiteStar.implement.features.modules.render.ESP.renderPlayerNames(ESP.java:26) ~[main/:?]
at net.minecraft.client.render.WorldRenderer.handler$zka000$fabric-rendering-v1$afterEntities(WorldRenderer.java:4001) ~[minecraft-merged-a9f8578ad1-1.20.1-net.fabricmc.yarn.1_20_1.1.20.1+build.10-v2.jar:?]
at net.minecraft.client.render.WorldRenderer.render(WorldRenderer.java:1336) ~[minecraft-merged-a9f8578ad1-1.20.1-net.fabricmc.yarn.1_20_1.1.20.1+build.10-v2.jar:?]
at net.minecraft.client.render.GameRenderer.renderWorld(GameRenderer.java:1110) ~[minecraft-merged-a9f8578ad1-1.20.1-net.fabricmc.yarn.1_20_1.1.20.1+build.10-v2.jar:?]
at net.minecraft.client.render.GameRenderer.render(GameRenderer.java:880) ~[minecraft-merged-a9f8578ad1-1.20.1-net.fabricmc.yarn.1_20_1.1.20.1+build.10-v2.jar:?]
at net.minecraft.client.MinecraftClient.render(MinecraftClient.java:1219) ~[minecraft-merged-a9f8578ad1-1.20.1-net.fabricmc.yarn.1_20_1.1.20.1+build.10-v2.jar:?]
at net.minecraft.client.MinecraftClient.run(MinecraftClient.java:802) ~[minecraft-merged-a9f8578ad1-1.20.1-net.fabricmc.yarn.1_20_1.1.20.1+build.10-v2.jar:?]
at net.minecraft.client.main.Main.main(Main.java:250) ~[minecraft-merged-a9f8578ad1-1.20.1-net.fabricmc.yarn.1_20_1.1.20.1+build.10-v2.jar:?]
at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:470) ~[fabric-loader-0.15.6.jar:?]
at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74) ~[fabric-loader-0.15.6.jar:?]
at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23) ~[fabric-loader-0.15.6.jar:?]
at net.fabricmc.devlaunchinjector.Main.main(Main.java:86) ~[dev-launch-injector-0.2.1+build.8.jar:?]
 
Начинающий
Статус
Оффлайн
Регистрация
30 Окт 2024
Сообщения
63
Реакции[?]
0
Поинты[?]
0
20:16:00] [Render thread/ERROR] (Minecraft) Unreported exception thrown!
assets.WhiteStar.api.feature.module.exception.ModuleException: Модуль NameTags не найден
at assets.WhiteStar.api.feature.module.ModuleProvider.lambda$module$1(ModuleProvider.java:21) ~[main/:?]
at java.util.Optional.orElseThrow(Optional.java:403) ~[?:?]
at assets.WhiteStar.api.feature.module.ModuleProvider.module(ModuleProvider.java:21) ~[main/:?]
at assets.WhiteStar.implement.features.modules.render.ESP.renderPlayerNames(ESP.java:26) ~[main/:?]
at net.minecraft.client.render.WorldRenderer.handler$zka000$fabric-rendering-v1$afterEntities(WorldRenderer.java:4001) ~[minecraft-merged-a9f8578ad1-1.20.1-net.fabricmc.yarn.1_20_1.1.20.1+build.10-v2.jar:?]
at net.minecraft.client.render.WorldRenderer.render(WorldRenderer.java:1336) ~[minecraft-merged-a9f8578ad1-1.20.1-net.fabricmc.yarn.1_20_1.1.20.1+build.10-v2.jar:?]
at net.minecraft.client.render.GameRenderer.renderWorld(GameRenderer.java:1110) ~[minecraft-merged-a9f8578ad1-1.20.1-net.fabricmc.yarn.1_20_1.1.20.1+build.10-v2.jar:?]
at net.minecraft.client.render.GameRenderer.render(GameRenderer.java:880) ~[minecraft-merged-a9f8578ad1-1.20.1-net.fabricmc.yarn.1_20_1.1.20.1+build.10-v2.jar:?]
at net.minecraft.client.MinecraftClient.render(MinecraftClient.java:1219) ~[minecraft-merged-a9f8578ad1-1.20.1-net.fabricmc.yarn.1_20_1.1.20.1+build.10-v2.jar:?]
at net.minecraft.client.MinecraftClient.run(MinecraftClient.java:802) ~[minecraft-merged-a9f8578ad1-1.20.1-net.fabricmc.yarn.1_20_1.1.20.1+build.10-v2.jar:?]
at net.minecraft.client.main.Main.main(Main.java:250) ~[minecraft-merged-a9f8578ad1-1.20.1-net.fabricmc.yarn.1_20_1.1.20.1+build.10-v2.jar:?]
at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:470) ~[fabric-loader-0.15.6.jar:?]
at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74) ~[fabric-loader-0.15.6.jar:?]
at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23) ~[fabric-loader-0.15.6.jar:?]
at net.fabricmc.devlaunchinjector.Main.main(Main.java:86) ~[dev-launch-injector-0.2.1+build.8.jar:?]
ну а тандерхак па преколу делали?
 
Начинающий
Статус
Оффлайн
Регистрация
30 Окт 2024
Сообщения
63
Реакции[?]
0
Поинты[?]
0
ну вот тебе код понял да?:
  if (armorMode.getValue() != Armor.None) for (ItemStack armorComponent : stacks) {
                    if (!armorComponent.isEmpty()) {
                        if (armorMode.getValue() == Armor.Full) {
                            context.getMatrices().push();
                            context.getMatrices().translate(posX - 55 + item_offset, (float) (posY - 33f), 0);
                            context.getMatrices().scale(1.1f, 1.1f, 1.1f);
                            DiffuseLighting.disableGuiDepthLighting();
                            context.drawItem(armorComponent, 0, 0);
                            context.drawItemInSlot(mc.textRenderer, armorComponent, 0, 0);
                            context.getMatrices().pop();
                        } else {
                            context.getMatrices().push();
                            context.getMatrices().translate(posX - 35 + item_offset, (float) (posY - 20), 0);
                            context.getMatrices().scale(0.7f, 0.7f, 0.7f);

                            float durability = armorComponent.getMaxDamage() - armorComponent.getDamage();
                            int percent = (int) ((durability / (float) armorComponent.getMaxDamage()) * 100F);

                            Color color;
                            if (percent < 33) {
                                color = Color.RED;
                            } else if (percent > 33 && percent < 66) {
                                color = Color.YELLOW;
                            } else {
                                color = Color.GREEN;
                            }
                            context.drawText(mc.textRenderer, percent + "%", 0, 0, color.getRGB(), false);
                            context.getMatrices().pop();
                        }
ой я чот лишнее кинул прасти ну тут думаю не тупой разберешься да
 
Начинающий
Статус
Оффлайн
Регистрация
25 Июн 2024
Сообщения
29
Реакции[?]
0
Поинты[?]
0
ну вот тебе код понял да?:
  if (armorMode.getValue() != Armor.None) for (ItemStack armorComponent : stacks) {
                    if (!armorComponent.isEmpty()) {
                        if (armorMode.getValue() == Armor.Full) {
                            context.getMatrices().push();
                            context.getMatrices().translate(posX - 55 + item_offset, (float) (posY - 33f), 0);
                            context.getMatrices().scale(1.1f, 1.1f, 1.1f);
                            DiffuseLighting.disableGuiDepthLighting();
                            context.drawItem(armorComponent, 0, 0);
                            context.drawItemInSlot(mc.textRenderer, armorComponent, 0, 0);
                            context.getMatrices().pop();
                        } else {
                            context.getMatrices().push();
                            context.getMatrices().translate(posX - 35 + item_offset, (float) (posY - 20), 0);
                            context.getMatrices().scale(0.7f, 0.7f, 0.7f);

                            float durability = armorComponent.getMaxDamage() - armorComponent.getDamage();
                            int percent = (int) ((durability / (float) armorComponent.getMaxDamage()) * 100F);

                            Color color;
                            if (percent < 33) {
                                color = Color.RED;
                            } else if (percent > 33 && percent < 66) {
                                color = Color.YELLOW;
                            } else {
                                color = Color.GREEN;
                            }
                            context.drawText(mc.textRenderer, percent + "%", 0, 0, color.getRGB(), false);
                            context.getMatrices().pop();
                        }
ой я чот лишнее кинул прасти ну тут думаю не тупой разберешься да
спасибо за показывание процентами прочности брони
мне надо прочность полоской стандартной и иконка брони
 
Начинающий
Статус
Оффлайн
Регистрация
25 Янв 2024
Сообщения
347
Реакции[?]
0
Поинты[?]
1K
как добавить сюда рендер брони

Код:
package assets.WhiteStar.implement.features.modules.render;

import com.mojang.blaze3d.systems.RenderSystem;
import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderContext;
import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderEvents;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.font.TextRenderer;
import net.minecraft.client.render.GameRenderer;
import net.minecraft.client.render.VertexConsumerProvider;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.entity.player.PlayerEntity;
import assets.WhiteStar.api.feature.module.Module;
import assets.WhiteStar.api.feature.module.ModuleCategory;
import assets.WhiteStar.core.WhiteStar;

public class ESP extends Module {
    private final MinecraftClient mc = MinecraftClient.getInstance();

    public ESP() {
        super("ESP", ModuleCategory.RENDER);
        WorldRenderEvents.AFTER_ENTITIES.register(this::renderPlayerNames);
    }

    private void renderPlayerNames(WorldRenderContext context) {
        if (!WhiteStar.getInstance().getModuleProvider()
                .module("NameTags")
                .isState() || mc.world == null) return;

        MatrixStack matrixStack = context.matrixStack();
        float tickDelta = context.tickDelta();

        for (PlayerEntity player : mc.world.getPlayers()) {
            if (player != mc.player) {
                renderPlayerName(player, matrixStack, tickDelta);
            }
        }
    }

    private void renderPlayerName(PlayerEntity player, MatrixStack matrixStack, float tickDelta) {
        double x = player.prevX + (player.getX() - player.prevX) * tickDelta;
        double y = player.prevY + (player.getY() - player.prevY) * tickDelta;
        double z = player.prevZ + (player.getZ() - player.prevZ) * tickDelta;

        matrixStack.push();
        matrixStack.translate(
                x - mc.getEntityRenderDispatcher().camera.getPos().x,
                y - mc.getEntityRenderDispatcher().camera.getPos().y + player.getHeight() + 0.5f,
                z - mc.getEntityRenderDispatcher().camera.getPos().z
        );
        matrixStack.multiply(mc.getEntityRenderDispatcher().getRotation());
        matrixStack.scale(-0.025f, -0.025f, 0.025f);

        TextRenderer textRenderer = mc.textRenderer;
        String name = player.getName().getString();
        float width = -textRenderer.getWidth(name) / 2f;

        VertexConsumerProvider.Immediate immediate = mc.getBufferBuilders().getEntityVertexConsumers();

        RenderSystem.disableDepthTest();
        RenderSystem.enableBlend();
        RenderSystem.defaultBlendFunc();
        RenderSystem.setShader(GameRenderer::getPositionColorProgram);

        textRenderer.draw(name, width, 0, 0xFFFFFFFF, false, matrixStack.peek().getPositionMatrix(), immediate, TextRenderer.TextLayerType.SEE_THROUGH, 0, 0xF000F0);
        immediate.draw();

        RenderSystem.enableDepthTest();
        RenderSystem.disableBlend();

        matrixStack.pop();
    }

    @Override
    public void activate() {
        WorldRenderEvents.AFTER_ENTITIES.register(this::renderPlayerNames);
        super.activate();
    }

    @Override
    public void deactivate() {
        super.deactivate();
    }
}
Блять ты хотябы в этих есп измени шрифт, пойми эти есп хуйня без прожекта и ты нихуя с ними не увидишь можешь даже ре пытаться их улучшить
 
Сверху Снизу