[Framework] Création de plugin Bukkit

Ptibiscuit

Modérateur sucre vanillé
11 Mars 2011
620
25
13
Heypoday,

Depuis que je me suis posé sur un serveur, je crée des plugins à la chaine. Seulement, je me suis rendu compte qu'il y a beaucoup, beaucoup de choses que je réécrivais pour chaque plugin. Comme par exemple, un fichier de langue pour pouvoir traduire un plugin. Ceci, je suis obligé d'en faire un pour chaque plugin ! Même chose pour plusieurs autres outils.
J'ai donc décidé de créer un framework qui me permettrait de simplifier tous ces codes copiés/collés. Seulement, je n'aime pas garder des outils pour moi. Je distribuerai donc la version finale, mais j'ai besoin de vos avis et des trucs que vous aussi vous avez peut-être besoin. Les features actuelles viennent de moi, et je pense que vous pourrez aussi les utiliser.

Voici la liste actuelle des outils du framework. N'hésitez pas à vos proposer vos trucs, je pourrais toujours essayer de simplifier quelques trucs.
  • Le système se base sur une classe heritée de JavaPlugin, JavaPluginEnhancer. Vos plugins devront donc hériter de cette classe au lieu de JavaPlugin. Cette classe contiendra toutes les variables dont vous aurez besoin pour lancer le système.
  • Une API simplifiant l'utilisation du Yaml qui a le doux nom de CookYaml. Elle encapsule chaque objet du Yaml en rajoutant des méthodes pour éviter les sempiternels "Unchecked cast". Elle est encore un peu en développement, je ne suis pas sur de la garder, mais j'essayerais de le finir.
  • Un système pour gérer un fichier de langues via un objet Properties. Quelques petites fonctions pour facilement prendre une phrase du fichier.
  • MyLogger est un objet qui permet de facilement gérer les logs du plugin. Il offre la possibilité de trier ses logs pour les config, warning, log, ... C'est un peu abstrait, mais l'outil est sympa. :)
  • Globalement, quelques informations sont centralisés comme le prefix du chat, le prefix Permissions.
  • Un petit gestionnaire de Permissions.
Une autre feature qui pourrait intégralement changer Bukkit serait de transformer l'interface évènementiel qui se fait actuellement via des objets hérités, en quelque qui utilise des interfaces. Mais ce serait surtout des copiers-collers de tous les évènements du jeu pour les mettre en une ArrayList de Listener.

Voila, je ne promets pas de finir le projet, mais c'est en cours et j’espère pouvoir en faire une version stable pour bientôt, mais ne comptez pas là dessus. J'attends des idées pour l'étoffer et pouvoir rendre la création de plugin encore plus facile.