Class AbstractInventoryGui
java.lang.Object
fr.luc.crcore.util.gui.AbstractInventoryGui
- All Implemented Interfaces:
org.bukkit.inventory.InventoryHolder
- Direct Known Subclasses:
AbstractSettingsGui
public abstract class AbstractInventoryGui
extends Object
implements org.bukkit.inventory.InventoryHolder
Base abstraite pour tous les GUI CR-Core. Implémente
InventoryHolder
pour que GuiListener puisse identifier les clics destinés à un GUI
CR-Core (via inventory.getHolder() instanceof AbstractInventoryGui).
Pattern d'utilisation
- Sous-classer (ex.
GlobalSettingsGui). - Dans le constructeur, créer l'inventaire avec
Bukkit.createInventory(InventoryHolder, int, String)en passantthiscomme holder, puis stocker la référence viasetInventory(Inventory). - Appeler
rebuild()pour construire le contenu initial. - Pour chaque slot interactif, appeler
setButton(int, ItemStack, GuiClickHandler)qui dépose l'item ET enregistre le handler de clic. - Override
rebuild()pour reconstruire l'inventaire (utile après une modification de l'état). - Override
onClose(HumanEntity)pour persister un état au moment de la fermeture si besoin.
Ouvrir le GUI à un joueur : gui.openTo(player).
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected final voidclearSlot(int slot) Vide le slot et son handler.org.bukkit.inventory.Inventoryfinal voidhandleClick(org.bukkit.event.inventory.InventoryClickEvent event) Appelé parGuiListenersur un click dans l'inventaire de ce GUI.final voidhandleClose(org.bukkit.event.inventory.InventoryCloseEvent event) Hook interne pourGuiListenersur fermeture.voidonClose(org.bukkit.entity.HumanEntity who) Hook appelé à la fermeture du GUI.voidopenTo(org.bukkit.entity.HumanEntity player) Ouvre ce GUI au joueur (raccourci).abstract voidrebuild()Construit / reconstruit le contenu de l'inventaire.protected final voidsetButton(int slot, org.bukkit.inventory.ItemStack item, GuiClickHandler handler) Pose un item + handler de clic sur un slot.protected final voidsetDecoration(int slot, org.bukkit.inventory.ItemStack item) Pose un item décoratif (pas de handler de clic — un clic ne fait rien).protected final voidsetInventory(org.bukkit.inventory.Inventory inventory) À appeler une fois dans le constructeur de la sous-classe.
-
Constructor Details
-
AbstractInventoryGui
public AbstractInventoryGui()
-
-
Method Details
-
setInventory
protected final void setInventory(org.bukkit.inventory.Inventory inventory) À appeler une fois dans le constructeur de la sous-classe. -
getInventory
public org.bukkit.inventory.Inventory getInventory()- Specified by:
getInventoryin interfaceorg.bukkit.inventory.InventoryHolder
-
rebuild
public abstract void rebuild()Construit / reconstruit le contenu de l'inventaire. Override obligatoire. -
onClose
public void onClose(org.bukkit.entity.HumanEntity who) Hook appelé à la fermeture du GUI. Override pour persister un état (ex. écrire le YAML une seule fois après plusieurs modifs). Défaut : no-op. -
openTo
public void openTo(org.bukkit.entity.HumanEntity player) Ouvre ce GUI au joueur (raccourci). -
setButton
protected final void setButton(int slot, org.bukkit.inventory.ItemStack item, GuiClickHandler handler) Pose un item + handler de clic sur un slot. -
setDecoration
protected final void setDecoration(int slot, org.bukkit.inventory.ItemStack item) Pose un item décoratif (pas de handler de clic — un clic ne fait rien). -
clearSlot
protected final void clearSlot(int slot) Vide le slot et son handler. -
handleClick
public final void handleClick(org.bukkit.event.inventory.InventoryClickEvent event) Appelé parGuiListenersur un click dans l'inventaire de ce GUI. Route vers le handler du slot s'il y en a un. Toujours cancellable côté listener (l'utilisateur ne peut pas déplacer les items du GUI). -
handleClose
public final void handleClose(org.bukkit.event.inventory.InventoryCloseEvent event) Hook interne pourGuiListenersur fermeture.
-