Interface BroadcastService

All Known Implementing Classes:
YamlBroadcastService

public interface BroadcastService
Service de broadcasts CR-Core : décide à qui envoyer un message pour un event donné, selon une config YAML routière.

Routes vs templates

Le service ne stocke pas les textes — il ne lit que la config des audiences (BroadcastAudience) par event. Le texte vient du MessagesService (clé <eventKey>.broadcast, par exemple team.create.broadcast).

Modèle de fichier

Un seul fichier par plugin : <plugin-dataFolder>/<plugin-name-lowercase>-broadcasts.yml. Defaults bundlés dans le jar à crcore-broadcasts.yml, copiés au premier démarrage. Couche défaut + couche fichier user en mémoire ; le fichier user écrase clé par clé.

Audiences

Chaque event mappe sur une liste de BroadcastAudience. L'union des Players résolus de chaque audience est destinataire. [NONE] ou liste vide → pas de broadcast.

Usage

core.broadcasts().broadcast("team.create",
    BroadcastContext.of(team)
        .with("name", team.getName())
        .with("tag", team.getTag())
        .with("color", team.getColor().getChatColor().toString()));

Le listener interne CRCoreBroadcastListener fait ça automatiquement pour les 12 events Bukkit livrés avec CR-Core. Les game plugins peuvent appeler broadcast(String, BroadcastContext) avec leurs propres clés.

  • Method Summary

    Modifier and Type
    Method
    Description
    void
    broadcast(String eventKey, BroadcastContext context)
    Tire un broadcast pour l'event eventKey, en résolvant les audiences configurées et en envoyant le template <eventKey>.broadcast (via MessagesService) à chaque destinataire.
    getAudiences(String eventKey)
    Liste des audiences configurées pour cet event (vide si rien défini).
    void
    Recharge la config depuis le disque (fichier user uniquement).
  • Method Details

    • broadcast

      void broadcast(String eventKey, BroadcastContext context)
      Tire un broadcast pour l'event eventKey, en résolvant les audiences configurées et en envoyant le template <eventKey>.broadcast (via MessagesService) à chaque destinataire.
    • getAudiences

      List<BroadcastAudience> getAudiences(String eventKey)
      Liste des audiences configurées pour cet event (vide si rien défini).
    • reload

      void reload()
      Recharge la config depuis le disque (fichier user uniquement).