MineWeb / Plugin-Vote

Vote plugin of MineWeb CMS
5 stars 17 forks source link

Dupli avec la récupération via le profil #46

Open haeiven opened 4 years ago

haeiven commented 4 years ago

Bonjour,

Il est possible de dupliquer ses récompenses en les récupérant depuis le profil. Je m'explique, un joueur ayant 140 récompenses en attente peut en récupérer le double voir le triple. Si celui-ci lag et qu'il spam le bouton, ses récompenses de double, se triple, voir plus. Et le message en jeu s'affiche aussi 3 fois.

Cordialement,

nivcoo commented 4 years ago

Je le sais j'ai jamais su le regler @Eywek une idée ? On peut peut être aussi par requete je sais pas

MaximeMichaud commented 4 years ago

UP @Eywek C'est un vieux problème, si cela n'a pas été résolu ce serait bien que cela le soit.

haeiven commented 4 years ago

Ils arrivent à dupliquer en se connectant à plusieurs sur le même compte et en cliquant en même temps aussi.

MaximeMichaud commented 4 years ago

Peut-être, voir une solution côté serveur pour le moment ? Et même si le problème est connu depuis longtemps, je suis surpris que personne d'autre ne le signale. Pour la mise en place d'une correction, une vidéo reproduisant le problème serait déjà bien. Car, là, tu as testé par toi-même ou c'est selon tes joueurs ?

haeiven commented 4 years ago

Testé par moi même, et selon les joueurs aussi.

La technique est relativement peu connue. Et pas beaucoup de gros serveurs ont update leur CMS avec cette fonctionnalité.

Pour reproduire, il faut avoir quand même quelques votes, genre plus de 50, tu fait connecter 3/4 personnes sur le compte, et tout le monde spam de clique en même temps, ça fait recevoir 3/4x plus de récompenses IG. Je pense que c'est parce que le give des objets de vote IG se fait un par un, à chaque nouvelle récompense que ça donne, ça check si le joueur est online aussi, ce qui créé de la latence entre chaque give d'item je pense, donc ça augmente les chances d'arriver à dupli.

nivcoo commented 4 years ago

Hum la piste de tester si le joueur est pas co ça peut être ça

haeiven commented 4 years ago

Sinon on peut temporairement repasser à l'autre méthode? C'est à dire récupérer les récompenses une par une ? Le temps de trouver un fix.

nivcoo commented 4 years ago

Ça change pas le bug

haeiven commented 4 years ago

Je n'avais pas ce soucis là quand la récupération des votes était un par un. C'est beaucoup plus compliqué de dupliquer les récompenses quand tu as qu'une seule commande qui se lance sur le serveur plutôt que des centaines.

MaximeMichaud commented 4 years ago

Tu peux toujours utiliser une ancienne version du plugin même si ce n'est pas recommandé.

Hum la piste de tester si le joueur est pas co ça peut être ça

Faudrait check. Voir si avec/sans cela empêcherai le problème.

Eywek commented 4 years ago

Limite faudrait update dès qu'on find (https://github.com/MineWeb/Plugin-Vote/blob/master/Controller/VoteController.php#L257) et remettre en collected = 0 si jamais on fail

nivcoo commented 4 years ago

J’ai déjà testé ça ne marche pas quand même


De : Valentin T. notifications@github.com Envoyé : Wednesday, February 26, 2020 4:08:31 PM À : MineWeb/Plugin-Vote Plugin-Vote@noreply.github.com Cc : nivcoo nico64800@live.fr; Comment comment@noreply.github.com Objet : Re: [MineWeb/Plugin-Vote] Dupli avec la récupération via le profil (#46)

Limite faudrait update dès qu'on find (https://github.com/MineWeb/Plugin-Vote/blob/master/Controller/VoteController.php#L257) et remettre en collected = 0 si jamais on fail

— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/MineWeb/Plugin-Vote/issues/46?email_source=notifications&email_token=AIWSXQGGFCL2MD6OFJ5RRODRE2AW7A5CNFSM4KLWRA52YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOENAS3HA#issuecomment-591474076, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AIWSXQEV7VAD2V6NXYWCC53RE2AW7ANCNFSM4KLWRA5Q.

Eywek commented 4 years ago

T'avais testé comment?

nivcoo commented 4 years ago

J'avais testé sans le update all donc que sa save 1 par par un, j'ai testé avec le update all juste après le find aussi

nivcoo commented 4 years ago

Et dans tout les cas on peut en lançant la fonction en même temps

Eywek commented 4 years ago

Oui mais je parlais plutôt de faire un update + find en même temps justement, faut voir mais je pense que quand on update, mysql nous retourne les id update et on peut faire une erreur si on a rien update ou find ceux qu'on a update pour les traiter

nivcoo commented 4 years ago

C'est possible que mysql retourne ceux qui n'ont pas été update

nivcoo commented 4 years ago

Via requete SQL il faudrai en même temps update mais dans tout les cas si on lance en même temps le find se fera avant la modif

Eywek commented 4 years ago

C'est pour ça que je parle d'update avant de find

nivcoo commented 4 years ago

Si tu update avant ton find donnera rien

nivcoo commented 4 years ago

Ah tu veux que le update te retourne la liste qu'il a update comme ca tu utilise ca

nivcoo commented 4 years ago

Et il retourne juste un boolean

Eywek commented 4 years ago

Faut voir pour faire une transaction sinon

nivcoo commented 4 years ago

Alors on peut recup le nombre de lignes modif, donc regler le soucis sauf que dans le système actuel ca updateAll quand c'est bon alors je vais updateAll au début verif les lignes modifs et a la fin si il y a des erreurs

nivcoo commented 4 years ago

https://github.com/MineWeb/Plugin-Vote/pull/50

Eywek commented 4 years ago

ca devrait etre corrige du coup

nivcoo commented 4 years ago

C'est même sur mais faudra que je test avec bcp de vote car la je verifie si le nombre de requete du updateAll = 0 pour savoir si ca a deja était update mais je ne sais pas si avec 300 votes par exemple le nombre de requête peut être de 3 par exemple genre que ca se mixe avec l'ancienne ou jsp, par logique sql fais une requête a la fois mais bon

haeiven commented 4 years ago

La dernière update empêche de récup les votes, quand on clique, ça reload et rien ne se passe :/

nivcoo commented 4 years ago

Ca te mets aucun message ? Ni en jeu ?

nivcoo commented 4 years ago

C'est très bizarre car je l'utilise actuellement

haeiven commented 4 years ago

aucun message et rien en jeu

nivcoo commented 4 years ago

J'ai oublié de répondre avant, tu es dispo pour des tests ?

nivcoo commented 4 years ago

https://github.com/MineWeb/Plugin-Vote/pull/51 Tu as juste a update ton plugin et se sera bon

haeiven commented 4 years ago

J'ai des joueurs qui se plaignent de ne pas recevoir l'intégralité des récompenses de vote :/

Sur 94 récompenses, seules une cinquantaine ont été donnés.

nivcoo commented 4 years ago

Il n’y a pas de raison

nivcoo commented 4 years ago

Et si l’erreur est perçu ça lui redonne les votes