Вопрос Оценочка ремейка алтменеджера

Начинающий
Статус
Оффлайн
Регистрация
15 Мар 2024
Сообщения
216
Реакции[?]
1
Поинты[?]
1K

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

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

Спасибо!

1732299679047.png
Простой ремейк Альта наксона
Код если кому то нужно
Паста и че:
package im.expensive.ui.mainmenu;

import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.platform.GlStateManager;

import im.expensive.utils.client.ClientUtil;
import im.expensive.utils.client.IMinecraft;
import im.expensive.utils.client.Vec2i;
import im.expensive.utils.math.MathUtil;
import im.expensive.utils.math.StopWatch;
import im.expensive.utils.shader.ShaderUtil;
import net.minecraft.client.MainWindow;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.AbstractGui;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.Session;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.text.StringTextComponent;
import org.apache.commons.lang3.RandomStringUtils;
import org.lwjgl.glfw.GLFW;
import im.expensive.utils.player.MouseUtil;
import im.expensive.utils.font.Fonts;
import im.expensive.utils.render.*;

import java.awt.*;
import java.util.ArrayList;
import java.util.Iterator;



public class AltManager extends Screen implements IMinecraft {

    public AltManager() {
        super(new StringTextComponent(""));
    }

    public final StopWatch timer = new StopWatch();
    public float o = 0;

    public ArrayList<Account> accounts = new ArrayList<>();

    public float scroll;
    public float scrollAn;

    private String altName = "";
    private boolean typing;

    [USER=1367676]@override[/USER]
    public void render(MatrixStack matrixStack, int mouseX, int mouseY, float partialTicks) {
        super.render(matrixStack, mouseX, mouseY, partialTicks);


        MainWindow mainWindow = mc.getMainWindow();
        int windowWidth = ClientUtil.calc(mainWindow.getScaledWidth());
        int windowHeight = ClientUtil.calc(mainWindow.getScaledHeight());

        int logoWidth =
                1920 / 2;
        int logoHeight = 1080 / 2;

        scrollAn = MathUtil.lerp(scrollAn, scroll, 5);

        for (float i=0;i<1488;i++) {
            if(timer.isReached(10)){
                o++;
                i=0;
                timer.reset();
            }
        }

        GlStateManager.pushMatrix();
        GlStateManager.enableBlend();

        ShaderUtil2.MAIN_MENU.begin();
        ShaderUtil2.MAIN_MENU.setUniform("time", mc.timer.getPartialTicks(1) / 20.0F);
        ShaderUtil2.MAIN_MENU.setUniform("resolution", mc.getMainWindow().getScaledWidth(), mc.getMainWindow().getScaledHeight());
        ShaderUtil2.MAIN_MENU.drawQuads(0,0, mc.getMainWindow().getScaledWidth(), mc.getMainWindow().getScaledHeight());
        ShaderUtil2.MAIN_MENU.end();
        GlStateManager.disableBlend();
        GlStateManager.popMatrix();
        mc.gameRenderer.setupOverlayRendering(2);

        float offset = 6f;
        float width = 250f, height = 270f;
        float x = mc.getMainWindow().getScaledWidth() / 2f+  - width / 2f, y = mc.getMainWindow().getScaledHeight() / 2f - height / 2f;

        // Квадрат фона
        DisplayUtils.drawRoundedRect(x-100 - offset, y - offset, width+300 + offset * 2f, height + offset * 2f, 5f, ColorUtils.rgba(22, 22, 22, 215));

        // Первый заголовок
        Fonts.icons1[22].drawString(matrixStack, "D", x-70 + offset, y + offset + 1f, -1);
        Fonts.gilroyBold[22].drawString(matrixStack, "Добавьте новый аккаунт!", x-70 + offset + Fonts.icons1[16].getWidth("D") + 6f, y + offset, -1);
        Fonts.gilroyBold[22].drawString(matrixStack, "ChangeLog", x-100 + offset + Fonts.icons1[16].getWidth("D") + 6f, y+60 + offset, -1);
        Fonts.gilroyBold[12].drawString(matrixStack, "", x+120 + offset, y+100 + offset + 18f, ColorUtils.rgb(180, 180, 180));

        // Квадратик для ввода ника
        DisplayUtils.drawRoundedRect(x-100 + offset, y + offset + 25f, width - offset * 2f, 20f, 2f, ColorUtils.rgba(60, 60, 60, 215));
        Scissor.push();
        Scissor.setFromComponentCoordinates(x-100 + offset, y + offset + 25f, width - offset * 2f, 20f);
        Fonts.msSemiBold[15].drawString(matrixStack, typing ? (altName + (typing ? "|" : "")) : "Введите сюда ваш ник!", x-90 + offset + 2f, y + offset + 32.5f, ColorUtils.rgb(152, 152, 152));
        Scissor.unset();
        Scissor.pop();

        // Знак для ввода рандомного ника
        Fonts.msBold[22].drawString(matrixStack, "?", x-77 + width - offset - 12.5f, y + offset + 31f, -1);

        // Второй заголовок
        Fonts.gilroyBold[22].drawString(matrixStack, "Аккаунты:", x+170 + offset, y-40 + offset + 60f, -1);
        Fonts.gilroyBold[12].drawString(matrixStack, "Нету 1 версия", x-60 + offset, y+6 + offset + 73f, ColorUtils.rgb(180, 180, 180));

        // Вывод никнеймов
        DisplayUtils.drawRoundedRect(x+170 + offset, y-40 + offset + 80f, width - offset * 2f, 177.5f, 2f, ColorUtils.rgba(80, 80, 80, 215));

        // Надпись при пустом листе аккаунтов
        if (accounts.isEmpty()) Fonts.msBold[22].drawCenteredString(matrixStack, "Их нету..", x+170 + width / 2f, y-40 + offset + 165.75f, -1);

        // Основной функционал для показа аккаунтов
        float size = 0f, iter = scrollAn, offsetAccounts = 0f;
        Scissor.push();
        Scissor.setFromComponentCoordinates(x+170 + offset, y-40 + offset + 80f, width - offset * 2f, 177.5f);
        for (Account account : accounts) {
            float scrollY = y + iter * 22f;

            DisplayUtils.drawRoundedRect(x+170 + offset + 2f, scrollY-40 + offset + 82f + offsetAccounts, width - offset * 2f - 4f, 20f, 2f, ColorUtils.rgb(101, 101, 101));

            Fonts.msSemiBold[16].drawString(matrixStack, account.accountName, x+170 + offset + 25f, scrollY-40 + offset + 82f + 8f + offsetAccounts, -1);

            Stencil.initStencilToWrite();
            DisplayUtils.drawRoundedRect(x+170 + offset + 4f + 0.5f, scrollY-40 + offset + 84f + offsetAccounts, 16, 16, 2f, Color.BLACK.getRGB());
            Stencil.readStencilBuffer(1);
            mc.getTextureManager().bindTexture(account.skin);
            AbstractGui.drawScaledCustomSizeModalRect(x+170 + offset + 4f + 0.5f, scrollY-40 + offset + 84f + offsetAccounts, 8F, 8F, 8F, 8F, 16, 16, 64, 64);
            Stencil.uninitStencilBuffer();

            iter++;
            size++;
        }
        scroll = MathHelper.clamp(scroll, size > 8 ? -size + 4 : 0, 0);
        Scissor.unset();
        Scissor.pop();

        // Показ текущего ника
        Fonts.gilroyBold[12].drawString(matrixStack, "Ваш ник - " + mc.session.getUsername() + ".", x + offset, y + height - offset / 2, ColorUtils.rgb(180, 180, 180));

        mc.gameRenderer.setupOverlayRendering();
    }

    [USER=1367676]@override[/USER]
    public boolean mouseReleased(double mouseX, double mouseY, int button) {
        return super.mouseReleased(mouseX, mouseY, button);
    }

    [USER=1367676]@override[/USER]
    public boolean keyPressed(int keyCode, int scanCode, int modifiers) {

        if (keyCode == GLFW.GLFW_KEY_BACKSPACE) {
            if (!altName.isEmpty() && typing)
                altName = altName.substring(0, altName.length() - 1);
        }

        if (keyCode == GLFW.GLFW_KEY_ENTER) {
            if (!altName.isEmpty()) {
                accounts.add(new Account(altName));
                AltConfig.updateFile();
            }
            typing = false;
            altName = "";
        }

        return super.keyPressed(keyCode, scanCode, modifiers);
    }

    [USER=1367676]@override[/USER]
    public boolean charTyped(char codePoint, int modifiers) {
        if (altName.length() <= 20) altName += Character.toString(codePoint);
        return super.charTyped(codePoint, modifiers);
    }

    [USER=1367676]@override[/USER]
    public boolean mouseClicked(double mouseX, double mouseY, int button) {
        Vec2i fixed = ScaleMath.getMouse((int) mouseX, (int) mouseY);
        mouseX = fixed.getX();
        mouseY = fixed.getY();

        float offset = 6f;
        float width = 250f, height = 270f;
        float x = mc.getMainWindow().getScaledWidth() / 2f - width / 2f, y = mc.getMainWindow().getScaledHeight() / 2f - height / 2f;

        if (DisplayUtils.isInRegion(mouseX, mouseY, x-77 + width - offset - 12.5f, y + offset + 31f, Fonts.msBold[22].getWidth("?"), Fonts.msBold[22].getFontHeight())) {
            accounts.add(new Account(RandomStringUtils.randomAlphabetic(8)));
            AltConfig.updateFile();
        }
        if (DisplayUtils.isInRegion(mouseX, mouseY, x-77 + offset, y + offset + 25f, width - offset * 2f, 20f) && !DisplayUtils.isInRegion(mouseX, mouseY, x + width - offset - 12.5f, y + offset + 31f, Fonts.msBold[22].getWidth("?"), Fonts.msBold[22].getFontHeight())) {
            typing = !typing;
        }

        // Основной функционал позволяющий позволяющий брать/удалять ник
        float iter = scrollAn, offsetAccounts = 0f;
        Iterator<Account> iterator = accounts.iterator();
        while (iterator.hasNext()) {
            Account account = iterator.next();

            float scrollY = y + iter * 22f;

            if (DisplayUtils.isInRegion(mouseX, mouseY, x+110 + offset + 2f, scrollY-40 + offset + 82f + offsetAccounts, width - offset * 2f - 4f, 28f)) {
                if (button == 0) {
                    mc.session = new Session(account.accountName, "", "", "mojang");
                } else if (button == 1) {
                    iterator.remove();
                    AltConfig.updateFile();
                }
            }

            iter++;
        }
        return super.mouseClicked(mouseX, mouseY, button);
    }

    [USER=1367676]@override[/USER]
    public boolean mouseScrolled(double mouseX, double mouseY, double delta) {
        Vec2i fixed = ScaleMath.getMouse((int) mouseX, (int) mouseY);
        mouseX = fixed.getX();
        mouseY = fixed.getY();

        // Скролл
        float offset = 6f;
        float width = 250f, height = 270f;
        float x = mc.getMainWindow().getScaledWidth() / 2f - width / 2f, y = mc.getMainWindow().getScaledHeight() / 2f - height / 2f;

        if (MouseUtil.isHovered(mouseX, mouseY, x+147 + offset, y + offset + 80f, width - offset * 2f, 177.5f)) scroll += delta * 1;
        return super.mouseScrolled(mouseX, mouseY, delta);
    }

    [USER=1367676]@override[/USER]
    protected void init() {
        super.init();
    }

    [USER=1367676]@override[/USER]
    public void init(Minecraft minecraft, int width, int height) {
        super.init(minecraft, width, height);
    }

    [USER=1367676]@override[/USER]
    public void tick() {
        super.tick();
    }
}
 
Начинающий
Статус
Оффлайн
Регистрация
26 Дек 2023
Сообщения
471
Реакции[?]
2
Поинты[?]
1K
Посмотреть вложение 291199
Простой ремейк Альта наксона
Код если кому то нужно
Паста и че:
package im.expensive.ui.mainmenu;

import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.platform.GlStateManager;

import im.expensive.utils.client.ClientUtil;
import im.expensive.utils.client.IMinecraft;
import im.expensive.utils.client.Vec2i;
import im.expensive.utils.math.MathUtil;
import im.expensive.utils.math.StopWatch;
import im.expensive.utils.shader.ShaderUtil;
import net.minecraft.client.MainWindow;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.AbstractGui;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.Session;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.text.StringTextComponent;
import org.apache.commons.lang3.RandomStringUtils;
import org.lwjgl.glfw.GLFW;
import im.expensive.utils.player.MouseUtil;
import im.expensive.utils.font.Fonts;
import im.expensive.utils.render.*;

import java.awt.*;
import java.util.ArrayList;
import java.util.Iterator;



public class AltManager extends Screen implements IMinecraft {

    public AltManager() {
        super(new StringTextComponent(""));
    }

    public final StopWatch timer = new StopWatch();
    public float o = 0;

    public ArrayList<Account> accounts = new ArrayList<>();

    public float scroll;
    public float scrollAn;

    private String altName = "";
    private boolean typing;

    [USER=1367676]@override[/USER]
    public void render(MatrixStack matrixStack, int mouseX, int mouseY, float partialTicks) {
        super.render(matrixStack, mouseX, mouseY, partialTicks);


        MainWindow mainWindow = mc.getMainWindow();
        int windowWidth = ClientUtil.calc(mainWindow.getScaledWidth());
        int windowHeight = ClientUtil.calc(mainWindow.getScaledHeight());

        int logoWidth =
                1920 / 2;
        int logoHeight = 1080 / 2;

        scrollAn = MathUtil.lerp(scrollAn, scroll, 5);

        for (float i=0;i<1488;i++) {
            if(timer.isReached(10)){
                o++;
                i=0;
                timer.reset();
            }
        }

        GlStateManager.pushMatrix();
        GlStateManager.enableBlend();

        ShaderUtil2.MAIN_MENU.begin();
        ShaderUtil2.MAIN_MENU.setUniform("time", mc.timer.getPartialTicks(1) / 20.0F);
        ShaderUtil2.MAIN_MENU.setUniform("resolution", mc.getMainWindow().getScaledWidth(), mc.getMainWindow().getScaledHeight());
        ShaderUtil2.MAIN_MENU.drawQuads(0,0, mc.getMainWindow().getScaledWidth(), mc.getMainWindow().getScaledHeight());
        ShaderUtil2.MAIN_MENU.end();
        GlStateManager.disableBlend();
        GlStateManager.popMatrix();
        mc.gameRenderer.setupOverlayRendering(2);

        float offset = 6f;
        float width = 250f, height = 270f;
        float x = mc.getMainWindow().getScaledWidth() / 2f+  - width / 2f, y = mc.getMainWindow().getScaledHeight() / 2f - height / 2f;

        // Квадрат фона
        DisplayUtils.drawRoundedRect(x-100 - offset, y - offset, width+300 + offset * 2f, height + offset * 2f, 5f, ColorUtils.rgba(22, 22, 22, 215));

        // Первый заголовок
        Fonts.icons1[22].drawString(matrixStack, "D", x-70 + offset, y + offset + 1f, -1);
        Fonts.gilroyBold[22].drawString(matrixStack, "Добавьте новый аккаунт!", x-70 + offset + Fonts.icons1[16].getWidth("D") + 6f, y + offset, -1);
        Fonts.gilroyBold[22].drawString(matrixStack, "ChangeLog", x-100 + offset + Fonts.icons1[16].getWidth("D") + 6f, y+60 + offset, -1);
        Fonts.gilroyBold[12].drawString(matrixStack, "", x+120 + offset, y+100 + offset + 18f, ColorUtils.rgb(180, 180, 180));

        // Квадратик для ввода ника
        DisplayUtils.drawRoundedRect(x-100 + offset, y + offset + 25f, width - offset * 2f, 20f, 2f, ColorUtils.rgba(60, 60, 60, 215));
        Scissor.push();
        Scissor.setFromComponentCoordinates(x-100 + offset, y + offset + 25f, width - offset * 2f, 20f);
        Fonts.msSemiBold[15].drawString(matrixStack, typing ? (altName + (typing ? "|" : "")) : "Введите сюда ваш ник!", x-90 + offset + 2f, y + offset + 32.5f, ColorUtils.rgb(152, 152, 152));
        Scissor.unset();
        Scissor.pop();

        // Знак для ввода рандомного ника
        Fonts.msBold[22].drawString(matrixStack, "?", x-77 + width - offset - 12.5f, y + offset + 31f, -1);

        // Второй заголовок
        Fonts.gilroyBold[22].drawString(matrixStack, "Аккаунты:", x+170 + offset, y-40 + offset + 60f, -1);
        Fonts.gilroyBold[12].drawString(matrixStack, "Нету 1 версия", x-60 + offset, y+6 + offset + 73f, ColorUtils.rgb(180, 180, 180));

        // Вывод никнеймов
        DisplayUtils.drawRoundedRect(x+170 + offset, y-40 + offset + 80f, width - offset * 2f, 177.5f, 2f, ColorUtils.rgba(80, 80, 80, 215));

        // Надпись при пустом листе аккаунтов
        if (accounts.isEmpty()) Fonts.msBold[22].drawCenteredString(matrixStack, "Их нету..", x+170 + width / 2f, y-40 + offset + 165.75f, -1);

        // Основной функционал для показа аккаунтов
        float size = 0f, iter = scrollAn, offsetAccounts = 0f;
        Scissor.push();
        Scissor.setFromComponentCoordinates(x+170 + offset, y-40 + offset + 80f, width - offset * 2f, 177.5f);
        for (Account account : accounts) {
            float scrollY = y + iter * 22f;

            DisplayUtils.drawRoundedRect(x+170 + offset + 2f, scrollY-40 + offset + 82f + offsetAccounts, width - offset * 2f - 4f, 20f, 2f, ColorUtils.rgb(101, 101, 101));

            Fonts.msSemiBold[16].drawString(matrixStack, account.accountName, x+170 + offset + 25f, scrollY-40 + offset + 82f + 8f + offsetAccounts, -1);

            Stencil.initStencilToWrite();
            DisplayUtils.drawRoundedRect(x+170 + offset + 4f + 0.5f, scrollY-40 + offset + 84f + offsetAccounts, 16, 16, 2f, Color.BLACK.getRGB());
            Stencil.readStencilBuffer(1);
            mc.getTextureManager().bindTexture(account.skin);
            AbstractGui.drawScaledCustomSizeModalRect(x+170 + offset + 4f + 0.5f, scrollY-40 + offset + 84f + offsetAccounts, 8F, 8F, 8F, 8F, 16, 16, 64, 64);
            Stencil.uninitStencilBuffer();

            iter++;
            size++;
        }
        scroll = MathHelper.clamp(scroll, size > 8 ? -size + 4 : 0, 0);
        Scissor.unset();
        Scissor.pop();

        // Показ текущего ника
        Fonts.gilroyBold[12].drawString(matrixStack, "Ваш ник - " + mc.session.getUsername() + ".", x + offset, y + height - offset / 2, ColorUtils.rgb(180, 180, 180));

        mc.gameRenderer.setupOverlayRendering();
    }

    [USER=1367676]@override[/USER]
    public boolean mouseReleased(double mouseX, double mouseY, int button) {
        return super.mouseReleased(mouseX, mouseY, button);
    }

    [USER=1367676]@override[/USER]
    public boolean keyPressed(int keyCode, int scanCode, int modifiers) {

        if (keyCode == GLFW.GLFW_KEY_BACKSPACE) {
            if (!altName.isEmpty() && typing)
                altName = altName.substring(0, altName.length() - 1);
        }

        if (keyCode == GLFW.GLFW_KEY_ENTER) {
            if (!altName.isEmpty()) {
                accounts.add(new Account(altName));
                AltConfig.updateFile();
            }
            typing = false;
            altName = "";
        }

        return super.keyPressed(keyCode, scanCode, modifiers);
    }

    [USER=1367676]@override[/USER]
    public boolean charTyped(char codePoint, int modifiers) {
        if (altName.length() <= 20) altName += Character.toString(codePoint);
        return super.charTyped(codePoint, modifiers);
    }

    [USER=1367676]@override[/USER]
    public boolean mouseClicked(double mouseX, double mouseY, int button) {
        Vec2i fixed = ScaleMath.getMouse((int) mouseX, (int) mouseY);
        mouseX = fixed.getX();
        mouseY = fixed.getY();

        float offset = 6f;
        float width = 250f, height = 270f;
        float x = mc.getMainWindow().getScaledWidth() / 2f - width / 2f, y = mc.getMainWindow().getScaledHeight() / 2f - height / 2f;

        if (DisplayUtils.isInRegion(mouseX, mouseY, x-77 + width - offset - 12.5f, y + offset + 31f, Fonts.msBold[22].getWidth("?"), Fonts.msBold[22].getFontHeight())) {
            accounts.add(new Account(RandomStringUtils.randomAlphabetic(8)));
            AltConfig.updateFile();
        }
        if (DisplayUtils.isInRegion(mouseX, mouseY, x-77 + offset, y + offset + 25f, width - offset * 2f, 20f) && !DisplayUtils.isInRegion(mouseX, mouseY, x + width - offset - 12.5f, y + offset + 31f, Fonts.msBold[22].getWidth("?"), Fonts.msBold[22].getFontHeight())) {
            typing = !typing;
        }

        // Основной функционал позволяющий позволяющий брать/удалять ник
        float iter = scrollAn, offsetAccounts = 0f;
        Iterator<Account> iterator = accounts.iterator();
        while (iterator.hasNext()) {
            Account account = iterator.next();

            float scrollY = y + iter * 22f;

            if (DisplayUtils.isInRegion(mouseX, mouseY, x+110 + offset + 2f, scrollY-40 + offset + 82f + offsetAccounts, width - offset * 2f - 4f, 28f)) {
                if (button == 0) {
                    mc.session = new Session(account.accountName, "", "", "mojang");
                } else if (button == 1) {
                    iterator.remove();
                    AltConfig.updateFile();
                }
            }

            iter++;
        }
        return super.mouseClicked(mouseX, mouseY, button);
    }

    [USER=1367676]@override[/USER]
    public boolean mouseScrolled(double mouseX, double mouseY, double delta) {
        Vec2i fixed = ScaleMath.getMouse((int) mouseX, (int) mouseY);
        mouseX = fixed.getX();
        mouseY = fixed.getY();

        // Скролл
        float offset = 6f;
        float width = 250f, height = 270f;
        float x = mc.getMainWindow().getScaledWidth() / 2f - width / 2f, y = mc.getMainWindow().getScaledHeight() / 2f - height / 2f;

        if (MouseUtil.isHovered(mouseX, mouseY, x+147 + offset, y + offset + 80f, width - offset * 2f, 177.5f)) scroll += delta * 1;
        return super.mouseScrolled(mouseX, mouseY, delta);
    }

    [USER=1367676]@override[/USER]
    protected void init() {
        super.init();
    }

    [USER=1367676]@override[/USER]
    public void init(Minecraft minecraft, int width, int height) {
        super.init(minecraft, width, height);
    }

    [USER=1367676]@override[/USER]
    public void tick() {
        super.tick();
    }
}
хуйня полная
Посмотреть вложение 291199
Простой ремейк Альта наксона
Код если кому то нужно
Паста и че:
package im.expensive.ui.mainmenu;

import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.platform.GlStateManager;

import im.expensive.utils.client.ClientUtil;
import im.expensive.utils.client.IMinecraft;
import im.expensive.utils.client.Vec2i;
import im.expensive.utils.math.MathUtil;
import im.expensive.utils.math.StopWatch;
import im.expensive.utils.shader.ShaderUtil;
import net.minecraft.client.MainWindow;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.AbstractGui;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.Session;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.text.StringTextComponent;
import org.apache.commons.lang3.RandomStringUtils;
import org.lwjgl.glfw.GLFW;
import im.expensive.utils.player.MouseUtil;
import im.expensive.utils.font.Fonts;
import im.expensive.utils.render.*;

import java.awt.*;
import java.util.ArrayList;
import java.util.Iterator;



public class AltManager extends Screen implements IMinecraft {

    public AltManager() {
        super(new StringTextComponent(""));
    }

    public final StopWatch timer = new StopWatch();
    public float o = 0;

    public ArrayList<Account> accounts = new ArrayList<>();

    public float scroll;
    public float scrollAn;

    private String altName = "";
    private boolean typing;

    [USER=1367676]@override[/USER]
    public void render(MatrixStack matrixStack, int mouseX, int mouseY, float partialTicks) {
        super.render(matrixStack, mouseX, mouseY, partialTicks);


        MainWindow mainWindow = mc.getMainWindow();
        int windowWidth = ClientUtil.calc(mainWindow.getScaledWidth());
        int windowHeight = ClientUtil.calc(mainWindow.getScaledHeight());

        int logoWidth =
                1920 / 2;
        int logoHeight = 1080 / 2;

        scrollAn = MathUtil.lerp(scrollAn, scroll, 5);

        for (float i=0;i<1488;i++) {
            if(timer.isReached(10)){
                o++;
                i=0;
                timer.reset();
            }
        }

        GlStateManager.pushMatrix();
        GlStateManager.enableBlend();

        ShaderUtil2.MAIN_MENU.begin();
        ShaderUtil2.MAIN_MENU.setUniform("time", mc.timer.getPartialTicks(1) / 20.0F);
        ShaderUtil2.MAIN_MENU.setUniform("resolution", mc.getMainWindow().getScaledWidth(), mc.getMainWindow().getScaledHeight());
        ShaderUtil2.MAIN_MENU.drawQuads(0,0, mc.getMainWindow().getScaledWidth(), mc.getMainWindow().getScaledHeight());
        ShaderUtil2.MAIN_MENU.end();
        GlStateManager.disableBlend();
        GlStateManager.popMatrix();
        mc.gameRenderer.setupOverlayRendering(2);

        float offset = 6f;
        float width = 250f, height = 270f;
        float x = mc.getMainWindow().getScaledWidth() / 2f+  - width / 2f, y = mc.getMainWindow().getScaledHeight() / 2f - height / 2f;

        // Квадрат фона
        DisplayUtils.drawRoundedRect(x-100 - offset, y - offset, width+300 + offset * 2f, height + offset * 2f, 5f, ColorUtils.rgba(22, 22, 22, 215));

        // Первый заголовок
        Fonts.icons1[22].drawString(matrixStack, "D", x-70 + offset, y + offset + 1f, -1);
        Fonts.gilroyBold[22].drawString(matrixStack, "Добавьте новый аккаунт!", x-70 + offset + Fonts.icons1[16].getWidth("D") + 6f, y + offset, -1);
        Fonts.gilroyBold[22].drawString(matrixStack, "ChangeLog", x-100 + offset + Fonts.icons1[16].getWidth("D") + 6f, y+60 + offset, -1);
        Fonts.gilroyBold[12].drawString(matrixStack, "", x+120 + offset, y+100 + offset + 18f, ColorUtils.rgb(180, 180, 180));

        // Квадратик для ввода ника
        DisplayUtils.drawRoundedRect(x-100 + offset, y + offset + 25f, width - offset * 2f, 20f, 2f, ColorUtils.rgba(60, 60, 60, 215));
        Scissor.push();
        Scissor.setFromComponentCoordinates(x-100 + offset, y + offset + 25f, width - offset * 2f, 20f);
        Fonts.msSemiBold[15].drawString(matrixStack, typing ? (altName + (typing ? "|" : "")) : "Введите сюда ваш ник!", x-90 + offset + 2f, y + offset + 32.5f, ColorUtils.rgb(152, 152, 152));
        Scissor.unset();
        Scissor.pop();

        // Знак для ввода рандомного ника
        Fonts.msBold[22].drawString(matrixStack, "?", x-77 + width - offset - 12.5f, y + offset + 31f, -1);

        // Второй заголовок
        Fonts.gilroyBold[22].drawString(matrixStack, "Аккаунты:", x+170 + offset, y-40 + offset + 60f, -1);
        Fonts.gilroyBold[12].drawString(matrixStack, "Нету 1 версия", x-60 + offset, y+6 + offset + 73f, ColorUtils.rgb(180, 180, 180));

        // Вывод никнеймов
        DisplayUtils.drawRoundedRect(x+170 + offset, y-40 + offset + 80f, width - offset * 2f, 177.5f, 2f, ColorUtils.rgba(80, 80, 80, 215));

        // Надпись при пустом листе аккаунтов
        if (accounts.isEmpty()) Fonts.msBold[22].drawCenteredString(matrixStack, "Их нету..", x+170 + width / 2f, y-40 + offset + 165.75f, -1);

        // Основной функционал для показа аккаунтов
        float size = 0f, iter = scrollAn, offsetAccounts = 0f;
        Scissor.push();
        Scissor.setFromComponentCoordinates(x+170 + offset, y-40 + offset + 80f, width - offset * 2f, 177.5f);
        for (Account account : accounts) {
            float scrollY = y + iter * 22f;

            DisplayUtils.drawRoundedRect(x+170 + offset + 2f, scrollY-40 + offset + 82f + offsetAccounts, width - offset * 2f - 4f, 20f, 2f, ColorUtils.rgb(101, 101, 101));

            Fonts.msSemiBold[16].drawString(matrixStack, account.accountName, x+170 + offset + 25f, scrollY-40 + offset + 82f + 8f + offsetAccounts, -1);

            Stencil.initStencilToWrite();
            DisplayUtils.drawRoundedRect(x+170 + offset + 4f + 0.5f, scrollY-40 + offset + 84f + offsetAccounts, 16, 16, 2f, Color.BLACK.getRGB());
            Stencil.readStencilBuffer(1);
            mc.getTextureManager().bindTexture(account.skin);
            AbstractGui.drawScaledCustomSizeModalRect(x+170 + offset + 4f + 0.5f, scrollY-40 + offset + 84f + offsetAccounts, 8F, 8F, 8F, 8F, 16, 16, 64, 64);
            Stencil.uninitStencilBuffer();

            iter++;
            size++;
        }
        scroll = MathHelper.clamp(scroll, size > 8 ? -size + 4 : 0, 0);
        Scissor.unset();
        Scissor.pop();

        // Показ текущего ника
        Fonts.gilroyBold[12].drawString(matrixStack, "Ваш ник - " + mc.session.getUsername() + ".", x + offset, y + height - offset / 2, ColorUtils.rgb(180, 180, 180));

        mc.gameRenderer.setupOverlayRendering();
    }

    [USER=1367676]@override[/USER]
    public boolean mouseReleased(double mouseX, double mouseY, int button) {
        return super.mouseReleased(mouseX, mouseY, button);
    }

    [USER=1367676]@override[/USER]
    public boolean keyPressed(int keyCode, int scanCode, int modifiers) {

        if (keyCode == GLFW.GLFW_KEY_BACKSPACE) {
            if (!altName.isEmpty() && typing)
                altName = altName.substring(0, altName.length() - 1);
        }

        if (keyCode == GLFW.GLFW_KEY_ENTER) {
            if (!altName.isEmpty()) {
                accounts.add(new Account(altName));
                AltConfig.updateFile();
            }
            typing = false;
            altName = "";
        }

        return super.keyPressed(keyCode, scanCode, modifiers);
    }

    [USER=1367676]@override[/USER]
    public boolean charTyped(char codePoint, int modifiers) {
        if (altName.length() <= 20) altName += Character.toString(codePoint);
        return super.charTyped(codePoint, modifiers);
    }

    [USER=1367676]@override[/USER]
    public boolean mouseClicked(double mouseX, double mouseY, int button) {
        Vec2i fixed = ScaleMath.getMouse((int) mouseX, (int) mouseY);
        mouseX = fixed.getX();
        mouseY = fixed.getY();

        float offset = 6f;
        float width = 250f, height = 270f;
        float x = mc.getMainWindow().getScaledWidth() / 2f - width / 2f, y = mc.getMainWindow().getScaledHeight() / 2f - height / 2f;

        if (DisplayUtils.isInRegion(mouseX, mouseY, x-77 + width - offset - 12.5f, y + offset + 31f, Fonts.msBold[22].getWidth("?"), Fonts.msBold[22].getFontHeight())) {
            accounts.add(new Account(RandomStringUtils.randomAlphabetic(8)));
            AltConfig.updateFile();
        }
        if (DisplayUtils.isInRegion(mouseX, mouseY, x-77 + offset, y + offset + 25f, width - offset * 2f, 20f) && !DisplayUtils.isInRegion(mouseX, mouseY, x + width - offset - 12.5f, y + offset + 31f, Fonts.msBold[22].getWidth("?"), Fonts.msBold[22].getFontHeight())) {
            typing = !typing;
        }

        // Основной функционал позволяющий позволяющий брать/удалять ник
        float iter = scrollAn, offsetAccounts = 0f;
        Iterator<Account> iterator = accounts.iterator();
        while (iterator.hasNext()) {
            Account account = iterator.next();

            float scrollY = y + iter * 22f;

            if (DisplayUtils.isInRegion(mouseX, mouseY, x+110 + offset + 2f, scrollY-40 + offset + 82f + offsetAccounts, width - offset * 2f - 4f, 28f)) {
                if (button == 0) {
                    mc.session = new Session(account.accountName, "", "", "mojang");
                } else if (button == 1) {
                    iterator.remove();
                    AltConfig.updateFile();
                }
            }

            iter++;
        }
        return super.mouseClicked(mouseX, mouseY, button);
    }

    [USER=1367676]@override[/USER]
    public boolean mouseScrolled(double mouseX, double mouseY, double delta) {
        Vec2i fixed = ScaleMath.getMouse((int) mouseX, (int) mouseY);
        mouseX = fixed.getX();
        mouseY = fixed.getY();

        // Скролл
        float offset = 6f;
        float width = 250f, height = 270f;
        float x = mc.getMainWindow().getScaledWidth() / 2f - width / 2f, y = mc.getMainWindow().getScaledHeight() / 2f - height / 2f;

        if (MouseUtil.isHovered(mouseX, mouseY, x+147 + offset, y + offset + 80f, width - offset * 2f, 177.5f)) scroll += delta * 1;
        return super.mouseScrolled(mouseX, mouseY, delta);
    }

    [USER=1367676]@override[/USER]
    protected void init() {
        super.init();
    }

    [USER=1367676]@override[/USER]
    public void init(Minecraft minecraft, int width, int height) {
        super.init(minecraft, width, height);
    }

    [USER=1367676]@override[/USER]
    public void tick() {
        super.tick();
    }
}
тупо рект растянул и позицию этой хуйни поменял по иксу
 
Начинающий
Статус
Оффлайн
Регистрация
15 Мар 2024
Сообщения
216
Реакции[?]
1
Поинты[?]
1K
хуйня полная

тупо рект растянул и позицию этой хуйни поменял по иксу
так а что еще добавить
хуйня полная

тупо рект растянул и позицию этой хуйни поменял по иксу
Простой ремейк
 
Сверху Снизу