MFF

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

    Comment rendre un Launcher obligatoire ?

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.10
    18 Messages 3 Publieurs 4.1k 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

      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 Hors-ligne
        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
        • robin4002R Hors-ligne
          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 Hors-ligne
            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
            • robin4002R Hors-ligne
              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 Hors-ligne
                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
                • robin4002R Hors-ligne
                  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 Hors-ligne
                    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
                    • isadorI Hors-ligne
                      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 Hors-ligne
                        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
                        • isadorI Hors-ligne
                          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
                          • robin4002R Hors-ligne
                            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 Hors-ligne
                              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
                              • robin4002R Hors-ligne
                                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 Hors-ligne
                                  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
                                  • robin4002R Hors-ligne
                                    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 Hors-ligne
                                      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
                                      ContactMentions Légales

                                      MINECRAFT FORGE FRANCE © 2024

                                      Powered by NodeBB