Вопрос Игра ставится на паузу при открытии ClickGUI

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

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

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

Спасибо!

Я захотел сделать мод на визуалы при помощи чат гпт, пришел к вот такой гуишке
1729176004027.png

Но столкнулся с проблемой, которую не получилось решить при помощи чат гпт. Майн ставится на паузу при открытии гуи.

Вот мой код:

ClickGuiScreen

package texad.client.gui;

import com.mojang.blaze3d.matrix.MatrixStack;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.util.text.StringTextComponent;
import org.lwjgl.glfw.GLFW;

public class ClickGuiScreen extends Screen {
private int guiWidth = 200;
private int guiHeight = 150;
private int guiLeft;
private int guiTop;

private String[] tabs = {"Visuals", "Themes", "Info"};
private int selectedTab = 0;

public ClickGuiScreen() {
super(new StringTextComponent("Rly Visuals"));
}

@Override
protected void init() {
this.guiLeft = (this.width - this.guiWidth) / 2;
this.guiTop = (this.height - this.guiHeight) / 2;
}

@Override
public void render(MatrixStack matrixStack, int mouseX, int mouseY, float partialTicks) {
fill(matrixStack, guiLeft, guiTop, guiLeft + guiWidth, guiTop + guiHeight, 0xFF2E2E2E);
this.font.draw(matrixStack, "Rly Visuals", guiLeft + 10, guiTop + 10, 0xFFFFFFFF);

for (int i = 0; i < tabs.length; i++) {
int tabX = guiLeft + 10 + i * 60;
int tabY = guiTop + 30;
fill(matrixStack, tabX, tabY, tabX + 50, tabY + 20, i == selectedTab ? 0xFF444444 : 0xFF3A3A3A);
this.font.draw(matrixStack, tabs, tabX + 5, tabY + 5, 0xFFFFFFFF);
}

renderSelectedTabContent(matrixStack);
}

@Override
public boolean keyPressed(int keyCode, int scanCode, int modifiers) {
if (keyCode == GLFW.GLFW_KEY_ESCAPE) { // Позволяем закрывать GUI на ESC
this.onClose();
return true;
}
return super.keyPressed(keyCode, scanCode, modifiers);
}

@Override
public boolean mouseClicked(double mouseX, double mouseY, int button) {
for (int i = 0; i < tabs.length; i++) {
int tabX = guiLeft + 10 + i * 60;
int tabY = guiTop + 30;
if (mouseX >= tabX && mouseX <= tabX + 50 && mouseY >= tabY && mouseY <= tabY + 20) {
selectedTab = i;
return true;
}
}
return super.mouseClicked(mouseX, mouseY, button);
}

private void renderSelectedTabContent(MatrixStack matrixStack) {
switch (selectedTab) {
case 0: renderVisualsContent(matrixStack); break;
case 1: renderThemesContent(matrixStack); break;
case 2: renderInfoContent(matrixStack); break;
}
}

private void renderVisualsContent(MatrixStack matrixStack) {
this.font.draw(matrixStack, "Visuals Settings", guiLeft + 10, guiTop + 60, 0xFFFFFFFF);
}

private void renderThemesContent(MatrixStack matrixStack) {
this.font.draw(matrixStack, "Theme Selection", guiLeft + 10, guiTop + 60, 0xFFFFFFFF);
}

private void renderInfoContent(MatrixStack matrixStack) {
this.font.draw(matrixStack, "Discord: Your Discord Link", guiLeft + 10, guiTop + 60, 0xFFFFFFFF);
}

@Override
public void onClose() {
super.onClose();
Minecraft.getInstance().setScreen(null); // Закрытие GUI корректно
}
}

KeyBindHandler

package texad.client.keybinds;

import texad.client.gui.ClickGuiScreen;
import net.minecraft.client.Minecraft;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.client.event.InputEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import org.lwjgl.glfw.GLFW;

@Mod.EventBusSubscriber(value = Dist.CLIENT)
public class KeyBindHandler {

@SubscribeEvent
public static void onKeyInput(InputEvent.KeyInputEvent event) {
if (event.getKey() == GLFW.GLFW_KEY_RIGHT_SHIFT && event.getAction() == GLFW.GLFW_PRESS) {
Minecraft minecraft = Minecraft.getInstance();
if (minecraft.screen == null) { // Проверка, чтобы убедиться, что GUI открывается только если нет другого экрана
minecraft.setScreen(new ClickGuiScreen());
}
}
}
}

1729176004027.png
 
Начинающий
Статус
Оффлайн
Регистрация
26 Авг 2024
Сообщения
556
Реакции[?]
0
Поинты[?]
1K
Я захотел сделать мод на визуалы при помощи чат гпт, пришел к вот такой гуишке
Посмотреть вложение 288223

Но столкнулся с проблемой, которую не получилось решить при помощи чат гпт. Майн ставится на паузу при открытии гуи.

Вот мой код:

ClickGuiScreen

package texad.client.gui;

import com.mojang.blaze3d.matrix.MatrixStack;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.util.text.StringTextComponent;
import org.lwjgl.glfw.GLFW;

public class ClickGuiScreen extends Screen {
private int guiWidth = 200;
private int guiHeight = 150;
private int guiLeft;
private int guiTop;

private String[] tabs = {"Visuals", "Themes", "Info"};
private int selectedTab = 0;

public ClickGuiScreen() {
super(new StringTextComponent("Rly Visuals"));
}

@Override
protected void init() {
this.guiLeft = (this.width - this.guiWidth) / 2;
this.guiTop = (this.height - this.guiHeight) / 2;
}

@Override
public void render(MatrixStack matrixStack, int mouseX, int mouseY, float partialTicks) {
fill(matrixStack, guiLeft, guiTop, guiLeft + guiWidth, guiTop + guiHeight, 0xFF2E2E2E);
this.font.draw(matrixStack, "Rly Visuals", guiLeft + 10, guiTop + 10, 0xFFFFFFFF);

for (int i = 0; i < tabs.length; i++) {
int tabX = guiLeft + 10 + i * 60;
int tabY = guiTop + 30;
fill(matrixStack, tabX, tabY, tabX + 50, tabY + 20, i == selectedTab ? 0xFF444444 : 0xFF3A3A3A);
this.font.draw(matrixStack, tabs, tabX + 5, tabY + 5, 0xFFFFFFFF);
}

renderSelectedTabContent(matrixStack);
}

@Override
public boolean keyPressed(int keyCode, int scanCode, int modifiers) {
if (keyCode == GLFW.GLFW_KEY_ESCAPE) { // Позволяем закрывать GUI на ESC
this.onClose();
return true;
}
return super.keyPressed(keyCode, scanCode, modifiers);
}

@Override
public boolean mouseClicked(double mouseX, double mouseY, int button) {
for (int i = 0; i < tabs.length; i++) {
int tabX = guiLeft + 10 + i * 60;
int tabY = guiTop + 30;
if (mouseX >= tabX && mouseX <= tabX + 50 && mouseY >= tabY && mouseY <= tabY + 20) {
selectedTab = i;
return true;
}
}
return super.mouseClicked(mouseX, mouseY, button);
}

private void renderSelectedTabContent(MatrixStack matrixStack) {
switch (selectedTab) {
case 0: renderVisualsContent(matrixStack); break;
case 1: renderThemesContent(matrixStack); break;
case 2: renderInfoContent(matrixStack); break;
}
}

private void renderVisualsContent(MatrixStack matrixStack) {
this.font.draw(matrixStack, "Visuals Settings", guiLeft + 10, guiTop + 60, 0xFFFFFFFF);
}

private void renderThemesContent(MatrixStack matrixStack) {
this.font.draw(matrixStack, "Theme Selection", guiLeft + 10, guiTop + 60, 0xFFFFFFFF);
}

private void renderInfoContent(MatrixStack matrixStack) {
this.font.draw(matrixStack, "Discord: Your Discord Link", guiLeft + 10, guiTop + 60, 0xFFFFFFFF);
}

@Override
public void onClose() {
super.onClose();
Minecraft.getInstance().setScreen(null); // Закрытие GUI корректно
}
}

KeyBindHandler

package texad.client.keybinds;

import texad.client.gui.ClickGuiScreen;
import net.minecraft.client.Minecraft;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.client.event.InputEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import org.lwjgl.glfw.GLFW;

@Mod.EventBusSubscriber(value = Dist.CLIENT)
public class KeyBindHandler {

@SubscribeEvent
public static void onKeyInput(InputEvent.KeyInputEvent event) {
if (event.getKey() == GLFW.GLFW_KEY_RIGHT_SHIFT && event.getAction() == GLFW.GLFW_PRESS) {
Minecraft minecraft = Minecraft.getInstance();
if (minecraft.screen == null) { // Проверка, чтобы убедиться, что GUI открывается только если нет другого экрана
minecraft.setScreen(new ClickGuiScreen());
}
}
}
}

Посмотреть вложение 288223
поидее эта штука онли в одиночном мире будет
 
Начинающий
Статус
Оффлайн
Регистрация
15 Июн 2023
Сообщения
7
Реакции[?]
0
Поинты[?]
0
ну хотя-бы примерно, что изменить там надо для мп?
ладно все я уже запросил у чат гпт, мод оказывается реал на одиночку. Спс большое за помощь, сейчас буду под мп переделывать, там думаю не будет паузы при открытии гуи
 
Начинающий
Статус
Оффлайн
Регистрация
31 Авг 2023
Сообщения
699
Реакции[?]
6
Поинты[?]
5K
ну хотя-бы примерно, что изменить там надо для мп?

ладно все я уже запросил у чат гпт, мод оказывается реал на одиночку. Спс большое за помощь, сейчас буду под мп переделывать, там думаю не будет паузы при открытии гуи
Тип у тя и так код под мп
 
Начинающий
Статус
Оффлайн
Регистрация
2 Июл 2024
Сообщения
41
Реакции[?]
1
Поинты[?]
1K
Я захотел сделать мод на визуалы при помощи чат гпт, пришел к вот такой гуишке
Посмотреть вложение 288223

Но столкнулся с проблемой, которую не получилось решить при помощи чат гпт. Майн ставится на паузу при открытии гуи.

Вот мой код:

ClickGuiScreen

package texad.client.gui;

import com.mojang.blaze3d.matrix.MatrixStack;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.util.text.StringTextComponent;
import org.lwjgl.glfw.GLFW;

public class ClickGuiScreen extends Screen {
private int guiWidth = 200;
private int guiHeight = 150;
private int guiLeft;
private int guiTop;

private String[] tabs = {"Visuals", "Themes", "Info"};
private int selectedTab = 0;

public ClickGuiScreen() {
super(new StringTextComponent("Rly Visuals"));
}

@Override
protected void init() {
this.guiLeft = (this.width - this.guiWidth) / 2;
this.guiTop = (this.height - this.guiHeight) / 2;
}

@Override
public void render(MatrixStack matrixStack, int mouseX, int mouseY, float partialTicks) {
fill(matrixStack, guiLeft, guiTop, guiLeft + guiWidth, guiTop + guiHeight, 0xFF2E2E2E);
this.font.draw(matrixStack, "Rly Visuals", guiLeft + 10, guiTop + 10, 0xFFFFFFFF);

for (int i = 0; i < tabs.length; i++) {
int tabX = guiLeft + 10 + i * 60;
int tabY = guiTop + 30;
fill(matrixStack, tabX, tabY, tabX + 50, tabY + 20, i == selectedTab ? 0xFF444444 : 0xFF3A3A3A);
this.font.draw(matrixStack, tabs, tabX + 5, tabY + 5, 0xFFFFFFFF);
}

renderSelectedTabContent(matrixStack);
}

@Override
public boolean keyPressed(int keyCode, int scanCode, int modifiers) {
if (keyCode == GLFW.GLFW_KEY_ESCAPE) { // Позволяем закрывать GUI на ESC
this.onClose();
return true;
}
return super.keyPressed(keyCode, scanCode, modifiers);
}

@Override
public boolean mouseClicked(double mouseX, double mouseY, int button) {
for (int i = 0; i < tabs.length; i++) {
int tabX = guiLeft + 10 + i * 60;
int tabY = guiTop + 30;
if (mouseX >= tabX && mouseX <= tabX + 50 && mouseY >= tabY && mouseY <= tabY + 20) {
selectedTab = i;
return true;
}
}
return super.mouseClicked(mouseX, mouseY, button);
}

private void renderSelectedTabContent(MatrixStack matrixStack) {
switch (selectedTab) {
case 0: renderVisualsContent(matrixStack); break;
case 1: renderThemesContent(matrixStack); break;
case 2: renderInfoContent(matrixStack); break;
}
}

private void renderVisualsContent(MatrixStack matrixStack) {
this.font.draw(matrixStack, "Visuals Settings", guiLeft + 10, guiTop + 60, 0xFFFFFFFF);
}

private void renderThemesContent(MatrixStack matrixStack) {
this.font.draw(matrixStack, "Theme Selection", guiLeft + 10, guiTop + 60, 0xFFFFFFFF);
}

private void renderInfoContent(MatrixStack matrixStack) {
this.font.draw(matrixStack, "Discord: Your Discord Link", guiLeft + 10, guiTop + 60, 0xFFFFFFFF);
}

@Override
public void onClose() {
super.onClose();
Minecraft.getInstance().setScreen(null); // Закрытие GUI корректно
}
}

KeyBindHandler

package texad.client.keybinds;

import texad.client.gui.ClickGuiScreen;
import net.minecraft.client.Minecraft;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.client.event.InputEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import org.lwjgl.glfw.GLFW;

@Mod.EventBusSubscriber(value = Dist.CLIENT)
public class KeyBindHandler {

@SubscribeEvent
public static void onKeyInput(InputEvent.KeyInputEvent event) {
if (event.getKey() == GLFW.GLFW_KEY_RIGHT_SHIFT && event.getAction() == GLFW.GLFW_PRESS) {
Minecraft minecraft = Minecraft.getInstance();
if (minecraft.screen == null) { // Проверка, чтобы убедиться, что GUI открывается только если нет другого экрана
minecraft.setScreen(new ClickGuiScreen());
}
}
}
}

Посмотреть вложение 288223
CHATGPT
 
Forge Api ;-;
Начинающий
Статус
Онлайн
Регистрация
3 Май 2023
Сообщения
670
Реакции[?]
15
Поинты[?]
12K
Мне вот интересно, там чел реально на серьёзном рыле чату жпт писал, что у него игра на паузу ставится и как это фиксить
 
Сверху Снизу