1. Structure générale des dossiers
plugins/AdvancedJobs/
├── config.yml # reglages globaux du plugin
├── database.yml # SQLite / MySQL / MariaDB
├── messages.yml # messages par defaut (copie de reference)
│
├── jobs/ # UN FICHIER = UN JOB. Scanne recursivement.
│ ├── miner.yml
│ └── hunter.yml
│
├── rewards/ # recompenses partagees entre plusieurs jobs
│ └── global.yml
│
├── boosters/ # definitions de boosters (temporaires, par job...)
│ └── double-xp.yml
│
├── animations/ # sequences d'icones pour les menus
│ ├── reward-train.yml
│ └── level-up.yml
│
├── languages/ # une langue = un fichier. config.yml choisit laquelle.
│ ├── fr.yml
│ └── en.yml
│
├── gui/ # TOUS les menus. Scanne recursivement.
│ ├── main.yml # menu ouvert par /jobs
│ ├── admin.yml # panneau admin
│ ├── boosters.yml # catalogue des boosters
│ ├── custom/ # menus independants des jobs
│ │ ├── example.yml
│ │ └── manual-pages/
│ └── jobs/
│ ├── _default/ # modele utilise par TOUT job sans menu perso
│ │ ├── main.yml
│ │ ├── actions.yml
│ │ ├── levels/page-1.yml
│ │ ├── rewards/page-1.yml
│ │ ├── stats.yml
│ │ └── top.yml
│ └── miner/ # menus sur mesure du job "miner"
│ ├── main.yml
│ ├── actions.yml
│ ├── levels/page-1.yml
│ ├── rewards/page-1.yml
│ └── top.yml
│
├── animations/, backups/, data/ # crees automatiquement au demarrageimportant : si gui/jobs/nom_du_jobs/main.yml n'existe pas,
le plugin utilise automatiquement gui/jobs/_default/main.yml à sa place.
C'est pour ça qu'un job peut fonctionner avec zéro fichier GUI — voir la
section 12.