2.9 KiB
2.9 KiB
Guide de développement
Environnement
- Installer JDK 25 (
java-25-openjdk). Le scriptstart-server.shforce/usr/lib/jvm/java-25-openjdk. - Installer Hytale via le launcher et configurer
hytale.home_path(copierhytale.properties.example→hytale.propertiesdansHytale/). - Cloner le dépôt et ouvrir le projet Gradle dans
Hytale/(IntelliJ :./gradlew openIdeavia ScaffoldIt).
Commandes Gradle
Exécuter depuis le dossier Hytale/ :
| 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é
- Créer une branche depuis
main - Implémenter dans le package approprié (voir ARCHITECTURE.md)
- Vérifier
./gradlew build - Tester en jeu avec
./gradlew runServer - Ouvrir une pull request
Base de données locale
- Monorepo :
mmorpg.dbà la racine du dépôt (à côté deHytale/etWebapp/), siUseMonorepoRoot: truedansconfig.json - Sinon :
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 : Hytale/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 et le template HytaleModding/plugin-template
Ajouter une migration SQL
- Créer
plugins/mmorpg/src/main/resources/db/migrations/00X_description.sql - Étendre
SchemaInitializerpour exécuter les nouveaux fichiers dans l'ordre - 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