first
Build / build (push) Has been cancelled

This commit is contained in:
gpatruno
2026-06-05 15:00:58 +02:00
commit 3710a28ae0
100 changed files with 7744 additions and 0 deletions
+66
View File
@@ -0,0 +1,66 @@
# Guide de développement
## Environnement
1. Installer **JDK 25** (`java-25-openjdk`). Le script `start-server.sh` force `/usr/lib/jvm/java-25-openjdk`.
2. Installer **Hytale** via le launcher et configurer `hytale.home_path` (copier `hytale.properties.example``hytale.properties`).
3. Cloner le dépôt et ouvrir le projet dans IntelliJ IDEA : `./gradlew openIdea` (ScaffoldIt).
## Commandes Gradle
| Tâche | Description |
|-------|-------------|
| `./gradlew build` | Compile et produit le JAR (Shadow) |
| `./gradlew runServer` | Serveur de dev local |
| `./gradlew generateManifest` | Régénère `manifest.json` depuis `settings.gradle.kts` |
| `./gradlew setupServer` | Prépare le répertoire `devserver/` |
## Workflow recommandé
1. Créer une branche depuis `main`
2. Implémenter dans le package approprié (voir [ARCHITECTURE.md](ARCHITECTURE.md))
3. Vérifier `./gradlew build`
4. Tester en jeu avec `./gradlew runServer`
5. Ouvrir une pull request
## Base de données locale
- Fichier : `devserver/.../com.disklexar_MMORPG/mmorpg.db` (chemin exact selon ScaffoldIt)
- Inspecter avec `sqlite3 mmorpg.db`
- Requête utile : `SELECT * FROM player_profiles;`
Les fichiers `*.db` sont ignorés par Git.
## Logs
Le plugin utilise `getLogger()` (HytaleLogger). Activer `Debug: true` dans `config.json` pour plus de détails sur les sessions.
Logs serveur de dev : `devserver/logs/`.
## Dépannage runServer
| Symptôme | Cause | Solution |
|----------|-------|----------|
| `--assets=null` dans les logs Gradle | `hytale.home_path` non configuré | `hytale.properties` ou `HYTALE_HOME` |
| `Missing default DamageCause assets` | Assets jeu absents | Installer Hytale + configurer le chemin |
| `Env_Zone1_Plains doesn't exist` | `devserver` créé sans assets | `HYTALE_RESET_DEVSERVER=1 ./start-server.sh` |
| `Task :runServer FAILED` exit 1 | Voir `devserver/logs/*.log` | Corriger la cause ci-dessus |
## API Hytale
La dépendance `com.hypixel.hytale:Server:+` est en **compileOnly** : ne pas l'inclure dans le JAR final. En cas d'erreur de compilation après mise à jour serveur :
- Vérifier les noms d'événements (`PlayerReadyEvent`, `PlayerDisconnectEvent`)
- Consulter [doctale.dev](https://doctale.dev) et le template [HytaleModding/plugin-template](https://github.com/HytaleModding/plugin-template)
## Ajouter une migration SQL
1. Créer `src/main/resources/db/migrations/00X_description.sql`
2. Étendre `SchemaInitializer` pour exécuter les nouveaux fichiers dans l'ordre
3. Documenter le changement dans le changelog / PR
## Style de code
- Packages en minuscules, classes en PascalCase
- Pas de logique métier dans `MmorpgPlugin` — déléguer aux services
- Fermer les ressources JDBC dans try-with-resources