Начинающий
Начинающий
- Статус
- Оффлайн
- Регистрация
- 23 Май 2025
- Сообщения
- 28
- Реакции
- 0
- Выберите загрузчик игры
- OptiFine
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
добавлял себе в клиент только с целью что это будет ахуенно и уникально выглядеть но получилась хуйня, консоль обновляеться а так же ее можно двигать делать больше и тд, хз кому надо но пусть будет)
Пожалуйста, авторизуйтесь для просмотра ссылки.
code:
public class ConsoleScreen extends Screen {
private static final int MIN_WINDOW_WIDTH = 300;
private static final int MIN_WINDOW_HEIGHT = 150;
private static final int PADDING = 10;
private static final int LINE_HEIGHT = 13;
private static final int RESIZE_AREA_SIZE = 20;
private int scrollOffset = 0;
private List<String> logs = new ArrayList<>();
private Dragging drag;
private float dragWidth = 400;
private float dragHeight = 150;
private boolean resizing;
private float resizeStartX, resizeStartY;
private float initialWidth, initialHeight;
private long lastUpdateTime = 0;
private static final long UPDATE_INTERVAL = 1000;
public ConsoleScreen() {
super(new StringTextComponent("Console"));
centerWindow();
loadLogsFromFile();
}
[USER=1367676]@override[/USER]
public void init() {
super.init();
centerWindow();
}
private void centerWindow() {
Minecraft minecraft = Minecraft.getInstance();
drag = new Dragging(null, "Console",
(minecraft.getMainWindow().getScaledWidth() - dragWidth) / 2,
(minecraft.getMainWindow().getScaledHeight() - dragHeight) / 2);
drag.setWidth(dragWidth);
drag.setHeight(dragHeight);
}
private void loadLogsFromFile() {
File logFile = new File(Minecraft.getInstance().gameDir, "logs/latest.log");
if (!logFile.exists()) {
logs.add("Log file not found: " + logFile.getAbsolutePath());
return;
}
try (BufferedReader reader = new BufferedReader(new FileReader(logFile))) {
String line;
while ((line = reader.readLine()) != null) {
logs.add(line);
}
} catch (IOException e) {
logs.add("Error reading log file: " + e.getMessage());
}
}
private void updateLogs() {
long currentTime = System.currentTimeMillis();
if (currentTime - lastUpdateTime >= UPDATE_INTERVAL) {
File logFile = new File(Minecraft.getInstance().gameDir, "logs/latest.log");
if (logFile.exists()) {
try (BufferedReader reader = new BufferedReader(new FileReader(logFile))) {
List<String> newLogs = new ArrayList<>();
String line;
while ((line = reader.readLine()) != null) {
newLogs.add(line);
}
int existingSize = logs.size();
if (newLogs.size() > existingSize) {
logs.addAll(newLogs.subList(existingSize, newLogs.size()));
}
} catch (IOException e) {
logs.add("Error updating log file: " + e.getMessage());
}
}
lastUpdateTime = currentTime;
}
}
[USER=1367676]@override[/USER]
public void render(MatrixStack matrixStack, int mouseX, int mouseY, float partialTicks) {
drag.onDraw(mouseX, mouseY, Minecraft.getInstance().getMainWindow());
dragWidth = drag.getWidth();
dragHeight = drag.getHeight();
dragWidth = Math.min(dragWidth, Minecraft.getInstance().getMainWindow().getScaledWidth() - drag.getX());
dragHeight = Math.min(dragHeight, Minecraft.getInstance().getMainWindow().getScaledHeight() - drag.getY());
drag.setWidth(dragWidth);
drag.setHeight(dragHeight);
updateLogs();
Scissor.push();
Scissor.setFromComponentCoordinates((int) drag.getX(), (int) drag.getY(), (int) dragWidth, (int) dragHeight);
RenderService.drawRoundedRect(drag.getX(), drag.getY(), dragWidth, dragHeight, 3, ColorService.rgb(17, 17, 17));
RenderService.drawRoundedRect(drag.getX(), drag.getY() + 15, dragWidth, 2, 0, ColorService.rgb(5, 5, 5));
int startY = (int) (drag.getY() + PADDING);
int maxLines = (int) ((dragHeight - 2 * PADDING) / LINE_HEIGHT);
int startIndex = Math.max(0, logs.size() - maxLines + scrollOffset);
for (int i = startIndex; i < logs.size() && i < startIndex + maxLines; i++) {
String log = logs.get(i);
Fonts.sfui.drawText(matrixStack, log, drag.getX() + PADDING - 4, startY + (i - startIndex) * LINE_HEIGHT + 15, -1, 6.5f);
}
Fonts.sfui.drawText(matrixStack, "Console Debug", drag.getX() + 20, drag.getY() + 5, -1, 8);
Fonts.sfui.drawText(matrixStack, "x", drag.getX() + dragWidth - 12, drag.getY() + 4, -1, 8);
ClientFonts.icowex[24].drawString(matrixStack, "h", drag.getX() + 5, drag.getY() + 5, -1);
Scissor.unset();
Scissor.pop();
}
[USER=1367676]@override[/USER]
public boolean mouseClicked(double mouseX, double mouseY, int button) {
if (button == 0) {
boolean isInResizeArea = isResizeHover((int) mouseX, (int) mouseY);
if (isInResizeArea) {
resizing = true;
resizeStartX = (float) mouseX;
resizeStartY = (float) mouseY;
initialWidth = dragWidth;
initialHeight = dragHeight;
return true;
}
boolean isInTitleBar = mouseY >= drag.getY() && mouseY <= drag.getY() + 15 &&
mouseX >= drag.getX() && mouseX <= drag.getX() + dragWidth;
if (isInTitleBar && drag.onClick(mouseX, mouseY, button)) {
return true;
}
}
return super.mouseClicked(mouseX, mouseY, button);
}
[USER=1367676]@override[/USER]
public boolean mouseReleased(double mouseX, double mouseY, int button) {
if (button == 0) {
drag.onRelease(button);
if (resizing) {
resizing = false;
initialWidth = dragWidth;
initialHeight = dragHeight;
}
}
return super.mouseReleased(mouseX, mouseY, button);
}
[USER=1367676]@override[/USER]
public boolean mouseDragged(double mouseX, double mouseY, int button, double deltaX, double deltaY) {
if (resizing && button == 0) {
float newWidth = Math.max(MIN_WINDOW_WIDTH, initialWidth + ((float) mouseX - resizeStartX));
float newHeight = Math.max(MIN_WINDOW_HEIGHT, initialHeight + ((float) mouseY - resizeStartY));
newWidth = Math.min(newWidth, Minecraft.getInstance().getMainWindow().getScaledWidth() - drag.getX());
newHeight = Math.min(newHeight, Minecraft.getInstance().getMainWindow().getScaledHeight() - drag.getY());
drag.setWidth(newWidth);
drag.setHeight(newHeight);
dragWidth = newWidth;
dragHeight = newHeight;
return true;
}
super.mouseDragged(mouseX, mouseY, button, deltaX, deltaY);
return false;
}
[USER=1367676]@override[/USER]
public boolean mouseScrolled(double mouseX, double mouseY, double delta) {
if (mouseX >= drag.getX() && mouseX <= drag.getX() + dragWidth &&
mouseY >= drag.getY() && mouseY <= drag.getY() + dragHeight) {
int maxLines = (int) ((dragHeight - 2 * PADDING) / LINE_HEIGHT);
int maxScrollOffset = Math.max(0, logs.size() - maxLines);
int newOffset = (int) (scrollOffset - delta);
scrollOffset = Math.max(-maxScrollOffset, Math.min(0, newOffset));
return true;
}
return super.mouseScrolled(mouseX, mouseY, delta);
}
[USER=1367676]@override[/USER]
public void resize(Minecraft minecraft, int width, int height) {
super.resize(minecraft, width, height);
centerWindow();
}
[USER=1367676]@override[/USER]
public boolean isPauseScreen() {
return false;
}
[USER=1367676]@override[/USER]
public boolean keyPressed(int keyCode, int scanCode, int modifiers) {
if (keyCode == 256) {
Minecraft.getInstance().displayGuiScreen(null);
return true;
}
return super.keyPressed(keyCode, scanCode, modifiers);
}
private boolean isResizeHover(int mouseX, int mouseY) {
boolean isHovering = mouseX >= drag.getX() + dragWidth - RESIZE_AREA_SIZE &&
mouseX <= drag.getX() + dragWidth &&
mouseY >= drag.getY() + dragHeight - RESIZE_AREA_SIZE &&
mouseY <= drag.getY() + dragHeight;
return isHovering;
}
}