En faisant des recherches, j'ai remarqué qu'un grand nombre de plugins disponibles sur Internet et permettant de faire des staff mods étaient hard codés, très peu maintenables et pas du tout flexibles. J'ai donc créé cette librairie afin d'instaurer un cadre dans la création de staff mods avec une réelle approche orientée objet.
Mais qu'est-ce qu'un "staff mod" ? C'est un environnement dans lequel un modérateur / administrateur va avoir accès à un ensemble d'objets lui permettant de faire des vérifications sur les joueurs de son serveur. Par exemple, un objet pour se mettre en vanish, un objet pour immobiliser un joueur, etc.
Ceci étant dit, StaffModLib propose donc deux choses aux développeurs : écrire un meilleur code (1) et un ensemble d'outils simplifiant la création de staff mods (2).
1) La librairie permet aux développeurs d'écrire du code réutilisable, ce que beaucoup ont tendance à oublier en développant sous Spigot. Par exemple, des items impliqués dans un staff mod peuvent être réutilisés dans un autre très facilement.
En utilisant StaffModLib et en respectant la structure appliquée dans la documentation, les développeurs peuvent aussi écrire un code plus maintenable. Les responsabilités sont bien séparées et ajouter des items à un staff mod n'implique pas de modifier le code existant (principe d'ouverture / fermeture) ou en tout cas, limite au maximum ces modifications.
De plus, la gestion des événements liés aux items impliqués dans un staff mod est simplifiée par l'utilisation d'événement customs. Il y a donc moins de code à écrire car les vérifications sont faîtes dans le code de la librairie (par exemple, vérifier que l'item utilisé lors d'un clic est bien celui d'un staff mod).
2) Au niveau des fonctionnalités proposées, StaffModLib permet tout d'abord aux développeurs de sauvegarder puis restaurer différentes données du joueur lors de l'activation / désactivation d'un staff mod. Cela permet ainsi aux joueurs de ne pas perdre leur inventaire / effets / données de jeu lors du passage en staff mod.
Ensuite, dans le cas de staff mods plus complets avec plus de 9 items en jeu, la librairie propose un système de pagination permettant de naviguer entre différentes pages d'items utilisables. Une des images de la présentation le montre d'ailleurs plutôt bien.
Pour finir, StaffModLib supporte la configuration. Un développeur pourra donc faire en sorte que les staff mods qu'il crée soit configurables afin que ses utilisateurs n'aient pas à l'appeler pour remodifier le code source dès lors qu'ils veulent modifier le staff mod.