Ce plugin Minecraft a pour but pédagogique de démontrer l'implémentation du pattern MVC (Model-View-Controller) dans le développement d'un plugin Minecraft Spigot. Il n'a pas pour but de vous apprendre a crée des plugins, il faut avoir des bases de java pour comprendre.
- Gestion des utilisateurs simples avec pattern Observer
- Interface graphique simple avec ScoreBoard et BossBar
- Stockage de données utilisateur dans un fichier JSON
- Système simple de RPG avec level et expérience
- Persistence des données
Le plugin est organisé selon le pattern MVC:
- Model: Contient les classes représentant les données du plugin (ex: CraftPlayer)
- View: Contient les classes responsables de l'affichage et des interactions avec Minecraft (ex: ScoreBoard, Connexion du joueur)
- Controller: Contient les classes qui gèrent la logique et l'interaction entre le modèle et la vue (ex: CraftPlayerController)
Il utilise notamment le design pattern d'Observer.
L'architecture est multi-tier (3 exactement), une première qui est l'IHM (Minecraft), une seconde qui est la Logic est enfin le Storage qui contient la sauvegarde en Json.
Le storage utilise un DAO, avec des méthodes CRUD (create/read/update/delete) avec de la sérialisation en json utilisant Gson qui est nativement intégré a la librairie de spigot.
- Clonez le repo GitHub
- Ouvrez avec un IDE (Intellij de préférences)
- Chargez le projet gradle (devrais se charger automatiquement par Intellij)
- Build le projet avec la commande
clean build
de gradle - Récupérez le plugins dans le dossier
build/libs/
sous ne nomSpigotPluginMVC-1.0-SNAPSHOT-all.jar
- Placez le plugin dans le dossier
plugins/
de vôtre serveur - Démarrez votre serveur Minecraft
- Rejoignez le serveur
- Tutoriel MVC Minecraft: https://www.spigotmc.org/threads/mvc-pattern-with-events.544327/
- Pattern MVC: https://developer.mozilla.org/en-US/docs/Glossary/MVC
- Pattern Observer https://refactoring.guru/design-patterns/observer
- FastBoard https://github.com/MrMicky-FR/FastBoard
Ce plugin est sous licence GPL-3.0 license.
Made with contrib.rocks.
- Ce plugin est un exemple simple et pédagogique. Il peut être étendu et amélioré pour des fonctionnalités plus complexes.
- N'hésitez pas à contribuer au projet en forkant le repo et en soumettant des pull requests.
- Ajout de commandes d'administration
N'hésitez pas à proposer de nouvelles features que vous voudriez voir apparaître dans le plugin !
- Aucun problème connu pour le moment.
Si vous rencontrez un problème avec le plugin, veuillez le signaler en ouvrant une issue sur le repo GitHub.