001package com.ericlam.mc.minigames.core.event.player;
002
003import com.ericlam.mc.minigames.core.character.GamePlayer;
004import com.ericlam.mc.minigames.core.game.InGameState;
005import org.bukkit.event.Event;
006import org.bukkit.event.HandlerList;
007
008import javax.annotation.Nonnull;
009import javax.annotation.Nullable;
010
011/**
012 * 遊戲玩家事件
013 */
014public abstract class GamePlayerEvent extends Event {
015
016    private static final HandlerList handlerList = new HandlerList();
017    private GamePlayer gamePlayer;
018    private InGameState gameState;
019
020    public GamePlayerEvent(GamePlayer gamePlayer, @Nullable InGameState state) {
021        this.gamePlayer = gamePlayer;
022        this.gameState = state;
023    }
024
025    public static HandlerList getHandlerList() {
026        return handlerList;
027    }
028
029    /**
030     * @return 牽涉的遊戲玩家
031     */
032    public GamePlayer getGamePlayer() {
033        return gamePlayer;
034    }
035
036    /**
037     * @return 場地狀態
038     */
039    @Nullable
040    public InGameState getInGameState() {
041        return gameState;
042    }
043
044    @Nonnull
045    @Override
046    public HandlerList getHandlers() {
047        return handlerList;
048    }
049}