KokaKiwi / MCLauncher

Custom Launcher for Minecraft
38 stars 28 forks source link

Pour une MAJ Forge, supprimer ses dossiers automatiquement ! #19

Open Arcandian opened 11 years ago

Arcandian commented 11 years ago

Re re Kiwi c'est encore moi !

Bon ben ça marche nickel avec cette nouvelle MAJ avec Forge ;-)

Par contre pour éviter des soucis de compatibilité avec des mods en conflits, des doublons de mods, des configs erronées, etc... je suggère d'avoir la possibilité de supprimer, grâce au fichier de config, des dossiers avec leurs fichiers, ou, si la disposition du répertoire de jeu est amener à évoluer, de supprimer entièrement le contenu de ce répertoire sauf certains répertoires ou fichiers dêfinis dans la config avec une liste d'exclusions.

Ça serait intéressant, ça éviterait bien des soucis aux utilisateurs finaux et aux admins ^^

Voilà voilà :-)

EDIT : Je tenterais d'écrire le code dedié à la gestion d'exclusions des dossiers, étant plus propre et simple à créer, si tu veux, je pusherais mon code à partir du fork de ton projet. Comme ça, si cela t'intéresse, on aura qu'à merger nos projets si cela te tente ^^

Arcandian commented 11 years ago

Bon ! Je viens de faire un essai avec mon code. Les dossiers sont automatiquement gérés via une liste de dossiers écrite en dur dans le code et si dans le fichier de config, on remplace le paramètre 'official' dans la config des versions par 'forge', alors les dossiers sont automatiquement supprimés sauf les paramètres utilisateur.

Cependant, pour rendre ce système plus ouvert, je souhaitais te demander comment :

Voilà voilà, merci d'avance ^^

Arcandian commented 11 years ago

Bon maintenant j'ai quelques difficultés à obtenir la propriété "versions.name" pour vérifier que la version est 'forge', comme dit plus haut...

J'ai cette erreur :

14:13:11 [SEVERE] java.lang.NullPointerException14:13:11 [SEVERE] at com.arcandian.fml.integration.ForgeIntegration.cleanMods(ForgeIntegration.java:15)14:13:11 [SEVERE] at com.kokakiwi.mclauncher.core.updater.UpdaterWorker.update(UpdaterWorker.java:36)14:13:11 [SEVERE] at com.kokakiwi.mclauncher.core.Updater.run(Updater.java:72)14:13:11 [SEVERE] at java.lang.Thread.run(Unknown Source)

Arcandian commented 11 years ago

Bon j'ai trouvé le souci, c'était simplement une faute d'innatention. Au lieu de faire "api.getConfig().getStringList("versions.name") ", suffisait de mettre simplement "api.getConfig().getString("versions.name") ", j'ai voulu récupérer un tableau de chaînes de caractères au lieu de récupérer simplement une seule chaîne dans "versions.name".

Voili ^^

Je testerais pour la liste d'exclusions plus tard, bon codage ^^

Arcandian commented 11 years ago

Raté ! C'était pas une faute d'inattention !

Je comprends pas comment récupérer le contenu de la chaîne de caractères de "versions.name", et j'ignore pourquoi, la fonction getMinecraftDirectory() dont je souhaite avoir le chemin en String me renvoie encore une erreur de type NullPointerException !

Peux-tu m'éclairer sur le sujet?

Merci d'avance et bon coding (^/^)

Arcandian commented 11 years ago

Ça y est, le problème est résolu !

En fait, il suffisait simplement que j'ajoute un paramètre prenant un objet LauncherAPI à ma fonction, et vu qu'elle s'exécute dans UpdateWorker, ben ça marche nickel !

Si tu veux consulter le code que j'ai rajouté (c'est temporaire, le temps de faire un vrai système d'exclusions), c'est par là :

https://github.com/Arcandian/MCLauncher

Je mettrais d'autres coms sur ce ticket pour dire où j'en suis si t'es d'accord, !

A ++ (^/^)