
fabiani46
Members-
Posts
9 -
Joined
-
Last visited
fabiani46's Achievements

Tree Puncher (2/8)
0
Reputation
-
[1.12.2] Overriding world selection GUI doesn't seem to work
fabiani46 replied to fabiani46's topic in Modder Support
Why? Then how can I override original GuiWorldSelection's buttons without creating new GUI class? -
Hello, I tried to overrid ethe whole GuiWorldSelection with my GUI elements I created this class but when I call this MC crashes with null pointer ex, at drawing screen. package hu.testmod.gui; import com.google.common.base.Splitter; import com.google.common.collect.Lists; import java.io.IOException; import javax.annotation.Nullable; import net.minecraft.client.gui.GuiCreateWorld; import net.minecraft.client.gui.GuiListWorldSelection; import net.minecraft.client.gui.GuiListWorldSelectionEntry; import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.gui.GuiWorldSelection; import net.minecraft.client.resources.I18n; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; public class GuiTestWorldSelection extends GuiWorldSelection { public GuiTestWorldSelection(GuiScreen screenIn) { super(screenIn); } private static final Logger LOGGER = LogManager.getLogger(); /** The screen to return to when this closes (always Main Menu). */ protected GuiScreen prevScreen; protected String title = "Select world"; /** * Tooltip displayed a world whose version is different from this client's */ private String worldVersTooltip; private GuiTestButton deleteButton; private GuiTestButton selectButton; private GuiTestButton renameButton; private GuiTestButton copyButton; private GuiListWorldSelection selectionList; /** * Adds the buttons (and other controls) to the screen in question. Called when the GUI is displayed and when the * window resizes, the buttonList is cleared beforehand. */ public void initGui() { this.title = I18n.format("selectWorld.title"); this.selectionList = new GuiListWorldSelection(this, this.mc, this.width, this.height, 32, this.height - 64, 36); this.postInit(); } /** * Handles mouse input. */ public void handleMouseInput() throws IOException { super.handleMouseInput(); this.selectionList.handleMouseInput(); } public void postInit() { this.selectButton = this.addButton(new GuiTestButton(1, this.width / 2 - 154, this.height - 52, 150, 20, I18n.format("selectWorld.select"))); this.addButton(new GuiTestButton(3, this.width / 2 + 4, this.height - 52, 150, 20, I18n.format("selectWorld.create"))); this.renameButton = this.addButton(new GuiTestButton(4, this.width / 2 - 154, this.height - 28, 72, 20, I18n.format("selectWorld.edit"))); this.deleteButton = this.addButton(new GuiTestButton(2, this.width / 2 - 76, this.height - 28, 72, 20, I18n.format("selectWorld.delete"))); this.copyButton = this.addButton(new GuiTestButton(5, this.width / 2 + 4, this.height - 28, 72, 20, I18n.format("selectWorld.recreate"))); this.addButton(new GuiTestButton(0, this.width / 2 + 82, this.height - 28, 72, 20, I18n.format("gui.cancel"))); this.selectButton.enabled = false; this.deleteButton.enabled = false; this.renameButton.enabled = false; this.copyButton.enabled = false; } /** * Called by the controls from the buttonList when activated. (Mouse pressed for buttons) */ protected void actionPerformed(GuiTestButton button) throws IOException { if (button.enabled) { GuiListWorldSelectionEntry guilistworldselectionentry = this.selectionList.getSelectedWorld(); if (button.id == 2) { if (guilistworldselectionentry != null) { guilistworldselectionentry.deleteWorld(); } } else if (button.id == 1) { if (guilistworldselectionentry != null) { guilistworldselectionentry.joinWorld(); } } else if (button.id == 3) { this.mc.displayGuiScreen(new GuiCreateWorld(this)); } else if (button.id == 4) { if (guilistworldselectionentry != null) { guilistworldselectionentry.editWorld(); } } else if (button.id == 0) { this.mc.displayGuiScreen(this.prevScreen); } else if (button.id == 5 && guilistworldselectionentry != null) { guilistworldselectionentry.recreateWorld(); } } } /** * Draws the screen and all the components in it. */ public void drawScreen(int mouseX, int mouseY, float partialTicks) { this.worldVersTooltip = null; this.selectionList.drawScreen(mouseX, mouseY, partialTicks); this.drawCenteredString(this.fontRenderer, this.title, this.width / 2, 20, 16777215); super.drawScreen(mouseX, mouseY, partialTicks); if (this.worldVersTooltip != null) { this.drawHoveringText(Lists.newArrayList(Splitter.on("\n").split(this.worldVersTooltip)), mouseX, mouseY); } } /** * Called when the mouse is clicked. Args : mouseX, mouseY, clickedButton */ protected void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException { super.mouseClicked(mouseX, mouseY, mouseButton); this.selectionList.mouseClicked(mouseX, mouseY, mouseButton); } /** * Called when a mouse button is released. */ protected void mouseReleased(int mouseX, int mouseY, int state) { super.mouseReleased(mouseX, mouseY, state); this.selectionList.mouseReleased(mouseX, mouseY, state); } /** * Called back by selectionList when we call its drawScreen method, from ours. */ public void setVersionTooltip(String p_184861_1_) { this.worldVersTooltip = p_184861_1_; } public void selectWorld(@Nullable GuiListWorldSelectionEntry entry) { boolean flag = entry != null; this.selectButton.enabled = flag; this.deleteButton.enabled = flag; this.renameButton.enabled = flag; this.copyButton.enabled = flag; } } What could be the problem?
-
Hello. How can I rotate the gradient's degree of the drawGradientRect()?
-
Thnak you! Now it's working!
-
I checked it seems its not called
-
@Mod.EventBusSubscriber public static class EventHandlers { @SubscribeEvent public void openGui(GuiOpenEvent event) { if (event.getGui() instanceof GuiMainMenu) { event.setGui(new GuiKodaikMainMenu()); System.out.println("fastdqwefqwefqwefwqe"); } } } how do i know if its called? sorry i have little experience in modding I used to code plugins not mods, i just learning
-
Oh sorry it shoudl be GuiMainMenu But I removed sideonly not working too.
-
This is JSON code for a mod called Custom Main Menu i think.
-
Hello. My problem is that I created a new replacement for Main Menu GUI: package hu.test.gui; import java.io.IOException; import hu.test.utils.References; import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiScreen; import net.minecraft.util.ResourceLocation; import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.Side; @SideOnly(Side.CLIENT) public class GuiTestMainMenu extends GuiScreen { private static final ResourceLocation logo = new ResourceLocation(References.MOD_ID, "logo.png"); private static final ResourceLocation background = new ResourceLocation(References.MOD_ID, "background.png"); @Override public void drawScreen(int mouseX, int mouseY, float partialTicks) { drawDefaultBackground(); drawCenteredString(this.fontRenderer, "thi is a test", 10, 10, 0xc80000); super.drawScreen(mouseX, mouseY, partialTicks); } @Override public void initGui() { super.initGui(); } @Override protected void actionPerformed(GuiButton button) throws IOException { super.actionPerformed(button); } @Override protected void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException { super.mouseClicked(mouseX, mouseY, mouseButton); } } And this is how I want to replace the MainMenu with mine. @Mod.EventBusSubscriber public static class EventHandlers { @SideOnly(Side.CLIENT) @SubscribeEvent public void openGui(GuiOpenEvent event) { if (event.getGui() instanceof GuiOptions) { event.setGui(new GuiTestMainMenu()); System.out.println("fastdqwefqwefqwefwqe"); } } } The problem is that I experience no errors but I dont even see the log in the console. What is the problem with my code?