Files
HytaleMMORPG/Hytale/docs/DEVELOPMENT.md
T
gpatruno 48a1b900c7
Build / build (push) Has been cancelled
webapp
2026-06-06 21:59:51 +02:00

2.9 KiB

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.examplehytale.properties dans Hytale/).
  3. Cloner le dépôt et ouvrir le projet Gradle dans Hytale/ (IntelliJ : ./gradlew openIdea via 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é

  1. Créer une branche depuis main
  2. Implémenter dans le package approprié (voir ARCHITECTURE.md)
  3. Vérifier ./gradlew build
  4. Tester en jeu avec ./gradlew runServer
  5. Ouvrir une pull request

Base de données locale

  • Monorepo : mmorpg.db à la racine du dépôt (à côté de Hytale/ et Webapp/), si UseMonorepoRoot: true dans config.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 :

Ajouter une migration SQL

  1. Créer plugins/mmorpg/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