-
Автор темы
- #1
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
ну ебать, что сказать начал делать на 3.1 кто не смог запастить альт менеджер (таких много) для тех пойдет там рандом ник и более мение норм код если нужны утилки пишите а вообще это говно не должно было вспливать
Это пиздец....:
package ru.protection.desing.mainmenu;
import com.mojang.blaze3d.platform.GlStateManager;
import ru.protection.client.config.AltConfig;
import ru.protection.system.client.IMinecraft;
import ru.protection.system.math.StopWatch;
import ru.protection.system.render.*;
import ru.protection.system.render.font.Fonts;
import com.mojang.blaze3d.matrix.MatrixStack;
import ru.protection.system.math.MathUtil;
import net.minecraft.util.Session;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.vector.Vector4f;
import org.lwjgl.glfw.GLFW;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import java.util.concurrent.ThreadLocalRandom;
public class AltWidget implements IMinecraft {
public final List<Alt> alts = new ArrayList<>();
private float x;
private final float y;
private float animation = 0f;
private final StopWatch animationTimer = new StopWatch();
public AltWidget() {
y = 10;
}
public boolean open;
private String altName = "";
private boolean typing;
private float scrollPre;
private float scroll;
public void updateScroll(int mouseX, int mouseY, float delta) {
float minHeight = 20 + (4 * 25);
float height = open ? Math.max(minHeight, Math.min(20 + alts.size() * 25, mc.getMainWindow().getScaledHeight() - 40)) : 20;
if (MathUtil.isHovered(mouseX, mouseY, this.x, this.y + 20, 160, height - 70) && open) {
scrollPre += delta * 10;
}
}
public void render(MatrixStack stack, int mouseX, int mouseY) {
boolean hovered = MathUtil.isHovered(mouseX, mouseY, x, y, 160, 20);
if (hovered) {
if (animation < 1f) animation += animationTimer.getElapsedTime() / 200f;
} else if (animation > 0f) animation -= animationTimer.getElapsedTime() / 200f;
animation = MathHelper.clamp(animation, 0f, 1f);
animationTimer.reset();
scroll = MathUtil.fast(scroll, scrollPre, 10);
this.x = mc.getMainWindow().getScaledWidth() - 160 - 45;
float width = 160;
float minHeight = 20 + (4 * 25);
float height = open ? Math.max(minHeight, Math.min(20 + alts.size() * 25, mc.getMainWindow().getScaledHeight() - 40)) : 20;
float inputPanelHeight = 50;
Stencil.initStencilToWrite();
DisplayUtils.drawRoundedRect(this.x, this.y, width, height, 8, -1);
Stencil.readStencilBuffer(1);
KawaseBlur.blur.BLURRED.draw();
Stencil.uninitStencilBuffer();
int startColor = ColorUtils.interpolateColorsBackAndForth(15, 0, ColorUtils.rgb(50, 53, 77), ColorUtils.rgb(60, 63, 87), false);
int endColor = ColorUtils.interpolateColorsBackAndForth(15, 180, ColorUtils.rgb(70, 73, 97), ColorUtils.rgb(80, 83, 107), false);
DisplayUtils.drawGradientRoundedRect(this.x, this.y, width, height, 8, startColor, endColor);
float outlineWidth = 1.5f;
int outlineColor = ColorUtils.interpolateColorsBackAndForth(15, 0, ColorUtils.rgba(255, 255, 255, hovered ? 100 : 40), ColorUtils.rgba(255, 255, 255, hovered ? 150 : 60), false);
DisplayUtils.drawRoundedRectOutline(this.x, this.y, width, height, 8, outlineWidth, outlineColor);
Scissor.push();
Scissor.setFromComponentCoordinates(this.x, this.y, width - 16, height);
float scale = 1.0f + (0.05f * animation);
GlStateManager.pushMatrix();
GlStateManager.translatef(this.x + 6, this.y + 6, 0);
GlStateManager.scalef(scale, scale, 1);
Fonts.montserrat.drawText(stack, "Alt Manager", 0, 0, -1, 8);
GlStateManager.popMatrix();
Scissor.unset();
Scissor.pop();
Fonts.icons.drawText(stack, open ? "C" : "B", this.x + width - 15, this.y + 6.5f, -1, 8);
if (open) {
DisplayUtils.drawRectW(this.x, this.y + 25, width, 0.5f, ColorUtils.rgba(64, 64, 64, 255));
float listHeight = height - inputPanelHeight - 20;
Scissor.push();
Scissor.setFromComponentCoordinates(this.x, this.y + 32, width, listHeight);
float i = 0;
for (Alt alt : alts) {
float altY = this.y + 26 + i * 20 + scroll;
boolean altHovered = MathUtil.isHovered(mouseX, mouseY, this.x + 5, altY, width - 10, 18);
DisplayUtils.drawRoundedRect(this.x + 5, altY, width - 10, 18, 4, mc.session.getUsername().equals(alt.name) ? ColorUtils.rgba(40, 40, 46, 180) : ColorUtils.rgba(30, 30, 36, altHovered ? 128 : 64));
Fonts.montserrat.drawText(stack, alt.name, this.x + 10, altY + 5, -1, 7);
i++;
}
Scissor.unset();
Scissor.pop();
float inputY = this.y + height - 25;
String textToDraw = altName.isEmpty() && !typing ? "nickname" : altName;
DisplayUtils.drawRoundedRect(this.x + 5, inputY, width - 10, 18, 4, ColorUtils.rgba(30, 30, 36, 64));
DisplayUtils.drawRoundedRect(this.x + width - 35, inputY + 2, 20, 14, 3, ColorUtils.rgba(40, 40, 46, 128));
Fonts.montserrat.drawCenteredText(stack, "R", this.x + width - 25, inputY + 5, -1, 7);
DisplayUtils.drawRoundedRect(this.x + width - 55, inputY + 2, 20, 14, 3, ColorUtils.rgba(40, 40, 46, 128));
Fonts.montserrat.drawCenteredText(stack, "+", this.x + width - 45, inputY + 5, -1, 7);
Fonts.montserrat.drawText(stack, textToDraw + (typing ? (System.currentTimeMillis() % 1000 > 500 ? "_" : "") : ""),
this.x + 10, inputY + 5, ColorUtils.rgba(255, 255, 255, typing ? 255 : 128), 7);
}
}
public void onChar(char typed) {
if (typing) {
if (Fonts.montserrat.getWidth(altName, 7f) < 160 - 70) {
altName += typed;
}
}
}
public void onKey(int key) {
boolean ctrlDown = GLFW.glfwGetKey(mc.getMainWindow().getHandle(), GLFW.GLFW_KEY_LEFT_CONTROL) == GLFW.GLFW_PRESS || GLFW.glfwGetKey(mc.getMainWindow().getHandle(), GLFW.GLFW_KEY_RIGHT_CONTROL) == GLFW.GLFW_PRESS;
if (typing) {
if (ctrlDown && key == GLFW.GLFW_KEY_V) {
try {
altName += GLFW.glfwGetClipboardString(mc.getMainWindow().getHandle());
} catch (Exception e) {
e.printStackTrace();
}
}
if (key == GLFW.GLFW_KEY_BACKSPACE) {
if (!altName.isEmpty()) {
altName = altName.substring(0, altName.length() - 1);
}
}
if (key == GLFW.GLFW_KEY_ENTER) {
if (altName.length() >= 3) {
alts.add(new Alt(altName));
altName = "";
AltConfig.updateFile();
}
typing = false;
}
}
}
public void click(int mouseX, int mouseY, int button) {
float width = 160;
float minHeight = 20 + (4 * 25);
float height = open ? Math.max(minHeight, Math.min(20 + alts.size() * 25, mc.getMainWindow().getScaledHeight() - 40)) : 20;
if (MathUtil.isHovered(mouseX, mouseY, this.x, this.y, width, 20)) {
open = !open;
if (!open) typing = false;
}
if (open) {
float i = 0;
for (Alt alt : alts) {
float altY = this.y + 26 + i * 20 + scroll;
if (MathUtil.isHovered(mouseX, mouseY, this.x + 5, altY, width - 10, 18)) {
if (button == 0) {
mc.session = new Session(alt.name, UUID.randomUUID().toString(), "", "mojang");
AltConfig.updateFile();
} else {
alts.remove(alt);
AltConfig.updateFile();
break;
}
}
i++;
}
float inputY = this.y + height - 25;
if (MathUtil.isHovered(mouseX, mouseY, this.x + 5, inputY, width - 70, 18)) {
typing = !typing;
}
if (MathUtil.isHovered(mouseX, mouseY, this.x + width - 55, inputY + 2, 20, 14)) {
if (altName.length() >= 3) {
alts.add(new Alt(altName));
altName = "";
AltConfig.updateFile();
}
typing = false;
}
if (MathUtil.isHovered(mouseX, mouseY, this.x + width - 35, inputY + 2, 20, 14)) {
altName = generateRandomName();
typing = false;
}
}
}
private String generateRandomName() {
String[] prefixes = {"Player", "User", "Gamer", "Pro", "Cool", "Epic", "Shadow", "Dark", "Light", "Crystal", "Star", "Moon", "Dragon", "Phoenix", "Wolf", "Tiger", "Eagle", "Ghost", "Ninja", "Warrior", "Knight", "King", "Legend", "Hero", "Storm", "Thunder", "Fire", "Ice", "Wind", "Sky", "Cyber", "Tech", "Pixel", "Bit", "Neon", "Quantum", "Alpha", "Omega", "Ultra", "Mega", "Super", "Hyper"};
String[] suffixes = {"Master", "Slayer", "Hunter", "Runner", "Walker", "Rider", "Gaming", "Play", "Live", "Stream", "YT", "TTV", "Pro", "God", "Lord", "King", "Boss", "Chief"};
String prefix = prefixes[ThreadLocalRandom.current().nextInt(prefixes.length)];
String suffix = suffixes[ThreadLocalRandom.current().nextInt(suffixes.length)];
int number = ThreadLocalRandom.current().nextInt(100, 999);
return prefix + suffix + number;
}
}