3.7 KiB
🚀 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.