Partage
  • Partager sur Facebook
  • Partager sur Twitter

Lancement de Minecraft

Launcher Minecraft

Sujet résolu
Anonyme
    25 février 2013 à 18:01:42

    Bonjour/bonsoir !

    Depuis quelques temps j'étudie le Python et j'ai décidé de créer sous console un petit launcher Minecraft provisoire. Mon problème est que je ne sais pas du tout comment exécuter minecraft.jar ni comment identifier le joueur sur Minecraft.net.

    J'ai un faible niveau en Python, j'ai pris ce code sur un autre topic qui ne fonctionne malheureusement pas...

    Voici le code (provisoire (et archaïque, je vous l'accorde)) :

    import os
    from getpass import getpass
    nick=input("Votre pseudonyme/adresse mail :")
    password=input("Votre mot de passe :")
    os.popen('java -jar minecraft.jar %s %s' %(nick, password), 'r').read()

    Merci d'avance de votre aide.

    Cordialement,

                Arthur340

    -
    Edité par Anonyme 25 février 2013 à 18:43:44

    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      25 février 2013 à 21:36:14

      Si tu veux faire un launcher Minecraft, Java est le langage IMPERATIF a utiliser. Tu ne trouveras aucun launcher Minecraft fait en Python, mais plutôt en Java ou encore en VB.Net.

      Si tu veux en créer un, il existe des sites tel LauncherGenerator qui te permettent d'en faire un façilement.

      Et sinon, pour ton code, il te faudrait utiliser les mêmes variables que le launcher officiel utilise pour communiquer avec Minecraft.net (que je ne connais pas).

      Et une question : Pourquoi importes-tu la librairie getpass?

      • Partager sur Facebook
      • Partager sur Twitter
        25 février 2013 à 23:26:36

        s0r00t a écrit:

        Si tu veux faire un launcher Minecraft, Java est le langage IMPERATIF a utiliser. Tu ne trouveras aucun launcher Minecraft fait en Python, mais plutôt en Java ou encore en VB.Net.

        N'importe quoi !

        -
        Edité par nohar 26 février 2013 à 0:50:55

        • Partager sur Facebook
        • Partager sur Twitter
        Zeste de Savoir, le site qui en a dans le citron !
          26 février 2013 à 15:12:47

          Pour lancer minecraft tu peux faire le script python qui le lance en ligne de commande.

          Ton script la, tu la mis dans le dossier avec minecraft.jar ? 

          Sinon d'après la doc, tu peux le lancer avec un popen ça :

          java -jar /home/****l'emplacement de votre ficher minecraft****/minecraft.jar 

          Après avec un peu de recherche sur les paramètres à envoyer au démarrage (ton code suggère que ce soit d'abord ton pseudo puis ton mot de passe), je pense que ça marcherais.

          s0r00t : ? Pourquoi ne pourrait on pas faire un lanceur en Python, si c'est juste pour lancer un jeu...

          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            26 février 2013 à 22:45:06

            J'ai dis ça car je n'en ai encore jamais vu, et puis, je ne suis pas sûr que ça marche, notamment pour les mods.

            Après, si tu y arrives, autant pour moi => []

            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              27 février 2013 à 2:03:39

              s0r00t a écrit:

              J'ai dis ça car je n'en ai encore jamais vu, et puis, je ne suis pas sûr que ça marche, notamment pour les mods.

              Après, si tu y arrives, autant pour moi => []


              Tu pourrais même le coder en BrainF*ck si l'envie t'en prenais... Forcémment si le but en question est de faire un copier-coller d'un existant, et bien il est plus intéressant de le faire en JAVA vu que y'en a plein sur le net. Si tu veux le coder toi même, le langage importe peu.

              -
              Edité par Anonyme 27 février 2013 à 2:19:43

              • Partager sur Facebook
              • Partager sur Twitter
              Anonyme
                27 février 2013 à 18:52:27

                Merci pour vos réponses !

                J'ai encore une question : Comment récupérer les erreurs éventuelles que mon minecraft.jar enverrait à mon launcher ?

                • Partager sur Facebook
                • Partager sur Twitter
                  27 février 2013 à 19:18:16

                  En utilisant subprocess.Popen() à la place de os.popen(), et en récupérant les sorties standard et d'erreur de Minecraft via les attributs "stdout" et "stderr" de ton objet.

                  • Partager sur Facebook
                  • Partager sur Twitter
                  Zeste de Savoir, le site qui en a dans le citron !
                  Anonyme
                    1 mars 2013 à 12:33:24

                    nohar a écrit:

                    En utilisant subprocess.Popen() à la place de os.popen(), et en récupérant les sorties standard et d'erreur de Minecraft via les attributs "stdout" et "stderr" de ton objet.


                    Oula ! Ca je sais pas comment faire... Je crois que je vais continuer à étudier sur le Python avant de terminer ce launcher ^^

                    Merci tout de même :)

                    Dernière petite question, sans vouloir abuser... Mon programme  n'a pas les droits nécessaires pour "patcher" mon .minecraft... Même en coupant l'antivirus et en l'exécutant en tant qu'administrateur, ça ne sert a rien O_o... Voici mon code si ça peut aider : (oui ne vous moquez pas hein)

                    # -*-coding:Latin-1 -*
                    print("Bienvenue dans MC-Updater 1.0 !")
                    print("-----\n\nVeuillez patienter pendant l'initialisation du programme.")
                    #-----Initialisation-----
                    import os
                    import time
                    import urllib
                    import urllib.request
                    import shutil
                    import zipfile
                    import glob
                    #Fonction qui permet de changer la version enregistrée dans le fichier 'version'
                    def updateFile(nouvelleVersion):
                        with open(minecraft+"/version","w") as versionFile:
                            versionFile.write(nouvelleVersion)
                    #Fonction qui permet de dézipper une archive '.zip'
                    def dezipper(archive,destination):
                        zfile=zipfile.ZipFile(archive,"r")
                        for i in zfile.namelist():
                            print("      '{}'".format(i))
                            if os.pathisdir(i):
                                try:
                                    os.makedirs(destination+os.sep+i)
                                except:
                                    pass
                            else:
                                try:
                                    os.makedirs(destination+os.sep+os.path.dirname(i))
                                except:
                                    pass
                            donnees=zfile.read(i)
                            fp=open(destination+os.sep+i,"wb")
                            fp.write(donnees)
                            fp.close()
                        zfile.close()
                    #-----Programme-----
                    while True:
                        username=input("-----\nVeuillez entrer votre nom d'utilisateur : ")
                        if os.path.isdir("C:/Users/"+username):
                            break
                        else:
                            print("Le nom d'utilisateur '{}' est invalide.".format(username))
                    minecraft="C:/Users/"+username+"/AppData/Roaming/.minecraft"
                    mcJar=minecraft+"/bin/minecraft.jar"
                    #Démarrage du programme de mise à jour
                    print("----------\nVérification de l'existence de Minecraft en cours...")
                    time.sleep(2)
                    print("Localisation de '{}'".format(minecraft))
                    if os.path.isdir(minecraft) and os.path.isfile(mcJar):
                        print("Minecraft a été trouvé !\n----------\nRecherche de mises à jour...\n   > Connexion au serveur...")
                        try:
                            f=urllib.request.urlopen("http://dl.dropbox.com/u/49106433/version.txt")
                        except urllib.error.URLError:
                            print("Le programme ne parvient pas à se connecter.\nVeuillez vérifier votre connexion internet ou exécuter le programme en tant qu'administrateur.")
                            time.sleep(5)
                        urllib.request.urlretrieve("http://dl.dropbox.com/u/49106433/version.txt","UpdateVersionMC.txt")
                        with open("UpdateVersionMC.txt","r") as dlVersionFile:
                            newVersion=dlVersionFile.readlines()
                            newVersion=float("".join(newVersion))
                        os.remove("UpdateVersionMC.txt")
                        if os.path.isfile(minecraft+"/version"):
                            with open(minecraft+"/version","r") as versionFile:
                                version=versionFile.readlines()
                                version=float("".join(version))
                                if newVersion>version:
                                    print("----------\nMC-Updater va mettre à jour Minecraft.")
                                    print("Téléchargement des paquets...")
                                    f=urllib.request.urlopen("http://dl.dropbox.com/u/49106433/Minecraft%20modd%C3%A9.zip")
                                    urllib.request.urlretrieve("http://dl.dropbox.com/u/49106433/Minecraft%20modd%C3%A9.zip","MinecraftTemp.zip")
                                    print("Terminé !\nEnregistrement de vos sauvegardes...")
                                    shutil.move(minecraft+"/saves","C:/")
                                    print("Suppression du dossier '.minecraft'")
                                    os.remove(minecraft)
                                    print("Terminé !\nInstallation de la mise à jour...\n   > Extraction des fichiers :")
                                    dezipper("C:/MinecraftTemp.zip","C:/Users/"+username+"/AppData/Roaming")
                                    print("   > Déplacement des fichiers...")
                                    time.sleep(2)
                                    print("   > Déplacement des sauvegardes...")
                                    if os.isdir(minecraft+"/saves"):
                                        os.remove(minecraft+"/saves")
                                    shutil.move("C:/saves",minecraft)
                                    print("Terminé !\nMise à jour des informations de version...")
                                    updateFile(newVersion)
                                    print("Terminé !\nSupression des fichiers provisoires...")
                                    os.remove("MinecraftTemp.zip")
                                    print("----------\nMinecraft a été mis à jour avec succès !\n          >V{}<".format(newVersion))
                                    
                                else:
                                    print("----------\nVous n'avez aucune nouvelle mise à jour !")
                        else:
                            print("----------\nMC-Updater va installer Minecraft. Ceci va écraser toutes vos sauvegardes")
                            print("Téléchargement des paquets...")
                            f=urllib.request.urlopen("http://dl.dropbox.com/u/49106433/Minecraft%20modd%C3%A9.zip")
                            urllib.request.urlretrieve("http://dl.dropbox.com/u/49106433/Minecraft%20modd%C3%A9.zip","MinecraftTemp.zip")
                            print("\nTerminé !\n Suppression du dossier '.minecraft'")
                            os.remove(minecraft)
                            print("Terminé !\nInstallation de la mise à jour...\n   > Extraction des fichiers :")
                            dezipper("MinecraftTemp.zip","C:/Users/"+username+"/AppData/Roaming")
                            print("   > Déplacement des fichiers...")
                            time.sleep(2)
                            shutil.move("C:/saves",minecraft)
                            print("Terminé !\nCréation des informations de version...")
                            updateFile(newVersion)
                            print("Terminé !\nSupression des fichiers provisoires...")
                            os.remove("MinecraftTemp.zip")
                            print("----------\nMinecraft a été mis à jour avec succès !\n          >V{}<".format(newVersion))
                    
                            time.sleep(2)
                    else:
                        print("Minecraft ne semble pas être présent sur votre ordinateur...")
                    time.sleep(5)
                    



                    • Partager sur Facebook
                    • Partager sur Twitter

                    Lancement de Minecraft

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown