Class CRCore

java.lang.Object
fr.luc.crcore.CRCore

public class CRCore extends Object
Point d'entrée unique de CR-Core pour un plugin de jeu downstream.

Instanciée une fois dans onEnable(), branche en cascade :

  1. la base SQLite (dans le dataFolder du plugin),
  2. les repositories (SQLite ou in-memory selon CRCoreConfig),
  3. les services team + player avec fire d'évènements Bukkit,
  4. la commande /core avec tous ses sous-commandes par défaut.

Utilisation minimale côté plugin de jeu

public class MyGamePlugin extends JavaPlugin {

    private CRCore core;

    @Override
    public void onEnable() {
        this.core = new CRCore(this).enable();
        // /core team create/delete/add/remove/join/leave/... est prêt
    }

    @Override
    public void onDisable() {
        if (core != null) core.disable();
    }
}

Le plugin de jeu doit avoir déclaré la commande dans son plugin.yml :

commands:
  core:
    description: Commandes CR-Core

Override

Tout est accessible via les getters : getTeamService(), getCoreCommand(), getDatabase(), etc. Pour remplacer une sous-commande, voir CoreCommand. Pour remplacer un service complet, sous-classer CRCore et override buildTeamService(TeamRepository).
  • Constructor Details

    • CRCore

      public CRCore(org.bukkit.plugin.java.JavaPlugin plugin)
      Construit CR-Core avec la config par défaut (SQLite activée, commande "core").
    • CRCore

      public CRCore(org.bukkit.plugin.java.JavaPlugin plugin, CRCoreConfig config)
  • Method Details

    • enable

      public CRCore enable()
      Branche tout : ouvre la DB, instancie les services, enregistre la commande. Idempotent : un second appel est no-op.
      Returns:
      this pour chaîner.
    • registerPlaceholderHook

      protected void registerPlaceholderHook()
      Enregistre l'expansion PlaceholderAPI %crcore_*% si le plugin PAPI est installé sur le serveur. Si absent, no-op silencieux — la lib reste fonctionnelle sans.

      Le chargement de la classe d'expansion est différé via une indirection (méthode doRegisterPlaceholderHook) pour que le bytecode référençant me.clip.placeholderapi.* ne soit pas vérifié si PAPI n'est pas présent.

    • disable

      public void disable()
      Libère les ressources (ferme la DB notamment). Idempotent.
    • buildTeamService

      protected TeamService buildTeamService(TeamRepository repository)
      Construit le TeamService. Override pour utiliser une impl custom.
    • buildPlayerProfileService

      protected PlayerProfileService buildPlayerProfileService(PlayerProfileRepository repository)
      Construit le PlayerProfileService. Override pour une impl custom.
    • buildCoreCommand

      protected CoreCommand buildCoreCommand(TeamService teamService, PlayerProfileService playerProfileService, MessagesService messages)
      Construit le CoreCommand. Override pour ajouter des groupes top-level.
    • buildMessagesService

      protected MessagesService buildMessagesService()
      Construit le MessagesService. Override pour utiliser une impl custom.
    • getPlugin

      public org.bukkit.plugin.java.JavaPlugin getPlugin()
    • getConfig

      public CRCoreConfig getConfig()
    • getDatabase

      public Database getDatabase()
    • getTeamRepository

      public TeamRepository getTeamRepository()
    • getTeamService

      public TeamService getTeamService()
    • getPlayerProfileRepository

      public PlayerProfileRepository getPlayerProfileRepository()
    • getPlayerProfileService

      public PlayerProfileService getPlayerProfileService()
    • getMessages

      public MessagesService getMessages()
    • messages

      public MessagesService messages()
    • getCoreCommand

      public CoreCommand getCoreCommand()
    • isEnabled

      public boolean isEnabled()