package com.teefun.bean.matchmaking; import java.util.List; import com.teefun.model.Player; import com.teefun.model.Queue; /** * Class to handle the matchmaking system. * * @author Rajh */ public interface Matchmaking { /** * @return the list of available queues */ List<Queue> getQueues(); /** * Get all queue which the player has join. * * @param player the player * @return the list of available queues */ List<Queue> getQueues(Player player); /** * Get a queue by name. * * @param name the name * @return the queue */ Queue getQueueByName(String name); /** * Get a queue by id. * * @param id the id * @return the queue */ Queue getQueueById(Integer id); /** * Join a queue by its name. * * @param player the player * @param queue the queue */ void joinQueue(Player player, Queue queue); /** * Quit a queue by its name. * * @param player the player * @param queue the queue */ void quitQueue(Player player, Queue queue); /** * Quit all queues. * * @param player the player */ void quitAllQueues(Player player); /** * Add an available queue. * * @param queue the queue */ void addQueue(Queue queue); /** * Remove a queue. * * @param queue the queue */ void removeQueue(Queue queue); /** * Is a player in any queue. * * @param player the player * @return true if the player is at least in one queue */ boolean isInQueue(Player player); /** * Set a player ready state. * * @param player the player * @param queue the queue * @param isReady the ready response */ void setPlayerReady(Player player, Queue queue, Boolean isReady); }