Interface TeamConfigService

All Known Implementing Classes:
YamlTeamConfigService

public interface TeamConfigService
Service de configuration des équipes — résolution en cascade :
  1. Per-team — valeur stockée dans Team.getSettings(), persistée en SQLite.
  2. Global — valeur dans <plugin>-team-config.yml, modifiable via le GUI globaux ou édition directe du YAML.
  3. Hard default — défini en code dans TeamSettings.

Le service garantit qu'un get(Team, TeamSetting) renvoie toujours une valeur non-null grâce à la cascade.

  • Method Summary

    Modifier and Type
    Method
    Description
    <T> T
    get(Team team, TeamSetting<T> setting)
    Récupère la valeur effective d'un setting pour une équipe (cascade per-team → global → default).
    <T> T
    getGlobal(TeamSetting<T> setting)
    Récupère la valeur globale d'un setting (cascade global → default, sans per-team).
    Chemin du fichier YAML global (informationnel).
    Snapshot des valeurs globales actuelles (déjà parsées).
    boolean
    hasPerTeamOverride(Team team, TeamSetting<?> setting)
    Indique si une équipe a un override pour cette clé (utile pour l'affichage GUI : « hérité du global » vs « override »).
    void
    Recharge le fichier global depuis le disque.
    void
    resetPerTeam(Team team, TeamSetting<?> setting)
    Supprime l'override per-team pour une clé donnée — la team retombe sur la valeur globale.
    <T> void
    setGlobal(TeamSetting<T> setting, T value)
    Définit une valeur globale et persiste le fichier YAML <plugin>-team-config.yml.
    <T> void
    setPerTeam(Team team, TeamSetting<T> setting, T value)
    Définit un override per-team.
  • Method Details

    • get

      <T> T get(Team team, TeamSetting<T> setting)
      Récupère la valeur effective d'un setting pour une équipe (cascade per-team → global → default).
    • getGlobal

      <T> T getGlobal(TeamSetting<T> setting)
      Récupère la valeur globale d'un setting (cascade global → default, sans per-team).
    • setPerTeam

      <T> void setPerTeam(Team team, TeamSetting<T> setting, T value)
      Définit un override per-team. Persiste en SQLite via le TeamRepository (l'appelant doit save() la team ensuite — ou passer par le service haut niveau qui le fait).
    • resetPerTeam

      void resetPerTeam(Team team, TeamSetting<?> setting)
      Supprime l'override per-team pour une clé donnée — la team retombe sur la valeur globale.
    • setGlobal

      <T> void setGlobal(TeamSetting<T> setting, T value)
      Définit une valeur globale et persiste le fichier YAML <plugin>-team-config.yml.
    • reload

      void reload()
      Recharge le fichier global depuis le disque.
    • hasPerTeamOverride

      boolean hasPerTeamOverride(Team team, TeamSetting<?> setting)
      Indique si une équipe a un override pour cette clé (utile pour l'affichage GUI : « hérité du global » vs « override »).
    • getGlobalSnapshot

      Map<TeamSetting<?>, Object> getGlobalSnapshot()
      Snapshot des valeurs globales actuelles (déjà parsées).
    • getGlobalFileName

      Optional<String> getGlobalFileName()
      Chemin du fichier YAML global (informationnel).