Aller au contenu

Grades et permissions

Créer un plugin de grades et de permissions Minecraft

LuckPerms suffit dans la majorité des cas : groupes, préfixes, héritage, permissions par monde, tout y est déjà. Un plugin de grades sur mesure devient utile quand ta logique est propre à ton serveur : grade qui monte au temps de jeu, kit lié au rang, boutique interne. Minax écrit ce code Java et te rend un .jar.

Tu veux des grades sur ton serveur, avec des préfixes dans le chat et des droits différents selon le rang. Cette page t'explique ce que chaque brique fait vraiment, pourquoi LuckPerms règle déjà l'essentiel, et à quel moment il devient plus simple de générer un plugin qui porte tes propres règles.

  • Ce que sont exactement un groupe, une permission, un préfixe et un héritage
  • Ce que LuckPerms couvre déjà, sans qu'un plugin de plus soit utile
  • Les cas où ta logique de grades n'existe nulle part en téléchargement
  • Comment décrire ton plugin pour récupérer un .jar compilé et testable en ligne

Grades, permissions, préfixes, héritage : de quoi on parle

Trois choses différentes se cachent souvent derrière le mot « grade ». Le groupe range les joueurs : visiteur, joueur, VIP, modérateur, admin. La permission est une simple chaîne de caractères qu'un plugin interroge avant d'autoriser une action, du style monserveur.kit.vip. Le préfixe, lui, est purement cosmétique : c'est ce que les autres voient devant ton pseudo dans le chat ou dans la liste des joueurs. Un joueur peut très bien avoir un beau préfixe et aucun droit supplémentaire.

L'héritage relie les groupes entre eux. VIP hérite de joueur, modérateur hérite de VIP. Tu ne recopies pas la liste des permissions à chaque étage, tu ajoutes seulement ce que le niveau du dessus gagne en plus. Quand deux groupes se contredisent, un poids départage, et une permission peut être explicitement refusée plutôt que simplement absente. C'est ce mécanisme de refus qui provoque le plus de confusion quand un droit ne s'applique pas comme prévu.

  • Groupe : à quel rang appartient le joueur
  • Permission : la chaîne testée par le code, du style monplugin.commande.utiliser
  • Préfixe et suffixe : l'affichage, indépendant des droits réels
  • Héritage : un groupe reprend automatiquement les droits du groupe en dessous
  • Contexte : des droits qui changent selon le monde ou le serveur

LuckPerms est la référence, et souvent il suffit

Autant être direct : si ton besoin est de créer des groupes, de leur donner des permissions, d'afficher un préfixe et d'organiser un héritage, LuckPerms fait déjà tout ça, et il le fait mieux qu'un plugin écrit pour l'occasion. Il gère les groupes et les joueurs individuellement, les permissions temporaires, les contextes par monde, le stockage en fichier comme en base de données, l'édition en jeu par commandes et l'édition dans un éditeur web. Il expose aussi une API que les autres plugins savent utiliser.

Générer un clone de LuckPerms n'aurait aucun intérêt, et Minax n'a aucune raison de te pousser dans cette direction. Installe LuckPerms, crée tes groupes, règle ton héritage, et ta hiérarchie est en place. Le vrai sujet commence juste après : ce que ton serveur fait de ces grades.

  • Groupes, héritage, poids, permissions négatives : déjà couvert
  • Préfixes et suffixes en métadonnées, lus par la plupart des plugins de chat
  • Permissions temporaires et contextes par monde : déjà couvert
  • Une API stable que ton propre plugin peut interroger

Quand un plugin de grades sur mesure a vraiment du sens

Un gestionnaire de permissions répond à une seule question : ce joueur a-t-il le droit de faire ça ? Il ne répond pas à la question suivante, qui est pourtant celle que tu te poses vraiment : quand et pourquoi un joueur change de grade sur mon serveur, et qu'est-ce que ça lui débloque concrètement ? Cette partie est la logique de ton serveur. Elle n'existe nulle part en téléchargement parce qu'elle t'appartient.

C'est exactement là qu'écrire un plugin devient utile, et c'est ce que Minax génère : un plugin qui contient tes règles à toi, et qui s'appuie sur LuckPerms ou sur l'API de permissions de Bukkit pour la partie droits. Tu ne remplaces rien, tu ajoutes la couche qui manquait.

  • Grade qui monte tout seul au temps de jeu, au nombre de votes ou à des objectifs atteints
  • Kit, homes supplémentaires ou avantages précis attachés à chaque rang, avec tes valeurs
  • Boutique en jeu où un rang s'achète avec la monnaie de ton serveur
  • Format de chat, tablist et message d'arrivée qui suivent le rang, dans ta charte
  • Grade temporaire pour un événement, retiré automatiquement à la fin
  • Commandes d'équipe taillées pour tes modérateurs, avec tes confirmations et ton journal

Faire cohabiter ton plugin avec LuckPerms

Un plugin bien écrit ne remplace pas le gestionnaire de permissions, il lui parle. Côté code, vérifier un droit se fait avec player.hasPermission(...), qui appartient à l'API de Bukkit : LuckPerms répond derrière sans que ton plugin ait besoin de savoir qui est installé. Pour changer le groupe d'un joueur ou lire son préfixe, ton plugin passe par l'API de LuckPerms ou par Vault, selon ce que tu as déjà sur ton serveur.

Pense aussi à déclarer tes permissions dans le plugin.yml avec leur valeur par défaut. Une permission laissée en default: op sera vraie pour tous les opérateurs, ce qui explique une bonne partie des « ça marche chez moi mais pas pour mes joueurs ». Le réflexe qui fait gagner le plus de temps : tester avec un compte sans OP.

  • Précise dans ta description si LuckPerms est installé, pour que le code s'y branche
  • Choisis un préfixe de permission qui t'appartient, par exemple monserveur.grades.*
  • Prévois le cas du joueur qui n'a aucun grade, sinon tu auras des comportements bizarres
  • Vault sert de pont si tu veux rester compatible avec ton économie et ton chat actuels

Comment décrire ton plugin de grades à Minax

Le résultat dépend surtout de la précision de ta description. Écris-la comme tu l'expliquerais à un ami qui va coder pour toi, mais sans rien laisser dans le flou : la liste exacte de tes grades dans l'ordre, ce que chacun gagne, la commande qui l'attribue, la condition qui déclenche une promotion, et le texte que les joueurs voient dans le chat, refus compris.

Minax écrit ensuite le code Java, génère le plugin.yml et le pom.xml, compile avec Maven et relit ce qu'il a produit. Si la compilation casse, il corrige et recompile tout seul, dans une boucle d'auto-correction. Tu récupères un .jar, tu le lances sur un serveur en ligne et tu vérifies en jeu que /grade fait bien ce que tu attendais avant de toucher à ton serveur.

  • Liste tes grades dans l'ordre, avec le préfixe et la couleur de chacun
  • Précise la condition de passage : commande d'admin, temps de jeu, achat, objectif
  • Donne le nom de tes commandes, par exemple /grade, /grades, /setgrade
  • Dis quelles permissions accompagnent chaque grade
  • Écris tes messages de chat mot pour mot
  • Indique ta version de Minecraft, ta plateforme, et si LuckPerms est présent

Versions, plateformes et test avant installation

Minax compile pour Paper, Spigot, Bukkit et Folia, de Minecraft 1.12.2 à 26.2. Mets la version et la plateforme directement dans ta description : le build se fait contre l'API correspondante. Avant de toucher à ton serveur, tu peux démarrer le plugin sur un serveur Paper en ligne, t'y connecter et essayer tes commandes de grade en vrai. Ensuite seulement le fichier part dans le dossier /plugins, avec un redémarrage du serveur. Le code source reste à toi : tu peux le relire, le modifier et le faire recompiler.

Questions fréquentes

Faut-il LuckPerms pour avoir des grades sur mon serveur ?

Pour gérer des groupes et des permissions, c'est la solution la plus raisonnable, et elle est gratuite. Un plugin sur mesure vient en plus, pas à la place : il porte la logique propre à ton serveur, c'est-à-dire qui monte de grade, quand, et ce que ça débloque.

Comment mettre un préfixe devant mon pseudo dans le chat ?

Le préfixe est une métadonnée du groupe, pas une permission. Tu le définis dans ton gestionnaire de permissions, puis un plugin de chat le place devant le pseudo. Si tu veux un format de chat précis, avec tes couleurs et ton ordre à toi, c'est typiquement ce qu'un petit plugin dédié fait très bien.

Pourquoi ma permission ne marche pas alors que je l'ai donnée ?

Trois causes reviennent tout le temps. Tu es opérateur et la permission est en default: op, donc tu ne vois pas le problème que vivent tes joueurs. Le nom de la permission n'est pas exactement le même dans le code et dans ta configuration. Ou bien une permission négative héritée d'un autre groupe l'annule. Teste toujours avec un compte sans OP.

C'est quoi l'héritage de groupes, en clair ?

Le groupe VIP hérite du groupe joueur : il reçoit automatiquement tout ce qu'un joueur peut faire, et tu n'écris que ses avantages en plus. Tu évites de recopier cinquante lignes à chaque étage, et une correction faite en bas de la hiérarchie remonte partout.

Peut-on lier un grade au temps de jeu ou à un achat en jeu ?

Oui, et c'est exactement le genre de règle qu'un plugin sur mesure porte bien : compter le temps passé sur le serveur, vérifier un solde, puis déclencher la promotion et annoncer le changement. Décris ta condition et tes seuils, ils seront écrits dans le code.

Peut-on relier les grades à des rôles Discord ?

Ce pont dépend d'un service extérieur, donc il est plus fragile qu'un plugin autonome. Si tu le veux, dis-le clairement dans ta description et prévois de vérifier le résultat en jeu, voire d'ajuster le code toi-même. Un système de grades purement en jeu est nettement plus sûr à générer.

Le plugin généré est-il compatible avec Vault ?

Il peut l'être si tu le demandes. Vault sert de couche commune pour l'économie, le chat et les permissions, et beaucoup de serveurs l'ont déjà installé. Mentionne-le dans ta description pour que le code passe par lui plutôt que d'ignorer ce qui tourne déjà.

Puis-je tester le plugin avant de le mettre sur mon serveur ?

Oui. Tu peux lancer le .jar sur un vrai serveur Paper en ligne : tu t'y connectes, tu tapes tes commandes de grade et tu regardes si le préfixe, les droits et les messages sont corrects. Rien ne t'oblige à télécharger le fichier avant d'avoir vu le plugin tourner.

Prêt à créer ton plugin Minecraft ?

Description en français, .jar compilé, sans une ligne de Java. Le compte est gratuit. Crédits payés une fois, sans abonnement : 50 crédits à 17,99 € TVA incluse.

Décrire mon plugin de grades