MFF

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

    lancer le 1.12.2.jar sans passer par le launcher officiel

    Planifier Épinglé Verrouillé Déplacé Sans suite
    1.12.2launcher
    45 Messages 3 Publieurs 3.2k Vues 3 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.
    • baztoul76B Hors-ligne
      baztoul76
      dernière édition par

      oui j’ai le pseudo mais par contre le mot de passe je ne sais pas trop
      ça doit être le --accessToken je pense
      là je fais mes recherches mais je ne trou e toujours rien…

      je ne suis pas le plus compétent en développement de mod, mais je fais de mon mieux pour aider quand même

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

        Oui c’est ce que j’ai dis dans l’édit, normalement t’as une URL minecraft où avec le pseudo & mot de passe tu peux généré un HASH de connexion, cela à été mis en place suite à une plainte sur l’insécurité de fournir les identifiants à chaque fois partout, il y à eu un HASH pour ne stocker aucun identifiant sur le PC. 🙂

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

          là je crois tenir quelque chose j’ai regardé sur spigotMC (ce post), et j’ai trouvé ce code-là :

          private final static String authserver = "https://authserver.mojang.com";
          
          public static String authenticate(String username, String password) throws Exception {
          
              String genClientToken = UUID.randomUUID().toString();
          
              // Setting up json POST request
              String payload = "{\"agent\": {\"name\": \"Minecraft\",\"version\": 1},\"username\": \"" + username
                      + "\",\"password\": \"" + password + "\",\"clientToken\": \"" + genClientToken + "\"}";
          
              String output = postReadURL(payload, new URL(authserver + "/authenticate"));
          
              // Setting up patterns
              String authBeg = "{\"accessToken\":\"";
              String authEnd = "\",\"clientToken\":\"";
              String clientEnd = "\",\"selectedProfile\"";
          
              // What we are looking for
              String authtoken = getStringBetween(output, authBeg, authEnd);
              return authtoken;
          }
          
          private static String postReadURL(String payload, URL url) throws Exception {
              HttpsURLConnection con = (HttpsURLConnection) (url.openConnection());
          
              con.setReadTimeout(15000);
              con.setConnectTimeout(15000);
              con.setRequestMethod("POST");
              con.setRequestProperty("Content-Type", "application/json");
              con.setDoInput(true);
              con.setDoOutput(true);
              OutputStream out = con.getOutputStream();
              out.write(payload.getBytes("UTF-8"));
              out.close();
              BufferedReader in = new BufferedReader(new tStreamReader(con.getInputStream()));
              String output = "";
              String line = null;
              while ((line = in.readLine()) != null) {
                  output += line;
                  in.close();
              }
              return output;
          }
          
          private static String getStringBetween(String base, String begin, String end) {
              Pattern patbeg = Pattern.compile(Pattern.quote(begin));
              Pattern patend = Pattern.compile(Pattern.quote(end));
          
              int resbeg = 0;
              int resend = base.length() - 1;
          
              Matcher matbeg = patbeg.matcher(base);
          
              if (matbeg.find()) resbeg = matbeg.end();
          
              Matcher matend = patend.matcher(base);
          
              if (matend.find())
                  resend = matend.start();
          
              return base.substring(resbeg, resend);
          }
          

          il doit y avoir un moyen de le retranscrire en bash je pense, ou de créer un script (en python par exemple)

          EDIT : ou même de l’ajouter à un code, car on peut créer un script bash avec java (il faut que je revoie ça), et ça devrait marcher avec des variables (j’espère)

          je ne suis pas le plus compétent en développement de mod, mais je fais de mon mieux pour aider quand même

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

            En faite quand tu le fais avec Java il y aucun soucis, étant un langage objet et souple tu peux largement le faire (je l’avais fais), l’URL à l’air d’être la bonne je ne la trouver plus l’API réponds.

            Il suffit de questionner l’API, comme n’importe quel site et récupérer le token après et voilà ^^

            Mais en bash ça va être difficile d’accéder à l’url d’un site, récupérer les sources et de récupérer le token dans le json.

            Mais pas impossible 🙂

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

              je ne pensais pas à ça (regarde l’édit) j’ai dit que c’était sûrement possible de lancer un script bash depuis un programme java (j’ai déjà vu ça), et ça donnerait par exemple

              List<String> command;
              command.add("set MC_DIR=%AppData%\.minecraft");
              // le reste des variables
              command.add("java");
              command.add("%JVM_ARGS%");
              // etc...
              command.add("-cp");
              command.add("%MC_DIR%/librairies/...1.12.2.jar");
              command.add("--username");
              command.add(username);
              //etc...
              command.add("--accesToken");
              command.add((int) authenticate(username, password));
              //etc...
              String newCommand = new String[command.size()];
              for (int i = 0;i < command.size(); i++) {
                  newCommand[i] = command.index(i);
              }
              Process p = runtime.getRuntime().exec(newCommand);
              p.waitFor();
              

              je pense que ça marche

              je ne suis pas le plus compétent en développement de mod, mais je fais de mon mieux pour aider quand même

              1 réponse Dernière réponse Répondre Citer 0
              • robin4002R robin4002 a déplacé ce sujet de Support pour les moddeurs sur
              • 1
              • 2
              • 3
              • 3 / 3
              • Premier message
                Dernier message
              Design by Woryk
              ContactMentions Légales

              MINECRAFT FORGE FRANCE © 2024

              Powered by NodeBB