Skip to content
This repository has been archived by the owner on Aug 9, 2022. It is now read-only.

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

Open
Arcandian opened this issue Dec 1, 2012 · 5 comments
Open

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

Arcandian opened this issue Dec 1, 2012 · 5 comments

Comments

@Arcandian
Copy link

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
Copy link
Author

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 :

  • ...gère-t-on le fichier de config par le code ;
  • ...on rajoute une étape au moment de la MAJ, du genre "Effacement du fichier <nom_du_fichier>", avant le téléchargement des fichiers.

Voilà voilà, merci d'avance ^^

@Arcandian
Copy link
Author

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
Copy link
Author

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
Copy link
Author

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
Copy link
Author

Ç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 ++ (^/^)

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

1 participant