• S'inscrire
    • Se connecter
    • Recherche
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes

    Event du menu pause

    Sans suite
    1.7.10
    4
    9
    1459
    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.
    • lesfreresdemon
      lesfreresdemon dernière édition par

      Bonjour, je voudrais que lorsqu’un joueur ouvre le menu pause une action soie executé
      Voila mon action:

      try {
      Runtime.getRuntime().exec( "une commande ici");
      } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      }
      

      Je suis un codeur débutant et appréciais votre aide. Merci

      1 réponse Dernière réponse Répondre Citer 0
      • Gabs
        Gabs dernière édition par

        Simplement comme ça:

        
        @SubscribeEvent
        public void OpenGui(GuiOpenEvent event)
        {
        System.out.println(event.gui);
        if(event.gui instanceof GuiIngameMenu)
        {
        //Tu exécute ton code ici
        }
        }
        

        Je suis pas sur du nom “GuiIngameMenu”

        Si ça marche pas regarde dans les log j’ai fais un print il serra marqué tu as juste a le remplacer.
        Oublie pas de register l’event.

        1 réponse Dernière réponse Répondre Citer 0
        • lesfreresdemon
          lesfreresdemon dernière édition par

          Well je m’attendait a

          1 réponse Dernière réponse Répondre Citer 0
          • lesfreresdemon
            lesfreresdemon dernière édition par

            Merci pour le code, je pensais qu’il serait plus compliqué!
            Comment register un event?
            Il y a t’il une page pour l’expliquer?

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

              Oui il y a un tutoriel sur le forum.

              1 réponse Dernière réponse Répondre Citer 0
              • lesfreresdemon
                lesfreresdemon dernière édition par

                Voila ma classe:

                package fr.minecraftforgefrance.client.custommenu;
                
                import net.minecraft.client.Minecraft;
                import net.minecraft.client.gui.GuiIngameMenu;
                import net.minecraft.client.gui.GuiMainMenu;
                import net.minecraftforge.client.event.GuiOpenEvent;
                
                import java.io.IOException;
                
                import cpw.mods.fml.client.FMLClientHandler;
                import cpw.mods.fml.common.FMLCommonHandler;
                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.relauncher.Side;
                import cpw.mods.fml.relauncher.SideOnly;
                
                @Mod(modid = "custommenu", name = "Custom Menu", version = "1.1.0")
                public class ModCustomMenu
                {
                @EventHandler
                public void init(FMLInitializationEvent event)
                {
                if(event.getSide().isClient())
                {
                FMLCommonHandler.instance().bus().register(this);
                }
                }
                
                @SubscribeEvent
                @SideOnly(Side.CLIENT)
                public void onTick(TickEvent.ClientTickEvent event)
                {
                Minecraft mc = FMLClientHandler.instance().getClient();
                if(mc.currentScreen != null && mc.currentScreen.getClass().equals(GuiMainMenu.class))
                {
                mc.displayGuiScreen(new GuiCustomMainMenu());
                }
                }
                @SubscribeEvent
                @SideOnly(Side.CLIENT)
                public void OpenGui(GuiOpenEvent event)
                {
                System.out.println(event.gui);
                if(event.gui instanceof GuiIngameMenu)
                {
                try {
                Runtime.getRuntime().exec( "une commande ici");
                } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                }
                }
                }
                }
                

                PS: Je modifie en faite ton mod pour le menu personnalisé 😛
                Je ne vois pas ou cela bloque car dans la console, le nom des menu ne s’affichent pas et ma commande ne s’exécute pas

                1 réponse Dernière réponse Répondre Citer 0
                • Gabs
                  Gabs dernière édition par

                  Cet event n’est pas register sous FMLCommonHandler mais sous MinecraftForge.
                  Je te passe la liste des events avec la méthode de de register: https://www.minecraftforgefrance.fr/forge-events.php

                  Du coup tu r’ajoute: MinecraftForge.EVENT_BUS.register(this); dans le init juste en dessous FMLCommonHandler.

                  Je te met un petit screen regarde a droite la méthode de register:

                  1 réponse Dernière réponse Répondre Citer 0
                  • jglrxavpok
                    jglrxavpok Modérateurs dernière édition par

                    J’aimerais ajouter qu’exécuter une commande est problématique: chaque OS a sa façon de gérer la syntaxe des commandes et de choisir ce qui est une commande valide ou non (Windows vs Unix, par exemple)

                    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 0
                    • lesfreresdemon
                      lesfreresdemon dernière édition par

                      C’est simple il faut ajoute ce code:

                      String OS = System.getProperty("os.name", "generic").toLowerCase(Locale.ENGLISH);
                      
                      if (OS.indexOf("win") >= 0) {ton action pour windows ici}
                      

                      tu peux ajouter ```java
                      System.out.println(OS)

                      pour trouver le nom de l'os pour mac unix etc…
                      1 réponse Dernière réponse Répondre Citer 0
                      • 1 / 1
                      • Premier message
                        Dernier message
                      Design by Woryk
                      Contact / Mentions Légales

                      MINECRAFT FORGE FRANCE © 2018

                      Powered by NodeBB