Class AbstractSettingsGui

java.lang.Object
fr.luc.crcore.util.gui.AbstractInventoryGui
fr.luc.crcore.features.team.config.gui.AbstractSettingsGui
All Implemented Interfaces:
org.bukkit.inventory.InventoryHolder
Direct Known Subclasses:
GlobalSettingsGui, TeamSettingsGui

public abstract class AbstractSettingsGui extends AbstractInventoryGui
Base commune des deux GUI de settings (globaux et per-team). Implémente le rendu en grille des settings standards :
  • Booléens : lampe verte / rouge selon état, clic = toggle.
  • Entiers : item livre avec lore, clic gauche +1 / shift +10, clic droit -1 / shift -10, clamp à 0 mini.
  • Strings et Enums : affichage de la valeur (édition pas exposée dans cette V1 — à passer par YAML pour ces types).

La sous-classe fournit la valeur courante et le callback de changement.

  • Field Details

    • SIZE

      protected static final int SIZE
      Taille fixe de l'inventaire (3 lignes × 9 = 27 slots). Suffisant pour 8 settings.
      See Also:
    • SETTING_SLOTS

      protected static final int[] SETTING_SLOTS
      Slots où les settings sont positionnés (10..16 = la ligne du milieu sans les bords).
  • Constructor Details

    • AbstractSettingsGui

      protected AbstractSettingsGui(String title)
  • Method Details

    • rebuild

      public void rebuild()
      Description copied from class: AbstractInventoryGui
      Construit / reconstruit le contenu de l'inventaire. Override obligatoire.
      Specified by:
      rebuild in class AbstractInventoryGui
    • renderFooter

      protected void renderFooter()
      Hook pour les sous-classes : poser un bouton de footer (close, reset, etc.).
    • computeIntDelta

      protected int computeIntDelta(org.bukkit.event.inventory.InventoryClickEvent event)
      Calcule le delta pour un clic sur un entier (gauche/droit + shift).
    • buildLore

      protected String[] buildLore(String... lines)
      Construit une lore en filtrant les lignes null.
    • getCurrentValue

      protected abstract <T> T getCurrentValue(TeamSetting<T> setting)
      Valeur courante affichée pour ce setting (globale ou per-team selon le GUI).
    • onChange

      protected abstract <T> void onChange(TeamSetting<T> setting, T newValue)
      Appelé quand l'utilisateur modifie un setting via clic.
    • isOverride

      protected boolean isOverride(TeamSetting<?> setting)
      Indique si la valeur affichée est un override per-team (juste pour l'UI).