Interface TachyonAPI<V>

Type Parameters:
V - The visual object type used by the ComponentRegistry and UI systems (e.g., org.bukkit.inventory.ItemStack for a Spigot implementation).
All Known Implementing Classes:
TachyonCore

public interface TachyonAPI<V>
Project Tachyon Interface TachyonAPI

The primary gateway and central API for the Tachyon ecosystem.

This interface provides external plugins and modules with safe access to Tachyon's core services, including live player profile management, component registration, telemetry auditing, and the snapshot backup system.

Since:
1.0.0-SNAPSHOT
Version:
1.0
Author:
Jimmy (vSKAH) - 13/04/2026
  • Method Details

    • getTachyonProfileRegistry

      TachyonProfileRegistry getTachyonProfileRegistry()
      Retrieves the registry responsible for managing live player profiles.

      Used to access, load, or manipulate active TachyonProfile instances that are currently cached in the server's memory.

      Returns:
      The active TachyonProfileRegistry instance.
    • getComponentRegistry

      ComponentRegistry<V> getComponentRegistry()
      Retrieves the central component registry used to manage Protobuf descriptors and UI preview handlers.

      This registry is essential for registering new custom data components when your specific plugin or module initializes during server startup.

      Returns:
      The active ComponentRegistry instance.
    • getSystemService

      SystemService getSystemService()
      Retrieves the system service handling core backend connectivity and global states.

      This service manages low-level operations such as back-end ping.

      Returns:
      The active SystemService instance.
    • getAuditService

      AuditService getAuditService()
      Retrieves the auditing service used to dispatch player actions and security events to the backend.
      Returns:
      The active AuditService instance.
    • getSnapshotService

      SnapshotService getSnapshotService()
      Retrieves the snapshot service used to trigger database backups, point-in-time recoveries, and to query snapshot histories.
      Returns:
      The active SnapshotService instance.
    • getPlayerSessionService

      PlayerSessionService getPlayerSessionService()
      Retrieves the service responsible for managing active player sessions across the network.

      This service handles keeping sessions alive by sending periodic heartbeats for loaded profiles, and provides mechanisms to unlock player profiles to prevent stuck sessions or cross-server locks.

      Returns:
      The active PlayerSessionService instance.
    • getPlayerDataService

      PlayerDataService getPlayerDataService()
      Retrieves the service dedicated to raw player data manipulation and synchronization.

      This service is utilized to pull profile data from the backend, asynchronously push profile updates (saves), and aggressively flush pending data queues for specific players.

      Returns:
      The active PlayerDataService instance.
    • getEventBus

      EventBus getEventBus()
      Retrieves the central asynchronous event bus used to dispatch and handle Tachyon events.

      This event bus handles safe listener registration and high-performance, lock-free execution offloaded to a dedicated asynchronous thread pool.

      Returns:
      The active EventBus instance.
    • tachyonCoreDisabling

      boolean tachyonCoreDisabling()
      Checks if the Tachyon core system is currently in its shutdown phase.

      Best Practice: External plugins should check this boolean before initiating any new asynchronous gRPC calls, component saves, or heavy operations. If this returns true, it means the server is stopping and new backend requests should be aborted to prevent hanging threads or data corruption.

      Returns:
      true if the Tachyon plugin is actively disabling, false otherwise.