Interface QueueManager


public interface QueueManager
Manages the queue system for the proxy.

The queue manager maintains one Queue per registered backend server. In a multi-proxy Redis setup, exactly one proxy acts as the master and is responsible for running periodic transfer and server-ping tasks.

  • Method Summary

    Modifier and Type
    Method
    Description
    @NotNull Queue
    getQueue(@NotNull String serverName)
    Returns the Queue for the given server name, creating it if it does not yet exist.
    default @Nullable Queue
    getQueueFor(@NotNull Player player)
    Returns the queue the given player is currently in, or null if the player is not queued in any queue.
    @Nullable Queue
    getQueueFor(@NotNull UUID uniqueId)
    Returns the queue the given player is currently in, or null if the player is not queued in any queue.
    @NotNull Collection<? extends Queue>
    Returns an immutable snapshot of all managed queues.
    boolean
    Returns true if this proxy is currently the master proxy responsible for running transfer and server-ping tasks.
    default boolean
    isQueued(@NotNull Player player)
    Returns true if the given player is present in any queue.
    default boolean
    isQueued(@NotNull UUID uniqueId)
    Returns true if the given player is present in any queue.
    void
    queue(@NotNull Player player, @NotNull RegisteredServer server)
    Validates eligibility and adds the given player to the queue for the specified server.
    void
    Reloads the queue manager, rescheduling internal tasks based on the latest configuration.
    default void
    removePlayerEntirely(@NotNull Player player)
    Immediately removes the given player from all queues they are currently in.
    void
    removePlayerEntirely(@NotNull UUID uniqueId)
    Immediately removes the given player from all queues they are currently in.
    void
    Tears down the queue manager, cancelling all scheduled tasks and clearing all queues.
  • Method Details

    • reload

      void reload()
      Reloads the queue manager, rescheduling internal tasks based on the latest configuration.
    • teardown

      void teardown()
      Tears down the queue manager, cancelling all scheduled tasks and clearing all queues.
    • isMasterProxy

      boolean isMasterProxy()
      Returns true if this proxy is currently the master proxy responsible for running transfer and server-ping tasks.

      In memory mode this always returns true.

      Returns:
      true if this is the master proxy
    • getQueue

      @NotNull @NotNull Queue getQueue(@NotNull @NotNull String serverName)
      Returns the Queue for the given server name, creating it if it does not yet exist.
      Parameters:
      serverName - the name of the target server
      Returns:
      the associated queue
      Throws:
      IllegalArgumentException - if no server with that name is registered
    • getQueues

      @NotNull @NotNull Collection<? extends Queue> getQueues()
      Returns an immutable snapshot of all managed queues.
      Returns:
      all queues
    • isQueued

      default boolean isQueued(@NotNull @NotNull UUID uniqueId)
      Returns true if the given player is present in any queue.
      Parameters:
      uniqueId - the unique id of the player to check
      Returns:
      true if the player is queued
    • isQueued

      default boolean isQueued(@NotNull @NotNull Player player)
      Returns true if the given player is present in any queue.
      Parameters:
      player - the player to check
      Returns:
      true if the player is queued
    • getQueueFor

      @Nullable @Nullable Queue getQueueFor(@NotNull @NotNull UUID uniqueId)
      Returns the queue the given player is currently in, or null if the player is not queued in any queue.
      Parameters:
      uniqueId - the unique id of the player to look up
      Returns:
      the queue, or null
    • getQueueFor

      @Nullable default @Nullable Queue getQueueFor(@NotNull @NotNull Player player)
      Returns the queue the given player is currently in, or null if the player is not queued in any queue.
      Parameters:
      player - the player to look up
      Returns:
      the queue, or null
    • queue

      void queue(@NotNull @NotNull Player player, @NotNull @NotNull RegisteredServer server)
      Validates eligibility and adds the given player to the queue for the specified server.

      This method checks bypass permissions, multi-queue restrictions, paused state, and version compatibility before enqueueing the player.

      Parameters:
      player - the player to queue
      server - the target server
    • removePlayerEntirely

      void removePlayerEntirely(@NotNull @NotNull UUID uniqueId)
      Immediately removes the given player from all queues they are currently in.
      Parameters:
      uniqueId - the unique id of the player to remove
    • removePlayerEntirely

      default void removePlayerEntirely(@NotNull @NotNull Player player)
      Immediately removes the given player from all queues they are currently in.
      Parameters:
      player - the player to remove