Class AbstractInventoryGui

java.lang.Object
fr.luc.crcore.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

  1. Sous-classer (ex. GlobalSettingsGui).
  2. Dans le constructeur, créer l'inventaire avec Bukkit.createInventory(InventoryHolder, int, String) en passant this comme holder, puis stocker la référence via setInventory(Inventory).
  3. Appeler rebuild() pour construire le contenu initial.
  4. Pour chaque slot interactif, appeler setButton(int, ItemStack, GuiClickHandler) qui dépose l'item ET enregistre le handler de clic.
  5. Override rebuild() pour reconstruire l'inventaire (utile après une modification de l'état).
  6. 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
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected final void
    clearSlot(int slot)
    Vide le slot et son handler.
    org.bukkit.inventory.Inventory
     
    final void
    handleClick(org.bukkit.event.inventory.InventoryClickEvent event)
    Appelé par GuiListener sur un click dans l'inventaire de ce GUI.
    final void
    handleClose(org.bukkit.event.inventory.InventoryCloseEvent event)
    Hook interne pour GuiListener sur fermeture.
    void
    onClose(org.bukkit.entity.HumanEntity who)
    Hook appelé à la fermeture du GUI.
    void
    openTo(org.bukkit.entity.HumanEntity player)
    Ouvre ce GUI au joueur (raccourci).
    abstract void
    Construit / reconstruit le contenu de l'inventaire.
    protected final void
    setButton(int slot, org.bukkit.inventory.ItemStack item, GuiClickHandler handler)
    Pose un item + handler de clic sur un slot.
    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).
    protected final void
    setInventory(org.bukkit.inventory.Inventory inventory)
    À appeler une fois dans le constructeur de la sous-classe.

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 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:
      getInventory in interface org.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é par GuiListener sur 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 pour GuiListener sur fermeture.