[WIP]Launcher-MineLauncherCreator1.00(Windows)

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

Jey Wake

Aventurier
14 Juillet 2014
5
1
3
28
Salut,
Donc déjà je te dit merci de nous avoir fait un programme qui permet de faire un launcher après j'ai le même problème que Frayda_78 après toute les manipulations, et j'ai regarder le bootstrap avec jdgui et enfaite notre lien n'a pas remplacer les liens par défaut dans le bootstrap.class (ligne 232) et le lien dans downloader.class (ligne 56,71). De plus, dans le Util.class il y a toujours le customcraft (ligne 29,35,38 et 41).

J'espère t'avoir aidé ^^

Edit: dans le launcher.jar, dans le package "version", il y a les class:

CompleteVersion (ligne 377)
ModVersionFile (ligne34)

Après dans la class launcher, à la ligne 261 , le customcaft n'a pas changé et ligne 421 (lien)
Dans la class Lister, ligne 92 (lien)

Voilà chez moi j'ai ca qui ne change pasç
 
  • J'aime
Reactions: Frayda_78

Frayda_78

Aventurier
8 Juillet 2014
22
0
1
24
Merci a Jay Wake , j'aurais jamais pu t'apporter cette aide :p

Quand je clique sur "Play" dans le launcher, voila ce qui arrive, tu pourrais m'expliquer?? :S
Code:
Refreshing local version list...
Launcher 1.0 (through bootstrap 5) started on windows...
Current time is Jul 14, 2014 7:54:30 PM
System.getProperty('os.name') == 'Windows 7'
System.getProperty('os.version') == '6.1'
System.getProperty('os.arch') == 'amd64'
Refreshing remote version list...
System.getProperty('java.version') == '1.7.0_60'
System.getProperty('java.vendor') == 'Oracle Corporation'
System.getProperty('sun.arch.data.model') == '64'
Refresh complete.
Loaded 0 profile(s); selected 'fraydaworld'
Logging in with username & password
Getting syncinfo for selected version
Queueing library & version downloads
Couldn't get complete version info for PartialVersion{id='1.6.4-custom', updateTime=Thu Oct 10 04:03:12 CEST 2013, releaseTime=Fri Jan 01 08:00:00 CET 1960, type=RELEASE}
java.io.IOException: Couldn't load local assets 1.6.4
    at net.minecraft.launcher.updater.VersionList.getCompleteVersion(VersionList.java:109)
    at net.minecraft.launcher.updater.VersionManager.getLatestCompleteVersion(VersionManager.java:94)
    at net.minecraft.launcher.GameLauncher.playGame(GameLauncher.java:567)
    at net.minecraft.launcher.ui.bottombar.PlayButtonPanel$1$1.run(PlayButtonPanel.java:34)
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: 403
    at net.minecraft.launcher.Http.performGet(Http.java:72)
    at net.minecraft.launcher.updater.RemoteVersionList.getContentResource(RemoteVersionList.java:27)
    at net.minecraft.launcher.updater.VersionList.getCompleteVersion(VersionList.java:106)
    ... 8 more
Caused by: java.io.IOException: Server returned HTTP response code: 403 for URL: https://s3.amazonaws.com/Minecraft.Download/indexes/1.6.4.json
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Unknown Source)
    at net.minecraft.launcher.Http.performGet(Http.java:59)
    ... 10 more
 

jambonlatex

Architecte en herbe
11 Octobre 2013
133
22
125
32
Merci a Jay Wake , j'aurais jamais pu t'apporter cette aide :p

Quand je clique sur "Play" dans le launcher, voila ce qui arrive, tu pourrais m'expliquer?? :S
Code:
Refreshing local version list...
Launcher 1.0 (through bootstrap 5) started on windows...
Current time is Jul 14, 2014 7:54:30 PM
System.getProperty('os.name') == 'Windows 7'
System.getProperty('os.version') == '6.1'
System.getProperty('os.arch') == 'amd64'
Refreshing remote version list...
System.getProperty('java.version') == '1.7.0_60'
System.getProperty('java.vendor') == 'Oracle Corporation'
System.getProperty('sun.arch.data.model') == '64'
Refresh complete.
Loaded 0 profile(s); selected 'fraydaworld'
Logging in with username & password
Getting syncinfo for selected version
Queueing library & version downloads
Couldn't get complete version info for PartialVersion{id='1.6.4-custom', updateTime=Thu Oct 10 04:03:12 CEST 2013, releaseTime=Fri Jan 01 08:00:00 CET 1960, type=RELEASE}
java.io.IOException: Couldn't load local assets 1.6.4
    at net.minecraft.launcher.updater.VersionList.getCompleteVersion(VersionList.java:109)
    at net.minecraft.launcher.updater.VersionManager.getLatestCompleteVersion(VersionManager.java:94)
    at net.minecraft.launcher.GameLauncher.playGame(GameLauncher.java:567)
    at net.minecraft.launcher.ui.bottombar.PlayButtonPanel$1$1.run(PlayButtonPanel.java:34)
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: 403
    at net.minecraft.launcher.Http.performGet(Http.java:72)
    at net.minecraft.launcher.updater.RemoteVersionList.getContentResource(RemoteVersionList.java:27)
    at net.minecraft.launcher.updater.VersionList.getCompleteVersion(VersionList.java:106)
    ... 8 more
Caused by: java.io.IOException: Server returned HTTP response code: 403 for URL: https://s3.amazonaws.com/Minecraft.Download/indexes/1.6.4.json
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Unknown Source)
    at net.minecraft.launcher.Http.performGet(Http.java:59)
    ... 10 more

Il semblerait que Mojang ait encore changé de serveur pour les assets, je vais voir si je peux le trouver rapidement.
 

jambonlatex

Architecte en herbe
11 Octobre 2013
133
22
125
32
Ok d'acord, merci :)

Apparemment c'est pour la 1.6.4 que ça coince, à partir de la 1.7.2 ça fonctionne, je vais voir dans le launcher vers là où il pointe pour les versions antérieures.

EDIT : okey tu devrais avoir une update à la prochaine ouverture de MLC , le code source a été mis a jour... Certaines versions du jeu puisent les Assets vers d'autres adresses... Enfin bref j'ai fait un test chez moi en 1.6.4 ça fonctionne avec le nouveau code ;)
 

Jey Wake

Aventurier
14 Juillet 2014
5
1
3
28
Pour moi, cela marche il faut juste faire attention avec forge 1.7.2 pour les librairie. En effet forge ne télécharger pas les librairie car il ne les trouvés pas (il n'exister plus enfaite) et ce que j'ai fait c'est que j'ai du refaire l'arborescence du download qu'il demandé dans mon FTP comme ceci:

1405416510-sans-titre.png


Puis mettre les fichiers au bout que vous pouvez trouver dans .minecraft si vous avez déjà installé forge 1.7.2 avec l'installeur qu'il donne sur leur site. Et enfin ouvrir le .json dans le dossier version/1.7.2-custom/1.7.2-custom.json pour pouvoir changer les liens par la base, exemple: http://monsite.com/forge/

Après chez moi, il y a que ça qui marche ^^, car les mods ne se télécharges pas.
 

jambonlatex

Architecte en herbe
11 Octobre 2013
133
22
125
32
Pour moi, cela marche il faut juste faire attention avec forge 1.7.2 pour les librairie. En effet forge ne télécharger pas les librairie car il ne les trouvés pas (il n'exister plus enfaite) et ce que j'ai fait c'est que j'ai du refaire l'arborescence du download qu'il demandé dans mon FTP comme ceci:

1405416510-sans-titre.png


Puis mettre les fichiers au bout que vous pouvez trouver dans .minecraft si vous avez déjà installé forge 1.7.2 avec l'installeur qu'il donne sur leur site. Et enfin ouvrir le .json dans le dossier version/1.7.2-custom/1.7.2-custom.json pour pouvoir changer les liens par la base, exemple: http://monsite.com/forge/

Après chez moi, il y a que ça qui marche ^^, car les mods ne se télécharges pas.

Jey Wake effectivemetn tu as trouvé la bonne méthode, c'est celle utilisée dans mon ancien tuto (sauf qu'au lieu de les mettre a la racine, je mettais les lib dans le répertoire launcher/)
Je pense rajouter les lib directement avec le code du launcher, et faire un download auto de la version de forge souhaitée.

aucun mod ne s'est dl ? ton répertoire ressources/ sur le ftp est bien à la racine ? (à coté de launcher/) et à l'interieur tu as bien un fichier php qui genere un xml ? Sinon ça aussi je vais le faire en automatique ça sera plus simple ;)
 

Jey Wake

Aventurier
14 Juillet 2014
5
1
3
28
Aucun mods se dl (j'en est mis 4 pour tester)

1405431255-sans-titre.png


Mais il y a aucun fichier en php qui génère un xml dans les dossiers launcher ou ressources. C'est quoi le fameux fichier php ^^?
 

jambonlatex

Architecte en herbe
11 Octobre 2013
133
22
125
32
Aucun mods se dl (j'en est mis 4 pour tester)

1405431255-sans-titre.png


Mais il y a aucun fichier en php qui génère un xml dans les dossiers launcher ou ressources. C'est quoi le fameux fichier php ^^?


PHP:
<?php
function ScanDirectory($Directory, $tableau=false){
$slash = '';
    $MyDirectory = opendir($Directory) or die('Erreur');
    while($Entry = @readdir($MyDirectory)){
        if($Entry != '.' && $Entry != '..' && $Entry != 'index.php' && $Entry != ".htaccess" && $Entry != "indexold.php" && $Entry != "test.php" && $Entry != "libraries"){
            if(is_dir($Directory.'/'.$Entry)&& $Entry != '.' && $Entry != '..'){
                $slash = '/';           
            }
                        else
                        {
                        $slash = '';
                        }
            $tableau[] = substr($Directory.'/'.$Entry, strlen(strstr($Directory.'/'.$Entry, '/', true))+1).$slash;
        }
        if(is_dir($Directory.'/'.$Entry)&& $Entry != '.' && $Entry != '..'){
            $tableau = ScanDirectory($Directory.'/'.$Entry, $tableau);
        }
    }
    closedir($MyDirectory);
    return $tableau;
}
 
Header('Content-type: text/xml');
$xml = new SimpleXMLElement('<xml/>');
 
$base = $xml->addChild('ListBucketResult');
$base->addChild('Name', "ressources");
$base->addChild('Prefix');
$base->addChild('Marker');
$base->addChild('MaxKeys', "1000");
$base->addChild('IsTruncated', 'false');
 
foreach(ScanDirectory('.') as $key => $value){
    $stat = stat($value);
    $content = $base->addChild('Contents');
    $content->addChild('Key', htmlentities($value));
    $content->addChild('LastModified', date("Y-m-d\TH:i:s.000\Z", filemtime($value)));
   
    if(is_dir($value)&& $value != '.' && $value != '..'){
        $content->addChild('ETag', '"'.md5($value).'"');
        $content->addChild('Size', 0);
    }else{
        $content->addChild('Size', $stat['size']);
        $content->addChild('ETag', '"'.md5_file($value).'"');
    }
    $content->addChild('StorageClass', 'STANDARD');
}
 
print($xml->asXML());
?>
 
Statut
N'est pas ouverte pour d'autres réponses.