Aller au contenu

Bug /rp redifine


Vorps

Messages recommandés

Bonjour, 

Je suis un nouveau membre du serveur freebuild et j'ai remarquer quand j'ai redéfinit mon claim que je ne pouvait pas prendre une sélection conforme a la limite de claim. Après quelque temps à me demander pourquoi j'ai trouver la solution sur le wiki mais celle-ci, certes marche mais ne me satisfait pas.

Je sais que le bug à déjà été rapporter mais je vient la pour y apporter une solution pour que les prochain nouveau joueur comme moi ne ce souci pas de sa.

Je suis développeur sur différent langage depuis plusieurs année et j'ai longtemps participer aux développement de serveur.

Voici ma solution.

I - Présentation du problème.

Actuellement lorsqu'on souhaite redéfinir un claim il y a un problème au niveau des limites de claim. Les blocks de la sélection du future  claim s'ajoute au block du claim actuelle si bien que si on fait un claim qui s'étend jusqu’à la limite de block de claim on ne peut plus le redéfinir 

Ex 

.image.png.e490a57274c99906cfb63f911cfba85e.pngVoila un claim qui fait 80 blocks, ma limite de block est de 80.

image.png.6b6a29e4c45e955be926613ac79e8658.pngJ'essaie de la redéfinir avec une sélection de 9 un message m'indique que je dépasse la limite c'est pas le comportement attendu.

II - Résolution

Code avant (Lire commentaire)

image.png.703be2739ca9db6a1c0148d1fb0549da.png

 

Code après (Lire commentaire)

image.png.69f9355b703d3e00a03a30b9989a3f9c.png

Test

image.png.2e1b7f6c432c65d3942eb735933a8f8a.pngMême contexte que tout a l'heure mais avec le nouveau code et cette fois ci ça fonctionne =)

Un autre problème sur les commandes RP sont sur le temps de calcul il servent à déterminer si la zone du nouveau claim n’empiète pas sur une autre zone de claim.

Le problème est que ces calcul son long et ce temps augmente de façon linéaire face la taille des claim. Cette partie de code a été développé sur le même Thread que Spigot et ces calculs le bloque et toute action des joueurs ne sont plus prit en compte et mène à des rollback voir à des crachs du serveur.

La solution est tout simplement de calculer cette opération en parallèle grâce a un nouveau Thread.

Lien vers le commentaire
Partager sur d’autres sites

Mdr =) Sa ne m’étonne pas qu'il a du mal a maintenir son code, c'est développer de façon un peu "bourrin" et pas du tout optimisé. Par exemple on trouve dans le code des blocks entier recopié plusieurs fois et des calculs un peu douteux. Je pense que le plugin reste quand même solide mais c'est uniquement au prix de centaine de ligne non réfactoré par-ci par-la et au prix de calcul lourd.

C'est vrai que le mieux pour vous serais de refaire totalement le plugin ;) Sa serais un gain de mémoire et de temps de CPU sur chaque commande réaliser.

Lien vers le commentaire
Partager sur d’autres sites

il y a 13 minutes, Vorps a dit :

Sa serais un gain de mémoire et de temps de CPU sur chaque commande réaliser.

Ah ça je peux te l'affirmer il est gourmand son plugin !

Le problème de refaire le plugin c'est qu'il faut quelqu'un et surtout qu'il reste dans le coin, FabioZumbi (le créateur du plugin) n'est peut-être pas parfait mais il reste à peu près actif malgré tout, ça fait 2 ans qu'on utilise son plugin au moins.

Après il y a toujours possibilité de lui faire des suggestions dans son code, bref faut voir ce qu'il prépare pour la 1.13 mais il y a un manque réel de compétences je pense, c'est dommage car son plugin est vachement bien donc ça explique certaines imperfections (lag lors de gros claim, lag sur la dynmap, sql impossible...)

Lien vers le commentaire
Partager sur d’autres sites

Ouai si j'ai le temps un jour je pourrais en faire un mais pour l'instant je peut vous proposer la version avec les correctifs des problèmes cité au dessus.

Ça ne changera rien au niveau de la mémoire mais la correction du bug et de l'optimisation sur les commande de claim changera l'utilisation du CPU par le plugin.

 

Lien vers le commentaire
Partager sur d’autres sites

il y a 56 minutes, Vorps a dit :

Ouai si j'ai le temps un jour je pourrais en faire un mais pour l'instant je peut vous proposer la version avec les correctifs des problèmes cité au dessus.

Ça ne changera rien au niveau de la mémoire mais la correction du bug et de l'optimisation sur les commande de claim changera l'utilisation du CPU par le plugin.

 

Si tu es motivé propose le sur le github du dév car si tu lui proposes lui il valide (ou non) et après c'est mis sur spigot (donc vu par eux aussi).

C'est une sécurité nécessaire pour un serveur, on sait jamais ^^

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez écrire votre message dès maintenant. Avant de le poster il vous sera demandé de vous inscrire. Si vous avez un compte, connectez-vous maintenant pour publier.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...