Bonjour à tous !
Tout d'abord j'espère bien poster dans la bonne section...
Voilà je commence par ce petit tuto, qui en fait va s'étendre au fil de mes connaissances, mais aussi par vos interventions (je l’espère) qui me seront utiles pour peaufiner ce post.
Ayant dans l'optique de créer un launcher perso pour mon serveur en 1.6.2, je me suis mis au boulot toute la journée pour comprendre comment ça marche...
- Sauvegarde de dernière session- Le rajout de mods directement depuis son repository
On commence !
-Eclipse IDE For Java Developpers (JUNO version en 32bits) : http://adf.ly/XsKBW
- Code-source v.135 : http://adf.ly/am3pB
-Pack Custom - MinecraftForge 1.6.2 : http://adf.ly/XsJxi
-Pack Custom - MinecraftForge 1.6.4 : http://adf.ly/alzab
-Pack Custom - Minecraft 1.7.2 : http://adf.ly/5359908/pack-custom---minecraft172
-Une serveur FTP accessible par requête HTTP. (celui de votre site web par exemple)
-Dossier Ressources (pour les mods client) : http://adf.ly/a9evm
-Dans le dossier Eclipse, lancez Eclipse.exe
-Allez dans Help, puis cliquez sur Check Updates. Laissez lui faire les mises à jours si nécessaires.
-Retournez dans Help puis dans Eclipse MarketPlace.
-Cherchez les plugins "Maven Integration" et l'installer.
Ce plugin est nécessaire à l'importation de code Maven.
-Dans la fenêtre Project Explorer, faites un clic-droit et choisissez Import/Import... puis dans Maven choisissez Existing Maven Project
-Allez choisir les 2 dossiers décompressés par l'archive. (un par un)
-Les 2 projets Bootstrap et Launcher s'afficheront alors dans votre workspace.
-Ce package contient les fichiers Jar dépendants au bon fonctionnement de MinecraftForge.
-Transférez le dossier Launcher sur votre serveur FTP.
-Veuillez noter l'adresse HTTP du dossier (ex : "http://monsite.com/launcher/" )
-Dans le dossier Launcher/versions/1.6.2-custom/, éditez le fichier "1.6.2-custom.json"
-Au debut du code vous trouverez trois ligne intitulées URL avec pour valeur des adresses HTTP. Remplacez ces adresses par celles de votre serveur suivi par "maven/" (ex : "http://monsite.com/launcher/maven/" )
Remarque : Pour faire fonctionner 1.7.2, il faut mettre la valeur 9 à la version du launcher.
Le reste sert pour un système d'authentification perso.
NB : Dans URL_DOWNLOAD_MODS il faut mettre le dossier racine des ressources (si vous avez des mods, créer un dossier "mods" dans votre dossier racine "ressources" et mettez vos mods à l'intérieur)
NB 2 : POUR LE MOMENT, L’HÉBERGEMENT DE RESSOURCES PERSO FONCTIONNENT BIEN SUR SERVEUR AMAZON S3, MAIS IL EST POSSIBLE DE LE METTRE SUR VOTRE FTP EN TÉLÉCHARGEANT CECI. IL FAUT DÉCOMPRESSER LE FICHIER SUR VOTRE FTP ET VOUS AUREZ VOTRE RÉPERTOIRE "RESSOURCES" PRET A L'EMPLOI.
EDIT : NOUVEAU LIEN DES RESSOURCES DE BASE DE MOJANG :
NOUVEAU LIEN DES LIBRAIRIES MOJANG :
-Une fois que vous avez rempli ça correctement, Clic droit sur le projet, Run As > Maven Build... et dans les champ Goals mettez package.
-Après avoir cliqué sur Run, attendez que Maven vérifie le code. Une fois terminé rendez-vous dans le dossier du projet, ouvrez le dossier target et renommez le fichier minecraft-launcher-1.0.1-jar-with-dependencies.jar en launcher.jar puis uploadez le sur votre FTP dans le dossier "Launcher/".
-Déroulez le projet minecraft-bootstrap et rendez-vous dans src/main/java puis net.minecraft.bootstrap et ouvrez la classe BootstrapConstants.java
-Après avoir cliqué sur Run, attendez que Maven vérifie le code. Une fois terminé rendez-vous dans le dossier du projet, ouvrez le dossier target et renommez le fichier minecraft-bootstrap-1.0.1-jar-with-dependencies.jar en bootstrap.jar puis uploadez le sur votre FTP dans le dossier "Launcher/".
-Vérifiez bien que son adresse sur FTP est bien la même que dans votre configuration du launcher dans URL_BOOTSTRAP_DOWNLOAD.
-Installez le programme.
-Ouvrez le programme.
-Dans Output File entre l'endroit où votre launcher.exe va être enregistré.
-Dans Jar choisissez votre fichier Bootstrap.jar précédement transféré sur votre FTP.
-Vous pouvez rajouter un icone à votre fichier exe dans la partie Icon. (le fichier doit avoir l'extension .ico)
-Dans l'onglet JRE, inscrivez "1.6.2" dans Min JRE Version.
-Cliquez sur l'icone représentant une roue dentée en haut à gauche. Enregistrez le fichier config ou vous voulez.
-En appuyant sur Play, vous lancerez votre nouveau fichier EXE.
Voilà !
Chez moi ça marche très bien. Pensez aussi à avoir un accès total a vos fichiers sur serveur FTP (perso pour le tuto j'étais en chmod 777).
J'attends donc vos avis pour la mise en place d'un téléchargement d'une archive contenant tous les mods provenant du serveur FTP.
--> Vérifier vos permissions CHMOD, il faut que vos fichiers soient au moins accessibles en lecture et exécution. Si ca ne suffit pas, créer un nouveau fichier txt avec ecrit à l'intérieur "Options +Indexes" (sans guillemets), et uploadez-le à la racine de votre dossier launcher/ puis nommez-le ".htaccess".
-Peut-on ajouter la 1.6.4 en plus de la 1.6.2 ?
--> Oui. Il suffit de télécharger ce pack et de l'installer en écrasant l'ancien. Vous aurez alors 2 versions au choix lors du lancement du jeu.
-Les ressources de bases (comme les sons du jeu) ne sont pas téléchargés, que faire ?
-->Amazon et Mojang ont des petits problèmes, en fait il y a beaucoup trop de connexions sur le serveur Amazon donc impossible d'obtenir les ressources.
Vous pouvez utiliser un serveur secondaire en changeant dans LauncherConstants :
Par :
EDIT : NOUVEAU LIEN DES RESSOURCES DE BASE DE MOJANG :
Il faut ajouter l'exception pour le .txt :
-Que les fichiers JSON soient bien nommés "versions.json" et "X.X.X-NOM_DE_VERSION.json".
-Que le fichier "versions.json" pointe bien vers la bonne version :
-Que le fichier "X.X.X-NOM_DE_VERSION.json" est ses métadonnées qui concordent (tout en bas du script) :
-Que les Timestamps (balise "time") soient correct aussi (ils doivent tous être les mêmes partout !).
-Que vous ayez bien mis des urls accessibles dans votre fichier "X.X.X-NOM_DE_VERSION.json".
-Lorsque vous tentez d'aller sur URL_DOWNLOAD_MODS avec un navigateur web, il doit afficher une liste XML.
-Vérifiez que la condition useMod soit sur "true" dans LauncherConstants.
Merci à Rellynn pour le code source !
Tout d'abord j'espère bien poster dans la bonne section...
Voilà je commence par ce petit tuto, qui en fait va s'étendre au fil de mes connaissances, mais aussi par vos interventions (je l’espère) qui me seront utiles pour peaufiner ce post.
Ayant dans l'optique de créer un launcher perso pour mon serveur en 1.6.2, je me suis mis au boulot toute la journée pour comprendre comment ça marche...
EDIT : MERCI POUR LES 10000 VISITES DU TUTORIEL !
TODO LIST :
05/12/2013 - L'authentification perso (WIP)
21/11/2013 -Comparaison des ressources et suppression des outdated.
Je compte donc sur vous pour avancer le projet sur ces points-là !On commence !
Pré-requis :
-Java JDK SE 6 (dernière version) : http://adf.ly/XsLeb ou ici-Eclipse IDE For Java Developpers (JUNO version en 32bits) : http://adf.ly/XsKBW
- Code-source v.135 : http://adf.ly/am3pB
-Pack Custom - MinecraftForge 1.6.2 : http://adf.ly/XsJxi
-Pack Custom - MinecraftForge 1.6.4 : http://adf.ly/alzab
-Pack Custom - Minecraft 1.7.2 : http://adf.ly/5359908/pack-custom---minecraft172
-Une serveur FTP accessible par requête HTTP. (celui de votre site web par exemple)
-Dossier Ressources (pour les mods client) : http://adf.ly/a9evm
1/Installation d'Eclipse :
-Après avoir téléchargé l'archive zip du programme, décompressez là à l'endroit où vous voulez que l'installation soit faite.-Dans le dossier Eclipse, lancez Eclipse.exe
-Allez dans Help, puis cliquez sur Check Updates. Laissez lui faire les mises à jours si nécessaires.
-Retournez dans Help puis dans Eclipse MarketPlace.
-Cherchez les plugins "Maven Integration" et l'installer.
Ce plugin est nécessaire à l'importation de code Maven.
2/Importation des codes :
-Télécharger le code source et décompressez-le dans Mes Documents par exemple.-Dans la fenêtre Project Explorer, faites un clic-droit et choisissez Import/Import... puis dans Maven choisissez Existing Maven Project
-Allez choisir les 2 dossiers décompressés par l'archive. (un par un)
-Les 2 projets Bootstrap et Launcher s'afficheront alors dans votre workspace.
3/Ressources MinecraftForge :
-Une fois le fichier Pack Custom téléchargé, extraire l'archive.-Ce package contient les fichiers Jar dépendants au bon fonctionnement de MinecraftForge.
-Transférez le dossier Launcher sur votre serveur FTP.
-Veuillez noter l'adresse HTTP du dossier (ex : "http://monsite.com/launcher/" )
-Dans le dossier Launcher/versions/1.6.2-custom/, éditez le fichier "1.6.2-custom.json"
-Au debut du code vous trouverez trois ligne intitulées URL avec pour valeur des adresses HTTP. Remplacez ces adresses par celles de votre serveur suivi par "maven/" (ex : "http://monsite.com/launcher/maven/" )
4/Configuration de Launcher.jar
-Déroulez le projet minecraft-launcher et rendez-vous dans src/main/java puis net.minecraft.launcher et ouvrez la classe LauncherConstants.java- VERSION_NAME correspond à la version du launcher actuel
- DEFAULT_PROFILE_NAME correspond au nom du profil par défaut
- SERVER_NAME correspond au nom de votre serveur
- URL_DOWNLOAD_BASE correspond à l'url du dossier uploadé plus haut
- URL_DOWNLOAD_MODS correspond au dossier de ressources perso que vous hébergez
- URL_BLOG correspond à votre page pour les news (exemple :http://mcupdate.tumblr.com)
- URL_BOOTSTRAP_DOWNLOAD correspond à l'URL du fichier bootstrap.jar
Remarque : Pour faire fonctionner 1.7.2, il faut mettre la valeur 9 à la version du launcher.
Le reste sert pour un système d'authentification perso.
NB : Dans URL_DOWNLOAD_MODS il faut mettre le dossier racine des ressources (si vous avez des mods, créer un dossier "mods" dans votre dossier racine "ressources" et mettez vos mods à l'intérieur)
NB 2 : POUR LE MOMENT, L’HÉBERGEMENT DE RESSOURCES PERSO FONCTIONNENT BIEN SUR SERVEUR AMAZON S3, MAIS IL EST POSSIBLE DE LE METTRE SUR VOTRE FTP EN TÉLÉCHARGEANT CECI. IL FAUT DÉCOMPRESSER LE FICHIER SUR VOTRE FTP ET VOUS AUREZ VOTRE RÉPERTOIRE "RESSOURCES" PRET A L'EMPLOI.
EDIT : NOUVEAU LIEN DES RESSOURCES DE BASE DE MOJANG :
Code:
http://resources.download.minecraft.net/
NOUVEAU LIEN DES LIBRAIRIES MOJANG :
Code:
https://libraries.minecraft.net/
-Une fois que vous avez rempli ça correctement, Clic droit sur le projet, Run As > Maven Build... et dans les champ Goals mettez package.
-Après avoir cliqué sur Run, attendez que Maven vérifie le code. Une fois terminé rendez-vous dans le dossier du projet, ouvrez le dossier target et renommez le fichier minecraft-launcher-1.0.1-jar-with-dependencies.jar en launcher.jar puis uploadez le sur votre FTP dans le dossier "Launcher/".
5/Configuration de Bootstrap.jar
-Déroulez le projet minecraft-bootstrap et rendez-vous dans src/main/java puis net.minecraft.bootstrap et ouvrez la classe BootstrapConstants.java
- MD5_FILE correspond au lien du petit fichier qui contient le hash md5 de votre launcher (il est dans l'archive plus haut)
- SERVER_NAME correspond au nom de votre serveur
- APPLICATION_NAME correspond le dossier dans lequel sera stocké les fichiers (exemple : harmonycraft, les fichiers seront donc sauvegardés dans un .harmonycraft)
- LAUNCHER_URL correspond à l'url du launcher que vous venez d'uploader dans l'étape précédente
-Après avoir cliqué sur Run, attendez que Maven vérifie le code. Une fois terminé rendez-vous dans le dossier du projet, ouvrez le dossier target et renommez le fichier minecraft-bootstrap-1.0.1-jar-with-dependencies.jar en bootstrap.jar puis uploadez le sur votre FTP dans le dossier "Launcher/".
-Vérifiez bien que son adresse sur FTP est bien la même que dans votre configuration du launcher dans URL_BOOTSTRAP_DOWNLOAD.
6/Conversion de Bootstrap.jar en Launcher.exe
-Téléchargez le programme launch4j.-Installez le programme.
-Ouvrez le programme.
-Dans Output File entre l'endroit où votre launcher.exe va être enregistré.
-Dans Jar choisissez votre fichier Bootstrap.jar précédement transféré sur votre FTP.
-Vous pouvez rajouter un icone à votre fichier exe dans la partie Icon. (le fichier doit avoir l'extension .ico)
-Dans l'onglet JRE, inscrivez "1.6.2" dans Min JRE Version.
-Cliquez sur l'icone représentant une roue dentée en haut à gauche. Enregistrez le fichier config ou vous voulez.
-En appuyant sur Play, vous lancerez votre nouveau fichier EXE.
Chez moi ça marche très bien. Pensez aussi à avoir un accès total a vos fichiers sur serveur FTP (perso pour le tuto j'étais en chmod 777).
J'attends donc vos avis pour la mise en place d'un téléchargement d'une archive contenant tous les mods provenant du serveur FTP.
EDIT DU 21/11/2013 :
La supression des outdated mods est arrivé !
Screen pour un dossier mods en regle :
Et un petit malin qui essaye d'installer d'autres mods...
FAQ
-Je n'ai pas accès à mes fichiers uploadés par FTP ?--> Vérifier vos permissions CHMOD, il faut que vos fichiers soient au moins accessibles en lecture et exécution. Si ca ne suffit pas, créer un nouveau fichier txt avec ecrit à l'intérieur "Options +Indexes" (sans guillemets), et uploadez-le à la racine de votre dossier launcher/ puis nommez-le ".htaccess".
-Peut-on ajouter la 1.6.4 en plus de la 1.6.2 ?
--> Oui. Il suffit de télécharger ce pack et de l'installer en écrasant l'ancien. Vous aurez alors 2 versions au choix lors du lancement du jeu.
-Les ressources de bases (comme les sons du jeu) ne sont pas téléchargés, que faire ?
-->Amazon et Mojang ont des petits problèmes, en fait il y a beaucoup trop de connexions sur le serveur Amazon donc impossible d'obtenir les ressources.
Vous pouvez utiliser un serveur secondaire en changeant dans LauncherConstants :
Code:
public static final String URL_RESOURCE_BASE = "https://s3.amazonaws.com/Minecraft.Resources/"
Code:
public static final String URL_RESOURCE_BASE = "https://s3.amazonaws.com/MinecraftResources/
EDIT : NOUVEAU LIEN DES RESSOURCES DE BASE DE MOJANG :
Code:
http://resources.download.minecraft.net/
-Vous voulez exclure des fichiers de la purge dans le dossier mod ?
Exemple avec les fichiers type .txt :
Dans la classe Lister du Launcher ligne 77 :
Code:
if(lmd5.contains(md5) && !it.getName().endsWith(".cfg") && !it.getName().endsWith(".json")){
Code:
if(lmd5.contains(md5) && !it.getName().endsWith(".cfg") && !it.getName().endsWith(".txt") && !it.getName().endsWith(".json")){
PROBLEME AVEC LE LAUNCHER ?
Vérifiez :
-Que les liens que vous avez mis dans le code source sont accessibles (copier-coller le lien dans un navigateur web)-Que les fichiers JSON soient bien nommés "versions.json" et "X.X.X-NOM_DE_VERSION.json".
-Que le fichier "versions.json" pointe bien vers la bonne version :
Code:
{
"versions": [
{
"time": "2013-09-15T23:04:53-0500",
"id": "X.X.X-NOM_DE_VERSION",
"type": "release",
"processArguments": "username_session_version",
"releaseTime": "1960-01-01T00:00:00-0700"
}
],
"latest": {
"snapshot": "X.X.X-NOM_DE_VERSION",
"release": "X.X.X-NOM_DE_VERSION"
}
}
-Que le fichier "X.X.X-NOM_DE_VERSION.json" est ses métadonnées qui concordent (tout en bas du script) :
Code:
],
"mainClass": "net.minecraft.launchwrapper.Launch",
"minimumLauncherVersion": 4,
"time": "2013-09-15T23:04:53-0500",
"id": "X.X.X-NOM_DE_VERSION",
"type": "release",
"processArguments": "username_session_version",
"releaseTime": "1960-01-01T00:00:00-0700"
}
-Que les Timestamps (balise "time") soient correct aussi (ils doivent tous être les mêmes partout !).
-Que vous ayez bien mis des urls accessibles dans votre fichier "X.X.X-NOM_DE_VERSION.json".
Les mods ne se télécharge pas ?
-Vérifiez que le lien URL_DOWNLOAD_MODS est accessible.-Lorsque vous tentez d'aller sur URL_DOWNLOAD_MODS avec un navigateur web, il doit afficher une liste XML.
-Vérifiez que la condition useMod soit sur "true" dans LauncherConstants.
Merci à Rellynn pour le code source !