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

    Résolu Comment rendre un Launcher obligatoire ?

    1.7.x
    1.7.10
    3
    18
    3663
    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.
    • F
      FR_Style13 dernière édition par robin4002

      Salut à tous 😄 J’aimerai modifier une class qui m’énerve assez … j’aimerai comment dire changer le ‘numéro’ qui correspond au client et ce ‘numéro’ le serveur le lis et si il est exacte le joueur peut entrer dans le serveur et si il est pas exacte le serveur kick le joueur

      Mais bon comme on le sais tous avec Forge Gradlew ce n’est plus possible de modifier les class Vanilla/Forge
      ( Petite question : On peut contourner le Forge Gradlew ? en gros obtenir toutes les class , J’ai vue que c’était possible je crois mais on ne peut pas recompiler les class… :dodgy: )

      La class que je dois modifier :

      • NetHandlerHandshakeTCP

      Je sais qu’on doit utiliser les Events de forge … mais je ne comprends pas très bien … si quelqu’un pourrai m’aider je vous remercie !!

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

        Ou alors comme on ne peut pas se connecté a un serveur moddé sans avoir les mods qui y sont présents, il te suffit de faire que ton mod ne fonctionne pas si il n’est pas sur ton launcher.
        Soit tu envoies un argument depuis le launcher, et si il n’y ait pas -> crash
        Soit tu regardes si Minecraft.getMinecraft().mcDataDir.getAbsolutePath() contient le nom de ton launcher ou pas. Et si non -> crash

        (System.exit(1); -> méthode radical
        Throwables.propagate(new Exception(“Launcher non autorisé”)); -> méthode moins violente avec un rapport de crash)

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

          Oui c’est une bonne idée mais comment pourrai je faire que sa :
          Minecraft.getMinecraft().mcDataDir.getAbsolutePath()

          Obtient le nom de mon Launcher ?
          Fin le modifier tu vois, car la class Minecraft je ne peut pas la modifier….

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

            Ton launcher, il utilise bien un dossier de jeu différent, par exemple .nom_de_ton_launcher à la place de .minecraft non ?
            Donc Minecraft.getMinecraft().mcDataDir.getAbsolutePath() contiendra le nom de ton launcher.

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

              Oui mais comment t’éxpliquer … c’est dans le Minecraft.java ou on modifie le nom du launcher, et justement comment je pourrai faire pour le modifier …

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

                Non, c’est toi qui n’a pas comprit ce que je t’expliques.

                Dans ton mod, dans la fonction preInit, mets ça :

                if(event.getSide().isClient())
                {
                     System.out.println("–------ dossier du jeu ----------")
                     System.out.println(Minecraft.getMinecraft().mcDataDir.getAbsolutePath())
                }
                

                Ensuite compile ton mod, mets-le sur ton launcher, lances le jeu, et regardes les logs. Tu vas comprendre.

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

                  ça m’affiches : –------ dossier du jeu ----------
                  C:\Users\xxxx\Desktop\1.7.2 Forge\eclipse.

                  Même il a juste à reprendre les mods dans le .minecraft/mods , et voilà il pourra jouer sur le launcher…

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

                    Une fois compilé et sur ton launcher. Pas sur eclipse.

                    @‘FR_Style13’:

                    Même il a juste à reprendre les mods dans le .minecraft/mods , et voilà il pourra jouer sur le launcher…

                    Justement non, puisqu’on va faire crasher le jeu si il n’y a pas le nom de ton launcher dans le chemin du jeu.

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

                      Ah …Mais je pourrai mêttre comment le code ? 😕 Genre quand il crash si ce n’ai pas le nom du launcher

                      1 réponse Dernière réponse Répondre Citer 0
                      • isador
                        isador Moddeurs confirmés Modérateurs dernière édition par

                        bha
                        une condition qui verifie le string du launcher, et au passage base du java

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

                          Oui je suis un débutant… avant j’avais juste à modifier les class du Minecraft… mais bon maintenant c’est un peu plus compliqué car on ne peut plus …

                          Mais bon pour l’instant j’ai déjà bien avancer sur mon projet 🙂 Bref, revenons sur la transformation de la class, On ne pourrai pas tout simplement modifier le numéro ?

                          Je sais je suis nul mais bon ^^ sans aide on ne peut pas avancer 😕

                          Merci de votre aide,

                          1 réponse Dernière réponse Répondre Citer 0
                          • isador
                            isador Moddeurs confirmés Modérateurs dernière édition par

                            Comment ça modifier le numéro?

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

                              Bon, dans la fonction preinit de ton mod, ajoutes ça :

                              if(event.getSide().isClient())
                              {
                                  if(!Minecraft.getMinecraft().mcDataDir.getAbsolutePath().contains("nom_de_ton_launcher") && !Minecraft.getMinecraft().mcDataDir.equals(new File(".")))
                                  {
                                      Throwables.propagate(new Exception("Launcher non autorisé"));
                                  }
                              }
                              

                              Ensuite compiles ton mod en tapant gradlew build dans la console, mets le mod dans ton launcher et regardes. Mais le mod dans un autre launcher et regardes également.

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

                                Rien qui change 😕 Même dans les logs il y a aucune chose

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

                                  Avec ce que je t’ai donné le jeu devrait crasher si tu le lance sur un autre launcher que le tiens.

                                  1 réponse Dernière réponse Répondre Citer 0
                                  • F
                                    FR_Style13 dernière édition par robin4002

                                    Regarde le code :

                                    –-------------------------------------------------

                                    package fr.style13;
                                    
                                    import java.io.File;
                                    import com.google.common.base.Throwables;
                                    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.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.common.gameevent.TickEvent.Phase;
                                    import cpw.mods.fml.relauncher.Side;
                                    import cpw.mods.fml.relauncher.SideOnly;
                                    
                                    @Mod(modid = BaseMod.MODID, version = BaseMod.VERSION)
                                    public class BaseMod
                                    {
                                        public static final String MODID = "examplemod";
                                        public static final String VERSION = "1.0";
                                    
                                        @SubscribeEvent
                                        @EventHandler
                                        public void init(FMLInitializationEvent event)
                                        {
                                            // some example code
                                    
                                            System.out.println("DIRT BLOCK >> " + Blocks.dirt.getUnlocalizedName());
                                        }
                                    
                                        @SideOnly(Side.CLIENT)
                                        public void preInit(FMLInitializationEvent event)
                                        {
                                    
                                            if(event.getSide().isClient())
                                            {
                                                if(!Minecraft.getMinecraft().mcDataDir.getAbsolutePath().contains("originalcraft") && !Minecraft.getMinecraft().mcDataDir.equals(new File(".")))
                                                {
                                                    Throwables.propagate(new Exception("Launcher non autorisé"));
                                    
                                                }
                                            }
                                        }
                                    }
                                    

                                    Quand je le recompile avec gradlew je le met dans mon .minecraft/mods et aucun succès normalement il dois crash… 😞

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

                                      @SideOnly(Side.CLIENT)
                                      public void preInit(FMLInitializationEvent event)
                                      

                                      -> c’est complètement faux.
                                      ça devrait être comme ça :

                                      @EventHandler
                                      public void preInit(FMLPreInitializationEvent event)
                                      
                                      1 réponse Dernière réponse Répondre Citer 0
                                      • F
                                        FR_Style13 dernière édition par

                                        Tu es un dieu mec !! :rolleyes:

                                        ça me fait bien une erreur :

                                        java.lang.RuntimeException: java.lang.Exception: Launcher non autoris�

                                        Merci beaucoup 😄

                                        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