MFF

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

    Comment interdir l'ajout d'autres mods dans le dossier

    Planifier Épinglé Verrouillé Déplacé Sans suite
    26 Messages 12 Publieurs 6.6k 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.
    • GuguG Hors-ligne
      Gugu
      dernière édition par

      Tu regarde si un mod possedant un ID différent de celui de ton mod est chargé, et tu fais crash le jeu si c’est le cas.

      Je ne sais plus comment on regarde les mods chargé, je regarderais demain. Si quelqu’un le sait, postez le 😄

      "If you have a comprehensive explanation for everything then it decreases uncertainty and anxiety and reduces your cognitive load. And if you can use that simplifying algorithm to put yourself on the side of moral virtue then you’re constantly a good person with a minimum of effort."
      ― Jordan B. Peterson

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

        ce que je vais te suggérer est peut être différent de ce a quoi tu t’attendais
        mais sa marche

        alors je l’avait fait il y a longtemps sur un de mes server,

        en faite tu fait une list MD5

        chaque fichier (qu’elle qu’il soit) possède une ID MD5

        par ex tu prend ce petit prog, g’un amis avait fait

        https://dl.dropboxusercontent.com/u/101919143/MD5 checksum.jar

        et de la tu fait une “cheklist”

        c’était avec un launcheur custom à l’époque,

        en gros, le launcheur checkait ton dossier mods, et comparait avec la list MD5 du server

        si tous allait bien ben il lançais le jeu, si une MD5 était manquante, différente, ou en trop,
        il supprimait la MD5 inconnue, et ou re DLL les mods manquant,

        après pour appliquer sa à un mods je pourrais pas te dire

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

          Merci à tous je vais voir mais ce n’est pas très clair pour moi le truc du md5 je ne vois pas comment faire sa ni mettre la “check-list”.

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

            le MD5 va servir a faire une whitelist et non une blacklist.
            En gros, pour faire simple, tout les fichiers sont une suite de 0 et de 1.
            Il existe des méthode de cryptologie qui permettent de trouver une clé “unique” pour chacun des fichiers via cette suite de 0 et de 1.

            Si tu change quoique se soit dans le fichier, le MD5 est radicalement différent.
            Donc tu peux faire une whitelist pour t’assurer que les fichiers dans le dossier mods sont les même que ceux que tu exiges.
            Par contre, ça ne sert a rien d’interdire un fichier via son MD5.

            Si c’est un jar, il suffit que l’utilisateur ajoute un fichier dans le jar, même un fichier texte vide, ça ne changera pas le comportement du jar, mais le MD5 sera différent.

            Par contre, petite correction : un fichier ne possède pas un identifiant MD5 en attribut contrairement au nom, la date de création etc…
            Le MD5 se calcule. Tu n’as pas a écrire la formule, il existe dans l’API Java standard une méthode qui te renvoie la clé MD5 directement.

            –------------------------------------------------------------------------------------
            Si tu trouves mon intervention pertinente, n'hésite pas a m…

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

              Bonjour j’ai vraiment besoin d’aide au niveau du MD5 pourrais-tu m’expliquer plus en détail l’opération a effectuée svp ?

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

                Deja il te faut un launcher custom, si tu en as un alors je peux essayer de t’expliquer ce que j’ai compris…

                Developpeur d'Hogsmod, un mod implémentant le Monde d'Harry Potter dans Minecraft!

                1 réponse Dernière réponse Répondre Citer 0
                • Superloup10S Hors-ligne
                  Superloup10 Modérateurs
                  dernière édition par

                  Non, surtout pas de launcher custom, mais tu peux utiliser l’installateur que robin4002 a fait.

                  Si vous souhaitez me faire un don, il vous suffit de cliquer sur le bouton situé en dessous.

                  Je suis un membre apprécié et joueur, j'ai déjà obtenu 17 points de réputation.

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

                    C’est ce que je voulais dire ^^ Je me suis tromper

                    Developpeur d'Hogsmod, un mod implémentant le Monde d'Harry Potter dans Minecraft!

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

                      Non pas obliger de faire des actions avant le lancement du jeu. Donc pas obligé d utiliser le launcher.

                      Tu demandes au joueur qui veut se connecter le MD5 de son dossier mods
                      Le serveur check ensuite si c est le bon.
                      Si c est pas le cas, le serv kick le joueur.

                      –------------------------------------------------------------------------------------
                      Si tu trouves mon intervention pertinente, n'hésite pas a m…

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

                        La fonction que Gugu à parlé plus haut est

                        ​if (Loader.isModLoaded("ID_DU_MOD")) //Vous aurez l'ID du mod dans le mcmod.info qui ce trouve dans l'archive du mod elle contient l'ID du mod, généralement en minuscule, à la ligne "modid"
                        
                            {
                                   System.out.println("Vous avez ajouter un mod, il est interdit de faire ca ! bla, bla…");//Affiche un message dans la console du jeu
                                   FMLClientHandler.instance().getClient().shutdown(); //Fait crash le jeu
                            }
                        

                        A mettre dans la fonction postInit de la classe principale

                        Si je t'ai filé un coup de main n'oublie pas le + / -
                        Par contre évite les demandes d'aides en MP, tu sera sympa'

                        La JavaDoc c'est comme le PQ, ça sert à ce démerder tous seul. -Victor Hugo- 2017

                        Une superbe API pour animer vos super modèles CraftStudio dans Minecraft !

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

                          Ok, mais on peut faire ca, pour checker si il y a plusieurs mods ? :
                          :::

                          ​
                          **if** !(Loader.isModLoaded("ID_DU_MOD") | Loader.isModLoaded("ID_DU_MOD") ) //Vous aurez l'ID du mod dans le mcmod.info qui ce trouve dans l'archive du mod elle contient l'ID du mod, généralement en minuscule, à la ligne "modid"
                          
                              {
                                     System.**out**.println("Vous avez ajouter un mod, il est interdit de faire ca ! bla, bla…");//Affiche un message dans la console du jeu
                                     FMLClientHandler.instance().getClient().shutdown(); //Fait crash le jeu
                              }
                          

                          :::

                          Developpeur d'Hogsmod, un mod implémentant le Monde d'Harry Potter dans Minecraft!

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

                            Normalement c’est bon, metbien deux ||

                            Envoyé depuis mon Android edition by sfr STARADDICT avec Tapatalk

                            Si je t'ai filé un coup de main n'oublie pas le + / -
                            Par contre évite les demandes d'aides en MP, tu sera sympa'

                            La JavaDoc c'est comme le PQ, ça sert à ce démerder tous seul. -Victor Hugo- 2017

                            Une superbe API pour animer vos super modèles CraftStudio dans Minecraft !

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

                              Ok merci

                              Developpeur d'Hogsmod, un mod implémentant le Monde d'Harry Potter dans Minecraft!

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

                                Sinon,  un coremod qui check tous les MD5 ou les noms de fichiers dès l’instanciation du coremod.

                                package ton.package;
                                
                                // Ctrl+Maj+O
                                
                                public class ModChecker implements IFMLLoadingPlugin
                                {
                                private static Map <string, string="">validMD5sMap = new HashMap<string, string="">();
                                private static List <string>validMD5sList = new ArrayList<string>();
                                
                                public ModChecker()
                                {
                                buildMap();
                                checkMods();
                                }
                                
                                public static void buildMap()
                                {
                                // Entre ici tous tes noms de fichiers à whitelist
                                // Ex : Whitelist de NEI version 1.0.3.67
                                validMD5sMap.put("NotEnoughItems-1.7.10-1.0.3.67-universal.jar", "B0431D2D45BFBAD636F5C7C9357A3660");
                                validMD5sList.add("B0431D2D45BFBAD636F5C7C9357A3660");
                                }
                                
                                public static void checkMods()
                                {
                                for (File f : new File("mods"))
                                {
                                if (!isValidMD5(f))
                                {
                                f.delete();
                                }
                                }
                                
                                for (File f : new File("mods/1.7.10")
                                {
                                if (!isValidMD5(f))
                                {
                                f.delete();
                                }
                                }
                                }
                                
                                public static boolean isValidMD5(File f)
                                {
                                String MD5 = DigestUtils.md5Hex(new BufferedInputStream(new FileInputStream(f)));
                                return (validMD5sMap.hasKey(f.getName()) && validMD5sMap.get(f.getName()).equalsIgnoreCase(MD5)) || validMD5sList.contains(MD5);
                                }
                                }
                                

                                Je te conseille le site http://onlinemd5.com pour trouver les MD5.</string></string></string,></string,>

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

                                  @‘galaxyoyo’:

                                  Sinon,  un coremod qui check tous les MD5 ou les noms de fichiers dès l’instanciation du coremod.

                                  package ton.package;
                                  
                                  // Ctrl+Maj+O
                                  
                                  public class ModChecker implements IFMLLoadingPlugin
                                  {
                                         private static Map <string, string="">validMD5sMap = new HashMap<string, string="">();
                                         private static List <string>validMD5sList = new ArrayList<string>();
                                         
                                         public ModChecker()
                                         {
                                                 buildMap();
                                                 checkMods();
                                         }
                                         
                                         public static void buildMap()
                                         {
                                                 // Entre ici tous tes noms de fichiers à whitelist
                                                 // Ex : Whitelist de NEI version 1.0.3.67
                                                 validMD5sMap.put("NotEnoughItems-1.7.10-1.0.3.67-universal.jar", "B0431D2D45BFBAD636F5C7C9357A3660");
                                                 validMD5sList.add("B0431D2D45BFBAD636F5C7C9357A3660");
                                         }
                                         
                                         public static void checkMods()
                                         {
                                                 for (File f : new File("mods"))
                                                 {
                                                         if (!isValidMD5(f))
                                                         {
                                                                 f.delete();
                                                         }
                                                 }
                                                 
                                                 for (File f : new File("mods/1.7.10")
                                                 {
                                                         if (!isValidMD5(f))
                                                         {
                                                                 f.delete();
                                                         }
                                                 }
                                         }
                                         
                                         public static boolean isValidMD5(File f)
                                         {
                                                 String MD5 = DigestUtils.md5Hex(new BufferedInputStream(new FileInputStream(f)));
                                                 return (validMD5sMap.hasKey(f.getName()) && validMD5sMap.get(f.getName()).equalsIgnoreCase(MD5)) || validMD5sList.contains(MD5);
                                         }
                                  }
                                  

                                  Je te conseille le site http://onlinemd5.com pour trouver les MD5.</string></string></string,></string,>

                                  En utilisant cela comment faire pour que ça retélécharge les mod où alors que ça fasse crasher le jeu ?

                                  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

                                    FMLCommonHandler.instance().handleExit(0);

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

                                      Merci à tous,
                                      mais je n’ai pas compris une chose comment créer votre ''white-list ‘’.
                                      Faire un nouveau mod? Si oui pourriez vous m’expliquer comment faire car je débute.
                                      Merci vraiment pour vos réponses.

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

                                        Tu mets ça, dans la fonction post-init dans ta classe principale:

                                        
                                        if (!Loader.isModLoaded("modid")) //Vous aurez l'ID du mod dans le mcmod.info qui ce trouve dans l'archive du mod elle contient l'ID du mod, généralement en minuscule, à la ligne "modid"
                                        
                                           {
                                                  System.out.println("Vous avez ajouter un mod, il est interdit de faire ça ! Tant qu'un mod extérieur a ceux du serveur sera présent, le jeu ne se lancera pas.");//Affiche un message dans la console du jeu
                                                  FMLClientHandler.instance().getClient().shutdown(); //Fait crash le jeu
                                           }
                                        
                                        

                                        Donc si le jeu charge un mod avec un modid different de ce que tu as mis dans

                                        Loader.isModLoaded(“modid”)

                                        Alors il met un message dans la console puis fait crash ton jeu.
                                        Tu peux faire qu’il crash que si il charge un mod que tu veux pas genre, un mod qui permet d’exploiter un bug sur ton mod/serveur moddé, pour cela il faut enlever le “!” devant Loader.isModLoaded dans la condition.
                                        J’espère avoir était claire, si ce n’est pas le cas, n’hésites pas à me demander des précisions… 🙂

                                        Developpeur d'Hogsmod, un mod implémentant le Monde d'Harry Potter dans Minecraft!

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

                                          Merci je vais essayer demain ou mercredi je vous tient au courant

                                          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