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


  • Moddeurs confirmés Rédacteurs Administrateurs

    Ta variable mc est null, donc this.mc.theWorld.sendQuittingDisconnectingPacket(); crash avec une NullPointerException.

    Retires les deux lignes public Minecraft mc; et remplaces les this.mc par Minecraft.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 ? ^^


  • Moddeurs confirmés Rédacteurs Administrateurs

    Principalement en autodidacte en lisant des tutoriels sur le web.
    J'ai aussi 3 ans d'école d'informatique derrière moi maintenant.


Log in to reply