Résolu GuiInGameMenu modifié
-
Bonjour a tous je cherche a modifier le GuiInGameMenu , je l’ai deja modifier de la sorte a ce qu’il satisface mes attentes mais justement , j’ai un bouton qui permer de quiter directement le jeux depuis le menu echap mais le probleme , il ne quite pas le jeux mais le fait crash, je pourais dire “Ouai bon il quite le jeux d’une autre maniere mais sa marche …” mais je ne veux pas que sa soit aussi fait avec les fesses que ça.
Voici le code en question pour faire mon bouton
event.buttonList.add(new GuiButton(30, event.gui.width / 2 - 100, event.gui.height / 4 + 120, I18n.format("menu.quit", new Object[0])) { public Minecraft mc; @Override public void mouseReleased(int x, int y) { this.mc.theWorld.sendQuittingDisconnectingPacket(); this.mc.loadWorld((WorldClient)null); this.mc.shutdown(); } });
Voici ma classe ClientProxy.java
package fr.altisrp.mod.proxy; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiIngameMenu; import net.minecraft.client.gui.GuiMainMenu; import net.minecraft.client.gui.GuiOptions; import net.minecraft.client.multiplayer.WorldClient; import net.minecraft.client.resources.I18n; import net.minecraftforge.client.event.GuiScreenEvent.InitGuiEvent; import net.minecraftforge.common.MinecraftForge; public class ClientProxy extends CommonProxy { public Minecraft mc; public GuiOptions options; public ClientProxy() { MinecraftForge.EVENT_BUS.register(this); } @SubscribeEvent public void onInitGuiEvent(InitGuiEvent.Post event) { if(event.gui instanceof GuiMainMenu) { for (Object b : event.buttonList) { if(((GuiButton) b).id == 2) { ((GuiButton) b).enabled = true; } } for (Object b : event.buttonList) { if(((GuiButton) b).id == 1) { ((GuiButton) b).visible = true; } } for (Object b : event.buttonList) { if(((GuiButton) b).id == 14) { ((GuiButton) b).visible = false; } } for (Object b : event.buttonList) { if(((GuiButton) b).id == 6) { ((GuiButton) b).visible = false; } } for (Object b : event.buttonList) { if(((GuiButton) b).id == 5) { ((GuiButton) b).visible = false; } } } if(event.gui instanceof GuiIngameMenu) { for (Object b : event.buttonList) { if(((GuiButton) b).id == 1) { ((GuiButton) b).visible = false; } } for (Object b : event.buttonList) { if(((GuiButton) b).id == 7) { ((GuiButton) b).visible = false; } } for (Object b : event.buttonList) { if(((GuiButton) b).id == 5) { ((GuiButton) b).visible = false; } } for (Object b : event.buttonList) { if(((GuiButton) b).id == 6) { ((GuiButton) b).visible = false; } } for (Object b : event.buttonList) { if(((GuiButton) b).id == 12) { ((GuiButton) b).visible = false; } }for (Object b : event.buttonList) { if(((GuiButton) b).id == 0) { ((GuiButton) b).visible = false; } } event.buttonList.add(new GuiButton(30, event.gui.width / 2 - 100, event.gui.height / 4 + 120, I18n.format("menu.quit", new Object[0])) { public Minecraft mc; @Override public void mouseReleased(int x, int y) { this.mc.theWorld.sendQuittingDisconnectingPacket(); this.mc.loadWorld((WorldClient)null); this.mc.shutdown(); } }); } } }
Merci a tous pour votre lecture et votre aide
ps: Si vous pouvez aussi m’aider a faire que des que le menu principal demande a être charger que sa nous connecte directement sur un serveur minecraft x ou y -
j’ai oublié les logs …
https://hastebin.com/enobofukic.php -
Ta variable mc est null, donc
this.mc.theWorld.sendQuittingDisconnectingPacket();
crash avec une NullPointerException.Retires les deux lignes
public Minecraft mc;
et remplaces lesthis.mc
parMinecraft.getMinecraft()
-
ok je vais essayer ça , merci
-
Yes sa la marche , Merci
-
@robin4002 Tu as appris le Java comment tu es vraiment très fort ? ^^
-
Principalement en autodidacte en lisant des tutoriels sur le web.
J’ai aussi 3 ans d’école d’informatique derrière moi maintenant.