[WIP]Launcher-MineLauncherCreator1.00(Windows)

Statut
N'est pas ouverte pour d'autres réponses.

BlackHolePixel

Aventurier
2 Novembre 2013
12
1
3
24
Je parle de ces arguments là :


Concernant mon ami, il est sur windows 7 et il ne possédait pas jdk 1.7 (je croyais qu'il suffisait de posséder java classique)
 

ADMika

Aventurier
25 Juin 2014
29
0
1
36
Coucou, concernant les personnes qui ont le message des ressources not found, si vous avez bien set votre java home etc et que ça vous le fait quand même. C'est certainement parce que le petit programme de jambon à été placé et exécuter directement sur le bureau. Petit conseil, mettez le dans un répertoire et exécutez le. Vous verrez ça règle le problème.

Ensuite jambon, comme je sais pas si tu lis les message privé sur ce forum. Je te donne un feedback concernant les maj mod. Je suis aller faire un tour dans le code de ta classe Lister.java, j'ai bien vu que c'est pas le même que l'ancien,du moins quelques différences. Cependant ce qui m'étonne c'est que la vérification ne se fait que au moment ou on appuis sur le bouton Play et pas avant et après comme l'ancien. De plus si on supprime un mod il reste dans le répertoire du jeu et n'est pas supprimé. Pourtant il me semble que ta class est sencé le faire si je lis le début :

Code:
 Launcher.getInstance().println("Starting Listing and Deleting bad mods...");

Comme le program est là en réel. Il liste les mods du ftp et vérifi si on l'a mais les anciens ils ne les cherche pas dans le répertoire pour dire si suppression ou non. J'ai pas poussé le code pour voir la différence entre avant et maintenant pour savoir ce que tu as changé comme méthode. Mais dans l'etat c'est pas totalement viable côter mods :s
 

ADMika

Aventurier
25 Juin 2014
29
0
1
36
Ah ben j'ai toruvé la différence, la class lister est là, mais elle est pas appelée dans la class launcher. C'est un oubli ou c'est voulu?
 

ADMika

Aventurier
25 Juin 2014
29
0
1
36
Ah ben j'ai toruvé la différence, la class lister est là, mais elle est pas appelée dans la class launcher. C'est un oubli ou c'est voulu?

Bon j'ai réactivé la class lister en modifiant la ligne suivante :

URL resourceUrl = new URL(LauncherConstants.URL_DOWNLOAD_MODS+"/nomrep/mods");
Pour qu'il retrouve le point d'entré des ressources/mods maintenant il fait le travail de delete des mods inexistants sur le ftp. J'ai pas lu tout le code entier de ton nouveau launcher donc je sais pas si c'est une bêtise ou pas mais ça à l'air de fonctionner pas trop mal.A toi de me dire si j'ai fais un gaffe. Au passage,as-tu déjà remarqué que (pas tout le temps mais souvent) certains fichiers sont redownloader sans réelles raisons ?
 

jambonlatex

Architecte en herbe
11 Octobre 2013
133
22
125
32
Bon j'ai réactivé la class lister en modifiant la ligne suivante :

URL resourceUrl = new URL(LauncherConstants.URL_DOWNLOAD_MODS+"/nomrep/mods");
Pour qu'il retrouve le point d'entré des ressources/mods maintenant il fait le travail de delete des mods inexistants sur le ftp. J'ai pas lu tout le code entier de ton nouveau launcher donc je sais pas si c'est une bêtise ou pas mais ça à l'air de fonctionner pas trop mal.A toi de me dire si j'ai fais un gaffe. Au passage,as-tu déjà remarqué que (pas tout le temps mais souvent) certains fichiers sont redownloader sans réelles raisons ?

Salut, en fait oui je lis mes messages privés mais j'ai pas eu le temps d'y répondre.

Alors pourquoi je fais appel de ma méthode lors de l'appui sur Play ? Tout simplement car je prends en compte la variable déterminant la version avec laquelle on va jouer, or cette variable n'est définie que lorsqu'on appuie sur Play, pas avant (avant d'appuyer sur Play, on est toujours à temps de changer de version dans notre profil.).

La classe Lister n'est effectivement pas utilisée dans le launcher présent, normalement j'ai une autre procédure dans la classe VersionManager :

Code:
if(LauncherConstants.useModResource){
           
            //Check version already installed
            final File forgeModsDirectory = new File(Launcher.getInstance().getWorkingDirectory().getAbsolutePath(), "/mods");
            if(!forgeModsDirectory.exists()){
                forgeModsDirectory.mkdirs();
            }
            else{
                String[] modsList = forgeModsDirectory.list();
               
                for(String versionFile : modsList){
                    if(versionFile.contains(".version")){
                        String vers1 = versionFile.replace(".version", "");
                        Launcher.getInstance().println("You have mods for version : " + vers1);
                        String vers2 = version.getId();
                        Launcher.getInstance().println("Version gonna be played : " + vers2);
                        if(!vers1.equals(vers2)){
                            Launcher.getInstance().println("You have mods for an other version of the game, deleting local mods.");
                            deleteRecur(forgeModsDirectory);
                            forgeModsDirectory.mkdir();
                        }
                    }
                }
            }
            File versf = new File(forgeModsDirectory.getAbsolutePath(), "/" + version.getId() + ".version");
            if (versf.createNewFile()){
                System.out.println("Version File created.");
            }
            job.addDownloadables(getModFiles(((RemoteVersionList)this.remoteVersionList).getProxy(), baseDirectory, version.getId()));
        }
 
        return job;

L'objet job retourné, appellera la methode downloadJob (la même que celle pour les assets) et téléchergera ou non les fichiers.

Il y a peut être une faille dans le code, c'est qu'en restant sur la même version, les mods obsolètes resteront, voilà le problème... Remettre Lister peut être une solution, il faut que je vérifie si la classe est bien utilisable dans tous les cas.

Merci du Feedback ;)
 

ADMika

Aventurier
25 Juin 2014
29
0
1
36
J'ai fais quelques test avec à la fois ta procédure et à la fois la class lister. Pour le moment ça à l'air d'aller a part que comme dit plus haut il retélécharge certaines choses inutiles a re télécharger comme les configs et les librairie forge.Maintenant que tu m'a montré ta procédure je vais voir si je peux pas fusionner les deux au lieu de les avoir dans deux endroits différents. J'ia pas encore tester de lancer avec répertoire vide non créer et les deux program mis en route. Mais je sens qu'il y a des chances que ça dl en double. A voir.Sinon pour le moment je te confirme que la class est utilisable comme elle l'était avant (améliorable comme avant aussi sur certains point). Et j'ai vu un peu plus haut dans d'autre poste que ma modif du php avait posé des soucis à quelqu'un. La modif faite était bonne pour l'ancien launcher (très bonne même) mais pour celui là j'ai pas creuser mais en effet la pose de l'utf-8 il aime pas trop. je suppose que mojang a modifier le launcher pour qu'il parse lui même cette fois (c'est pas plus mal)
 

ADMika

Aventurier
25 Juin 2014
29
0
1
36
Je vais testé ça :p, par contre si j'ai bien compris même les utilisateurs doivent avoir jdk pour lancer le bootstrap. (du faite qu'il est compilé avec, ou alors j'ai ratté un truc). Bon du faite que derrière je réupère les ressources et que moi je le compile en package classique ça me dérangera pas plus que ça, c'est certes une petite contrainte mais je sais pas ce que tu en penses, je trouve ça juste un peu dommage ,disons que c'est légèrement moins vendeurs pour les visiteurs de serveurs d'avoir des truc à poser en + sur leur client (pas méchant mais tu sais comment les gens sont ^^)
 

ADMika

Aventurier
25 Juin 2014
29
0
1
36
Je viens de tester ton nouveau client. L'update fonctionne, par contre je vois pas la différence dans le dépot. Je dois pas être bien réveillé, je vois bien que la class lister est relancer dans le bootstrap mais dans le code je vois pas où tu l'a fais. Enfin bref ^^.
Ah oui et au faite,si ça t'interesse (bon j'ai du boulot à refaire pour ça) mais quand j'aurais terminé, je pourrais peut-être te donner un client qui ne dépense que 300mo de ram (tester avec 129 mods installé et 50 personnes aux même endroit sur un serveur complètement chargé)Comme quoi mojang aurais pu clean tout ça :p ^^. Tu pourra le fournir avec ton pack d'installeur.
 

BlackHolePixel

Aventurier
2 Novembre 2013
12
1
3
24
Petite astuce pour tous ceux chez qui le launcher met des messages d'erreurs et ne fonctionne pas :
Il faut prendre la version x64 du Java Devellopement kit. (Et pas la x86)
 
Statut
N'est pas ouverte pour d'autres réponses.