Improvement and refactor
Closed this issue · 3 comments
EpiCanard commented
Quelques idées d'amélioration en vrac :
- EventType.JOIN_SERVER_GROUP n'est pas appelé de dehors des tests et a le même comportement que QueryType.HAS_PLAYED_BEFOREz
- Packet.params peut être typé en Map<ParamsKey, String> et des méthodes utilitaires peuvent être ajouté pour éviter à faire getParams partout
- A expérimenter de faire en sorte qu'une méthode getParam puis retourner un type différent en fonction du ParamsKey
- Pourquoi ne pas utiliser les params pour faire transiter les data ? comme ça on sait qu'est-ce qu'on a comme data.
G-Lauz commented
- Redondance de
EvenType.JOIN_SERVER_GROUP
etQueryType.HAS_PLAYED_BEFORE
: Les méthodesonPlayerJoin
etonQueryHasPlayedBefore
despigot.MessageManger
sont identique. Pour enlever de l'ambiguité entre les event et les queryQueryType.HAS_PLAYED_BEFORE
pourrait être retiré et remplacé parEvenType.JOIN_SERVER_GROUP
dansbungee.MessageManager
. De cette manière on peut retirer la méthodesonQueryHasPlayedBefore
. Une autre nomenclature devrait aussi être envisagé pour faciliter la compréhension. - Refactor de Packet.params: l'appel:
packet.getParams().get(ParamsKey.SERVER_GROUP.getValue())
est utilisé à plusieurs reprise et peut-être simplifié. La création d'une classeParameterManager
qui gèrerait unMap<ParamsKey, String>
on pourrait alors utilisé la méthode comme suit:packet.getParam(ParamKey.SERVER_GROUP)
. Le même genre de modification est applicapable pour les méthodes set de la classecore.protocol.Packet
. - Data en temps que paramètres: À première vue je ne vois pas de problème à seulement utilisé les paramètre pour distribuer de l'information ça simplifierait la construction et l'extraction des paquets. Je crois que l'intention de conception initial était d'offrir la possibilité de modifier les données avec une fonction de cryptographie par exemple ou de donner l'options d'utiliser une trame/paquet plus complexe pour l'utilisateur par dessus la méthode déjà existente. L'implémentation présente est surement trop complexe pour le cas d'utilisation actuelle.
EpiCanard commented
- A l'initialisation du plugin, on désactive le plugin si la config
settings.bungeecord
( PlayerJoinGroup.java ).- Afin de garder une cohérence avec le fait qu'on passe en mode local le plugin quand on n'arrive pas à se connecter à la socket
- Faire de même et passer en mode local en affichant un warning
- L'initialisation de MessagesManager et SocketConnectedListener peuvent ainsi être évité
G-Lauz commented
A l'initialisation du plugin, on désactive le plugin si la config
settings.bungeecord
( PlayerJoinGroup.java ).* Afin de garder une cohérence avec le fait qu'on passe en mode local le plugin quand on n'arrive pas à se connecter à la socket * Faire de même et passer en mode local en affichant un warning * L'initialisation de MessagesManager et SocketConnectedListener peuvent ainsi être évité
Le commit 9791d64 applique ces changements. Ce dernier vient également ajouté un meilleur contrôle sur les boucles des différents fils d'exécution de manière à s'assurer qu'ils se termine tous lorsque nécessaire.