24 lines
1.6 KiB
Markdown
24 lines
1.6 KiB
Markdown
# Directives & Architecture du Projet betterMcGuis
|
|
|
|
## 🎯 Objectif
|
|
`betterMcGuis` est une bibliothèque Java moderne, fluide et événementielle pour la création dynamique d'interfaces graphiques (GUIs / Menus interactifs / Inventaires) sur serveurs Minecraft Paper et Spigot (1.20.4+).
|
|
|
|
## 🌟 Principes Clés
|
|
1. **DSL Fluide & Déclaratif** : Création chainable d'inventaires (Coffres 1-6 lignes, Hoppers, Distributeurs, Enclumes).
|
|
2. **ItemBuilder Riches** : Prise en charge native de MiniMessage, enchantements, flags, têtes de joueurs, armures teintées, CustomModelData et PDC.
|
|
3. **Système de Layouts / Patterns** : Définition visuelle des inventaires par matrice de caractères (ASCII Masks / Patterns).
|
|
4. **Types de GUIs Avancés** :
|
|
- GUI Simple (`Gui`)
|
|
- GUI Paginé (`PaginatedGui`)
|
|
- GUI Défilant (`ScrollableGui`)
|
|
- GUI à Onglets (`TabbedGui`)
|
|
- GUI Animé (`AnimatedGui`)
|
|
- GUI avec zones d'interaction / coffre de dépôt (`StorageGui` / `EditableSlots`)
|
|
5. **Gestionnaire d'Événements & Cycle de Vie** :
|
|
- Événements complets : `GuiOpenEvent`, `GuiCloseEvent`, `GuiClickEvent`, `GuiPageChangeEvent`, `GuiRefreshEvent`.
|
|
- Hooks locaux (`.onOpen()`, `.onClose()`, `.onClick()`) et écouteurs globaux annotés `@GuiEventHandler`.
|
|
6. **Protection contre les Glitches** :
|
|
- Annulation sécurisée des clics, shift-clicks, drag-and-drop et échanges rapides (Hotbar swap).
|
|
- Nettoyage automatique des états lors de la déconnexion ou fermeture de l'inventaire.
|
|
7. **Indépendance & Testabilité** : Classes métier découplées du moteur Minecraft pour des tests unitaires rapides et fiables.
|