Minecuping !
+9
9decarreau
Olive-5
LouisXIV
Dragorn
freepostpas
Mogolecho
zouglou
azertyfun
TheZopo
13 participants
Serveur Minecraft gratuit RP, Freebuild, PvP, sans white list :: Autres :: Taverne des joueurs :: Taverne des g33ks!
Page 1 sur 7
Page 1 sur 7 • 1, 2, 3, 4, 5, 6, 7
Minecuping !
Bonjour à tous,
Depuis quelques jours, Mogo et moi avons le projet de créer un plugin pour le serveur qui permettrais d'automatiser certaine tâches, comme le changement de grade et l'acceptation sur le serveur.
En ce qui concerne l'acceptation, le plugin pourrais gérer également de dispatché les joueurs dans les différents villes (enlever le cuboid).
Présentation de l'encienn version :
I. Shéma de la BDD
Le plugin utiliseras une BDD MySQL nommé `Minecuping`. Elle comporteras deux tables :
Table 1 : users
Cette table contient toutes les informations sur les joueurs, le schéma est :
ID: Une ID unique qui permet de différencier les lignes des joueurs
player : Le nom du joueur
accept_av : Si le joueur est accepté en ce moment elle vaut 1 sinon 0
grade_av : C'est le grade du joueur actuellement
accept_ap : Si on veux accepter ce joueur il faut définir cette ligne à 1 et laissé accept_av à 0
grade_ap : Indiquez ici le nouveau grade du joueur.
ville1 : La première ville du joueur. Si elle vaut "all", le joueur a tous les droits
ville2 : La deuxième ville du joueur.
ville3 : La 3e ville du joueur
Table 2 : player_change
player_change ne contient qu'une seule colonne : "player"
Si il y a un changement a effectuer sur un joueur, indiquez son pseudo dans cette colonne
II. Fonctionnement du plugin
1. L'automatisme
Le plugin est baser sur un unique event qui se déclenche toutes les 10 minutes :
- Il vas chercher si la table player_change possède une ou plusieurs ligne(s)
- Si non le plugin s'arrête si oui il lance une requête SELECT avec la condition du nom du joueur. C-a-d que le plugin vas se positionner sur la ligne du joueur pour pouvoir en tirer ses valeurs.
- Le plugin test si grade_av et grade_ap sont différents
- Si non le plugin passe au prochain point, sinon il effectue la commande "/perm [joueur] addgroup [grade]" et supprime son ancien grade
- Si accepy_av est différent de accept_ap il effectue les commandes néscéssaire a l'activation d'un joueur sinon il renvoi une erreur comme quoi le script PHP n'est pas valide
2. L'unique commande
L'unique commande est /update
/update all permet de mètre a jour les grades de tous les joueurs qui on été programmé comme tels.
/update [joueur] permet de mètre a jour le grade du joueur si il a été programmé comme tel.
III. Tuto d'installation :
Récapitulatifs des versions :
Version Béta 0.6
La version Béta 0.6 est une version primitive de Minecuping, elle incorporait la commande /update all et /update joueur dont certaines fonctionnalités étaient buggés.
Elle ne comportait pas non plus de mise a jour toutes les 10 minutes
Téléchargement : IMPOSSIBLE
Version 1.0
La version 1.0 est la première version de Minecuping et la première a avoir été mise en place sur Minecurie.
Elle comporte toutes les fonctions de bases, comme la commande /update all et /update joueur, mais aussi -et contrairement a la 0.6- le systeme de mise a jour toutes les 10 minutes.
Elle permet qu'avec 2 requêtes SQL on peux changer grade, acceptation et ville d'un joueur.
Cette version a été terminé par l'auteur le 10 Aout 2012, avec une ultime modification a 1h du matin (Merci Load)
Téléchargement : Encore indisponible pour le moment
Voili, voilou qu'en pensez-vous ? Dites moi tout !
Depuis quelques jours, Mogo et moi avons le projet de créer un plugin pour le serveur qui permettrais d'automatiser certaine tâches, comme le changement de grade et l'acceptation sur le serveur.
En ce qui concerne l'acceptation, le plugin pourrais gérer également de dispatché les joueurs dans les différents villes (enlever le cuboid).
Présentation de l'encienn version :
- Spoiler:
- I.Shéma de la BDD
Le utiliseras une BDD (My)SQL dont le schéma pourrais être le suivant :
Nom de la table : Nom du joueur
Les 2 premier emplacements correspondent à ce que le joueur est avant la requête, c'est a dire avant que les modérateurs ne change des paramètres.Accepté avant requête Grade avant requête Accepté après requête Grade après requête Ville 1 Ville 2 Ville 3
Les 2 suivant correspondent à ce que le modérateur veux changer sur le joueur.
Les 3 derniers correspondent à quelle ville est inscrit le joueur.
Pour mon cas ce serai :
Nom de la table : TheZopo
II.Fonctionnement du plugintrue Citoyen true Citoyen Utopia false false
Cas de figure 1 : Première connexion d'un joueur
--> Fonction "Test et création de table"
Le plugin va chercher dans la BDD si le joueur possède une table à son nom.
Comme c'est la première fois qu'il se connecte, il n'y en a pas, le plugin lui en crée donc une.
Le plugin passe alors la main a une autre fonction du plugin : La détection de visiteur.
--> Fonction "Détection visiteur"
Le plugin teste si la première valeur de la table vaut "false", comme c'est le cas le plugin affiche alors au joueur le message suivant : "Bienvenue ! Pour pouvoir construire et profité de tout les avantages, postez votre candidature à l'adresse suivante : http://www.minecurie.fr/candidature/"
Le plugin s'arrête là, il n'a plus rien à faire pour ce joueur.
Cas de figure 2 : Connexion d'un joueur sans changements
--> Fonction "Test et création de table"
Le plugin va chercher dans la BDD si le joueur possède une table à son nom.
Oui il en une, le plugin teste alors si il y a des changements, pour ce faire il regarde si la valeur 1 est la même que la valeur 3 et si la valeur 2 est la même que la valeur 4. Et si les valeurs 5, 6 et 7 sont différentes de false.
Comment aucun changement n'a été fait, le plugin s'arrête là, il n'a plus rien a faire.
Cas de figure 3 : Connexion d'un joueur avec changements
--> Fonction "Test et création de table"
Le plugin va chercher dans la BDD si le joueur possède une table à son nom.
Oui il en une, le plugin teste alors si il y a des changements, pour ce
faire il regarde si la valeur 1 est la même que la valeur 3 et si la
valeur 2 est la même que la valeur 4. Et si les valeurs 5, 6 et 7 sont différentes de false.
Non ! La valeur 1 est différente de la valeur 3 (accepté ou non), la valeur 2 est différente de la valeur 4 (grade) et la valeur 5 ne vaut pas false (ville).
Le plugin passe la main à la fonction "Changement de grade" avec comme argument le nom du nouveau grade.
Le plugin passe la main à la fonction "Accept" avec comme argument true ou false.
Le plugin passe la main à la fonction "Ville" avec comme argument le nom de la ville.
-->Fonction "Changement de grade"
Le plugin change le grade dans la configuration du plugin de grade.
Le plugin change la valeur 1 en la valeur 3
-->Fonction "Accept"
Le plugin change le grade dans la configuration du plugin de grade.
Le plugin change la valeur 2 en la valeur 4
-->Fonction "Ville"
Le plugin rajoute une permission dans le plugin de grade.
Le plugin stop, il a fait toutes les modifications néscéssaires
I. Shéma de la BDD
Le plugin utiliseras une BDD MySQL nommé `Minecuping`. Elle comporteras deux tables :
Table 1 : users
Cette table contient toutes les informations sur les joueurs, le schéma est :
ID | player | accept_av | grade_av | accept_ap | grade_ap | ville1 | ville2 | ville3 |
player : Le nom du joueur
accept_av : Si le joueur est accepté en ce moment elle vaut 1 sinon 0
grade_av : C'est le grade du joueur actuellement
accept_ap : Si on veux accepter ce joueur il faut définir cette ligne à 1 et laissé accept_av à 0
grade_ap : Indiquez ici le nouveau grade du joueur.
ville1 : La première ville du joueur. Si elle vaut "all", le joueur a tous les droits
ville2 : La deuxième ville du joueur.
ville3 : La 3e ville du joueur
Table 2 : player_change
player_change ne contient qu'une seule colonne : "player"
Si il y a un changement a effectuer sur un joueur, indiquez son pseudo dans cette colonne
II. Fonctionnement du plugin
1. L'automatisme
Le plugin est baser sur un unique event qui se déclenche toutes les 10 minutes :
- Il vas chercher si la table player_change possède une ou plusieurs ligne(s)
- Si non le plugin s'arrête si oui il lance une requête SELECT avec la condition du nom du joueur. C-a-d que le plugin vas se positionner sur la ligne du joueur pour pouvoir en tirer ses valeurs.
- Le plugin test si grade_av et grade_ap sont différents
- Si non le plugin passe au prochain point, sinon il effectue la commande "/perm [joueur] addgroup [grade]" et supprime son ancien grade
- Si accepy_av est différent de accept_ap il effectue les commandes néscéssaire a l'activation d'un joueur sinon il renvoi une erreur comme quoi le script PHP n'est pas valide
2. L'unique commande
L'unique commande est /update
/update all permet de mètre a jour les grades de tous les joueurs qui on été programmé comme tels.
/update [joueur] permet de mètre a jour le grade du joueur si il a été programmé comme tel.
III. Tuto d'installation :
- Spoiler:
- Conditions d'utilisations
- De respecter la licence CreativeCommons BY NC ND, Attribution TheZopo du JeuMaGroupe
- De ne pas distribuer a quiconque une copie du plugin.
- De ne pas adapter, modifier et donc décompiler les sources (Therme NC de la licence)
- De donner a TheZopo le grade [Codeur] (Ou [Dev']) IG . Vous me devez bien ça non ? En plus c'est très simple :- Code:
prefix: '&2[Codeur][mes anciens grades]'
Informations a donner a TheZopo pour la finition du plugin
Il me faut les coordonnée de votre BDD Mysql, c'est-à-dire :
- Adresse du serveur
- Un nom d'utilisateur ayant TOUS LES DROITS --> TRES IMPORTANT !!!
- Le mot de passe de ce dernier
Mise en place du plugin
I. Créez le base de donnée
Il
vous faut créer la base de donné `Minecuping`, je ne vous donne pas de
requête SQL, y'a un bouton dans PhpMyAdmin pour le faire
II. Créez les tables
Voici les requêtes sql pour les différentes tables :
Table users :- Code:
CREATE TABLE IF NOT EXISTS `users` (
`ID` int(11) DEFAULT '0' NOT NULL auto_increment,
`player` text COLLATE utf8_bin NOT NULL,
`accept_av` tinyint(1) NOT NULL,
`grade_av` text COLLATE utf8_bin NOT NULL,
`accept_ap` tinyint(1) NOT NULL,
`grade_ap` text COLLATE utf8_bin NOT NULL,
`ville1` text COLLATE utf8_bin NOT NULL,
`ville2` text COLLATE utf8_bin NOT NULL,
`ville3` text COLLATE utf8_bin NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
Table player_change :- Code:
CREATE TABLE IF NOT EXISTS `player_change` (
`player` text COLLATE utf8_bin NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
Script PHP
Le script PHP, a été fait par Free, merci a lui
Le lien : http://pastebin.com/x1viWakZ
Définition des colonnes
ID : ID unique qui numérote les lignes
player : Le nom du joueur a qui appartient la lignes
accept_av : A ne pas toucher, sert a la condition "Si accept_av != accept_ap Alors"
grade_av : A ne pas toucher, sert a la condition "Si grade_av != grade_ap Alors"
accept_ap : Mêttez 1, si vous voulez accepter le joueur. ATTENTION : mettre 0 ne désaccepteras pas le joueur
grade_ap : Si vous voulez changer le grade de qqun c'est sur cette colonne qu'il faut agire
ville1 : ville1 du joueur, si "all", le joueur a les droits sur toutes les villes
ville2 : 2e ville du joueur
ville3 : 3e ville du joueur
ATTENTION : Agir sur ville1, ville2 et ville3, ne feras aucun résultat IG
Maintenant si, Merci load pour me l'avoir fait penser
NOTE :
Vous pouvez utiliser ville1, ville2 et ville3 pour donner des droits a
n'importe quel région, tant que la commande est "/rg addmember region
player"
Récapitulatifs des versions :
Version Béta 0.6
La version Béta 0.6 est une version primitive de Minecuping, elle incorporait la commande /update all et /update joueur dont certaines fonctionnalités étaient buggés.
Elle ne comportait pas non plus de mise a jour toutes les 10 minutes
Téléchargement : IMPOSSIBLE
Version 1.0
La version 1.0 est la première version de Minecuping et la première a avoir été mise en place sur Minecurie.
Elle comporte toutes les fonctions de bases, comme la commande /update all et /update joueur, mais aussi -et contrairement a la 0.6- le systeme de mise a jour toutes les 10 minutes.
Elle permet qu'avec 2 requêtes SQL on peux changer grade, acceptation et ville d'un joueur.
Cette version a été terminé par l'auteur le 10 Aout 2012, avec une ultime modification a 1h du matin (Merci Load)
Téléchargement : Encore indisponible pour le moment
Voili, voilou qu'en pensez-vous ? Dites moi tout !
Dernière édition par TheZopo le Mar 28 Aoû 2012 - 16:01, édité 4 fois
TheZopo- Messages : 374
Points : 416
Réputation : 8
Date d'inscription : 30/05/2012
Age : 25
Localisation : Derière toi ! BOU !
Re: Minecuping !
Pas mal je trouve, après ce qui serait bien c'est de le développer de façon à être adaptable à tous les servuers possédants les bons plugins (permissionsBukkit, worldguard, etc...) et de le publier sur bukkit, ça ferait une bonne pub. :]
Re: Minecuping !
On va déjà s'occuper de le faire sur mesure pour Minecurie, après on verras
TheZopo- Messages : 374
Points : 416
Réputation : 8
Date d'inscription : 30/05/2012
Age : 25
Localisation : Derière toi ! BOU !
Re: Minecuping !
Mais tu pourrais pas directement changer les grades plutot qu'attendre qu'il se co, nah ?
Re: Minecuping !
Ce serait pas plus simple de faire un système d'administration sur internet comme la dynmap, par exemple tu vas sur game.minecurie.fr:500, ça te mène à une page de gestion des grades. Ca envoie directement les infos au plugin qui édite les autres plugins de permissions.
Re: Minecuping !
@Zouglou : Le problème, c'est le lag, je ne peux pas me permettre de mètre une boucle infini pour tester si il y a des changements.
@Azerty : Oui, c'est prévus sauf que les changements sont pris en compte à la connexion du joueur. Ce plugin n'auras pas (ou presque pas) de commandes, tout ce fait a partir d'un Intranet, c'est l'avantage de la BDD/
@Azerty : Oui, c'est prévus sauf que les changements sont pris en compte à la connexion du joueur. Ce plugin n'auras pas (ou presque pas) de commandes, tout ce fait a partir d'un Intranet, c'est l'avantage de la BDD/
TheZopo- Messages : 374
Points : 416
Réputation : 8
Date d'inscription : 30/05/2012
Age : 25
Localisation : Derière toi ! BOU !
Re: Minecuping !
Ben pourquoi ça attend qu'il se connecte au lieu de faire dès que un admin a changé quelque chose sur le site web en question? Par exemple, j'ajoute jean_dupont1234, la fonction est appellée: "ajout("jean_dupont1234")", le plugin va dans permissionsBukkit, va à la ligne "jean_dupont1234 (ou la crée), et met group: user. C'est plus simple que d'attendre la connexion du joueur, et ça évite des events à chaque connexion.
Re: Minecuping !
Une BDD, c'est une BDD, ça ne fait rien ça stock des informations c'est tout.
De plus on ne peux pas communiquer avec un programme via un autre...
De plus on ne peux pas communiquer avec un programme via un autre...
TheZopo- Messages : 374
Points : 416
Réputation : 8
Date d'inscription : 30/05/2012
Age : 25
Localisation : Derière toi ! BOU !
Re: Minecuping !
Huuuuuuum...
Du Ajax peut-être...
Du Ajax peut-être...
TheZopo- Messages : 374
Points : 416
Réputation : 8
Date d'inscription : 30/05/2012
Age : 25
Localisation : Derière toi ! BOU !
Re: Minecuping !
Vous me racontez quoi là ?
Le joueur se connecte
Le plugin vérifie si le jour a les droits
S'il en a pas il va voir si il doit en avoir
S'il doit en avoir on balance automatiquement les commandes d'ajout.
Le joueur se connecte
Le plugin vérifie si le jour a les droits
S'il en a pas il va voir si il doit en avoir
S'il doit en avoir on balance automatiquement les commandes d'ajout.
Re: Minecuping !
Ce que j'ai écrit dans mon premier post donc...
TheZopo- Messages : 374
Points : 416
Réputation : 8
Date d'inscription : 30/05/2012
Age : 25
Localisation : Derière toi ! BOU !
Re: Minecuping !
Oui, dans le premier post, mais je tiens compte de ce qui est le plus à jour dans tes dires, soit les derniers posts qui dérivent vers quelque chose d'étrange.
Re: Minecuping !
Dans ton post tu as pas inversé les mots table et ligne ? Parceque créer une table par joueur ça va être dur (nottament si après on veut lister les joueurs ). En tous cas ton plugin m'interresse drolement vu que je suis en train de coder un cms pour site de serveur minecraft .
freepostpas- Messages : 735
Points : 791
Réputation : 8
Date d'inscription : 24/08/2011
Age : 28
Re: Minecuping !
Mogolecho a écrit:Oui, dans le premier post, mais je tiens compte de ce qui est le plus à jour dans tes dires, soit les derniers posts qui dérivent vers quelque chose d'étrange.
Oui, les derniers posts dérivent, Zouglou et azety mon mit le doute, ce sont des petits vicieux
TheZopo- Messages : 374
Points : 416
Réputation : 8
Date d'inscription : 30/05/2012
Age : 25
Localisation : Derière toi ! BOU !
Re: Minecuping !
J'aime bien l'idée de ton plugin mais vu que je suis une quiche en java (bon je me débrouille ) je pourrais pas vous aider. En plus j'ai pas tout compris : par exemple c'est quoi la différence entre la première et la troisième colonne de ton tableau ?
Et tant qu'on y est, quand un modo accepte la candidature, ça charge un port du serveur qui va s'occuper automatiquement d'accepter le joueur.
Dragorn- Messages : 408
Points : 465
Réputation : 4
Date d'inscription : 24/01/2012
Age : 25
Localisation : Devant mon ordi
Re: Minecuping !
La première colonne si le joueur est accepté à ce moment présent.
La 3e colonne, c'est elle qui changeras si un modérateur décide d'accepté un joueur.
La 3e colonne, c'est elle qui changeras si un modérateur décide d'accepté un joueur.
TheZopo- Messages : 374
Points : 416
Réputation : 8
Date d'inscription : 30/05/2012
Age : 25
Localisation : Derière toi ! BOU !
Re: Minecuping !
Pourquoi faire une boucle infinie ? Dès qu'on va accepter le joueur, tu modifie directement le fichier de perms ou je ne sais quoi, nah ?
Re: Minecuping !
TheZopo a écrit:Une BDD, c'est une BDD, ça ne fait rien ça stock des informations c'est tout.
De plus on ne peux pas communiquer avec un programme via un autre...
TheZopo- Messages : 374
Points : 416
Réputation : 8
Date d'inscription : 30/05/2012
Age : 25
Localisation : Derière toi ! BOU !
Re: Minecuping !
Non tu crois !
Oui
Oui
TheZopo- Messages : 374
Points : 416
Réputation : 8
Date d'inscription : 30/05/2012
Age : 25
Localisation : Derière toi ! BOU !
Re: Minecuping !
Ben oui, je sais bien.
Mais pourquoi tu vas pas directement dans le fichier de perms ? Pourquoi tu passe par une db pour les grades ?
Mais pourquoi tu vas pas directement dans le fichier de perms ? Pourquoi tu passe par une db pour les grades ?
Re: Minecuping !
C'est ce que je disais. À la limite, tu peux quand même utiliser une BDD pour pouvoir savoir qui est quoi très vite.
Re: Minecuping !
Et PAS de modification à la main du fichier, d'ailleurs ce serait ridicule car il faudrait tout le temps relancer un /reload.
Il faut que le plugin se serve des commandes officielles du plugin, /permissions.
Il y a aussi peut-être une API pour faire propre.
Il faut que le plugin se serve des commandes officielles du plugin, /permissions.
Il y a aussi peut-être une API pour faire propre.
Re: Minecuping !
Si on fait ce que vous voulez, Zouglou et azerty déjà un plugin Bukkit n'aura plus d’intérêt, autant faire un JS.
Et en plus on seras obligé de faire un reload a chaque changement, puisque la plupart des plugins ont besoin d'un reload pour charger leur configuration.
Et en plus on seras obligé de faire un reload a chaque changement, puisque la plupart des plugins ont besoin d'un reload pour charger leur configuration.
TheZopo- Messages : 374
Points : 416
Réputation : 8
Date d'inscription : 30/05/2012
Age : 25
Localisation : Derière toi ! BOU !
Page 1 sur 7 • 1, 2, 3, 4, 5, 6, 7
Serveur Minecraft gratuit RP, Freebuild, PvP, sans white list :: Autres :: Taverne des joueurs :: Taverne des g33ks!
Page 1 sur 7
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|