Interface ModerationService

All Known Implementing Classes:
BukkitEventFiringModerationServiceImpl, ModerationServiceImpl

public interface ModerationService
Service de modération CR-Core. Orchestre l'entrée / sortie du mod mode, le vanish et le freeze.

Mod mode

  1. enter(Player) : snapshot complet du joueur (ModerationState), vidage de l'inventaire, dotation de la hotbar avec les outils du ModeratorToolRegistry, passage en SPECTATOR ou CREATIVE + vanish.
  2. Pendant le mod mode, les outils sont actifs ; les actions du joueur (drop item, déplacement d'item) sont bloquées par ModerationListener.
  3. exit(Player) : restauration intégrale du snapshot, retrait du vanish, retrait des outils.

Vanish

vanish(Player) cache le joueur de tous les autres joueurs via Player.hidePlayer(org.bukkit.plugin.Plugin, Player). Automatique à l'enter, retiré à l'exit. Peut être toggle pendant le mod mode via le VanishToggleTool.

Freeze

freeze(UUID) marque un joueur comme gelé — son PlayerMoveEvent est cancel par ModerationListener. Stockage en mémoire (set d'UUIDs).

  • Method Details

    • enter

      void enter(org.bukkit.entity.Player player)
      Bascule player en mod mode. Snapshot + équipement d'outils + vanish.
      Throws:
      ModerationAlreadyActiveException - si le joueur est déjà en mod mode.
    • exit

      void exit(org.bukkit.entity.Player player)
      Fait sortir player du mod mode et le restaure intégralement.
      Throws:
      ModerationNotActiveException - si le joueur n'est pas en mod mode.
    • isInModeration

      boolean isInModeration(UUID playerId)
    • getState

      Optional<ModerationState> getState(UUID playerId)
    • getActiveModerators

      Set<UUID> getActiveModerators()
    • vanish

      void vanish(org.bukkit.entity.Player player)
      Cache le joueur de tous les autres joueurs en ligne.
    • unvanish

      void unvanish(org.bukkit.entity.Player player)
    • isVanished

      boolean isVanished(UUID playerId)
    • getVanishedPlayers

      Set<UUID> getVanishedPlayers()
    • freeze

      void freeze(UUID playerId)
      Bloque playerId sur sa position courante (PlayerMoveEvent canceled).
    • unfreeze

      void unfreeze(UUID playerId)
    • isFrozen

      boolean isFrozen(UUID playerId)
    • getFrozenPlayers

      Set<UUID> getFrozenPlayers()
    • getToolRegistry

      ModeratorToolRegistry getToolRegistry()
      Registry des outils dotés dans la hotbar à l'enter. Un game plugin peut y ajouter ses outils custom avant enter(Player).