Bonjour,
J'ai trouvé que de plus en plus de personnes parlaient du plugin PermissionsEx, j'ai donc décidé de faire un tutoriel en poussant la partie SQL.
J'ai mis du temps à comprendre la logique dans la bd, car aucun post sur internet même anglais ne le présente.
J'espère que j'aurais aidé des joueurs et que toutes mes fautes d’orthographes ne vous feront pas trop mal aux yeux. Si vous avez des questions n'hésitez pas à répondre sur ce post ou par mp, bonne continuation ! Un "J'aime" en bas à droite fais toujours plaisir, just for fun !
J'ai trouvé que de plus en plus de personnes parlaient du plugin PermissionsEx, j'ai donc décidé de faire un tutoriel en poussant la partie SQL.
Jeune-Ignorant : "Mais c'est complétement stupide de faire un tutoriel sur un plugin de permissions ! Bukkit a développé le siens et il est installé de base en plus d'être génial !"
Liberateurs : "Ah mais oui, mais non ! Je t'arrête tout de suite, la particularité du plugin PermissionsEx est le SQL ! "
Jeune-Ignorant : "Késaco ?"
Liberateurs : "Et bien grâce a celui-ci tu peux faire une interface web pour les membres de ton staff et faire un tas d'interaction toute plus géniale les une que les autres."
J'ai mis du temps à comprendre la logique dans la bd, car aucun post sur internet même anglais ne le présente.
<---- Tutoriel : PermissionsEx ----> a dit:Réalisé le 21/12/2011, version 1.17
Installation
Pour télécharger la dernière version stable de PermissionsEx, rendez-vous sur la page bukkit. Une fois téléchargé, dézippez l'archive téléchargée, vous obtenez plusieurs fichiers : "PermissionsEx.jar", "PermissionsEx.jar", "ChatManager.jar", "Modifyworld.jar".
- Il est obligatoire d'utiliser "PermissionsEx.jar" et "Permissions.jar".
- Pour obtenir plus de possibilitées, il est vivement recommandé d'installer "Modifyworld.jar".
- "ChatManager.jar" est un simple plugin de Chat donc facultatif.
Pour l'installation, il vous suffit de glisser les JAR que vous souhaitez dans le dossier "plugins" de votre serveur puis de le relancer.
Configuration
Une fois que vous avez bien installé le plugin, un dossier "PermissionsEx" est créer avec les fichiers "config.yml" et "permissions.yml". Ouvrez le fichier "config.yml" et changer la configuration comme le stockage qui vous concerne (le SQLITE est disponible, mais je pense que peu de gens l'utilise, ci-besoin demandez moi).
- Par fichiers : Laissez la configuration actuel.
- Par MySQL : Vous devez posséder une base de donnée (bd) sur la même adresse que votre serveur sinon ce n'est pas possible. Ensuite remplacer la configuration comme ci-dessous en changeant "NOMDEVOTREBASE", "NOMDUTILISATEUR" et "MOTDEPASSE".
Code:permissions: backends: sql: driver: mysql uri: mysql://localhost/NOMDEVOTREBASE user: NOMDUTILISATEUR password: MOTDEPASSE backend: sql superperms: parent-nodes: true enable: true strict-mode: false createUserRecords: true allowOps: false debug: false basedir: plugins/PermissionsEx
Les Permissions
Nous allons maintenant créer les différents groupes d'utilisateurs, pour ce faire vous pouvez utiliser les commande ci-dessous ou éditer votre fichier "permissions.yml". Pour voir les permissions associés aux commande ainsi que la liste complète rendez-vous ici (en anglais).
Pour rajouter, éditer ou supprimer un joueurs d'un groupe, vous pouvez utiliser les commandes ci-dessous.
- /pex groups list : Affiche la liste des groupes.
- /pex group NOMDUGROUPE create : Créer un groupe.
- /pex group NOMDUGROUPE create NOMDUPARENT : Créer un groupe qui aura déjà toutes les permissions du groupe parent.
- /pex group NOMDUGROUPE delete : Supprime le groupe.
- /pex default group NOMDUGROUPE : Attribut le groupe par défaut.
- /pex group NOMDUGROUPE rank VALEURE : Rajoute un rang au groupe, il permet d'utiliser la commande "/pex promote" et "/pex demote" (pour les VALEURS : 0 = admin et 1000 ou plus = visiteur).
- /pex group NOMDUGROUPE prefix PREFIX : Rajoute un nouveau préfixe au groupe (avant le pseudo).
- /pex group NOMDUGROUPE suffix SUFFIX : Rajoute un nouveau suffix au groupe (après le pseudo).
- /pex group NOMDUGROUPE add PERMISSION : Ajoute la permission à un groupe.
- /pex group NOMDUGROUPE remove PERMISSION : Supprime la permission à un groupe.
- /pex group NOMDUGROUPE timed add PERMISSION DURÉE : Aucune idée, mais surement très intéressant !
- /pex group NOMDUGROUPE timed remove PERMISSION : Aucune idée, mais surement très intéressant !
ModifyWorld
- /pex user PSEUDO prefix PREFIX : Ajoute un préfixe au joueur.
- /pex user PSEUDO prefix PREFIX : Ajoute un suffixe au joueur.
- /pex user PSEUDO delete : Supprime le joueur de la liste.
- /pex user PSEUDO add PERMISSION : Rajoute un permission à un joueur.
- /pex user PSEUDO remove PERMISSION : Retire la permission d'un joueur.
- /pex user PSEUDO timed add PERMISSION : Aucune idée, mais surement très intéressant !
- /pex user PSEUDO timed remove PERMISSION : Aucune idée, mais surement très intéressant !
- /pex user PSEUDO group add GROUP : Ajoute un groupe supplémentaire au joueur.
- /pex user PSEUDO group set GROUP : Ajoute le joueur au groupe.
- /pex user PSEUDO group remove GROUP : Retire le joueur du groupe
- /pex promote PSEUDO : Dégrade à un joueur, je dis des choses horrible x), Rétrograde un joueur.
- /pex demote PSEUDO : Promote un joueur
ModifyWorld vous permet de mettre des permissions très intéressantes : par exemple les joueurs au grade visiteurs sur mon serveur ne pourront pas prendre d'objet en main, ouvrir des coffres ou mourir, mais ils pourront utiliser un minecart. La liste des permissions possible grâce a ce petit plugin est disponible par ici!
Partie SQL
Si vous avez déjà toutes vos permissions ou l'envie de les faire plus rapidement que taper une à une les commandes au-dessus, je vous recommande de lire cette dernière partie attentivement .
Connectez-vous à phpmyadmin ou une interface où vous pourrez taper des requêtes SQL et allez dans la db où se trouve les tables "Structure permissions", "Structure permissions_entity" et "Structure permissions_inheritance" créées par PermissionsEX lors de son premier lancement.
Dans un premier temps on créer tous les groupes, copier le bloc "code" dans un fichier texte et éditez-le en remplaçant NOMDUGROUPE, PREFIX et SUFFIX. Rajouter autant de ('NOMDUGROUP','0','PREFIX','SUFFIX','0') séparé par une virgule, pour le groupe par défaut rajouter la ligne ('NOMDUGROUP','0','PREFIX','SUFFIX','1') à la place (juste changer le 0 en 1).
Code:INSERT INTO 'permissions_entity'('name', 'type', 'prefix', 'suffix', 'default') VALUES ('NOMDUGROUP','0','PREFIX','SUFFIX','0'),('NOMDUGROUP','0','PREFIX','SUFFIX','0'),('NOMDUGROUP','0','PREFIX','SUFFIX','0'),('NOMDUGROUP','0','PREFIX','SUFFIX','0'),('NOMDUGROUP','0','PREFIX','SUFFIX','0'),('NOMDUGROUP','0','PREFIX','SUFFIX','0'),('NOMDUGROUP','0','PREFIX','SUFFIX','0'),('NOMDUGROUP','0','PREFIX','SUFFIX','0')
Ensuite on attribut les rangs de ces groupes, remplacez NOMDUGROUPE et VALEURE. Rappel, plus le rang à une valeurs importante, plus il est insignifiant, le rang admin sera donc 10 par exemple et celui de visiteur 1000.
Code:INSERT INTO 'permissions'('name', 'type', 'permission', 'value') VALUES ('NOMDUGROUP','0','rank','VALEURE'),('NOMDUGROUP','0','rank','VALEURE'),('NOMDUGROUP','0','rank','VALEURE'),('NOMDUGROUP','0','rank','VALEURE'),('NOMDUGROUP','0','rank','VALEURE'),('NOMDUGROUP','0','rank','VALEURE'),('NOMDUGROUP','0','rank','VALEURE'),('NOMDUGROUP','0','rank','VALEURE')
Après, si vous avez des "groupes parents" par exemple le grade "VIP" a aussi les permissions de votre grade "Citoyens" en plus de ces propres permissions (Citoyens est le Parent du grade VIP). Remplacez NOMDUGROUPE et NOMDUPARENT.
Code:INSERT INTO 'permissions_inheritance'('child', 'parent', 'type') VALUES ('NOMDUGROUP','NOMDUPARENT','0'),('NOMDUGROUP','NOMDUPARENT','0'),('NOMDUGROUP','NOMDUPARENT','0'),('NOMDUGROUP','NOMDUPARENT','0'),('NOMDUGROUP','NOMDUPARENT','0'),('NOMDUGROUP','NOMDUPARENT','0'),('NOMDUGROUP','NOMDUPARENT','0'),('NOMDUGROUP','NOMDUPARENT','0')
Pour terminer, nous allons créer toutes les permissions. Il est conseillé de faire une requête par groupe pour éviter de s'embrouiller. Remplacez NOMDUGROUP et PERMISSION.
Code:INSERT INTO 'permissions'('name', 'type', 'permission') VALUES ('NOMDUGROUP','PERMISSION','0'),('NOMDUGROUP','PERMISSION','0'),('NOMDUGROUP','PERMISSION','0'),('NOMDUGROUP','PERMISSION','0'),('NOMDUGROUP','PERMISSION','0'),('NOMDUGROUP','PERMISSION','0'),('NOMDUGROUP','PERMISSION','0'),('NOMDUGROUP','PERMISSION','0')
Comprendre la logique SQL de PermissionsEX
Sur ce dernier point, nous allons voir ensemble à quoi sert quoi et comment ça marche. Nous avons donc trois tables ci-dessous, créées lors du premier lancement du plugin. Pour chaque table, l'id est unique et ne doit pas être deux fois dans une même table. Le type est une valeurs par défaut, 0 pour un groupe et 1 pour un joueur.
- permissions : c'est la table qui liste les permissions ainsi que le rang de chaque groupe ou joueur. La colonne name est le nom du groupe auquel appartient la permission, le world est le monde auquel appartient la permission (a laisser vide) et la value est pour une durée ou la valeure du rang.
- permissions_entity : cette table liste tous les joueurs ainsi que les groupes. La colonne name est le nom du groupe ou du joueur, le prefix et le suffix permette de rajouter un préfixe ou un suffixe au groupe ou au joueur et default est utilisé pour savoir quel groupe est par défaut mis pour un nouveau joueur.
- permissions_inheritance: celle-ci nous permettra de mettre les parents des groupes et des joueurs. Child correspond au nom du joueur ou du groupe qui obtient les permissions de son parent et world permet de l'activer uniquement dans l'un de vos monde (par défaut "null" correspond à tous vos mondes).
J'espère que j'aurais aidé des joueurs et que toutes mes fautes d’orthographes ne vous feront pas trop mal aux yeux. Si vous avez des questions n'hésitez pas à répondre sur ce post ou par mp, bonne continuation ! Un "J'aime" en bas à droite fais toujours plaisir, just for fun !