MFF

    Minecraft Forge France
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Forge Events
      • Automatique
      • Foncé
      • Clair
    • S'inscrire
    • Se connecter

    Modifier le menu principal

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.2
    11 Messages 3 Publieurs 4.9k Vues 1 Watching
    Charger plus de messages
    • Du plus ancien au plus récent
    • Du plus récent au plus ancien
    • Les plus votés
    Répondre
    • Répondre à l'aide d'un nouveau sujet
    Se connecter pour répondre
    Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
    • robin4002R Hors-ligne
      robin4002 Moddeurs confirmés Rédacteurs Administrateurs
      dernière édition par

      package com.example.examplemod;
      
      import net.minecraft.client.Minecraft;
      import net.minecraft.client.gui.GuiMainMenu;
      import net.minecraft.client.gui.GuiScreen;
      import net.minecraft.init.Blocks;
      import net.minecraftforge.common.MinecraftForge;
      import cpw.mods.fml.common.Mod;
      import cpw.mods.fml.common.Mod.EventHandler;
      import cpw.mods.fml.common.event.FMLInitializationEvent;
      import cpw.mods.fml.common.eventhandler.SubscribeEvent;
      import cpw.mods.fml.common.gameevent.TickEvent;
      import cpw.mods.fml.common.gameevent.TickEvent.Phase;
      import cpw.mods.fml.relauncher.Side;
      import cpw.mods.fml.relauncher.SideOnly;
      
      @Mod(modid = ExampleMod.MODID, version = ExampleMod.VERSION)
      public class ExampleMod
      {
      public static final String MODID = "examplemod";
      public static final String VERSION = "1.0";
      
      @EventHandler
      public void init(FMLInitializationEvent event)
      {
      // some example code
      System.out.println("DIRT BLOCK >> " + Blocks.dirt.getUnlocalizedName());
      
      MinecraftForge.EVENT_BUS.register(this);
      }
      
      @SubscribeEvent
      @SideOnly(Side.CLIENT)
      public void onTickClient(TickEvent.ClientTickEvent event)
      {
      if(event.phase == Phase.END)
      {
      Minecraft mc = Minecraft.getMinecraft();
      GuiScreen currentScreen = mc.currentScreen;
      GuiCustomMainMenu customMenu = new GuiCustomMainMenu();
      
      if(currentScreen instanceof GuiMainMenu && !currentScreen.equals(customMenu))
      {
      mc.displayGuiScreen(customMenu);
      }
      }
      }
      }
      

      Normalement comme ça c’est bon. Tu peux aussi mettre l’event dans une autre classe si tu préfère.

      1 réponse Dernière réponse Répondre Citer 0
      • S Hors-ligne
        spaceDementia
        dernière édition par

        Merci robin4002 🙂 ! une réponse rapide et précise :), je test ça et je met en résolu si ça marche bien ! 🙂

        1 réponse Dernière réponse Répondre Citer 0
        • S Hors-ligne
          spaceDementia
          dernière édition par

          Bon ça ne marche pas 😞 il ne m’affiche pas mon menu custom lors du démarrage de minecraft 😕 pourtant j’ai bien recopié ton code.

          1 réponse Dernière réponse Répondre Citer 0
          • robin4002R Hors-ligne
            robin4002 Moddeurs confirmés Rédacteurs Administrateurs
            dernière édition par

            Essaye de remplacer event.phase == Phase.START par event.phase == Phase.END

            1 réponse Dernière réponse Répondre Citer 0
            • S Hors-ligne
              spaceDementia
              dernière édition par

              Je viens de tester ça ne marche toujours pas :/___
              Bon je pense avoir trouvé mais je me retrouve avec un crash maintenant et je me demande pourquoi lol donc j’ai remplacé :
              MinecraftForge.EVENT_BUS.register(this);
              par :
              FMLCommonHandler.instance().bus().register(this);

              mais donc apparement maintenant ca fonctionne il crash au chargement du menu en fait lol et le rapport de bug est :

              
              –-- Minecraft Crash Report ----
              // This is a token for 1 free hug. Redeem at your nearest Mojangsta: [~~HUG~~]
              
              Time: 17/02/14 22:24
              Description: Registering texture
              
              java.lang.NullPointerException: Registering texture
              at net.minecraft.client.resources.SimpleReloadableResourceManager.getResource(SimpleReloadableResourceManager.java:63)
              at net.minecraft.client.renderer.texture.SimpleTexture.loadTexture(SimpleTexture.java:35)
              at net.minecraft.client.renderer.texture.TextureManager.loadTexture(TextureManager.java:89)
              at net.minecraft.client.renderer.texture.TextureManager.bindTexture(TextureManager.java:45)
              at net.minecraft.client.gui.GuiMainMenu.rotateAndBlurSkybox(GuiMainMenu.java:549)
              at net.minecraft.client.gui.GuiMainMenu.renderSkybox(GuiMainMenu.java:586)
              at net.minecraft.client.gui.GuiMainMenu.drawScreen(GuiMainMenu.java:616)
              at helmyriaMod.helmyriaGuiMainMenu.drawScreen(helmyriaGuiMainMenu.java:690)
              at net.minecraft.client.renderer.EntityRenderer.updateCameraAndRender(EntityRenderer.java:1209)
              at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1064)
              at net.minecraft.client.Minecraft.run(Minecraft.java:951)
              at net.minecraft.client.main.Main.main(Main.java:112)
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
              at java.lang.reflect.Method.invoke(Unknown Source)
              at net.minecraft.launchwrapper.Launch.launch(Launch.java:134)
              at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
              
              A detailed walkthrough of the error, its code path and all known details is as follows:
              –-------------------------------------------------------------------------------------
              
              -- Head --
              Stacktrace:
              at net.minecraft.client.resources.SimpleReloadableResourceManager.getResource(SimpleReloadableResourceManager.java:63)
              at net.minecraft.client.renderer.texture.SimpleTexture.loadTexture(SimpleTexture.java:35)
              
              -- Resource location being registered --
              Details:
              Resource location: ~~NULL~~
              Texture object class: net.minecraft.client.renderer.texture.SimpleTexture
              Stacktrace:
              at net.minecraft.client.renderer.texture.TextureManager.loadTexture(TextureManager.java:89)
              at net.minecraft.client.renderer.texture.TextureManager.bindTexture(TextureManager.java:45)
              at net.minecraft.client.gui.GuiMainMenu.rotateAndBlurSkybox(GuiMainMenu.java:549)
              at net.minecraft.client.gui.GuiMainMenu.renderSkybox(GuiMainMenu.java:586)
              at net.minecraft.client.gui.GuiMainMenu.drawScreen(GuiMainMenu.java:616)
              at helmyriaMod.helmyriaGuiMainMenu.drawScreen(helmyriaGuiMainMenu.java:690)
              
              -- Screen render details --
              Details:
              Screen name: helmyriaMod.helmyriaGuiMainMenu
              Mouse location: Scaled: (0, 239). Absolute: (0, 0)
              Screen size: Scaled: (427, 240). Absolute: (854, 480). Scale factor of 2
              Stacktrace:
              at net.minecraft.client.renderer.EntityRenderer.updateCameraAndRender(EntityRenderer.java:1209)
              at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1064)
              at net.minecraft.client.Minecraft.run(Minecraft.java:951)
              at net.minecraft.client.main.Main.main(Main.java:112)
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
              at java.lang.reflect.Method.invoke(Unknown Source)
              at net.minecraft.launchwrapper.Launch.launch(Launch.java:134)
              at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
              
              -- System Details --
              Details:
              Minecraft Version: 1.7.2
              Operating System: Windows 7 (x86) version 6.1
              Java Version: 1.7.0_45, Oracle Corporation
              Java VM Version: Java HotSpot(TM) Client VM (mixed mode), Oracle Corporation
              Memory: 904294528 bytes (862 MB) / 1060372480 bytes (1011 MB) up to 1060372480 bytes (1011 MB)
              JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M
              AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
              IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
              FML: MCP v9.01-pre FML v7.2.116.1024 Minecraft Forge 10.12.0.1024 4 mods loaded, 4 mods active
              mcp{8.09} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available
              FML{7.2.116.1024} [Forge Mod Loader] (forgeSrc-1.7.2-10.12.0.1024.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available
              Forge{10.12.0.1024} [Minecraft Forge] (forgeSrc-1.7.2-10.12.0.1024.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available
              helmyriamod{1.0} [Helmyria] (bin) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available
              Launched Version: 1.6
              LWJGL: 2.9.0
              OpenGL: Intel 965/963 Graphics Media Accelerator GL version 2.0.0 - Build 8.14.10.1930, Intel
              Is Modded: Definitely; Client brand changed to 'fml,forge'
              Type: Client (map_client.txt)
              Resource Packs: []
              Current Language: Français (France)
              Profiler Position: N/A (disabled)
              Vec3 Pool Size: ~~ERROR~~ NullPointerException: null
              Anisotropic Filtering: Off (1)
              
              
              1 réponse Dernière réponse Répondre Citer 0
              • robin4002R Hors-ligne
                robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                dernière édition par

                Un NPE sur une des textures. helmyriaGuiMainMenu.java ligne 690, tu as quoi ? (clic sur le java:690 dans le crash, ça te sélectionnera directement la ligne).

                1 réponse Dernière réponse Répondre Citer 0
                • S Hors-ligne
                  spaceDementia
                  dernière édition par

                  Alors il me pointe ça :super.drawScreen(par1, par2, par3);
                  et c’est inséré dans la méthode suivante :

                  
                  public void drawScreen(int par1, int par2, float par3)
                  {
                  GL11.glDisable(GL11.GL_ALPHA_TEST);
                  this.renderSkybox(par1, par2, par3);
                  GL11.glEnable(GL11.GL_ALPHA_TEST);
                  Tessellator tessellator = Tessellator.instance;
                  short short1 = 274;
                  int k = this.width / 2 - short1 / 2;
                  byte b0 = 30;
                  this.drawGradientRect(0, 0, this.width, this.height, -2130706433, 16777215);
                  this.drawGradientRect(0, 0, this.width, this.height, 0, Integer.MIN_VALUE);
                  this.mc.getTextureManager().bindTexture(minecraftTitleTextures);
                  GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
                  
                  if ((double)this.updateCounter < 1.0E-4D)
                  {
                  this.drawTexturedModalRect(k + 0, b0 + 0, 0, 0, 99, 44);
                  this.drawTexturedModalRect(k + 99, b0 + 0, 129, 0, 27, 44);
                  this.drawTexturedModalRect(k + 99 + 26, b0 + 0, 126, 0, 3, 44);
                  this.drawTexturedModalRect(k + 99 + 26 + 3, b0 + 0, 99, 0, 26, 44);
                  this.drawTexturedModalRect(k + 155, b0 + 0, 0, 45, 155, 44);
                  }
                  else
                  {
                  this.drawTexturedModalRect(k + 0, b0 + 0, 0, 0, 155, 44);
                  this.drawTexturedModalRect(k + 155, b0 + 0, 0, 45, 155, 44);
                  }
                  
                  tessellator.setColorOpaque_I(-1);
                  GL11.glPushMatrix();
                  GL11.glTranslatef((float)(this.width / 2 + 90), 70.0F, 0.0F);
                  GL11.glRotatef(-20.0F, 0.0F, 0.0F, 1.0F);
                  float f1 = 1.8F - MathHelper.abs(MathHelper.sin((float)(Minecraft.getSystemTime() % 1000L) / 1000.0F * (float)Math.PI * 2.0F) * 0.1F);
                  f1 = f1 * 100.0F / (float)(this.fontRendererObj.getStringWidth(this.splashText) + 32);
                  GL11.glScalef(f1, f1, f1);
                  this.drawCenteredString(this.fontRendererObj, this.splashText, 0, -8, -256);
                  GL11.glPopMatrix();
                  String s = "Minecraft 1.7.2";
                  
                  if (this.mc.isDemo())
                  {
                  s = s + " Demo";
                  }
                  
                  List <string>brandings = Lists.reverse(FMLCommonHandler.instance().getBrandings(true));
                  for (int i = 0; i < brandings.size(); i++)
                  {
                  String brd = brandings.get(i);
                  if (!Strings.isNullOrEmpty(brd))
                  {
                  this.drawString(this.fontRendererObj, brd, 2, this.height - ( 10 + i * (this.fontRendererObj.FONT_HEIGHT + 1)), 16777215);
                  }
                  }
                  ForgeHooksClient.renderMainMenu(this, fontRendererObj, width, height);
                  String s1 = "Copyright Mojang AB. Do not distribute!";
                  this.drawString(this.fontRendererObj, s1, this.width - this.fontRendererObj.getStringWidth(s1) - 2, this.height - 10, -1);
                  
                  if (this.field_92025_p != null && this.field_92025_p.length() > 0)
                  {
                  drawRect(this.field_92022_t - 2, this.field_92021_u - 2, this.field_92020_v + 2, this.field_92019_w - 1, 1428160512);
                  this.drawString(this.fontRendererObj, this.field_92025_p, this.field_92022_t, this.field_92021_u, -1);
                  this.drawString(this.fontRendererObj, this.field_146972_A, (this.width - this.field_92024_r) / 2, ((GuiButton)this.buttonList.get(0)).yPosition - 12, -1);
                  }
                  
                  super.drawScreen(par1, par2, par3);
                  }
                  
                  ```</string>
                  1 réponse Dernière réponse Répondre Citer 0
                  • jglrxavpokJ Hors-ligne
                    jglrxavpok Modérateurs
                    dernière édition par

                    Je pense qu’il ne faut pas faire une classe fille de GuiMainMenu (extends GuiMainMenu) mais uniquement de GuiScreen.
                    Ça devrait régler (du moins en partie) le problème.

                    Modérateur sur MFF. 
                    Mon Github: http://github.com/jglrxavpok
                    Mon compte Steam si vous voulez jouer à CS:GO ou TF2 avec moi: https://steamcommunity.com/id/jglrxavpok/

                    1 réponse Dernière réponse Répondre Citer 1
                    • S Hors-ligne
                      spaceDementia
                      dernière édition par

                      Oui déjà ça a réglé quelques problèmes, seulement maintenant lorsqu’il crash j’ai comme rapport de bug celui ci :

                      
                      –-- Minecraft Crash Report ----
                      // On the bright side, I bought you a teddy bear!
                      
                      Time: 18/02/14 17:48
                      Description: Rendering screen
                      
                      java.lang.ClassCastException: helmyriaMod.GuiButton cannot be cast to net.minecraft.client.gui.GuiButton
                      at net.minecraft.client.gui.GuiScreen.drawScreen(GuiScreen.java:75)
                      at helmyriaMod.helmyriaGuiMainMenu.drawScreen(helmyriaGuiMainMenu.java:696)
                      at net.minecraft.client.renderer.EntityRenderer.updateCameraAndRender(EntityRenderer.java:1209)
                      at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1064)
                      at net.minecraft.client.Minecraft.run(Minecraft.java:951)
                      at net.minecraft.client.main.Main.main(Main.java:112)
                      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                      at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
                      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
                      at java.lang.reflect.Method.invoke(Unknown Source)
                      at net.minecraft.launchwrapper.Launch.launch(Launch.java:134)
                      at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
                      
                      A detailed walkthrough of the error, its code path and all known details is as follows:
                      ---------------------------------------------------------------------------------------
                      
                      -- Head --
                      Stacktrace:
                      at net.minecraft.client.gui.GuiScreen.drawScreen(GuiScreen.java:75)
                      at helmyriaMod.helmyriaGuiMainMenu.drawScreen(helmyriaGuiMainMenu.java:696)
                      
                      -- Screen render details --
                      Details:
                      Screen name: helmyriaMod.helmyriaGuiMainMenu
                      Mouse location: Scaled: (0, 239). Absolute: (0, 0)
                      Screen size: Scaled: (427, 240). Absolute: (854, 480). Scale factor of 2
                      Stacktrace:
                      at net.minecraft.client.renderer.EntityRenderer.updateCameraAndRender(EntityRenderer.java:1209)
                      at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1064)
                      at net.minecraft.client.Minecraft.run(Minecraft.java:951)
                      at net.minecraft.client.main.Main.main(Main.java:112)
                      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                      at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
                      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
                      at java.lang.reflect.Method.invoke(Unknown Source)
                      at net.minecraft.launchwrapper.Launch.launch(Launch.java:134)
                      at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
                      
                      -- System Details --
                      Details:
                      Minecraft Version: 1.7.2
                      Operating System: Windows 7 (x86) version 6.1
                      Java Version: 1.7.0_45, Oracle Corporation
                      Java VM Version: Java HotSpot(TM) Client VM (mixed mode), Oracle Corporation
                      Memory: 917667872 bytes (875 MB) / 1060372480 bytes (1011 MB) up to 1060372480 bytes (1011 MB)
                      JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M
                      AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
                      IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
                      FML: MCP v9.01-pre FML v7.2.116.1024 Minecraft Forge 10.12.0.1024 4 mods loaded, 4 mods active
                      mcp{8.09} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available
                      FML{7.2.116.1024} [Forge Mod Loader] (forgeSrc-1.7.2-10.12.0.1024.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available
                      Forge{10.12.0.1024} [Minecraft Forge] (forgeSrc-1.7.2-10.12.0.1024.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available
                      helmyriamod{1.0} [Helmyria] (bin) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available
                      Launched Version: 1.6
                      LWJGL: 2.9.0
                      OpenGL: Intel 965/963 Graphics Media Accelerator GL version 2.0.0 - Build 8.14.10.1930, Intel
                      Is Modded: Definitely; Client brand changed to 'fml,forge'
                      Type: Client (map_client.txt)
                      Resource Packs: []
                      Current Language: Français (France)
                      Profiler Position: N/A (disabled)
                      Vec3 Pool Size: ~~ERROR~~ NullPointerException: null
                      Anisotropic Filtering: Off (1)
                      
                      

                      je me doute que c’est parce que dans la classe de mon Gui j’utilise une class bouton que j’ai recopié mais je ne trouve pas d’autres manières de faire car lorsque je laisse le GuiButton original j’ai deux erreurs sur :
                      fmlModButton.width = 98;
                      et sur
                      minecraftRealmsButton.width = 98;
                      forcement car dans la classe GuiButton c’est en protected alors est ce qu’il y a un moyen pour ne pas avoir d’erreur ? :)___
                      Et bien c’est bon 🙂 j’ai trouvé xD enfin bon j’ai retirer le bouton qui utilisait cela de toute manière il ne m’était pas utile et là tout fonctionne 🙂 ! encore merci de votre aide et de la rapidité de vos réponses. Je met en résolu 😉

                      1 réponse Dernière réponse Répondre Citer 0
                      • robin4002R Hors-ligne
                        robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                        dernière édition par

                        Vire cette partie du code, elle ne sert que pour le minecraft realms, aucune utilité sur le pack d’un serveur.

                        1 réponse Dernière réponse Répondre Citer 0
                        • 1 / 1
                        • Premier message
                          Dernier message
                        Design by Woryk
                        ContactMentions Légales

                        MINECRAFT FORGE FRANCE © 2024

                        Powered by NodeBB