MFF

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

    Modifier boutons

    Planifier Épinglé Verrouillé Déplacé Résolu Anciennes versions
    1.6.4
    24 Messages 6 Publieurs 8.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.
    • elias54E Hors-ligne
      elias54 Administrateurs
      dernière édition par

      J’ai move. Merci de bien vouloir lire le nom des section à l’avenir. 🙂

      Mon site | GitHub

      1 réponse Dernière réponse Répondre Citer 0
      • kevin_68K Hors-ligne
        kevin_68 Moddeurs confirmés
        dernière édition par

        C’est juste qu’une modification du minecraft.jar fait crash le jeu avec forge, il “scan” le jar pour vérifier qu’il est clean.
        Donc on ne peut pas modifier le jar.
        Sinon, salut kévin, moi c’est kévin et c’est étrange d’écrire ça.

        Mais tu peux faire un mod qui met un gui par dessus le gui existant, pour cela utilise un tickHandler.


        Mettez à jours vers la dernière version stable (1.8.9 voir même…

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

          OK ok

          j’ai essayé aussi de convertir mes fichiers .class pour faire un mod mais ca n’a pas marché donc je pense que je fais mal un truc…
          comment je fais pour utiliser un tickhandler ?

          Ps: salut Kévin (c’est vrai que ca fait bizarre lol)

          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 fr.minecraftforgefrance.custommenu;
            
            import java.util.Arrays;
            
            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.event.FMLPreInitializationEvent;
            import cpw.mods.fml.common.registry.TickRegistry;
            import cpw.mods.fml.relauncher.Side;
            
            @Mod(modid = "CustomMenu", name = "Custom Menu", version = "1.0.0")
            
            public class ModCustomMenu
            {
            @EventHandler
            public void init(FMLInitializationEvent event)
            {
            if(event.getSide().isClient())
            TickRegistry.registerTickHandler(new TickHandlerClient(), Side.CLIENT);
            }
            }
            
            package fr.minecraftforgefrance.custommenu;
            
            import java.util.EnumSet;
            
            import net.minecraft.client.Minecraft;
            import net.minecraft.client.gui.GuiMainMenu;
            import net.minecraft.client.gui.GuiScreen;
            import cpw.mods.fml.common.ITickHandler;
            import cpw.mods.fml.common.TickType;
            
            public class TickHandlerClient implements ITickHandler
            {
            @Override
            public void tickStart(EnumSet <ticktype>type, Object… tickData)
            {
            
            }
            
            @Override
            public void tickEnd(EnumSet <ticktype>type, Object... tickData)
            {
            if(type.equals(EnumSet.of(TickType.CLIENT)))
            {
            Minecraft mc = Minecraft.getMinecraft();
            GuiScreen currentScreen = mc.currentScreen;
            GuiCustomMainMenu customMenu = new GuiCustomMainMenu();
            
            if(currentScreen instanceof GuiMainMenu && !currentScreen.equals(customMenu))
            {
            mc.displayGuiScreen(customMenu);
            }
            }
            }
            
            @Override
            public EnumSet <ticktype>ticks()
            {
            return EnumSet.of(TickType.CLIENT);
            }
            
            @Override
            public String getLabel()
            {
            return "Client Menu Tick Handler";
            }
            }
            

            Ensuite tu créé ta classe GuiCustomMainMenu, tu copie colle GuiMainMenu dedans en changeant tout les GuiMainMenu par GuiCustomMainMenu, et tu adapte la classe comme tu le souhaite.

            Pour finir, tu compile le mod comme un mod normal, et tu en fais un .zip que tu mets dans le dossier mods.</ticktype></ticktype></ticktype>

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

              Merci merci !

              par contre, j’ai un souci, j’ai une erreur dans cette fonction :

              private void func_130022_h()
              {
              this.minecraftRealmsButton.drawButton = true;
              fmlModButton.width = 98;
              fmlModButton.xPosition = this.width / 2 + 2;
              }
              

              Il me met l’erreur au niveau du .width en me disant qu’elle n’est pas public mais elle fait référence à une classe que je touche pas…

              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

                Supprime cette ligne, elle ne sert qu’à activer le bouton “Minecraft realms”, qui est completement inutile sur un launcher personnel.
                (il faut aussi que tu supprime la ligne ou la méthode est appelé).

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

                  Impecc, j’ai plus d’erreurs, mais par contre, mon menu n’apparait pas… (je vois juste le menu d’origine apparaitre un quart de seconde et tout s’efface, il ne me reste plus que les boutons option et quit game…

                  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

                    Il y a des erreurs dans la console ?

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

                      Je n’en vois pas…

                      nov. 13, 2013 9:23:03 PM net.minecraft.launchwrapper.LogWrapper log
                      INFO: Loading tweak class name cpw.mods.fml.common.launcher.FMLTweaker
                      nov. 13, 2013 9:23:03 PM net.minecraft.launchwrapper.LogWrapper log
                      INFO: Using primary tweak class name cpw.mods.fml.common.launcher.FMLTweaker
                      nov. 13, 2013 9:23:03 PM net.minecraft.launchwrapper.LogWrapper log
                      INFO: Calling tweak class cpw.mods.fml.common.launcher.FMLTweaker
                      2013-11-13 21:23:03 [INFO] [ForgeModLoader] Forge Mod Loader version 6.4.3.883 for Minecraft 1.6.4 loading
                      2013-11-13 21:23:03 [INFO] [ForgeModLoader] Java is Java HotSpot(TM) 64-Bit Server VM, version 1.7.0_25, running on Windows 7:amd64:6.1, installed at C:\Program Files\Java\jre7
                      2013-11-13 21:23:03 [INFO] [ForgeModLoader] Managed to load a deobfuscated Minecraft name- we are in a deobfuscated environment. Skipping runtime deobfuscation
                      2013-11-13 21:23:04 [INFO] [STDOUT] Loaded 40 rules from AccessTransformer config file fml_at.cfg
                      2013-11-13 21:23:04 [INFO] [STDOUT] Loaded 109 rules from AccessTransformer config file forge_at.cfg
                      2013-11-13 21:23:04 [SEVERE] [ForgeModLoader] The binary patch set is missing. Either you are in a development environment, or things are not going to work!
                      2013-11-13 21:23:05 [INFO] [ForgeModLoader] Launching wrapped minecraft {net.minecraft.client.main.Main}
                      2013-11-13 21:23:06 [INFO] [Minecraft-Client] Setting user: Player606
                      2013-11-13 21:23:06 [INFO] [Minecraft-Client] (Session ID is null)
                      2013-11-13 21:23:07 [INFO] [Minecraft-Client] LWJGL Version: 2.9.0
                      2013-11-13 21:23:07 [INFO] [Minecraft-Client] Reloading ResourceManager: Default
                      2013-11-13 21:23:08 [INFO] [STDOUT]
                      2013-11-13 21:23:08 [INFO] [STDOUT] Starting up SoundSystem…
                      2013-11-13 21:23:08 [INFO] [MinecraftForge] Attempting early MinecraftForge initialization
                      2013-11-13 21:23:08 [INFO] [STDOUT] MinecraftForge v9.11.0.883 Initialized
                      2013-11-13 21:23:08 [INFO] [ForgeModLoader] MinecraftForge v9.11.0.883 Initialized
                      2013-11-13 21:23:08 [INFO] [STDOUT] Initializing LWJGL OpenAL
                      2013-11-13 21:23:08 [INFO] [STDOUT] (The LWJGL binding of OpenAL. For more information, see http://www.lwjgl.org)
                      2013-11-13 21:23:08 [INFO] [STDOUT] OpenAL initialized.
                      2013-11-13 21:23:08 [INFO] [STDOUT] Replaced 101 ore recipies
                      2013-11-13 21:23:08 [INFO] [MinecraftForge] Completed early MinecraftForge initialization
                      2013-11-13 21:23:08 [INFO] [ForgeModLoader] Reading custom logging properties from C:\Users\Kévin\Desktop\forge1\mcp\jars\config\logging.properties
                      2013-11-13 21:23:08 [OFF] [ForgeModLoader] Logging level for ForgeModLoader logging is set to ALL
                      2013-11-13 21:23:08 [INFO] [ForgeModLoader] Searching C:\Users\Kévin\Desktop\forge1\mcp\jars\mods for mods
                      2013-11-13 21:23:08 [INFO] [STDOUT]
                      2013-11-13 21:23:10 [INFO] [ForgeModLoader] Forge Mod Loader has identified 4 mods to load
                      2013-11-13 21:23:10 [INFO] [mcp] Activating mod mcp
                      2013-11-13 21:23:10 [INFO] [FML] Activating mod FML
                      2013-11-13 21:23:10 [INFO] [Forge] Activating mod Forge
                      2013-11-13 21:23:10 [INFO] [CustomMenu] Activating mod CustomMenu
                      2013-11-13 21:23:10 [WARNING] [Forge Mod Loader] Mod Forge Mod Loader is missing a pack.mcmeta file, things may not work well
                      2013-11-13 21:23:10 [WARNING] [Minecraft Forge] Mod Minecraft Forge is missing a pack.mcmeta file, things may not work well
                      2013-11-13 21:23:10 [WARNING] [Custom Menu] Mod Custom Menu is missing a pack.mcmeta file, things may not work well
                      2013-11-13 21:23:10 [INFO] [Minecraft-Client] Reloading ResourceManager: Default, FMLFileResourcePack:Forge Mod Loader, FMLFileResourcePack:Minecraft Forge, FMLFileResourcePack:Custom Menu
                      2013-11-13 21:23:10 [INFO] [STDOUT]
                      2013-11-13 21:23:10 [INFO] [STDOUT] SoundSystem shutting down…
                      2013-11-13 21:23:10 [INFO] [STDOUT] Author: Paul Lamb, www.paulscode.com
                      2013-11-13 21:23:10 [INFO] [STDOUT]
                      2013-11-13 21:23:10 [INFO] [STDOUT]
                      2013-11-13 21:23:10 [INFO] [STDOUT] Starting up SoundSystem…
                      2013-11-13 21:23:11 [INFO] [ForgeModLoader] Registering Forge Packet Handler
                      2013-11-13 21:23:11 [INFO] [ForgeModLoader] Succeeded registering Forge Packet Handler
                      2013-11-13 21:23:11 [INFO] [ForgeModLoader] Configured a dormant chunk cache size of 0
                      2013-11-13 21:23:11 [INFO] [STDOUT] Initializing LWJGL OpenAL
                      2013-11-13 21:23:11 [INFO] [STDOUT] (The LWJGL binding of OpenAL. For more information, see http://www.lwjgl.org)
                      2013-11-13 21:23:11 [INFO] [STDOUT] OpenAL initialized.
                      2013-11-13 21:23:11 [INFO] [STDOUT]
                      2013-11-13 21:23:12 [INFO] [ForgeModLoader] Forge Mod Loader has successfully loaded 4 mods
                      2013-11-13 21:23:12 [WARNING] [Forge Mod Loader] Mod Forge Mod Loader is missing a pack.mcmeta file, things may not work well
                      2013-11-13 21:23:12 [WARNING] [Minecraft Forge] Mod Minecraft Forge is missing a pack.mcmeta file, things may not work well
                      2013-11-13 21:23:12 [WARNING] [Custom Menu] Mod Custom Menu is missing a pack.mcmeta file, things may not work well
                      2013-11-13 21:23:12 [INFO] [Minecraft-Client] Reloading ResourceManager: Default, FMLFileResourcePack:Forge Mod Loader, FMLFileResourcePack:Minecraft Forge, FMLFileResourcePack:Custom Menu
                      2013-11-13 21:23:12 [INFO] [STDOUT]
                      2013-11-13 21:23:12 [INFO] [STDOUT] SoundSystem shutting down…
                      2013-11-13 21:23:12 [INFO] [STDOUT] Author: Paul Lamb, www.paulscode.com
                      2013-11-13 21:23:12 [INFO] [STDOUT]
                      2013-11-13 21:23:12 [INFO] [STDOUT]
                      2013-11-13 21:23:12 [INFO] [STDOUT] Starting up SoundSystem…
                      2013-11-13 21:23:13 [INFO] [STDOUT] Initializing LWJGL OpenAL
                      2013-11-13 21:23:13 [INFO] [STDOUT] (The LWJGL binding of OpenAL. For more information, see http://www.lwjgl.org)
                      2013-11-13 21:23:13 [INFO] [STDOUT] OpenAL initialized.
                      2013-11-13 21:23:13 [INFO] [STDOUT]
                      2013-11-13 21:23:14 [SEVERE] [Minecraft-Client] Realms: Invalid session id
                      2013-11-13 21:23:14 [SEVERE] [Minecraft-Client] Realms: Invalid session id
                      
                      

                      Edit :

                      Autant pour moi, j’avais viré un paragraphe qu’il ne fallait pas virer >< !

                      par contre, pour modifier le menu en jeux et le menu d’option, je ne peux pas les ajouter comme ca, mais il faut que je les ajoute dans le tickhandlerclient ou bien il faut que j’en refasse un de la meme manière ?

                      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

                        Base toi sur ça :
                        http://dl.mcnanotech.fr/robin4002/mods/Sources/CustomMenu-src.zip

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

                          C’est bon pour le menu principal et pour le menu en jeu, par contre pour la page des options, c’est un peu particulier il me semble, non ?

                          ca crash dès que je vais sur la page… 😕

                          j’ai mit ca comme code dans la classe tickHandlerClient :

                          			GuiCustomOptions customOptions = new GuiCustomOptions(currentScreen, null);
                          
                          			if(currentScreen instanceof GuiOptions && !currentScreen.equals(customOptions))
                          			{
                          				mc.displayGuiScreen(customOptions);
                          			}
                          

                          Et je voudrai aussi savoir si quand le serveur devient down, il est possible de retourner à l’écran principal plutôt que de tomber sur la page de sélection du serveur multijoueur ?

                          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

                            @‘roideseaux’:

                            C’est bon pour le menu principal et pour le menu en jeu, par contre pour la page des options, c’est un peu particulier il me semble, non ?

                            ca crash dès que je vais sur la page… 😕

                            j’ai mit ca comme code dans la classe tickHandlerClient :

                            			GuiCustomOptions customOptions = new GuiCustomOptions(currentScreen, null);
                            			
                            			if(currentScreen instanceof GuiOptions && !currentScreen.equals(customOptions))
                            			{
                            				mc.displayGuiScreen(customOptions);
                            			}
                            

                            Et je voudrai aussi savoir si quand le serveur devient down, il est possible de retourner à l’écran principal plutôt que de tomber sur la page de sélection du serveur multijoueur ?

                            GuiCustomOptions customOptions = new GuiCustomOptions(currentScreen, mc.gameSettings);
                            
                            if(currentScreen instanceof GuiOptions && !currentScreen.equals(customOptions))
                            {
                            mc.displayGuiScreen(customOptions);
                            }
                            

                            Tu ne peux pas déclare ta gui avec un paramètre null dans le constructeur, sinon c’est normal que ça crash avec un NPE 😉

                            Pour le retour sur le menu, tu as utilisé cette fonction pour la connexion ? :

                            this.mc.displayGuiScreen(new GuiConnecting(this, this.mc, "ip", port));
                            

                            Le premier this dans le constructeur correspond au gui actuelle (donc ton menu custom), GuiConnecting ouvre se gui si la connexion échoue.
                            Si c’est pas bon comme ça, c’est que l’action après avoir perdu la connexion n’ouvre pas se gui, donc dans se cas je sais pas comment faire pour changer mettre ton menu lors de la déco du serveur.
                            Ça doit être quand même faisable avec quelques conditions, il faudrait que je prenne le temps de regarder plus en détail.

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

                              Oui effectivement, ça fonctionne mieux, je me doutait bien que le constructeur ne pouvais pas être null mais je ne savais pas le quel mettre !

                              par contre, j’ai un bug, quand je clic sur done, ca ne revient pas à l’écran précédent 😕
                              pourtant dans la class tickHandlerClient, j’ai bien appelé ma gui avec currentScreen en constructeur 😕

                              Et pour l’autre question, j’ai déjà définit ainsi mon bouton de connexion donc effectivement, si la connexion échoue, je suis renvoyé au menu principal, mais par contre quand le serveur crash pour une raison ou pour une autre, je ratterris à la page de sélection de serveur multi !

                              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

                                Étrange, regarde ce que fais le bouton done.
                                Pour le retour sur le menu, je crains que ça va pas être possible, au pire si tu as supprimé le bouton multiplayer sur ton menu, tu peux faire que si le menu multiplayer est ouvert, ça ouvre le menu principale modifié.

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

                                  le bouton done fait ça :

                                  if (par1GuiButton.id == 200)
                                  {
                                  this.mc.gameSettings.saveOptions();
                                  this.mc.displayGuiScreen(this.parentScreen);
                                  }
                                  

                                  plus haut, il y a :

                                  
                                  public GuiCustomOptions(GuiScreen par1GuiScreen, GameSettings par2GameSettings)
                                  {
                                  this.parentScreen = par1GuiScreen;
                                  this.options = par2GameSettings;
                                  }
                                  
                                  

                                  et j’appelle la classe avec :

                                  
                                  GuiCustomOptions customOptions = new GuiCustomOptions(currentScreen, mc.gameSettings);
                                  
                                  if(currentScreen instanceof GuiOptions && !currentScreen.equals(customOptions))
                                  {
                                  mc.displayGuiScreen(customOptions);
                                  }
                                  
                                  

                                  pour moi, il n’y a rien qui cloche !

                                  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

                                    Je vois le problème, quand tu clic sur le GuiOptions, il ouvre GuiCustomOptions, mais le currentScreen correspond à GuiOptions. Donc quand tu clic sur done, ça ouvre GuiOptions, et le tickhandler ouvre à nouveau GuiCustomOptions, ce qui fait une boucle infini.
                                    Plutôt que passer par le TickHandler, il faudrait modifier dans le menu Custom le gui ouvert lorsqu’on clic sur option, même chose pour GuiInGame (Forge permet de changer GuiInGame facilement).

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

                                      Ok, merci beaucoup !

                                      je pense que je n’ai plus de souci 🙂

                                      impec pour le menu multijoueur, dès que la page est chargée, ca me swich direct sur mon menu principal 🙂

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

                                        Petite question, c’est le même principe pour la modification de l’inventaire ?

                                        J’ai voulu essayer mais malheureusement dans le constructeur de ma class GuiCustomInventory il me demande EntityPlayer par1EntityPlayer.

                                        
                                        public GuiCustomInventory(EntityPlayer par1EntityPlayer)
                                        {
                                        super(par1EntityPlayer.inventoryContainer);
                                        this.allowUserInput = true;
                                        par1EntityPlayer.addStat(AchievementList.openInventory, 1);
                                        }
                                        

                                        du coups dans mon TickHandlerInventory il me le réclame:

                                        @Override
                                        public void tickEnd(EnumSet <ticktype>type, Object… tickData){
                                        if(type.equals(EnumSet.of(TickType.CLIENT))){
                                        Minecraft mc = Minecraft.getMinecraft();
                                        GuiScreen currentScreen = mc.currentScreen;
                                        List players = mc.theWorld.playerEntities;
                                        GuiCustomInventory customInventory = new GuiCustomInventory(..); //ici
                                        
                                        if(currentScreen instanceof GuiInventory && !currentScreen.equals(customInventory))
                                        mc.displayGuiScreen(customInventory);
                                        }
                                        }
                                        

                                        J’ai essayer de plusieurs façon différente d’aller le rechercher mais malheureusement à chaque fois il me retourne null…

                                        Merci d’avance :P</ticktype>

                                        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

                                          Il te faut le joueur en paramètre, je partirais plutôt sur un tickhandler de type player.

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

                                            C’est pas con, j’ai pas spécialement pensé à regarder la documentation (Dans les commentaires du code c’est marqué que pour serveur le type PLAYER…).

                                            Maintenant il veut bien compiler mais par contre il rentre pas dans le if

                                            if(type.equals(EnumSet.of(TickType.PLAYER))) { }
                                            
                                            @Override
                                            public void tickEnd(EnumSet <ticktype>type, Object… tickData){
                                            if(type.equals(EnumSet.of(TickType.PLAYER))){
                                            Minecraft mc = Minecraft.getMinecraft();
                                            GuiScreen currentScreen = mc.currentScreen;
                                            GuiCustomInventory customInventory = new GuiCustomInventory((EntityPlayer) tickData[0]);
                                            System.out.println("TESTTTTTTTTTTTTT");
                                            if(currentScreen instanceof GuiInventory && !currentScreen.equals(customInventory))
                                            mc.displayGuiScreen(customInventory);
                                            }
                                            else
                                            System.out.println("FAILLLLLLLLLLLLLLLLLLLLLLL");
                                            }
                                            

                                            Petite info sur la documentation :

                                            PLAYER
                                            public static final TickType PLAYER
                                            client and server side. Fired whenever the players update loop runs. arg 0 : the player arg 1 : the world the player is in
                                            ```</ticktype>
                                            1 réponse Dernière réponse Répondre Citer 0
                                            • 1
                                            • 2
                                            • 1 / 2
                                            • Premier message
                                              Dernier message
                                            Design by Woryk
                                            ContactMentions Légales

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB