Files
betterMcCommands/docs/01_GETTING_STARTED.md
T

128 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🚀 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).