QuickShop, coté client.

Un problème pour vous connecter aux serveurs HelloMinecraft ? Une question ? Alors postez ici !
ORelio
Ancien Administrateur
Messages : 12582
Inscription : 28 oct. 2011, 22:06
Pseudo Minecraft : ORelio
Contact :

Re: QuickShop, coté client.

Messagepar ORelio » 09 oct. 2015, 22:25

Bon, faire un plugin d'économie complet et flexible, c'est quand même vachement plus long que prévu, vu qu'au final je suis en train de refaire depuis zéro quelque chose du même gabarit que le plugin Fe Economy, et prévu pour être entièrement compatible avec ce dernier à terme - à quelques ajustements près pour qu'il soit léger et compatible avec l'infrastructure d'HM. là déjà je prévois les mêmes nœuds de permission et les mêmes commandes, et en bonus on pourrait envisager une gestion plus flexible de la base de données pour rajouter plus tard un interfaçage générique avec une base de données déjà existante (qu'il puisse se brancher sur quelque chose de généré par un autre plugin par exemple)

Travail du jour :
- Développer le plugin d'économie
  • - FAIT : Rédiger la couche d'interfaçage côté plugin qui communique avec l'interface côté site - API - pour récupérer ou mettre à jour les profils de joueurs (1)
    - FAIT : Modèle de données pour représenter, mettre en cache, et synchroniser les profils de joueurs, avec gestion de la concurrence (accès simultanés) (2)
    - FAIT : Mécanisme de synchronisation avec la base de données, seulement lorsqu'un ou plusieurs profils doivent être mis à jour (2)
    - FAIT : Interface respectant le modèle fourni par Vault pour permettre à d'autres plugin de se brancher sur le plugin d'économie (3)
    - PARTIEL : Module de commandes pour ... permettre la manipulation des comptes sans plugin tiers (/money c'est cool quand même ^^) (5)
    - TODO : Faire les mêmes commandes que disponibles actuellement dans Fe Economy
    - TODO : Reprendre exactement les mêmes nœuds de permission de Fe Economy pour les commandes
    - TODO : Tout tester... je n'ai encore rien testé au delà de la base de donnée et de l'API du site :mrgreen:
- Fonctions bonus du plugin qui le rendrait plus générique et donc réutilisable dans d'autres contextes que HM :
  • - PARTIEL : Module de configuration pour, comme son nom d'indique, configurer le plugin avec divers réglages (nom de la monnaie, traduction de messages...) (4)
    - TODO : Rendre plus abstraite la couche d'interfaçage pour permettre de réutiliser le plugin ailleurs (rajouter quelque chose entre 1 et 2 pour choisir le type de base de donnée)
    - TODO : Gérer le changement de pseudo, de manière facultative, au cas où le plugin ait une base de données autonome (le site HM gère déjà les changements de pseudo)
- Préparer la migration
  • - TODO : Faire le script qui va migrer toutes les données du plugin existant vers la base de données du site en résolvant les UUID pour chaque pseudo et en associant l'argent des doublons
- Illustration : Schéma de l'architecture interne du plugin :
  • Code : Tout sélectionner

    [Autre plugin] [Commandes] (5) _\\| |//_ (3) [Interface type Vault] -+ \|/ |-> [Module Réglages] (4) (2) [Modèle de données] ---+ \|/ (1) [Base de données]
Image
Image
__ORelio, Tonton des Eclairs - Développeur sur HM - Admin à temps partiel - Night Club - L'Hymne des modérateurs
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse Image

foufou25
Messages : 236
Inscription : 31 mai 2014, 15:51
Pseudo Minecraft : Darkness_Foufou

Re: QuickShop, coté client.

Messagepar foufou25 » 09 oct. 2015, 22:46

Mais ça travail tard dis donc :ugeek: Je t'admire . :o
Ex-HelperPlay

GenialJerome
Messages : 2012
Inscription : 07 janv. 2014, 19:25
Pseudo Minecraft : GenialJerome
Localisation : Chez moi
Contact :

Re: QuickShop, coté client.

Messagepar GenialJerome » 09 oct. 2015, 23:50

Ça on fait du travail et de plus si tard. Tu ne te repose jamais ?
Image
Image Image
Helper Play depuis le 19 octobre 2015 jusqu'au 24 octobre 2017
Responsable Helper depuis le 3 mai 2017 jusqu'au 24 octobre 2017
Développeur depuis le 29 décembre 2017
Administrateur Machine depuis le 10 septembre 2018

ORelio
Ancien Administrateur
Messages : 12582
Inscription : 28 oct. 2011, 22:06
Pseudo Minecraft : ORelio
Contact :

Re: QuickShop, coté client.

Messagepar ORelio » 10 oct. 2015, 08:18

Je suis parti dormir juste après posté le message ci-dessus et je m'étais arrêté de programmer depuis 20h30 :lol:
Image
Image
__ORelio, Tonton des Eclairs - Développeur sur HM - Admin à temps partiel - Night Club - L'Hymne des modérateurs
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse Image

foufou25
Messages : 236
Inscription : 31 mai 2014, 15:51
Pseudo Minecraft : Darkness_Foufou

Re: QuickShop, coté client.

Messagepar foufou25 » 11 oct. 2015, 09:23

C'est rassurant que tu dormes vu tout ce que tu fais :lol:
Ex-HelperPlay

ORelio
Ancien Administrateur
Messages : 12582
Inscription : 28 oct. 2011, 22:06
Pseudo Minecraft : ORelio
Contact :

Re: QuickShop, coté client.

Messagepar ORelio » 11 oct. 2015, 22:55

Merci foufou ^^

J'ai fini de développer la majeure partie du plugin, mais je n'ai pas terminé la chasse intensive aux bugs. Il faudrait aussi que je termine le module de configuration pour qu'il charge la configuration depuis un fichier de configuration, pour l'instant c'est codé en dur en tant que valeurs par défaut, du coup le reste du code peut l'utiliser correctement et je dois juste faire le chargement de la configuration. Et continuer les tests. Le plugin doit être parfaitement fiable parce que les PO c'est quand même rudement important ^^

Pour le moment le plugin est déjà pas mal, on peut afficher les PO, en ajouter ou en supprimer. Me reste à tester les permissions, et vérifier la robustesse du mécanisme de synchronisation avec la base de données, celui-ci a été conçu pour minimiser le nombre de requêtes à effectuer, via un système de mise en cache et de synchronisation différée : au lieu de tout transmettre directement, on attend quelques secondes et seulement là on synchronise. Un réglage permet de définir la tolérance de délai selon si on lit ou modifie l'argent d'un compte, et pour mes tests j'ai mis 5 secondes aux deux, ça fonctionne plutôt bien.

Travail du Week-End :
- Développer le plugin d'économie
  • - DEJA FAIT : Rédiger la couche d'interfaçage côté plugin qui communique avec l'interface côté site - API - pour récupérer ou mettre à jour les profils de joueurs (1)
    - DEJA FAIT : Modèle de données pour représenter, mettre en cache, et synchroniser les profils de joueurs, avec gestion de la concurrence (accès simultanés) (2)
    - DEJA FAIT : Mécanisme de synchronisation avec la base de données, seulement lorsqu'un ou plusieurs profils doivent être mis à jour (2)
    - DEJA FAIT : Interface respectant le modèle fourni par Vault pour permettre à d'autres plugin de se brancher sur le plugin d'économie (3)

    - FAIT : Module de commandes pour ... permettre la manipulation des comptes sans plugin tiers (/money c'est cool quand même ^^) (5)
    - FAIT : Faire les mêmes commandes que disponibles actuellement dans Fe Economy
    - FAIT : Reprendre exactement les mêmes nœuds de permission de Fe Economy pour les commandes
    - PARTIEL : Tout tester... j'ai déjà éliminé un bon paquets de bugs mais je n'ai pas encore tout testé :)
- Fonctions bonus du plugin qui le rendrait plus générique et donc réutilisable dans d'autres contextes que HM :
  • - PARTIEL : Module de configuration pour, comme son nom d'indique, configurer le plugin avec divers réglages (nom de la monnaie, traduction de messages...) (4)
    - FAIT : Rendre plus abstraite la couche d'interfaçage pour permettre de réutiliser le plugin ailleurs (rajouter quelque chose entre 1 et 2 pour choisir le type de base de donnée) (6)
    - FAIT : Gérer le changement de pseudo, de manière facultative, au cas où le plugin ait une base de données autonome * (le site HM gère déjà les changements de pseudo)
    - FAIT : Gérer la création de compte, de manière facultative, au cas où le plugin ait une base de données autonome *
- Préparer la migration
  • - TODO : Faire le script qui va migrer toutes les données du plugin existant vers la base de données du site en résolvant les UUID pour chaque pseudo et en associant l'argent des doublons
- Illustration : Schéma de l'architecture interne du plugin :
  • Code : Tout sélectionner

    [Autre plugin] [Commandes] --+ \|/ | (5) | (3) [Interf. Vault] | | \|/ \|/ | (2) [Modèle de données] ---+--> [Module Réglages] (4) \|/ | (6) [Interf. BDD] ---+ \|/ | (1) [Base de données] -----+
La gestion des erreurs peut traverser toute la pile des appels depuis le module de base de données jusqu'à la commande qui avait fait la requête par exemple, via le mécanisme des exceptions, ce qui permet par exemple de gérer dans les commandes l'erreur de compte non trouvé, ou pour les opérateurs, d'afficher un message d'erreur plus détaillé. L'interface Vault se charge également de les convertir en message d'erreur standardisé pour les autres plugin : statut "erreur" + message d'erreur.

* L'unique interface de base de données que j'ai ajouté, celle qui sert à communiquer avec le site HM, ignore cependant ces deux demandes car le site HM le fait déjà,
on pourrait cependant ajouter un autre gestionnaire de base de données par ex MySQL ou SQLite et y implémenter ces deux opérations vu que c'est géré par le plugin et l'interface BDD.


Bonne nuit ! ^^
Image
Image
__ORelio, Tonton des Eclairs - Développeur sur HM - Admin à temps partiel - Night Club - L'Hymne des modérateurs
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse Image

foufou25
Messages : 236
Inscription : 31 mai 2014, 15:51
Pseudo Minecraft : Darkness_Foufou

Re: QuickShop, coté client.

Messagepar foufou25 » 12 oct. 2015, 20:45

Très bien ORelio ! j'espère qu'on teste ça sur HelloMinecraft au plus vite :P
Ex-HelperPlay

ORelio
Ancien Administrateur
Messages : 12582
Inscription : 28 oct. 2011, 22:06
Pseudo Minecraft : ORelio
Contact :

Re: QuickShop, coté client.

Messagepar ORelio » 12 oct. 2015, 23:11

Merci, finalement c'était un gros projet j'avais sous estimé la charge de travail... je n'ai rien pu faire aujourd'hui, je continuerai demain ^^
Image
Image
__ORelio, Tonton des Eclairs - Développeur sur HM - Admin à temps partiel - Night Club - L'Hymne des modérateurs
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse Image

ORelio
Ancien Administrateur
Messages : 12582
Inscription : 28 oct. 2011, 22:06
Pseudo Minecraft : ORelio
Contact :

Re: QuickShop, coté client.

Messagepar ORelio » 13 oct. 2015, 17:14

"Il est vivant !"

Ça y est, plugin terminé et testé !
Il s'agit d'un plugin complet d'économie qui pourrait presque être utilisé sur un autre serveur.
La seule chose qu'il manquerait pour cela serait d'ajouter le support pour une base de données autonome (SQLite) ou standardisée (MySQL...).

- FAIT : Tout tester... Ça y est tout marche, il y en avait des bugs ! En vrai il me ne me reste plus qu'à vérifier que QuickShop accède aux comptes, mais le plugin lui-même est terminé et débuggé ! o/
- FAIT : Module de configuration pour, comme son nom d'indique, configurer le plugin avec divers réglages + préparer le fichier de configuration pour HM (nom de la monnaie, traduction de messages...)

Je peux donc passer au script de migration pour migrer les pièces d'or depuis la base de données existante vers la base de données du site.
L'idée est de 1) tout récupérer 2) résoudre les UUID 3) fusionner les comptes doublons 4) placer les données sur chaque compte de la base du site
Et bien sûr préparer aussi l'édition de la page d'achat de PO pour ne pas que vous achetiez des PO et que ça aille sur l'ancienne base :mrgreen:

- TODO : Script de migration des po/power
- TODO : Préparer la modifiction du script d'achat de PO
- TODO : Faire une simulation de mon côté de toute la migration
- TODO : Faire la migration en vrai, en choisissant une heure creuse et en prévenant à l'avance

Bref on y arrive, encore un peu de patience :)
Image
Image
__ORelio, Tonton des Eclairs - Développeur sur HM - Admin à temps partiel - Night Club - L'Hymne des modérateurs
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse Image

foufou25
Messages : 236
Inscription : 31 mai 2014, 15:51
Pseudo Minecraft : Darkness_Foufou

Re: QuickShop, coté client.

Messagepar foufou25 » 13 oct. 2015, 20:32

"Il est vivant !"
Ça y est, plugin terminé et testé !
Il s'agit d'un plugin complet d'économie qui pourrait presque être utilisé sur un autre serveur.
La seule chose qu'il manquerait pour cela serait d'ajouter le support pour une base de données autonome (SQLite) ou standardisée (MySQL...).

- FAIT : Tout tester... Ça y est tout marche, il y en avait des bugs ! En vrai il me ne me reste plus qu'à vérifier que QuickShop accède aux comptes, mais le plugin lui-même est terminé et débuggé ! o/
- FAIT : Module de configuration pour, comme son nom d'indique, configurer le plugin avec divers réglages + préparer le fichier de configuration pour HM (nom de la monnaie, traduction de messages...)

Je peux donc passer au script de migration pour migrer les pièces d'or depuis la base de données existante vers la base de données du site.
L'idée est de 1) tout récupérer 2) résoudre les UUID 3) fusionner les comptes doublons 4) placer les données sur chaque compte de la base du site
Et bien sûr préparer aussi l'édition de la page d'achat de PO pour ne pas que vous achetiez des PO et que ça aille sur l'ancienne base :mrgreen:

- TODO : Script de migration des power
- TODO : Préparer la modifiction du script d'achat de PO
- TODO : Faire une simulation de mon côté de toute la migration
- TODO : Faire la migration en vrai, en choisissant une heure creuse et en prévenant à l'avance

Bref on y arrive, encore un peu de patience :)
évidemment il est vivant ! Sinon Tadam Todo gogo ! Ok pour les étapes (1,2,3,4), Bonne chance !
Ex-HelperPlay


Revenir à « Support: Questions et Bugs »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Majestic-12 [Bot] et 7 invités