247 lines
5.8 KiB
Markdown
247 lines
5.8 KiB
Markdown
---
|
|
title: Compilation et Exécution
|
|
type: docs
|
|
weight: 2
|
|
---
|
|
|
|
Ce guide explique comment configurer votre environnement de développement, compiler votre plugin et le déployer sur un serveur Hytale.
|
|
|
|
## Démarrage Rapide avec example-mod
|
|
|
|
La façon la plus simple de commencer le développement de plugins est d'utiliser le template [example-mod](https://github.com/hytale-france/example-mod) qui inclut un script de configuration automatisé.
|
|
|
|
### 1. Cloner le Dépôt
|
|
|
|
```bash
|
|
git clone https://github.com/hytale-france/example-mod.git
|
|
cd example-mod
|
|
```
|
|
|
|
Ou téléchargez la dernière release depuis [GitHub Releases](https://github.com/hytale-france/example-mod/releases).
|
|
|
|
### 2. Télécharger les Outils (Une fois)
|
|
|
|
Téléchargez les outils requis (hytale-downloader et décompilateur CFR) :
|
|
|
|
```bash
|
|
./setup.sh --download
|
|
```
|
|
|
|
Cela crée un répertoire `.bin/` avec :
|
|
- `hytale-downloader-*` - Téléchargeur officiel du serveur Hytale
|
|
- `cfr-0.152.jar` - Décompilateur Java pour les sources de référence
|
|
|
|
### 3. Télécharger le Serveur
|
|
|
|
Téléchargez et extrayez le serveur Hytale :
|
|
|
|
```bash
|
|
./setup.sh --setup
|
|
```
|
|
|
|
Le serveur sera disponible dans `server/Server/HytaleServer.jar`.
|
|
|
|
### 4. Générer les Sources de Référence (Optionnel)
|
|
|
|
Décompilez le JAR serveur pour obtenir les sources de référence de l'API :
|
|
|
|
```bash
|
|
./setup.sh --decompile
|
|
```
|
|
|
|
Cela crée `src-ref/` avec les sources Java décompilées pour l'autocomplétion IDE et la documentation.
|
|
|
|
## Structure du Projet
|
|
|
|
Après la configuration, votre projet ressemblera à ceci :
|
|
|
|
```
|
|
example-mod/
|
|
├── app/
|
|
│ ├── src/main/java/org/example/
|
|
│ │ └── ExamplePlugin.java
|
|
│ ├── src/main/resources/
|
|
│ │ └── manifest.json
|
|
│ └── build.gradle.kts
|
|
├── server/
|
|
│ ├── Server/
|
|
│ │ └── HytaleServer.jar
|
|
│ └── Assets.zip
|
|
├── src-ref/ # Sources de référence décompilées
|
|
├── .bin/ # Outils téléchargés
|
|
├── setup.sh # Script d'automatisation
|
|
├── build.gradle.kts
|
|
├── settings.gradle.kts
|
|
└── gradlew
|
|
```
|
|
|
|
## Compilation du Plugin
|
|
|
|
### 1. Compiler avec Gradle
|
|
|
|
```bash
|
|
# Sur Linux/macOS
|
|
./gradlew build
|
|
|
|
# Sur Windows
|
|
gradlew.bat build
|
|
```
|
|
|
|
### 2. Localiser le JAR Compilé
|
|
|
|
Après une compilation réussie, votre JAR de plugin sera dans :
|
|
|
|
```
|
|
app/build/libs/ExamplePlugin-1.0.0.jar
|
|
```
|
|
|
|
## Exécution du Serveur
|
|
|
|
### 1. Configuration Initiale du Serveur
|
|
|
|
Démarrez le serveur pour la première fois :
|
|
|
|
```bash
|
|
cd server
|
|
java -jar Server/HytaleServer.jar --assets Assets.zip
|
|
```
|
|
|
|
### 2. S'Authentifier
|
|
|
|
Une fois la console du serveur prête, exécutez la commande d'authentification :
|
|
|
|
```
|
|
/auth login device
|
|
```
|
|
|
|
Suivez les instructions pour vous authentifier avec votre compte Hytale.
|
|
|
|
{{< callout type="warning" >}}
|
|
**Authentification Requise :** Si aucun token serveur n'est configuré, vous verrez un avertissement au démarrage :
|
|
```
|
|
No server tokens configured. Use /auth login to authenticate.
|
|
```
|
|
Vous devez vous authentifier avant que les joueurs puissent rejoindre le serveur en mode non-singleplayer.
|
|
{{< /callout >}}
|
|
|
|
### 3. Arrêter le Serveur
|
|
|
|
Après l'authentification, vous pouvez arrêter le serveur :
|
|
|
|
- **Linux/macOS:** Appuyez sur `Ctrl+C`
|
|
- **Windows:** Appuyez sur `Ctrl+C` ou fermez le terminal
|
|
|
|
## Déploiement du Plugin
|
|
|
|
### 1. Copier le JAR
|
|
|
|
Copiez le JAR compilé dans le dossier `mods` :
|
|
|
|
```bash
|
|
cp app/build/libs/ExamplePlugin-1.0.0.jar server/mods/
|
|
```
|
|
|
|
### 2. Démarrer le Serveur
|
|
|
|
```bash
|
|
cd server
|
|
java -jar Server/HytaleServer.jar --assets Assets.zip
|
|
```
|
|
|
|
### 3. Vérifier le Chargement
|
|
|
|
Vous devriez voir votre plugin se charger dans la console :
|
|
|
|
```
|
|
[INFO] [PluginManager] Loading pending plugins from directory: mods
|
|
[INFO] [PluginManager] - org.example:ExamplePlugin from path ExamplePlugin-1.0.0.jar
|
|
```
|
|
|
|
## Mise à Jour du Serveur
|
|
|
|
Lorsqu'une nouvelle version d'Hytale est publiée :
|
|
|
|
```bash
|
|
./setup.sh --update
|
|
```
|
|
|
|
Cela téléchargera la dernière version du serveur et mettra à jour votre installation.
|
|
|
|
## Problèmes Courants
|
|
|
|
### Version Java Incompatible
|
|
|
|
{{< callout type="error" >}}
|
|
**Erreur :** `Unsupported class file major version 69`
|
|
{{< /callout >}}
|
|
|
|
Assurez-vous d'utiliser Java 25 :
|
|
|
|
```bash
|
|
java --version
|
|
```
|
|
|
|
### Manifest Non Trouvé
|
|
|
|
{{< callout type="error" >}}
|
|
**Erreur :** `Failed to load manifest file!`
|
|
{{< /callout >}}
|
|
|
|
Assurez-vous que `manifest.json` est dans `src/main/resources/` et inclus dans le JAR.
|
|
|
|
### Script de Configuration Non Trouvé
|
|
|
|
{{< callout type="error" >}}
|
|
**Erreur :** `./setup.sh: Permission denied`
|
|
{{< /callout >}}
|
|
|
|
Rendez le script exécutable :
|
|
|
|
```bash
|
|
chmod +x setup.sh
|
|
```
|
|
|
|
## Configuration Manuelle (Alternative)
|
|
|
|
Si vous préférez une configuration manuelle sans le script :
|
|
|
|
### Localiser l'Installation Hytale
|
|
|
|
Trouvez votre répertoire d'installation Hytale :
|
|
|
|
{{< tabs items="Windows,Linux,macOS" >}}
|
|
{{< tab >}}
|
|
```
|
|
%appdata%\Hytale\install\release\package\game\latest
|
|
```
|
|
{{< /tab >}}
|
|
{{< tab >}}
|
|
```
|
|
$XDG_DATA_HOME/Hytale/install/release/package/game/latest
|
|
```
|
|
Ou généralement :
|
|
```
|
|
~/.local/share/Hytale/install/release/package/game/latest
|
|
```
|
|
{{< /tab >}}
|
|
{{< tab >}}
|
|
```
|
|
~/Application Support/Hytale/install/release/package/game/latest
|
|
```
|
|
{{< /tab >}}
|
|
{{< /tabs >}}
|
|
|
|
### Configuration Manuelle du Serveur
|
|
|
|
1. Copiez `Server/` et `Assets.zip` depuis votre installation Hytale
|
|
2. Téléchargez CFR depuis [https://www.benf.org/other/cfr/](https://www.benf.org/other/cfr/)
|
|
3. Décompilez : `java -jar cfr.jar HytaleServer.jar --outputdir src-ref`
|
|
|
|
## Étapes Suivantes
|
|
|
|
Maintenant que vous pouvez compiler et exécuter votre plugin, explorez :
|
|
|
|
- [Cycle de Vie du Plugin](../plugin-lifecycle) - Comprendre setup, start et shutdown
|
|
- [Commandes](../../commands) - Créer des commandes personnalisées
|
|
- [Événements](../../events) - Écouter les événements du jeu
|