# 📚 Menus Paginés, Onglets & Animations - betterMcGuis
Ce guide explore les types d'inventaires avancés : **PaginatedGui**, **TabbedGui** et **AnimatedGui**.
---
## đź“‘ Sommaire
- [1. Menus Paginés (`PaginatedGui`)](#1-menus-paginés-paginatedgui)
- [2. Menus Ă Onglets (`TabbedGui`)](#2-menus-Ă -onglets-tabbedgui)
- [3. Menus Animés (`AnimatedGui`)](#3-menus-animés-animatedgui)
---
## 1. Menus Paginés (`PaginatedGui`)
Le `PaginatedGui` prend en charge le calcul automatique des pages, la disposition des boutons de navigation et les indicateurs dynamiques.
```java
var shop = BetterMcGuis.paginated("Boutique", 5)
.fillBorder(Material.BLACK_STAINED_GLASS_PANE)
// Personnalisation des boutons de navigation
.previousButton(38, ItemBuilder.of(Material.ARROW).name("◀ Page Précédente").asGuiItem())
.nextButton(42, ItemBuilder.of(Material.ARROW).name("Page Suivante â–¶").asGuiItem())
// Indicateur de page personnalisée
.pageIndicator(40, (page, total) -> ItemBuilder.of(Material.PAPER)
.name("Page " + page + " / " + total + "")
.asGuiItem()
);
// Ajout de 100 items au catalogue
for (int i = 1; i <= 100; i++) {
shop.addPageItem(ItemBuilder.of(Material.GOLD_INGOT)
.name("Lingot #" + i + "")
.asGuiItem(ctx -> ctx.replySuccess("Achat réussi !"))
);
}
shop.build().open(player);
```
---
## 2. Menus Ă Onglets (`TabbedGui`)
Permet de basculer instantanément entre plusieurs catégories d'items **sans fermer ni rouvrir l'inventaire** :
```java
BetterMcGuis.tabbed("Menu Multi-Catégories", 4)
// Onglet 1 : Guerrier
.tab("warrior", 11, ItemBuilder.of(Material.IRON_SWORD).name("Guerrier").asGuiItem(), tabGui -> {
tabGui.setTabItem("warrior", 20, ItemBuilder.of(Material.DIAMOND_SWORD).name("Épée Lourde").asGuiItem());
tabGui.setTabItem("warrior", 24, ItemBuilder.of(Material.SHIELD).name("Bouclier").asGuiItem());
})
// Onglet 2 : Archer
.tab("archer", 15, ItemBuilder.of(Material.BOW).name("Archer").asGuiItem(), tabGui -> {
tabGui.setTabItem("archer", 22, ItemBuilder.of(Material.CROSSBOW).name("Arbalète Précise").asGuiItem());
})
.build()
.open(player);
```
---
## 3. Menus Animés (`AnimatedGui`)
Permet d'animer des frames d'inventaires cadencées par tick ou secondes :
```java
AnimatedGui animated = BetterMcGuis.animated()
.title("Ouverture de Coffre Mystère...")
.rows(3)
// Frame 1
.frame(f -> f.item(13, ItemBuilder.of(Material.CHEST).name("Chargement.").asGuiItem()))
// Frame 2
.frame(f -> f.item(13, ItemBuilder.of(Material.ENDER_CHEST).name("Chargement..").asGuiItem()))
// Frame 3 : Révélation du lot !
.frame(f -> f.item(13, ItemBuilder.of(Material.NETHER_STAR).name("Bravo ! Trésor Obtenu !").asGuiItem()))
.loop(false)
.build();
animated.open(player);
animated.startAnimation(monPlugin, Duration.ofMillis(600));
```
---
> 📖 **Étape suivante** : Découvrez le cycle de vie et les événements dans [06_LIFECYCLE_AND_EVENTS.md](06_LIFECYCLE_AND_EVENTS.md).