Mouais Wikipedia…
Minantcraft
Ce tutoriel est également disponible en vidéo.
Note: cette installateur ne gère pas la 1.13 et les versions plus récentes.
Salut à tous ! Dans ce premier tutoriel hors série je ne vais pas vous apprendre à créer un bloc, ni un item, ni quoi que ce soit en rapport avec la programmation. Je vais plutôt vous apprendre à créer un installateur de mod pour votre serveur. Comme dit juste avant, il n’y aura rien à programmer. Il suffit juste de modifier des fichiers texte, n’importe qui peut donc suivre ce tutoriel.
L’installateur à les fonctionnalités suivantes :
Par rapport à un launcher, l’installateur a les avantages suivants :
Par rapport à un launcher, l’installateur a les désavantages suivants :
Voici une rapide démonstration en vidéo, si celle-ci vous satisfait vous n’avez plus qu’à suivre le tutoriel.
https://www.youtube.com/watch?v=PwBJDtyXMDE
Commencez par télécharger les ressources depuis le lien suivant : http://dl.mcnanotech.fr/FFMT/installer/resourcesV2/
Vous allez avoir besoin du fichier structure.zip et du fichier zip correspondant la version de forge souhaitée. Si la version de Minecraft que vous souhaitez n’est pas disponible n’hésitez pas à demander, je la rajouterai. Je vais vous expliquer plus tard dans le tutoriel comment changer la version de forge.
Extrayez les deux archives. Connectez-vous en ftp à votre serveur puis créez un nouveau dossier nommé installateur. Dans ce dossier installateur uploadez le dossier sync (qui était présent dans l’archive structure). Si vous souhaitez mettre en place des pré-configurations uploadez aussi le dossier preset.
Ouvrez maintenant le fichier remote_info.json à l’aide d’un éditeur de texte.
Nous allons dans un premier temps modifier la partie “install”.
.minecraft/modpack/<nom du modpack>
. Tous les fichiers placés dans le dossier sync seront téléchargés à l’identique dans le dossier de jeu. Donc si j’ajoute un fichier “MonMod.jar” dans un dossier mods, que j’upload dans le dossier sync, lors de l’installation l’installateur va télécharger ce fichier dans le dossier .minecraft/modpack/<nom du modpack>/mods/
. À savoir qu’un programme nommé “updater” est lancé lorsque le joueur lance le profil de votre serveur donc les fichiers qui se trouvent dans le dossier sync sont vérifiés à chaque lancement et téléchargés si manquants. Avec ce comportement si je retire ce mod du dossier sync/mods, le fichier va être conservé sur l’ordinateur de l’utilisateur. De même si l’utilisateur télécharge et place dans le dossier .minecraft/modpack/<nom du modpack>/mods/
un fichier qui n’est pas présent dans le dossier sync/mods, celui-ci sera conservé. Cependant, comme le dossier mods est présent dans la liste “syncDir”, le dossier mods sera alors identique dans le dossier de jeu de l’utilisateur et dans le dossier sync. Donc si je retire le mod du dossier sync/mods, il sera aussi retiré du dossier .minecraft/modpack/<nom du modpack>/mods/
. De même si l’utilisateur ajoute un autre mod. Par défaut, seul le dossier mods a ce comportement. Ajouter des dossiers à la liste syncDir permet donc de reproduire ce comportement dans d’autres dossiers. Du-coup il n’est pas possible d’installer des mods non présents dans le dossier sync/mods du serveur web. Sauf si vous configurez la whitelist, ce qui va être expliqué dans une autre partie du tutoriel.Attention, la dernière ligne présente avant la fermeture d’accolade ne doit pas avoir de virgule à la fin.
Par exemple :
{ "install": { "name":"demonstration", "minecraft": "1.8.9", "forge": "11.15.0.1718", "syncDir": "mods", "syncUrl": "http://dl.mcnanotech.fr/FFMT/installer/demo/sync/", "welcome": "Bienvenue sur l'installateur de démonstration", "whiteList":"http://dl.mcnanotech.fr/FFMT/installer/demo/whiteList.json", "JVMarg":"-Xmx1536M -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:-UseAdaptiveSizePolicy -Xmn128M", "webSite":"http://www.minecraftforgefrance.fr/", "credits":"Modpack créé par robin4002 pour cette démonstration", "changeLog":"http://dl.mcnanotech.fr/FFMT/installer/demo/changelog.json" }, […] <- j'ai coupé car le tout aurait été assez long
ceci fonctionnera.
{ "install": { "name":"demonstration", "minecraft": "1.8.9", "forge": "11.15.0.1718", "syncDir": "mods", "syncUrl": "http://dl.mcnanotech.fr/FFMT/installer/demo/sync/", "welcome": "Bienvenue sur l'installateur de démonstration", "whiteList":"http://dl.mcnanotech.fr/FFMT/installer/demo/whiteList.json", "JVMarg":"-Xmx1536M -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:-UseAdaptiveSizePolicy -Xmn128M", "webSite":"http://www.minecraftforgefrance.fr/", "credits":"Modpack créé par robin4002 pour cette démonstration", "changeLog":"http://dl.mcnanotech.fr/FFMT/installer/demo/changelog.json", }, […]
Ceci est un json invalide et causera une erreur.
Ensuite dans la partie “profile” changez juste la valeur de id. l’id va correspondre au nom du dossier qui se trouve dans le dossier .minecraft/modpack/ ainsi qu’au dossier qui se trouve dans .minecraft/version/
Choisissez de préférence un nom sans caractères spéciaux ni d’espace (uniquement a-z,A-Z,0-9).
Je vous invite à vérifier votre json avec le site suivant : http://jsonlint.com/ (il faut bien copier/coller tout le json et non juste une partie, sinon il va tout le temps vous dire que c’est invalide)
Vous pouvez maintenant uploader le fichier dans le dossier installateur du ftp.
Rendez-vous sur la page de téléchargement de l’installateur et téléchargez le dernier installateur en date (le fichier .jar).
Ouvrez le fichier jar à l’aide d’un logiciel d’extraction (7zip, winrar, etc… sous OS X il faut extraire le zip afin d’obtenir un dossier puis modifier directement le contenu du dossier, refaire un .zip à l’aide du dossier une fois les modifications terminées et enfin changer l’extension du fichier .zip en .jar)
Ouvrez le dossier “installer” qui se trouve à l’intérieur de l’archive. Ouvrez maintenant le fichier local_info.json à l’aide d’un éditeur de texte. Changez l’url par celle de votre fichier remote_profile.json.
Remplacez également le fichier logo.png par le logo de votre serveur. Éviter les images trop grandes, mettre une image de 1280x720 par exemple est une très mauvaise idée. L’idéal se situe entre 100x50 et 600x300. Si vous ne voulez par d’image sur l’installateur remplacez le fichier logo.png par une image blanche de 100x1 par exemple. La non présence du fichier logo.png va faire planter l’installateur.
Le jar de votre installateur est maintenant prêt, il ne vous reste plus qu’à le distribuer à vos utilisateurs. (Vous pouvez le mettre sur votre ftp et distribuer le lien de ce dernier à vos utilisateurs).
Et si vous n’avez pas mis en place de whitelist, ni de changelog, ni de pré-configuration, votre installateur est fini et opérationnel !
Si ce dernier ne fonctionne pas, vérifiez dans un premier temps le fichier remote_profile.json. Si vous ne trouvez pas d’erreur ouvrez une discussion dans la section support pour l’installateur, décrivez le problème rencontré, donnez-nous le lien de votre fichier remote_profile.json ou le lien du jar de l’installateur et nous allons vous aider à régler le problème.
Téléchargez sur votre ordinateur le fichier whitelist.json que nous avons créé dans la première partie. Ce dernier est vide, ouvrez-le avec un éditeur de texte.
Ajoutez ceci dans le fichier :
{ "exemple.jar":"md5", "exemple2.jar":"md5", "exemple3.jar":"md5" }
Comme le reste de l’installateur la whitelist est au format json. Ici il faudra juste mettre le nom du mod suivi de son md5. Chaque ligne doit avoir une virgule à la fin, sauf la dernière.
Le nom du mod est juste là pour vous aider à vous retrouver, l’installateur ne l’utilise pas. Vous pouvez donc mettre ce que vous voulez sur la partie de gauche. La partie de droite par contre (le md5) est plus importante car c’est de que l’installateur va utiliser.
Pour obtenir le md5 d’un fichier vous pouvez utiliser le logiciel suivant sous Windows : http://www.winmd5.com/
Il faudra sélectionnez le fichier, le md5 s’affichera en dessous de “Current file md5 checksum value”.
Sous Linux ou OS X vous pouvez utilisez la commande md5sum depuis un terminal :
Voici un exemple de fichier whitelist.json avec un mod :
{ "OptiFine_1.8.9_HD_U_H3.jar":"e3c0fbd46bebe4e2dd1b55666e9f9377" }
Pas de virgule à la fin comme il n’y a qu’une seule ligne dans le fichier.
Avec plusieurs mods :
{ "OptiFine_1.8.9_HD_U_H3.jar":"e3c0fbd46bebe4e2dd1b55666e9f9377", "OptiFine_1.8.9_HD_U_H2.jar":"c55e665db3717a654a6ae973b7bb3083", "OptiFine_1.8.9_HD_U_H1.jar":"f4fd33036f372a6bb6050552f2241fb5", "InventoryTweaks-1.60-dev-27.jar":"fcd693fbca409f3e40e7d6ff39f25b96", "gamesense-1.11.jar":"9de271ea5ff1c5aeb2fafc943bd263b0" }
Seule la dernière ligne n’a pas de virgule.
Une fois fini il ne vous reste plus qu’à uploader le fichier sur votre ftp.
Si vous souhaitez autoris un mod de plus à tout moment il vous suffit de l’ajouter à cette liste simplement en modifiant à nouveau le fichier. De même si vous voulez interdire un mod précédemment autorisé, il vous suffit de le retirer de la liste.
Téléchargez sur votre ordinateur le fichier changelog.json que nous avons créé dans la première partie. Ce dernier est vide, ouvrez-le avec un éditeur de texte.
À nouveau le fichier est au format json, il faut donc faire attention aux virgules. Le format est simple, la partie de droite du json sera la version et la partie de gauche le changelog de la version. Il faudra utiliser “\n” pour faire un retour à la ligne. Voici un exemple de fichier valide :
{ "1.1.0":"-ajout de TheSpotLightMod\n-ajout d'IronChest", "1.0.0":"-version initiale" }
L’installateur affichera tous les changelog compris entre la dernière version et la version actuelle du client exclus. L’ordre doit être décroissant, la mise à jour la plus récente est donc haut-dessus et la plus ancienne en-dessous.
Le système de mise à jour reste totalement indépendant du changelog. C’est à dire que si vous ajoutez un mod sans modifier le changelog le système de mise à jour téléchargera quand même le mod. Donc si vous oubliez de modifier le changelog cela ne causera aucun problème. C’est seulement un plus pour que les joueurs de vos serveurs puissent voir les changements directement depuis le système de mise à jour.
Uploadez le fichier sur votre ftp une fois modifié (n’hésitez pas à le vérifier avec jsonlint pour être sûr qu’il n’y ait pas d’erreur dans le json).
Allez dans le dossier preset de votre ftp. Commencez par créer un dossier par pré-configuration que vous souhaitez mettre en place. Dans mon cas je vais créer un dossier nommé low_graphic, un dossier high_graphic et un dossier medium_graphic.
Téléchargez le fichier index.php qui se trouve dans le dossier preset. Ouvrez le fichier avec un éditeur de texte et modifiez la ligne 37 :
echo ' "default": "azerty",'."\n";
à la place de azerty indiquez le nom de la pré-configuration par défaut. Dans mon cas je vais mettre medium_graphic :
echo ' "default": "medium_graphic",'."\n";
Maintenant dans chaque dossier mettez les fichiers tels qu’ils vont se retrouver dans le dossier .minecraft/modpacks/<nom de=“” votre=“” modpack=“”>/
Par exemple dans mon cas comme je veux mettre une pré-configuration graphique, je vais mettre dans chaque dossier (low_graphic, medium_graphic et high_graphic créé précédemment) un fichier options.txt avec les options configurées à l’avance.
Dans le fichier options.txt qui se trouve dans le dossier low_graphic je vais mettre :
renderDistance:8
clouds:false
enableVsync:false
particles:2
(ces valeurs viennent du fichier options.txt qui se trouve dans le dossier .minecraft après avoir mis la distance de rendu sur 8, les nuages sur off, la vsync sur off et les particules sur minimum).
Pour finir, dans le fichier remote_info.json ajoutez ceci :
"preConfig": true, "preset": "https://lien.vers/le/dossier/preset/",
On peut utiliser le même principe pour faire des pré-configurations de touche. Ou alors pour des packs de ressources en créant un dossier “resourcepacks” et en plaçant un pack de ressource différent dans chaque dossier de pré-configuration.
Mettre en place une mise à jour est très simple. Si vous souhaitez ajouter un mod ajoutez simplement le jar du mod en question dans le dossier sync/mods/ du ftp. De même si vous souhaitez en retirer un. (pensez à bien mettre à jour votre serveur en même temps). Pour changer la version d’un mod supprimez le jar de l’ancienne version et ajoutez le jar du nouveau mod.
Si vous avez mis en place un changelog il faut juste ajouter dans le fichier changelog.json une ligne avec le numéro de version et les changements que vous avez effectué.
https://www.youtube.com/watch?v=vDjvlJW8RBQ
Rédaction :
Correction :
Ce tutoriel de Minecraft Forge France est mis à disposition selon les termes de la licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International
Oui ça fonctionne aussi.
Bonjour,
j’ai constamment un problème avec les autres pc qui lancent minecraft après l’installation:
Successfully read file : sun.net.www.protocol.jar.JarURLConnection$JarURLInputStream@12a3a380
Successfully read file : sun.net.www.protocol.jar.JarURLConnection$JarURLInputStream@6e0be858
Starting updater !
Exception in thread “main” java.lang.NoSuchMethodError: joptsimple.OptionParser.allowsUnrecognizedOptions()V
at fr.minecraftforgefrance.updater.Updater.<init>(Updater.java:44)
at fr.minecraftforgefrance.updater.Updater.main(Updater.java:36)
Pour information, mon installateur: http://mlp-france.fr/minecraft/installer-2.1.2.jar
Mon remote_info: http://mlp-france.fr/minecraft/remote_info.json
Si quelqun à une idée de pourquoi, je suis toute ouïe !</init>
J’ai vu ton commentaire sur youtube, franchement cette erreur est un mystère car la lib est bien présente et la fonction qu’il ne trouve pas est bien dedans. C’est vraiment étrange.
@‘robin4002’:
J’ai vu ton commentaire sur youtube, franchement cette erreur est un mystère car la lib est bien présente et la fonction qu’il ne trouve pas est bien dedans. C’est vraiment étrange.
Après de nombreux tests, le problème est réglé si forge est installé avant ou après l’installation depuis le launcher.
Peut-être une dépendance installée en même temps que le client forge ?
Sinon, la source du problème est la suivante: le message d’erreur apparaît si l’utilisateur n’a pas Forge d’installé (pas besoin de le lancer, juste l’installer depuis l’installateur Windows suffit)
Ps: testé sous 1.8.9 version 1808
@‘robin4002’:
J’ai vu ton commentaire sur youtube, franchement cette erreur est un mystère car la lib est bien présente et la fonction qu’il ne trouve pas est bien dedans. C’est vraiment étrange.
Bon, déjà, après avoir vérifié toutes les librairies individuellement, il n’en manque aucune, donc le problème ne vient pas de là.
Je ne comprend du coup pas comment l’installation de forge peut régler le problème.
Très bonne nouvelle !
Après un scan complet des fichiers avec WinMerge, j’ai pu déterminer l’erreur exacte.
Il semblerai que le fichier net.minecraftforge:forge:1.8.9-11.15.1.1808 qui se trouve dans les librairies et qui est téléchargé par le launcher est corrompu.
Si forge est installé avant, il ne retelecharge pas le fichier et a donc un fichier valide => Sa marche
Si forge est installé après le launcher forge détecte cette différence et retélécharge un fichier valide => Sa marche
Si forge n’est pas installé le launcher télécharge un fichier invalide => Il y à l’erreur
Et maintenant: Pourquoi ce fichier corrompu ?
Et bien, pour une raison très simple et très conne….
Le remote-info fourni pour la version 1722 dans les liens de téléchargement est corrompu !
En effet, une erreur est présente:
Ligne 35 pour directURL il télécharge le fichier installer au lieu du fichier universal !
Oui, tout sa à cause d’une simple erreur de mot dans le fichier fourni dans le dl.
Bref, il faudra vérifier dans tous les fichiers remote_info des liens de téléchargement que l’erreur n’est pas présente.
Et puis, tant que j’y suis, voici une version 1.8.9-1808 avec LiteLoader inclus: http://mlp-france.fr/minecraft/remote_info_forge1.8.9-1808_LiteLoader.zip
Alors là, franchement, bravo !
J’aurai jamais douté que le problème venait de là.
Quand j’y repense c’est logique, l’installateur de forge se retrouvait donc dans le classpath. Or ce dernier contient une version partiel de jsimplepot, sans la fonction en question, d’où le problème x) la version complète de jsimplepot étant donc ignoré à cause de ça …
J’ai corrigé le profil en question et vérifier les autres, le deuxième forge 1.8.9 avait visiblement le même soucis (en fait il était identique alors qu’il aurait du avoir une version différente de forge …). J’en ai profité pour mettre à jour ce dernier.
J’ai également ajouté le profile 1.8.9 avec lite loader, merci
Et je vais également ajouter un profil pour la 1.9. À l’avenir je vais essayer de faire un peu plus attention x)
En tout cas merci encore pour ton travail de recherche !
@‘robin4002’:
Alors là, franchement, bravo !
J’aurai jamais douté que le problème venait de là.
Quand j’y repense c’est logique, l’installateur de forge se retrouvait donc dans le classpath. Or ce dernier contient une version partiel de jsimplepot, sans la fonction en question, d’où le problème x) la version complète de jsimplepot étant donc ignoré à cause de ça …J’ai corrigé le profil en question et vérifier les autres, le deuxième forge 1.8.9 avait visiblement le même soucis (en fait il était identique alors qu’il aurait du avoir une version différente de forge …). J’en ai profité pour mettre à jour ce dernier.
J’ai également ajouté le profile 1.8.9 avec lite loader, merci
Et je vais également ajouter un profil pour la 1.9. À l’avenir je vais essayer de faire un peu plus attention x)En tout cas merci encore pour ton travail de recherche !
Merci à toi pour ton aide !
Bonjour à tous, je viens de finir de lire et de tester ton tuto et tous fonctionne !
Mais j’ai voulu tester les limites de installateur
Chez moi, tous les fichiers qui sont dans le dossier sync sont syntonisés à chaque fois alors que normalement seul les dossiers de la liste “syncDir” le sont !
Je voudrais savoir où mettre le fichier “server.dat” pour qu’il soit ajouté dans le modPack une fois, avec l’installateur, car pour le moment l’updater me le DL à chaque fois !
Voici mon remote_info :
“syncDir”: “mods,config”
“syncUrl”: “http:…/installateur/sync/”
Donc je mets mon “servers.dat” dans : installateur/sync/ .
Dois t’il être dans un sous-dossier pour ne pas être syncro ?
Et au passage j’ai fait la même manip pour le preset , l’index.php du preset voit bien mes option… .txt , ( sur navigateur ) , mais l’updater n’envois rien , ni même l’installateur pour la 1er install .
Merci d’avance pour votre aide
Salut,
Vu l’emplacement le fichier servers.dat ne devrait que être téléchargé lors de la première installation et non à chaque fois.
Et pour les preset ce n’est pas normal non plus.
Tu peux m’envoyer le lien de ton installateur modifié (ou du fichier remote_profile) ? (si tu ne veux pas les donner publiquement envoies-moi ça en mp)
La pré-configuration ne fonctionne pas car il manque la ligne :
“preset”;“http:// lien de ton dossier preset”,
dans la partie install du fichier remote_info.json
Et tu ne risquait pas de le savoir car j’ai oublié de le préciser dans le tutoriel x)
Concernant le fichier servers.dat retéléchargé à chaque fois je vais vérifier le code, il y a en effet un problème.
On ne dit pas installeur?
installateur en français, installer en anglais.
Salut
j’ai un soucis avec mon installer, il re-vérifie systématiquement le dossier config
et je n’arrive pas a ajouter le fichier server.dat
Merci du coup de main !
@‘robin4002’:
installateur en français, installer en anglais.
Installeur = programme qui t’installe un logiciel
Installateur = personne qui t’installe une lampe par exemple
Minantcraft
Installateur est aussi bon pour un programme qui installe.
Installeur est calqué de la langue anglaise.
En tout cas c’est ce qu’indique wikipedia : https://fr.wikipedia.org/wiki/Installateur_(logiciel)
@‘Histos’:
Salut
j’ai un soucis avec mon installer, il re-vérifie systématiquement le dossier config
et je n’arrive pas a ajouter le fichier server.dat
Merci du coup de main !
Peux-tu m’envoyer un lien vers ton fichier remote_profile.json ?
@‘robin4002’:
Installateur est aussi bon pour un programme qui installe.
Installeur est calqué de la langue anglaise.En tout cas c’est ce qu’indique wikipedia : https://fr.wikipedia.org/wiki/Installateur_(logiciel)
@‘Histos’:
Salut
j’ai un soucis avec mon installer, il re-vérifie systématiquement le dossier config
et je n’arrive pas a ajouter le fichier server.dat
Merci du coup de main !
Peux-tu m’envoyer un lien vers ton fichier remote_profile.json ?
je te l’ai envoyé
Mouais Wikipedia…
Minantcraft
Mouais un mec qui n’as que 192 abonnés …