Dans ce tutoriel, nous allons apprendre à gérer les permissions de notre serveur Minecraft grâce au plugin LuckPerms. Devenu un incontournable, gérant tout type de serveur, il a été conçu pour obtenir les meilleures performances possibles (contrairement à d'autres plugins plus ancien comme PermissionsEx).

Très facile à prendre en main et d'une redoutable efficacité, LuckPerms est le choix recommandé pour vos permissions Minecraft.

Il prend en charge diverses options de stockage de données (fichiers, SQLite, MySQL, etc), propose une interface web pour éditer les permissions, gère les prefixes/suffixes, prend en charge les groupes et l'héritage de permissions, et bien plus!

Les permissions ?!

Vous n'avez jamais utilisé les permissions sur Minecraft ? Une permission est simplement une chaîne (une séquence de lettres / chiffres) séparée en parties à l'aide de points.

Par exemple, minecraft.command.ban est la permission de la commande /ban de Minecraft.

Les permissions permettent de donner accès à des fonctionnalités ou commandes sur votre serveur, certaines seront incluses nativement, d'autres sont ajoutées par vos plugins.

La plus part du temps, les plugins ajoutent une permission à chaque fonctionnalité ou commande, permettant d'autoriser ou non son utilisation. Avec LuckPerms, vous allez pouvoir autoriser les fonctionnalités que vous souhaitez, aux joueurs que vous voulez ;)

Pré-requis

Installation du plugin LuckPerms

Démarrons l'installation du plugin sur notre serveur :

  1. Rendez-vous dans votre panel de gestion et cliquez sur Fichiers & FTP.
  2. Téléchargez le plugin LuckPerms sur le site officiel.
  3. Transférez le fichier jar dans votre répertoire minecraft/plugins avec le WebFTP.
  4. Redémarrez votre serveur.

Une fois les serveur redémarré, pour tester le bon fonctionnement du plugin cliquez sur Dashboard et tapez dans la console lp info :

Migration depuis un autre système de permission

Si vous utilisez déjà un plugin de permission, vous pouvez facilement migrer vers LuckPerms.

Le plugin prend en charge la migration et le transfert de données à partir des plugins de permissions suivant (pour plus d'informations, veuillez lire le guide sur le site officiel) :

  • GroupManager
  • PermissionsEx
  • zPermissions
  • PowerfulPerms
  • BungeePerms
  • bPermissions
  • PermissionsBukkit

Configuration de LuckPerms

Au redémarrage, le plugin a créé un répertoire minecraft/plugins/LuckPerms qui contient les fichiers de configuration du plugin.

Traduction du plugin

Par défaut le plugin est en Anglais. Pour le traduire dans une autre langue :

  1. Allez dans votre panel de gestion.
  2. Cliquez sur Fichiers & FTP.
  3. Allez dans minecraft/plugins/LuckPerms.
  4. Créez un fichier lang.yml, il va contenir les traductions.
  5. Pour récupérer la traduction française (ou autre langue), rendez-vous sur cette page et cliquez sur la traduction que vous voulez.
  6. Copiez le contenu dans votre fichier lang.yml et enregistrez.
    Astuce: tous les messages (y compris les codes de couleur et formatage de texte) dans LuckPerms peuvent être modifiés.
  7. Redémarrez votre serveur, le plugin est en français !

Configuration générale du plugin

Avant d'aller plus loin, vous devez arrêter votre serveur.

Votre serveur est offline ? Vous pouvez continuer ;)

  1. Rendez-vous dans votre panel de gestion.
  2. Cliquez sur Fichiers & FTP pour accéder au WebFTP.
  3. Allez dans le répertoire minecraft/plugins/LuckPerms.
  4. Éditez le fichier config.yml du plugin selon vos besoin.
    Vous pouvez garder la config par défaut, néanmoins nous conseillons de paramétrer au minimum apply-bukkit-default-permissions à false.
    Cette option permet d'ignorer les permissions définies par les plugins, interdisant par défaut toutes les commandes si le joueur n'a pas spécifiquement la permission de celle-ci (bien mieux pour la sécurité de votre serveur).
  5. Enregistrez le fichier config.yml.
  6. Redémarrez votre serveur.

Utilisation de LuckPerms

Nous allons pouvoir rentrer dans le vif du sujet, l'utilisation des permissions sur votre serveur Minecraft! 

Pour gérer efficacement nos utilisateurs, nous allons utiliser le système de groupe de LuckPerms.

Toutes les commandes que nous allons taper dans la suite du tutoriel sont à entrer dans la liveconsole (qui est dans votre panel de gestion, sur mTxServ).

Exemple :

  1. Rendez-vous dans Dashboard sur le panel de gestion.
  2. Entrez la commande lp info et validez.
  3. La console serveur affiche le résultat ;)
  4. Répétez l'opération avec les commandes que nous vous donnerons ci-dessous.

La notion de groupe

Au lieu d'attribuer des permissions à chaque utilisateur individuellement, nous allons créer des groupes de permissions qui peuvent ensuite être attribués à des utilisateurs.

Par exemple, dans mon groupe admin, je pourrais ajouter la permission pour utiliser les commandes /ban et /unban, puis affecter des utilisateurs au groupe admin.

Cela signifie qu'ils obtiendront toutes les permissions du groupe admin + toutes les permissions dont ils disposent.

Le groupe default est automatiquement ajouté à tous les joueurs du serveur Minecraft par le plugin.

Héritage des permissions

Les utilisateurs et les groupes héritent des permissions des uns des autres

Vous pouvez configurer vos propres groupes et héritages pour votre serveur et créer votre propre système.

Par exemple, je pourrais avoir 3 groupes: default, moderateur et admin, avec le groupe moderateur qui hérite des permissions du groupe défaut et le groupe admin hérite des permissions du moderateur.

Ainsi, si j'ajoute par exemple une permission au groupe default, elle sera aussi appliquée aux groupes moderateur et admin.

Créons nos groupes

Le groupe default existe déjà (géré en interne par le plugin), nous allons ajouter les deux autres groupes, moderateur et admin.

  1. Rendez-vous dans votre panel de gestion.
  2. Dans la console (sur votre panel de gestion mTxServ), entrez les commandes suivantes :
    lp creategroup admin
    lp creategroup moderateur
    


  3. Maintenant nous allons activer l'héritage sur nos groupes (default -> moderateur -> admin) :
    un utilisateur du groupe admin aura les permissions cumulées de default, moderateur et admin.
    un utilisateur du groupe moderateur aura les permissions cumulées de default et moderateur.
    un utilisateur du groupe default n'aura que les permissions de sont groupe.
  4. Tapez les commandes suivante (lp group parent <groupName> add <groupParent>) :
    lp group admin parent add moderateur
    lp group moderateur parent add default
    


  5. Pour vérifiez que nos groupes sont bien configurés.
    La commande lp group <groupname> info permet d'afficher les informations d'un groupe :
    lp listgroups
    lp group admin info
    lp group moderateur info
    lp group default info
    


  6. Facultatif: pour assigner un préfixe ou suffixe aux joueurs en fonction de leur groupe.
    Attention, le plugin n'ajoute par le suffixe / préfixe dans les messages tchat (voir chapitre Allez plus loin).
    lp group admin meta addprefix 100 "&c[Admin] "
    lp group moderateur meta addprefix 90 "&d[Mod] "

Ajouter un utilisateur dans un groupe

Ajoutons notre utilisateur au groupe admin puis vérifiez le résultat avec  lp user <username> info, par exemple :

lp user mTxSeb parent add admin
lp user mTxSeb info


Pour supprimer un utilisateur d'un groupe :

lp user <username> parent remove <groupname>

Gérez les permissions

Tout est en place, on va pouvoir ajouter les permissions à notre groupe admin, qui pour l'instant n'a aucune permission.

  1. Vérifions la liste des permissions de nos groupes avant de commencer avec la commande lp group <groupName> permission info:
    lp group default permission info
    lp group moderateur permission info
    lp group admin permission info
    


  2. Nous allons ajouter les permissions pour devenir opérateur et accéder à toutes les commandes natives de notre serveur avec la commande lp group <groupName> permission set <permissionName> <valeur>.
    lp group admin permission set luckperms.* true
    lp group admin permission set minecraft.command.* true
    lp group admin permission set bukkit.command.* true


Vous pouvez aussi associer une permission directement à votre utilisateur (non conseillé) :

lp user <userName> permission set <permissionName> <valeur>

Pour supprimer une permission :

lp group <groupName> permission unset <permissionName>
lp user <userName> permission unset <permissionName>

C'est tout ! 

Si vous avez apply-bukkit-default-permissions à false, il faudra tout de même ajouter les permissions de chaque plugin installé.

Voila pour la configuration de base, à vous de configurer vos permissions en fonction de vos besoins ;)

Pour trouver le nom des permissions des commandes natives, cliquez ici.

Commandes LuckPerms

La liste complète des commandes et sous-commandes est disponible ici.

Pour donner la permission d'accéder à l'intégralité des commandes du plugin, utilisez la permission luckperms.*.

  • /lp user <user>
    Commandes d'Utilisateur.
  • /lp group <group>
    Commandes de Groupe.
  • /lp track <track>
    Commandes du Track.
  • /lp log
    Commandes des Log.
  • /lp sync
    Synchroniser les modifications avec le stockage.
  • /lp info
    Afficher les informations générales du plugin.
  • /lp editor
    Démarre l'éditeur web.
  • /lp debug
    Produire une sortie de déboggage.
  • /lp verbose <true|false> [filter]
    Gérer la vérification des permissions détaillé.
  • /lp tree [selection] [max level] [player]
    Génère l'arborescence des permissions.
  • /lp search <permission>
    Recherche des utilisateurs/groupes avec une permission spécifique.
  • /lp check <user> <permission>
    Effectue une vérification de permission standard sur un joueur en ligne.
  • /lp networksync
    Synchronise les modifications avec le stockage et demander à ce que tous les autres serveurs fassent de même.
  • /lp import <file>
    Importe les données d'un fichier.
  • /lp export <file>
    Exporte les données dans un fichier.
  • /lp reloadconfig
    Recharge certaines options de configuration.
  • /lp bulkupdate
    Exécute des requêtes de modification en masse sur toutes les données.
  • /lp creategroup <group>
    Crée un nouveau group.
  • /lp deletegroup <group>
    Supprime un groupe.
  • /lp listgroups
    Liste tous les groupes.
  • /lp createtrack <track>
    Crée un nouveau Track.
  • /lp deletetrack <track>
    Supprime un Track.
  • /lp listtracks
    Liste tous les Tracks de la plate-forme.

Comment vérifier les permissions

LuckPerms a un système qui vous permet de surveiller le check des permissions effectuées par d’autres plugins, en temps réel avec la commande lp verbose <on|record|off|upload> [filter].

Vous pouvez tracer d'où proviennent les vérifications des permissions, jusqu'à la ligne de code qui a provoqué la vérification :

Vous pouvez également utiliser l'interface web pour faciliter l'analyse et la lecture :

Activer le mode verbose

/lp verbose on <username>

Désactiver le mode verbose

N'oubliez pas de désactiver le mode verbose après vos tests :

/lp verbose off

Accéder aux logs

LuckPerms établit un journal détaillé de toutes les modifications apportées aux permissions.

Si vous avez un membre du personnel non autorisé qui essaie de se donner des permissions, au lieu de parcourir le fichier de log du serveur Minecraft, vous pouvez simplement rechercher les actions exécutées par le joueur.

Vous pouvez également afficher l'historique des utilisateurs et groupes ou consulter les actions exécutées par un utilisateur.

Voir les logs d'un utilisateur

/lp log userhistory <username>

Voir les logs d'un groupe

/lp log grouphistory <groupname>

Interface d'édition web des permissions

LuckPerms comporte un éditeur Web, qui vous permet d’apporter des modifications aux données d’autorisations à l’aide d’une interface conviviale dans votre navigateur Web. C'est sûr, sécurisé et facile à utiliser. Vous n'avez pas besoin d'héberger vous-même la page - elle fonctionne pour tous les types de stockage!

  1. Pour utiliser l'éditeur web, entrez dans la console: lp editor.
  2. Patientez quelques secondes.
  3. Un lien pour accéder à l'éditeur s'affiche dans la console, cliquez dessus pour accéder à l'éditeur web.
  4. Une fois que vous avez terminé d'apporter des modifications, cliquez sur Save en haut à droite.
    L'éditeur générera une commande que vous devez exécuter dans le jeu ou dans la console pour que vos modifications soient appliquées.
  5. Lorsque vous exécutez la commande retournée par l'éditeur, un récapitulatif des modifications apparaît.

Arbres de permission

LuckPerms vous permet de construire une arborescence de permissions, avec toutes les permissions connues du serveur.

Les données sont renseignées à l'aide des permissions enregistrées sur le serveur par les plugins. Au fur et à mesure que le serveur fonctionne pendant de longues périodes, l'arborescence se développe également, à mesure que les permissions vérifiées par les plugins du serveur sont ajoutées (utile pour les permissions dynamiques).

Pour générer un arbre de permission :

  1. Rendez-vous dans votre panel de gestion.
  2. Dans la console serveur, tapez /lp tree et patientez, un lien va s'afficher dans la console.
  3. Cliquez sur le lien.

Foire aux questions

Où dois-je installer LuckPerms ?

  • Si vous utilisez un réseau de serveurs, vous devez installer LuckPerms sur chaque serveur où vous souhaitez utiliser LuckPerms.
  • Si vous souhaitez également utiliser LuckPerms pour un proxy BungeeCord, vous devez placer le fichier LuckPermsBungee.jar dans votre dossier de plugins BungeeCord.
  • Si vous choisissez d'installer uniquement LuckPerms sur votre proxy BungeeCord, cela n'aura aucun impact sur les vérifications des permissions effectuées par les plugins sur vos serveurs Minecraft.

Puis-je simplement installer LuckPerms sur BungeeCord?

  • Le système de permissions utilisé sur BungeeCord est complètement séparé des systèmes utilisés sur les serveurs minecraft (Spigot/Paper/Sponge).
  • Si vous souhaitez que les vérifications des permissions effectuées par les plugins minecraft (Spigot/Paper/Sponge) soient gérées par LuckPerms, installez LuckPerms sur votre serveur minecraft.
  • Si vous souhaitez que les vérifications des permissions effectuées par les plugins BungeeCord soient gérées par LuckPerms, installez la variante BungeeCord de LuckPerms sur votre proxy.
  • Vous pouvez simplement l'installer sur le proxy, mais les vérifications effectuées par les plugins Paper/Spigot/Sponge ne seront pas gérées par LuckPerms.

J'ai des problèmes avec LuckPerms + Essentials

Si vous utilisez le plugin Essentials, vous avez des manipulations supplémentaires à faire pour assurer la compatibilité entre les deux plugins.

  1. Si vous voulez que Essentials accède aux données de préfixes, suffixes et groupes de LuckPerms :
    Vous devrez mettre à jour Essentials vers EssentialsX, une version mise à jour du plugin d'origine (Essentials est abandonné) et vous devez également installer le plugin Vault.
  2. Si vous ne voulez pas qu'Essentials accède aux données de préfixe, de suffixe et de groupe de LuckPerms mais que vous voulez tout de même que LuckPerms gère les vérifications des permissions à partir d'Essentials...
    Vous devez soit mettre à jour EssentialsX (comme indiqué ci-dessus) ou supprimez la section player-commands de la configuration du plugin Essentials.
    Lorsque Essentials ne peut pas détecter un système d'autorisation "connu" (il ne reconnaît pas LuckPerms), il revient à son propre système d'autorisation basé sa configuration pour ses commandes Essentials.

J'utilise EssentialsChat et ça ne fonctionne pas

Assurez-vous que vous utilisez la dernière version de EssentialsX et que Vault est installé sur votre serveur.

La partie "X" de EssentialsX est importante, les anciennes versions de Essentials ne fonctionnent pas (plugin abandonné).

Erreurs MySQL ?

Vous avez des erreurs du type :

  • LuckPerms cannot connect to my MySQL server.
  • I'm getting an annoying SSL warning message.
  • "No operations allowed after connection closed" error.
Vous avez probablement un problème de paramétrage des identifiants de votre base de données.

Pour plus d'infos, consultez le wiki officiel.

Allez plus loin

LuckPerms est très bien documenté sur le wiki officiel (en anglais).

N'hésitez pas à le consulter pour découvrir toutes les fonctionnalités et possibilités de configuration, en particulier les pages suivantes:

  • Les contextes
    Les contextes sont un élément fondamental du fonctionnement de LuckPerms.
    Le contexte dans son sens le plus élémentaire signifie simplement les circonstances dans lesquelles quelque chose va s'appliquer, par exemple le serveur ou le monde où est le joueur.

  • Les types de stockages
    LuckPerms peut stocker ses données de plusieurs manières. Ces options peuvent être modifiées via du fichier de configuration du plugin.

  • Préfixes, suffixes et métadonnées
    Ce guide explique comment configurer et gérer les préfixes, les suffixes et les méta avec LuckPerms.

  • Groupe par défaut
    Ce équipe explique comment gérer ses groupes efficacement.