001package com.ericlam.mc.minigames.core.main;
002
003import com.ericlam.mc.minigames.core.MinigamesAPI;
004import com.ericlam.mc.minigames.core.Properties;
005import com.ericlam.mc.minigames.core.factory.GameFactory;
006import com.ericlam.mc.minigames.core.manager.*;
007import com.ericlam.mc.minigames.core.registable.Compulsory;
008import com.ericlam.mc.minigames.core.registable.Registration;
009import com.ericlam.mc.minigames.core.registable.Voluntary;
010import com.hypernite.mc.hnmc.core.config.MessageGetter;
011
012import java.util.Optional;
013
014/**
015 * 所有 API 的集中獲取器
016 */
017public final class MinigamesCore implements MinigamesAPI, Registration, Properties {
018
019    /**
020     * 獲取 遊戲 API
021     * <p>
022     * 注意,當必要內容尚未註冊成功時,將可能無法成功獲取API
023     * </p>
024     *
025     * @return 遊戲內 API
026     */
027    public static MinigamesAPI getApi() {
028        throw new RuntimeException();
029    }
030
031    /**
032     * 安全地獲取 API
033     *
034     * @return 遊戲內 API
035     */
036    public static Optional<MinigamesAPI> getApiSafe() {
037        throw new RuntimeException();
038    }
039
040    /**
041     * 獲取註冊管理器
042     *
043     * @return 註冊管理器
044     */
045    public static Registration getRegistration() {
046        throw new RuntimeException();
047    }
048
049    /**
050     * 獲取其他設定, 包括 Config 和 工廠等等
051     *
052     * @return 設定
053     */
054    public static Properties getProperties() {
055        throw new RuntimeException();
056    }
057
058
059    @Override
060    public MessageGetter getMessageGetter() {
061        throw new RuntimeException();
062    }
063
064    @Override
065    public GameFactory getGameFactory() {
066        return null;
067    }
068
069    @Override
070    public FireWorkManager getFireWorkManager() {
071        return null;
072    }
073
074    @Override
075    public ArenaManager getArenaManager() {
076        return null;
077    }
078
079    @Override
080    public LobbyManager getLobbyManager() {
081        return null;
082    }
083
084    @Override
085    public ScheduleManager getScheduleManager() {
086        return null;
087    }
088
089    @Override
090    public GameItemManager getGameItemManager() {
091        return null;
092    }
093
094    @Override
095    public ArenaCreateManager getArenaCreateManager() {
096        return null;
097    }
098
099    @Override
100    public GameStatsManager getGameStatsManager() {
101        return null;
102    }
103
104    @Override
105    public PlayerManager getPlayerManager() {
106        return null;
107    }
108
109    @Override
110    public GameManager getGameManager() {
111        return null;
112    }
113
114    @Override
115    public GameUtils getGameUtils() {
116        return null;
117    }
118
119    @Override
120    public Compulsory getCompulsory() {
121        return null;
122    }
123
124    @Override
125    public Voluntary getVoluntary() {
126        return null;
127    }
128}