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.
    • S Hors-ligne
      spaceDementia
      dernière édition par

      Bonjour à tous ! 🙂 Je cherche pour mon mod en 1.7.2 à modifier le menu principal du jeu, biensûr on ne peut pas modifier les sources avec Forge, donc j’essaie de trouver un moyen de remplacer le menu principal de minecraft dès son chargment. J’ai trouvé ceci, qui semble pouvoir remplacer le TickHandler :

      @SubscribeEvent
      public void onRenderTick(TickEvent event) {}
      
      

      Cependant et bien premièrement je ne sais pas où je pourrais le mettre dans mon code et puis je me demande comment remplir cette fonction pour qu’elle m’affiche mon menu à la place de l’officiel 🙂

      Merci d’avance !
      spaceDementia


      Peut être l’événement GuiOpenEvent ?

      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

        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