Class TeamSetting<T>

java.lang.Object
fr.luc.crcore.features.team.config.TeamSetting<T>

public final class TeamSetting<T> extends Object
Définition typée d'un paramètre de team : clé, type, valeur par défaut, sérialisation YAML/SQL.

Un TeamSetting<T> est immutable et créé une fois pour toutes dans TeamSettings. Il sert à la fois côté lecture (config.get(team, FRIENDLY_FIRE) → Boolean) et côté écriture (config.set(team, FRIENDLY_FIRE, true)), avec une garantie de type au compile-time.

Quatre types supportés via les factories statiques :

Les valeurs lues depuis YAML / SQLite sont des Object ; parse(Object) les convertit en T. Si la conversion échoue, le default est utilisé.

  • Method Details

    • getKey

      public String getKey()
    • getType

      public Class<T> getType()
    • getDefaultValue

      public T getDefaultValue()
    • getKind

      public TeamSetting.Kind getKind()
    • parse

      public T parse(Object raw)
      Convertit une valeur brute (YAML, JDBC) en T, renvoie le default si échec.
    • serialize

      public Object serialize(T value)
      Convertit une valeur T vers la forme sérialisable (à stocker en YAML/SQL).
    • ofBoolean

      public static TeamSetting<Boolean> ofBoolean(String key, boolean defaultValue)
    • ofInt

      public static TeamSetting<Integer> ofInt(String key, int defaultValue)
    • ofString

      public static TeamSetting<String> ofString(String key, String defaultValue)
    • ofEnum

      public static <E extends Enum<E>> TeamSetting<E> ofEnum(String key, E defaultValue)
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object