FFMT / ModPackInstaller

A customizable, simple to use, modpack installer and updater !
Other
21 stars 3 forks source link

3 bugs a corriger #18

Closed ghost closed 8 years ago

ghost commented 8 years ago

Salut, désolé d'vous dérangé mais j'dois vous faire part de 2 bugs concernant l'installateur.

Premier bug :

Les fichiers et dossiers qui ne sont plus dans la ligne syncdir du remote_info.json et qui ont été totalement enlevés du serveur ne sont pas supprimés coté client.

Par exemple lorsque que je remplace un mod par une version plus récente (Joublis jamais d'enlever le mod coté serveur), lorsque je lance le jeu il est encore présent, donc "mod duplication".

Deuxième bug :

Quelques explications : En fait, on a un mod assez spécial, PML (minecraftforum), qui ne s'installe pas comme les autres et qu'on a du mettre a jour vers la dernière version. En gros, on peux seulement téléchargé le mods avec l'installateur parce qu'il se lance avant l'updater du launcher. Et étant donné que les fichiers sont pas supprimés côté client comme je vous l'ai dit en haut, on a du le faire nous même. Je sais pas c'est quoi le problème, et ça a peux-être aucun rapport avec ce que je viens de vous dire, mais lorsque le gars qui a voulu utiliser l'installateur sur Linux a cliquer sur installer ça a afficher ce code d'erreur (pastebin). Tandis que pour moi, sur windows, y'a eu aucun problème

Troisième bug :

Lorsque le modpack est encore présent dans le .minecraft (avec tous les fichiers et le profil du modpack ) et lorsqu'on réinstalle le modpack avec l'installateur (même si la préconfiguration choisie est la même), les JVM arguments sont supprimés et les config des mods sont tous re-téléchargés.

Pouvez-vous les corriger ? Merci d'avance

robin4002 commented 8 years ago

Le premier bug n'est pas un bug, c'est le comportement prévu. Tous les fichiers non présent dans syncDir ne sont pas répliqué à l’identique sur le client. Si je fais en sorte qu'il supprime les fichiers non présents sur le serveur, il va supprimer pleins de choses en local alors qu'il ne devrait pas. C'est bien pour ça que le dossier mods DOIT être dans la liste des SyncDir.

Pour le deuxième bug, j'ai regardé le pastebin, le problème vient de la whitelist, il n'a pas réussi à la lire correctement.

Et pour le troisième bug, c'est normal qu'il efface les arguments déjà présents puisqu'il ré-écrit le profil à chaque installation, je n'ai pas prévu le cas où le profil existe déjà. Je vais voir pour ajouter la persistance des arguments Java. Par contre pour les config qui sont re-téléchargés ce n'est pas normal.

ghost commented 8 years ago

Premier bug :

Voici le contenu de ma ligne syncDir :
"CustomDISkins, resourcepacks, shaderpacks, config, mods/1.7.10, PMLMods, PMLCore, PML" Comme vous pouvez le voir, tout ce qui y est présent devrait être synchroniser (les fichiers de trop coté client devraient être supprimer), mais ce n'est pas le cas. Vous devriez peut-être tester par vous même et/ou vérifier votre code.

Deuxième bug :

Merci, ça marche maintenant, j'avais laissé une ligne faisant référence un whitelist vide dans le remote_info.json

Troisième bug :

Merci et bonne chance, xDDDDD Pour les JVMarg, c'est peux-être du au fait que j'aille garder la ligne dans le remote-info.

robin4002 commented 8 years ago

mods/1.7.10 ↓↓↓ mods Le système ne prend pas en compte les /, enfin je ne pense pas.

ghost commented 8 years ago

S'il faut vraiment que ça soit mods, alors pourquoi les autres marchent pas non plus (y'a pas de / dans les autres) ?

robin4002 commented 8 years ago

Les autres non plus ? Pourtant ça devrait. Tu es bien le premier à rapporter un problème avec cette fonctionnalité. J'utilise l'installateur pour un de mes projets ce soucis n'a jamais été rencontré (et personne d'autre ne me l'a rapporté).

ghost commented 8 years ago

Vous utiliser quelle version de l'updater ? Moi c'est la dernière (2.1.2). C'est p'tre du a la nouvelle version de l'installateur (depuis la 2.0.0 je veux dire). Le problème vient p'tre de la.on fichier remote-info.json qui est ici, j'utilise Liteloader et Forge.

ghost commented 8 years ago

Des idées ?

robin4002 commented 8 years ago

Ton installateur ne se lance même pas chez moi, il manque la partie "welcome" dans le fichier remote_info.json.

robin@robin-desktop:~/Téléchargements$ java -jar HCI-2.1.2.jar Successfully read file : sun.net.www.protocol.jar.JarURLConnection$JarURLInputStream@7b1d7fff Successfully read file : sun.net.www.protocol.jar.JarURLConnection$JarURLInputStream@6bc168e5 Exception in thread "main" argo.jdom.JsonNodeDoesNotMatchPathElementsException: Failed to find a field called ["welcome"] at ["install"."welcome"] while resolving ["install"."welcome"] in [...]. at argo.jdom.JsonNodeDoesNotMatchPathElementsException.jsonNodeDoesNotMatchPathElementsException(JsonNodeDoesNotMatchPathElementsException.java:23) at argo.jdom.JsonNode.wrapExceptionsFor(JsonNode.java:359) at argo.jdom.JsonNode.getStringValue(JsonNode.java:184) at fr.minecraftforgefrance.common.RemoteInfoReader.getWelcome(RemoteInfoReader.java:113) at fr.minecraftforgefrance.installer.InstallerFrame.<init>(InstallerFrame.java:164) at fr.minecraftforgefrance.installer.Installer.main(Installer.java:28)

ghost commented 8 years ago

J'ai corriger ça, désolé. Sinon, on dirait qu't'es aussi fouineur que moi, xD (J'suis sur que t'a vu les mods qu'j'ai maj et mon site web, si tu veux en apprendre plus sur mes projets, demande sur skype : vrackfall) Donc, je pense que tu sais quoi faire pour l'installateur.

robin4002 commented 8 years ago

Donc j'ai constaté les deux anomalies suivantes :

ghost commented 8 years ago

Merci, pour la réponse, j'l'attendais pu, :) Sinon, le fichier intru.txt, tu devrais essayer de le mettre dans les autres dossiers du sync dir, pour voir si ça fait la même chose. Ah et j'ai enlever le HCI-2.1.2.jar dy dossier sync (j'l'avais mis la par accident, y sera plus téléchargé)

Merci d'avance

robin4002 commented 8 years ago

Du-coup le deuxième bug c'est réglé non ?

Pour le troisième : https://github.com/FFMT/ModPackInstaller/commit/50982c3e1138033d62fd7586f94dc5cd4f734813 https://github.com/FFMT/ModPackInstaller/commit/799b5caaf0abc1980b5a9db8a9b19b96929c348e

Il reste encore le premier à faire.

EDIT : Pour le premier problème : "syncDir": "CustomDISkins, resourcepacks, shaderpacks, config, mods/1.7.10, PMLMods, PMLCore, PML", devrait être : "syncDir": "CustomDISkins,resourcepacks,shaderpacks,config,mods/1.7.10,PMLMods,PMLCore,PML", Il ne faut pas d'espace car je split la virgule et non la virgule + un espace Par contre mods/1.7.10 ne fonctionnera toujours pas, le système n'est pas prévu pour. As-tu vraiment besoin de synchroniser seulement mods/1.7.10 et non tout /mods ?

EDIT2 : plus besoin d'enlever les espaces, j'ai ajouté la fonction trim : https://github.com/FFMT/ModPackInstaller/commit/eb443bdaf81b7192ebb28d7f9f1a762d757a3d26

Par contre faudrait éviter de mettre le dossier config dans syncDir comme tu l'utilises dans les preset (car du-coup il supprime tous les preset comme ils ne sont pas dans le dossier sync).

ghost commented 8 years ago

Re, donc. Oui le deuxième bug est réglé.

Pour le premier bug, faut-tu que j'installe une nouvelle version ou ça marche maintenant (sachant que j'utilise l'updater hébergé sur mon site)? Et étant donné qu'il me faut vraiment le dossier mods/1.7.10, j'ai une super idée : Plusieurs répertoires dans le syncUrl (simple et efficace), sans oublier de lui ajouter le trim :

          "syncUrl": "http://dl.hotcube.xyz/sync/, http://dl.hotcube.xyz/sync/mods/1.7.10/",

Et pour ton dernier commentaire, eh bien non, je pense pas, parce que j'ai pas les même fichier dans le dossier sync et le dossier des preset.

Merci d'avance

robin4002 commented 8 years ago

Plusieurs syncUrl de cette façon ne servira à rien, car le système fonctionne de façon récursif. (le fait de mettre http://dl.hotcube.xyz/sync/ va prendre avec http://dl.hotcube.xyz/sync/mods/1.7.10/). J'ai déjà réfléchi à comment implémenter les sous dossiers cette après midi. Mettre syncDir comme ceci : "syncDir": "CustomDISkins, resourcepacks, shaderpacks, config, mods/1.7.10, PMLMods, PMLCore, PML", fonctionnera, je m'en occupe demain.

Pour le dossier config, le problème c'est que l'updateur ne prend pas en compte les preset (les preset n'ont pas non plus de md5, c'est au plus simple possible) du-coup comme tu as mit "config" en sync dir l'installateur écrase le preset par ce que se trouve dans le dossier sync. Donc il ne faut pas mettre le dossier config en syncDir ou alors il faut mettre le md5 de chaque fichier du preset dans la whitelist.

Si tu veux tester les changement tout de suite il faut compiler le projet, je ne l'ai pas encore fait, je vais passer l'installateur en version 2.2 et compiler une fois que j'aurai corrigé tous les problèmes que je veux (donc ajouter le support des sous-dossier + fixer l'https + l'erreur avec la barre de progression).

ghost commented 8 years ago

Ok, j'peux ben attendre, pour les md5, ça c'est pas mal une bonne idée, (avant ils étaient pas écrasés parce que les fichiers étaient pas supprimer, mais j'aime mieux qu'ils le soient).

robin4002 commented 8 years ago

Par contre, le problème du-coup c'est que les utilisateurs pourront ajouter un mod de x ray ou de triche dans le dossier mods et il ne sera pas supprimé comme il n'est pas dans syncDir. Si je comprends bien tu veux mettre seulement "mods/1.7.10" dans syncDir et pas "mods" à cause des autres dossiers qui sont dans le dossier mods ?

Car sinon ce que je pense faire c'est mettre une option pour désactiver le mod récursif de syncDir et donc il faut mettre à la main chaque dossier.

ghost commented 8 years ago

Oui, et aussi a cause des autres fichiers qui sont dedans

robin4002 commented 8 years ago

Ok donc je vais ajouter une option pour activer les sous dossiers qui désactivera en même temps le mode récursif. En gros en activant cette option le fait de mettre "mods" dans la liste SyncDir ne va que vérifier les fichiers qui se trouve dans le dossier mods. Pour prendre en compte les fichiers qui se trouvent dans mods/1.7.10 il faut ajouter "mods/1.7.10" dans la liste SyncDir . Du-coup le dossier mods/AutoSwitch ne sera pas prit en compte sauf si tu ajoutes "mods/AutoSwitch" en plus dans la liste.

ghost commented 8 years ago

Ok, c'est good.

robin4002 commented 8 years ago

C'est mit en place, je commit. Par contre il faudra du-coup que tu ajoutes les autres sous dossier (PML/installs, PML/Minecraft, CustomDISkins/HCS-, CustomDISkins/HCS+) sinon ils ne seront plus synchronisés.

Il faut également que tu ajoutes "subfolder": true, au dessus de la ligne syncDir dans le fichier remote_info.json

ghost commented 8 years ago

Ok, thanks La release c'est tu pour tout d'suite ?

robin4002 commented 8 years ago

J'aimerai corriger l'https et l'erreur avec la barre de progression avant de release la v2.2

ghost commented 8 years ago

Ok

ghost commented 8 years ago

J'ai tu encore besoin de la whitelist ou je suis pas obliger d'la mettre ?

robin4002 commented 8 years ago

Pas besoin.

ghost commented 8 years ago

J'pense que j'suis l'seul a avoir un système aussi avancé que l'votre

robin4002 commented 8 years ago

En effet, la plupart des utilisateurs ont une utilisation basique (juste le dossier mods en sync, pas de preset) Pour mon usage j'ai le dossier mods en sync, une whitelist, pas de preset. Donc c'est aussi assez basique comme utilisation.