# Farm Tracker — application Linux Une vraie application de bureau (Electron). Au premier lancement, elle te demande ton dossier `.minecraft`, **une seule fois**. Tu arrives ensuite sur un écran d'accueil avec une liste d'outils (pour l'instant : Farm Tracker). Ouvrir un outil ne ferme pas les autres : ils continuent de tourner en arrière-plan, même quand tu es revenu à l'accueil ou sur un autre outil. Tout se sauvegarde **automatiquement** sur le disque : kills, items, cols, prix de vente, et chances de drop — rien à exporter ni recharger toi-même au jour le jour. Au prochain lancement, l'appli retrouve directement ton dossier et reprend exactement où tu en étais. ## Où sont stockées les données (et pourquoi en deux fichiers) Tout est dans `~/.config/farm-tracker/` : - **`app-state.json`** — le dossier Minecraft choisi, et l'état de session de chaque outil (kills, xp, items, prix...). Personnel, pas fait pour être partagé. - **`dropstats.json`** — uniquement les chances de drop cumulées. Volontairement séparé du reste : c'est le fichier fait pour être **lu, partagé et fusionné** avec celui d'autres joueurs (voir plus bas). Les noms d'items y sont stockés en clair (`"name": "Peau de Sanglier"`) en plus du format coloré du jeu, pour que tu puisses l'ouvrir et le comprendre sans l'appli. ## 1. Installer et lancer ```bash node -v # si absent : sudo apt install nodejs npm (ou via nvm) npm install npm start ``` ## 2. (Optionnel) Construire un AppImage ```bash npm run dist ``` Voir la section "entrée de menu" plus bas si tu veux l'épingler à ton menu d'applications. ## 3. Partager et fusionner les chances de drop entre joueurs C'est le point important si plusieurs personnes farment le même mob : un seul joueur a un échantillon limité (quelques dizaines de kills), mais en combinant 15 joueurs vous obtenez un échantillon de plusieurs centaines de kills — bien plus fiable pour estimer les drops rares. **Option A — depuis l'appli (le plus simple) :** Dans le panneau "Chance de drop" de Farm Tracker : - **📤 Exporter mes stats** → choisis où sauvegarder ton fichier (clé USB, Discord, dossier partagé...). - **📥 Importer / fusionner…** → sélectionne **plusieurs fichiers à la fois** (ceux de tous les autres joueurs) : tout est additionné en une seule fois dans tes propres stats. **Option B — en ligne de commande (pratique si quelqu'un centralise les 15 fichiers de tout le monde) :** ```bash node tools/merge-dropstats.js fusion.json joueur1.json joueur2.json joueur3.json ... ``` Ça fusionne tous les fichiers donnés en un seul `fusion.json`, avec un résumé affiché (mobs suivis, kills cumulés). Ce script ne nécessite que Node — pas besoin d'installer Electron juste pour fusionner des fichiers. Le fichier résultat peut ensuite être réimporté par n'importe qui via l'option A. ## 4. Utilisation générale - **Accueil** : clique sur une tuile pour ouvrir l'outil correspondant. - **🏠 Accueil** (en haut) : revient à la liste d'outils sans rien arrêter. - **Changer de dossier** (en haut, global) : repointe tous les outils vers un autre dossier `.minecraft`. Remet à zéro la session de farm en cours, mais **ne touche jamais** aux chances de drop déjà enregistrées. - **Réinitialiser la session** (dans Farm Tracker) : remet à zéro kills/xp/items de la session affichée, sans toucher aux chances de drop. - **Réinitialiser** (dans le panneau Chance de drop) : efface l'historique cumulé de drop — sépare exprès de la réinitialisation de session, exporte avant si tu veux le garder. ## 5. Sauvegarder / migrer tes données manuellement ```bash cp -r ~/.config/farm-tracker ~/backup-farm-tracker-$(date +%F) ``` Pour restaurer (l'appli doit être fermée) : ```bash cp -r ~/backup-farm-tracker-2026-06-28/* ~/.config/farm-tracker/ ``` ## 6. Entrée de menu (AppImage) Si tu as construit l'AppImage (`npm run dist`), utilise `install-desktop-entry.sh` (fourni séparément) pour créer l'entrée de menu — il détecte automatiquement le fichier `.AppImage` dans `dist/`. ## Structure du projet ``` farm-tracker-app/ ├── package.json ├── main.js → process principal : fenêtre, fichiers, persistance ├── preload.js → pont sécurisé entre main.js et l'interface ├── lib/ │ └── dropstats.js → logique de fusion, partagée appli + script CLI ├── tools/ │ └── merge-dropstats.js → fusionne N fichiers dropstats.json en ligne de commande └── renderer/ └── index.html → écran dossier -> accueil -> outils, toute la logique UI ```