# 🚀 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("Bienvenue sur le serveur !"); // 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).