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 » 01 oct. 2015, 19:59

Double post ! Avertissement pour ORelio :o

Après une journée de travail - enfin, pendant mon temps libre de travail - j'ai terminé d'implémenter la conversion :)
Celle-ci s'opère en plusieurs étapes distinctes en utilisant plusieurs méthodes de conversion :

1) On vérifie si la base de données contient des shop indexés par pseudo, si oui on les liste, sinon étape 6
2) Récupération des pseudos un par un en demandant à Bukkit/Spigot qui utilise alors sa base de données interne
3) S'il en reste de non résolus, récupération des pseudos par lot de 100 avec l'API Mojang via du code que j'avais déjà écrit (en savoir plus)
4) S'il en reste de non résolus ex pour cause de changement de pseudo, récupération des UUID 1 par 1 via l'API d'historique de pseudo *
5) Pour chaque pseudo, mise à jour de toutes les tables pour le remplacer par l'UUID correspondant
6) On peut reprendre le chargement du plugin QuickShop là où il en était

* Permet de savoir à qui appartenait tel pseudo à un instant donné, pratique pour tester avant que
le changement de pseudo soit mis en service ou bien à une date plus récente, jusqu'à trouver un résultat.
C'est ainsi bien plus fiable que la conversion par lot mais environ 50 fois plus lent, donc en dernier recours ^^


J'ai testé la conversion sur une copie de la base de données du play, et ça convertit avec succès les 7137 shops détenus par 516 personnes.
Vu que la conversion se fait une bonne fois pour toute, on pourra ensuite mettre à jour QuickShop même si cela fait perdre mes modifications.
Mais même s'il est prêt, je ne le mets pas tout de suite, vu que le plugin d'économie risque de ne pas apprécier les récupérations par UUID.
Je vais donc m'attaquer à celui-ci à présent, il faut qu'il soit lui aussi capable de gérer les UUID, et ça résoudra pas mal de soucis au passage.
En bonus il y aurait aussi le système de power, utiliser les UUID résoudrait là aussi les soucis d'attente et autres problèmes au changement de pseudo.
Et sinon de toute manière, il y aura Vault (plugin d'interaction autre plugin <=> économie) à mettre à jour ainsi que le plugin HM : Achat du home 2...

Une petite maintenance des serveurs s'imposera quand j'aurais tout bien préparé,
je vous préviendrai en temps utile et j'attendrai une heure creuse pour faire ça,
et de toute manière le Lobby n'est pas concerné par l'économie et les power ;)
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 » 03 oct. 2015, 01:20

Triple post ! Je me sens un peu seul :lol:

Bon, aujourd'hui j'ai un peu déblayé pour la dernière version de Fe :

Les points positifs :

- Les UUID et le changement de pseudo sont censés être correctement gérés
- Une mise en cache est censée limiter le spam de la base de données qu'on a actuellement

Le moins bon, au niveau de Fe :

- La procédure de migration intégrée me semble incomplète et ne gèrera pas tous les cas comme je l'ai détaillé dans le post ci-dessus
- D'après certains commentaires, il y aurait de possibles problèmes avec les UUID, et possiblement des fuites de mémoire, même avec la dernière version

Les problèmes inhérents aux bases de données d'HM :

- La base de données actuelle contient de toute manière des doublons, en changeant de pseudo les PO sont simplement déplacés sur le nouveau
- Les données de PO sont stockées dans une base de données différente des comptes du site, de même pour les power, encore une autre. Pas terrible.

Du coup il faudrait simplifier les bases de données au passage, plutôt que juste upgrader la base des PO :

- Terminer la migration de la base de données principale du site [FAIT] :
-> A l'époque tous les pseudos n'avaient pas reçu le bon UUID à cause de l'API de Mojang qui ne les donnait pas.
-> Cependant l'API d'historique de pseudo m'a permis de récupérer les ~100 derniers UUID des comptes problématiques
-> Il ne restait alors que 16 comptes Minecraft qui en fait n'existent vraiment plus du tout. J'y ai mis des UUID "de remplacement"
-> Et touche finale UUID en clé primaire au lieu du pseudo et contrainte d'unicité sur le pseudo (pour ceux à qui ça parle)

- Rapatrier le power dans la base de données principale ?
-> Ajouter le champ Power pour chaque compte
-> Importer les données depuis l'ancienne base
-> Répercuter le changement dans le plugin HM
-> Plus besoin de transférer le power au changement de pseudo

- Le cas de la base de données des PO reste à l'étude
-> Le plugin d'économie va vouloir gérer les changements de pseudo lui-même
-> De plus les soucis potentiels avec la dernière version de Fe restent à prendre en compte
-> La base étant souvent requêtée par les serveurs, la maintenir pourrait être intéressant... quoique, avec la mise en cache...
-> Quoi qu'il arrive il faut reconstruire les correspondances UUID <=> Pseudo en utilisant la base principale et l'API Mojang
-> Une option à ne pas exclure serait de réimplémenter un plugin d'économie taillé pour HM (radical mais efficace ^^)
-> On pourrait alors mettre les PO sur le bon champ de la base de données principale
-> En plus, ce n'est pas comme si un plugin d'économie c'était un truc hyper compliqué

Conclusion: Je n'ai pas encore défini quelle était la meilleure solution, ça reste à l'étude, et demande du boulot quoi qu'il arrive.

Notes diverses en annexe :

PS: Au fait, pour info, l'architecture actuelle, toujours basée sur le pseudo, marche encore actuellement uniquement parce qu'un mécanisme externe - le site web hellominecraft - passe pour transférer les PO/Power quelques minutes après un changement de pseudo. C'est une rustine si on veut, mais comme vous le voyez, le chantier complet de mise à jour est long et pas forcément évident, d'où l'intérêt d'avoir conservé un système éprouvé qui marche - du moins à peu près correctement - avec une simple rustine pour en prolonger la durée de vie, le temps d'y réfléchir et d'avoir du temps pour le faire, plutôt que de précipiter un changement qui pourrait s'avérer bancal.

PS/2: Je suis conscient que le problème initial, c'était mettre à jour QuickShop, cependant, pour que le plugin de shop puisse gérer les UUID, il faut que le système d'économie lui-même puisse les gérer, ce qui n'est absolument pas le cas pour l'instant, du coup c'est l'occasion de relancer le chantier que j'avais laissé en suspens, un peu par flemme, manque de temps libre, et aussi parce qu'il n'y avait que peu d'avantages réels à le faire jusqu'ici ^^

PS3: La première partie du chantier de migration aux UUID, c'était la partie la plus importante et urgente et ça n'avait pas été de la tarte ^^
PS4: C'est quand même vachement sympa de ta part, cher lecteur, d'avoir pris la peine de lire tout ça. Non vraiment, j'apprécie.
PS5: Ah, euh, non, y'a pas de PS5; elle n'est pas encore sortie alors je m'arrête ici ^^
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

BigBen
Messages : 2186
Inscription : 08 nov. 2012, 19:50
Localisation : Paris
Contact :

Re: QuickShop, coté client.

Messagepar BigBen » 03 oct. 2015, 13:24

Merci et bon courage ORelio ;)
Il y a tant de chose à faire... Et si peu de temps...

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

Re: QuickShop, coté client.

Messagepar foufou25 » 03 oct. 2015, 16:42

ORelio pour ce triple post ! Je te banni ! haha mdr !

bonne chance tonton =D
Ex-HelperPlay

JoGoiA
Messages : 280
Inscription : 22 mai 2015, 23:09

Re: QuickShop, coté client.

Messagepar JoGoiA » 03 oct. 2015, 16:43

Mais moi... Moi... Je voulais juste voir les petites icônes au dessus des coffres...
:shock:
Si tu aimes les haut-fonds, le rhum et l'aventure, rejoins l'équipage du Nautilus !
Les chroniques du Nautilus en video

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

Re: QuickShop, coté client.

Messagepar ORelio » 04 oct. 2015, 01:10

C-c-c-combo breaker ! Bon du coup plus de double/triple post donc merci à vous :lol:

Merci pour vos retours, hé oui JoGoiA ce n'est pas de ta faute, j'avais prévu de longue date de faire tout ça et QuickShop a au final été la bonne raison de se lancer.
Aujourd'hui peu de nouveautés car j'ai travaillé sur d'autres trucs (corriger le site et travailler sur le launcher).
J'ai cependant après réflexion conclu qu'un plugin d'économie dédié serait bien plus approprié.

Je le ferai dès que j'aurai fini le reste ;)
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 » 07 oct. 2015, 08:12

Derien MAIS j'aimerais que t'ai un vrai advertisement....mdr
Ex-HelperPlay

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

Re: QuickShop, coté client.

Messagepar ORelio » 07 oct. 2015, 14:09

J'avais un avertissement collector donné par Grom_Atoux mais depuis un membre du staff un peu zélé me l'a enlevé et je ne m'en suis pas aperçu sur le coup donc j'ignore qui l'a enlevé :(

Sinon, travail du jour, j'ai fini de mettre à niveau la base de données, récapitulons :
> Déjà fait : Terminer la migration de la base de données principale du site (voir plus haut sur ce topic)
> Fait : Terminer la modification de la gestion des joueurs sur le site (voir sur ce post pour les détails)
> Je peux donc passer à l'ajout des champ et au développement du plugin de power/économie ^^
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 » 07 oct. 2015, 17:38

Mec t'est trop fort....Je te kiff......<3

Juste comme ca, pour coder toute la journée , t"as quel âge tonton ?:o

Bonne soirée a vous :')

Et c'est super ce que tu fais pour le serveur HelloMinecraft !
Ex-HelperPlay

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

Re: QuickShop, coté client.

Messagepar ORelio » 07 oct. 2015, 18:57

Eh bien... merci :mrgreen:
Je te donne cette information par MP.

EDIT:
- FAIT: Ajouter le champ pour les PO dans la base de données (pas dur vu que le terrain avait été préparé)
- FAIT : Créer l'interface qui permettra à un plugin de demander les PO d'un joueur et de créditer/débiter des PO
- A FAIRE : Le plugin qui fait tout ça et qui est doit être compatible avec les autres plugin via Vault (qui est une interface autre plugin <=> n'importe quel plugin d'économie)
- A FAIRE : Le script de transfert de données qui récupérera les PO de tout le monde pour les mettre sur le champ PO de la base de données centralisée
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


Revenir à « Support: Questions et Bugs »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 3 invités