Version : 2026.01.21
Auteur : YoannFM
Support : https://discord.gg/HtjPAfqUXu
📖 Table des matières
Introduction
Installation
Configuration
Commandes
Permissions
Fonctionnalités
Exemples d'utilisation
Système de licence
Logging
Dépannage
API pour développeurs
🎯 Introduction
NovaRedirectCommand est un plugin Minecraft (Spigot/Paper) qui permet de créer des alias de commandesconfigurables avec redirection dynamique. Il offre une solution professionnelle pour renommer, rediriger et gérer vos commandes serveur.
Caractéristiques principales
✅ Alias de commandes personnalisables : Redirigez n'importe quelle commande vers une autre
✅ Tab completion intelligente : Délégation automatique ou manuelle des suggestions
✅ Système de permissions : Contrôlez qui peut utiliser chaque alias
✅ Protection anti-boucle : Détection automatique des redirections infinies
✅ Support multi-serveurs : Compatible Bungee/Velocity (optionnel)
# ==========================================
# NovaRedirectCommand - Configuration
# Developpeur: YoannFM / NovaDev
# ==========================================
# Cle de licence (fournie par NovaDev)
# IMPORTANT: Sans licence valide, le plugin s'arretera automatiquement
# Verification toutes les 6 heures
license-key: "VOTRE-CLE-LICENCE-ICI"
# Systeme de logging
logging:
enabled: true # Active/désactive le logging
log-redirects: true # Enregistre chaque redirection
log-tab-completions: false # Enregistre les tab completions (debug)
# Protection anti-boucle infinie
max-redirect-depth: 5 # Profondeur maximale de redirection
# Support multi-serveurs (Bungee/Velocity)
multi-server:
enabled: false # Active le support multi-serveurs
# Format: serveur:commande
# Exemple: lobby:/spawn redirige vers le serveur "lobby" avec /spawn
# Alias de commandes
aliases:
# Exemple d'alias simple
shinju:
target: "points" # Commande cible
enabled: true # Active/désactive l'alias
permission: "novaredirect.use.shinju" # Permission requise
# Suggestions pour la tab completion
tab-completions:
- "add"
- "remove"
- "set"
- "reset"
- "help"
# Exemple avec placeholder
warp:
target: "essentials:warp {player}" # Utilise le placeholder {player}
enabled: true
permission: "novaredirect.use.warp"
tab-completions:
- "spawn"
- "pvp"
- "shop"
# Messages personnalisables (couleurs: & ou MiniMessage)
messages:
prefix: "<gradient:#00d4ff:#0099ff>[NovaRedirect]</gradient> "
alias-disabled: "<red>Cet alias est actuellement desactive."
no-permission: "<red>Vous n'avez pas la permission d'utiliser cette commande."
reload-success: "<green>Configuration rechargee avec succes!"
reload-error: "<red>Erreur lors du rechargement: {error}"
license-valid: "<green>✓ Licence valide"
license-invalid: "<red>✗ Licence invalide"
license-checking: "<yellow>Verification en cours..."
license-error: "<red>Erreur de connexion au backend"
redirect-loop: "<red>Boucle de redirection detectee (profondeur max: {depth})"
command-not-found: "<red>Commande cible '{target}' introuvable"
commands:
novaredirect:
description: Commande principale NovaRedirectCommand
usage: /<command> reload|about
aliases: [nrc]
permission: novaredirect.admin
# NOUVEL ALIAS
money:
description: Alias pour /economy
permission: novaredirect.use.money
/novaredirect # Affiche les informations + aide
/novaredirect about # Affiche les informations du plugin
/novaredirect reload # Recharge la configuration
/nrc # Version courte
/nrc reload # Recharge la config
/nrc about # Informations du plugin
/shinju # Redirige vers /points
/test # Redirige vers /money
# Donner accès à un alias spécifique
/lp user <joueur> permission set novaredirect.use.shinju true
# Donner accès à tous les alias
/lp group default permission set novaredirect.use.* true
# Donner les droits admin
/lp user <admin> permission set novaredirect.admin true
aliases:
# Téléportation à soi-même dans un monde spécifique
tpme:
target: "minecraft:tp {player} ~ ~ ~"
enabled: true
# Afficher ses statistiques
mystats:
target: "stats show {player}"
enabled: true
# Message personnalisé
whereami:
target: "broadcast {player} est dans le monde {world}"
enabled: true
RedirectManager manager = plugin.getRedirectManager();
// Vérifier si un alias existe
boolean exists = manager.hasAlias("monalias");
// Obtenir un alias
RedirectManager.AliasConfig config = manager.getAlias("monalias");
// Résoudre une commande avec redirections
Set<String> visited = new HashSet<>();
String resolved = manager.resolveCommand("/shinju add 10", visited, 0);
// Recharger les alias
manager.reload();
MessageUtil messages = plugin.getMessageUtil();
// Envoyer un message avec MiniMessage
messages.sendRaw(player, "<green>Message avec <bold>couleurs</bold>");
// Envoyer un message depuis config.yml
messages.send(player, "reload-success");
// Avec placeholders
Map<String, String> placeholders = new HashMap<>();
placeholders.put("error", "Erreur XYZ");
messages.send(player, "reload-error", placeholders);
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
public class MonListener implements Listener {
@EventHandler
public void onCommand(PlayerCommandPreprocessEvent event) {
String command = event.getMessage();
// Vérifier si c'est un alias
NovaRedirectCommand nrc = NovaRedirectCommand.getInstance();
String cmdName = command.split(" ")[0].substring(1).toLowerCase();
if (nrc.getRedirectManager().hasAlias(cmdName)) {
// C'est un alias de NovaRedirectCommand
getLogger().info("Alias détecté : " + cmdName);
}
}
}