001package com.ericlam.mc.minigames.core.character;
002
003import org.bukkit.entity.Player;
004
005/**
006 * 讓使用者註冊的遊戲玩家處理機制。
007 */
008public interface GamePlayerHandler {
009
010    /**
011     * 當玩家的狀態被改變時的事件處理
012     *
013     * @param player 被改變狀態的玩家
014     * @param status 已改變的狀態
015     */
016    void onPlayerStatusChange(GamePlayer player, GamePlayer.Status status);
017
018    /**
019     * 當玩家被小遊戲系統移除的事件處理
020     *
021     * @param player 被移除的玩家
022     */
023    void onPlayerRemove(GamePlayer player);
024
025    /**
026     * 定義如何創建遊戲玩家
027     *
028     * @param player 玩家實體
029     * @return 遊戲玩家的容器
030     */
031    GamePlayer createGamePlayer(Player player);
032
033    /**
034     * @return 最少開始遊戲人數
035     */
036    int requireStart();
037
038}