128 lines
3.7 KiB
Markdown
128 lines
3.7 KiB
Markdown
# 🚀 Guide de Démarrage Rapide - betterMcCommands
|
||
|
||
Ce guide vous accompagne dans l'installation, la configuration et la création de vos premières commandes avec la bibliothèque **betterMcCommands**.
|
||
|
||
---
|
||
|
||
## 📦 1. Installation
|
||
|
||
### Gradle (Kotlin DSL)
|
||
|
||
Ajoutez les dépôts et la dépendance dans votre fichier `build.gradle.kts` :
|
||
|
||
```kotlin
|
||
repositories {
|
||
mavenCentral()
|
||
maven("https://repo.papermc.io/repository/maven-public/")
|
||
}
|
||
|
||
dependencies {
|
||
// Intégration de betterMcCommands
|
||
implementation("fr.luc:betterMcCommands:1.0.0-SNAPSHOT")
|
||
}
|
||
```
|
||
|
||
### Gradle (Groovy DSL)
|
||
|
||
```groovy
|
||
repositories {
|
||
mavenCentral()
|
||
maven { url 'https://repo.papermc.io/repository/maven-public/' }
|
||
}
|
||
|
||
dependencies {
|
||
implementation 'fr.luc:betterMcCommands:1.0.0-SNAPSHOT'
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## ⚙️ 2. Initialisation dans votre Plugin Bukkit/Paper
|
||
|
||
Créez une instance de `BetterMcCommands` dans la méthode `onEnable()` de votre plugin et nettoyez-la proprement dans `onDisable()` :
|
||
|
||
```java
|
||
package fr.luc.monplugin;
|
||
|
||
import fr.luc.bettermccommands.BetterMcCommands;
|
||
import org.bukkit.plugin.java.JavaPlugin;
|
||
|
||
public class MonPlugin extends JavaPlugin {
|
||
|
||
private BetterMcCommands commandsManager;
|
||
|
||
@Override
|
||
public void onEnable() {
|
||
// 1. Initialisation du gestionnaire avec namespace dédié
|
||
this.commandsManager = BetterMcCommands.create(this);
|
||
|
||
// 2. Enregistrement d'écouteurs d'événements de commandes globaux (optionnel)
|
||
this.commandsManager.registerListeners(new MonEcouteurDeCommandes());
|
||
|
||
// 3. Déclaration et enregistrement des commandes
|
||
enregistrerCommandes();
|
||
|
||
getLogger().info("MonPlugin et betterMcCommands sont prêts !");
|
||
}
|
||
|
||
private void enregistrerCommandes() {
|
||
// Exemple d'une commande simple : /ping
|
||
BetterMcCommands.builder("ping")
|
||
.description("Renvoie pong au joueur")
|
||
.aliases("p")
|
||
.executes(context -> {
|
||
context.replySuccess("Pong !");
|
||
})
|
||
.register();
|
||
}
|
||
|
||
@Override
|
||
public void onDisable() {
|
||
// 4. Désenregistrement à chaud de toutes les commandes injectées
|
||
if (commandsManager != null) {
|
||
commandsManager.unregisterAll();
|
||
}
|
||
getLogger().info("MonPlugin a désenregistré ses commandes.");
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## ⚡ 3. Zéro `plugin.yml`
|
||
|
||
Contrairement aux commandes Bukkit traditionnelles, **vous n'avez pas besoin d'ajouter vos commandes dans le fichier `plugin.yml`**.
|
||
|
||
`betterMcCommands` injecte directement vos commandes par réflexion dans la `CommandMap` du serveur lors de l'appel à `.register()`, ce qui permet :
|
||
* D'enregistrer des commandes dynamiquement selon la configuration.
|
||
* De recharger (hot-reload) ou retirer des commandes sans redémarrer le serveur.
|
||
* D'éviter les doublons et les conflits de namespaces.
|
||
|
||
---
|
||
|
||
## 💬 4. Formatage des Messages avec MiniMessage
|
||
|
||
Le `CommandContext` intègre nativement **Kyori Adventure & MiniMessage** :
|
||
|
||
```java
|
||
BetterMcCommands.builder("bienvenue")
|
||
.executes(context -> {
|
||
// Dégradé de couleurs hexadécimales et texte gras
|
||
context.reply("<gradient:#00d2ff:#3a7bd5><bold>Bienvenue sur le serveur !</bold></gradient>");
|
||
|
||
// Message avec préfixe vert standard [✔]
|
||
context.replySuccess("Votre profil a été chargé avec succès.");
|
||
|
||
// Message avec préfixe rouge [✖]
|
||
context.replyError("Une erreur est survenue.");
|
||
|
||
// Message d'information [ℹ]
|
||
context.replyInfo("Tapez /aide pour obtenir de l'assistance.");
|
||
})
|
||
.register();
|
||
```
|
||
|
||
---
|
||
|
||
> 📖 **Étape suivante** : Découvrez la syntaxe complète du constructeur dans [02_COMMAND_BUILDER_DSL.md](02_COMMAND_BUILDER_DSL.md).
|