Files
betterMcCommands/docs/01_GETTING_STARTED.md
T

3.7 KiB
Raw Blame History

🚀 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 :

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)

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() :

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 :

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.