001package com.ericlam.mc.minigames.core.manager;
002
003import com.ericlam.mc.minigames.core.arena.Arena;
004import com.ericlam.mc.minigames.core.exception.arena.ArenaNotLoadedException;
005import com.ericlam.mc.minigames.core.exception.arena.FinalArenaAlreadyExistException;
006
007import java.util.List;
008
009/**
010 * 場地管理器
011 */
012public interface ArenaManager {
013
014    /**
015     * 獲取投票最終結果場地,
016     * 結果尚未出爐,則為 null
017     *
018     * @return 最終場地
019     */
020    Arena getFinalArena();
021
022    /**
023     * 獲取已被加載的場地
024     *
025     * @return 已被加載的場地
026     * @throws ArenaNotLoadedException         場地未加載時
027     * @throws FinalArenaAlreadyExistException 最終場地已經出現時
028     */
029    List<Arena> getLoadedArenas() throws ArenaNotLoadedException, FinalArenaAlreadyExistException;
030}